49 lines
1.3 KiB
CMake
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)
|