startgit

Static page generator for git repositories
git clone git://git.dimitrijedobrota.com/startgit.git
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING

CMakeLists.txt (2352B)


0 cmake_minimum_required(VERSION 3.14)
2 include(cmake/prelude.cmake)
4 project(
5 startgit
6 VERSION 0.3.0
7 DESCRIPTION "Static page generator for git repositories"
8 HOMEPAGE_URL "https://git.dimitrijedobrota.com/stargit.git"
9 LANGUAGES CXX
10 )
12 include(cmake/project-is-top-level.cmake)
13 include(cmake/variables.cmake)
15 # ---- Declare dependencies ----
17 find_package(based 0.2.0 CONFIG REQUIRED)
18 find_package(git2wrap 0.3.0 CONFIG REQUIRED)
19 find_package(hemplate 0.4 CONFIG REQUIRED)
20 find_package(md4c CONFIG REQUIRED)
21 find_package(poafloc 2.0 CONFIG REQUIRED)
23 # ---- Declare library ----
25 add_library(
26 startgit_lib OBJECT
27 source/arguments.cpp
28 source/branch.cpp
29 source/commit.cpp
30 source/diff.cpp
31 source/document.cpp
32 source/file.cpp
33 source/html.cpp
34 source/repository.cpp
35 source/tag.cpp
36 source/utils.cpp
37 )
39 target_link_libraries(startgit_lib PUBLIC based::based)
40 target_link_libraries(startgit_lib PUBLIC git2wrap::git2wrap)
41 target_link_libraries(startgit_lib PUBLIC hemplate::hemplate)
42 target_link_libraries(startgit_lib PUBLIC poafloc::poafloc)
43 target_link_libraries(startgit_lib PUBLIC md4c::md4c-html)
45 target_include_directories(
46 startgit_lib ${warning_guard}
47 PUBLIC
48 "\$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/source>"
49 )
51 target_compile_features(startgit_lib PUBLIC cxx_std_20)
53 # ---- Declare executable ----
55 add_executable(startgit_exe source/startgit.cpp)
56 add_executable(startgit::exe ALIAS startgit_exe)
58 set_property(TARGET startgit_exe PROPERTY OUTPUT_NAME startgit)
60 target_compile_features(startgit_exe PRIVATE cxx_std_20)
62 target_link_libraries(startgit_exe PRIVATE git2wrap startgit_lib)
65 add_executable(startgit-index_exe source/startgit-index.cpp)
66 add_executable(startgit-index::exe ALIAS startgit-index_exe)
68 set_property(TARGET startgit-index_exe PROPERTY OUTPUT_NAME startgit-index)
70 target_compile_features(startgit-index_exe PRIVATE cxx_std_20)
72 target_link_libraries(startgit-index_exe PRIVATE git2wrap startgit_lib)
74 # ---- Install rules ----
76 if(NOT CMAKE_SKIP_INSTALL_RULES)
77 include(cmake/install-rules.cmake)
78 endif()
80 # ---- Developer mode ----
82 if(NOT startgit_DEVELOPER_MODE)
83 return()
84 elseif(NOT PROJECT_IS_TOP_LEVEL)
85 message(
86 AUTHOR_WARNING
87 "Developer mode is intended for developers of startgit"
88 )
89 endif()
91 include(cmake/dev-mode.cmake)