From e4483eca01b48b943cd0461e24a74ae1a3139ed4 Mon Sep 17 00:00:00 2001 From: Nicolas James Date: Wed, 12 Feb 2025 21:57:46 +1100 Subject: Update to most recent version (old initial commit) --- src/shared/CMakeLists.txt | 55 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/shared/CMakeLists.txt (limited to 'src/shared/CMakeLists.txt') diff --git a/src/shared/CMakeLists.txt b/src/shared/CMakeLists.txt new file mode 100644 index 0000000..3a0e21c --- /dev/null +++ b/src/shared/CMakeLists.txt @@ -0,0 +1,55 @@ +cmake_minimum_required(VERSION 3.18) + +project(shared) + +message (STATUS "Running protobuf precompiler") +execute_process ( + COMMAND protoc --proto_path=./net/lib/protobuf + --cpp_out=./net/lib/protobuf/ + ./net/lib/protobuf/net.proto + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +file (GLOB_RECURSE SOURCE_FILES CONFIGURE_DEPENDS + "*.cc" +) +file (GLOB_RECURSE HEADER_FILES CONFIGURE_DEPENDS + "*.hh" +) +add_library(${PROJECT_NAME} STATIC + ${SOURCE_FILES} +) + +find_library(LIB_PROTOBUF protobuf libprotobuf REQUIRED) +set(PROTOBUF_LIBRARY "protobuf::libprotobuf") +find_package(Boost COMPONENTS iostreams REQUIRED) +find_package(Threads REQUIRED) +find_package(Backtrace REQUIRED) + +target_compile_options(${PROJECT_NAME} PRIVATE + -Wall -Wextra -Wshadow -Wdouble-promotion -Wformat=2 -Wundef -fno-common + -Wconversion -Wpedantic -std=c++20 -O2 + -Wno-exceptions + -Wno-missing-field-initializers -Wno-unknown-pragmas +) +if (${IS_DEBUG}) + target_compile_options(${PROJECT_NAME} PRIVATE + ¦ -fstack-protector-strong -fno-omit-frame-pointer -fsanitize=undefined + ) + target_link_options(${PROJECT_NAME} PRIVATE + ¦ -fstack-protector-strong -fsanitize=undefined + ) +endif() +target_include_directories(${PROJECT_NAME} PRIVATE + "${PROJECT_SOURCE_DIR}/../../src" +) +target_link_libraries(${PROJECT_NAME} PRIVATE + ${LIB_PROTOBUF} + ${Backtrace_LIBRARIES} + ${Threads_LIBRARIES} + ${Boost_LIBRARIES} + ${FREETYPE_LIBRARIES} +) +target_precompile_headers(${PROJECT_NAME} PRIVATE + ${HEADER_FILES} +) -- cgit v1.2.3