diff options
Diffstat (limited to 'bot/CMakeLists.txt')
| -rw-r--r-- | bot/CMakeLists.txt | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/bot/CMakeLists.txt b/bot/CMakeLists.txt new file mode 100644 index 0000000..5fef1c3 --- /dev/null +++ b/bot/CMakeLists.txt @@ -0,0 +1,78 @@ +cmake_minimum_required(VERSION 3.15) +project(discord-bot VERSION 1.0 DESCRIPTION "A Discord bot using DPP library") + +# Required for DPP and modern C++ features +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Find required dependencies +find_package(OpenSSL REQUIRED) +find_package(ZLIB REQUIRED) + +# Configure DPP library (assuming you have it installed via Nix) +find_package(dpp REQUIRED + HINTS ${DPP_INCLUDE_DIR} # Add path if needed: /nix/store/.../include +) +file(GLOB_RECURSE SRC_FILES + include/*.cpp + include/*.hpp +) +# Add executable +add_executable(${PROJECT_NAME} + src/main.cpp + ${SRC_FILES} + # Add other source files here +) + + +# Link libraries with proper dependencies +target_link_libraries(${PROJECT_NAME} PRIVATE + dpp + OpenSSL::SSL + OpenSSL::Crypto + ZLIB::ZLIB + pthread # Required for DPP's threading +) + +# Include directories +target_include_directories(${PROJECT_NAME} PRIVATE + ${DPP_INCLUDE_DIRS} + ${OPENSSL_INCLUDE_DIR} + ${Sodium_INCLUDE_DIRS} +) + +# macOS ARM64 specific fixes +if(APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES "arm64") + target_compile_options(${PROJECT_NAME} PRIVATE + -arch arm64 + -I/opt/homebrew/opt/openssl/include # If using Homebrew + ) + target_link_options(${PROJECT_NAME} PRIVATE + -arch arm64 + -L/opt/homebrew/opt/openssl/lib # If using Homebrew + ) +elseif(APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") + target_compile_options(${PROJECT_NAME} PRIVATE + -arch x86_64 + -I/opt/homebrew/opt/openssl/include # If using Homebrew + ) + target_link_options(${PROJECT_NAME} PRIVATE + -arch x86_64 + -L/opt/homebrew/opt/openssl/lib # If using Homebrew + ) +elseif(UNIX AND NOT APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") + target_compile_options(${PROJECT_NAME} PRIVATE + -m64 + ) + target_link_options(${PROJECT_NAME} PRIVATE + -m64 + ) +elseif(UNIX AND NOT APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES "arm64") + target_compile_options(${PROJECT_NAME} PRIVATE + -marm + ) + target_link_options(${PROJECT_NAME} PRIVATE + -marm + ) +endif() |
