stamenStatic Menu Generator | 
          
| git clone git://git.dimitrijedobrota.com/stamen.git | 
| Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING | 
CMakeLists.txt (2257B)
    0 cmake_minimum_required(VERSION 3.14)
          
              2 include(cmake/prelude.cmake)
          
              4 project(
              5     stamen
              6     VERSION 1.3.2
              7     DESCRIPTION "Static menu generator"
              8     HOMEPAGE_URL "https://git.dimitrijedobrota.com/stamen"
              9     LANGUAGES C CXX
             10 )
          
             12 include(cmake/project-is-top-level.cmake)
             13 include(cmake/variables.cmake)
          
             15 # ---- Declare library ----
          
             17 add_library(
             18     stamen_stamen
             19     source/stamen.cpp
             20 )
             21 add_library(stamen::stamen ALIAS stamen_stamen)
          
             23 include(GenerateExportHeader)
             24 generate_export_header(
             25     stamen_stamen
             26     BASE_NAME stamen
             27     EXPORT_FILE_NAME export/stamen/stamen_export.hpp
             28     CUSTOM_CONTENT_FROM_VARIABLE pragma_suppress_c4251
             29 )
          
             31 if(NOT BUILD_SHARED_LIBS)
             32   target_compile_definitions(stamen_stamen PUBLIC STAMEN_STATIC_DEFINE)
             33 endif()
          
             35 set_target_properties(
             36     stamen_stamen PROPERTIES
             37     CXX_VISIBILITY_PRESET hidden
             38     VISIBILITY_INLINES_HIDDEN YES
             39     VERSION "${PROJECT_VERSION}"
             40     SOVERSION "${PROJECT_VERSION_MAJOR}"
             41     EXPORT_NAME stamen
             42     OUTPUT_NAME stamen
             43 )
          
             45 target_include_directories(
             46     stamen_stamen ${warning_guard}
             47     PUBLIC
             48     "\$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
             49 )
          
             51 target_include_directories(
             52     stamen_stamen SYSTEM
             53     PUBLIC
             54     "\$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/export>"
             55 )
          
             57 target_compile_features(stamen_stamen PUBLIC cxx_std_20)
          
             59 # ---- Declare executable ----
          
             61 add_executable(stamen_exe source/generate.cpp)
             62 add_executable(stamen::exe ALIAS stamen_exe)
          
             64 find_package(poafloc 2.0 CONFIG REQUIRED)
             65 find_package(cemplate 0.3 CONFIG REQUIRED)
          
             67 target_link_libraries(stamen_exe PRIVATE stamen::stamen poafloc::poafloc cemplate::cemplate)
             68 set_property(TARGET stamen_exe PROPERTY OUTPUT_NAME stamen)
          
             70 target_compile_features(stamen_exe PRIVATE cxx_std_20)
          
             72 # ---- Install rules ----
          
             74 if(NOT CMAKE_SKIP_INSTALL_RULES)
             75   include(cmake/install-rules.cmake)
             76 endif()
          
             78 # ---- Examples ----
          
             80 if(PROJECT_IS_TOP_LEVEL)
             81   option(BUILD_EXAMPLES "Build examples tree." "${stamen_DEVELOPER_MODE}")
             82   if(BUILD_EXAMPLES)
             83     add_subdirectory(example)
             84   endif()
             85 endif()
          
             87 # ---- Developer mode ----
          
             89 if(NOT stamen_DEVELOPER_MODE)
             90   return()
             91 elseif(NOT PROJECT_IS_TOP_LEVEL)
             92   message(
             93       AUTHOR_WARNING
             94       "Developer mode is intended for developers of stamen"
             95   )
             96 endif()
          
             98 include(cmake/dev-mode.cmake)