cmake_minimum_required(VERSION 3.30) project(mmo) set(CMAKE_CXX_STANDARD 26) if (MSVC) add_compile_options(/W4) add_compile_options(/WX) add_compile_options(/external:anglebrackets) add_compile_options(/external:W0) add_compile_options(/wd4100) add_compile_options(/wd5050) add_definitions(-DWIN32_LEAN_AND_MEAN -DVC_EXTRALEAN) add_compile_definitions(WIN32_LEAN_AND_MEAN NOMINMAX) else () add_compile_options(-Wall) add_compile_options(-Wextra) add_compile_options(-Wpedantic) add_compile_options(-Werror) endif () # function add santizers function(add_sanitizers target) if (MSVC) target_compile_options(${target} PRIVATE /fsanitize=address /fsanitize=fuzzer /Zi) target_link_options(${target} PRIVATE /fsanitize=address /fsanitize=fuzzer /Zi) else () target_compile_options(${target} PRIVATE -fsanitize=address -fsanitize=fuzzer) target_link_options(${target} PRIVATE -fsanitize=address -fsanitize=fuzzer) endif () endfunction() if (DEFINED VCPKG_INSTALLED_DIR) elseif (DEFINED ENV{VCPKG_ROOT}) include($ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake) else () message(FATAL_ERROR "VCPKG is not loaded, set VCPKG_ROOT to automatically load it or specify the cmake toolchain") endif () set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) add_subdirectory(common) #add_subdirectory(client) #add_subdirectory(server)