mirror of
https://github.com/StrikerX3/StrikeBox.git
synced 2024-05-22 22:47:17 -04:00
3ef26120ee
Restructure CMake projects
34 lines
1.3 KiB
CMake
34 lines
1.3 KiB
CMake
# Add Visual Studio filters to better organize the code
|
|
function(vs_set_filters)
|
|
cmake_parse_arguments(VS_SET_FILTERS "" "FILTER_ROOT;BASE_DIR" "SOURCES" ${ARGN})
|
|
if(MSVC)
|
|
foreach(FILE IN ITEMS ${VS_SET_FILTERS_SOURCES})
|
|
# Get the directory of the source file
|
|
get_filename_component(PARENT_DIR "${FILE}" DIRECTORY)
|
|
|
|
# Remove common directory prefix to make the group
|
|
if(BASE_DIR STREQUAL "")
|
|
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" GROUP "${PARENT_DIR}")
|
|
else()
|
|
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/${VS_SET_FILTERS_BASE_DIR}" "" GROUP "${PARENT_DIR}")
|
|
endif()
|
|
|
|
# Use Windows path separators
|
|
string(REPLACE "/" "\\" GROUP "${GROUP}")
|
|
|
|
# Add to filter
|
|
source_group("${VS_SET_FILTERS_FILTER_ROOT}${GROUP}" FILES "${FILE}")
|
|
endforeach()
|
|
endif()
|
|
endfunction()
|
|
|
|
# Make the Debug and RelWithDebInfo targets use Program Database for Edit and Continue for easier debugging
|
|
function(vs_use_edit_and_continue)
|
|
if(MSVC)
|
|
string(REPLACE "/Zi" "/ZI" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
|
string(REPLACE "/Zi" "/ZI" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
|
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG} PARENT_SCOPE)
|
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} PARENT_SCOPE)
|
|
endif()
|
|
endfunction()
|