-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
52 lines (42 loc) · 1.44 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
# CMakeList.txt : Top-level CMake project file, do global configuration
# and include sub-projects here.
#
cmake_minimum_required (VERSION 3.8)
project ("Tabi" LANGUAGES CXX)
# Set the C++ language standard
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# Set output directories
if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/bin/${BUILD_PLATFORM}/${CMAKE_BUILD_TYPE}/bin")
else()
set(NO_TABI_EXAMPLE_GAME True) # If CMAKE_RUNTIME_OUTPUT_DIRECTORY is set, we simply assume the project is used as a submodule
endif()
if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/bin/${BUILD_PLATFORM}/${CMAKE_BUILD_TYPE}/lib")
endif()
if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/bin/${BUILD_PLATFORM}/${CMAKE_BUILD_TYPE}/lib")
endif()
# Set compiler options
if (MSVC)
# Enable warning level 4
add_compile_options("/W4")
else ()
endif ()
if(WIN32)
set(USE_OPENGL True)
add_compile_definitions("OPENGL")
add_compile_definitions(MINIMUM_OGL_VERSION_MAJOR=4)
add_compile_definitions(MINIMUM_OGL_VERSION_MINOR=5)
endif()
# Include sub-projects.
add_subdirectory("Tabi")
add_subdirectory("ThirdParty")
if (NOT NO_TABI_EXAMPLE_GAME)
add_subdirectory("Game")
endif()
include(CTest)
if(BUILD_TESTING)
add_subdirectory(./UnitTests)
endif(BUILD_TESTING)