diff options
4 files changed, 21 insertions, 1 deletions
diff --git a/src/corelib/Qt6CoreMacros.cmake b/src/corelib/Qt6CoreMacros.cmake index 7c43efff55..fc4c745c90 100644 --- a/src/corelib/Qt6CoreMacros.cmake +++ b/src/corelib/Qt6CoreMacros.cmake @@ -384,6 +384,19 @@ function(qt6_add_big_resources outfiles ) foreach(it ${rcc_files}) get_filename_component(outfilename ${it} NAME_WE) + + # Provide unique targets and output file names + # in case we add multiple .qrc files with the same base name. + string(MAKE_C_IDENTIFIER "_qt_big_resource_count_${outfilename}" prop) + get_property(count GLOBAL PROPERTY ${prop}) + if(count) + string(APPEND outfilename "_${count}") + else() + set(count 0) + endif() + math(EXPR count "${count} + 1") + set_property(GLOBAL PROPERTY ${prop} ${count}) + get_filename_component(infile ${it} ABSOLUTE) set(tmpoutfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}tmp.cpp) set(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.o) diff --git a/tests/auto/cmake/test_add_big_resource/CMakeLists.txt b/tests/auto/cmake/test_add_big_resource/CMakeLists.txt index 49abde6650..59e5705925 100644 --- a/tests/auto/cmake/test_add_big_resource/CMakeLists.txt +++ b/tests/auto/cmake/test_add_big_resource/CMakeLists.txt @@ -9,7 +9,8 @@ find_package(Qt6Core REQUIRED) qt_wrap_cpp(moc_files myobject.h) -qt_add_big_resources(rcc_files "test_add_big_resource.qrc" "test_add_big_resource2.qrc") +qt_add_big_resources(rcc_files "test_add_big_resource.qrc" "test_add_big_resource2.qrc" + "subdir/test_add_big_resource.qrc") add_executable(myobject myobject.cpp ${moc_files} ${rcc_files}) target_link_libraries(myobject PRIVATE Qt::Core) diff --git a/tests/auto/cmake/test_add_big_resource/subdir/subdir_resource_file.txt b/tests/auto/cmake/test_add_big_resource/subdir/subdir_resource_file.txt new file mode 100644 index 0000000000..2c604a4f18 --- /dev/null +++ b/tests/auto/cmake/test_add_big_resource/subdir/subdir_resource_file.txt @@ -0,0 +1 @@ +Ken sent me. diff --git a/tests/auto/cmake/test_add_big_resource/subdir/test_add_big_resource.qrc b/tests/auto/cmake/test_add_big_resource/subdir/test_add_big_resource.qrc new file mode 100644 index 0000000000..9bf4f19823 --- /dev/null +++ b/tests/auto/cmake/test_add_big_resource/subdir/test_add_big_resource.qrc @@ -0,0 +1,5 @@ +<!DOCTYPE RCC><RCC version="1.0"> +<qresource prefix="/"> + <file>subdir_resource_file.txt</file> +</qresource> +</RCC> |