aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
blob: 6346f3773c7d842796301bab91f8141a629a764f (plain) (blame)
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
cmake_minimum_required(VERSION 3.29)
set(VCPKG_TARGET_TRIPLET x64-windows-static)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
set(CMAKE_CXX_STANDARD 20)

project(zen CXX)

add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")

add_compile_definitions(
    _CRT_SECURE_NO_WARNINGS
    UNICODE
    _UNICODE
    NOMINMAX
    NOGDI
    _CONSOLE
    _WIN32_WINNT=0x0A00
    ZEN_WITH_TESTS=0
)

find_package(asio CONFIG REQUIRED)
find_package(blake3 CONFIG REQUIRED)
find_package(cpr CONFIG REQUIRED)
find_package(curl CONFIG REQUIRED)
find_package(cxxopts CONFIG REQUIRED)
find_package(doctest CONFIG REQUIRED)
find_package(fmt CONFIG REQUIRED)
find_package(gsl-lite CONFIG REQUIRED)
find_package(unofficial-http-parser CONFIG REQUIRED)
find_package(json11 CONFIG REQUIRED)
find_package(lua CONFIG REQUIRED)
find_package(lz4 CONFIG REQUIRED)
find_package(ryml CONFIG REQUIRED)
find_package(c4core CONFIG REQUIRED)
find_package(tsl-robin-map CONFIG REQUIRED)
find_package(sol2 CONFIG REQUIRED)
find_package(spdlog CONFIG REQUIRED)
find_package(xxhash CONFIG REQUIRED)
find_package(mimalloc CONFIG REQUIRED)
find_package(sentry CONFIG REQUIRED)

set(RB ${CMAKE_SOURCE_DIR})
set(R ${CMAKE_SOURCE_DIR}/src)

set(VERSION "0.0.0")
set(VERSION_MAJOR 0)
set(VERSION_MINOR 0)
set(VERSION_ALTER 0)
set(VERSION_BUILD 0)
set(GIT_BRANCH "di")
set(GIT_COMMIT "hello")
set(ZEN_SCHEMA_VERSION 5)

configure_file(${R}/zencore/include/zencore/config.h.in ${R}/zencore/include/zencore/config.h)

file(GLOB_RECURSE SRC
    ${R}/zencore/**.cpp
    ${R}/zenhttp/**.cpp
    ${R}/zennet/**.cpp
    ${R}/zenserver/**.cpp
    ${R}/zenstore/**.cpp
    ${R}/zenutil/**.cpp
    ${R}/zenvfs/**.cpp
)

add_executable(zenserver ${SRC})

target_include_directories(zenserver PRIVATE
    ${R}/transports/transport-sdk/include
    ${R}/zenbase
    ${R}/zenbase/include
    ${R}/zencore
    ${R}/zencore/include
    ${R}/zenhttp
    ${R}/zenhttp/include
    ${R}/zennet
    ${R}/zennet/include
    ${R}/zenstore
    ${R}/zenstore/include
    ${R}/zenutil
    ${R}/zenutil/include
    ${R}/zenvfs
    ${R}/zenvfs/include
    ${R}/zenserver
    ${R}/zenserver/include
    ${R}/zen
    ${R}/zen/include
    ${RB}/thirdparty/utfcpp/source
    ${RB}/thirdparty/Oodle/include
    ${RB}/thirdparty/trace
)

target_link_directories(zenserver  PRIVATE ${RB}/thirdparty/Oodle/lib/Win64)

target_link_libraries(zenserver PRIVATE
    asio::asio
    BLAKE3::blake3
    cpr::cpr
    CURL::libcurl_static
    cxxopts::cxxopts
    doctest::doctest
    fmt::fmt
    unofficial::http_parser::http_parser
    ${JSON11_LIBRARIES}
    lua
    lz4::lz4
    ryml::ryml
    c4core::c4core
    xxHash::xxhash
    mimalloc-static
    sentry::sentry

    Advapi32
    Dbghelp
    Shell32
    User32
    crypt32
    bcrypt
    ws2_32
    projectedfslib

    oo2core_win64
)