set_property(GLOBAL PROPERTY USE_FOLDERS YES) # Call this function at the end of a directory scope to assign a folder to # targets created in that directory. Utility targets will be assigned to the # UtilityTargets folder, otherwise to the ${name}Targets folder. If a target # already has a folder assigned, then that target will be skipped. function(add_folders name) get_property(targets DIRECTORY PROPERTY BUILDSYSTEM_TARGETS) foreach(target IN LISTS targets) get_property(folder TARGET "${target}" PROPERTY FOLDER) if(DEFINED folder) continue() endif() set(folder Utility) get_property(type TARGET "${target}" PROPERTY TYPE) if(NOT type STREQUAL "UTILITY") set(folder "${name}") endif() set_property(TARGET "${target}" PROPERTY FOLDER "${folder}Targets") endforeach() endfunction()