stamen

Static 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) 1 2 include(cmake/prelude.cmake) 3 4 project( 5 stamen 6 VERSION 1.3.1 7 DESCRIPTION "Static menu generator" 8 HOMEPAGE_URL "https://git.dimitrijedobrota.com/stamen" 9 LANGUAGES C CXX 10 ) 11 12 include(cmake/project-is-top-level.cmake) 13 include(cmake/variables.cmake) 14 15 # ---- Declare library ---- 16 17 add_library( 18 stamen_stamen 19 source/stamen.cpp 20 ) 21 add_library(stamen::stamen ALIAS stamen_stamen) 22 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 ) 30 31 if(NOT BUILD_SHARED_LIBS) 32 target_compile_definitions(stamen_stamen PUBLIC STAMEN_STATIC_DEFINE) 33 endif() 34 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 ) 44 45 target_include_directories( 46 stamen_stamen ${warning_guard} 47 PUBLIC 48 "\$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>" 49 ) 50 51 target_include_directories( 52 stamen_stamen SYSTEM 53 PUBLIC 54 "\$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/export>" 55 ) 56 57 target_compile_features(stamen_stamen PUBLIC cxx_std_20) 58 59 # ---- Declare executable ---- 60 61 add_executable(stamen_exe source/generate.cpp) 62 add_executable(stamen::exe ALIAS stamen_exe) 63 64 find_package(poafloc 1.2 CONFIG REQUIRED) 65 find_package(cemplate 0.2 CONFIG REQUIRED) 66 67 target_link_libraries(stamen_exe PRIVATE stamen::stamen poafloc::poafloc cemplate::cemplate) 68 set_property(TARGET stamen_exe PROPERTY OUTPUT_NAME stamen) 69 70 target_compile_features(stamen_exe PRIVATE cxx_std_20) 71 72 # ---- Install rules ---- 73 74 if(NOT CMAKE_SKIP_INSTALL_RULES) 75 include(cmake/install-rules.cmake) 76 endif() 77 78 # ---- Examples ---- 79 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() 86 87 # ---- Developer mode ---- 88 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() 97 98 include(cmake/dev-mode.cmake)