forked from tmp64/hl1_source_sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
156 lines (134 loc) · 3.63 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
cmake_minimum_required( VERSION 3.5.2 )
project( hl1_source_sdk )
set( SOURCE_SDK_ROOT ${CMAKE_CURRENT_SOURCE_DIR} )
# Add "cmake" to module path
set( CMAKE_MODULE_PATH
${CMAKE_MODULE_PATH}
${SOURCE_SDK_ROOT}/cmake
)
# DLL extension macro
if( WIN32 )
set( DLL_EXT_MACRO ".dll" )
elseif( APPLE )
set( DLL_EXT_MACRO ".dylib" )
else()
set( DLL_EXT_MACRO ".so" )
endif()
# Platform definitions
if( UNIX )
set( PLATFORM_DEFINES
GNUC
POSIX
)
if( APPLE )
set( PLATFORM_DEFINES
${PLATFORM_DEFINES}
OSX
)
else()
set( PLATFORM_DEFINES
${PLATFORM_DEFINES}
LINUX
_LINUX
)
endif()
endif()
# Windows XP support - disables thread-safe init
macro( source_sdk_check_winxp_support target_name )
# Visual Studio only.
if( MSVC )
#Verify that we have the data we need.
if( NOT TARGET ${target_name} )
message( FATAL_ERROR "Target ${target_name} does not exist" )
endif()
# VS2015 and newer requires this
if( NOT "${MSVC_VERSION}" LESS 1900 AND CMAKE_VS_PLATFORM_TOOLSET MATCHES ".*_xp$" )
get_target_property( FLAGS ${target_name} COMPILE_FLAGS )
# Check if it's already set. Eliminates some noise in the output if it was explicitly disabled before
if( ${FLAGS} STREQUAL "NOTFOUND" )
message( WARNING "Couldn't get compile flags from target ${target_name}" )
else()
if( NOT FLAGS MATCHES "/Zc:threadSafeInit-" )
target_compile_options( ${target_name} PRIVATE
/Zc:threadSafeInit-
)
endif()
endif()
endif()
endif()
endmacro()
# gfx path (path to 800corner*.tga in game directory)
if( NOT SOURCE_SDK_GFX_PATH )
set( SOURCE_SDK_GFX_PATH "gfx/vgui2" )
endif()
# Steam API
if( NOT WIN32 )
# SOURCE_SDK_MIN_STEAM_API is Windows-only
set( SOURCE_SDK_MIN_STEAM_API FALSE )
endif()
if( SOURCE_SDK_NO_STEAM )
set( STEAM_API_DEFINES
NO_STEAM
)
else()
find_package( steam_api MODULE REQUIRED )
set( STEAM_API_LIBRARIES
steam_api
)
# Links client with a steam_api.dll with less symbols.
# Allows client.dll run on HL with old engine (but SteamAPI won't work).
if( SOURCE_SDK_MIN_STEAM_API )
set( STEAM_API_DEFINES
SOURCE_SDK_MIN_STEAM_API
)
endif()
endif()
set( SOURCE_SDK_DEFINES
${SOURCE_SDK_DEFINES}
${PLATFORM_DEFINES}
${STEAM_API_DEFINES}
NO_MALLOC_OVERRIDE
MATHLIB_HEADER_ONLY
_DLL_EXT=${DLL_EXT_MACRO}
SOURCE_SDK_GFX_PATH="${SOURCE_SDK_GFX_PATH}"
)
if( SOURCE_SDK_VGUI_NS_ALIAS )
# `namespace vgui = vgui2` for compatibility with large parts of Source SDK
set( SOURCE_SDK_DEFINES
${SOURCE_SDK_DEFINES}
SOURCE_SDK_VGUI_NS_ALIAS
)
endif()
set( SOURCE_SDK_INCLUDE_PATHS
${SOURCE_SDK_INCLUDE_PATHS}
${CMAKE_CURRENT_SOURCE_DIR}/common
${CMAKE_CURRENT_SOURCE_DIR}/public
${CMAKE_CURRENT_SOURCE_DIR}/public/tier0
${CMAKE_CURRENT_SOURCE_DIR}/public/tier1
)
set( SOURCE_SDK_WARNING_LEVEL "")
#-----------------------------------------------------------------
# Dynamic libraries from the engine
#-----------------------------------------------------------------
find_package( tier0 MODULE REQUIRED )
find_package( vstdlib MODULE REQUIRED )
#-----------------------------------------------------------------
# Static libraries
#-----------------------------------------------------------------
add_subdirectory( tier1 )
add_subdirectory( tier2 )
add_subdirectory( vgui2/vgui_controls )
#-----------------------------------------------------------------
# Source SDK exported variables
#-----------------------------------------------------------------
set( SOURCE_SDK_DEFINES ${SOURCE_SDK_DEFINES} PARENT_SCOPE )
set( SOURCE_SDK_INCLUDE_PATHS ${SOURCE_SDK_INCLUDE_PATHS} PARENT_SCOPE )
set( SOURCE_SDK_LIBS
vgui_controls
${STEAM_API_LIBRARIES}
tier2
tier1
tier0
vstdlib
PARENT_SCOPE
)