summaryrefslogtreecommitdiffstats
path: root/cmake/variables.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/variables.cmake')
-rw-r--r--cmake/variables.cmake28
1 files changed, 28 insertions, 0 deletions
diff --git a/cmake/variables.cmake b/cmake/variables.cmake
new file mode 100644
index 0000000..d4497e7
--- /dev/null
+++ b/cmake/variables.cmake
@@ -0,0 +1,28 @@
+# ---- Developer mode ----
+
+# Developer mode enables targets and code paths in the CMake scripts that are
+# only relevant for the developer(s) of lnav
+# Targets necessary to build the project must be provided unconditionally, so
+# consumers can trivially build and package the project
+if(PROJECT_IS_TOP_LEVEL)
+ option(lnav_DEVELOPER_MODE "Enable developer mode" OFF)
+endif()
+
+# ---- Warning guard ----
+
+# target_include_directories with the SYSTEM modifier will request the compiler
+# to omit warnings from the provided paths, if the compiler supports that
+# This is to provide a user experience similar to find_package when
+# add_subdirectory or FetchContent is used to consume this project
+set(warning_guard "")
+if(NOT PROJECT_IS_TOP_LEVEL)
+ option(
+ lnav_INCLUDES_WITH_SYSTEM
+ "Use SYSTEM modifier for lnav's includes, disabling warnings"
+ ON
+ )
+ mark_as_advanced(lnav_INCLUDES_WITH_SYSTEM)
+ if(lnav_INCLUDES_WITH_SYSTEM)
+ set(warning_guard SYSTEM)
+ endif()
+endif()