displayLayout and Rendering TUI library |
git clone git://git.dimitrijedobrota.com/display.git |
Log | Files | Refs | README | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING | |
CMakeLists.txt (2030B)
1 cmake_minimum_required(VERSION 3.14) 2 3 include(cmake/prelude.cmake) 4 5 project( 6 display 7 VERSION 0.1.37 8 DESCRIPTION "TUI library" 9 HOMEPAGE_URL "git://git.dimitrijedobrota.com/display.git" 10 LANGUAGES CXX 11 ) 12 13 include(cmake/project-is-top-level.cmake) 14 include(cmake/variables.cmake) 15 16 find_package(alec 0.1.13 CONFIG REQUIRED) 17 18 # ---- Declare library ---- 19 20 add_library( 21 display_display 22 source/display.cpp 23 source/element.cpp 24 source/window.cpp 25 source/window_pivot.cpp 26 ) 27 target_link_libraries(display_display PUBLIC alec::alec) 28 add_library(display::display ALIAS display_display) 29 30 include(GenerateExportHeader) 31 generate_export_header( 32 display_display 33 BASE_NAME display 34 EXPORT_FILE_NAME export/display/display_export.hpp 35 CUSTOM_CONTENT_FROM_VARIABLE pragma_suppress_c4251 36 ) 37 38 if(NOT BUILD_SHARED_LIBS) 39 target_compile_definitions(display_display PUBLIC DISPLAY_STATIC_DEFINE) 40 endif() 41 42 set_target_properties( 43 display_display PROPERTIES 44 CXX_VISIBILITY_PRESET hidden 45 VISIBILITY_INLINES_HIDDEN YES 46 VERSION "${PROJECT_VERSION}" 47 SOVERSION "${PROJECT_VERSION_MAJOR}" 48 EXPORT_NAME display 49 OUTPUT_NAME display 50 ) 51 52 target_include_directories( 53 display_display ${warning_guard} 54 PUBLIC 55 "\$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>" 56 ) 57 58 target_include_directories( 59 display_display SYSTEM 60 PUBLIC 61 "\$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/export>" 62 ) 63 64 target_compile_features(display_display PUBLIC cxx_std_20) 65 66 # ---- Install rules ---- 67 68 if(NOT CMAKE_SKIP_INSTALL_RULES) 69 include(cmake/install-rules.cmake) 70 endif() 71 72 # ---- Examples ---- 73 74 if(PROJECT_IS_TOP_LEVEL) 75 option(BUILD_EXAMPLES "Build examples tree." "${display_DEVELOPER_MODE}") 76 if(BUILD_EXAMPLES) 77 add_subdirectory(example) 78 endif() 79 endif() 80 81 # ---- Developer mode ---- 82 83 if(NOT display_DEVELOPER_MODE) 84 return() 85 elseif(NOT PROJECT_IS_TOP_LEVEL) 86 message( 87 AUTHOR_WARNING 88 "Developer mode is intended for developers of display" 89 ) 90 endif() 91 92 include(cmake/dev-mode.cmake)