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)