CMake: Extract resource object file recording into new function
This function will be used by qtdeclarative CMake functions to record resource object file information for Qml-specific generated resources (like the ones containing qmldir and qml files). Task-number: QTBUG-87702 Change-Id: I17c295821775d005dea82d9fbdf83d7ee613f615 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
parent
f9dcade5e7
commit
b233b5f31e
@ -21,28 +21,32 @@ function(qt_internal_add_resource target resourceName)
|
|||||||
EXPORT "${INSTALL_CMAKE_NAMESPACE}${target}Targets"
|
EXPORT "${INSTALL_CMAKE_NAMESPACE}${target}Targets"
|
||||||
DESTINATION ${INSTALL_LIBDIR}
|
DESTINATION ${INSTALL_LIBDIR}
|
||||||
)
|
)
|
||||||
foreach(out_target ${out_targets})
|
|
||||||
get_target_property(resource_name ${out_target} QT_RESOURCE_NAME)
|
|
||||||
if(NOT resource_name)
|
|
||||||
continue()
|
|
||||||
endif()
|
|
||||||
if(QT_WILL_INSTALL)
|
|
||||||
# Compute the install location of the rcc object file.
|
|
||||||
# This is the relative path below the install destination (install_prefix/lib).
|
|
||||||
# See CMake's computeInstallObjectDir function.
|
|
||||||
set(object_file_name "qrc_${resource_name}.cpp${CMAKE_CXX_OUTPUT_EXTENSION}")
|
|
||||||
qt_path_join(rcc_object_file_path
|
|
||||||
"objects-$<CONFIG>" ${out_target} .rcc "${object_file_name}")
|
|
||||||
else()
|
|
||||||
# In a non-prefix build we use the object file paths right away.
|
|
||||||
set(rcc_object_file_path $<TARGET_OBJECTS:$<TARGET_NAME:${out_target}>>)
|
|
||||||
endif()
|
|
||||||
set_property(TARGET ${target} APPEND PROPERTY QT_RCC_OBJECTS "${rcc_object_file_path}")
|
|
||||||
|
|
||||||
# Make sure that the target cpp files are compiled with the regular Qt internal compile
|
qt_internal_record_rcc_object_files("${target}" "${out_targets}")
|
||||||
# flags, needed for building iOS apps with qmake where bitcode is involved.
|
|
||||||
target_link_libraries("${out_target}" PRIVATE Qt::PlatformModuleInternal)
|
|
||||||
endforeach()
|
|
||||||
endif()
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(qt_internal_record_rcc_object_files target resource_targets)
|
||||||
|
foreach(out_target ${resource_targets})
|
||||||
|
get_target_property(resource_name ${out_target} QT_RESOURCE_NAME)
|
||||||
|
if(NOT resource_name)
|
||||||
|
continue()
|
||||||
|
endif()
|
||||||
|
if(QT_WILL_INSTALL)
|
||||||
|
# Compute the install location of the rcc object file.
|
||||||
|
# This is the relative path below the install destination (install_prefix/lib).
|
||||||
|
# See CMake's computeInstallObjectDir function.
|
||||||
|
set(object_file_name "qrc_${resource_name}.cpp${CMAKE_CXX_OUTPUT_EXTENSION}")
|
||||||
|
qt_path_join(rcc_object_file_path
|
||||||
|
"objects-$<CONFIG>" ${out_target} .rcc "${object_file_name}")
|
||||||
|
else()
|
||||||
|
# In a non-prefix build we use the object file paths right away.
|
||||||
|
set(rcc_object_file_path $<TARGET_OBJECTS:$<TARGET_NAME:${out_target}>>)
|
||||||
|
endif()
|
||||||
|
set_property(TARGET ${target} APPEND PROPERTY QT_RCC_OBJECTS "${rcc_object_file_path}")
|
||||||
|
|
||||||
|
# Make sure that the target cpp files are compiled with the regular Qt internal compile
|
||||||
|
# flags, needed for building iOS apps with qmake where bitcode is involved.
|
||||||
|
target_link_libraries("${out_target}" PRIVATE Qt::PlatformModuleInternal)
|
||||||
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
Loading…
Reference in New Issue
Block a user