libravatarserv/CMakeLists.txt

49 lines
1.5 KiB
CMake

cmake_minimum_required(VERSION 3.10...3.17)
project(libravatarserv
VERSION 0.7.4
DESCRIPTION "A simple libravatar server."
LANGUAGES CXX)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
include(GNUInstallDirs)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
find_package(PkgConfig REQUIRED)
pkg_check_modules(Magick++ REQUIRED IMPORTED_TARGET Magick++)
pkg_check_modules(libcryptopp IMPORTED_TARGET libcryptopp)
if(NOT libcryptopp_FOUND)
# Debian stretch package installs libcrypto++.pc
pkg_check_modules(libcryptopp REQUIRED IMPORTED_TARGET libcrypto++)
endif()
pkg_check_modules(libxdg-basedir REQUIRED IMPORTED_TARGET libxdg-basedir)
find_package(identiconpp REQUIRED CONFIG)
find_package(Filesystem REQUIRED COMPONENTS Final Experimental)
include(cmake/debug_flags.cmake)
include_directories(${PROJECT_BINARY_DIR})
# Write version in header
configure_file(
"src/version.hpp.in"
"version.hpp")
# Include <filesystem> or <experimental/filesystem>.
configure_file("src/fs-compat.hpp.in" "fs-compat.hpp" @ONLY)
file(GLOB sources src/*.cpp)
add_executable(${PROJECT_NAME} ${sources})
target_include_directories(${PROJECT_NAME}
PRIVATE ${PROJECT_BINARY_DIR})
target_link_libraries(${PROJECT_NAME}
PRIVATE PkgConfig::Magick++ PkgConfig::libcryptopp PkgConfig::libxdg-basedir
std::filesystem identiconpp::identiconpp)
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
install(FILES README.md DESTINATION ${CMAKE_INSTALL_DOCDIR})
include(cmake/packages.cmake)