Improve some boilerplate, I'd still like to do better about getting linker stuff set.

This commit is contained in:
KimLS 2025-12-06 16:04:57 -08:00
parent aee5be9f18
commit 612a248612

View File

@ -2,23 +2,34 @@ cmake_minimum_required(VERSION 3.20.0)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/" ${CMAKE_MODULE_PATH}) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/" ${CMAKE_MODULE_PATH})
if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) if(NOT CMAKE_TOOLCHAIN_FILE)
message(STATUS "Using vcpkg env variable") if(DEFINED ENV{VCPKG_ROOT})
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "") message(STATUS "Using vcpkg from VCPKG_ROOT")
elseif(NOT DEFINED CMAKE_TOOLCHAIN_FILE) set(CMAKE_TOOLCHAIN_FILE
"$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
CACHE FILEPATH "Vcpkg toolchain file"
)
else()
message(STATUS "Using vcpkg submodule") message(STATUS "Using vcpkg submodule")
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/submodules/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "") set(CMAKE_TOOLCHAIN_FILE
"${CMAKE_CURRENT_SOURCE_DIR}/submodules/vcpkg/scripts/buildsystems/vcpkg.cmake"
CACHE FILEPATH "Vcpkg toolchain file"
)
endif()
endif() endif()
project(EQEmu) project(EQEmu
VERSION 24.10.3
LANGUAGES CXX
)
#explicitly set CMP0167 for Find Boost #explicitly set CMP0167 for Find Boost
if(POLICY CMP0167) if(POLICY CMP0167)
cmake_policy(SET CMP0167 NEW) cmake_policy(SET CMP0167 NEW)
endif() endif()
if(NOT CMAKE_BUILD_TYPE) if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build." FORCE) set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Build type")
endif() endif()
set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD 20)
@ -26,6 +37,8 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_EXTENSIONS OFF)
option(EQEMU_BUILD_PCH "Build with precompiled headers (Windows)" ON) option(EQEMU_BUILD_PCH "Build with precompiled headers (Windows)" ON)
option(EQEMU_ADD_PROFILER "Link with Google perftools profiler" OFF)
option(USE_MAP_MMFS "Use memory-mapped files for maps" OFF)
# Requires libgoogle-perftools-dev google-perftools packages for linux (debian) # Requires libgoogle-perftools-dev google-perftools packages for linux (debian)
if(EQEMU_ADD_PROFILER) if(EQEMU_ADD_PROFILER)
@ -38,18 +51,14 @@ endif()
if(MSVC) if(MSVC)
add_compile_options(/bigobj) add_compile_options(/bigobj)
add_definitions(-D_CRT_SECURE_NO_WARNINGS) add_definitions(-D_CRT_SECURE_NO_WARNINGS -DNOMINMAX -DCRASH_LOGGING -D_HAS_AUTO_PTR_ETC)
add_definitions(-DNOMINMAX)
add_definitions(-DCRASH_LOGGING)
add_definitions(-D_HAS_AUTO_PTR_ETC) # for Luabind on C++17
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
option(EQEMU_DISABLE_MSVC_WARNINGS "Disable MSVC compile warnings." ON) option(EQEMU_DISABLE_MSVC_WARNINGS "Disable MSVC compile warnings." ON)
if(EQEMU_DISABLE_MSVC_WARNINGS) if(EQEMU_DISABLE_MSVC_WARNINGS)
add_definitions( "/W0 /D_CRT_SECURE_NO_WARNINGS /wd4005 /wd4996 /nologo /Os") add_compile_options(/W0 /wd4005 /wd4996 /nologo /Os)
endif() endif()
else(MSVC) else()
add_definitions(-DHAS_UNION_SEMUN) add_definitions(-DHAS_UNION_SEMUN)
endif() endif()
@ -182,7 +191,7 @@ if(EQEMU_COMMANDS_LOGGING)
endif() endif()
if(${OPENSSL_VERSION} VERSION_GREATER_EQUAL "1.1.1") if(${OPENSSL_VERSION} VERSION_GREATER_EQUAL "1.1.1")
add_definitions(-DCPPHTTPLIB_OPENSSL_SUPPORT) add_compile_definitions(CPPHTTPLIB_OPENSSL_SUPPORT)
endif() endif()
if(PerlLibs_FOUND) if(PerlLibs_FOUND)
@ -219,6 +228,8 @@ if(EQEMU_BUILD_LUA)
endif() endif()
endif() endif()
set(SERVER_LIBS common)
if(PERL_LIBRARY_ENABLED) if(PERL_LIBRARY_ENABLED)
option(EQEMU_BUILD_PERL "Build Perl parser." ON) option(EQEMU_BUILD_PERL "Build Perl parser." ON)
if(EQEMU_BUILD_PERL) if(EQEMU_BUILD_PERL)
@ -230,7 +241,6 @@ if(PERL_LIBRARY_ENABLED)
endif() endif()
endif() endif()
set(SERVER_LIBS common)
# silence obnoxious deprecation message # silence obnoxious deprecation message
add_definitions(-DBOOST_BIND_GLOBAL_PLACEHOLDERS) add_definitions(-DBOOST_BIND_GLOBAL_PLACEHOLDERS)