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) 1 2 include(cmake/prelude.cmake) 3 4 project( 5 hemplate 6 VERSION 0.4.0 7 DESCRIPTION "Simple HTML template engine" 8 HOMEPAGE_URL "https://git.dimitrijedobrota.com/hemplate.git" 9 LANGUAGES CXX 10 ) 11 12 include(cmake/project-is-top-level.cmake) 13 include(cmake/variables.cmake) 14 15 find_package(based 0.1.1 CONFIG REQUIRED) 16 17 # ---- Declare library ---- 18 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) 26 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 ) 34 35 if(NOT BUILD_SHARED_LIBS) 36 target_compile_definitions(hemplate_hemplate PUBLIC HEMPLATE_STATIC_DEFINE) 37 endif() 38 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 ) 48 49 target_include_directories( 50 hemplate_hemplate ${warning_guard} 51 PUBLIC 52 "\$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>" 53 ) 54 55 target_include_directories( 56 hemplate_hemplate SYSTEM 57 PUBLIC 58 "\$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/export>" 59 ) 60 61 target_compile_features(hemplate_hemplate PUBLIC cxx_std_20) 62 63 # ---- Install rules ---- 64 65 if(NOT CMAKE_SKIP_INSTALL_RULES) 66 include(cmake/install-rules.cmake) 67 endif() 68 69 # ---- Examples ---- 70 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() 77 78 # ---- Developer mode ---- 79 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() 88 89 include(cmake/dev-mode.cmake)