From fd41177c4d3b9155c3c8a1f15f7a86b9943cc49d Mon Sep 17 00:00:00 2001 From: kindem Date: Wed, 24 Dec 2025 22:40:02 +0800 Subject: [PATCH 1/2] refactor: check cmake TODO and useless options --- CMakeLists.txt | 1 - Editor/CMakeLists.txt | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c4f71657..2ba03855 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,6 @@ set(CMAKE_PROJECT_TOP_LEVEL_INCLUDES ${CMAKE_SOURCE_DIR}/conan_provider.cmake CA project(Explosion) option(BUILD_EDITOR "Build Explosion editor" ON) -option(CI "Build in CI" OFF) set(SUB_PROJECT_NAME "Engine" CACHE STRING "" FORCE) set(ENGINE_SUB_PROJECT_NAME "Engine" CACHE STRING "" FORCE) diff --git a/Editor/CMakeLists.txt b/Editor/CMakeLists.txt index a1e5ec33..bf5c3b35 100644 --- a/Editor/CMakeLists.txt +++ b/Editor/CMakeLists.txt @@ -93,10 +93,10 @@ elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") ) endif () +# TODO check is this need ? if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") foreach (rhi_dep_target ${RHI_DEP_TARGETS}) list(APPEND rhi_dep_target_copy_commands COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $/../Frameworks/$) - # TODO also copy runtime dep of runtime dep endforeach () add_custom_command( From d0fb32f1ac74bf0bbfe2ad7843a752580b0cc2bf Mon Sep 17 00:00:00 2001 From: kindem Date: Wed, 24 Dec 2025 23:04:37 +0800 Subject: [PATCH 2/2] feat: support cmake targets folder property --- CMake/Target.cmake | 15 +++++++++++++++ Editor/CMakeLists.txt | 2 ++ 2 files changed, 17 insertions(+) diff --git a/CMake/Target.cmake b/CMake/Target.cmake index 45859a86..86123845 100644 --- a/CMake/Target.cmake +++ b/CMake/Target.cmake @@ -2,6 +2,9 @@ option(BUILD_TEST "Build unit tests" ON) option(BUILD_SAMPLE "Build sample" ON) set(API_HEADER_DIR ${CMAKE_BINARY_DIR}/Generated/Api CACHE PATH "" FORCE) +set(BASE_TARGETS_FOLDER "${ENGINE_SUB_PROJECT_NAME}" CACHE STRING "" FORCE) +set(SAMPLE_TARGETS_FOLDER "${BASE_TARGETS_FOLDER}/Sample" CACHE STRING "" FORCE) +set(AUX_TARGETS_FOLDER "${BASE_TARGETS_FOLDER}/Aux" CACHE STRING "" FORCE) if (${BUILD_TEST}) enable_testing() @@ -137,6 +140,7 @@ function(exp_add_resources_copy_command) ${copy_res_target_name} ${copy_commands} ) + set_target_properties(${copy_res_target_name} PROPERTIES FOLDER ${AUX_TARGETS_FOLDER}) add_dependencies(${arg_NAME} ${copy_res_target_name}) endfunction() @@ -249,6 +253,7 @@ function(exp_add_mirror_info_source_generation_target) ${custom_target_name} DEPENDS MirrorTool ${output_sources} ) + set_target_properties(${custom_target_name} PROPERTIES FOLDER ${AUX_TARGETS_FOLDER}) set(${arg_OUTPUT_SRC} ${output_sources} PARENT_SCOPE) set(${arg_OUTPUT_TARGET_NAME} ${custom_target_name} PARENT_SCOPE) @@ -289,6 +294,12 @@ function(exp_add_executable) ${arg_NAME} PRIVATE ${arg_SRC} ${generated_src} ) + if (${arg_SAMPLE}) + set_target_properties(${arg_NAME} PROPERTIES FOLDER ${SAMPLE_TARGETS_FOLDER}) + else () + set_target_properties(${arg_NAME} PROPERTIES FOLDER ${BASE_TARGETS_FOLDER}) + endif () + get_cmake_property(generated_is_multi_config GENERATOR_IS_MULTI_CONFIG) if (${generated_is_multi_config}) set(runtime_output_dir ${CMAKE_BINARY_DIR}/Dist/$/${SUB_PROJECT_NAME}/Binaries) @@ -385,6 +396,8 @@ function(exp_add_library) ${arg_NAME} ${arg_TYPE} ) + set_target_properties(${arg_NAME} PROPERTIES FOLDER ${BASE_TARGETS_FOLDER}) + target_sources( ${arg_NAME} PRIVATE ${arg_SRC} ${generated_src} @@ -553,6 +566,8 @@ function(exp_add_test) endif() add_executable(${arg_NAME}) + set_target_properties(${arg_NAME} PROPERTIES FOLDER ${BASE_TARGETS_FOLDER}) + target_sources( ${arg_NAME} PRIVATE ${arg_SRC} ${generated_src} diff --git a/Editor/CMakeLists.txt b/Editor/CMakeLists.txt index bf5c3b35..d48c4e47 100644 --- a/Editor/CMakeLists.txt +++ b/Editor/CMakeLists.txt @@ -34,6 +34,7 @@ exp_add_mirror_info_source_generation_target( file(GLOB_RECURSE SOURCES Src/*.cpp) qt_add_executable(Editor ${platform_executable_hint} ${SOURCES} ${EDITOR_MIRROR_GENERATED_SRC}) +set_target_properties(Editor PROPERTIES FOLDER ${BASE_TARGETS_FOLDER}) get_cmake_property(GENERATOR_IS_MULTI_CONFIG GENERATOR_IS_MULTI_CONFIG) if (${GENERATOR_IS_MULTI_CONFIG}) @@ -150,6 +151,7 @@ add_custom_target( WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Web VERBATIM ) +set_target_properties(Editor.Web PROPERTIES FOLDER ${AUX_TARGETS_FOLDER}) add_dependencies(Editor Editor.Web) add_custom_command(