mirror of
https://github.com/lubosz/overte.git
synced 2025-04-09 09:44:33 +02:00
have targets bubble up their Qt modules
This commit is contained in:
parent
737741c13b
commit
2ee33cef9f
4 changed files with 23 additions and 24 deletions
|
@ -33,6 +33,10 @@ macro(LINK_HIFI_LIBRARIES)
|
|||
get_target_property(LINKED_TARGET_DEPENDENCY_INCLUDES ${HIFI_LIBRARY} DEPENDENCY_INCLUDES)
|
||||
list(APPEND ${TARGET_NAME}_DEPENDENCY_INCLUDES ${LINKED_TARGET_DEPENDENCY_INCLUDES})
|
||||
|
||||
# ask the library what its qt module dependencies are and link them
|
||||
get_target_property(LINKED_TARGET_DEPENDENCY_QT_MODULES ${HIFI_LIBRARY} DEPENDENCY_QT_MODULES)
|
||||
list(APPEND ${TARGET_NAME}_DEPENDENCY_QT_MODULES ${LINKED_TARGET_DEPENDENCY_QT_MODULES})
|
||||
|
||||
endforeach()
|
||||
|
||||
endmacro(LINK_HIFI_LIBRARIES)
|
|
@ -24,10 +24,25 @@ macro(LINK_SHARED_DEPENDENCIES)
|
|||
include_directories(SYSTEM ${${TARGET_NAME}_DEPENDENCY_INCLUDES})
|
||||
endif ()
|
||||
|
||||
if (${TARGET_NAME}_DEPENDENCY_QT_MODULES)
|
||||
list(REMOVE_DUPLICATES ${TARGET_NAME}_DEPENDENCY_QT_MODULES)
|
||||
|
||||
message(${TARGET_NAME})
|
||||
message(${${TARGET_NAME}_DEPENDENCY_QT_MODULES})
|
||||
|
||||
# find these Qt modules and link them to our own target
|
||||
find_package(Qt5 COMPONENTS ${${TARGET_NAME}_DEPENDENCY_QT_MODULES} REQUIRED)
|
||||
|
||||
foreach(QT_MODULE ${QT_MODULES_TO_LINK})
|
||||
target_link_libraries(${TARGET_NAME} Qt5::${QT_MODULE})
|
||||
endforeach()
|
||||
endif ()
|
||||
|
||||
# we've already linked our Qt modules, but we need to bubble them up to parents
|
||||
list(APPEND ${TARGET_NAME}_LIBRARIES_TO_LINK "${${TARGET_NAME}_QT_MODULES_TO_LINK}")
|
||||
|
||||
# set the property on this target so it can be retreived by targets linking to us
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES DEPENDENCY_LIBRARIES "${${TARGET_NAME}_LIBRARIES_TO_LINK}")
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES DEPENDENCY_INCLUDES "${${TARGET_NAME}_DEPENDENCY_INCLUDES}")
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES DEPENDENCY_QT_MODULES "${${TARGET_NAME}_DEPENDENCY_QT_MODULES}")
|
||||
endmacro(LINK_SHARED_DEPENDENCIES)
|
|
@ -18,16 +18,7 @@ macro(SETUP_HIFI_LIBRARY)
|
|||
# create a library and set the property so it can be referenced later
|
||||
add_library(${TARGET_NAME} ${LIB_SRCS} ${AUTOMTC_SRC})
|
||||
|
||||
set(QT_MODULES_TO_LINK ${ARGN})
|
||||
list(APPEND QT_MODULES_TO_LINK Core)
|
||||
set(${TARGET_NAME}_DEPENDENCY_QT_MODULES ${ARGN})
|
||||
list(APPEND ${TARGET_NAME}_DEPENDENCY_QT_MODULES Core)
|
||||
|
||||
find_package(Qt5 COMPONENTS ${QT_MODULES_TO_LINK} REQUIRED)
|
||||
|
||||
foreach(QT_MODULE ${QT_MODULES_TO_LINK})
|
||||
get_target_property(QT_LIBRARY_LOCATION Qt5::${QT_MODULE} LOCATION)
|
||||
|
||||
# add the actual path to the Qt module to our LIBRARIES_TO_LINK variable
|
||||
target_link_libraries(${TARGET_NAME} Qt5::${QT_MODULE})
|
||||
list(APPEND ${TARGET_NAME}_QT_MODULES_TO_LINK ${QT_LIBRARY_LOCATION})
|
||||
endforeach()
|
||||
endmacro(SETUP_HIFI_LIBRARY)
|
|
@ -25,17 +25,6 @@ macro(SETUP_HIFI_PROJECT)
|
|||
# add the executable, include additional optional sources
|
||||
add_executable(${TARGET_NAME} ${TARGET_SRCS} "${AUTOMTC_SRC}")
|
||||
|
||||
set(QT_MODULES_TO_LINK ${ARGN})
|
||||
list(APPEND QT_MODULES_TO_LINK Core)
|
||||
|
||||
find_package(Qt5 COMPONENTS ${QT_MODULES_TO_LINK} REQUIRED)
|
||||
|
||||
foreach(QT_MODULE ${QT_MODULES_TO_LINK})
|
||||
target_link_libraries(${TARGET_NAME} Qt5::${QT_MODULE})
|
||||
|
||||
# add the actual path to the Qt module to our LIBRARIES_TO_LINK variable
|
||||
get_target_property(QT_LIBRARY_LOCATION Qt5::${QT_MODULE} LOCATION)
|
||||
list(APPEND ${TARGET_NAME}_QT_MODULES_TO_LINK ${QT_LIBRARY_LOCATION})
|
||||
endforeach()
|
||||
|
||||
set(${TARGET_NAME}_DEPENDENCY_QT_MODULES ${ARGN})
|
||||
list(APPEND ${TARGET_NAME}_DEPENDENCY_QT_MODULES Core)
|
||||
endmacro()
|
Loading…
Reference in a new issue