summaryrefslogtreecommitdiffstats
path: root/src/core/CMakeLists.txt
blob: e8cca90f6f52c605b9a897b20e11c8027cdfe883 (plain)
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
add_library(core STATIC
    "${CMAKE_CURRENT_LIST_DIR}/pch.hh"
    "${CMAKE_CURRENT_LIST_DIR}/threading.cc"
    "${CMAKE_CURRENT_LIST_DIR}/threading.hh"
    "${CMAKE_CURRENT_LIST_DIR}/version.hh")
target_compile_features(core PUBLIC cxx_std_20)
target_include_directories(core PUBLIC "${PROJECT_SOURCE_DIR}/src")
target_precompile_headers(core PRIVATE "${CMAKE_CURRENT_LIST_DIR}/pch.hh")
target_link_libraries(core PUBLIC enet emhash glm physfs spdlog stb thread_pool)

execute_process(COMMAND git rev-parse --short=8 HEAD
    WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
    OUTPUT_VARIABLE GIT_COMMIT_HASH
    OUTPUT_STRIP_TRAILING_WHITESPACE)
configure_file("${CMAKE_CURRENT_LIST_DIR}/version.cc.in" "${PROJECT_BINARY_DIR}/generated.version.cc")
target_sources(core PRIVATE "${PROJECT_BINARY_DIR}/generated.version.cc")

add_subdirectory(config)
add_subdirectory(io)
add_subdirectory(math)
add_subdirectory(resource)
add_subdirectory(utils)

if(WIN32)
    target_compile_definitions(core PUBLIC _CRT_SECURE_NO_WARNINGS)
    target_compile_definitions(core PUBLIC _USE_MATH_DEFINES)
    target_compile_definitions(core PUBLIC NOMINMAX)
endif()