You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.6 KiB
55 lines
1.6 KiB
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.9.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)
|