diff options
-rw-r--r-- | modules/FindKDE4Internal.cmake | 44 | ||||
-rw-r--r-- | modules/FindQt4.cmake | 11 |
2 files changed, 41 insertions, 14 deletions
diff --git a/modules/FindKDE4Internal.cmake b/modules/FindKDE4Internal.cmake index 02a393cd..c25b9666 100644 --- a/modules/FindKDE4Internal.cmake +++ b/modules/FindKDE4Internal.cmake @@ -195,9 +195,9 @@ include (CheckCXXCompilerFlag) set(BIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/bin" CACHE PATH "The kde info install dir (default prefix/info)" FORCE) set(SBIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/sbin" CACHE PATH "The kde info install dir (default prefix/info)" FORCE) set(LIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/lib" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib)" FORCE) - set(LIBEXEC_INSTALL_DIR "${LIB_INSTALL_DIR}/lib" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib)" FORCE) + set(LIBEXEC_INSTALL_DIR "${LIB_INSTALL_DIR}/kde4/libexec" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib)" FORCE) set(PLUGIN_INSTALL_DIR "${LIB_INSTALL_DIR}/kde4" CACHE PATH "The subdirectory relative to the install prefix where plugins will be installed (default is ${KDE4_LIB_INSTALL_DIR}/kde4)" FORCE) - set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The subdirectory to the header prefix" FORCE) + set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The subdirectory to the header prefix" FORCE) set(CONFIG_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/config" CACHE PATH "The config file install dir" FORCE) set(DATA_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/apps" CACHE PATH "The parent directory where applications can install their data" FORCE) set(HTML_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/doc/HTML" CACHE PATH "The HTML install dir for documentation" FORCE) @@ -464,6 +464,17 @@ if (WIN32) endif(CMAKE_COMPILER_2005) endif(MSVC) + + # for visual studio IDE set the path correctly for custom commands + # maybe under windows bat-files should be generated for running apps during the build + if(MSVC_IDE) + get_filename_component(PERL_LOCATION "${PERL_EXECUTABLE}" PATH) + file(TO_NATIVE_PATH "${PERL_LOCATION}" PERL_PATH_WINDOWS) + file(TO_NATIVE_PATH "${QT_BINARY_DIR}" QT_BIN_DIR_WINDOWS) + set(CMAKE_MSVCIDE_RUN_PATH "${PERL_PATH_WINDOWS}\;${QT_BIN_DIR_WINDOWS}" + CACHE STATIC "MSVC IDE Run path" FORCE) + endif(MSVC_IDE) + endif (WIN32) @@ -477,15 +488,26 @@ if (UNIX) if (APPLE) set(CMAKE_INSTALL_NAME_DIR ${LIB_INSTALL_DIR}) else (APPLE) - set(CMAKE_INSTALL_RPATH ${LIB_INSTALL_DIR} ${QT_LIBRARY_DIR} ) - # building something else than kdelibs/ ? - # then add the dir where the kde libraries are installed - if (NOT EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h) - set(CMAKE_INSTALL_RPATH ${KDE4_LIB_DIR} ${CMAKE_INSTALL_RPATH} ) - endif (NOT EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h) - - set(CMAKE_SKIP_BUILD_RPATH TRUE) - set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) + if (CMAKE_PATCH_VERSION) # at least cmake 2.4.3, in earlier version CMAKE_PATCH_VERSION is empty + # add our LIB_INSTALL_DIR to the RPATH and use the RPATH figured out cmake when compiling + set(CMAKE_INSTALL_RPATH ${LIB_INSTALL_DIR} ) + set(CMAKE_SKIP_BUILD_RPATH ON) + set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) + set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + else (CMAKE_PATCH_VERSION) # at least cmake 2.4.3 + + set(CMAKE_INSTALL_RPATH ${LIB_INSTALL_DIR} ${QT_LIBRARY_DIR} ) + # building something else than kdelibs/ ? + # then add the dir where the kde libraries are installed + if (NOT EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h) + set(CMAKE_INSTALL_RPATH ${KDE4_LIB_DIR} ${CMAKE_INSTALL_RPATH} ) + endif (NOT EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h) + + set(CMAKE_SKIP_BUILD_RPATH TRUE) + set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) + + endif (CMAKE_PATCH_VERSION) # at least cmake 2.4.3 + endif (APPLE) endif (UNIX) diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake index caf8a3c5..24dab37d 100644 --- a/modules/FindQt4.cmake +++ b/modules/FindQt4.cmake @@ -38,7 +38,7 @@ # for all listed interface xml files # the name will be automatically determined from the name of the xml file # -# macro QT4_ADD_DBUS_ADAPTOR(outfiles xmlfile parentheader parentclassname ) +# macro QT4_ADD_DBUS_ADAPTOR(outfiles xmlfile parentheader parentclassname [basename] ) # create a dbus adaptor (header and implementation file) from the xml file # describing the interface, and add it to the list of sources. The adaptor # forwards the calls to a parent class, defined in parentheader and named @@ -885,8 +885,13 @@ IF (QT4_QMAKE_FOUND) MACRO(QT4_ADD_DBUS_ADAPTOR _sources _xml_file _include _parentClass) GET_FILENAME_COMPONENT(_infile ${_xml_file} ABSOLUTE) - STRING(REGEX REPLACE "(.*[/\\.])?([^\\.]+)\\.xml" "\\2adaptor" _basename ${_infile}) - STRING(TOLOWER ${_basename} _basename) + + IF (ARGV1) + SET(_basename ${ARGV1} ) + ELSE (ARGV1) + STRING(REGEX REPLACE "(.*[/\\.])?([^\\.]+)\\.xml" "\\2adaptor" _basename ${_infile}) + STRING(TOLOWER ${_basename} _basename) + ENDIF (ARGV1) SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) SET(_impl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) |