diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 124 |
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 +) |