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)