cmake_minimum_required(VERSION 3.12...3.20) # Global build options. set(CMAKE_BUILD_TYPE "Release" CACHE STRING "The type of build.") set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) # project build option option(LIBRAVATAR_BUNDLED_IDENTICONPP "use bundled identiconpp" NO) project(libravatarserv VERSION 0.8.0 DESCRIPTION "A simple libravatar server." HOMEPAGE_URL "https://schlomp.space/tastytea/libravatarserv" LANGUAGES CXX) list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") include(cmake/debug_flags.cmake) 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() if (LIBRAVATAR_BUNDLED_IDENTICONPP) include(FetchContent) FetchContent_Declare(identiconpp GIT_REPOSITORY https://schlomp.space/tastytea/identiconpp.git GIT_TAG 0.7.3 ) if (NOT CMAKE_VERSION VERSION_LESS 3.14) FetchContent_MakeAvailable(identiconpp) else() FetchContent_GetProperties(identiconpp) if(NOT identiconpp_POPULATED) FetchContent_Populate(identiconpp) add_subdirectory(${identiconpp_SOURCE_DIR} ${identiconpp_BINARY_DIR}) endif() endif() add_library(identiconpp::identiconpp ALIAS identiconpp) else() find_package(identiconpp REQUIRED CONFIG) endif() find_package(Filesystem REQUIRED COMPONENTS Final Experimental) add_subdirectory(src) include(cmake/packages.cmake)