startgitStatic 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 (2119B)
1 cmake_minimum_required(VERSION 3.14) 2 3 include(cmake/prelude.cmake) 4 5 project( 6 startgit 7 VERSION 0.2.1 8 DESCRIPTION "Static page generator for git repositories" 9 HOMEPAGE_URL "https://git.dimitrijedobrota.com/stargit.git" 10 LANGUAGES CXX 11 ) 12 13 include(cmake/project-is-top-level.cmake) 14 include(cmake/variables.cmake) 15 16 # ---- Declare dependencies ---- 17 18 find_package(git2wrap CONFIG REQUIRED) 19 find_package(hemplate 0.2.2 CONFIG REQUIRED) 20 find_package(md4c CONFIG REQUIRED) 21 find_package(poafloc 1.2 CONFIG REQUIRED) 22 23 # ---- Declare library ---- 24 25 add_library( 26 startgit_lib OBJECT 27 source/arguments.cpp 28 source/common.cpp 29 source/branch.cpp 30 source/commit.cpp 31 source/diff.cpp 32 source/file.cpp 33 source/html.cpp 34 source/repository.cpp 35 source/tag.cpp 36 source/utils.cpp 37 ) 38 39 target_link_libraries(startgit_lib PUBLIC git2wrap::git2wrap hemplate::hemplate poafloc::poafloc md4c::md4c-html) 40 41 target_include_directories( 42 startgit_lib ${warning_guard} 43 PUBLIC 44 "\$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/source>" 45 ) 46 47 target_compile_features(startgit_lib PUBLIC cxx_std_20) 48 49 # ---- Declare executable ---- 50 51 add_executable(startgit_exe source/startgit.cpp) 52 add_executable(startgit::exe ALIAS startgit_exe) 53 54 set_property(TARGET startgit_exe PROPERTY OUTPUT_NAME startgit) 55 56 target_compile_features(startgit_exe PRIVATE cxx_std_20) 57 58 target_link_libraries(startgit_exe PRIVATE git2wrap startgit_lib) 59 60 61 add_executable(startgit-index_exe source/startgit-index.cpp) 62 add_executable(startgit-index::exe ALIAS startgit-index_exe) 63 64 set_property(TARGET startgit-index_exe PROPERTY OUTPUT_NAME startgit-index) 65 66 target_compile_features(startgit-index_exe PRIVATE cxx_std_20) 67 68 target_link_libraries(startgit-index_exe PRIVATE git2wrap startgit_lib) 69 70 # ---- Install rules ---- 71 72 if(NOT CMAKE_SKIP_INSTALL_RULES) 73 include(cmake/install-rules.cmake) 74 endif() 75 76 # ---- Developer mode ---- 77 78 if(NOT startgit_DEVELOPER_MODE) 79 return() 80 elseif(NOT PROJECT_IS_TOP_LEVEL) 81 message( 82 AUTHOR_WARNING 83 "Developer mode is intended for developers of startgit" 84 ) 85 endif() 86 87 include(cmake/dev-mode.cmake)