diff options
author | Jordan Williams <jordan@jwillikers.com> | 2022-07-23 06:21:44 -0500 |
---|---|---|
committer | Jordan Williams <jordan@jwillikers.com> | 2022-07-25 14:14:57 -0500 |
commit | fac146f44d235a1c8c810de09c9582a0dd28b406 (patch) | |
tree | d3cf0a07fc883e29bfacd3cdc68d33647126d295 /CMakeLists.txt | |
parent | ad5836cb0d24b0f4f35ee6d57392e21570f56689 (diff) | |
download | dbus-fac146f44d235a1c8c810de09c9582a0dd28b406.tar.gz |
Use project relative paths in CMake files
This makes it possible for projects to incorporate D-Bus as a CMake sub-project in a larger CMake project.
Before this PR, doing so would result in many errors.
This is because CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR would point to directories above the D-Bus project.
Using paths relative to the project directory, PROJECT_SOURCE_DIR and PROJECT_BINARY_DIR, corrects for this.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 0773cecc..2deada7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,14 +1,14 @@ cmake_minimum_required(VERSION 3.4) -# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked -list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") -list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules") - # we do not need to have WIN32 defined set(CMAKE_LEGACY_CYGWIN_WIN32 0) project(dbus) +# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked +list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") +list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules") + option(DBUS_BUILD_TESTS "enable unit test code" ON) # detect version @@ -20,8 +20,8 @@ autoversion(dbus) include (TestBigEndian) test_big_endian(WORDS_BIGENDIAN) -if(EXISTS ${CMAKE_SOURCE_DIR}/config.h.in) - autoheaderchecks(${CMAKE_SOURCE_DIR}/config.h.in ${CMAKE_SOURCE_DIR}/cmake/ConfigureChecks.cmake ${CMAKE_SOURCE_DIR}/cmake/config.h.cmake) +if(EXISTS ${PROJECT_SOURCE_DIR}/config.h.in) + autoheaderchecks(${PROJECT_SOURCE_DIR}/config.h.in ${PROJECT_SOURCE_DIR}/cmake/ConfigureChecks.cmake ${PROJECT_SOURCE_DIR}/cmake/config.h.cmake) else() message(STATUS "Generate config.h.in with autogen.sh to enable cmake header difference check.") endif() @@ -117,7 +117,7 @@ endif() # search for required packages if(WIN32) # include local header first to avoid using old installed header - set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} ${CMAKE_SOURCE_DIR}/..) + set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} ${PROJECT_SOURCE_DIR}) include(Win32Macros) addExplorerWrapper(${CMAKE_PROJECT_NAME}) endif() @@ -416,23 +416,23 @@ enable_testing() #macro_ensure_out_of_source_build("dbus requires an out of source build. Please create a separate build directory and run 'cmake path_to_dbus [options]' there.") # ... and warn in case of an earlier in-source build -#set(generatedFileInSourceDir EXISTS ${CMAKE_SOURCE_DIR}/config.h) +#set(generatedFileInSourceDir EXISTS ${PROJECT_SOURCE_DIR}/config.h) #if(${generatedFileInSourceDir}) # message(STATUS "config.h exists in your source directory.") #endif(${generatedFileInSourceDir}) ######################################################################### ########### build output path definitions ############### -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) if(WIN32 OR CYGWIN) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) else() - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) endif() -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) # for including config.h and for includes like <dir/foo.h> -include_directories(. ${CMAKE_BINARY_DIR} ${CMAKE_INCLUDE_PATH}) +include_directories(. ${PROJECT_BINARY_DIR} ${CMAKE_INCLUDE_PATH}) # linker search directories link_directories(${DBUS_LIB_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ) @@ -560,7 +560,7 @@ if(MSVC_IDE) message(STATUS) endif() set(TEST_PATH_FORCE FORCE) - file(REMOVE ${CMAKE_BINARY_DIR}/data/dbus-1/services) + file(REMOVE ${PROJECT_BINARY_DIR}/data/dbus-1/services) endif() #### Find socket directories @@ -637,10 +637,10 @@ if(DBUS_BUILD_TESTS) # different, and it has no direct Autotools equivalent (Autotools # tests automatically get their own ${builddir} as working directory). set(DBUS_TEST_WORKING_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}${IDE_BIN}) - set(DBUS_TEST_DATA ${Z_DRIVE_IF_WINE}${CMAKE_BINARY_DIR}/test/data) + set(DBUS_TEST_DATA ${Z_DRIVE_IF_WINE}${PROJECT_BINARY_DIR}/test/data) set(DBUS_TEST_DAEMON ${Z_DRIVE_IF_WINE}${CMAKE_RUNTIME_OUTPUT_DIRECTORY}${IDE_BIN}/dbus-daemon${EXEEXT}) set(DBUS_TEST_DBUS_LAUNCH ${Z_DRIVE_IF_WINE}${CMAKE_RUNTIME_OUTPUT_DIRECTORY}${IDE_BIN}/dbus-launch${EXEEXT}) - set(DBUS_TEST_HOMEDIR ${Z_DRIVE_IF_WINE}${CMAKE_BINARY_DIR}/dbus) + set(DBUS_TEST_HOMEDIR ${Z_DRIVE_IF_WINE}${PROJECT_BINARY_DIR}/dbus) set(DBUS_TEST_RUN_SESSION ${Z_DRIVE_IF_WINE}${CMAKE_RUNTIME_OUTPUT_DIRECTORY}${IDE_BIN}/dbus-run-session${EXEEXT}) set(TEST_LAUNCH_HELPER_BINARY ${Z_DRIVE_IF_WINE}${DBUS_TEST_EXEC}/dbus-daemon-launch-helper-for-tests${EXEEXT}) if(UNIX) @@ -658,11 +658,11 @@ set(DBUS_INTERNAL_LIBRARIES dbus-internal) set(DBUS_INTERNAL_ADD_LIBRARY_OPTIONS STATIC) set(DBUS_INTERNAL_CLIENT_DEFINITIONS "-DDBUS_COMPILATION") -configure_file(cmake/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h ) +configure_file(cmake/config.h.cmake ${PROJECT_BINARY_DIR}/config.h ) if(WIN32) -configure_file(cmake/dbus-env.bat.cmake ${CMAKE_BINARY_DIR}/bin/dbus-env.bat ) - install(FILES ${CMAKE_BINARY_DIR}/bin/dbus-env.bat DESTINATION ${CMAKE_INSTALL_BINDIR}) +configure_file(cmake/dbus-env.bat.cmake ${PROJECT_BINARY_DIR}/bin/dbus-env.bat ) + install(FILES ${PROJECT_BINARY_DIR}/bin/dbus-env.bat DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() # @@ -670,14 +670,14 @@ endif() # set(INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/DBus1) if(WIN32) - configure_file(cmake/DBus1Config.cmake.in "${CMAKE_BINARY_DIR}/DBus1Config.cmake" @ONLY) + configure_file(cmake/DBus1Config.cmake.in "${PROJECT_BINARY_DIR}/DBus1Config.cmake" @ONLY) else() - configure_file(cmake/DBus1Config.pkgconfig.in "${CMAKE_BINARY_DIR}/DBus1Config.cmake" @ONLY) + configure_file(cmake/DBus1Config.pkgconfig.in "${PROJECT_BINARY_DIR}/DBus1Config.cmake" @ONLY) endif() -configure_file(cmake/DBus1ConfigVersion.cmake.in "${CMAKE_BINARY_DIR}/DBus1ConfigVersion.cmake" @ONLY) +configure_file(cmake/DBus1ConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/DBus1ConfigVersion.cmake" @ONLY) install(FILES - "${CMAKE_BINARY_DIR}/DBus1Config.cmake" - "${CMAKE_BINARY_DIR}/DBus1ConfigVersion.cmake" + "${PROJECT_BINARY_DIR}/DBus1Config.cmake" + "${PROJECT_BINARY_DIR}/DBus1ConfigVersion.cmake" DESTINATION "${INSTALL_CMAKE_DIR}" ) @@ -808,7 +808,7 @@ include(CPackInstallConfig) add_custom_target(help-options cmake -LH - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} ) # @@ -835,7 +835,7 @@ if(DBUS_ENABLE_PKGCONFIG) set(datadir "\${prefix}/${CMAKE_INSTALL_DATADIR}") set(datarootdir "\${prefix}/${CMAKE_INSTALL_DATADIR}") set(dbus_daemondir "\${prefix}/${CMAKE_INSTALL_BINDIR}") - configure_file(dbus-1.pc.in ${CMAKE_BINARY_DIR}/dbus-1.pc @ONLY) - install(FILES ${CMAKE_BINARY_DIR}/dbus-1.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + configure_file(dbus-1.pc.in ${PROJECT_BINARY_DIR}/dbus-1.pc @ONLY) + install(FILES ${PROJECT_BINARY_DIR}/dbus-1.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) endif() endif() |