diff --git a/cmake/QskConfigMacros.cmake b/cmake/QskConfigMacros.cmake index 0d373c18..9ffa9075 100644 --- a/cmake/QskConfigMacros.cmake +++ b/cmake/QskConfigMacros.cmake @@ -163,3 +163,23 @@ macro(qsk_finalize_build_flags) endif() endmacro() + +function(qsk_internal_sync_generated_target_folder directory) + # loop through all targets in the directory recursively and + # synchronize the generated target's folder property with + # the actual target's folder property + get_property(TARGETS DIRECTORY "${directory}" PROPERTY BUILDSYSTEM_TARGETS) + foreach(target IN LISTS TARGETS) + if(TARGET ${target}_qmlimportscan) + get_target_property(folder ${target} FOLDER) + set_target_properties(${target}_qmlimportscan PROPERTIES FOLDER ${folder}) + message(DEBUG "Adjusting target '${target}_qmlimportscan' folder property to ${target}'s folder property '${folder}'") + endif() + endforeach() + + # scan directory recursively + get_property(SUBDIRS DIRECTORY "${directory}" PROPERTY SUBDIRECTORIES) + foreach(SUBDIR IN LISTS SUBDIRS) + qsk_internal_sync_generated_target_folder("${SUBDIR}") + endforeach() +endfunction() \ No newline at end of file diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index cd9c7b8f..494ce48e 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -21,3 +21,5 @@ if( BUILD_QML_EXPORT ) add_subdirectory(glabels) add_subdirectory(messageboxQml) endif() + +qsk_internal_sync_generated_target_folder(${CMAKE_CURRENT_LIST_DIR}) \ No newline at end of file diff --git a/playground/CMakeLists.txt b/playground/CMakeLists.txt index 4dab3e0a..6a9bfb3f 100644 --- a/playground/CMakeLists.txt +++ b/playground/CMakeLists.txt @@ -29,3 +29,5 @@ endif() if(TARGET Qt::QuickWidgets) add_subdirectory(grids) endif() + +qsk_internal_sync_generated_target_folder(${CMAKE_CURRENT_LIST_DIR}) \ No newline at end of file