stamd

Static Markdown Page Generator
git clone git://git.dimitrijedobrota.com/stamd.git
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING

CMakeLists.txt (1487B)


0 cmake_minimum_required(VERSION 3.24)
2 include(cmake/prelude.cmake)
4 project(
5 stamd
6 VERSION 0.4.0
7 DESCRIPTION "Static Markdown Page Generator"
8 HOMEPAGE_URL "https://git.dimitrijedobrota.com/stamd.git"
9 LANGUAGES CXX
10 )
12 include(cmake/project-is-top-level.cmake)
13 include(cmake/variables.cmake)
15 # ---- Declare dependencies ----
17 find_package(md4c CONFIG REQUIRED)
18 find_package(poafloc 1 CONFIG REQUIRED)
19 find_package(hemplate 0.4.0 CONFIG REQUIRED)
22 # ---- Declare library ----
24 add_library(
25 stamd_lib OBJECT
26 source/article.cpp
27 source/indexer.cpp
28 )
30 target_link_libraries(stamd_lib PUBLIC hemplate::hemplate poafloc::poafloc)
32 target_include_directories(
33 stamd_lib ${warning_guard}
34 PUBLIC
35 "\$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/source>"
36 )
38 target_compile_features(stamd_lib PUBLIC cxx_std_20)
40 # ---- Declare executable ----
42 add_executable(stamd_exe source/main.cpp)
43 add_executable(stamd::exe ALIAS stamd_exe)
45 set_property(TARGET stamd_exe PROPERTY OUTPUT_NAME stamd)
47 target_compile_features(stamd_exe PRIVATE cxx_std_20)
49 target_link_libraries(stamd_exe PRIVATE poafloc md4c::md4c-html stamd_lib)
51 # ---- Install rules ----
53 if(NOT CMAKE_SKIP_INSTALL_RULES)
54 include(cmake/install-rules.cmake)
55 endif()
57 # ---- Developer mode ----
59 if(NOT stamd_DEVELOPER_MODE)
60 return()
61 elseif(NOT PROJECT_IS_TOP_LEVEL)
62 message(
63 AUTHOR_WARNING
64 "Developer mode is intended for developers of stamd"
65 )
66 endif()
68 include(cmake/dev-mode.cmake)