From 8dbc2024c69bb441fea4f6e5ede85a4bf268b123 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sat, 13 May 2023 00:14:53 +0200 Subject: [PATCH] CMake code improvements Use the 'add_module' macro to add modules without creating duplicate code. This macro also takes a reuse PCH as parameter, so modules that need a precompiled header, could reuse those from different targets that compile them. This commit also restructures the group order of the generated solution files for easier code navigation. --- r5dev/CMakeLists.txt | 63 ++++++++++++++---------- r5dev/appframework/CMakeLists.txt | 5 +- r5dev/cmake/Macros.cmake | 7 ++- r5dev/codecs/CMakeLists.txt | 5 +- r5dev/core/CMakeLists.txt | 7 +-- r5dev/datacache/CMakeLists.txt | 5 +- r5dev/ebisusdk/CMakeLists.txt | 5 +- r5dev/engine/CMakeLists.txt | 5 +- r5dev/filesystem/CMakeLists.txt | 5 +- r5dev/game/CMakeLists.txt | 10 ++-- r5dev/gameui/CMakeLists.txt | 5 +- r5dev/inputsystem/CMakeLists.txt | 5 +- r5dev/launcher/CMakeLists.txt | 5 +- r5dev/localize/CMakeLists.txt | 5 +- r5dev/materialsystem/CMakeLists.txt | 5 +- r5dev/mathlib/CMakeLists.txt | 4 +- r5dev/naveditor/CMakeLists.txt | 4 +- r5dev/netconsole/CMakeLists.txt | 5 +- r5dev/networksystem/CMakeLists.txt | 5 +- r5dev/pluginsdk/CMakeLists.txt | 6 +-- r5dev/pluginsystem/CMakeLists.txt | 5 +- r5dev/protoc/CMakeLists.txt | 5 +- r5dev/rtech/CMakeLists.txt | 5 +- r5dev/sdklauncher/CMakeLists.txt | 9 ++-- r5dev/thirdparty/cppnet/CMakeLists.txt | 4 +- r5dev/thirdparty/curl/CMakeLists.txt | 4 +- r5dev/thirdparty/detours/CMakeLists.txt | 4 +- r5dev/thirdparty/fastlz/CMakeLists.txt | 4 +- r5dev/thirdparty/imgui/CMakeLists.txt | 4 +- r5dev/thirdparty/lzham/CMakeLists.txt | 4 +- r5dev/thirdparty/protobuf/CMakeLists.txt | 4 +- r5dev/thirdparty/recast/CMakeLists.txt | 19 ++----- r5dev/thirdparty/sdl/CMakeLists.txt | 4 +- r5dev/thirdparty/spdlog/CMakeLists.txt | 4 +- r5dev/tier0/CMakeLists.txt | 4 +- r5dev/tier1/CMakeLists.txt | 7 +-- r5dev/tier2/CMakeLists.txt | 5 +- r5dev/vgui/CMakeLists.txt | 5 +- r5dev/vguimatsurface/CMakeLists.txt | 5 +- r5dev/vpc/CMakeLists.txt | 4 +- r5dev/vphysics/CMakeLists.txt | 5 +- r5dev/vpklib/CMakeLists.txt | 5 +- r5dev/vscript/CMakeLists.txt | 5 +- r5dev/vstdlib/CMakeLists.txt | 6 +-- 44 files changed, 97 insertions(+), 199 deletions(-) diff --git a/r5dev/CMakeLists.txt b/r5dev/CMakeLists.txt index 82150530..4a71e52a 100644 --- a/r5dev/CMakeLists.txt +++ b/r5dev/CMakeLists.txt @@ -1,53 +1,64 @@ cmake_minimum_required( VERSION 3.16 ) project( sdk ) -add_subdirectory( vpc ) # Must be the first as this creates the shared PCH! +set( FOLDER_CONTEXT "Foundation" ) +add_subdirectory( vpc ) # VPC and Tier0 must be the first as this creates the shared PCH! add_subdirectory( tier0 ) add_subdirectory( tier1 ) add_subdirectory( tier2 ) +add_subdirectory( rtech ) +add_subdirectory( protoc ) +add_subdirectory( appframework ) + +set( FOLDER_CONTEXT "Libraries" ) +add_subdirectory( mathlib ) add_subdirectory( vpklib ) -add_subdirectory( vscript ) add_subdirectory( vstdlib ) add_subdirectory( vphysics ) +add_subdirectory( ebisusdk ) +add_subdirectory( codecs ) + +set( FOLDER_CONTEXT "UI" ) add_subdirectory( vguimatsurface ) add_subdirectory( vgui ) -add_subdirectory( thirdparty/detours ) +set( FOLDER_CONTEXT "Thirdparty" ) add_subdirectory( thirdparty/cppnet ) +add_subdirectory( thirdparty/curl ) +add_subdirectory( thirdparty/sdl ) +add_subdirectory( thirdparty/imgui ) +add_subdirectory( thirdparty/spdlog ) add_subdirectory( thirdparty/lzham ) add_subdirectory( thirdparty/fastlz ) -add_subdirectory( thirdparty/imgui ) -add_subdirectory( thirdparty/curl ) -add_subdirectory( thirdparty/protobuf ) -add_subdirectory( thirdparty/spdlog ) -add_subdirectory( thirdparty/sdl ) + +set( FOLDER_CONTEXT "Thirdparty/Recast" ) add_subdirectory( thirdparty/recast ) +set( FOLDER_CONTEXT "Thirdparty/Microsoft" ) +add_subdirectory( thirdparty/detours ) + +set( FOLDER_CONTEXT "Thirdparty/Google" ) +add_subdirectory( thirdparty/protobuf ) + +set( FOLDER_CONTEXT "Tools" ) add_subdirectory( sdklauncher ) -add_subdirectory( rtech ) -add_subdirectory( protoc ) - - -add_subdirectory( networksystem ) -add_subdirectory( pluginsystem ) -add_subdirectory( pluginsdk ) - -add_subdirectory( mathlib ) add_subdirectory( netconsole ) add_subdirectory( naveditor ) - +set( FOLDER_CONTEXT "System" ) +add_subdirectory( networksystem ) +add_subdirectory( pluginsystem ) add_subdirectory( materialsystem ) - -add_subdirectory( localize ) add_subdirectory( inputsystem ) -add_subdirectory( game ) - -add_subdirectory( datacache ) add_subdirectory( filesystem ) -add_subdirectory( ebisusdk ) -add_subdirectory( codecs ) +add_subdirectory( datacache ) +add_subdirectory( localize ) add_subdirectory( engine ) +set( FOLDER_CONTEXT "Plugins" ) +add_subdirectory( pluginsdk ) + +set( FOLDER_CONTEXT "Game" ) +add_subdirectory( vscript ) +add_subdirectory( game ) add_subdirectory( core ) -add_subdirectory( appframework ) diff --git a/r5dev/appframework/CMakeLists.txt b/r5dev/appframework/CMakeLists.txt index a2e34bae..a3607f9c 100644 --- a/r5dev/appframework/CMakeLists.txt +++ b/r5dev/appframework/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( appframework ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "appframework" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -15,4 +13,3 @@ add_sources( SOURCE_GROUP "Public" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/cmake/Macros.cmake b/r5dev/cmake/Macros.cmake index 1dafed42..528270c0 100644 --- a/r5dev/cmake/Macros.cmake +++ b/r5dev/cmake/Macros.cmake @@ -54,9 +54,12 @@ macro( add_module MODULE_TYPE MODULE_NAME REUSE_PCH FOLDER_NAME ) message( FATAL_ERROR "Invalid module type: ${MODULE_TYPE}; expected 'lib', 'shared_lib', or 'exe'." ) endif() - target_precompile_headers( ${PROJECT_NAME} REUSE_FROM ${REUSE_PCH} ) + if ( NOT "${REUSE_PCH}" STREQUAL "" ) + target_precompile_headers( ${PROJECT_NAME} REUSE_FROM ${REUSE_PCH} ) + endif() + set_target_properties( ${MODULE_NAME} PROPERTIES FOLDER ${FOLDER_NAME} ) -endmacro( add_module ) +endmacro() # ----------------------------------------------------------------------------- # Initialize global compiler defines diff --git a/r5dev/codecs/CMakeLists.txt b/r5dev/codecs/CMakeLists.txt index 97e147b1..5454dd5c 100644 --- a/r5dev/codecs/CMakeLists.txt +++ b/r5dev/codecs/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( codecs ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "codecs" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -20,4 +18,3 @@ add_sources( SOURCE_GROUP "Miles" end_sources() target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/core/CMakeLists.txt b/r5dev/core/CMakeLists.txt index 39f1ecc5..81e6eae7 100644 --- a/r5dev/core/CMakeLists.txt +++ b/r5dev/core/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( gamesdk ) -add_library( ${PROJECT_NAME} SHARED ) +add_module( "shared_lib" "gamesdk" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -60,7 +58,7 @@ target_link_libraries( ${PROJECT_NAME} PRIVATE "localize" - "gamedll" + "game" "engine" @@ -81,4 +79,3 @@ end_sources() target_compile_definitions( ${PROJECT_NAME} PRIVATE "GAMESDK" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/datacache/CMakeLists.txt b/r5dev/datacache/CMakeLists.txt index 53726f62..f00f19dd 100644 --- a/r5dev/datacache/CMakeLists.txt +++ b/r5dev/datacache/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( datacache ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "datacache" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -18,4 +16,3 @@ add_sources( SOURCE_GROUP "Public" end_sources() target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/ebisusdk/CMakeLists.txt b/r5dev/ebisusdk/CMakeLists.txt index a63a098a..46b5b35b 100644 --- a/r5dev/ebisusdk/CMakeLists.txt +++ b/r5dev/ebisusdk/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( EbisuSDK ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "EbisuSDK" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -17,4 +15,3 @@ add_sources( SOURCE_GROUP "Public" end_sources() target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/engine/CMakeLists.txt b/r5dev/engine/CMakeLists.txt index fae36e4b..c160cf7f 100644 --- a/r5dev/engine/CMakeLists.txt +++ b/r5dev/engine/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( engine ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "engine" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -170,4 +168,3 @@ add_sources( SOURCE_GROUP "Common" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/filesystem/CMakeLists.txt b/r5dev/filesystem/CMakeLists.txt index 32ae48ac..67b81271 100644 --- a/r5dev/filesystem/CMakeLists.txt +++ b/r5dev/filesystem/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( filesystem ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "filesystem" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -20,4 +18,3 @@ add_sources( SOURCE_GROUP "Public" end_sources() target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/game/CMakeLists.txt b/r5dev/game/CMakeLists.txt index 3ecfd590..a759de54 100644 --- a/r5dev/game/CMakeLists.txt +++ b/r5dev/game/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( gamedll ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "game" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -75,5 +73,7 @@ add_sources( SOURCE_GROUP "Client" end_sources() -target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) +target_include_directories( ${PROJECT_NAME} PRIVATE + "${ENGINE_SOURCE_DIR}/tier0/" + "${ENGINE_SOURCE_DIR}/tier1/" +) diff --git a/r5dev/gameui/CMakeLists.txt b/r5dev/gameui/CMakeLists.txt index 7af5810d..05764f98 100644 --- a/r5dev/gameui/CMakeLists.txt +++ b/r5dev/gameui/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( gameui ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "gameui" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -15,4 +13,3 @@ add_sources( SOURCE_GROUP "Core" end_sources() target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/inputsystem/CMakeLists.txt b/r5dev/inputsystem/CMakeLists.txt index 1932f7cc..b608b3e9 100644 --- a/r5dev/inputsystem/CMakeLists.txt +++ b/r5dev/inputsystem/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( inputsystem ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "inputsystem" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -15,4 +13,3 @@ add_sources( SOURCE_GROUP "Public" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/launcher/CMakeLists.txt b/r5dev/launcher/CMakeLists.txt index 1b9d633a..4eb77760 100644 --- a/r5dev/launcher/CMakeLists.txt +++ b/r5dev/launcher/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( launcher ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "launcher" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -14,4 +12,3 @@ add_sources( SOURCE_GROUP "Core" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/localize/CMakeLists.txt b/r5dev/localize/CMakeLists.txt index 8ff3adfd..b18d30f6 100644 --- a/r5dev/localize/CMakeLists.txt +++ b/r5dev/localize/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( localize ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "localize" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -11,4 +9,3 @@ add_sources( SOURCE_GROUP "Core" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/materialsystem/CMakeLists.txt b/r5dev/materialsystem/CMakeLists.txt index 715121d1..0936e7a4 100644 --- a/r5dev/materialsystem/CMakeLists.txt +++ b/r5dev/materialsystem/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( materialsystem ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "materialsystem" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -15,4 +13,3 @@ add_sources( SOURCE_GROUP "Core" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/mathlib/CMakeLists.txt b/r5dev/mathlib/CMakeLists.txt index b868d2bd..7891c210 100644 --- a/r5dev/mathlib/CMakeLists.txt +++ b/r5dev/mathlib/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( mathlib ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "mathlib" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/naveditor/CMakeLists.txt b/r5dev/naveditor/CMakeLists.txt index 47da6cf3..afe430ab 100644 --- a/r5dev/naveditor/CMakeLists.txt +++ b/r5dev/naveditor/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( naveditor ) -add_executable( ${PROJECT_NAME} ) +add_module( "exe" "naveditor" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/netconsole/CMakeLists.txt b/r5dev/netconsole/CMakeLists.txt index c4f70ee7..449cf9c0 100644 --- a/r5dev/netconsole/CMakeLists.txt +++ b/r5dev/netconsole/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( netconsole ) -add_executable( ${PROJECT_NAME} ) +add_module( "exe" "netconsole" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -12,7 +10,6 @@ add_sources( SOURCE_GROUP "Core" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) set_target_properties( ${PROJECT_NAME} PROPERTIES OUTPUT_NAME "netcon32" ) target_link_libraries( ${PROJECT_NAME} PRIVATE diff --git a/r5dev/networksystem/CMakeLists.txt b/r5dev/networksystem/CMakeLists.txt index a2440408..c3247e0d 100644 --- a/r5dev/networksystem/CMakeLists.txt +++ b/r5dev/networksystem/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( networksystem ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "networksystem" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -17,4 +15,3 @@ add_sources( SOURCE_GROUP "Core" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/pluginsdk/CMakeLists.txt b/r5dev/pluginsdk/CMakeLists.txt index 3f83fe13..0f6a702a 100644 --- a/r5dev/pluginsdk/CMakeLists.txt +++ b/r5dev/pluginsdk/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( PluginSDK ) -add_library( ${PROJECT_NAME} SHARED ) +add_module( "shared_lib" "PluginSDK" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -14,8 +12,6 @@ add_sources( SOURCE_GROUP "Core" end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) - target_link_libraries( ${PROJECT_NAME} PRIVATE "tier0" "libdetours" diff --git a/r5dev/pluginsystem/CMakeLists.txt b/r5dev/pluginsystem/CMakeLists.txt index a05634e2..357cffe7 100644 --- a/r5dev/pluginsystem/CMakeLists.txt +++ b/r5dev/pluginsystem/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( pluginsystem ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "pluginsystem" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -14,4 +12,3 @@ add_sources( SOURCE_GROUP "Core" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/protoc/CMakeLists.txt b/r5dev/protoc/CMakeLists.txt index 2caeb433..d71d771f 100644 --- a/r5dev/protoc/CMakeLists.txt +++ b/r5dev/protoc/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( protocol_pb ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "protocol_pb" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -18,4 +16,3 @@ add_sources( SOURCE_GROUP "SigCache" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/rtech/CMakeLists.txt b/r5dev/rtech/CMakeLists.txt index d8a8f865..5df7a6bd 100644 --- a/r5dev/rtech/CMakeLists.txt +++ b/r5dev/rtech/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( rtech ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "rtech" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -23,4 +21,3 @@ add_sources( SOURCE_GROUP "Stryder" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/sdklauncher/CMakeLists.txt b/r5dev/sdklauncher/CMakeLists.txt index 0fe012e0..c0439874 100644 --- a/r5dev/sdklauncher/CMakeLists.txt +++ b/r5dev/sdklauncher/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( sdklauncher ) -add_executable( ${PROJECT_NAME} ) +add_module( "exe" "sdklauncher" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -23,10 +21,9 @@ add_sources( SOURCE_GROUP "Resource" end_sources() -target_compile_definitions( ${PROJECT_NAME} PRIVATE SDKLAUNCHER ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) - set_target_properties( ${PROJECT_NAME} PROPERTIES OUTPUT_NAME "launcher" ) + +target_compile_definitions( ${PROJECT_NAME} PRIVATE SDKLAUNCHER ) target_link_libraries( ${PROJECT_NAME} PRIVATE "tier0" "libdetours" diff --git a/r5dev/thirdparty/cppnet/CMakeLists.txt b/r5dev/thirdparty/cppnet/CMakeLists.txt index bc238b42..19d0d409 100644 --- a/r5dev/thirdparty/cppnet/CMakeLists.txt +++ b/r5dev/thirdparty/cppnet/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libcppkore ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libcppkore" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/curl/CMakeLists.txt b/r5dev/thirdparty/curl/CMakeLists.txt index ad3a93b1..93f0bba6 100644 --- a/r5dev/thirdparty/curl/CMakeLists.txt +++ b/r5dev/thirdparty/curl/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libcurl ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libcurl" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/detours/CMakeLists.txt b/r5dev/thirdparty/detours/CMakeLists.txt index 760c2e1f..b90ae810 100644 --- a/r5dev/thirdparty/detours/CMakeLists.txt +++ b/r5dev/thirdparty/detours/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libdetours ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libdetours" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/fastlz/CMakeLists.txt b/r5dev/thirdparty/fastlz/CMakeLists.txt index 715b78e5..6bcd7b18 100644 --- a/r5dev/thirdparty/fastlz/CMakeLists.txt +++ b/r5dev/thirdparty/fastlz/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( FastLZ ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "FastLZ" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/imgui/CMakeLists.txt b/r5dev/thirdparty/imgui/CMakeLists.txt index 416ef1ce..3d015a20 100644 --- a/r5dev/thirdparty/imgui/CMakeLists.txt +++ b/r5dev/thirdparty/imgui/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libimgui ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libimgui" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/lzham/CMakeLists.txt b/r5dev/thirdparty/lzham/CMakeLists.txt index 3a21b701..a79dc5d8 100644 --- a/r5dev/thirdparty/lzham/CMakeLists.txt +++ b/r5dev/thirdparty/lzham/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( liblzham ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "liblzham" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/protobuf/CMakeLists.txt b/r5dev/thirdparty/protobuf/CMakeLists.txt index 6bfa2fba..1ab284c7 100644 --- a/r5dev/thirdparty/protobuf/CMakeLists.txt +++ b/r5dev/thirdparty/protobuf/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libprotobuf ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libprotobuf" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/recast/CMakeLists.txt b/r5dev/thirdparty/recast/CMakeLists.txt index 1b55525b..599bd579 100644 --- a/r5dev/thirdparty/recast/CMakeLists.txt +++ b/r5dev/thirdparty/recast/CMakeLists.txt @@ -3,8 +3,7 @@ cmake_minimum_required( VERSION 3.16 ) # ----------------------------------------------------------------------------- # Recast & Detour debug utilities # ----------------------------------------------------------------------------- -project( navdebugutils ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "navdebugutils" "" ${FOLDER_CONTEXT} ) start_sources() @@ -28,8 +27,7 @@ target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) # ----------------------------------------------------------------------------- # Detour runtime # ----------------------------------------------------------------------------- -project( libdetour ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libdetour" "navdebugutils" ${FOLDER_CONTEXT} ) start_sources() @@ -56,13 +54,11 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) # ----------------------------------------------------------------------------- # Detour crowd # ----------------------------------------------------------------------------- -project( libdetourcrowd ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libdetourcrowd" "navdebugutils" ${FOLDER_CONTEXT} ) start_sources() @@ -87,13 +83,11 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) # ----------------------------------------------------------------------------- # Detour tile cache # ----------------------------------------------------------------------------- -project( libdetourtilecache ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libdetourtilecache" "navdebugutils" ${FOLDER_CONTEXT} ) start_sources() @@ -108,13 +102,11 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) # ----------------------------------------------------------------------------- # Recast runtime # ----------------------------------------------------------------------------- -project( librecast ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "librecast" "navdebugutils" ${FOLDER_CONTEXT} ) start_sources() @@ -139,4 +131,3 @@ add_sources( SOURCE_GROUP "Include" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} PRIVATE Pch.h ) diff --git a/r5dev/thirdparty/sdl/CMakeLists.txt b/r5dev/thirdparty/sdl/CMakeLists.txt index 0ed47d7d..c701b860 100644 --- a/r5dev/thirdparty/sdl/CMakeLists.txt +++ b/r5dev/thirdparty/sdl/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libsdl2 ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libsdl2" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/thirdparty/spdlog/CMakeLists.txt b/r5dev/thirdparty/spdlog/CMakeLists.txt index abe6df75..a5626a84 100644 --- a/r5dev/thirdparty/spdlog/CMakeLists.txt +++ b/r5dev/thirdparty/spdlog/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( libspdlog ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "libspdlog" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/tier0/CMakeLists.txt b/r5dev/tier0/CMakeLists.txt index 599d58e5..8b6d3d7f 100644 --- a/r5dev/tier0/CMakeLists.txt +++ b/r5dev/tier0/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( tier0 ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "tier0" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/tier1/CMakeLists.txt b/r5dev/tier1/CMakeLists.txt index 0a5e9adf..7fbe1c68 100644 --- a/r5dev/tier1/CMakeLists.txt +++ b/r5dev/tier1/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( tier1 ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "tier1" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -14,7 +12,6 @@ add_sources( SOURCE_GROUP "Utility" "bitbuf.cpp" "generichash.cpp" "lzss.cpp" - "memstack.cpp" "splitstring.cpp" "stringpool.cpp" "strtools.cpp" @@ -57,5 +54,5 @@ add_sources( SOURCE_GROUP "Public" end_sources() +target_compile_definitions( ${PROJECT_NAME} PRIVATE "MEM_DEBUG_CLASSNAME" ) target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/tier2/CMakeLists.txt b/r5dev/tier2/CMakeLists.txt index a9c96a33..55554aa8 100644 --- a/r5dev/tier2/CMakeLists.txt +++ b/r5dev/tier2/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( tier2 ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "tier2" "tier0" ${FOLDER_CONTEXT} ) start_sources() @@ -24,4 +22,3 @@ add_sources( SOURCE_GROUP "Public" end_sources() target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/" ) -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM tier0 ) diff --git a/r5dev/vgui/CMakeLists.txt b/r5dev/vgui/CMakeLists.txt index 0292f3d1..3261e553 100644 --- a/r5dev/vgui/CMakeLists.txt +++ b/r5dev/vgui/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vgui ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vgui" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -16,4 +14,3 @@ add_sources( SOURCE_GROUP "Runtime" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vguimatsurface/CMakeLists.txt b/r5dev/vguimatsurface/CMakeLists.txt index a68eee4f..d1f8eb18 100644 --- a/r5dev/vguimatsurface/CMakeLists.txt +++ b/r5dev/vguimatsurface/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vguimatsurface ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vguimatsurface" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -11,4 +9,3 @@ add_sources( SOURCE_GROUP "Private" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vpc/CMakeLists.txt b/r5dev/vpc/CMakeLists.txt index f89a5fcb..6862bd9c 100644 --- a/r5dev/vpc/CMakeLists.txt +++ b/r5dev/vpc/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vpc ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vpc" "" ${FOLDER_CONTEXT} ) start_sources() diff --git a/r5dev/vphysics/CMakeLists.txt b/r5dev/vphysics/CMakeLists.txt index 1f7ec7f1..b3b85bbf 100644 --- a/r5dev/vphysics/CMakeLists.txt +++ b/r5dev/vphysics/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vphysics ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vphysics" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -18,4 +16,3 @@ add_sources( SOURCE_GROUP "Public" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vpklib/CMakeLists.txt b/r5dev/vpklib/CMakeLists.txt index f83ad8ff..f85dd2e8 100644 --- a/r5dev/vpklib/CMakeLists.txt +++ b/r5dev/vpklib/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vpklib ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vpklib" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -15,4 +13,3 @@ add_sources( SOURCE_GROUP "Public" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vscript/CMakeLists.txt b/r5dev/vscript/CMakeLists.txt index e85f8a39..949d5055 100644 --- a/r5dev/vscript/CMakeLists.txt +++ b/r5dev/vscript/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vscript ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vscript" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -28,4 +26,3 @@ add_sources( SOURCE_GROUP "Public" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) diff --git a/r5dev/vstdlib/CMakeLists.txt b/r5dev/vstdlib/CMakeLists.txt index 23293be8..1017f3be 100644 --- a/r5dev/vstdlib/CMakeLists.txt +++ b/r5dev/vstdlib/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required( VERSION 3.16 ) - -project( vstdlib ) -add_library( ${PROJECT_NAME} ) +add_module( "lib" "vstdlib" "vpc" ${FOLDER_CONTEXT} ) start_sources() @@ -16,7 +14,7 @@ add_sources( SOURCE_GROUP "Private" ) end_sources() -target_precompile_headers( ${PROJECT_NAME} REUSE_FROM vpc ) + target_include_directories( ${PROJECT_NAME} PRIVATE "${ENGINE_SOURCE_DIR}/tier0/" "${ENGINE_SOURCE_DIR}/tier1/"