[Cmake] Added directory tree to VS solution.

This recreates structure from premake almost 1:1
This commit is contained in:
Gliniak
2026-03-07 20:26:45 +01:00
parent 6bb5453110
commit 9e5fc57f66

View File

@@ -94,6 +94,27 @@ function(xe_target_defaults target)
)
if(MSVC)
target_compile_options(${target} PRIVATE /WX)
# Recreate directory structure in Visual Studio filters
get_target_property(_srcs ${target} SOURCES)
if(_srcs)
set(_local_srcs)
set(_external_srcs)
foreach(_s IN LISTS _srcs)
get_filename_component(_abs "${_s}" ABSOLUTE)
string(FIND "${_abs}" "${CMAKE_CURRENT_SOURCE_DIR}" _pos)
if(_pos EQUAL 0)
list(APPEND _local_srcs "${_s}")
else()
list(APPEND _external_srcs "${_s}")
endif()
endforeach()
if(_local_srcs)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${_local_srcs})
endif()
if(_external_srcs)
source_group(TREE ${PROJECT_SOURCE_DIR} PREFIX "External" FILES ${_external_srcs})
endif()
endif()
elseif(NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# GCC is too noisy for -Werror; only apply to Clang
target_compile_options(${target} PRIVATE -Werror)
@@ -242,6 +263,7 @@ function(xe_test_suite name base_path)
target_link_libraries(${name} PRIVATE ${ARG_LINKS})
endif()
xe_target_defaults(${name})
set_target_properties(${name} PROPERTIES FOLDER "tests")
if(MSVC)
# Disable Edit and Continue - breaks Catch2 __LINE__ usage