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 (2119B)


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