-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
68 lines (54 loc) · 1.57 KB
/
CMakeLists.txt
File metadata and controls
68 lines (54 loc) · 1.57 KB
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
# lithtech
cmake_minimum_required(VERSION 3.20)
project(Lithtech)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_LIST_DIR}/cmake")
if (MSVC)
set(LT_FLAGS "/utf-8 /MP")
else() # GCC/CLang
set(LT_FLAGS "-fpermissive")
endif()
string(FIND ${VCPKG_TARGET_TRIPLET} "-static" IS_STATIC)
if (NOT "${IS_STATIC}" STREQUAL "-1") # /MT
set(IS_STATIC 1)
set(CMAKE_MFC_FLAG 1)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>" CACHE STRING "MSVC Runtime library" FORCE)
else() # /MD
set(IS_STATIC 0)
set(CMAKE_MFC_FLAG 2)
endif()
macro(out_name PROJ OUTNAME)
set_target_properties(${PROJ} PROPERTIES OUTPUT_NAME ${OUTNAME} OUTPUT_NAME_DEBUG ${OUTNAME} OUTPUT_NAME_RELEASE ${OUTNAME} OUTPUT_NAME_MINSIZEREL ${OUTNAME} OUTPUT_NAME_RELWITHDEBINFO ${OUTNAME})
endmacro()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LT_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LT_FLAGS}")
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(BITS64 1)
set(DX_ARCH x64)
else()
set(BITS64 0)
set(DX_ARCH x86)
endif()
if(WIN32)
find_package(DirectX REQUIRED)
elseif(UNIX AND NOT APPLE)
set(LINUX 1)
else()
message(FATAL_ERROR "Unsupported platform")
endif()
find_package(ZLIB REQUIRED)
find_package(Freetype REQUIRED)
# release: _FINAL
# unknown: _PUBLIC_DEVELOPMENT
add_subdirectory(sdk)
add_subdirectory(libs)
add_subdirectory(engine)
if (NOT LT_NO_GAMES)
add_subdirectory(games)
endif()
if (NOT LT_NO_TOOLS)
add_subdirectory(tools)
endif()
if (NOT LT_NO_INSTALL)
include(MakeSDK)
endif()