Files
m2pack-secure/CMakeLists.txt
2026-04-14 11:12:29 +02:00

49 lines
1.3 KiB
CMake

cmake_minimum_required(VERSION 3.20)
project(m2pack-secure VERSION 0.1.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBSODIUM REQUIRED libsodium)
find_path(ZSTD_INCLUDE_DIR NAMES zstd.h)
find_library(ZSTD_LIBRARY NAMES zstd libzstd)
if(NOT ZSTD_INCLUDE_DIR)
set(ZSTD_INCLUDE_DIR "/home/mt2.jakubkadlec.dev/metin/repos/m2dev-client-src/vendor/zstd-1.5.7/lib")
endif()
if(NOT ZSTD_LIBRARY)
find_library(ZSTD_LIBRARY NAMES zstd PATHS /usr/lib/x86_64-linux-gnu)
endif()
if(NOT ZSTD_LIBRARY AND EXISTS "/usr/lib/x86_64-linux-gnu/libzstd.so.1")
set(ZSTD_LIBRARY "/usr/lib/x86_64-linux-gnu/libzstd.so.1")
endif()
if(NOT EXISTS "${ZSTD_INCLUDE_DIR}/zstd.h" OR NOT ZSTD_LIBRARY)
message(FATAL_ERROR "zstd files not found")
endif()
add_executable(m2pack
src/archive.cpp
src/cli.cpp
src/crypto.cpp
src/main.cpp
src/util.cpp
)
target_include_directories(m2pack
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src
${LIBSODIUM_INCLUDE_DIRS}
${ZSTD_INCLUDE_DIR}
)
target_compile_options(m2pack PRIVATE -Wall -Wextra -Wpedantic)
target_link_directories(m2pack PRIVATE ${LIBSODIUM_LIBRARY_DIRS})
target_link_libraries(m2pack PRIVATE ${LIBSODIUM_LIBRARIES} ${ZSTD_LIBRARY})
install(TARGETS m2pack RUNTIME DESTINATION bin)