mirror of
https://github.com/overte-org/overte.git
synced 2025-08-07 18:30:42 +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)
|
get_target_property(LINKED_TARGET_DEPENDENCY_INCLUDES ${HIFI_LIBRARY} DEPENDENCY_INCLUDES)
|
||||||
list(APPEND ${TARGET_NAME}_DEPENDENCY_INCLUDES ${LINKED_TARGET_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()
|
endforeach()
|
||||||
|
|
||||||
endmacro(LINK_HIFI_LIBRARIES)
|
endmacro(LINK_HIFI_LIBRARIES)
|
|
@ -24,10 +24,25 @@ macro(LINK_SHARED_DEPENDENCIES)
|
||||||
include_directories(SYSTEM ${${TARGET_NAME}_DEPENDENCY_INCLUDES})
|
include_directories(SYSTEM ${${TARGET_NAME}_DEPENDENCY_INCLUDES})
|
||||||
endif ()
|
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
|
# 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}")
|
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 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_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_INCLUDES "${${TARGET_NAME}_DEPENDENCY_INCLUDES}")
|
||||||
|
set_target_properties(${TARGET_NAME} PROPERTIES DEPENDENCY_QT_MODULES "${${TARGET_NAME}_DEPENDENCY_QT_MODULES}")
|
||||||
endmacro(LINK_SHARED_DEPENDENCIES)
|
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
|
# create a library and set the property so it can be referenced later
|
||||||
add_library(${TARGET_NAME} ${LIB_SRCS} ${AUTOMTC_SRC})
|
add_library(${TARGET_NAME} ${LIB_SRCS} ${AUTOMTC_SRC})
|
||||||
|
|
||||||
set(QT_MODULES_TO_LINK ${ARGN})
|
set(${TARGET_NAME}_DEPENDENCY_QT_MODULES ${ARGN})
|
||||||
list(APPEND QT_MODULES_TO_LINK Core)
|
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)
|
endmacro(SETUP_HIFI_LIBRARY)
|
|
@ -25,17 +25,6 @@ macro(SETUP_HIFI_PROJECT)
|
||||||
# add the executable, include additional optional sources
|
# add the executable, include additional optional sources
|
||||||
add_executable(${TARGET_NAME} ${TARGET_SRCS} "${AUTOMTC_SRC}")
|
add_executable(${TARGET_NAME} ${TARGET_SRCS} "${AUTOMTC_SRC}")
|
||||||
|
|
||||||
set(QT_MODULES_TO_LINK ${ARGN})
|
set(${TARGET_NAME}_DEPENDENCY_QT_MODULES ${ARGN})
|
||||||
list(APPEND QT_MODULES_TO_LINK Core)
|
list(APPEND ${TARGET_NAME}_DEPENDENCY_QT_MODULES 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()
|
|
||||||
|
|
||||||
endmacro()
|
endmacro()
|
Loading…
Reference in a new issue