diff options
author | Cristian Adam <cristian.adam@gmail.com> | 2019-05-23 16:43:49 +0200 |
---|---|---|
committer | Cristian Adam <cristian.adam@qt.io> | 2019-05-24 08:25:10 +0000 |
commit | be0d7aa3e94969234ebf4ba1ae552e973e7b6588 (patch) | |
tree | 6cd582718f1a98875f29c0dd56071b81ec494fee /src/CMakeLists.txt | |
parent | 69b3e34bdcc43bc1ff85efe065fbd19ef97dbbaa (diff) | |
download | qt-creator-be0d7aa3e94969234ebf4ba1ae552e973e7b6588.tar.gz |
CMake build: Use add_qtc_depends for all add_qtc_* functions
Also added current source directory as public include directory.
Change-Id: I6a23e02b84be3fc5f29ac33ef8ccd7d70a48f494
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r-- | src/CMakeLists.txt | 71 |
1 files changed, 26 insertions, 45 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f8bbda9927..7380fdde07 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -106,13 +106,7 @@ function(add_qtc_library name) set(library_type OBJECT) endif() - separate_object_libraries("${_arg_DEPENDS}" - depends object_lib_depends object_lib_depends_objects) - separate_object_libraries("${_arg_PUBLIC_DEPENDS}" - public_depends object_public_depends object_public_depends_objects) - - add_library(${name} ${library_type} ${_arg_SOURCES} - ${object_lib_depends_objects} ${object_public_depends_objects}) + add_library(${name} ${library_type} ${_arg_SOURCES}) if (${name} MATCHES "^[^0-9]+") string(TOUPPER "${name}_LIBRARY" EXPORT_SYMBOL) @@ -122,38 +116,19 @@ function(add_qtc_library name) set(TEST_DEFINES WITH_TESTS SRCDIR="${CMAKE_CURRENT_SOURCE_DIR}") endif() - if (NOT (${library_type} STREQUAL "OBJECT" AND CMAKE_VERSION VERSION_LESS 3.14)) - target_link_libraries(${name} - PRIVATE ${depends} ${_TEST_DEPENDS} - PUBLIC ${public_depends} - ) - else() - foreach(list depends public_depends) - foreach(lib IN LISTS ${list}) - if (TARGET ${lib}) - target_compile_definitions(${name} PUBLIC $<TARGET_PROPERTY:${lib},INTERFACE_COMPILE_DEFINITIONS>) - target_include_directories(${name} PUBLIC $<TARGET_PROPERTY:${lib},INTERFACE_INCLUDE_DIRECTORIES>) - endif() - endforeach() - endforeach() - endif() - target_include_directories(${name} PRIVATE ${_arg_INCLUDES} - PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/.." ${_arg_PUBLIC_INCLUDES} + PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/.." ${_arg_PUBLIC_INCLUDES} ) target_compile_definitions(${name} PRIVATE ${EXPORT_SYMBOL} ${DEFAULT_DEFINES} ${_arg_DEFINES} ${TEST_DEFINES} PUBLIC ${_arg_PUBLIC_DEFINES} ) - foreach(obj_lib IN LISTS object_lib_depends) - target_compile_definitions(${name} PRIVATE $<TARGET_PROPERTY:${obj_lib},INTERFACE_COMPILE_DEFINITIONS>) - target_include_directories(${name} PRIVATE $<TARGET_PROPERTY:${obj_lib},INTERFACE_INCLUDE_DIRECTORIES>) - endforeach() - foreach(obj_lib IN LISTS object_public_depends) - target_compile_definitions(${name} PUBLIC $<TARGET_PROPERTY:${obj_lib},INTERFACE_COMPILE_DEFINITIONS>) - target_include_directories(${name} PUBLIC $<TARGET_PROPERTY:${obj_lib},INTERFACE_INCLUDE_DIRECTORIES>) - endforeach() + + add_qtc_depends(${name} + PRIVATE ${_arg_DEPENDS} ${_TEST_DEPENDS} + PUBLIC ${_arg_PUBLIC_DEPENDS} + ) foreach(file IN LISTS _arg_EXPLICIT_MOC) set_explicit_moc(${name} "${file}") @@ -323,7 +298,7 @@ function(add_qtc_plugin target_name) target_include_directories(${target_name} PRIVATE ${_arg_INCLUDES} "${CMAKE_CURRENT_SOURCE_DIR}/.." "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_BINARY_DIR}/src" - PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/.." ${_arg_PUBLIC_INCLUDES} + PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/.." ${_arg_PUBLIC_INCLUDES} ) target_compile_definitions(${target_name} PRIVATE ${EXPORT_SYMBOL} ${DEFAULT_DEFINES} ${_arg_DEFINES} ${TEST_DEFINES} @@ -364,7 +339,7 @@ function(add_qtc_plugin target_name) ) endfunction() -function(extend_qtc_plugin target_name) +function(extend_qtc_target target_name) cmake_parse_arguments(_arg "" "SOURCES_PREFIX" @@ -373,14 +348,13 @@ function(extend_qtc_plugin target_name) ) if (${_arg_UNPARSED_ARGUMENTS}) - message(FATAL_ERROR "extend_qtc_plugin had unparsed arguments") + message(FATAL_ERROR "extend_qtc_target had unparsed arguments") endif() - qtc_plugin_enabled(_plugin_enabled ${target_name}) if (NOT _arg_CONDITION) set(_arg_CONDITION ON) endif() - if ((NOT (${_arg_CONDITION})) OR (NOT _plugin_enabled)) + if (NOT (${_arg_CONDITION})) return() endif() @@ -400,6 +374,16 @@ function(extend_qtc_plugin target_name) foreach(file IN LISTS _arg_EXPLICIT_MOC) set_explicit_moc(${target_name} "${file}") endforeach() + +endfunction() + +function(extend_qtc_plugin target_name) + qtc_plugin_enabled(_plugin_enabled ${target_name}) + if (NOT _plugin_enabled) + return() + endif() + + extend_qtc_target(${target_name} ${ARGN}) endfunction() function(add_qtc_executable name) @@ -453,18 +437,15 @@ function(add_qtc_test name) set(TEST_DEFINES SRCDIR="${CMAKE_CURRENT_SOURCE_DIR}") file(RELATIVE_PATH _RPATH "/${IDE_BIN_PATH}" "/${IDE_LIBRARY_PATH}") - separate_object_libraries("${_arg_DEPENDS}" - depends object_lib_depends object_lib_depends_objects) + add_executable(${name} ${_arg_SOURCES}) - add_executable(${name} ${_arg_SOURCES} ${object_lib_depends_objects}) + add_qtc_depends(${name} + PRIVATE ${_arg_DEPENDS} ${_TEST_DEPENDS} + ) target_include_directories(${name} PRIVATE "${CMAKE_BINARY_DIR}/src" ${_arg_INCLUDES}) target_compile_definitions(${name} PRIVATE ${_arg_DEFINES} ${TEST_DEFINES} ${DEFAULT_DEFINES}) - target_link_libraries(${name} PRIVATE ${depends} ${_TEST_DEPENDS}) - foreach(obj_lib IN LISTS object_lib_depends) - target_compile_definitions(${name} PRIVATE $<TARGET_PROPERTY:${obj_lib},INTERFACE_COMPILE_DEFINITIONS>) - target_include_directories(${name} PRIVATE $<TARGET_PROPERTY:${obj_lib},INTERFACE_INCLUDE_DIRECTORIES>) - endforeach() + set_target_properties(${name} PROPERTIES BUILD_RPATH "${_RPATH_BASE}/${_RPATH}" INSTALL_RPATH "${_RPATH_BASE}/${_RPATH}" |