aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt124
1 files changed, 124 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 000000000..6346f3773
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,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
+)