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 or . 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)