aboutsummaryrefslogtreecommitdiff
path: root/modules/MacroOptionalAddSubdirectory.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'modules/MacroOptionalAddSubdirectory.cmake')
-rw-r--r--modules/MacroOptionalAddSubdirectory.cmake12
1 files changed, 11 insertions, 1 deletions
diff --git a/modules/MacroOptionalAddSubdirectory.cmake b/modules/MacroOptionalAddSubdirectory.cmake
index 32e25141..bf1196bf 100644
--- a/modules/MacroOptionalAddSubdirectory.cmake
+++ b/modules/MacroOptionalAddSubdirectory.cmake
@@ -9,6 +9,12 @@
# subdirectory.
# This is useful if you want to compile only a subset of all
# directories.
+#
+# If the CMake variable DISABLE_ALL_OPTIONAL_SUBDIRECTORIES is set to TRUE
+# for the first CMake run on the project, all subdirectories will be disabled
+# by default (but can of course be enabled via the respective options).
+# E.g. the following will disable all subdirectories except the one named "kcalc":
+# $ cmake -DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE -DBUILD_kcalc=TRUE <srcdir>
# Copyright (c) 2007, Alexander Neundorf, <neundorf@kde.org>
#
@@ -19,7 +25,11 @@
MACRO (MACRO_OPTIONAL_ADD_SUBDIRECTORY _dir )
GET_FILENAME_COMPONENT(_fullPath ${_dir} ABSOLUTE)
IF(EXISTS ${_fullPath})
- SET(_DEFAULT_OPTION_VALUE TRUE)
+ IF(DISABLE_ALL_OPTIONAL_SUBDIRECTORIES)
+ SET(_DEFAULT_OPTION_VALUE FALSE)
+ ELSE(DISABLE_ALL_OPTIONAL_SUBDIRECTORIES)
+ SET(_DEFAULT_OPTION_VALUE TRUE)
+ ENDIF(DISABLE_ALL_OPTIONAL_SUBDIRECTORIES)
IF(DISABLE_ALL_OPTIONAL_SUBDIRS AND NOT DEFINED BUILD_${_dir})
SET(_DEFAULT_OPTION_VALUE FALSE)
ENDIF(DISABLE_ALL_OPTIONAL_SUBDIRS AND NOT DEFINED BUILD_${_dir})