Skip to content

Commit ee4cd52

Browse files
committed
feat: add compile targets per game
1 parent d0e937f commit ee4cd52

File tree

6 files changed

+64
-43
lines changed

6 files changed

+64
-43
lines changed

.gitmodules

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
[submodule "vendor/hl2sdk"]
2-
path = vendor/hl2sdk
2+
path = vendor/hl2sdk-cs2
33
url = https://github.com/alliedmodders/hl2sdk
44
shallow = true
55
[submodule "vendor/fmt"]
66
path = vendor/fmt
77
url = https://github.com/fmtlib/fmt
88
shallow = true
9+
[submodule "vendor/hl2sdk-dota"]
10+
path = vendor/hl2sdk-dota
11+
url = https://github.com/alliedmodders/hl2sdk
12+
shallow = true

src/main/CMakeLists.txt

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,20 @@ file(GLOB_RECURSE HEADERS_LIST
66
"*.h"
77
)
88

9-
add_executable(DumpSource2 ${SOURCES_LIST} ${HEADERS_LIST})
9+
function(BUILD_GAME GAME)
10+
add_executable(DumpSource2-${GAME} ${SOURCES_LIST} ${HEADERS_LIST})
1011

11-
target_link_libraries(DumpSource2 PRIVATE
12-
HL2SDK
13-
fmt::fmt
14-
${CMAKE_DL_LIBS}
15-
)
12+
target_link_libraries(DumpSource2-${GAME} PRIVATE
13+
HL2SDK-${GAME}
14+
fmt::fmt
15+
${CMAKE_DL_LIBS}
16+
)
17+
18+
target_compile_definitions(DumpSource2-${GAME} PRIVATE GAME_${GAME})
19+
endfunction()
20+
21+
build_game(CS2)
22+
build_game(DOTA)
1623

1724
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Source Files" FILES ${SOURCES_LIST})
1825
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Header Files" FILES ${HEADERS_LIST})

src/main/utils/common.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,11 @@ void Plat_ExitProcess(int) {
9595
// STUB
9696
}
9797

98+
#ifdef GAME_CS2
9899
void Plat_FatalErrorFunc(const tchar* pMsg, ...) {
99100
// STUB
100101
}
102+
#endif
101103

102104
bool Plat_IsInDebugSession() {
103105
// STUB

vendor/CMakeLists.txt

Lines changed: 43 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,56 @@
11
# HL2SDK/METAMOD SETUP
22
# ---
33

4-
SET(HL2SDK_INCLUDES
5-
${PROJECT_SOURCE_DIR}/vendor/hl2sdk
6-
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/common
7-
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/game/shared
8-
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/game/server
9-
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public
10-
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public/engine
11-
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public/mathlib
12-
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public/tier0
13-
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public/tier1
14-
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public/entity2
15-
${PROJECT_SOURCE_DIR}/vendor/hl2sdk/public/game/server
16-
)
17-
18-
add_library(HL2SDK STATIC
19-
hl2sdk/tier1/convar.cpp
20-
hl2sdk/tier1/generichash.cpp
21-
hl2sdk/tier1/keyvalues3.cpp
22-
)
23-
24-
target_include_directories(HL2SDK PUBLIC ${HL2SDK_INCLUDES})
25-
26-
if(WIN32)
27-
target_link_libraries(HL2SDK PUBLIC
28-
${CMAKE_CURRENT_SOURCE_DIR}/hl2sdk/lib/public/win64/tier1.lib
29-
${CMAKE_CURRENT_SOURCE_DIR}/hl2sdk/lib/public/win64/interfaces.lib
30-
${CMAKE_CURRENT_SOURCE_DIR}/hl2sdk/lib/public/win64/mathlib.lib
31-
)
32-
elseif(UNIX)
33-
target_link_libraries(HL2SDK PUBLIC
34-
${CMAKE_CURRENT_SOURCE_DIR}/hl2sdk/lib/linux64/tier1.a
35-
${CMAKE_CURRENT_SOURCE_DIR}/hl2sdk/lib/linux64/interfaces.a
36-
${CMAKE_CURRENT_SOURCE_DIR}/hl2sdk/lib/linux64/mathlib.a
37-
)
38-
endif()
4+
function(BUILD_HL2SDK GAME GAME_PATH)
5+
SET(HL2SDK_INCLUDES
6+
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}
7+
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/common
8+
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/game/shared
9+
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/game/server
10+
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public
11+
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public/engine
12+
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public/mathlib
13+
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public/tier0
14+
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public/tier1
15+
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public/entity2
16+
${PROJECT_SOURCE_DIR}/vendor/${GAME_PATH}/public/game/server
17+
)
18+
19+
add_library(HL2SDK-${GAME} STATIC
20+
${GAME_PATH}/tier1/convar.cpp
21+
${GAME_PATH}/tier1/generichash.cpp
22+
${GAME_PATH}/tier1/keyvalues3.cpp
23+
)
24+
25+
target_include_directories(HL2SDK-${GAME} PUBLIC ${HL2SDK_INCLUDES})
26+
27+
if(WIN32)
28+
target_link_libraries(HL2SDK-${GAME} PUBLIC
29+
${CMAKE_CURRENT_SOURCE_DIR}/${GAME_PATH}/lib/public/win64/tier1.lib
30+
${CMAKE_CURRENT_SOURCE_DIR}/${GAME_PATH}/lib/public/win64/interfaces.lib
31+
${CMAKE_CURRENT_SOURCE_DIR}/${GAME_PATH}/lib/public/win64/mathlib.lib
32+
)
33+
elseif(UNIX)
34+
target_link_libraries(HL2SDK-${GAME} PUBLIC
35+
${CMAKE_CURRENT_SOURCE_DIR}/${GAME_PATH}/lib/linux64/tier1.a
36+
${CMAKE_CURRENT_SOURCE_DIR}/${GAME_PATH}/lib/linux64/interfaces.a
37+
${CMAKE_CURRENT_SOURCE_DIR}/${GAME_PATH}/lib/linux64/mathlib.a
38+
)
39+
endif()
40+
message(STATUS "Setting up HL2SDK-${GAME}") # What does this print?
41+
endfunction()
42+
43+
build_hl2sdk(CS2 hl2sdk-cs2)
44+
build_hl2sdk(DOTA hl2sdk-dota)
3945

4046
# EXTERNAL LIBRARIES
4147
# ---
4248

4349
add_subdirectory(fmt)
4450

4551
set_target_properties(
46-
HL2SDK
52+
HL2SDK-CS2
53+
HL2SDK-DOTA
4754
PROPERTIES FOLDER SDK
4855
)
4956

vendor/hl2sdk-dota

Submodule hl2sdk-dota added at aa40133

0 commit comments

Comments
 (0)