git2wrapC++20 wrapper for libgit2 | 
          
| git clone git://git.dimitrijedobrota.com/git2wrap.git | 
| Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING | 
CMakeLists.txt (2370B)
    0 cmake_minimum_required(VERSION 3.14)
          
              2 include(cmake/prelude.cmake)
          
              4 project(
              5     git2wrap
              6     VERSION 0.3.0
              7     DESCRIPTION "C++ 20 wrapper for libgit2"
              8     HOMEPAGE_URL "https://git.dimitrijedobrota.com/git2wrap.git"
              9     LANGUAGES CXX
             10 )
          
             12 include(cmake/project-is-top-level.cmake)
             13 include(cmake/variables.cmake)
          
             15 # ---- Declare dependencies ----
          
             17 find_package(libgit2 1.9 CONFIG REQUIRED)
             18 find_package(based 0.2.0 CONFIG REQUIRED)
          
             20 # ---- Declare library ----
          
             22 add_library(
             23     git2wrap_git2wrap
             24     source/blob.cpp
             25     source/branch.cpp
             26     source/buf.cpp
             27     source/commit.cpp
             28     source/diff.cpp
             29     source/libgit2.cpp
             30     source/object.cpp
             31     source/oid.cpp
             32     source/reference.cpp
             33     source/repository.cpp
             34     source/revwalk.cpp
             35     source/signature.cpp
             36     source/tag.cpp
             37     source/tree.cpp
             38 )
             39 add_library(git2wrap::git2wrap ALIAS git2wrap_git2wrap)
          
             41 target_link_libraries(git2wrap_git2wrap PUBLIC git2 based::based)
          
             43 include(GenerateExportHeader)
             44 generate_export_header(
             45     git2wrap_git2wrap
             46     BASE_NAME git2wrap
             47     EXPORT_FILE_NAME export/git2wrap/git2wrap_export.hpp
             48     CUSTOM_CONTENT_FROM_VARIABLE pragma_suppress_c4251
             49 )
          
             51 if(NOT BUILD_SHARED_LIBS)
             52   target_compile_definitions(git2wrap_git2wrap PUBLIC GIT2WRAP_STATIC_DEFINE)
             53 endif()
          
             55 set_target_properties(
             56     git2wrap_git2wrap PROPERTIES
             57     CXX_VISIBILITY_PRESET hidden
             58     VISIBILITY_INLINES_HIDDEN YES
             59     VERSION "${PROJECT_VERSION}"
             60     SOVERSION "${PROJECT_VERSION_MAJOR}"
             61     EXPORT_NAME git2wrap
             62     OUTPUT_NAME git2wrap
             63 )
          
             65 target_include_directories(
             66     git2wrap_git2wrap ${warning_guard}
             67     PUBLIC
             68     "\$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
             69 )
          
             71 target_include_directories(
             72     git2wrap_git2wrap SYSTEM
             73     PUBLIC
             74     "\$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/export>"
             75 )
          
             77 target_compile_features(git2wrap_git2wrap PUBLIC cxx_std_20)
          
             79 # ---- Install rules ----
          
             81 if(NOT CMAKE_SKIP_INSTALL_RULES)
             82   include(cmake/install-rules.cmake)
             83 endif()
          
             85 # ---- Examples ----
          
             87 if(PROJECT_IS_TOP_LEVEL)
             88   option(BUILD_EXAMPLES "Build examples tree." "${git2wrap_DEVELOPER_MODE}")
             89   if(BUILD_EXAMPLES)
             90     add_subdirectory(example)
             91   endif()
             92 endif()
          
             94 # ---- Developer mode ----
          
             96 if(NOT git2wrap_DEVELOPER_MODE)
             97   return()
             98 elseif(NOT PROJECT_IS_TOP_LEVEL)
             99   message(
            100       AUTHOR_WARNING
            101       "Developer mode is intended for developers of git2wrap"
            102   )
            103 endif()
          
            105 include(cmake/dev-mode.cmake)