libravatarserv/CMakeLists.txt

55 lines
1.6 KiB
CMake
Raw Permalink Normal View History

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)
2022-06-11 07:35:29 +02:00
# project build option
option(LIBRAVATAR_BUNDLED_IDENTICONPP "use bundled identiconpp" NO)
2018-11-24 11:00:07 +01:00
project(libravatarserv
2022-06-11 09:06:04 +02:00
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")
2018-11-24 11:00:07 +01:00
include(cmake/debug_flags.cmake)
2018-11-24 11:00:07 +01:00
find_package(PkgConfig REQUIRED)
pkg_check_modules(Magick++ REQUIRED IMPORTED_TARGET Magick++)
pkg_check_modules(libcryptopp IMPORTED_TARGET libcryptopp)
2020-10-24 11:14:26 +02:00
if(NOT libcryptopp_FOUND)
# Debian stretch package installs libcrypto++.pc
pkg_check_modules(libcryptopp REQUIRED IMPORTED_TARGET libcrypto++)
endif()
2022-06-11 07:35:29 +02:00
if (LIBRAVATAR_BUNDLED_IDENTICONPP)
2022-06-11 08:30:44 +02:00
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)
2022-06-11 07:35:29 +02:00
endif()
find_package(Filesystem REQUIRED COMPONENTS Final Experimental)
2018-11-24 11:00:07 +01:00
add_subdirectory(src)
2018-11-27 05:46:45 +01:00
include(cmake/packages.cmake)