Store generated resource files in hidden directories

Store generated qrc, cpp and qmlcachegen file from invocations of
add_qt_resource/qt6_add_resources/qt6_process_resources under .rcc
in the target's binary directory.

Change-Id: I844f97acfabe6b54db85e7a7a0c9c25694452bd3
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CMake Build Bot
This commit is contained in:
Leander Beernaert 2019-09-19 12:53:32 +02:00
parent 9bc3968aae
commit 2feb54b15b

View File

@ -71,7 +71,7 @@ function(__qt_quick_compiler_process_resources target resource_name)
set(retained_resource_paths) set(retained_resource_paths)
if (TARGET @QT_CMAKE_EXPORT_NAMESPACE@::qmlcachegen AND qml_files) if (TARGET @QT_CMAKE_EXPORT_NAMESPACE@::qmlcachegen AND qml_files)
# Enable qt quick compiler support # Enable qt quick compiler support
set(qml_resource_file "${CMAKE_CURRENT_BINARY_DIR}/${resource_name}.qrc") set(qml_resource_file "${CMAKE_CURRENT_BINARY_DIR}/.rcc/${resource_name}.qrc")
if (resource_files) if (resource_files)
set(chained_resource_name "${resource_name}_qmlcache") set(chained_resource_name "${resource_name}_qmlcache")
endif() endif()
@ -95,7 +95,7 @@ function(__qt_quick_compiler_process_resources target resource_name)
string(REGEX REPLACE "\.mjs$" "_mjs" compiled_file ${compiled_file}) string(REGEX REPLACE "\.mjs$" "_mjs" compiled_file ${compiled_file})
string(REGEX REPLACE "\.qml$" "_qml" compiled_file ${compiled_file}) string(REGEX REPLACE "\.qml$" "_qml" compiled_file ${compiled_file})
string(REGEX REPLACE "[\$#\?]+" "_" compiled_file ${compiled_file}) string(REGEX REPLACE "[\$#\?]+" "_" compiled_file ${compiled_file})
set(compiled_file "${CMAKE_CURRENT_BINARY_DIR}/qmlcache/${resource_name}/${compiled_file}.cpp") set(compiled_file "${CMAKE_CURRENT_BINARY_DIR}/.rcc/qmlcache/${resource_name}/${compiled_file}.cpp")
add_custom_command( add_custom_command(
OUTPUT ${compiled_file} OUTPUT ${compiled_file}
DEPENDS ${file_absolute} DEPENDS ${file_absolute}
@ -109,20 +109,20 @@ function(__qt_quick_compiler_process_resources target resource_name)
target_sources(${target} PRIVATE ${compiled_file}) target_sources(${target} PRIVATE ${compiled_file})
endforeach() endforeach()
set(qmlcache_loader_list "${CMAKE_CURRENT_BINARY_DIR}/qmlcache/${resource_name}/qml_loader_file_list.rsp") set(qmlcache_loader_list "${CMAKE_CURRENT_BINARY_DIR}/.rcc/qmlcache/${resource_name}/qml_loader_file_list.rsp")
file(GENERATE file(GENERATE
OUTPUT ${qmlcache_loader_list} OUTPUT ${qmlcache_loader_list}
CONTENT "$<JOIN:${file_resource_paths},\n>" CONTENT "$<JOIN:${file_resource_paths},\n>"
) )
set(qmlcache_loader_file "${CMAKE_CURRENT_BINARY_DIR}/qmlcache/${resource_name}/qmlcache_loader.cpp") set(qmlcache_loader_file "${CMAKE_CURRENT_BINARY_DIR}/.rcc/qmlcache/${resource_name}/qmlcache_loader.cpp")
set(resource_name_arg "${resource_name}.qrc") set(resource_name_arg "${resource_name}.qrc")
if (chained_resource_name) if (chained_resource_name)
set(resource_name_arg "${resource_name_arg}=${chained_resource_name}") set(resource_name_arg "${resource_name_arg}=${chained_resource_name}")
endif() endif()
if (retained_resource_paths) if (retained_resource_paths)
set(retained_loader_list "${CMAKE_CURRENT_BINARY_DIR}/qmlcache/${resource_name}/retained_file_list.rsp") set(retained_loader_list "${CMAKE_CURRENT_BINARY_DIR}/.rcc/qmlcache/${resource_name}/retained_file_list.rsp")
file(GENERATE file(GENERATE
OUTPUT ${retained_loader_list} OUTPUT ${retained_loader_list}
CONTENT "$<JOIN:${retained_resource_paths},\n>" CONTENT "$<JOIN:${retained_resource_paths},\n>"
@ -234,8 +234,8 @@ function(QT@PROJECT_VERSION_MAJOR@_PROCESS_RESOURCE target resourceName)
return() return()
endif() endif()
list(APPEND output_targets ${output_target_quick}) list(APPEND output_targets ${output_target_quick})
set(generatedResourceFile "${CMAKE_CURRENT_BINARY_DIR}/generated_${newResourceName}.qrc") set(generatedResourceFile "${CMAKE_CURRENT_BINARY_DIR}/.rcc/generated_${newResourceName}.qrc")
set(generatedSourceCode "${CMAKE_CURRENT_BINARY_DIR}/qrc_${newResourceName}.cpp") set(generatedSourceCode "${CMAKE_CURRENT_BINARY_DIR}/.rcc/qrc_${newResourceName}.cpp")
# Generate .qrc file: # Generate .qrc file: