hemplate

Simple XML template engine
git clone git://git.dimitrijedobrota.com/hemplate.git
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING

CMakeLists.txt (2031B)


0 cmake_minimum_required(VERSION 3.14)
2 include(cmake/prelude.cmake)
4 project(
5 hemplate
6 VERSION 0.4.1
7 DESCRIPTION "Simple HTML template engine"
8 HOMEPAGE_URL "https://git.dimitrijedobrota.com/hemplate.git"
9 LANGUAGES CXX
10 )
12 include(cmake/project-is-top-level.cmake)
13 include(cmake/variables.cmake)
15 find_package(based 0.2.0 CONFIG REQUIRED)
17 # ---- Declare library ----
19 add_library(
20 hemplate_hemplate
21 source/common.cpp
22 source/attribute.cpp
23 )
24 target_link_libraries(hemplate_hemplate PUBLIC based::based)
25 add_library(hemplate::hemplate ALIAS hemplate_hemplate)
27 include(GenerateExportHeader)
28 generate_export_header(
29 hemplate_hemplate
30 BASE_NAME hemplate
31 EXPORT_FILE_NAME export/hemplate/hemplate_export.hpp
32 CUSTOM_CONTENT_FROM_VARIABLE pragma_suppress_c4251
33 )
35 if(NOT BUILD_SHARED_LIBS)
36 target_compile_definitions(hemplate_hemplate PUBLIC HEMPLATE_STATIC_DEFINE)
37 endif()
39 set_target_properties(
40 hemplate_hemplate PROPERTIES
41 CXX_VISIBILITY_PRESET hidden
42 VISIBILITY_INLINES_HIDDEN YES
43 VERSION "${PROJECT_VERSION}"
44 SOVERSION "${PROJECT_VERSION_MAJOR}"
45 EXPORT_NAME hemplate
46 OUTPUT_NAME hemplate
47 )
49 target_include_directories(
50 hemplate_hemplate ${warning_guard}
51 PUBLIC
52 "\$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
53 )
55 target_include_directories(
56 hemplate_hemplate SYSTEM
57 PUBLIC
58 "\$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/export>"
59 )
61 target_compile_features(hemplate_hemplate PUBLIC cxx_std_20)
63 # ---- Install rules ----
65 if(NOT CMAKE_SKIP_INSTALL_RULES)
66 include(cmake/install-rules.cmake)
67 endif()
69 # ---- Examples ----
71 if(PROJECT_IS_TOP_LEVEL)
72 option(BUILD_EXAMPLES "Build examples tree." "${hemplate_DEVELOPER_MODE}")
73 if(BUILD_EXAMPLES)
74 add_subdirectory(example)
75 endif()
76 endif()
78 # ---- Developer mode ----
80 if(NOT hemplate_DEVELOPER_MODE)
81 return()
82 elseif(NOT PROJECT_IS_TOP_LEVEL)
83 message(
84 AUTHOR_WARNING
85 "Developer mode is intended for developers of hemplate"
86 )
87 endif()
89 include(cmake/dev-mode.cmake)