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