summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorJordan Williams <jordan@jwillikers.com>2022-07-23 06:21:44 -0500
committerJordan Williams <jordan@jwillikers.com>2022-07-25 14:14:57 -0500
commitfac146f44d235a1c8c810de09c9582a0dd28b406 (patch)
treed3cf0a07fc883e29bfacd3cdc68d33647126d295 /CMakeLists.txt
parentad5836cb0d24b0f4f35ee6d57392e21570f56689 (diff)
downloaddbus-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.txt54
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()