Merge topic 'find_fontconfig'

84e7920b3a FindFontconfig: Add module to find Fontconfig

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2487
diff --git a/Auxiliary/vim/extract-upper-case.pl b/Auxiliary/vim/extract-upper-case.pl
index 6dbb678..bd62ade 100755
--- a/Auxiliary/vim/extract-upper-case.pl
+++ b/Auxiliary/vim/extract-upper-case.pl
@@ -103,25 +103,25 @@
 			my @tmp = grep { ! exists $conditional{$_} and
 			                 ! exists $loop{$_} and
 			                 ! exists $deprecated{$_} } @commands;
-			print OUT " " x 12 , "\\ ", join(" ", @tmp), "\n";
+			print_list(\*OUT, @tmp);
 		} elsif ($1 eq "VARIABLE_LIST") {
-			print OUT " " x 12 , "\\ ", join(" ", sort keys %variables), "\n";
+			print_list(\*OUT, keys %variables);
 		} elsif ($1 eq "MODULES") {
-			print OUT " " x 12 , "\\ ", join("\n", @modules), "\n";
+			print_list(\*OUT, @modules);
 		} elsif ($1 eq "GENERATOR_EXPRESSIONS") {
-			print OUT " " x 12 , "\\ ", join(" ", @generator_expr), "\n";
+			print_list(\*OUT, @generator_expr);
 		} elsif ($1 eq "CONDITIONALS") {
-			print OUT " " x 12 , "\\ ", join(" ", sort keys %conditional), "\n";
+			print_list(\*OUT, keys %conditional);
 		} elsif ($1 eq "LOOPS") {
-			print OUT " " x 12 , "\\ ", join(" ", sort keys %loop), "\n";
+			print_list(\*OUT, keys %loop);
 		} elsif ($1 eq "DEPRECATED") {
-			print OUT " " x 12 , "\\ ", join(" ", sort keys %deprecated), "\n";
+			print_list(\*OUT, keys %deprecated);
 		} elsif ($1 eq "PROPERTIES") {
-			print OUT " " x 12 , "\\ ", join(" ", sort keys %properties), "\n";
+			print_list(\*OUT, keys %properties);
 		} elsif ($1 eq "KEYWORDS") {
 			foreach my $k (sort keys %keywords) {
 				print OUT "syn keyword cmakeKW$k contained\n";
-				print OUT " " x 12, "\\ ", join(" ", @{$keywords{$k}}), "\n";
+				print_list(\*OUT, @{$keywords{$k}});
 				print OUT "\n";
 				push @keyword_hi, "hi def link cmakeKW$k ModeMsg";
 			}
@@ -164,3 +164,10 @@
 
 	return @word;
 }
+
+sub print_list
+{
+	my $O = shift;
+	my $indent = " " x 12 . "\\ ";
+	print $O $indent, join("\n" . $indent, sort @_), "\n";
+}
diff --git a/Auxiliary/vim/syntax/cmake.vim b/Auxiliary/vim/syntax/cmake.vim
index 7f58324..076b47f 100644
--- a/Auxiliary/vim/syntax/cmake.vim
+++ b/Auxiliary/vim/syntax/cmake.vim
@@ -7,7 +7,7 @@
 "               Patrick Boettcher <patrick.boettcher@posteo.de>
 " Maintainer:   Dimitri Merejkowsky <d.merej@gmail.com>
 " Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
-" Last Change:  2018 Oct 10
+" Last Change:  2018 Oct 18
 "
 " Licence:      The CMake license applies to this file. See
 "               https://cmake.org/licensing
@@ -40,301 +40,2133 @@
 syn case match
 
 syn keyword cmakeProperty contained
-            \ ABSTRACT ADDITIONAL_MAKE_CLEAN_FILES ADVANCED ALIASED_TARGET ALLOW_DUPLICATE_CUSTOM_TARGETS ANDROID_ANT_ADDITIONAL_OPTIONS ANDROID_API ANDROID_API_MIN ANDROID_ARCH ANDROID_ASSETS_DIRECTORIES ANDROID_GUI ANDROID_JAR_DEPENDENCIES ANDROID_JAR_DIRECTORIES ANDROID_JAVA_SOURCE_DIR ANDROID_NATIVE_LIB_DEPENDENCIES ANDROID_NATIVE_LIB_DIRECTORIES ANDROID_PROCESS_MAX ANDROID_PROGUARD ANDROID_PROGUARD_CONFIG_PATH ANDROID_SECURE_PROPS_PATH ANDROID_SKIP_ANT_STEP ANDROID_STL_TYPE ARCHIVE_OUTPUT_DIRECTORY ARCHIVE_OUTPUT_NAME ATTACHED_FILES ATTACHED_FILES_ON_FAIL AUTOGEN_BUILD_DIR AUTOGEN_PARALLEL AUTOGEN_SOURCE_GROUP AUTOGEN_TARGETS_FOLDER AUTOGEN_TARGET_DEPENDS AUTOMOC AUTOMOC_COMPILER_PREDEFINES AUTOMOC_DEPEND_FILTERS AUTOMOC_MACRO_NAMES AUTOMOC_MOC_OPTIONS AUTOMOC_SOURCE_GROUP AUTOMOC_TARGETS_FOLDER AUTORCC AUTORCC_OPTIONS AUTORCC_SOURCE_GROUP AUTOUIC AUTOUIC_OPTIONS AUTOUIC_SEARCH_PATHS BINARY_DIR BUILDSYSTEM_TARGETS BUILD_RPATH BUILD_WITH_INSTALL_NAME_DIR BUILD_WITH_INSTALL_RPATH BUNDLE BUNDLE_EXTENSION CACHE_VARIABLES CLEAN_NO_CUSTOM CMAKE_CONFIGURE_DEPENDS CMAKE_CXX_KNOWN_FEATURES CMAKE_C_KNOWN_FEATURES COMMON_LANGUAGE_RUNTIME COMPATIBLE_INTERFACE_BOOL COMPATIBLE_INTERFACE_NUMBER_MAX COMPATIBLE_INTERFACE_NUMBER_MIN COMPATIBLE_INTERFACE_STRING COMPILE_DEFINITIONS COMPILE_FEATURES COMPILE_FLAGS COMPILE_OPTIONS COMPILE_PDB_NAME COMPILE_PDB_OUTPUT_DIRECTORY COST CPACK_DESKTOP_SHORTCUTS CPACK_NEVER_OVERWRITE CPACK_PERMANENT CPACK_STARTUP_SHORTCUTS CPACK_START_MENU_SHORTCUTS CPACK_WIX_ACL CROSSCOMPILING_EMULATOR CUDA_EXTENSIONS CUDA_PTX_COMPILATION CUDA_RESOLVE_DEVICE_SYMBOLS CUDA_SEPARABLE_COMPILATION CUDA_STANDARD CUDA_STANDARD_REQUIRED CXX_EXTENSIONS CXX_STANDARD CXX_STANDARD_REQUIRED C_EXTENSIONS C_STANDARD C_STANDARD_REQUIRED DEBUG_CONFIGURATIONS DEBUG_POSTFIX DEFINE_SYMBOL DEFINITIONS DEPENDS DEPLOYMENT_ADDITIONAL_FILES DEPLOYMENT_REMOTE_DIRECTORY DISABLED DISABLED_FEATURES DOTNET_TARGET_FRAMEWORK_VERSION ECLIPSE_EXTRA_CPROJECT_CONTENTS ECLIPSE_EXTRA_NATURES ENABLED_FEATURES ENABLED_LANGUAGES ENABLE_EXPORTS ENVIRONMENT EXCLUDE_FROM_ALL EXCLUDE_FROM_DEFAULT_BUILD EXPORT_NAME EXPORT_PROPERTIES EXTERNAL_OBJECT EchoString FAIL_REGULAR_EXPRESSION FIND_LIBRARY_USE_LIB32_PATHS FIND_LIBRARY_USE_LIB64_PATHS FIND_LIBRARY_USE_LIBX32_PATHS FIND_LIBRARY_USE_OPENBSD_VERSIONING FIXTURES_CLEANUP FIXTURES_REQUIRED FIXTURES_SETUP FOLDER FRAMEWORK FRAMEWORK_VERSION Fortran_FORMAT Fortran_MODULE_DIRECTORY GENERATED GENERATOR_FILE_NAME GENERATOR_IS_MULTI_CONFIG GLOBAL_DEPENDS_DEBUG_MODE GLOBAL_DEPENDS_NO_CYCLES GNUtoMS HAS_CXX HEADER_FILE_ONLY HELPSTRING IMPLICIT_DEPENDS_INCLUDE_TRANSFORM IMPORTED IMPORTED_COMMON_LANGUAGE_RUNTIME IMPORTED_CONFIGURATIONS IMPORTED_GLOBAL IMPORTED_IMPLIB IMPORTED_LIBNAME IMPORTED_LINK_DEPENDENT_LIBRARIES IMPORTED_LINK_INTERFACE_LANGUAGES IMPORTED_LINK_INTERFACE_LIBRARIES IMPORTED_LINK_INTERFACE_MULTIPLICITY IMPORTED_LOCATION IMPORTED_NO_SONAME IMPORTED_OBJECTS IMPORTED_SONAME IMPORT_PREFIX IMPORT_SUFFIX INCLUDE_DIRECTORIES INCLUDE_REGULAR_EXPRESSION INSTALL_NAME_DIR INSTALL_RPATH INSTALL_RPATH_USE_LINK_PATH INTERFACE_AUTOUIC_OPTIONS INTERFACE_COMPILE_DEFINITIONS INTERFACE_COMPILE_FEATURES INTERFACE_COMPILE_OPTIONS INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_DEPENDS INTERFACE_LINK_DIRECTORIES INTERFACE_LINK_LIBRARIES INTERFACE_LINK_OPTIONS INTERFACE_POSITION_INDEPENDENT_CODE INTERFACE_SOURCES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES INTERPROCEDURAL_OPTIMIZATION IN_TRY_COMPILE IOS_INSTALL_COMBINED JOB_POOLS JOB_POOL_COMPILE JOB_POOL_LINK KEEP_EXTENSION LABELS LANGUAGE LIBRARY_OUTPUT_DIRECTORY LIBRARY_OUTPUT_NAME LINKER_LANGUAGE LINK_DEPENDS LINK_DEPENDS_NO_SHARED LINK_DIRECTORIES LINK_FLAGS LINK_INTERFACE_LIBRARIES LINK_INTERFACE_MULTIPLICITY LINK_LIBRARIES LINK_OPTIONS LINK_SEARCH_END_STATIC LINK_SEARCH_START_STATIC LINK_WHAT_YOU_USE LISTFILE_STACK LOCATION MACOSX_BUNDLE MACOSX_BUNDLE_INFO_PLIST MACOSX_FRAMEWORK_INFO_PLIST MACOSX_PACKAGE_LOCATION MACOSX_RPATH MACROS MANUALLY_ADDED_DEPENDENCIES MEASUREMENT MODIFIED NAME NO_SONAME NO_SYSTEM_FROM_IMPORTED OBJECT_DEPENDS OBJECT_OUTPUTS OSX_ARCHITECTURES OUTPUT_NAME PACKAGES_FOUND PACKAGES_NOT_FOUND PARENT_DIRECTORY PASS_REGULAR_EXPRESSION PDB_NAME PDB_OUTPUT_DIRECTORY POSITION_INDEPENDENT_CODE POST_INSTALL_SCRIPT PREDEFINED_TARGETS_FOLDER PREFIX PRE_INSTALL_SCRIPT PRIVATE_HEADER PROCESSORS PROCESSOR_AFFINITY PROJECT_LABEL PUBLIC_HEADER REPORT_UNDEFINED_PROPERTIES REQUIRED_FILES RESOURCE RESOURCE_LOCK RULE_LAUNCH_COMPILE RULE_LAUNCH_CUSTOM RULE_LAUNCH_LINK RULE_MESSAGES RUNTIME_OUTPUT_DIRECTORY RUNTIME_OUTPUT_NAME RUN_SERIAL SKIP_AUTOGEN SKIP_AUTOMOC SKIP_AUTORCC SKIP_AUTOUIC SKIP_BUILD_RPATH SKIP_RETURN_CODE SOURCES SOURCE_DIR SOVERSION STATIC_LIBRARY_FLAGS STATIC_LIBRARY_OPTIONS STRINGS SUBDIRECTORIES SUFFIX SYMBOLIC TARGET_ARCHIVES_MAY_BE_SHARED_LIBS TARGET_MESSAGES TARGET_SUPPORTS_SHARED_LIBS TESTS TEST_INCLUDE_FILE TEST_INCLUDE_FILES TIMEOUT TIMEOUT_AFTER_MATCH TYPE USE_FOLDERS VALUE VARIABLES VERSION VISIBILITY_INLINES_HIDDEN VS_CONFIGURATION_TYPE VS_COPY_TO_OUT_DIR VS_DEBUGGER_COMMAND VS_DEBUGGER_COMMAND_ARGUMENTS VS_DEBUGGER_ENVIRONMENT VS_DEBUGGER_WORKING_DIRECTORY VS_DEPLOYMENT_CONTENT VS_DEPLOYMENT_LOCATION VS_DESKTOP_EXTENSIONS_VERSION VS_DOTNET_REFERENCES VS_DOTNET_REFERENCES_COPY_LOCAL VS_DOTNET_TARGET_FRAMEWORK_VERSION VS_GLOBAL_KEYWORD VS_GLOBAL_PROJECT_TYPES VS_GLOBAL_ROOTNAMESPACE VS_INCLUDE_IN_VSIX VS_IOT_EXTENSIONS_VERSION VS_IOT_STARTUP_TASK VS_KEYWORD VS_MOBILE_EXTENSIONS_VERSION VS_RESOURCE_GENERATOR VS_SCC_AUXPATH VS_SCC_LOCALPATH VS_SCC_PROJECTNAME VS_SCC_PROVIDER VS_SDK_REFERENCES VS_SHADER_DISABLE_OPTIMIZATIONS VS_SHADER_ENABLE_DEBUG VS_SHADER_ENTRYPOINT VS_SHADER_FLAGS VS_SHADER_MODEL VS_SHADER_OBJECT_FILE_NAME VS_SHADER_OUTPUT_HEADER_FILE VS_SHADER_TYPE VS_SHADER_VARIABLE_NAME VS_STARTUP_PROJECT VS_TOOL_OVERRIDE VS_USER_PROPS VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION VS_WINRT_COMPONENT VS_WINRT_EXTENSIONS VS_WINRT_REFERENCES VS_XAML_TYPE WILL_FAIL WIN32_EXECUTABLE WINDOWS_EXPORT_ALL_SYMBOLS WORKING_DIRECTORY WRAP_EXCLUDE XCODE_EMIT_EFFECTIVE_PLATFORM_NAME XCODE_EXPLICIT_FILE_TYPE XCODE_FILE_ATTRIBUTES XCODE_LAST_KNOWN_FILE_TYPE XCODE_PRODUCT_TYPE XCODE_SCHEME_ADDRESS_SANITIZER XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN XCODE_SCHEME_ARGUMENTS XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE XCODE_SCHEME_ENVIRONMENT XCODE_SCHEME_EXECUTABLE XCODE_SCHEME_GUARD_MALLOC XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP XCODE_SCHEME_MALLOC_GUARD_EDGES XCODE_SCHEME_MALLOC_SCRIBBLE XCODE_SCHEME_MALLOC_STACK XCODE_SCHEME_THREAD_SANITIZER XCODE_SCHEME_THREAD_SANITIZER_STOP XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP XCODE_SCHEME_ZOMBIE_OBJECTS XCTEST
+            \ ABSTRACT
+            \ ADDITIONAL_MAKE_CLEAN_FILES
+            \ ADVANCED
+            \ ALIASED_TARGET
+            \ ALLOW_DUPLICATE_CUSTOM_TARGETS
+            \ ANDROID_ANT_ADDITIONAL_OPTIONS
+            \ ANDROID_API
+            \ ANDROID_API_MIN
+            \ ANDROID_ARCH
+            \ ANDROID_ASSETS_DIRECTORIES
+            \ ANDROID_GUI
+            \ ANDROID_JAR_DEPENDENCIES
+            \ ANDROID_JAR_DIRECTORIES
+            \ ANDROID_JAVA_SOURCE_DIR
+            \ ANDROID_NATIVE_LIB_DEPENDENCIES
+            \ ANDROID_NATIVE_LIB_DIRECTORIES
+            \ ANDROID_PROCESS_MAX
+            \ ANDROID_PROGUARD
+            \ ANDROID_PROGUARD_CONFIG_PATH
+            \ ANDROID_SECURE_PROPS_PATH
+            \ ANDROID_SKIP_ANT_STEP
+            \ ANDROID_STL_TYPE
+            \ ARCHIVE_OUTPUT_DIRECTORY
+            \ ARCHIVE_OUTPUT_NAME
+            \ ATTACHED_FILES
+            \ ATTACHED_FILES_ON_FAIL
+            \ AUTOGEN_BUILD_DIR
+            \ AUTOGEN_PARALLEL
+            \ AUTOGEN_SOURCE_GROUP
+            \ AUTOGEN_TARGETS_FOLDER
+            \ AUTOGEN_TARGET_DEPENDS
+            \ AUTOMOC
+            \ AUTOMOC_COMPILER_PREDEFINES
+            \ AUTOMOC_DEPEND_FILTERS
+            \ AUTOMOC_MACRO_NAMES
+            \ AUTOMOC_MOC_OPTIONS
+            \ AUTOMOC_SOURCE_GROUP
+            \ AUTOMOC_TARGETS_FOLDER
+            \ AUTORCC
+            \ AUTORCC_OPTIONS
+            \ AUTORCC_SOURCE_GROUP
+            \ AUTOUIC
+            \ AUTOUIC_OPTIONS
+            \ AUTOUIC_SEARCH_PATHS
+            \ BINARY_DIR
+            \ BUILDSYSTEM_TARGETS
+            \ BUILD_RPATH
+            \ BUILD_WITH_INSTALL_NAME_DIR
+            \ BUILD_WITH_INSTALL_RPATH
+            \ BUNDLE
+            \ BUNDLE_EXTENSION
+            \ CACHE_VARIABLES
+            \ CLEAN_NO_CUSTOM
+            \ CMAKE_CONFIGURE_DEPENDS
+            \ CMAKE_CXX_KNOWN_FEATURES
+            \ CMAKE_C_KNOWN_FEATURES
+            \ COMMON_LANGUAGE_RUNTIME
+            \ COMPATIBLE_INTERFACE_BOOL
+            \ COMPATIBLE_INTERFACE_NUMBER_MAX
+            \ COMPATIBLE_INTERFACE_NUMBER_MIN
+            \ COMPATIBLE_INTERFACE_STRING
+            \ COMPILE_DEFINITIONS
+            \ COMPILE_FEATURES
+            \ COMPILE_FLAGS
+            \ COMPILE_OPTIONS
+            \ COMPILE_PDB_NAME
+            \ COMPILE_PDB_OUTPUT_DIRECTORY
+            \ COST
+            \ CPACK_DESKTOP_SHORTCUTS
+            \ CPACK_NEVER_OVERWRITE
+            \ CPACK_PERMANENT
+            \ CPACK_STARTUP_SHORTCUTS
+            \ CPACK_START_MENU_SHORTCUTS
+            \ CPACK_WIX_ACL
+            \ CROSSCOMPILING_EMULATOR
+            \ CUDA_EXTENSIONS
+            \ CUDA_PTX_COMPILATION
+            \ CUDA_RESOLVE_DEVICE_SYMBOLS
+            \ CUDA_SEPARABLE_COMPILATION
+            \ CUDA_STANDARD
+            \ CUDA_STANDARD_REQUIRED
+            \ CXX_EXTENSIONS
+            \ CXX_STANDARD
+            \ CXX_STANDARD_REQUIRED
+            \ C_EXTENSIONS
+            \ C_STANDARD
+            \ C_STANDARD_REQUIRED
+            \ DEBUG_CONFIGURATIONS
+            \ DEBUG_POSTFIX
+            \ DEFINE_SYMBOL
+            \ DEFINITIONS
+            \ DEPENDS
+            \ DEPLOYMENT_ADDITIONAL_FILES
+            \ DEPLOYMENT_REMOTE_DIRECTORY
+            \ DISABLED
+            \ DISABLED_FEATURES
+            \ DOTNET_TARGET_FRAMEWORK_VERSION
+            \ ECLIPSE_EXTRA_CPROJECT_CONTENTS
+            \ ECLIPSE_EXTRA_NATURES
+            \ ENABLED_FEATURES
+            \ ENABLED_LANGUAGES
+            \ ENABLE_EXPORTS
+            \ ENVIRONMENT
+            \ EXCLUDE_FROM_ALL
+            \ EXCLUDE_FROM_DEFAULT_BUILD
+            \ EXPORT_NAME
+            \ EXPORT_PROPERTIES
+            \ EXTERNAL_OBJECT
+            \ EchoString
+            \ FAIL_REGULAR_EXPRESSION
+            \ FIND_LIBRARY_USE_LIB32_PATHS
+            \ FIND_LIBRARY_USE_LIB64_PATHS
+            \ FIND_LIBRARY_USE_LIBX32_PATHS
+            \ FIND_LIBRARY_USE_OPENBSD_VERSIONING
+            \ FIXTURES_CLEANUP
+            \ FIXTURES_REQUIRED
+            \ FIXTURES_SETUP
+            \ FOLDER
+            \ FRAMEWORK
+            \ FRAMEWORK_VERSION
+            \ Fortran_FORMAT
+            \ Fortran_MODULE_DIRECTORY
+            \ GENERATED
+            \ GENERATOR_FILE_NAME
+            \ GENERATOR_IS_MULTI_CONFIG
+            \ GLOBAL_DEPENDS_DEBUG_MODE
+            \ GLOBAL_DEPENDS_NO_CYCLES
+            \ GNUtoMS
+            \ HAS_CXX
+            \ HEADER_FILE_ONLY
+            \ HELPSTRING
+            \ IMPLICIT_DEPENDS_INCLUDE_TRANSFORM
+            \ IMPORTED
+            \ IMPORTED_COMMON_LANGUAGE_RUNTIME
+            \ IMPORTED_CONFIGURATIONS
+            \ IMPORTED_GLOBAL
+            \ IMPORTED_IMPLIB
+            \ IMPORTED_LIBNAME
+            \ IMPORTED_LINK_DEPENDENT_LIBRARIES
+            \ IMPORTED_LINK_INTERFACE_LANGUAGES
+            \ IMPORTED_LINK_INTERFACE_LIBRARIES
+            \ IMPORTED_LINK_INTERFACE_MULTIPLICITY
+            \ IMPORTED_LOCATION
+            \ IMPORTED_NO_SONAME
+            \ IMPORTED_OBJECTS
+            \ IMPORTED_SONAME
+            \ IMPORT_PREFIX
+            \ IMPORT_SUFFIX
+            \ INCLUDE_DIRECTORIES
+            \ INCLUDE_REGULAR_EXPRESSION
+            \ INSTALL_NAME_DIR
+            \ INSTALL_RPATH
+            \ INSTALL_RPATH_USE_LINK_PATH
+            \ INTERFACE_AUTOUIC_OPTIONS
+            \ INTERFACE_COMPILE_DEFINITIONS
+            \ INTERFACE_COMPILE_FEATURES
+            \ INTERFACE_COMPILE_OPTIONS
+            \ INTERFACE_INCLUDE_DIRECTORIES
+            \ INTERFACE_LINK_DEPENDS
+            \ INTERFACE_LINK_DIRECTORIES
+            \ INTERFACE_LINK_LIBRARIES
+            \ INTERFACE_LINK_OPTIONS
+            \ INTERFACE_POSITION_INDEPENDENT_CODE
+            \ INTERFACE_SOURCES
+            \ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES
+            \ INTERPROCEDURAL_OPTIMIZATION
+            \ IN_TRY_COMPILE
+            \ IOS_INSTALL_COMBINED
+            \ JOB_POOLS
+            \ JOB_POOL_COMPILE
+            \ JOB_POOL_LINK
+            \ KEEP_EXTENSION
+            \ LABELS
+            \ LANGUAGE
+            \ LIBRARY_OUTPUT_DIRECTORY
+            \ LIBRARY_OUTPUT_NAME
+            \ LINKER_LANGUAGE
+            \ LINK_DEPENDS
+            \ LINK_DEPENDS_NO_SHARED
+            \ LINK_DIRECTORIES
+            \ LINK_FLAGS
+            \ LINK_INTERFACE_LIBRARIES
+            \ LINK_INTERFACE_MULTIPLICITY
+            \ LINK_LIBRARIES
+            \ LINK_OPTIONS
+            \ LINK_SEARCH_END_STATIC
+            \ LINK_SEARCH_START_STATIC
+            \ LINK_WHAT_YOU_USE
+            \ LISTFILE_STACK
+            \ LOCATION
+            \ MACOSX_BUNDLE
+            \ MACOSX_BUNDLE_INFO_PLIST
+            \ MACOSX_FRAMEWORK_INFO_PLIST
+            \ MACOSX_PACKAGE_LOCATION
+            \ MACOSX_RPATH
+            \ MACROS
+            \ MANUALLY_ADDED_DEPENDENCIES
+            \ MEASUREMENT
+            \ MODIFIED
+            \ NAME
+            \ NO_SONAME
+            \ NO_SYSTEM_FROM_IMPORTED
+            \ OBJECT_DEPENDS
+            \ OBJECT_OUTPUTS
+            \ OSX_ARCHITECTURES
+            \ OUTPUT_NAME
+            \ PACKAGES_FOUND
+            \ PACKAGES_NOT_FOUND
+            \ PARENT_DIRECTORY
+            \ PASS_REGULAR_EXPRESSION
+            \ PDB_NAME
+            \ PDB_OUTPUT_DIRECTORY
+            \ POSITION_INDEPENDENT_CODE
+            \ POST_INSTALL_SCRIPT
+            \ PREDEFINED_TARGETS_FOLDER
+            \ PREFIX
+            \ PRE_INSTALL_SCRIPT
+            \ PRIVATE_HEADER
+            \ PROCESSORS
+            \ PROCESSOR_AFFINITY
+            \ PROJECT_LABEL
+            \ PUBLIC_HEADER
+            \ REPORT_UNDEFINED_PROPERTIES
+            \ REQUIRED_FILES
+            \ RESOURCE
+            \ RESOURCE_LOCK
+            \ RULE_LAUNCH_COMPILE
+            \ RULE_LAUNCH_CUSTOM
+            \ RULE_LAUNCH_LINK
+            \ RULE_MESSAGES
+            \ RUNTIME_OUTPUT_DIRECTORY
+            \ RUNTIME_OUTPUT_NAME
+            \ RUN_SERIAL
+            \ SKIP_AUTOGEN
+            \ SKIP_AUTOMOC
+            \ SKIP_AUTORCC
+            \ SKIP_AUTOUIC
+            \ SKIP_BUILD_RPATH
+            \ SKIP_RETURN_CODE
+            \ SOURCES
+            \ SOURCE_DIR
+            \ SOVERSION
+            \ STATIC_LIBRARY_FLAGS
+            \ STATIC_LIBRARY_OPTIONS
+            \ STRINGS
+            \ SUBDIRECTORIES
+            \ SUFFIX
+            \ SYMBOLIC
+            \ TARGET_ARCHIVES_MAY_BE_SHARED_LIBS
+            \ TARGET_MESSAGES
+            \ TARGET_SUPPORTS_SHARED_LIBS
+            \ TESTS
+            \ TEST_INCLUDE_FILE
+            \ TEST_INCLUDE_FILES
+            \ TIMEOUT
+            \ TIMEOUT_AFTER_MATCH
+            \ TYPE
+            \ USE_FOLDERS
+            \ VALUE
+            \ VARIABLES
+            \ VERSION
+            \ VISIBILITY_INLINES_HIDDEN
+            \ VS_CONFIGURATION_TYPE
+            \ VS_COPY_TO_OUT_DIR
+            \ VS_DEBUGGER_COMMAND
+            \ VS_DEBUGGER_COMMAND_ARGUMENTS
+            \ VS_DEBUGGER_ENVIRONMENT
+            \ VS_DEBUGGER_WORKING_DIRECTORY
+            \ VS_DEPLOYMENT_CONTENT
+            \ VS_DEPLOYMENT_LOCATION
+            \ VS_DESKTOP_EXTENSIONS_VERSION
+            \ VS_DOTNET_REFERENCES
+            \ VS_DOTNET_REFERENCES_COPY_LOCAL
+            \ VS_DOTNET_TARGET_FRAMEWORK_VERSION
+            \ VS_GLOBAL_KEYWORD
+            \ VS_GLOBAL_PROJECT_TYPES
+            \ VS_GLOBAL_ROOTNAMESPACE
+            \ VS_INCLUDE_IN_VSIX
+            \ VS_IOT_EXTENSIONS_VERSION
+            \ VS_IOT_STARTUP_TASK
+            \ VS_KEYWORD
+            \ VS_MOBILE_EXTENSIONS_VERSION
+            \ VS_RESOURCE_GENERATOR
+            \ VS_SCC_AUXPATH
+            \ VS_SCC_LOCALPATH
+            \ VS_SCC_PROJECTNAME
+            \ VS_SCC_PROVIDER
+            \ VS_SDK_REFERENCES
+            \ VS_SHADER_DISABLE_OPTIMIZATIONS
+            \ VS_SHADER_ENABLE_DEBUG
+            \ VS_SHADER_ENTRYPOINT
+            \ VS_SHADER_FLAGS
+            \ VS_SHADER_MODEL
+            \ VS_SHADER_OBJECT_FILE_NAME
+            \ VS_SHADER_OUTPUT_HEADER_FILE
+            \ VS_SHADER_TYPE
+            \ VS_SHADER_VARIABLE_NAME
+            \ VS_STARTUP_PROJECT
+            \ VS_TOOL_OVERRIDE
+            \ VS_USER_PROPS
+            \ VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION
+            \ VS_WINRT_COMPONENT
+            \ VS_WINRT_EXTENSIONS
+            \ VS_WINRT_REFERENCES
+            \ VS_XAML_TYPE
+            \ WILL_FAIL
+            \ WIN32_EXECUTABLE
+            \ WINDOWS_EXPORT_ALL_SYMBOLS
+            \ WORKING_DIRECTORY
+            \ WRAP_EXCLUDE
+            \ XCODE_EMIT_EFFECTIVE_PLATFORM_NAME
+            \ XCODE_EXPLICIT_FILE_TYPE
+            \ XCODE_FILE_ATTRIBUTES
+            \ XCODE_LAST_KNOWN_FILE_TYPE
+            \ XCODE_PRODUCT_TYPE
+            \ XCODE_SCHEME_ADDRESS_SANITIZER
+            \ XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
+            \ XCODE_SCHEME_ARGUMENTS
+            \ XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
+            \ XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
+            \ XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
+            \ XCODE_SCHEME_ENVIRONMENT
+            \ XCODE_SCHEME_EXECUTABLE
+            \ XCODE_SCHEME_GUARD_MALLOC
+            \ XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
+            \ XCODE_SCHEME_MALLOC_GUARD_EDGES
+            \ XCODE_SCHEME_MALLOC_SCRIBBLE
+            \ XCODE_SCHEME_MALLOC_STACK
+            \ XCODE_SCHEME_THREAD_SANITIZER
+            \ XCODE_SCHEME_THREAD_SANITIZER_STOP
+            \ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
+            \ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
+            \ XCODE_SCHEME_ZOMBIE_OBJECTS
+            \ XCTEST
 
 syn keyword cmakeVariable contained
-            \ ANDROID APPLE BORLAND BUILD_SHARED_LIBS CACHE CMAKE_ABSOLUTE_DESTINATION_FILES CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS CMAKE_ANDROID_API CMAKE_ANDROID_API_MIN CMAKE_ANDROID_ARCH CMAKE_ANDROID_ARCH_ABI CMAKE_ANDROID_ARM_MODE CMAKE_ANDROID_ARM_NEON CMAKE_ANDROID_ASSETS_DIRECTORIES CMAKE_ANDROID_GUI CMAKE_ANDROID_JAR_DEPENDENCIES CMAKE_ANDROID_JAR_DIRECTORIES CMAKE_ANDROID_JAVA_SOURCE_DIR CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES CMAKE_ANDROID_NDK CMAKE_ANDROID_NDK_DEPRECATED_HEADERS CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION CMAKE_ANDROID_PROCESS_MAX CMAKE_ANDROID_PROGUARD CMAKE_ANDROID_PROGUARD_CONFIG_PATH CMAKE_ANDROID_SECURE_PROPS_PATH CMAKE_ANDROID_SKIP_ANT_STEP CMAKE_ANDROID_STANDALONE_TOOLCHAIN CMAKE_ANDROID_STL_TYPE CMAKE_APPBUNDLE_PATH CMAKE_AR CMAKE_ARCHIVE_OUTPUT_DIRECTORY CMAKE_ARGC CMAKE_ARGV0 CMAKE_AUTOGEN_PARALLEL CMAKE_AUTOGEN_VERBOSE CMAKE_AUTOMOC CMAKE_AUTOMOC_COMPILER_PREDEFINES CMAKE_AUTOMOC_DEPEND_FILTERS CMAKE_AUTOMOC_MACRO_NAMES CMAKE_AUTOMOC_MOC_OPTIONS CMAKE_AUTOMOC_RELAXED_MODE CMAKE_AUTORCC CMAKE_AUTORCC_OPTIONS CMAKE_AUTOUIC CMAKE_AUTOUIC_OPTIONS CMAKE_AUTOUIC_SEARCH_PATHS CMAKE_BACKWARDS_COMPATIBILITY CMAKE_BINARY_DIR CMAKE_BUILD_RPATH CMAKE_BUILD_TOOL CMAKE_BUILD_TYPE CMAKE_BUILD_WITH_INSTALL_NAME_DIR CMAKE_BUILD_WITH_INSTALL_RPATH CMAKE_CACHEFILE_DIR CMAKE_CACHE_MAJOR_VERSION CMAKE_CACHE_MINOR_VERSION CMAKE_CACHE_PATCH_VERSION CMAKE_CFG_INTDIR CMAKE_CL_64 CMAKE_CODEBLOCKS_COMPILER_ID CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES CMAKE_CODELITE_USE_TARGETS CMAKE_COLOR_MAKEFILE CMAKE_COMMAND CMAKE_COMPILER_2005 CMAKE_COMPILER_IS_GNUCC CMAKE_COMPILER_IS_GNUCXX CMAKE_COMPILER_IS_GNUG77 CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY CMAKE_CONFIGURATION_TYPES CMAKE_CPACK_COMMAND CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR CMAKE_CTEST_COMMAND CMAKE_CUDA_EXTENSIONS CMAKE_CUDA_HOST_COMPILER CMAKE_CUDA_SEPARABLE_COMPILATION CMAKE_CUDA_STANDARD CMAKE_CUDA_STANDARD_REQUIRED CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES CMAKE_CURRENT_BINARY_DIR CMAKE_CURRENT_LIST_DIR CMAKE_CURRENT_LIST_FILE CMAKE_CURRENT_LIST_LINE CMAKE_CURRENT_SOURCE_DIR CMAKE_CXX_COMPILE_FEATURES CMAKE_CXX_EXTENSIONS CMAKE_CXX_STANDARD CMAKE_CXX_STANDARD_REQUIRED CMAKE_C_COMPILE_FEATURES CMAKE_C_EXTENSIONS CMAKE_C_STANDARD CMAKE_C_STANDARD_REQUIRED CMAKE_DEBUG_POSTFIX CMAKE_DEBUG_TARGET_PROPERTIES CMAKE_DEPENDS_IN_PROJECT_ONLY CMAKE_DIRECTORY_LABELS CMAKE_DL_LIBS CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT CMAKE_ECLIPSE_MAKE_ARGUMENTS CMAKE_ECLIPSE_VERSION CMAKE_EDIT_COMMAND CMAKE_ENABLE_EXPORTS CMAKE_ERROR_DEPRECATED CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_EXECUTABLE_SUFFIX CMAKE_EXE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS_INIT CMAKE_EXPORT_COMPILE_COMMANDS CMAKE_EXPORT_NO_PACKAGE_REGISTRY CMAKE_EXTRA_GENERATOR CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES CMAKE_FIND_APPBUNDLE CMAKE_FIND_FRAMEWORK CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX CMAKE_FIND_LIBRARY_PREFIXES CMAKE_FIND_LIBRARY_SUFFIXES CMAKE_FIND_NO_INSTALL_PREFIX CMAKE_FIND_PACKAGE_NAME CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_SORT_DIRECTION CMAKE_FIND_PACKAGE_SORT_ORDER CMAKE_FIND_PACKAGE_WARN_NO_MODULE CMAKE_FIND_ROOT_PATH CMAKE_FIND_ROOT_PATH_MODE_INCLUDE CMAKE_FIND_ROOT_PATH_MODE_LIBRARY CMAKE_FIND_ROOT_PATH_MODE_PACKAGE CMAKE_FIND_ROOT_PATH_MODE_PROGRAM CMAKE_FOLDER CMAKE_FRAMEWORK_PATH CMAKE_Fortran_FORMAT CMAKE_Fortran_MODDIR_DEFAULT CMAKE_Fortran_MODDIR_FLAG CMAKE_Fortran_MODOUT_FLAG CMAKE_Fortran_MODULE_DIRECTORY CMAKE_GENERATOR CMAKE_GENERATOR_INSTANCE CMAKE_GENERATOR_PLATFORM CMAKE_GENERATOR_TOOLSET CMAKE_GNUtoMS CMAKE_HOME_DIRECTORY CMAKE_HOST_APPLE CMAKE_HOST_SOLARIS CMAKE_HOST_SYSTEM CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_VERSION CMAKE_HOST_UNIX CMAKE_HOST_WIN32 CMAKE_IGNORE_PATH CMAKE_IMPORT_LIBRARY_PREFIX CMAKE_IMPORT_LIBRARY_SUFFIX CMAKE_INCLUDE_CURRENT_DIR CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE CMAKE_INCLUDE_DIRECTORIES_BEFORE CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE CMAKE_INCLUDE_PATH CMAKE_INSTALL_DEFAULT_COMPONENT_NAME CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS CMAKE_INSTALL_MESSAGE CMAKE_INSTALL_NAME_DIR CMAKE_INSTALL_PREFIX CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT CMAKE_INSTALL_RPATH CMAKE_INSTALL_RPATH_USE_LINK_PATH CMAKE_INTERNAL_PLATFORM_ABI CMAKE_INTERPROCEDURAL_OPTIMIZATION CMAKE_IOS_INSTALL_COMBINED CMAKE_JOB_POOLS CMAKE_JOB_POOL_COMPILE CMAKE_JOB_POOL_LINK CMAKE_LIBRARY_ARCHITECTURE CMAKE_LIBRARY_ARCHITECTURE_REGEX CMAKE_LIBRARY_OUTPUT_DIRECTORY CMAKE_LIBRARY_PATH CMAKE_LIBRARY_PATH_FLAG CMAKE_LINK_DEF_FILE_FLAG CMAKE_LINK_DEPENDS_NO_SHARED CMAKE_LINK_DIRECTORIES_BEFORE CMAKE_LINK_INTERFACE_LIBRARIES CMAKE_LINK_LIBRARY_FILE_FLAG CMAKE_LINK_LIBRARY_FLAG CMAKE_LINK_LIBRARY_SUFFIX CMAKE_LINK_SEARCH_END_STATIC CMAKE_LINK_SEARCH_START_STATIC CMAKE_LINK_WHAT_YOU_USE CMAKE_MACOSX_BUNDLE CMAKE_MACOSX_RPATH CMAKE_MAJOR_VERSION CMAKE_MAKE_PROGRAM CMAKE_MATCH_COUNT CMAKE_MFC_FLAG CMAKE_MINIMUM_REQUIRED_VERSION CMAKE_MINOR_VERSION CMAKE_MODULE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS_INIT CMAKE_MODULE_PATH CMAKE_MSVCIDE_RUN_PATH CMAKE_NETRC CMAKE_NETRC_FILE CMAKE_NINJA_OUTPUT_PATH_PREFIX CMAKE_NOT_USING_CONFIG_FLAGS CMAKE_NO_BUILTIN_CHRPATH CMAKE_NO_SYSTEM_FROM_IMPORTED CMAKE_OBJECT_PATH_MAX CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT CMAKE_PARENT_LIST_FILE CMAKE_PATCH_VERSION CMAKE_PDB_OUTPUT_DIRECTORY CMAKE_POSITION_INDEPENDENT_CODE CMAKE_PREFIX_PATH CMAKE_PROGRAM_PATH CMAKE_PROJECT_DESCRIPTION CMAKE_PROJECT_HOMEPAGE_URL CMAKE_PROJECT_NAME CMAKE_PROJECT_VERSION CMAKE_PROJECT_VERSION_MAJOR CMAKE_PROJECT_VERSION_MINOR CMAKE_PROJECT_VERSION_PATCH CMAKE_PROJECT_VERSION_TWEAK CMAKE_RANLIB CMAKE_ROOT CMAKE_RULE_MESSAGES CMAKE_RUNTIME_OUTPUT_DIRECTORY CMAKE_SCRIPT_MODE_FILE CMAKE_SHARED_LIBRARY_PREFIX CMAKE_SHARED_LIBRARY_SUFFIX CMAKE_SHARED_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS_INIT CMAKE_SHARED_MODULE_PREFIX CMAKE_SHARED_MODULE_SUFFIX CMAKE_SIZEOF_VOID_P CMAKE_SKIP_BUILD_RPATH CMAKE_SKIP_INSTALL_ALL_DEPENDENCY CMAKE_SKIP_INSTALL_RPATH CMAKE_SKIP_INSTALL_RULES CMAKE_SKIP_RPATH CMAKE_SOURCE_DIR CMAKE_STAGING_PREFIX CMAKE_STATIC_LIBRARY_PREFIX CMAKE_STATIC_LIBRARY_SUFFIX CMAKE_STATIC_LINKER_FLAGS CMAKE_STATIC_LINKER_FLAGS_INIT CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE CMAKE_SUPPRESS_REGENERATION CMAKE_SYSROOT CMAKE_SYSROOT_COMPILE CMAKE_SYSROOT_LINK CMAKE_SYSTEM CMAKE_SYSTEM_APPBUNDLE_PATH CMAKE_SYSTEM_FRAMEWORK_PATH CMAKE_SYSTEM_IGNORE_PATH CMAKE_SYSTEM_INCLUDE_PATH CMAKE_SYSTEM_LIBRARY_PATH CMAKE_SYSTEM_NAME CMAKE_SYSTEM_PREFIX_PATH CMAKE_SYSTEM_PROCESSOR CMAKE_SYSTEM_PROGRAM_PATH CMAKE_SYSTEM_VERSION CMAKE_Swift_LANGUAGE_VERSION CMAKE_TOOLCHAIN_FILE CMAKE_TRY_COMPILE_CONFIGURATION CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_TRY_COMPILE_TARGET_TYPE CMAKE_TWEAK_VERSION CMAKE_USER_MAKE_RULES_OVERRIDE CMAKE_USE_RELATIVE_PATHS CMAKE_VERBOSE_MAKEFILE CMAKE_VERSION CMAKE_VISIBILITY_INLINES_HIDDEN CMAKE_VS_DEVENV_COMMAND CMAKE_VS_GLOBALS CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD CMAKE_VS_INTEL_Fortran_PROJECT_VERSION CMAKE_VS_MSBUILD_COMMAND CMAKE_VS_NsightTegra_VERSION CMAKE_VS_PLATFORM_NAME CMAKE_VS_PLATFORM_TOOLSET CMAKE_VS_PLATFORM_TOOLSET_CUDA CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE CMAKE_VS_PLATFORM_TOOLSET_VERSION CMAKE_VS_SDK_EXCLUDE_DIRECTORIES CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES CMAKE_VS_SDK_INCLUDE_DIRECTORIES CMAKE_VS_SDK_LIBRARY_DIRECTORIES CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES CMAKE_VS_SDK_REFERENCE_DIRECTORIES CMAKE_VS_SDK_SOURCE_DIRECTORIES CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION CMAKE_VS_WINRT_BY_DEFAULT CMAKE_WARN_DEPRECATED CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_WIN32_EXECUTABLE CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS CMAKE_XCODE_GENERATE_SCHEME CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY CMAKE_XCODE_PLATFORM_TOOLSET CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE CMAKE_XCODE_SCHEME_GUARD_MALLOC CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE CMAKE_XCODE_SCHEME_MALLOC_STACK CMAKE_XCODE_SCHEME_THREAD_SANITIZER CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS CPACK_ABSOLUTE_DESTINATION_FILES CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CPACK_INCLUDE_TOPLEVEL_DIRECTORY CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS CPACK_INSTALL_SCRIPT CPACK_PACKAGING_INSTALL_PREFIX CPACK_SET_DESTDIR CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CTEST_BINARY_DIRECTORY CTEST_BUILD_COMMAND CTEST_BUILD_NAME CTEST_BZR_COMMAND CTEST_BZR_UPDATE_OPTIONS CTEST_CHANGE_ID CTEST_CHECKOUT_COMMAND CTEST_CONFIGURATION_TYPE CTEST_CONFIGURE_COMMAND CTEST_COVERAGE_COMMAND CTEST_COVERAGE_EXTRA_FLAGS CTEST_CURL_OPTIONS CTEST_CUSTOM_COVERAGE_EXCLUDE CTEST_CUSTOM_ERROR_EXCEPTION CTEST_CUSTOM_ERROR_MATCH CTEST_CUSTOM_ERROR_POST_CONTEXT CTEST_CUSTOM_ERROR_PRE_CONTEXT CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE CTEST_CUSTOM_MEMCHECK_IGNORE CTEST_CUSTOM_POST_MEMCHECK CTEST_CUSTOM_POST_TEST CTEST_CUSTOM_PRE_MEMCHECK CTEST_CUSTOM_PRE_TEST CTEST_CUSTOM_TEST_IGNORE CTEST_CUSTOM_WARNING_EXCEPTION CTEST_CUSTOM_WARNING_MATCH CTEST_CVS_CHECKOUT CTEST_CVS_COMMAND CTEST_CVS_UPDATE_OPTIONS CTEST_DROP_LOCATION CTEST_DROP_METHOD CTEST_DROP_SITE CTEST_DROP_SITE_CDASH CTEST_DROP_SITE_PASSWORD CTEST_DROP_SITE_USER CTEST_EXTRA_COVERAGE_GLOB CTEST_GIT_COMMAND CTEST_GIT_INIT_SUBMODULES CTEST_GIT_UPDATE_CUSTOM CTEST_GIT_UPDATE_OPTIONS CTEST_HG_COMMAND CTEST_HG_UPDATE_OPTIONS CTEST_LABELS_FOR_SUBPROJECTS CTEST_MEMORYCHECK_COMMAND CTEST_MEMORYCHECK_COMMAND_OPTIONS CTEST_MEMORYCHECK_SANITIZER_OPTIONS CTEST_MEMORYCHECK_SUPPRESSIONS_FILE CTEST_MEMORYCHECK_TYPE CTEST_NIGHTLY_START_TIME CTEST_P4_CLIENT CTEST_P4_COMMAND CTEST_P4_OPTIONS CTEST_P4_UPDATE_OPTIONS CTEST_RUN_CURRENT_SCRIPT CTEST_SCP_COMMAND CTEST_SITE CTEST_SOURCE_DIRECTORY CTEST_SVN_COMMAND CTEST_SVN_OPTIONS CTEST_SVN_UPDATE_OPTIONS CTEST_TEST_LOAD CTEST_TEST_TIMEOUT CTEST_TRIGGER_SITE CTEST_UPDATE_COMMAND CTEST_UPDATE_OPTIONS CTEST_UPDATE_VERSION_ONLY CTEST_USE_LAUNCHERS CYGWIN ENV EXECUTABLE_OUTPUT_PATH GHS-MULTI LIBRARY_OUTPUT_PATH MINGW MSVC MSVC10 MSVC11 MSVC12 MSVC14 MSVC60 MSVC70 MSVC71 MSVC80 MSVC90 MSVC_IDE MSVC_TOOLSET_VERSION MSVC_VERSION PROJECT_BINARY_DIR PROJECT_DESCRIPTION PROJECT_HOMEPAGE_URL PROJECT_NAME PROJECT_SOURCE_DIR PROJECT_VERSION PROJECT_VERSION_MAJOR PROJECT_VERSION_MINOR PROJECT_VERSION_PATCH PROJECT_VERSION_TWEAK UNIX WIN32 WINCE WINDOWS_PHONE WINDOWS_STORE XCODE XCODE_VERSION
+            \ ANDROID
+            \ APPLE
+            \ BORLAND
+            \ BUILD_SHARED_LIBS
+            \ CACHE
+            \ CMAKE_ABSOLUTE_DESTINATION_FILES
+            \ CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS
+            \ CMAKE_ANDROID_API
+            \ CMAKE_ANDROID_API_MIN
+            \ CMAKE_ANDROID_ARCH
+            \ CMAKE_ANDROID_ARCH_ABI
+            \ CMAKE_ANDROID_ARM_MODE
+            \ CMAKE_ANDROID_ARM_NEON
+            \ CMAKE_ANDROID_ASSETS_DIRECTORIES
+            \ CMAKE_ANDROID_GUI
+            \ CMAKE_ANDROID_JAR_DEPENDENCIES
+            \ CMAKE_ANDROID_JAR_DIRECTORIES
+            \ CMAKE_ANDROID_JAVA_SOURCE_DIR
+            \ CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES
+            \ CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES
+            \ CMAKE_ANDROID_NDK
+            \ CMAKE_ANDROID_NDK_DEPRECATED_HEADERS
+            \ CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG
+            \ CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION
+            \ CMAKE_ANDROID_PROCESS_MAX
+            \ CMAKE_ANDROID_PROGUARD
+            \ CMAKE_ANDROID_PROGUARD_CONFIG_PATH
+            \ CMAKE_ANDROID_SECURE_PROPS_PATH
+            \ CMAKE_ANDROID_SKIP_ANT_STEP
+            \ CMAKE_ANDROID_STANDALONE_TOOLCHAIN
+            \ CMAKE_ANDROID_STL_TYPE
+            \ CMAKE_APPBUNDLE_PATH
+            \ CMAKE_AR
+            \ CMAKE_ARCHIVE_OUTPUT_DIRECTORY
+            \ CMAKE_ARGC
+            \ CMAKE_ARGV0
+            \ CMAKE_AUTOGEN_PARALLEL
+            \ CMAKE_AUTOGEN_VERBOSE
+            \ CMAKE_AUTOMOC
+            \ CMAKE_AUTOMOC_COMPILER_PREDEFINES
+            \ CMAKE_AUTOMOC_DEPEND_FILTERS
+            \ CMAKE_AUTOMOC_MACRO_NAMES
+            \ CMAKE_AUTOMOC_MOC_OPTIONS
+            \ CMAKE_AUTOMOC_RELAXED_MODE
+            \ CMAKE_AUTORCC
+            \ CMAKE_AUTORCC_OPTIONS
+            \ CMAKE_AUTOUIC
+            \ CMAKE_AUTOUIC_OPTIONS
+            \ CMAKE_AUTOUIC_SEARCH_PATHS
+            \ CMAKE_BACKWARDS_COMPATIBILITY
+            \ CMAKE_BINARY_DIR
+            \ CMAKE_BUILD_RPATH
+            \ CMAKE_BUILD_TOOL
+            \ CMAKE_BUILD_TYPE
+            \ CMAKE_BUILD_WITH_INSTALL_NAME_DIR
+            \ CMAKE_BUILD_WITH_INSTALL_RPATH
+            \ CMAKE_CACHEFILE_DIR
+            \ CMAKE_CACHE_MAJOR_VERSION
+            \ CMAKE_CACHE_MINOR_VERSION
+            \ CMAKE_CACHE_PATCH_VERSION
+            \ CMAKE_CFG_INTDIR
+            \ CMAKE_CL_64
+            \ CMAKE_CODEBLOCKS_COMPILER_ID
+            \ CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES
+            \ CMAKE_CODELITE_USE_TARGETS
+            \ CMAKE_COLOR_MAKEFILE
+            \ CMAKE_COMMAND
+            \ CMAKE_COMPILER_2005
+            \ CMAKE_COMPILER_IS_GNUCC
+            \ CMAKE_COMPILER_IS_GNUCXX
+            \ CMAKE_COMPILER_IS_GNUG77
+            \ CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY
+            \ CMAKE_CONFIGURATION_TYPES
+            \ CMAKE_CPACK_COMMAND
+            \ CMAKE_CROSSCOMPILING
+            \ CMAKE_CROSSCOMPILING_EMULATOR
+            \ CMAKE_CTEST_COMMAND
+            \ CMAKE_CUDA_EXTENSIONS
+            \ CMAKE_CUDA_HOST_COMPILER
+            \ CMAKE_CUDA_SEPARABLE_COMPILATION
+            \ CMAKE_CUDA_STANDARD
+            \ CMAKE_CUDA_STANDARD_REQUIRED
+            \ CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES
+            \ CMAKE_CURRENT_BINARY_DIR
+            \ CMAKE_CURRENT_LIST_DIR
+            \ CMAKE_CURRENT_LIST_FILE
+            \ CMAKE_CURRENT_LIST_LINE
+            \ CMAKE_CURRENT_SOURCE_DIR
+            \ CMAKE_CXX_COMPILE_FEATURES
+            \ CMAKE_CXX_EXTENSIONS
+            \ CMAKE_CXX_STANDARD
+            \ CMAKE_CXX_STANDARD_REQUIRED
+            \ CMAKE_C_COMPILE_FEATURES
+            \ CMAKE_C_EXTENSIONS
+            \ CMAKE_C_STANDARD
+            \ CMAKE_C_STANDARD_REQUIRED
+            \ CMAKE_DEBUG_POSTFIX
+            \ CMAKE_DEBUG_TARGET_PROPERTIES
+            \ CMAKE_DEPENDS_IN_PROJECT_ONLY
+            \ CMAKE_DIRECTORY_LABELS
+            \ CMAKE_DL_LIBS
+            \ CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION
+            \ CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES
+            \ CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT
+            \ CMAKE_ECLIPSE_MAKE_ARGUMENTS
+            \ CMAKE_ECLIPSE_VERSION
+            \ CMAKE_EDIT_COMMAND
+            \ CMAKE_ENABLE_EXPORTS
+            \ CMAKE_ERROR_DEPRECATED
+            \ CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
+            \ CMAKE_EXECUTABLE_SUFFIX
+            \ CMAKE_EXE_LINKER_FLAGS
+            \ CMAKE_EXE_LINKER_FLAGS_INIT
+            \ CMAKE_EXPORT_COMPILE_COMMANDS
+            \ CMAKE_EXPORT_NO_PACKAGE_REGISTRY
+            \ CMAKE_EXTRA_GENERATOR
+            \ CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES
+            \ CMAKE_FIND_APPBUNDLE
+            \ CMAKE_FIND_FRAMEWORK
+            \ CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX
+            \ CMAKE_FIND_LIBRARY_PREFIXES
+            \ CMAKE_FIND_LIBRARY_SUFFIXES
+            \ CMAKE_FIND_NO_INSTALL_PREFIX
+            \ CMAKE_FIND_PACKAGE_NAME
+            \ CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY
+            \ CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY
+            \ CMAKE_FIND_PACKAGE_SORT_DIRECTION
+            \ CMAKE_FIND_PACKAGE_SORT_ORDER
+            \ CMAKE_FIND_PACKAGE_WARN_NO_MODULE
+            \ CMAKE_FIND_ROOT_PATH
+            \ CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
+            \ CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
+            \ CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
+            \ CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
+            \ CMAKE_FOLDER
+            \ CMAKE_FRAMEWORK_PATH
+            \ CMAKE_Fortran_FORMAT
+            \ CMAKE_Fortran_MODDIR_DEFAULT
+            \ CMAKE_Fortran_MODDIR_FLAG
+            \ CMAKE_Fortran_MODOUT_FLAG
+            \ CMAKE_Fortran_MODULE_DIRECTORY
+            \ CMAKE_GENERATOR
+            \ CMAKE_GENERATOR_INSTANCE
+            \ CMAKE_GENERATOR_PLATFORM
+            \ CMAKE_GENERATOR_TOOLSET
+            \ CMAKE_GNUtoMS
+            \ CMAKE_HOME_DIRECTORY
+            \ CMAKE_HOST_APPLE
+            \ CMAKE_HOST_SOLARIS
+            \ CMAKE_HOST_SYSTEM
+            \ CMAKE_HOST_SYSTEM_NAME
+            \ CMAKE_HOST_SYSTEM_PROCESSOR
+            \ CMAKE_HOST_SYSTEM_VERSION
+            \ CMAKE_HOST_UNIX
+            \ CMAKE_HOST_WIN32
+            \ CMAKE_IGNORE_PATH
+            \ CMAKE_IMPORT_LIBRARY_PREFIX
+            \ CMAKE_IMPORT_LIBRARY_SUFFIX
+            \ CMAKE_INCLUDE_CURRENT_DIR
+            \ CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE
+            \ CMAKE_INCLUDE_DIRECTORIES_BEFORE
+            \ CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE
+            \ CMAKE_INCLUDE_PATH
+            \ CMAKE_INSTALL_DEFAULT_COMPONENT_NAME
+            \ CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
+            \ CMAKE_INSTALL_MESSAGE
+            \ CMAKE_INSTALL_NAME_DIR
+            \ CMAKE_INSTALL_PREFIX
+            \ CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT
+            \ CMAKE_INSTALL_RPATH
+            \ CMAKE_INSTALL_RPATH_USE_LINK_PATH
+            \ CMAKE_INTERNAL_PLATFORM_ABI
+            \ CMAKE_INTERPROCEDURAL_OPTIMIZATION
+            \ CMAKE_IOS_INSTALL_COMBINED
+            \ CMAKE_JOB_POOLS
+            \ CMAKE_JOB_POOL_COMPILE
+            \ CMAKE_JOB_POOL_LINK
+            \ CMAKE_LIBRARY_ARCHITECTURE
+            \ CMAKE_LIBRARY_ARCHITECTURE_REGEX
+            \ CMAKE_LIBRARY_OUTPUT_DIRECTORY
+            \ CMAKE_LIBRARY_PATH
+            \ CMAKE_LIBRARY_PATH_FLAG
+            \ CMAKE_LINK_DEF_FILE_FLAG
+            \ CMAKE_LINK_DEPENDS_NO_SHARED
+            \ CMAKE_LINK_DIRECTORIES_BEFORE
+            \ CMAKE_LINK_INTERFACE_LIBRARIES
+            \ CMAKE_LINK_LIBRARY_FILE_FLAG
+            \ CMAKE_LINK_LIBRARY_FLAG
+            \ CMAKE_LINK_LIBRARY_SUFFIX
+            \ CMAKE_LINK_SEARCH_END_STATIC
+            \ CMAKE_LINK_SEARCH_START_STATIC
+            \ CMAKE_LINK_WHAT_YOU_USE
+            \ CMAKE_MACOSX_BUNDLE
+            \ CMAKE_MACOSX_RPATH
+            \ CMAKE_MAJOR_VERSION
+            \ CMAKE_MAKE_PROGRAM
+            \ CMAKE_MATCH_COUNT
+            \ CMAKE_MFC_FLAG
+            \ CMAKE_MINIMUM_REQUIRED_VERSION
+            \ CMAKE_MINOR_VERSION
+            \ CMAKE_MODULE_LINKER_FLAGS
+            \ CMAKE_MODULE_LINKER_FLAGS_INIT
+            \ CMAKE_MODULE_PATH
+            \ CMAKE_MSVCIDE_RUN_PATH
+            \ CMAKE_NETRC
+            \ CMAKE_NETRC_FILE
+            \ CMAKE_NINJA_OUTPUT_PATH_PREFIX
+            \ CMAKE_NOT_USING_CONFIG_FLAGS
+            \ CMAKE_NO_BUILTIN_CHRPATH
+            \ CMAKE_NO_SYSTEM_FROM_IMPORTED
+            \ CMAKE_OBJECT_PATH_MAX
+            \ CMAKE_OSX_ARCHITECTURES
+            \ CMAKE_OSX_DEPLOYMENT_TARGET
+            \ CMAKE_OSX_SYSROOT
+            \ CMAKE_PARENT_LIST_FILE
+            \ CMAKE_PATCH_VERSION
+            \ CMAKE_PDB_OUTPUT_DIRECTORY
+            \ CMAKE_POSITION_INDEPENDENT_CODE
+            \ CMAKE_PREFIX_PATH
+            \ CMAKE_PROGRAM_PATH
+            \ CMAKE_PROJECT_DESCRIPTION
+            \ CMAKE_PROJECT_HOMEPAGE_URL
+            \ CMAKE_PROJECT_NAME
+            \ CMAKE_PROJECT_VERSION
+            \ CMAKE_PROJECT_VERSION_MAJOR
+            \ CMAKE_PROJECT_VERSION_MINOR
+            \ CMAKE_PROJECT_VERSION_PATCH
+            \ CMAKE_PROJECT_VERSION_TWEAK
+            \ CMAKE_RANLIB
+            \ CMAKE_ROOT
+            \ CMAKE_RULE_MESSAGES
+            \ CMAKE_RUNTIME_OUTPUT_DIRECTORY
+            \ CMAKE_SCRIPT_MODE_FILE
+            \ CMAKE_SHARED_LIBRARY_PREFIX
+            \ CMAKE_SHARED_LIBRARY_SUFFIX
+            \ CMAKE_SHARED_LINKER_FLAGS
+            \ CMAKE_SHARED_LINKER_FLAGS_INIT
+            \ CMAKE_SHARED_MODULE_PREFIX
+            \ CMAKE_SHARED_MODULE_SUFFIX
+            \ CMAKE_SIZEOF_VOID_P
+            \ CMAKE_SKIP_BUILD_RPATH
+            \ CMAKE_SKIP_INSTALL_ALL_DEPENDENCY
+            \ CMAKE_SKIP_INSTALL_RPATH
+            \ CMAKE_SKIP_INSTALL_RULES
+            \ CMAKE_SKIP_RPATH
+            \ CMAKE_SOURCE_DIR
+            \ CMAKE_STAGING_PREFIX
+            \ CMAKE_STATIC_LIBRARY_PREFIX
+            \ CMAKE_STATIC_LIBRARY_SUFFIX
+            \ CMAKE_STATIC_LINKER_FLAGS
+            \ CMAKE_STATIC_LINKER_FLAGS_INIT
+            \ CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS
+            \ CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE
+            \ CMAKE_SUPPRESS_REGENERATION
+            \ CMAKE_SYSROOT
+            \ CMAKE_SYSROOT_COMPILE
+            \ CMAKE_SYSROOT_LINK
+            \ CMAKE_SYSTEM
+            \ CMAKE_SYSTEM_APPBUNDLE_PATH
+            \ CMAKE_SYSTEM_FRAMEWORK_PATH
+            \ CMAKE_SYSTEM_IGNORE_PATH
+            \ CMAKE_SYSTEM_INCLUDE_PATH
+            \ CMAKE_SYSTEM_LIBRARY_PATH
+            \ CMAKE_SYSTEM_NAME
+            \ CMAKE_SYSTEM_PREFIX_PATH
+            \ CMAKE_SYSTEM_PROCESSOR
+            \ CMAKE_SYSTEM_PROGRAM_PATH
+            \ CMAKE_SYSTEM_VERSION
+            \ CMAKE_Swift_LANGUAGE_VERSION
+            \ CMAKE_TOOLCHAIN_FILE
+            \ CMAKE_TRY_COMPILE_CONFIGURATION
+            \ CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
+            \ CMAKE_TRY_COMPILE_TARGET_TYPE
+            \ CMAKE_TWEAK_VERSION
+            \ CMAKE_USER_MAKE_RULES_OVERRIDE
+            \ CMAKE_USE_RELATIVE_PATHS
+            \ CMAKE_VERBOSE_MAKEFILE
+            \ CMAKE_VERSION
+            \ CMAKE_VISIBILITY_INLINES_HIDDEN
+            \ CMAKE_VS_DEVENV_COMMAND
+            \ CMAKE_VS_GLOBALS
+            \ CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD
+            \ CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD
+            \ CMAKE_VS_INTEL_Fortran_PROJECT_VERSION
+            \ CMAKE_VS_MSBUILD_COMMAND
+            \ CMAKE_VS_NsightTegra_VERSION
+            \ CMAKE_VS_PLATFORM_NAME
+            \ CMAKE_VS_PLATFORM_TOOLSET
+            \ CMAKE_VS_PLATFORM_TOOLSET_CUDA
+            \ CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE
+            \ CMAKE_VS_PLATFORM_TOOLSET_VERSION
+            \ CMAKE_VS_SDK_EXCLUDE_DIRECTORIES
+            \ CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES
+            \ CMAKE_VS_SDK_INCLUDE_DIRECTORIES
+            \ CMAKE_VS_SDK_LIBRARY_DIRECTORIES
+            \ CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES
+            \ CMAKE_VS_SDK_REFERENCE_DIRECTORIES
+            \ CMAKE_VS_SDK_SOURCE_DIRECTORIES
+            \ CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION
+            \ CMAKE_VS_WINRT_BY_DEFAULT
+            \ CMAKE_WARN_DEPRECATED
+            \ CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
+            \ CMAKE_WIN32_EXECUTABLE
+            \ CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
+            \ CMAKE_XCODE_GENERATE_SCHEME
+            \ CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY
+            \ CMAKE_XCODE_PLATFORM_TOOLSET
+            \ CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER
+            \ CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
+            \ CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
+            \ CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
+            \ CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
+            \ CMAKE_XCODE_SCHEME_GUARD_MALLOC
+            \ CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
+            \ CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES
+            \ CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE
+            \ CMAKE_XCODE_SCHEME_MALLOC_STACK
+            \ CMAKE_XCODE_SCHEME_THREAD_SANITIZER
+            \ CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP
+            \ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
+            \ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
+            \ CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS
+            \ CPACK_ABSOLUTE_DESTINATION_FILES
+            \ CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY
+            \ CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
+            \ CPACK_INCLUDE_TOPLEVEL_DIRECTORY
+            \ CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
+            \ CPACK_INSTALL_SCRIPT
+            \ CPACK_PACKAGING_INSTALL_PREFIX
+            \ CPACK_SET_DESTDIR
+            \ CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
+            \ CTEST_BINARY_DIRECTORY
+            \ CTEST_BUILD_COMMAND
+            \ CTEST_BUILD_NAME
+            \ CTEST_BZR_COMMAND
+            \ CTEST_BZR_UPDATE_OPTIONS
+            \ CTEST_CHANGE_ID
+            \ CTEST_CHECKOUT_COMMAND
+            \ CTEST_CONFIGURATION_TYPE
+            \ CTEST_CONFIGURE_COMMAND
+            \ CTEST_COVERAGE_COMMAND
+            \ CTEST_COVERAGE_EXTRA_FLAGS
+            \ CTEST_CURL_OPTIONS
+            \ CTEST_CUSTOM_COVERAGE_EXCLUDE
+            \ CTEST_CUSTOM_ERROR_EXCEPTION
+            \ CTEST_CUSTOM_ERROR_MATCH
+            \ CTEST_CUSTOM_ERROR_POST_CONTEXT
+            \ CTEST_CUSTOM_ERROR_PRE_CONTEXT
+            \ CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE
+            \ CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS
+            \ CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS
+            \ CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE
+            \ CTEST_CUSTOM_MEMCHECK_IGNORE
+            \ CTEST_CUSTOM_POST_MEMCHECK
+            \ CTEST_CUSTOM_POST_TEST
+            \ CTEST_CUSTOM_PRE_MEMCHECK
+            \ CTEST_CUSTOM_PRE_TEST
+            \ CTEST_CUSTOM_TEST_IGNORE
+            \ CTEST_CUSTOM_WARNING_EXCEPTION
+            \ CTEST_CUSTOM_WARNING_MATCH
+            \ CTEST_CVS_CHECKOUT
+            \ CTEST_CVS_COMMAND
+            \ CTEST_CVS_UPDATE_OPTIONS
+            \ CTEST_DROP_LOCATION
+            \ CTEST_DROP_METHOD
+            \ CTEST_DROP_SITE
+            \ CTEST_DROP_SITE_CDASH
+            \ CTEST_DROP_SITE_PASSWORD
+            \ CTEST_DROP_SITE_USER
+            \ CTEST_EXTRA_COVERAGE_GLOB
+            \ CTEST_GIT_COMMAND
+            \ CTEST_GIT_INIT_SUBMODULES
+            \ CTEST_GIT_UPDATE_CUSTOM
+            \ CTEST_GIT_UPDATE_OPTIONS
+            \ CTEST_HG_COMMAND
+            \ CTEST_HG_UPDATE_OPTIONS
+            \ CTEST_LABELS_FOR_SUBPROJECTS
+            \ CTEST_MEMORYCHECK_COMMAND
+            \ CTEST_MEMORYCHECK_COMMAND_OPTIONS
+            \ CTEST_MEMORYCHECK_SANITIZER_OPTIONS
+            \ CTEST_MEMORYCHECK_SUPPRESSIONS_FILE
+            \ CTEST_MEMORYCHECK_TYPE
+            \ CTEST_NIGHTLY_START_TIME
+            \ CTEST_P4_CLIENT
+            \ CTEST_P4_COMMAND
+            \ CTEST_P4_OPTIONS
+            \ CTEST_P4_UPDATE_OPTIONS
+            \ CTEST_RUN_CURRENT_SCRIPT
+            \ CTEST_SCP_COMMAND
+            \ CTEST_SITE
+            \ CTEST_SOURCE_DIRECTORY
+            \ CTEST_SVN_COMMAND
+            \ CTEST_SVN_OPTIONS
+            \ CTEST_SVN_UPDATE_OPTIONS
+            \ CTEST_TEST_LOAD
+            \ CTEST_TEST_TIMEOUT
+            \ CTEST_TRIGGER_SITE
+            \ CTEST_UPDATE_COMMAND
+            \ CTEST_UPDATE_OPTIONS
+            \ CTEST_UPDATE_VERSION_ONLY
+            \ CTEST_USE_LAUNCHERS
+            \ CYGWIN
+            \ ENV
+            \ EXECUTABLE_OUTPUT_PATH
+            \ GHS-MULTI
+            \ LIBRARY_OUTPUT_PATH
+            \ MINGW
+            \ MSVC
+            \ MSVC10
+            \ MSVC11
+            \ MSVC12
+            \ MSVC14
+            \ MSVC60
+            \ MSVC70
+            \ MSVC71
+            \ MSVC80
+            \ MSVC90
+            \ MSVC_IDE
+            \ MSVC_TOOLSET_VERSION
+            \ MSVC_VERSION
+            \ PROJECT_BINARY_DIR
+            \ PROJECT_DESCRIPTION
+            \ PROJECT_HOMEPAGE_URL
+            \ PROJECT_NAME
+            \ PROJECT_SOURCE_DIR
+            \ PROJECT_VERSION
+            \ PROJECT_VERSION_MAJOR
+            \ PROJECT_VERSION_MINOR
+            \ PROJECT_VERSION_PATCH
+            \ PROJECT_VERSION_TWEAK
+            \ UNIX
+            \ WIN32
+            \ WINCE
+            \ WINDOWS_PHONE
+            \ WINDOWS_STORE
+            \ XCODE
+            \ XCODE_VERSION
 
 syn keyword cmakeModule contained
             \ ExternalProject
 
 syn keyword cmakeKWExternalProject contained
-            \ AWS BINARY_DIR BUILD_ALWAYS BUILD_BYPRODUCTS BUILD_COMMAND BUILD_IN_SOURCE CMAKE_ARGS CMAKE_CACHE_ARGS CMAKE_CACHE_DEFAULT_ARGS CMAKE_TLS_CAINFO CMAKE_TLS_VERIFY COMMENT CONFIGURE_COMMAND CVS CVSROOT CVS_MODULE CVS_REPOSITORY CVS_TAG DEPENDEES DEPENDERS DEPENDS DOWNLOADED_FILE DOWNLOAD_COMMAND DOWNLOAD_DIR DOWNLOAD_NAME DOWNLOAD_NO_EXTRACT DOWNLOAD_NO_PROGRESS EP_BASE EP_INDEPENDENT_STEP_TARGETS EP_PREFIX EP_STEP_TARGETS EP_UPDATE_DISCONNECTED EXCLUDE_FROM_ALL FORCE GIT_CONFIG GIT_PROGRESS GIT_REMOTE_NAME GIT_REPOSITORY GIT_SHALLOW GIT_SUBMODULES GIT_TAG HG_REPOSITORY HG_TAG HTTP_HEADER HTTP_PASSWORD HTTP_USERNAME IGNORED INDEPENDENT_STEP_TARGETS INSTALL_COMMAND INSTALL_DIR JOB_POOLS LIST_SEPARATOR LOG_ LOG_BUILD LOG_CONFIGURE LOG_DOWNLOAD LOG_INSTALL LOG_TEST LOG_UPDATE MAKE_EXE NAMES NETRC NETRC_FILE NOTE NO_DEPENDS OPTIONAL PATCH_COMMAND PREFIX PROPERTY REQUIRED SOURCE_DIR SOURCE_SUBDIR STAMP_DIR STEP_TARGETS STRING SVN_PASSWORD SVN_REPOSITORY SVN_REVISION SVN_TRUST_CERT SVN_USERNAME TEST_AFTER_INSTALL TEST_BEFORE_INSTALL TEST_COMMAND TEST_EXCLUDE_FROM_MAIN TIMEOUT TLS_CAINFO TLS_VERIFY TMP_DIR TRUE UPDATE_COMMAND UPDATE_DISCONNECTED URL URL_HASH USES_TERMINAL_BUILD USES_TERMINAL_CONFIGURE USES_TERMINAL_DOWNLOAD USES_TERMINAL_INSTALL USES_TERMINAL_TEST USES_TERMINAL_UPDATE WORKING_DIRECTORY
+            \ AWS
+            \ BINARY_DIR
+            \ BUILD_ALWAYS
+            \ BUILD_BYPRODUCTS
+            \ BUILD_COMMAND
+            \ BUILD_IN_SOURCE
+            \ CMAKE_ARGS
+            \ CMAKE_CACHE_ARGS
+            \ CMAKE_CACHE_DEFAULT_ARGS
+            \ CMAKE_TLS_CAINFO
+            \ CMAKE_TLS_VERIFY
+            \ COMMENT
+            \ CONFIGURE_COMMAND
+            \ CVS
+            \ CVSROOT
+            \ CVS_MODULE
+            \ CVS_REPOSITORY
+            \ CVS_TAG
+            \ DEPENDEES
+            \ DEPENDERS
+            \ DEPENDS
+            \ DOWNLOADED_FILE
+            \ DOWNLOAD_COMMAND
+            \ DOWNLOAD_DIR
+            \ DOWNLOAD_NAME
+            \ DOWNLOAD_NO_EXTRACT
+            \ DOWNLOAD_NO_PROGRESS
+            \ EP_BASE
+            \ EP_INDEPENDENT_STEP_TARGETS
+            \ EP_PREFIX
+            \ EP_STEP_TARGETS
+            \ EP_UPDATE_DISCONNECTED
+            \ EXCLUDE_FROM_ALL
+            \ FORCE
+            \ GIT_CONFIG
+            \ GIT_PROGRESS
+            \ GIT_REMOTE_NAME
+            \ GIT_REPOSITORY
+            \ GIT_SHALLOW
+            \ GIT_SUBMODULES
+            \ GIT_TAG
+            \ HG_REPOSITORY
+            \ HG_TAG
+            \ HTTP_HEADER
+            \ HTTP_PASSWORD
+            \ HTTP_USERNAME
+            \ IGNORED
+            \ INDEPENDENT_STEP_TARGETS
+            \ INSTALL_COMMAND
+            \ INSTALL_DIR
+            \ JOB_POOLS
+            \ LIST_SEPARATOR
+            \ LOG_
+            \ LOG_BUILD
+            \ LOG_CONFIGURE
+            \ LOG_DOWNLOAD
+            \ LOG_INSTALL
+            \ LOG_TEST
+            \ LOG_UPDATE
+            \ MAKE_EXE
+            \ NAMES
+            \ NETRC
+            \ NETRC_FILE
+            \ NOTE
+            \ NO_DEPENDS
+            \ OPTIONAL
+            \ PATCH_COMMAND
+            \ PREFIX
+            \ PROPERTY
+            \ REQUIRED
+            \ SOURCE_DIR
+            \ SOURCE_SUBDIR
+            \ STAMP_DIR
+            \ STEP_TARGETS
+            \ STRING
+            \ SVN_PASSWORD
+            \ SVN_REPOSITORY
+            \ SVN_REVISION
+            \ SVN_TRUST_CERT
+            \ SVN_USERNAME
+            \ TEST_AFTER_INSTALL
+            \ TEST_BEFORE_INSTALL
+            \ TEST_COMMAND
+            \ TEST_EXCLUDE_FROM_MAIN
+            \ TIMEOUT
+            \ TLS_CAINFO
+            \ TLS_VERIFY
+            \ TMP_DIR
+            \ TRUE
+            \ UPDATE_COMMAND
+            \ UPDATE_DISCONNECTED
+            \ URL
+            \ URL_HASH
+            \ USES_TERMINAL_BUILD
+            \ USES_TERMINAL_CONFIGURE
+            \ USES_TERMINAL_DOWNLOAD
+            \ USES_TERMINAL_INSTALL
+            \ USES_TERMINAL_TEST
+            \ USES_TERMINAL_UPDATE
+            \ WORKING_DIRECTORY
 
 syn keyword cmakeKWadd_compile_definitions contained
-            \ COMPILE_DEFINITIONS VAR
+            \ COMPILE_DEFINITIONS
+            \ VAR
 
 syn keyword cmakeKWadd_compile_options contained
-            \ COMPILE_OPTIONS SHELL UNIX_COMMAND
+            \ COMPILE_OPTIONS
+            \ SHELL
+            \ UNIX_COMMAND
 
 syn keyword cmakeKWadd_custom_command contained
-            \ APPEND ARGS BYPRODUCTS CC COMMAND COMMAND_EXPAND_LISTS COMMENT CROSSCOMPILING_EMULATOR DEPENDS DEPFILE GENERATED IMPLICIT_DEPENDS INCLUDE_DIRECTORIES JOIN MAIN_DEPENDENCY NOT OUTPUT POST_BUILD PRE_BUILD PRE_LINK SYMBOLIC TARGET_FILE TARGET_PROPERTY USES_TERMINAL VERBATIM WORKING_DIRECTORY
+            \ APPEND
+            \ ARGS
+            \ BYPRODUCTS
+            \ CC
+            \ COMMAND
+            \ COMMAND_EXPAND_LISTS
+            \ COMMENT
+            \ CROSSCOMPILING_EMULATOR
+            \ DEPENDS
+            \ DEPFILE
+            \ GENERATED
+            \ IMPLICIT_DEPENDS
+            \ INCLUDE_DIRECTORIES
+            \ JOIN
+            \ MAIN_DEPENDENCY
+            \ NOT
+            \ OUTPUT
+            \ POST_BUILD
+            \ PRE_BUILD
+            \ PRE_LINK
+            \ SYMBOLIC
+            \ TARGET_FILE
+            \ TARGET_PROPERTY
+            \ USES_TERMINAL
+            \ VERBATIM
+            \ WORKING_DIRECTORY
 
 syn keyword cmakeKWadd_custom_target contained
-            \ ALL BYPRODUCTS CC COMMAND COMMAND_EXPAND_LISTS COMMENT CROSSCOMPILING_EMULATOR DEPENDS GENERATED INCLUDE_DIRECTORIES JOIN SOURCES TARGET_PROPERTY USES_TERMINAL VERBATIM WORKING_DIRECTORY
+            \ ALL
+            \ BYPRODUCTS
+            \ CC
+            \ COMMAND
+            \ COMMAND_EXPAND_LISTS
+            \ COMMENT
+            \ CROSSCOMPILING_EMULATOR
+            \ DEPENDS
+            \ GENERATED
+            \ INCLUDE_DIRECTORIES
+            \ JOIN
+            \ SOURCES
+            \ TARGET_PROPERTY
+            \ USES_TERMINAL
+            \ VERBATIM
+            \ WORKING_DIRECTORY
 
 syn keyword cmakeKWadd_definitions contained
             \ COMPILE_DEFINITIONS
 
 syn keyword cmakeKWadd_dependencies contained
-            \ DEPENDS OBJECT_DEPENDS
+            \ DEPENDS
+            \ OBJECT_DEPENDS
 
 syn keyword cmakeKWadd_executable contained
-            \ ALIAS CONFIG EXCLUDE_FROM_ALL GLOBAL HEADER_FILE_ONLY IMPORTED IMPORTED_ IMPORTED_LOCATION IMPORTED_LOCATION_ MACOSX_BUNDLE OUTPUT_NAME RUNTIME_OUTPUT_DIRECTORY TARGET
+            \ ALIAS
+            \ CONFIG
+            \ EXCLUDE_FROM_ALL
+            \ GLOBAL
+            \ HEADER_FILE_ONLY
+            \ IMPORTED
+            \ IMPORTED_
+            \ IMPORTED_LOCATION
+            \ IMPORTED_LOCATION_
+            \ MACOSX_BUNDLE
+            \ OUTPUT_NAME
+            \ RUNTIME_OUTPUT_DIRECTORY
+            \ TARGET
 
 syn keyword cmakeKWadd_library contained
-            \ ALIAS ARCHIVE_OUTPUT_DIRECTORY CLI CONFIG DLL EXCLUDE_FROM_ALL FRAMEWORK GLOBAL HEADER_FILE_ONLY IMPORTED IMPORTED_ IMPORTED_LOCATION IMPORTED_LOCATION_ IMPORTED_OBJECTS IMPORTED_OBJECTS_ INTERFACE_ LIBRARY_OUTPUT_DIRECTORY MODULE OBJECT ON OUTPUT_NAME POSITION_INDEPENDENT_CODE POST_BUILD PRE_BUILD PRE_LINK RUNTIME_OUTPUT_DIRECTORY SHARED STATIC TARGET_OBJECTS UNKNOWN
+            \ ALIAS
+            \ ARCHIVE_OUTPUT_DIRECTORY
+            \ CLI
+            \ CONFIG
+            \ DLL
+            \ EXCLUDE_FROM_ALL
+            \ FRAMEWORK
+            \ GLOBAL
+            \ HEADER_FILE_ONLY
+            \ IMPORTED
+            \ IMPORTED_
+            \ IMPORTED_LOCATION
+            \ IMPORTED_LOCATION_
+            \ IMPORTED_OBJECTS
+            \ IMPORTED_OBJECTS_
+            \ INTERFACE_
+            \ LIBRARY_OUTPUT_DIRECTORY
+            \ MODULE
+            \ OBJECT
+            \ ON
+            \ OUTPUT_NAME
+            \ POSITION_INDEPENDENT_CODE
+            \ POST_BUILD
+            \ PRE_BUILD
+            \ PRE_LINK
+            \ RUNTIME_OUTPUT_DIRECTORY
+            \ SHARED
+            \ STATIC
+            \ TARGET_OBJECTS
+            \ UNKNOWN
 
 syn keyword cmakeKWadd_link_options contained
-            \ CMAKE_ GCC GNU LANG LINKER LINK_OPTIONS SHELL UNIX_COMMAND _LINKER_WRAPPER_FLAG _LINKER_WRAPPER_FLAG_SEP
+            \ CMAKE_
+            \ GCC
+            \ GNU
+            \ LANG
+            \ LINKER
+            \ LINK_OPTIONS
+            \ SHELL
+            \ UNIX_COMMAND
+            \ _LINKER_WRAPPER_FLAG
+            \ _LINKER_WRAPPER_FLAG_SEP
 
 syn keyword cmakeKWadd_subdirectory contained
             \ EXCLUDE_FROM_ALL
 
 syn keyword cmakeKWadd_test contained
-            \ BUILD_TESTING COMMAND CONFIGURATIONS FAIL_REGULAR_EXPRESSION NAME PASS_REGULAR_EXPRESSION TARGET_FILE WILL_FAIL WORKING_DIRECTORY
+            \ BUILD_TESTING
+            \ COMMAND
+            \ CONFIGURATIONS
+            \ FAIL_REGULAR_EXPRESSION
+            \ NAME
+            \ PASS_REGULAR_EXPRESSION
+            \ TARGET_FILE
+            \ WILL_FAIL
+            \ WORKING_DIRECTORY
 
 syn keyword cmakeKWbuild_command contained
-            \ CONFIGURATION TARGET
+            \ CONFIGURATION
+            \ TARGET
 
 syn keyword cmakeKWbuild_name contained
             \ CMAKE_CXX_COMPILER
 
 syn keyword cmakeKWcmake_host_system_information contained
-            \ AVAILABLE_PHYSICAL_MEMORY AVAILABLE_VIRTUAL_MEMORY FQDN HAS_FPU HAS_MMX HAS_MMX_PLUS HAS_SERIAL_NUMBER HAS_SSE HAS_SSE_FP HAS_SSE_MMX HOSTNAME ID NUMBER_OF_LOGICAL_CORES NUMBER_OF_PHYSICAL_CORES OS_NAME OS_PLATFORM OS_RELEASE OS_VERSION PROCESSOR_DESCRIPTION PROCESSOR_NAME PROCESSOR_SERIAL_NUMBER QUERY RESULT TOTAL_PHYSICAL_MEMORY TOTAL_VIRTUAL_MEMORY
+            \ AVAILABLE_PHYSICAL_MEMORY
+            \ AVAILABLE_VIRTUAL_MEMORY
+            \ FQDN
+            \ HAS_FPU
+            \ HAS_MMX
+            \ HAS_MMX_PLUS
+            \ HAS_SERIAL_NUMBER
+            \ HAS_SSE
+            \ HAS_SSE_FP
+            \ HAS_SSE_MMX
+            \ HOSTNAME
+            \ ID
+            \ NUMBER_OF_LOGICAL_CORES
+            \ NUMBER_OF_PHYSICAL_CORES
+            \ OS_NAME
+            \ OS_PLATFORM
+            \ OS_RELEASE
+            \ OS_VERSION
+            \ PROCESSOR_DESCRIPTION
+            \ PROCESSOR_NAME
+            \ PROCESSOR_SERIAL_NUMBER
+            \ QUERY
+            \ RESULT
+            \ TOTAL_PHYSICAL_MEMORY
+            \ TOTAL_VIRTUAL_MEMORY
 
 syn keyword cmakeKWcmake_minimum_required contained
-            \ FATAL_ERROR VERSION
+            \ FATAL_ERROR
+            \ VERSION
 
 syn keyword cmakeKWcmake_parse_arguments contained
-            \ ARGN CONFIGURATIONS DESTINATION FALSE FAST FILES MY_INSTALL MY_INSTALL_CONFIGURATIONS MY_INSTALL_DESTINATION MY_INSTALL_FAST MY_INSTALL_OPTIONAL MY_INSTALL_RENAME MY_INSTALL_TARGETS MY_INSTALL_UNPARSED_ARGUMENTS OPTIONAL PARSE_ARGV RENAME TARGETS TRUE UNDEFINED _UNPARSED_ARGUMENTS
+            \ ARGN
+            \ CONFIGURATIONS
+            \ DESTINATION
+            \ FALSE
+            \ FAST
+            \ FILES
+            \ MY_INSTALL
+            \ MY_INSTALL_CONFIGURATIONS
+            \ MY_INSTALL_DESTINATION
+            \ MY_INSTALL_FAST
+            \ MY_INSTALL_OPTIONAL
+            \ MY_INSTALL_RENAME
+            \ MY_INSTALL_TARGETS
+            \ MY_INSTALL_UNPARSED_ARGUMENTS
+            \ OPTIONAL
+            \ PARSE_ARGV
+            \ RENAME
+            \ TARGETS
+            \ TRUE
+            \ UNDEFINED
+            \ _UNPARSED_ARGUMENTS
 
 syn keyword cmakeKWcmake_policy contained
-            \ CMAKE_POLICY_DEFAULT_CMP CMP GET NNNN NO_POLICY_SCOPE OLD POP PUSH SET VERSION
+            \ CMAKE_POLICY_DEFAULT_CMP
+            \ CMP
+            \ GET
+            \ NNNN
+            \ NO_POLICY_SCOPE
+            \ OLD
+            \ POP
+            \ PUSH
+            \ SET
+            \ VERSION
 
 syn keyword cmakeKWconfigure_file contained
-            \ COPYONLY CRLF DOS ESCAPE_QUOTES FOO_ENABLE FOO_STRING LF NEWLINE_STYLE VAR
+            \ COPYONLY
+            \ CRLF
+            \ DOS
+            \ ESCAPE_QUOTES
+            \ FOO_ENABLE
+            \ FOO_STRING
+            \ LF
+            \ NEWLINE_STYLE
+            \ VAR
 
 syn keyword cmakeKWcreate_test_sourcelist contained
-            \ CMAKE_TESTDRIVER_AFTER_TESTMAIN CMAKE_TESTDRIVER_BEFORE_TESTMAIN EXTRA_INCLUDE FUNCTION
+            \ CMAKE_TESTDRIVER_AFTER_TESTMAIN
+            \ CMAKE_TESTDRIVER_BEFORE_TESTMAIN
+            \ EXTRA_INCLUDE
+            \ FUNCTION
 
 syn keyword cmakeKWctest_build contained
-            \ ALL_BUILD APPEND BUILD CAPTURE_CMAKE_ERROR CONFIGURATION CTEST_BUILD_CONFIGURATION CTEST_BUILD_FLAGS CTEST_BUILD_TARGET CTEST_PROJECT_NAME FLAGS NUMBER_ERRORS NUMBER_WARNINGS QUIET RETURN_VALUE TARGET
+            \ ALL_BUILD
+            \ APPEND
+            \ BUILD
+            \ CAPTURE_CMAKE_ERROR
+            \ CONFIGURATION
+            \ CTEST_BUILD_CONFIGURATION
+            \ CTEST_BUILD_FLAGS
+            \ CTEST_BUILD_TARGET
+            \ CTEST_PROJECT_NAME
+            \ FLAGS
+            \ NUMBER_ERRORS
+            \ NUMBER_WARNINGS
+            \ QUIET
+            \ RETURN_VALUE
+            \ TARGET
 
 syn keyword cmakeKWctest_configure contained
-            \ APPEND BUILD CAPTURE_CMAKE_ERROR OPTIONS QUIET RETURN_VALUE SOURCE
+            \ APPEND
+            \ BUILD
+            \ CAPTURE_CMAKE_ERROR
+            \ OPTIONS
+            \ QUIET
+            \ RETURN_VALUE
+            \ SOURCE
 
 syn keyword cmakeKWctest_coverage contained
-            \ APPEND BUILD CAPTURE_CMAKE_ERROR LABELS QUIET RETURN_VALUE
+            \ APPEND
+            \ BUILD
+            \ CAPTURE_CMAKE_ERROR
+            \ LABELS
+            \ QUIET
+            \ RETURN_VALUE
 
 syn keyword cmakeKWctest_memcheck contained
-            \ APPEND BUILD CAPTURE_CMAKE_ERROR DEFECT_COUNT EXCLUDE EXCLUDE_FIXTURE EXCLUDE_FIXTURE_CLEANUP EXCLUDE_FIXTURE_SETUP EXCLUDE_LABEL INCLUDE INCLUDE_LABEL OFF ON PARALLEL_LEVEL QUIET RETURN_VALUE SCHEDULE_RANDOM START STOP_TIME STRIDE TEST_LOAD
+            \ APPEND
+            \ BUILD
+            \ DEFECT_COUNT
+            \ EXCLUDE
+            \ EXCLUDE_FIXTURE
+            \ EXCLUDE_FIXTURE_CLEANUP
+            \ EXCLUDE_FIXTURE_SETUP
+            \ EXCLUDE_LABEL
+            \ INCLUDE
+            \ INCLUDE_LABEL
+            \ OFF
+            \ ON
+            \ PARALLEL_LEVEL
+            \ QUIET
+            \ RETURN_VALUE
+            \ SCHEDULE_RANDOM
+            \ START
+            \ STOP_TIME
+            \ STRIDE
+            \ TEST_LOAD
 
 syn keyword cmakeKWctest_run_script contained
-            \ NEW_PROCESS RETURN_VALUE
+            \ NEW_PROCESS
+            \ RETURN_VALUE
 
 syn keyword cmakeKWctest_start contained
-            \ APPEND QUIET TAG TRACK
+            \ APPEND
+            \ QUIET
+            \ TAG
+            \ TRACK
 
 syn keyword cmakeKWctest_submit contained
-            \ API CAPTURE_CMAKE_ERROR CDASH_UPLOAD CDASH_UPLOAD_TYPE CTEST_EXTRA_SUBMIT_FILES CTEST_NOTES_FILES FILES HTTPHEADER PARTS QUIET RETRY_COUNT RETRY_DELAY RETURN_VALUE
+            \ API
+            \ CAPTURE_CMAKE_ERROR
+            \ CDASH_UPLOAD
+            \ CDASH_UPLOAD_TYPE
+            \ CTEST_EXTRA_SUBMIT_FILES
+            \ CTEST_NOTES_FILES
+            \ FILES
+            \ HTTPHEADER
+            \ PARTS
+            \ QUIET
+            \ RETRY_COUNT
+            \ RETRY_DELAY
+            \ RETURN_VALUE
 
 syn keyword cmakeKWctest_test contained
-            \ APPEND BUILD CAPTURE_CMAKE_ERROR CPU EXCLUDE EXCLUDE_FIXTURE EXCLUDE_FIXTURE_CLEANUP EXCLUDE_FIXTURE_SETUP EXCLUDE_LABEL INCLUDE INCLUDE_LABEL OFF ON PARALLEL_LEVEL QUIET RETURN_VALUE SCHEDULE_RANDOM START STOP_TIME STRIDE TEST_LOAD
+            \ APPEND
+            \ BUILD
+            \ CAPTURE_CMAKE_ERROR
+            \ CPU
+            \ EXCLUDE
+            \ EXCLUDE_FIXTURE
+            \ EXCLUDE_FIXTURE_CLEANUP
+            \ EXCLUDE_FIXTURE_SETUP
+            \ EXCLUDE_LABEL
+            \ INCLUDE
+            \ INCLUDE_LABEL
+            \ OFF
+            \ ON
+            \ PARALLEL_LEVEL
+            \ QUIET
+            \ RETURN_VALUE
+            \ SCHEDULE_RANDOM
+            \ START
+            \ STOP_TIME
+            \ STRIDE
+            \ TEST_LOAD
 
 syn keyword cmakeKWctest_update contained
-            \ CAPTURE_CMAKE_ERROR QUIET RETURN_VALUE SOURCE
+            \ CAPTURE_CMAKE_ERROR
+            \ QUIET
+            \ RETURN_VALUE
+            \ SOURCE
 
 syn keyword cmakeKWctest_upload contained
-            \ CAPTURE_CMAKE_ERROR FILES QUIET
+            \ CAPTURE_CMAKE_ERROR
+            \ FILES
+            \ QUIET
 
 syn keyword cmakeKWdefine_property contained
-            \ APPEND APPEND_STRING BRIEF_DOCS CACHED_VARIABLE DIRECTORY FULL_DOCS GLOBAL INHERITED PROPERTY SOURCE TARGET TEST VARIABLE
+            \ APPEND
+            \ APPEND_STRING
+            \ BRIEF_DOCS
+            \ CACHED_VARIABLE
+            \ DIRECTORY
+            \ FULL_DOCS
+            \ GLOBAL
+            \ INHERITED
+            \ PROPERTY
+            \ SOURCE
+            \ TARGET
+            \ TEST
+            \ VARIABLE
 
 syn keyword cmakeKWenable_language contained
-            \ ASM CUDA OPTIONAL
+            \ ASM
+            \ CUDA
+            \ OPTIONAL
 
 syn keyword cmakeKWexec_program contained
-            \ ARGS OUTPUT_VARIABLE RETURN_VALUE
+            \ ARGS
+            \ OUTPUT_VARIABLE
+            \ RETURN_VALUE
 
 syn keyword cmakeKWexecute_process contained
-            \ ANSI AUTO COMMAND ENCODING ERROR_FILE ERROR_QUIET ERROR_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE INPUT_FILE NONE OEM OUTPUT_FILE OUTPUT_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE RESULTS_VARIABLE RESULT_VARIABLE RFC TIMEOUT UTF VERBATIM WORKING_DIRECTORY
+            \ ANSI
+            \ AUTO
+            \ COMMAND
+            \ ENCODING
+            \ ERROR_FILE
+            \ ERROR_QUIET
+            \ ERROR_STRIP_TRAILING_WHITESPACE
+            \ ERROR_VARIABLE
+            \ INPUT_FILE
+            \ NONE
+            \ OEM
+            \ OUTPUT_FILE
+            \ OUTPUT_QUIET
+            \ OUTPUT_STRIP_TRAILING_WHITESPACE
+            \ OUTPUT_VARIABLE
+            \ RESULTS_VARIABLE
+            \ RESULT_VARIABLE
+            \ RFC
+            \ TIMEOUT
+            \ UTF
+            \ VERBATIM
+            \ WORKING_DIRECTORY
 
 syn keyword cmakeKWexport contained
-            \ ANDROID_MK APPEND CONFIG EXPORT EXPORT_LINK_INTERFACE_LIBRARIES FILE IMPORTED IMPORTED_ NAMESPACE NDK OLD PACKAGE TARGETS
+            \ ANDROID_MK
+            \ APPEND
+            \ CONFIG
+            \ EXPORT
+            \ EXPORT_LINK_INTERFACE_LIBRARIES
+            \ FILE
+            \ IMPORTED
+            \ IMPORTED_
+            \ NAMESPACE
+            \ NDK
+            \ OLD
+            \ PACKAGE
+            \ TARGETS
 
 syn keyword cmakeKWexport_library_dependencies contained
-            \ APPEND EXPORT INCLUDE LINK_INTERFACE_LIBRARIES SET
+            \ APPEND
+            \ EXPORT
+            \ INCLUDE
+            \ LINK_INTERFACE_LIBRARIES
+            \ SET
 
 syn keyword cmakeKWfile contained
-            \ ALGO APPEND ASCII CMAKE_TLS_CAINFO CMAKE_TLS_VERIFY CONDITION CONFIG CONFIGURE_DEPENDS CONTENT COPY DESTINATION DIRECTORY_PERMISSIONS DOWNLOAD ENCODING EXCLUDE EXPECTED_HASH FILES_MATCHING FILE_PERMISSIONS FOLLOW_SYMLINKS FUNCTION GENERATE GLOB GLOB_RECURSE GUARD HASH HEX HTTPHEADER IGNORED INACTIVITY_TIMEOUT INSTALL LENGTH_MAXIMUM LENGTH_MINIMUM LF LIMIT LIMIT_COUNT LIMIT_INPUT LIMIT_OUTPUT LIST_DIRECTORIES LOCK LOG MAKE_DIRECTORY NETRC NETRC_FILE NEWLINE_CONSUME NO_HEX_CONVERSION NO_SOURCE_PERMISSIONS OFFSET OLD OPTIONAL OUTPUT PATTERN PROCESS READ REGEX RELATIVE_PATH RELEASE REMOVE REMOVE_RECURSE RENAME REQUIRED RESULT_VARIABLE SHOW_PROGRESS SSL STATUS STRINGS TIMESTAMP TLS_CAINFO TLS_VERIFY TOUCH TOUCH_NOCREATE TO_CMAKE_PATH TO_NATIVE_PATH UPLOAD URL USERPWD USE_SOURCE_PERMISSIONS UTC UTF WRITE
+            \ ALGO
+            \ APPEND
+            \ ASCII
+            \ CMAKE_TLS_CAINFO
+            \ CMAKE_TLS_VERIFY
+            \ CONDITION
+            \ CONFIG
+            \ CONFIGURE_DEPENDS
+            \ CONTENT
+            \ COPY
+            \ DESTINATION
+            \ DIRECTORY_PERMISSIONS
+            \ DOWNLOAD
+            \ ENCODING
+            \ EXCLUDE
+            \ EXPECTED_HASH
+            \ FILES_MATCHING
+            \ FILE_PERMISSIONS
+            \ FOLLOW_SYMLINKS
+            \ FUNCTION
+            \ GENERATE
+            \ GLOB
+            \ GLOB_RECURSE
+            \ GUARD
+            \ HASH
+            \ HEX
+            \ HTTPHEADER
+            \ IGNORED
+            \ INACTIVITY_TIMEOUT
+            \ INSTALL
+            \ LENGTH_MAXIMUM
+            \ LENGTH_MINIMUM
+            \ LF
+            \ LIMIT
+            \ LIMIT_COUNT
+            \ LIMIT_INPUT
+            \ LIMIT_OUTPUT
+            \ LIST_DIRECTORIES
+            \ LOCK
+            \ LOG
+            \ MAKE_DIRECTORY
+            \ NETRC
+            \ NETRC_FILE
+            \ NEWLINE_CONSUME
+            \ NO_HEX_CONVERSION
+            \ NO_SOURCE_PERMISSIONS
+            \ OFFSET
+            \ OLD
+            \ OPTIONAL
+            \ OUTPUT
+            \ PATTERN
+            \ PROCESS
+            \ READ
+            \ REGEX
+            \ RELATIVE_PATH
+            \ RELEASE
+            \ REMOVE
+            \ REMOVE_RECURSE
+            \ RENAME
+            \ REQUIRED
+            \ RESULT_VARIABLE
+            \ SHOW_PROGRESS
+            \ SSL
+            \ STATUS
+            \ STRINGS
+            \ TIMESTAMP
+            \ TLS_CAINFO
+            \ TLS_VERIFY
+            \ TOUCH
+            \ TOUCH_NOCREATE
+            \ TO_CMAKE_PATH
+            \ TO_NATIVE_PATH
+            \ UPLOAD
+            \ URL
+            \ USERPWD
+            \ USE_SOURCE_PERMISSIONS
+            \ UTC
+            \ UTF
+            \ WRITE
 
 syn keyword cmakeKWfind_file contained
-            \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS INCLUDE NAMES NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_PACKAGE_ROOT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH PATHS PATH_SUFFIXES VAR
+            \ CMAKE_FIND_ROOT_PATH_BOTH
+            \ DOC
+            \ DVAR
+            \ HINTS
+            \ INCLUDE
+            \ NAMES
+            \ NO_CMAKE_ENVIRONMENT_PATH
+            \ NO_CMAKE_FIND_ROOT_PATH
+            \ NO_CMAKE_PATH
+            \ NO_CMAKE_SYSTEM_PATH
+            \ NO_DEFAULT_PATH
+            \ NO_PACKAGE_ROOT_PATH
+            \ NO_SYSTEM_ENVIRONMENT_PATH
+            \ ONLY_CMAKE_FIND_ROOT_PATH
+            \ PATHS
+            \ PATH_SUFFIXES
+            \ VAR
 
 syn keyword cmakeKWfind_library contained
-            \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS LIB NAMES NAMES_PER_DIR NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_PACKAGE_ROOT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH PATHS PATH_SUFFIXES VAR
+            \ CMAKE_FIND_ROOT_PATH_BOTH
+            \ DOC
+            \ DVAR
+            \ HINTS
+            \ LIB
+            \ NAMES
+            \ NAMES_PER_DIR
+            \ NO_CMAKE_ENVIRONMENT_PATH
+            \ NO_CMAKE_FIND_ROOT_PATH
+            \ NO_CMAKE_PATH
+            \ NO_CMAKE_SYSTEM_PATH
+            \ NO_DEFAULT_PATH
+            \ NO_PACKAGE_ROOT_PATH
+            \ NO_SYSTEM_ENVIRONMENT_PATH
+            \ ONLY_CMAKE_FIND_ROOT_PATH
+            \ PATHS
+            \ PATH_SUFFIXES
+            \ VAR
 
 syn keyword cmakeKWfind_package contained
-            \ ABI CMAKE_DISABLE_FIND_PACKAGE_ CMAKE_FIND_ROOT_PATH_BOTH COMPONENTS CONFIG CONFIGS DEC DVAR EXACT HINTS MODULE NAMES NATURAL NO_CMAKE_BUILDS_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PACKAGE_REGISTRY NO_CMAKE_PATH NO_CMAKE_SYSTEM_PACKAGE_REGISTRY NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_MODULE NO_PACKAGE_ROOT_PATH NO_POLICY_SCOPE NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OPTIONAL_COMPONENTS PACKAGE_FIND_NAME PACKAGE_FIND_VERSION PACKAGE_FIND_VERSION_COUNT PACKAGE_FIND_VERSION_MAJOR PACKAGE_FIND_VERSION_MINOR PACKAGE_FIND_VERSION_PATCH PACKAGE_FIND_VERSION_TWEAK PACKAGE_VERSION PACKAGE_VERSION_COMPATIBLE PACKAGE_VERSION_EXACT PACKAGE_VERSION_UNSUITABLE PATHS PATH_SUFFIXES QUIET REQUIRED SET TRUE _CONFIG _CONSIDERED_CONFIGS _CONSIDERED_VERSIONS _DIR _FIND_COMPONENTS _FIND_QUIETLY _FIND_REQUIRED _FIND_REQUIRED_ _FIND_VERSION_EXACT _FOUND
+            \ ABI
+            \ CMAKE_DISABLE_FIND_PACKAGE_
+            \ CMAKE_FIND_ROOT_PATH_BOTH
+            \ COMPONENTS
+            \ CONFIG
+            \ CONFIGS
+            \ DEC
+            \ DVAR
+            \ EXACT
+            \ HINTS
+            \ MODULE
+            \ NAMES
+            \ NATURAL
+            \ NO_CMAKE_BUILDS_PATH
+            \ NO_CMAKE_ENVIRONMENT_PATH
+            \ NO_CMAKE_FIND_ROOT_PATH
+            \ NO_CMAKE_PACKAGE_REGISTRY
+            \ NO_CMAKE_PATH
+            \ NO_CMAKE_SYSTEM_PACKAGE_REGISTRY
+            \ NO_CMAKE_SYSTEM_PATH
+            \ NO_DEFAULT_PATH
+            \ NO_MODULE
+            \ NO_PACKAGE_ROOT_PATH
+            \ NO_POLICY_SCOPE
+            \ NO_SYSTEM_ENVIRONMENT_PATH
+            \ ONLY_CMAKE_FIND_ROOT_PATH
+            \ OPTIONAL_COMPONENTS
+            \ PACKAGE_FIND_NAME
+            \ PACKAGE_FIND_VERSION
+            \ PACKAGE_FIND_VERSION_COUNT
+            \ PACKAGE_FIND_VERSION_MAJOR
+            \ PACKAGE_FIND_VERSION_MINOR
+            \ PACKAGE_FIND_VERSION_PATCH
+            \ PACKAGE_FIND_VERSION_TWEAK
+            \ PACKAGE_VERSION
+            \ PACKAGE_VERSION_COMPATIBLE
+            \ PACKAGE_VERSION_EXACT
+            \ PACKAGE_VERSION_UNSUITABLE
+            \ PATHS
+            \ PATH_SUFFIXES
+            \ QUIET
+            \ REQUIRED
+            \ SET
+            \ TRUE
+            \ _CONFIG
+            \ _CONSIDERED_CONFIGS
+            \ _CONSIDERED_VERSIONS
+            \ _DIR
+            \ _FIND_COMPONENTS
+            \ _FIND_QUIETLY
+            \ _FIND_REQUIRED
+            \ _FIND_REQUIRED_
+            \ _FIND_VERSION_EXACT
+            \ _FOUND
 
 syn keyword cmakeKWfind_path contained
-            \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS INCLUDE NAMES NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_PACKAGE_ROOT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH PATHS PATH_SUFFIXES VAR
+            \ CMAKE_FIND_ROOT_PATH_BOTH
+            \ DOC
+            \ DVAR
+            \ HINTS
+            \ INCLUDE
+            \ NAMES
+            \ NO_CMAKE_ENVIRONMENT_PATH
+            \ NO_CMAKE_FIND_ROOT_PATH
+            \ NO_CMAKE_PATH
+            \ NO_CMAKE_SYSTEM_PATH
+            \ NO_DEFAULT_PATH
+            \ NO_PACKAGE_ROOT_PATH
+            \ NO_SYSTEM_ENVIRONMENT_PATH
+            \ ONLY_CMAKE_FIND_ROOT_PATH
+            \ PATHS
+            \ PATH_SUFFIXES
+            \ VAR
 
 syn keyword cmakeKWfind_program contained
-            \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS NAMES NAMES_PER_DIR NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_PACKAGE_ROOT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH PATHS PATH_SUFFIXES VAR
+            \ CMAKE_FIND_ROOT_PATH_BOTH
+            \ DOC
+            \ DVAR
+            \ HINTS
+            \ NAMES
+            \ NAMES_PER_DIR
+            \ NO_CMAKE_ENVIRONMENT_PATH
+            \ NO_CMAKE_FIND_ROOT_PATH
+            \ NO_CMAKE_PATH
+            \ NO_CMAKE_SYSTEM_PATH
+            \ NO_DEFAULT_PATH
+            \ NO_PACKAGE_ROOT_PATH
+            \ NO_SYSTEM_ENVIRONMENT_PATH
+            \ ONLY_CMAKE_FIND_ROOT_PATH
+            \ PATHS
+            \ PATH_SUFFIXES
+            \ VAR
 
 syn keyword cmakeKWfltk_wrap_ui contained
             \ FLTK
 
 syn keyword cmakeKWforeach contained
-            \ ARGS IN ITEMS LISTS RANGE
+            \ ARGS
+            \ IN
+            \ ITEMS
+            \ LISTS
+            \ RANGE
 
 syn keyword cmakeKWfunction contained
-            \ ARGC ARGN ARGS ARGV PARENT_SCOPE
+            \ ARGC
+            \ ARGN
+            \ ARGS
+            \ ARGV
+            \ PARENT_SCOPE
 
 syn keyword cmakeKWget_cmake_property contained
-            \ COMPONENTS GLOBAL MACROS VAR VARIABLES
+            \ COMPONENTS
+            \ GLOBAL
+            \ MACROS
+            \ VAR
+            \ VARIABLES
 
 syn keyword cmakeKWget_directory_property contained
-            \ DEFINITION DIRECTORY INHERITED
+            \ DEFINITION
+            \ DIRECTORY
+            \ INHERITED
 
 syn keyword cmakeKWget_filename_component contained
-            \ ABSOLUTE ARG_VAR BASE_DIR COMP DIRECTORY EXT NAME NAME_WE PATH PROGRAM PROGRAM_ARGS REALPATH VAR
+            \ ABSOLUTE
+            \ ARG_VAR
+            \ BASE_DIR
+            \ COMP
+            \ DIRECTORY
+            \ EXT
+            \ NAME
+            \ NAME_WE
+            \ PATH
+            \ PROGRAM
+            \ PROGRAM_ARGS
+            \ REALPATH
+            \ VAR
 
 syn keyword cmakeKWget_property contained
-            \ BRIEF_DOCS DEFINED DIRECTORY FULL_DOCS GLOBAL INSTALL PROPERTY SET SOURCE TARGET TEST VARIABLE
+            \ BRIEF_DOCS
+            \ DEFINED
+            \ DIRECTORY
+            \ FULL_DOCS
+            \ GLOBAL
+            \ INSTALL
+            \ PROPERTY
+            \ SET
+            \ SOURCE
+            \ TARGET
+            \ TEST
+            \ VARIABLE
 
 syn keyword cmakeKWget_source_file_property contained
-            \ INHERITED LOCATION VAR
+            \ INHERITED
+            \ LOCATION
+            \ VAR
 
 syn keyword cmakeKWget_target_property contained
-            \ INHERITED VAR
+            \ INHERITED
+            \ VAR
 
 syn keyword cmakeKWget_test_property contained
-            \ INHERITED VAR
+            \ INHERITED
+            \ VAR
 
 syn keyword cmakeKWif contained
-            \ ARGS CMAKE_MATCH_ CMP COMMAND DEFINED EQUAL EXISTS FALSE GREATER GREATER_EQUAL IGNORE IN_LIST IS_ABSOLUTE IS_DIRECTORY IS_NEWER_THAN IS_SYMLINK LESS LESS_EQUAL MATCHES NNNN NOT OFF OR POLICY STREQUAL STRGREATER STRGREATER_EQUAL STRLESS STRLESS_EQUAL TARGET TEST THEN TRUE VERSION_EQUAL VERSION_GREATER VERSION_GREATER_EQUAL VERSION_LESS VERSION_LESS_EQUAL YES
+            \ ARGS
+            \ CMAKE_MATCH_
+            \ CMP
+            \ COMMAND
+            \ DEFINED
+            \ EQUAL
+            \ EXISTS
+            \ FALSE
+            \ GREATER
+            \ GREATER_EQUAL
+            \ IGNORE
+            \ IN_LIST
+            \ IS_ABSOLUTE
+            \ IS_DIRECTORY
+            \ IS_NEWER_THAN
+            \ IS_SYMLINK
+            \ LESS
+            \ LESS_EQUAL
+            \ MATCHES
+            \ NNNN
+            \ NOT
+            \ OFF
+            \ OR
+            \ POLICY
+            \ STREQUAL
+            \ STRGREATER
+            \ STRGREATER_EQUAL
+            \ STRLESS
+            \ STRLESS_EQUAL
+            \ TARGET
+            \ TEST
+            \ THEN
+            \ TRUE
+            \ VERSION_EQUAL
+            \ VERSION_GREATER
+            \ VERSION_GREATER_EQUAL
+            \ VERSION_LESS
+            \ VERSION_LESS_EQUAL
+            \ YES
 
 syn keyword cmakeKWinclude contained
-            \ NO_POLICY_SCOPE OPTIONAL RESULT_VARIABLE
+            \ NO_POLICY_SCOPE
+            \ OPTIONAL
+            \ RESULT_VARIABLE
 
 syn keyword cmakeKWinclude_directories contained
-            \ AFTER BEFORE INCLUDE_DIRECTORIES ON SYSTEM
+            \ AFTER
+            \ BEFORE
+            \ INCLUDE_DIRECTORIES
+            \ ON
+            \ SYSTEM
 
 syn keyword cmakeKWinclude_external_msproject contained
-            \ GUID MAP_IMPORTED_CONFIG_ PLATFORM TYPE WIX
+            \ GUID
+            \ MAP_IMPORTED_CONFIG_
+            \ PLATFORM
+            \ TYPE
+            \ WIX
 
 syn keyword cmakeKWinclude_guard contained
-            \ DIRECTORY GLOBAL TRUE __CURRENT_FILE_VAR__
+            \ DIRECTORY
+            \ GLOBAL
+            \ TRUE
+            \ __CURRENT_FILE_VAR__
 
 syn keyword cmakeKWinstall contained
-            \ AFTER APT ARCHIVE BEFORE BUILD_TYPE BUNDLE CODE COMPONENT CONFIGURATIONS CVS DBUILD_TYPE DCOMPONENT DESTDIR DESTINATION DIRECTORY DIRECTORY_PERMISSIONS DLL EXCLUDE_FROM_ALL EXPORT EXPORT_ANDROID_MK EXPORT_LINK_INTERFACE_LIBRARIES FILES FILES_MATCHING FILE_PERMISSIONS FRAMEWORK GROUP_EXECUTE GROUP_READ GROUP_WRITE IMPORTED_ INCLUDES INSTALL_PREFIX INTERFACE_INCLUDE_DIRECTORIES LIBRARY MACOSX_BUNDLE MESSAGE_NEVER NAMELINK_COMPONENT NAMELINK_ONLY NAMELINK_SKIP NAMESPACE NDK OBJECTS OPTIONAL OWNER_EXECUTE OWNER_READ OWNER_WRITE PATTERN PERMISSIONS POST_INSTALL_SCRIPT PRE_INSTALL_SCRIPT PRIVATE_HEADER PROGRAMS PUBLIC_HEADER REGEX RENAME RESOURCE RPM RUNTIME SCRIPT SETGID SETUID SOVERSION TARGETS TRUE USE_SOURCE_PERMISSIONS VERSION WORLD_EXECUTE WORLD_READ WORLD_WRITE
+            \ AFTER
+            \ APT
+            \ ARCHIVE
+            \ BEFORE
+            \ BUILD_TYPE
+            \ BUNDLE
+            \ CODE
+            \ COMPONENT
+            \ CONFIGURATIONS
+            \ CVS
+            \ DBUILD_TYPE
+            \ DCOMPONENT
+            \ DESTDIR
+            \ DESTINATION
+            \ DIRECTORY
+            \ DIRECTORY_PERMISSIONS
+            \ DLL
+            \ EXCLUDE_FROM_ALL
+            \ EXPORT
+            \ EXPORT_ANDROID_MK
+            \ EXPORT_LINK_INTERFACE_LIBRARIES
+            \ FILES
+            \ FILES_MATCHING
+            \ FILE_PERMISSIONS
+            \ FRAMEWORK
+            \ GROUP_EXECUTE
+            \ GROUP_READ
+            \ GROUP_WRITE
+            \ IMPORTED_
+            \ INCLUDES
+            \ INSTALL_PREFIX
+            \ INTERFACE_INCLUDE_DIRECTORIES
+            \ LIBRARY
+            \ MACOSX_BUNDLE
+            \ MESSAGE_NEVER
+            \ NAMELINK_COMPONENT
+            \ NAMELINK_ONLY
+            \ NAMELINK_SKIP
+            \ NAMESPACE
+            \ NDK
+            \ OBJECTS
+            \ OPTIONAL
+            \ OWNER_EXECUTE
+            \ OWNER_READ
+            \ OWNER_WRITE
+            \ PATTERN
+            \ PERMISSIONS
+            \ POST_INSTALL_SCRIPT
+            \ PRE_INSTALL_SCRIPT
+            \ PRIVATE_HEADER
+            \ PROGRAMS
+            \ PUBLIC_HEADER
+            \ REGEX
+            \ RENAME
+            \ RESOURCE
+            \ RPM
+            \ RUNTIME
+            \ SCRIPT
+            \ SETGID
+            \ SETUID
+            \ SOVERSION
+            \ TARGETS
+            \ TRUE
+            \ USE_SOURCE_PERMISSIONS
+            \ VERSION
+            \ WORLD_EXECUTE
+            \ WORLD_READ
+            \ WORLD_WRITE
 
 syn keyword cmakeKWinstall_files contained
-            \ FILES GLOB
+            \ FILES
+            \ GLOB
 
 syn keyword cmakeKWinstall_programs contained
-            \ FILES GLOB PROGRAMS TARGETS
+            \ FILES
+            \ GLOB
+            \ PROGRAMS
+            \ TARGETS
 
 syn keyword cmakeKWinstall_targets contained
-            \ DLL RUNTIME_DIRECTORY TARGETS
+            \ DLL
+            \ RUNTIME_DIRECTORY
+            \ TARGETS
 
 syn keyword cmakeKWlink_directories contained
-            \ AFTER BEFORE LINK_DIRECTORIES ON ORIGIN RPATH
+            \ AFTER
+            \ BEFORE
+            \ LINK_DIRECTORIES
+            \ ON
+            \ ORIGIN
+            \ RPATH
 
 syn keyword cmakeKWlist contained
-            \ ACTION APPEND ASCENDING CASE COMPARE DESCENDING EXCLUDE FILE_BASENAME FILTER FIND GENEX_STRIP GET INCLUDE INSENSITIVE INSERT INTERNAL JOIN LENGTH ORDER OUTPUT_VARIABLE PARENT_SCOPE PREPEND REGEX REMOVE_AT REMOVE_DUPLICATES REMOVE_ITEM REPLACE REVERSE SELECTOR SENSITIVE SORT STRING STRIP SUBLIST TOLOWER TOUPPER TRANSFORM
+            \ ACTION
+            \ APPEND
+            \ ASCENDING
+            \ CASE
+            \ COMPARE
+            \ DESCENDING
+            \ EXCLUDE
+            \ FILE_BASENAME
+            \ FILTER
+            \ FIND
+            \ GENEX_STRIP
+            \ GET
+            \ INCLUDE
+            \ INSENSITIVE
+            \ INSERT
+            \ INTERNAL
+            \ JOIN
+            \ LENGTH
+            \ ORDER
+            \ OUTPUT_VARIABLE
+            \ PARENT_SCOPE
+            \ PREPEND
+            \ REGEX
+            \ REMOVE_AT
+            \ REMOVE_DUPLICATES
+            \ REMOVE_ITEM
+            \ REPLACE
+            \ REVERSE
+            \ SELECTOR
+            \ SENSITIVE
+            \ SORT
+            \ STRING
+            \ STRIP
+            \ SUBLIST
+            \ TOLOWER
+            \ TOUPPER
+            \ TRANSFORM
 
 syn keyword cmakeKWload_cache contained
-            \ EXCLUDE INCLUDE_INTERNALS READ_WITH_PREFIX
+            \ EXCLUDE
+            \ INCLUDE_INTERNALS
+            \ READ_WITH_PREFIX
 
 syn keyword cmakeKWload_command contained
-            \ CMAKE_LOADED_COMMAND_ COMMAND_NAME
+            \ CMAKE_LOADED_COMMAND_
+            \ COMMAND_NAME
 
 syn keyword cmakeKWmacro contained
-            \ ARGC ARGN ARGS ARGV DEFINED GREATER LISTS NOT _BAR _FOO
+            \ ARGC
+            \ ARGN
+            \ ARGS
+            \ ARGV
+            \ DEFINED
+            \ GREATER
+            \ LISTS
+            \ NOT
+            \ _BAR
+            \ _FOO
 
 syn keyword cmakeKWmake_directory contained
             \ MAKE_DIRECTORY
 
 syn keyword cmakeKWmark_as_advanced contained
-            \ CLEAR FORCE VAR
+            \ CLEAR
+            \ FORCE
+            \ VAR
 
 syn keyword cmakeKWmath contained
-            \ EXPR HEXADECIMAL OUTPUT_FORMAT
+            \ EXPR
+            \ HEXADECIMAL
+            \ OUTPUT_FORMAT
 
 syn keyword cmakeKWmessage contained
-            \ AUTHOR_WARNING DEPRECATION FATAL_ERROR GUI SEND_ERROR STATUS WARNING
+            \ AUTHOR_WARNING
+            \ DEPRECATION
+            \ FATAL_ERROR
+            \ GUI
+            \ SEND_ERROR
+            \ STATUS
+            \ WARNING
 
 syn keyword cmakeKWoption contained
-            \ OFF ON
+            \ OFF
+            \ ON
 
 syn keyword cmakeKWproject contained
-            \ ASM CMAKE_PROJECT_ CUDA DESCRIPTION HOMEPAGE_URL LANGUAGES NAME NONE PROJECT VERSION _BINARY_DIR _DESCRIPTION _HOMEPAGE_URL _INCLUDE _SOURCE_DIR _VERSION _VERSION_MAJOR _VERSION_MINOR _VERSION_PATCH _VERSION_TWEAK
+            \ ASM
+            \ CMAKE_PROJECT_
+            \ CUDA
+            \ DESCRIPTION
+            \ HOMEPAGE_URL
+            \ LANGUAGES
+            \ NAME
+            \ NONE
+            \ PROJECT
+            \ VERSION
+            \ _BINARY_DIR
+            \ _DESCRIPTION
+            \ _HOMEPAGE_URL
+            \ _INCLUDE
+            \ _SOURCE_DIR
+            \ _VERSION
+            \ _VERSION_MAJOR
+            \ _VERSION_MINOR
+            \ _VERSION_PATCH
+            \ _VERSION_TWEAK
 
 syn keyword cmakeKWremove contained
-            \ REMOVE_ITEM VALUE VAR
+            \ REMOVE_ITEM
+            \ VALUE
+            \ VAR
 
 syn keyword cmakeKWseparate_arguments contained
-            \ MSDN NATIVE NATIVE_COMMAND UNIX_COMMAND WINDOWS WINDOWS_COMMAND _COMMAND
+            \ MSDN
+            \ NATIVE
+            \ NATIVE_COMMAND
+            \ UNIX_COMMAND
+            \ WINDOWS
+            \ WINDOWS_COMMAND
+            \ _COMMAND
 
 syn keyword cmakeKWset contained
-            \ BOOL FILEPATH FORCE INTERNAL OFF ON PARENT_SCOPE STRING STRINGS
+            \ BOOL
+            \ FILEPATH
+            \ FORCE
+            \ INTERNAL
+            \ OFF
+            \ ON
+            \ PARENT_SCOPE
+            \ STRING
+            \ STRINGS
 
 syn keyword cmakeKWset_directory_properties contained
             \ PROPERTIES
 
 syn keyword cmakeKWset_property contained
-            \ APPEND APPEND_STRING DIRECTORY GLOBAL INHERITED INSTALL PROPERTY SOURCE TARGET TEST WIX
+            \ APPEND
+            \ APPEND_STRING
+            \ DIRECTORY
+            \ GLOBAL
+            \ INHERITED
+            \ INSTALL
+            \ PROPERTY
+            \ SOURCE
+            \ TARGET
+            \ TEST
+            \ WIX
 
 syn keyword cmakeKWset_source_files_properties contained
             \ PROPERTIES
 
 syn keyword cmakeKWset_target_properties contained
-            \ PROPERTIES TARGET
+            \ PROPERTIES
+            \ TARGET
 
 syn keyword cmakeKWset_tests_properties contained
             \ PROPERTIES
 
 syn keyword cmakeKWsource_group contained
-            \ FILES PREFIX REGULAR_EXPRESSION TREE
+            \ FILES
+            \ PREFIX
+            \ REGULAR_EXPRESSION
+            \ TREE
 
 syn keyword cmakeKWstring contained
-            \ ALPHABET APPEND ASCII CMAKE_MATCH_ COMPARE CONCAT CONFIGURE EQUAL ESCAPE_QUOTES FIND GENEX_STRIP GREATER GREATER_EQUAL GUID HASH JOIN LENGTH LESS LESS_EQUAL MAKE_C_IDENTIFIER MATCH MATCHALL MATCHES NAMESPACE NOTEQUAL ONLY PREPEND RANDOM RANDOM_SEED REGEX REPLACE REVERSE RFC SHA SOURCE_DATE_EPOCH STRIP SUBSTRING SZ TIMESTAMP TOLOWER TOUPPER TYPE US UTC UUID
+            \ ALPHABET
+            \ APPEND
+            \ ASCII
+            \ CMAKE_MATCH_
+            \ COMPARE
+            \ CONCAT
+            \ CONFIGURE
+            \ EQUAL
+            \ ESCAPE_QUOTES
+            \ FIND
+            \ GENEX_STRIP
+            \ GREATER
+            \ GREATER_EQUAL
+            \ GUID
+            \ HASH
+            \ JOIN
+            \ LENGTH
+            \ LESS
+            \ LESS_EQUAL
+            \ MAKE_C_IDENTIFIER
+            \ MATCH
+            \ MATCHALL
+            \ MATCHES
+            \ NAMESPACE
+            \ NOTEQUAL
+            \ ONLY
+            \ PREPEND
+            \ RANDOM
+            \ RANDOM_SEED
+            \ REGEX
+            \ REPLACE
+            \ REVERSE
+            \ RFC
+            \ SHA
+            \ SOURCE_DATE_EPOCH
+            \ STRIP
+            \ SUBSTRING
+            \ SZ
+            \ TIMESTAMP
+            \ TOLOWER
+            \ TOUPPER
+            \ TYPE
+            \ US
+            \ UTC
+            \ UUID
 
 syn keyword cmakeKWsubdirs contained
-            \ EXCLUDE_FROM_ALL PREORDER
+            \ EXCLUDE_FROM_ALL
+            \ PREORDER
 
 syn keyword cmakeKWtarget_compile_definitions contained
-            \ ALIAS COMPILE_DEFINITIONS FOO IMPORTED INTERFACE INTERFACE_COMPILE_DEFINITIONS PRIVATE PUBLIC
+            \ ALIAS
+            \ COMPILE_DEFINITIONS
+            \ FOO
+            \ IMPORTED
+            \ INTERFACE
+            \ INTERFACE_COMPILE_DEFINITIONS
+            \ PRIVATE
+            \ PUBLIC
 
 syn keyword cmakeKWtarget_compile_features contained
-            \ ALIAS COMPILE_FEATURES IMPORTED INTERFACE INTERFACE_COMPILE_FEATURES PRIVATE PUBLIC
+            \ ALIAS
+            \ COMPILE_FEATURES
+            \ IMPORTED
+            \ INTERFACE
+            \ INTERFACE_COMPILE_FEATURES
+            \ PRIVATE
+            \ PUBLIC
 
 syn keyword cmakeKWtarget_compile_options contained
-            \ ALIAS BEFORE COMPILE_OPTIONS IMPORTED INTERFACE INTERFACE_COMPILE_OPTIONS PRIVATE PUBLIC SHELL UNIX_COMMAND
+            \ ALIAS
+            \ BEFORE
+            \ COMPILE_OPTIONS
+            \ IMPORTED
+            \ INTERFACE
+            \ INTERFACE_COMPILE_OPTIONS
+            \ PRIVATE
+            \ PUBLIC
+            \ SHELL
+            \ UNIX_COMMAND
 
 syn keyword cmakeKWtarget_include_directories contained
-            \ ALIAS BEFORE BUILD_INTERFACE IMPORTED INCLUDE_DIRECTORIES INSTALL_INTERFACE INTERFACE INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_LIBRARIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES PRIVATE PUBLIC SYSTEM
+            \ ALIAS
+            \ BEFORE
+            \ BUILD_INTERFACE
+            \ IMPORTED
+            \ INCLUDE_DIRECTORIES
+            \ INSTALL_INTERFACE
+            \ INTERFACE
+            \ INTERFACE_INCLUDE_DIRECTORIES
+            \ INTERFACE_LINK_LIBRARIES
+            \ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES
+            \ PRIVATE
+            \ PUBLIC
+            \ SYSTEM
 
 syn keyword cmakeKWtarget_link_directories contained
-            \ ALIAS BEFORE IMPORTED INTERFACE INTERFACE_LINK_DIRECTORIES LINK_DIRECTORIES ORIGIN PRIVATE PUBLIC RPATH
+            \ ALIAS
+            \ BEFORE
+            \ IMPORTED
+            \ INTERFACE
+            \ INTERFACE_LINK_DIRECTORIES
+            \ LINK_DIRECTORIES
+            \ ORIGIN
+            \ PRIVATE
+            \ PUBLIC
+            \ RPATH
 
 syn keyword cmakeKWtarget_link_libraries contained
-            \ ALIAS DA DAG DEBUG_CONFIGURATIONS DOBJ IMPORTED IMPORTED_NO_SONAME INTERFACE INTERFACE_LINK_LIBRARIES LINK_INTERFACE_LIBRARIES LINK_INTERFACE_LIBRARIES_DEBUG LINK_INTERFACE_MULTIPLICITY LINK_OPTIONS LINK_PRIVATE LINK_PUBLIC OBJECT OLD OSX PRIVATE PUBLIC SHARED STATIC
+            \ ALIAS
+            \ DA
+            \ DAG
+            \ DEBUG_CONFIGURATIONS
+            \ DOBJ
+            \ IMPORTED
+            \ IMPORTED_NO_SONAME
+            \ INTERFACE
+            \ INTERFACE_LINK_LIBRARIES
+            \ LINK_INTERFACE_LIBRARIES
+            \ LINK_INTERFACE_LIBRARIES_DEBUG
+            \ LINK_INTERFACE_MULTIPLICITY
+            \ LINK_OPTIONS
+            \ LINK_PRIVATE
+            \ LINK_PUBLIC
+            \ OBJECT
+            \ OLD
+            \ OSX
+            \ PRIVATE
+            \ PUBLIC
+            \ SHARED
+            \ STATIC
 
 syn keyword cmakeKWtarget_link_options contained
-            \ ALIAS BEFORE CMAKE_ GCC GNU IMPORTED INTERFACE INTERFACE_LINK_OPTIONS LANG LINKER LINK_OPTIONS PRIVATE PUBLIC SHELL UNIX_COMMAND _LINKER_WRAPPER_FLAG _LINKER_WRAPPER_FLAG_SEP
+            \ ALIAS
+            \ BEFORE
+            \ CMAKE_
+            \ GCC
+            \ GNU
+            \ IMPORTED
+            \ INTERFACE
+            \ INTERFACE_LINK_OPTIONS
+            \ LANG
+            \ LINKER
+            \ LINK_OPTIONS
+            \ PRIVATE
+            \ PUBLIC
+            \ SHELL
+            \ UNIX_COMMAND
+            \ _LINKER_WRAPPER_FLAG
+            \ _LINKER_WRAPPER_FLAG_SEP
 
 syn keyword cmakeKWtarget_sources contained
-            \ ALIAS IMPORTED INTERFACE INTERFACE_SOURCES PRIVATE PUBLIC SOURCES
+            \ ALIAS
+            \ IMPORTED
+            \ INTERFACE
+            \ INTERFACE_SOURCES
+            \ PRIVATE
+            \ PUBLIC
+            \ SOURCES
 
 syn keyword cmakeKWtry_compile contained
-            \ ALL_BUILD CMAKE_FLAGS COMPILE_DEFINITIONS COPY_FILE COPY_FILE_ERROR CUDA_EXTENSIONS CUDA_STANDARD CUDA_STANDARD_REQUIRED CXX_EXTENSIONS CXX_STANDARD CXX_STANDARD_REQUIRED C_EXTENSIONS C_STANDARD C_STANDARD_REQUIRED DEFINED DLINK_LIBRARIES DVAR FALSE INCLUDE_DIRECTORIES LANG LINK_DIRECTORIES LINK_LIBRARIES NOT OUTPUT_VARIABLE RESULT_VAR SOURCES TRUE TYPE VALUE _EXTENSIONS _STANDARD _STANDARD_REQUIRED
+            \ ALL_BUILD
+            \ CMAKE_FLAGS
+            \ COMPILE_DEFINITIONS
+            \ COPY_FILE
+            \ COPY_FILE_ERROR
+            \ CUDA_EXTENSIONS
+            \ CUDA_STANDARD
+            \ CUDA_STANDARD_REQUIRED
+            \ CXX_EXTENSIONS
+            \ CXX_STANDARD
+            \ CXX_STANDARD_REQUIRED
+            \ C_EXTENSIONS
+            \ C_STANDARD
+            \ C_STANDARD_REQUIRED
+            \ DEFINED
+            \ DLINK_LIBRARIES
+            \ DVAR
+            \ FALSE
+            \ INCLUDE_DIRECTORIES
+            \ LANG
+            \ LINK_DIRECTORIES
+            \ LINK_LIBRARIES
+            \ NOT
+            \ OUTPUT_VARIABLE
+            \ RESULT_VAR
+            \ SOURCES
+            \ TRUE
+            \ TYPE
+            \ VALUE
+            \ _EXTENSIONS
+            \ _STANDARD
+            \ _STANDARD_REQUIRED
 
 syn keyword cmakeKWtry_run contained
-            \ ARGS CMAKE_FLAGS COMPILE_DEFINITIONS COMPILE_OUTPUT_VARIABLE COMPILE_RESULT_VAR DLINK_LIBRARIES DVAR FAILED_TO_RUN FALSE INCLUDE_DIRECTORIES LINK_DIRECTORIES LINK_LIBRARIES RUN_OUTPUT_VARIABLE RUN_RESULT_VAR TRUE TYPE VALUE __TRYRUN_OUTPUT
+            \ ARGS
+            \ CMAKE_FLAGS
+            \ COMPILE_DEFINITIONS
+            \ COMPILE_OUTPUT_VARIABLE
+            \ COMPILE_RESULT_VAR
+            \ DLINK_LIBRARIES
+            \ DVAR
+            \ FAILED_TO_RUN
+            \ FALSE
+            \ INCLUDE_DIRECTORIES
+            \ LINK_DIRECTORIES
+            \ LINK_LIBRARIES
+            \ RUN_OUTPUT_VARIABLE
+            \ RUN_RESULT_VAR
+            \ TRUE
+            \ TYPE
+            \ VALUE
+            \ __TRYRUN_OUTPUT
 
 syn keyword cmakeKWunset contained
-            \ LD_LIBRARY_PATH PARENT_SCOPE VAR
+            \ LD_LIBRARY_PATH
+            \ PARENT_SCOPE
+            \ VAR
 
 syn keyword cmakeKWuse_mangled_mesa contained
-            \ GL OUTPUT_DIRECTORY PATH_TO_MESA
+            \ GL
+            \ OUTPUT_DIRECTORY
+            \ PATH_TO_MESA
 
 syn keyword cmakeKWvariable_requires contained
-            \ RESULT_VARIABLE TEST_VARIABLE
+            \ RESULT_VARIABLE
+            \ TEST_VARIABLE
 
 syn keyword cmakeKWvariable_watch contained
             \ COMMAND
@@ -343,28 +2175,231 @@
             \ ARGS
 
 syn keyword cmakeKWwrite_file contained
-            \ APPEND CONFIGURE_FILE NOTE WRITE
+            \ APPEND
+            \ CONFIGURE_FILE
+            \ NOTE
+            \ WRITE
 
 
 syn keyword cmakeGeneratorExpressions contained
-            \ LINK_LIBRARIES INCLUDE_DIRECTORIES COMPILE_DEFINITIONS CONFIG DEBUG_MODE BOOL AND NOT IF STREQUAL IN_LIST TARGET_EXISTS MAP_IMPORTED_CONFIG_ PLATFORM_ID C_COMPILER_ID CMAKE_ LANG CXX_COMPILER_ID VERSION_LESS VERSION_GREATER VERSION_EQUAL VERSION_LESS_EQUAL VERSION_GREATER_EQUAL C_COMPILER_VERSION CXX_COMPILER_VERSION TARGET_POLICY COMPILE_FEATURES C_STANDARD CXX_STANDARD COMPILE_LANGUAGE PRIVATE COMPILING_CXX CUDA COMPILING_CUDA PUBLIC GNU OLD_COMPILER CMAKE_CXX_COMPILER_VERSION CONFIGURATION TARGET_FILE TARGET_FILE_NAME TARGET_FILE_DIR TARGET_LINKER_FILE TARGET_LINKER_FILE_NAME TARGET_LINKER_FILE_DIR TARGET_SONAME_FILE TARGET_SONAME_FILE_NAME TARGET_SONAME_FILE_DIR TARGET_PDB_FILE PDB_NAME PDB_OUTPUT_DIRECTORY PDB_NAME_ PDB_OUTPUT_DIRECTORY_ TARGET_PDB_FILE_NAME TARGET_PDB_FILE_DIR TARGET_BUNDLE_DIR TARGET_BUNDLE_CONTENT_DIR SDK TARGET_PROPERTY INSTALL_PREFIX EXPORT JOIN ANGLE COMMA SEMICOLON TARGET_NAME TARGET_NAME_IF_EXISTS LINK_ONLY INTERFACE_LINK_LIBRARIES INSTALL_INTERFACE BUILD_INTERFACE LOWER_CASE UPPER_CASE MAKE_C_IDENTIFIER TARGET_OBJECTS OBJECT_LIBRARY SHELL_PATH MSYS GENEX_EVAL TARGET_GENEX_EVAL CUSTOM_KEYS FOO_EXTRA_THINGS COMMAND
+            \ AND
+            \ ANGLE
+            \ BOOL
+            \ BUILD_INTERFACE
+            \ CMAKE_
+            \ CMAKE_CXX_COMPILER_VERSION
+            \ COMMA
+            \ COMMAND
+            \ COMPILE_DEFINITIONS
+            \ COMPILE_FEATURES
+            \ COMPILE_LANGUAGE
+            \ COMPILING_CUDA
+            \ COMPILING_CXX
+            \ CONFIG
+            \ CONFIGURATION
+            \ CUDA
+            \ CUSTOM_KEYS
+            \ CXX_COMPILER_ID
+            \ CXX_COMPILER_VERSION
+            \ CXX_STANDARD
+            \ C_COMPILER_ID
+            \ C_COMPILER_VERSION
+            \ C_STANDARD
+            \ DEBUG_MODE
+            \ EXPORT
+            \ FOO_EXTRA_THINGS
+            \ GENEX_EVAL
+            \ GNU
+            \ IF
+            \ INCLUDE_DIRECTORIES
+            \ INSTALL_INTERFACE
+            \ INSTALL_PREFIX
+            \ INTERFACE_LINK_LIBRARIES
+            \ IN_LIST
+            \ JOIN
+            \ LANG
+            \ LINK_LIBRARIES
+            \ LINK_ONLY
+            \ LOWER_CASE
+            \ MAKE_C_IDENTIFIER
+            \ MAP_IMPORTED_CONFIG_
+            \ MSYS
+            \ NOT
+            \ OBJECT_LIBRARY
+            \ OLD_COMPILER
+            \ PDB_NAME
+            \ PDB_NAME_
+            \ PDB_OUTPUT_DIRECTORY
+            \ PDB_OUTPUT_DIRECTORY_
+            \ PLATFORM_ID
+            \ PRIVATE
+            \ PUBLIC
+            \ SDK
+            \ SEMICOLON
+            \ SHELL_PATH
+            \ STREQUAL
+            \ TARGET_BUNDLE_CONTENT_DIR
+            \ TARGET_BUNDLE_DIR
+            \ TARGET_EXISTS
+            \ TARGET_FILE
+            \ TARGET_FILE_DIR
+            \ TARGET_FILE_NAME
+            \ TARGET_GENEX_EVAL
+            \ TARGET_LINKER_FILE
+            \ TARGET_LINKER_FILE_DIR
+            \ TARGET_LINKER_FILE_NAME
+            \ TARGET_NAME
+            \ TARGET_NAME_IF_EXISTS
+            \ TARGET_OBJECTS
+            \ TARGET_PDB_FILE
+            \ TARGET_PDB_FILE_DIR
+            \ TARGET_PDB_FILE_NAME
+            \ TARGET_POLICY
+            \ TARGET_PROPERTY
+            \ TARGET_SONAME_FILE
+            \ TARGET_SONAME_FILE_DIR
+            \ TARGET_SONAME_FILE_NAME
+            \ UPPER_CASE
+            \ VERSION_EQUAL
+            \ VERSION_GREATER
+            \ VERSION_GREATER_EQUAL
+            \ VERSION_LESS
+            \ VERSION_LESS_EQUAL
 
 syn case ignore
 
 syn keyword cmakeCommand
-            \ add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory break build_command cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue create_test_sourcelist ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload define_property enable_language enable_testing endfunction endmacro execute_process export file find_file find_library find_package find_path find_program fltk_wrap_ui function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property include include_directories include_external_msproject include_guard include_regular_expression install link_directories list load_cache load_command macro mark_as_advanced math message option project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run unset variable_watch
+            \ add_compile_definitions
+            \ add_compile_options
+            \ add_custom_command
+            \ add_custom_target
+            \ add_definitions
+            \ add_dependencies
+            \ add_executable
+            \ add_library
+            \ add_link_options
+            \ add_subdirectory
+            \ add_test
+            \ aux_source_directory
+            \ break
+            \ build_command
+            \ cmake_host_system_information
+            \ cmake_minimum_required
+            \ cmake_parse_arguments
+            \ cmake_policy
+            \ configure_file
+            \ continue
+            \ create_test_sourcelist
+            \ ctest_build
+            \ ctest_configure
+            \ ctest_coverage
+            \ ctest_empty_binary_directory
+            \ ctest_memcheck
+            \ ctest_read_custom_files
+            \ ctest_run_script
+            \ ctest_sleep
+            \ ctest_start
+            \ ctest_submit
+            \ ctest_test
+            \ ctest_update
+            \ ctest_upload
+            \ define_property
+            \ enable_language
+            \ enable_testing
+            \ endfunction
+            \ endmacro
+            \ execute_process
+            \ export
+            \ file
+            \ find_file
+            \ find_library
+            \ find_package
+            \ find_path
+            \ find_program
+            \ fltk_wrap_ui
+            \ function
+            \ get_cmake_property
+            \ get_directory_property
+            \ get_filename_component
+            \ get_property
+            \ get_source_file_property
+            \ get_target_property
+            \ get_test_property
+            \ include
+            \ include_directories
+            \ include_external_msproject
+            \ include_guard
+            \ include_regular_expression
+            \ install
+            \ link_directories
+            \ list
+            \ load_cache
+            \ load_command
+            \ macro
+            \ mark_as_advanced
+            \ math
+            \ message
+            \ option
+            \ project
+            \ qt_wrap_cpp
+            \ qt_wrap_ui
+            \ remove_definitions
+            \ return
+            \ separate_arguments
+            \ set
+            \ set_directory_properties
+            \ set_property
+            \ set_source_files_properties
+            \ set_target_properties
+            \ set_tests_properties
+            \ site_name
+            \ source_group
+            \ string
+            \ target_compile_definitions
+            \ target_compile_features
+            \ target_compile_options
+            \ target_include_directories
+            \ target_link_directories
+            \ target_link_libraries
+            \ target_link_options
+            \ target_sources
+            \ try_compile
+            \ try_run
+            \ unset
+            \ variable_watch
             \ nextgroup=cmakeArguments
 
 syn keyword cmakeCommandConditional
-            \ else elseif endif if
+            \ else
+            \ elseif
+            \ endif
+            \ if
             \ nextgroup=cmakeArguments
 
 syn keyword cmakeCommandRepeat
-            \ endforeach endwhile foreach while
+            \ endforeach
+            \ endwhile
+            \ foreach
+            \ while
             \ nextgroup=cmakeArguments
 
 syn keyword cmakeCommandDeprecated
-            \ build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file
+            \ build_name
+            \ exec_program
+            \ export_library_dependencies
+            \ install_files
+            \ install_programs
+            \ install_targets
+            \ link_libraries
+            \ make_directory
+            \ output_required_files
+            \ remove
+            \ subdir_depends
+            \ subdirs
+            \ use_mangled_mesa
+            \ utility_source
+            \ variable_requires
+            \ write_file
             \ nextgroup=cmakeArguments
 
 syn case match
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e88e925..ee987d0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,7 @@
 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 # file Copyright.txt or https://cmake.org/licensing for details.
 
-cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.1...3.12 FATAL_ERROR)
 set(CMAKE_USER_MAKE_RULES_OVERRIDE_C ${CMAKE_CURRENT_SOURCE_DIR}/Source/Modules/OverrideC.cmake)
 set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX ${CMAKE_CURRENT_SOURCE_DIR}/Source/Modules/OverrideCXX.cmake)
 project(CMake)
diff --git a/Help/command/execute_process.rst b/Help/command/execute_process.rst
index 716f457..fc7d177 100644
--- a/Help/command/execute_process.rst
+++ b/Help/command/execute_process.rst
@@ -5,8 +5,8 @@
 
 .. code-block:: cmake
 
-  execute_process(COMMAND <cmd1> [args1...]]
-                  [COMMAND <cmd2> [args2...] [...]]
+  execute_process(COMMAND <cmd1> [<arguments>]
+                  [COMMAND <cmd2> [<arguments>]]...
                   [WORKING_DIRECTORY <directory>]
                   [TIMEOUT <seconds>]
                   [RESULT_VARIABLE <variable>]
diff --git a/Help/command/target_link_libraries.rst b/Help/command/target_link_libraries.rst
index 229d10c..58f312e 100644
--- a/Help/command/target_link_libraries.rst
+++ b/Help/command/target_link_libraries.rst
@@ -43,6 +43,9 @@
   the library instead of using the full path
   (e.g. ``/usr/lib/libfoo.so`` becomes ``-lfoo``).
 
+  The full path to the target's artifact will be quoted/escaped for
+  the shell automatically.
+
 * **A full path to a library file**: The generated link line will
   normally preserve the full path to the file. The buildsystem will
   have a dependency to re-link ``<target>`` if the library file changes.
@@ -62,9 +65,15 @@
   imported into generated project files.  This is not supported by other
   generators.
 
+  The full path to the library file will be quoted/escaped for
+  the shell automatically.
+
 * **A plain library name**: The generated link line will ask the linker
   to search for the library (e.g. ``foo`` becomes ``-lfoo`` or ``foo.lib``).
 
+  The library name/flag is treated as a command-line string fragment and
+  will be used with no extra quoting or escaping.
+
 * **A link flag**: Item names starting with ``-``, but not ``-l`` or
   ``-framework``, are treated as linker flags.  Note that such flags will
   be treated like any other library link item for purposes of transitive
@@ -78,6 +87,9 @@
   flags explicitly. The flags will then be placed at the toolchain-defined
   flag position in the link command.
 
+  The link flag is treated as a command-line string fragment and
+  will be used with no extra quoting or escaping.
+
 * **A generator expression**: A ``$<...>`` :manual:`generator expression
   <cmake-generator-expressions(7)>` may evaluate to any of the above
   items or to a :ref:`;-list <CMake Language Lists>` of them.
diff --git a/Help/manual/cmake-language.7.rst b/Help/manual/cmake-language.7.rst
index 591f73d..8740d97 100644
--- a/Help/manual/cmake-language.7.rst
+++ b/Help/manual/cmake-language.7.rst
@@ -206,9 +206,10 @@
 is performed.  A bracket argument is always given to the command
 invocation as exactly one argument.
 
-For example:
+.. No code-block syntax highlighting in the following example
+   (long string literal not supported by our cmake.py)
 
-.. code-block:: cmake
+For example::
 
  message([=[
  This is the first line in a bracket argument with bracket length 1.
@@ -253,9 +254,10 @@
 are evaluated.  A quoted argument is always given to the command
 invocation as exactly one argument.
 
-For example:
+.. No code-block syntax highlighting in the following example
+   (escape \" not supported by our cmake.py)
 
-::
+For example::
 
  message("This is a quoted argument containing multiple lines.
  This is always one argument even though it contains a ; character.
@@ -264,11 +266,12 @@
  It does end in an unescaped double quote.
  ")
 
+.. No code-block syntax highlighting in the following example
+   (for conformity with the two above examples)
+
 The final ``\`` on any line ending in an odd number of backslashes
 is treated as a line continuation and ignored along with the
-immediately following newline character.  For example:
-
-.. code-block:: cmake
+immediately following newline character.  For example::
 
  message("\
  This is the first line of a quoted argument. \
@@ -391,8 +394,9 @@
 
 Literal variable references may consist of alphanumeric characters,
 the characters ``/_.+-``, and `Escape Sequences`_.  Nested references
-may be used to evaluate variables of any name.  (See also policy
-:policy:`CMP0053` documentation for historical considerations.)
+may be used to evaluate variables of any name.  See also policy
+:policy:`CMP0053` documentation for historical considerations and reasons why
+the ``$`` is also technically permitted but is discouraged.
 
 The `Variables`_ section documents the scope of variable names
 and how their values are set.
diff --git a/Help/manual/cmake-server.7.rst b/Help/manual/cmake-server.7.rst
index b4c1436..25d364c 100644
--- a/Help/manual/cmake-server.7.rst
+++ b/Help/manual/cmake-server.7.rst
@@ -308,9 +308,6 @@
 
 indicating that the server is ready for action.
 
-Protocol version 1.3 introduces an optional flag on the target filegroup
-that indicates if the filegroup represents :prop_tgt:`INTERFACE_SOURCES`.
-
 
 Type "globalSettings"
 ^^^^^^^^^^^^^^^^^^^^^
@@ -527,8 +524,6 @@
 
 Each fileGroup object may contain the following keys:
 
-"isInterfaceSources"
-  true if the fileGroup represents :prop_tgt:`INTERFACE_SOURCES`.
 "language"
   contains the programming language used by all files in the group.
 "compileFlags"
@@ -543,8 +538,6 @@
 "defines"
   with a list of defines in the form "SOMEVALUE" or "SOMEVALUE=42". This
   value is encoded in the system's native shell format.
-"isGenerated"
-  true if the files were generated.
 "sources"
   with a list of source files.
 
diff --git a/Help/policy/CMP0049.rst b/Help/policy/CMP0049.rst
index a3ce4b1..291bf57 100644
--- a/Help/policy/CMP0049.rst
+++ b/Help/policy/CMP0049.rst
@@ -3,14 +3,14 @@
 
 Do not expand variables in target source entries.
 
-CMake 2.8.12 and lower performed and extra layer of variable expansion
-when evaluating source file names:
-
-.. code-block:: cmake
+CMake 2.8.12 and lower performed an extra layer of variable expansion
+when evaluating source file names::
 
   set(a_source foo.c)
   add_executable(foo \${a_source})
 
+.. note: no cmake highlighting since this syntax is deprecated
+
 This was undocumented behavior.
 
 The OLD behavior for this policy is to expand such variables when processing
diff --git a/Help/policy/CMP0053.rst b/Help/policy/CMP0053.rst
index 2620a60..032b3e5 100644
--- a/Help/policy/CMP0053.rst
+++ b/Help/policy/CMP0053.rst
@@ -16,6 +16,10 @@
 * Literal ``${VAR}`` reference syntax may contain only
   alphanumeric characters (``A-Z``, ``a-z``, ``0-9``) and
   the characters ``_``, ``.``, ``/``, ``-``, and ``+``.
+  Note that ``$`` is technically allowed in the ``NEW`` behavior, but is
+  invalid for ``OLD`` behavior.  This is due to an oversight during the
+  implementation of :policy:`CMP0053` and its use as a literal variable
+  reference is discouraged for this reason.
   Variables with other characters in their name may still
   be referenced indirectly, e.g.
 
diff --git a/Help/release/3.13.rst b/Help/release/3.13.rst
index ed5f17f..f547556 100644
--- a/Help/release/3.13.rst
+++ b/Help/release/3.13.rst
@@ -204,6 +204,9 @@
 Other Changes
 =============
 
+* The precompiled binaries provided on ``cmake.org`` now include
+  qthelp-format documentation.
+
 * The :command:`option` command now honors an existing normal variable
   of the same name and does nothing instead of possibly creating a cache
   entry (or setting its type) and removing the normal variable.
diff --git a/Help/release/dev/better-empty-list-behavior.rst b/Help/release/dev/better-empty-list-behavior.rst
new file mode 100644
index 0000000..cd864f4
--- /dev/null
+++ b/Help/release/dev/better-empty-list-behavior.rst
@@ -0,0 +1,9 @@
+better-empty-list-behavior
+--------------------------
+
+* The :command:`list` operations ``REMOVE_ITEM``, ``REMOVE_DUPLICATES``,
+  ``SORT``, ``REVERSE``, and ``FILTER`` all now accept a non-existent variable
+  as the list since these operations on empty lists is also the empty list.
+
+* The :command:`list` operation ``REMOVE_AT`` now indicates that the given
+  indices are invalid for a non-existent variable or empty list.
diff --git a/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst b/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
index 513276e..a1fa1ff 100644
--- a/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
+++ b/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
@@ -5,10 +5,19 @@
 
 This variable can be populated with a list of properties to generate
 debug output for when evaluating target properties.  Currently it can
-only be used when evaluating the :prop_tgt:`INCLUDE_DIRECTORIES`,
-:prop_tgt:`COMPILE_DEFINITIONS`, :prop_tgt:`COMPILE_OPTIONS`,
-:prop_tgt:`AUTOUIC_OPTIONS`, :prop_tgt:`SOURCES`, :prop_tgt:`COMPILE_FEATURES`,
-:prop_tgt:`POSITION_INDEPENDENT_CODE` target properties and any other property
-listed in :prop_tgt:`COMPATIBLE_INTERFACE_STRING` and other
-``COMPATIBLE_INTERFACE_`` properties.  It outputs an origin for each entry in
-the target property.  Default is unset.
+only be used when evaluating:
+
+* :prop_tgt:`AUTOUIC_OPTIONS`
+* :prop_tgt:`COMPILE_DEFINITIONS`
+* :prop_tgt:`COMPILE_FEATURES`
+* :prop_tgt:`COMPILE_OPTIONS`
+* :prop_tgt:`INCLUDE_DIRECTORIES`
+* :prop_tgt:`LINK_DIRECTORIES`
+* :prop_tgt:`LINK_OPTIONS`
+* :prop_tgt:`POSITION_INDEPENDENT_CODE`
+* :prop_tgt:`SOURCES`
+
+target properties and any other property listed in
+:prop_tgt:`COMPATIBLE_INTERFACE_STRING` and other
+``COMPATIBLE_INTERFACE_`` properties.  It outputs an origin for each entry
+in the target property.  Default is unset.
diff --git a/Modules/AddFileDependencies.cmake b/Modules/AddFileDependencies.cmake
index fdd8432..999da95 100644
--- a/Modules/AddFileDependencies.cmake
+++ b/Modules/AddFileDependencies.cmake
@@ -5,9 +5,13 @@
 # AddFileDependencies
 # -------------------
 #
-# ADD_FILE_DEPENDENCIES(source_file depend_files...)
+# Add dependencies to a source file.
 #
-# Adds the given files as dependencies to source_file
+# .. code-block:: cmake
+#
+#   ADD_FILE_DEPENDENCIES(<source> <files>)
+#
+# Adds the given ``<files>`` to the dependencies of file ``<source>``.
 
 macro(ADD_FILE_DEPENDENCIES _file)
 
diff --git a/Modules/AndroidTestUtilities.cmake b/Modules/AndroidTestUtilities.cmake
index 62d04f3..e333cdb 100644
--- a/Modules/AndroidTestUtilities.cmake
+++ b/Modules/AndroidTestUtilities.cmake
@@ -40,7 +40,7 @@
 
 .. command:: android_add_test_data
 
-  ::
+  .. code-block:: cmake
 
     android_add_test_data(<test-name>
       [FILES <files>...] [FILES_DEST <device-dir>]
diff --git a/Modules/BundleUtilities.cmake b/Modules/BundleUtilities.cmake
index a7e80e7..c963e09 100644
--- a/Modules/BundleUtilities.cmake
+++ b/Modules/BundleUtilities.cmake
@@ -12,7 +12,7 @@
 
 The following functions are provided by this module:
 
-::
+.. code-block:: cmake
 
    fixup_bundle
    copy_and_fixup_bundle
@@ -39,7 +39,7 @@
 Instead, invoke them from an :command:`install(CODE)` or
 :command:`install(SCRIPT)` rule.
 
-::
+.. code-block:: cmake
 
   FIXUP_BUNDLE(<app> <libs> <dirs>)
 
@@ -62,14 +62,14 @@
 As an optional parameter (IGNORE_ITEM) a list of file names can be passed,
 which are then ignored (e.g. IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe")
 
-::
+.. code-block:: cmake
 
   COPY_AND_FIXUP_BUNDLE(<src> <dst> <libs> <dirs>)
 
 Makes a copy of the bundle <src> at location <dst> and then fixes up
 the new copied bundle in-place at <dst>...
 
-::
+.. code-block:: cmake
 
   VERIFY_APP(<app>)
 
@@ -80,14 +80,14 @@
 As an optional parameter (IGNORE_ITEM) a list of file names can be passed,
 which are then ignored (e.g. IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe")
 
-::
+.. code-block:: cmake
 
   GET_BUNDLE_MAIN_EXECUTABLE(<bundle> <result_var>)
 
 The result will be the full path name of the bundle's main executable
 file or an "error:" prefixed string if it could not be determined.
 
-::
+.. code-block:: cmake
 
   GET_DOTAPP_DIR(<exe> <dotapp_dir_var>)
 
@@ -97,7 +97,7 @@
 
 The returned directory may or may not exist.
 
-::
+.. code-block:: cmake
 
   GET_BUNDLE_AND_EXECUTABLE(<app> <bundle_var> <executable_var> <valid_var>)
 
@@ -106,14 +106,14 @@
 directory in <bundle_var> and the path to its main executable in
 <executable_var>
 
-::
+.. code-block:: cmake
 
   GET_BUNDLE_ALL_EXECUTABLES(<bundle> <exes_var>)
 
 Scans the given bundle recursively for all executable files and
 accumulates them into a variable.
 
-::
+.. code-block:: cmake
 
   GET_ITEM_KEY(<item> <key_var>)
 
@@ -125,7 +125,7 @@
 This key is used as a prefix for CMake variables so that we can
 associate a set of variables with a given item based on its key.
 
-::
+.. code-block:: cmake
 
   CLEAR_BUNDLE_KEYS(<keys_var>)
 
@@ -135,7 +135,7 @@
 Caller of get_bundle_keys should call clear_bundle_keys when done with
 list of keys.
 
-::
+.. code-block:: cmake
 
   SET_BUNDLE_KEY_VALUES(<keys_var> <context> <item> <exepath> <dirs>
                         <copyflag> [<rpaths>])
@@ -143,7 +143,7 @@
 Add a key to the list (if necessary) for the given item.  If added,
 also set all the variables associated with that key.
 
-::
+.. code-block:: cmake
 
   GET_BUNDLE_KEYS(<app> <libs> <dirs> <keys_var>)
 
@@ -156,7 +156,7 @@
 As an optional parameter (IGNORE_ITEM) a list of file names can be passed,
 which are then ignored (e.g. IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe")
 
-::
+.. code-block:: cmake
 
   COPY_RESOLVED_ITEM_INTO_BUNDLE(<resolved_item> <resolved_embedded_item>)
 
@@ -164,7 +164,7 @@
 necessary if the resolved_item is "the same as" the
 resolved_embedded_item.
 
-::
+.. code-block:: cmake
 
   COPY_RESOLVED_FRAMEWORK_INTO_BUNDLE(<resolved_item> <resolved_embedded_item>)
 
@@ -178,7 +178,7 @@
 default, COPY_RESOLVED_FRAMEWORK_INTO_BUNDLE copies the framework
 dylib itself plus the framework Resources directory.
 
-::
+.. code-block:: cmake
 
   FIXUP_BUNDLE_ITEM(<resolved_embedded_item> <exepath> <dirs>)
 
@@ -204,7 +204,7 @@
 If the BU_CHMOD_BUNDLE_ITEMS variable is set then bundle items will be
 marked writable before install_name_tool tries to change them.
 
-::
+.. code-block:: cmake
 
   VERIFY_BUNDLE_PREREQUISITES(<bundle> <result_var> <info_var>)
 
@@ -215,7 +215,7 @@
 As an optional parameter (IGNORE_ITEM) a list of file names can be passed,
 which are then ignored (e.g. IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe")
 
-::
+.. code-block:: cmake
 
   VERIFY_BUNDLE_SYMLINKS(<bundle> <result_var> <info_var>)
 
diff --git a/Modules/CheckCCompilerFlag.cmake b/Modules/CheckCCompilerFlag.cmake
index 9d2c74d..f5c1127 100644
--- a/Modules/CheckCCompilerFlag.cmake
+++ b/Modules/CheckCCompilerFlag.cmake
@@ -9,7 +9,7 @@
 
 .. command:: check_c_compiler_flag
 
-  ::
+  .. code-block:: cmake
 
     check_c_compiler_flag(<flag> <var>)
 
diff --git a/Modules/CheckCSourceCompiles.cmake b/Modules/CheckCSourceCompiles.cmake
index 114213a..5b0b70e 100644
--- a/Modules/CheckCSourceCompiles.cmake
+++ b/Modules/CheckCSourceCompiles.cmake
@@ -9,15 +9,16 @@
 
 .. command:: check_c_source_compiles
 
-  ::
+  .. code-block:: cmake
 
-    check_c_source_compiles(code resultVar [FAIL_REGEX regex1 [regex2...]])
+    check_c_source_compiles(<code> <resultVar>
+                            [FAIL_REGEX <regex1> [<regex2>...]])
 
-  Check that the source supplied in ``code`` can be compiled as a C source
+  Check that the source supplied in ``<code>`` can be compiled as a C source
   file and linked as an executable (so it must contain at least a ``main()``
   function). The result will be stored in the internal cache variable specified
-  by ``resultVar``, with a boolean true value for success and boolean false for
-  failure. If ``FAIL_REGEX`` is provided, then failure is determined by
+  by ``<resultVar>``, with a boolean true value for success and boolean false
+  for failure. If ``FAIL_REGEX`` is provided, then failure is determined by
   checking if anything in the output matches any of the specified regular
   expressions.
 
@@ -34,7 +35,7 @@
   ``CMAKE_REQUIRED_DEFINITIONS``
     A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
     ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
-    ``resultVar`` will also be added automatically.
+    ``<resultVar>`` will also be added automatically.
 
   ``CMAKE_REQUIRED_INCLUDES``
     A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
@@ -53,10 +54,10 @@
     associated with the check will be suppressed.
 
   The check is only performed once, with the result cached in the variable
-  named by ``resultVar``. Every subsequent CMake run will re-use this cached
-  value rather than performing the check again, even if the ``code`` changes.
+  named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+  value rather than performing the check again, even if the ``<code>`` changes.
   In order to force the check to be re-evaluated, the variable named by
-  ``resultVar`` must be manually removed from the cache.
+  ``<resultVar>`` must be manually removed from the cache.
 
 #]=======================================================================]
 
@@ -131,4 +132,3 @@
     endif()
   endif()
 endmacro()
-
diff --git a/Modules/CheckCSourceRuns.cmake b/Modules/CheckCSourceRuns.cmake
index 7eb050c..e682b29 100644
--- a/Modules/CheckCSourceRuns.cmake
+++ b/Modules/CheckCSourceRuns.cmake
@@ -10,16 +10,16 @@
 
 .. command:: check_c_source_runs
 
-  ::
+  .. code-block:: cmake
 
-    check_c_source_runs(code resultVar)
+    check_c_source_runs(<code> <resultVar>)
 
-  Check that the source supplied in ``code`` can be compiled as a C source
-  file, linked as an executable and then run. The ``code`` must contain at
-  least a ``main()`` function. If the code could be built and run successfully,
-  the internal cache variable specified by ``resultVar`` will be set to 1,
-  otherwise it will be set to an value that evaluates to boolean false (e.g.
-  an empty string or an error message).
+  Check that the source supplied in ``<code>`` can be compiled as a C source
+  file, linked as an executable and then run. The ``<code>`` must contain at
+  least a ``main()`` function. If the ``<code>`` could be built and run
+  successfully, the internal cache variable specified by ``<resultVar>`` will
+  be set to 1, otherwise it will be set to an value that evaluates to boolean
+  false (e.g. an empty string or an error message).
 
   The underlying check is performed by the :command:`try_run` command. The
   compile and link commands can be influenced by setting any of the following
@@ -34,7 +34,7 @@
   ``CMAKE_REQUIRED_DEFINITIONS``
     A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
     ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
-    ``resultVar`` will also be added automatically.
+    ``<resultVar>`` will also be added automatically.
 
   ``CMAKE_REQUIRED_INCLUDES``
     A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
@@ -53,10 +53,10 @@
     associated with the check will be suppressed.
 
   The check is only performed once, with the result cached in the variable
-  named by ``resultVar``. Every subsequent CMake run will re-use this cached
-  value rather than performing the check again, even if the ``code`` changes.
+  named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+  value rather than performing the check again, even if the ``<code>`` changes.
   In order to force the check to be re-evaluated, the variable named by
-  ``resultVar`` must be manually removed from the cache.
+  ``<resultVar>`` must be manually removed from the cache.
 
 #]=======================================================================]
 
@@ -132,4 +132,3 @@
     endif()
   endif()
 endmacro()
-
diff --git a/Modules/CheckCXXCompilerFlag.cmake b/Modules/CheckCXXCompilerFlag.cmake
index dd60835..a01e142 100644
--- a/Modules/CheckCXXCompilerFlag.cmake
+++ b/Modules/CheckCXXCompilerFlag.cmake
@@ -9,7 +9,7 @@
 
 .. command:: check_cxx_compiler_flag
 
-  ::
+  .. code-block:: cmake
 
     check_cxx_compiler_flag(<flag> <var>)
 
@@ -61,4 +61,3 @@
 
    set (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
 endmacro ()
-
diff --git a/Modules/CheckCXXSourceCompiles.cmake b/Modules/CheckCXXSourceCompiles.cmake
index ed8661b..f7ec8eb 100644
--- a/Modules/CheckCXXSourceCompiles.cmake
+++ b/Modules/CheckCXXSourceCompiles.cmake
@@ -9,15 +9,16 @@
 
 .. command:: check_cxx_source_compiles
 
-  ::
+  .. code-block:: cmake
 
-    check_cxx_source_compiles(code resultVar [FAIL_REGEX regex1 [regex2...]])
+    check_cxx_source_compiles(<code> <resultVar>
+                              [FAIL_REGEX <regex1> [<regex2>...]])
 
-  Check that the source supplied in ``code`` can be compiled as a C++ source
+  Check that the source supplied in ``<code>`` can be compiled as a C++ source
   file and linked as an executable (so it must contain at least a ``main()``
   function). The result will be stored in the internal cache variable specified
-  by ``resultVar``, with a boolean true value for success and boolean false for
-  failure. If ``FAIL_REGEX`` is provided, then failure is determined by
+  by ``<resultVar>``, with a boolean true value for success and boolean false
+  for failure. If ``FAIL_REGEX`` is provided, then failure is determined by
   checking if anything in the output matches any of the specified regular
   expressions.
 
@@ -34,7 +35,7 @@
   ``CMAKE_REQUIRED_DEFINITIONS``
     A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
     ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
-    ``resultVar`` will also be added automatically.
+    ``<resultVar>`` will also be added automatically.
 
   ``CMAKE_REQUIRED_INCLUDES``
     A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
@@ -53,10 +54,10 @@
     associated with the check will be suppressed.
 
   The check is only performed once, with the result cached in the variable
-  named by ``resultVar``. Every subsequent CMake run will re-use this cached
-  value rather than performing the check again, even if the ``code`` changes.
+  named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+  value rather than performing the check again, even if the ``<code>`` changes.
   In order to force the check to be re-evaluated, the variable named by
-  ``resultVar`` must be manually removed from the cache.
+  ``<resultVar>`` must be manually removed from the cache.
 
 #]=======================================================================]
 
@@ -132,4 +133,3 @@
     endif()
   endif()
 endmacro()
-
diff --git a/Modules/CheckCXXSourceRuns.cmake b/Modules/CheckCXXSourceRuns.cmake
index 83bf2f2..bdc2291 100644
--- a/Modules/CheckCXXSourceRuns.cmake
+++ b/Modules/CheckCXXSourceRuns.cmake
@@ -10,16 +10,16 @@
 
 .. command:: check_cxx_source_runs
 
-  ::
+  .. code-block:: cmake
 
-    check_cxx_source_runs(code resultVar)
+    check_cxx_source_runs(<code> <resultVar>)
 
-  Check that the source supplied in ``code`` can be compiled as a C++ source
-  file, linked as an executable and then run. The ``code`` must contain at
-  least a ``main()`` function. If the code could be built and run successfully,
-  the internal cache variable specified by ``resultVar`` will be set to 1,
-  otherwise it will be set to an value that evaluates to boolean false (e.g.
-  an empty string or an error message).
+  Check that the source supplied in ``<code>`` can be compiled as a C++ source
+  file, linked as an executable and then run. The ``<code>`` must contain at
+  least a ``main()`` function. If the ``<code>`` could be built and run
+  successfully, the internal cache variable specified by ``<resultVar>`` will
+  be set to 1, otherwise it will be set to an value that evaluates to boolean
+  false (e.g. an empty string or an error message).
 
   The underlying check is performed by the :command:`try_run` command. The
   compile and link commands can be influenced by setting any of the following
@@ -34,7 +34,7 @@
   ``CMAKE_REQUIRED_DEFINITIONS``
     A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
     ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
-    ``resultVar`` will also be added automatically.
+    ``<resultVar>`` will also be added automatically.
 
   ``CMAKE_REQUIRED_INCLUDES``
     A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
@@ -53,10 +53,10 @@
     associated with the check will be suppressed.
 
   The check is only performed once, with the result cached in the variable
-  named by ``resultVar``. Every subsequent CMake run will re-use this cached
-  value rather than performing the check again, even if the ``code`` changes.
+  named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+  value rather than performing the check again, even if the ``<code>`` changes.
   In order to force the check to be re-evaluated, the variable named by
-  ``resultVar`` must be manually removed from the cache.
+  ``<resultVar>`` must be manually removed from the cache.
 
 #]=======================================================================]
 
@@ -127,4 +127,3 @@
     endif()
   endif()
 endmacro()
-
diff --git a/Modules/CheckCXXSymbolExists.cmake b/Modules/CheckCXXSymbolExists.cmake
index 117a458..ce23ffd 100644
--- a/Modules/CheckCXXSymbolExists.cmake
+++ b/Modules/CheckCXXSymbolExists.cmake
@@ -7,10 +7,12 @@
 #
 # Check if a symbol exists as a function, variable, or macro in C++
 #
-# CHECK_CXX_SYMBOL_EXISTS(<symbol> <files> <variable>)
+# .. code-block:: cmake
 #
-# Check that the <symbol> is available after including given header
-# <files> and store the result in a <variable>.  Specify the list of
+#   CHECK_CXX_SYMBOL_EXISTS(<symbol> <files> <variable>)
+#
+# Check that the ``<symbol>`` is available after including given header
+# ``<files>`` and store the result in a ``<variable>``.  Specify the list of
 # files in one argument as a semicolon-separated list.
 # CHECK_CXX_SYMBOL_EXISTS() can be used to check in C++ files, as
 # opposed to CHECK_SYMBOL_EXISTS(), which works only for C.
@@ -24,13 +26,16 @@
 # The following variables may be set before calling this macro to modify
 # the way the check is run:
 #
-# ::
-#
-#   CMAKE_REQUIRED_FLAGS = string of compile command line flags
-#   CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
-#   CMAKE_REQUIRED_INCLUDES = list of include directories
-#   CMAKE_REQUIRED_LIBRARIES = list of libraries to link
-#   CMAKE_REQUIRED_QUIET = execute quietly without messages
+# ``CMAKE_REQUIRED_FLAGS``
+#    string of compile command line flags
+# ``CMAKE_REQUIRED_DEFINITIONS``
+#    list of macros to define (-DFOO=bar)
+# ``CMAKE_REQUIRED_INCLUDES``
+#    list of include directories
+# ``CMAKE_REQUIRED_LIBRARIES``
+#    list of libraries to link
+# ``CMAKE_REQUIRED_QUIET``
+#    execute quietly without messages
 
 include_guard(GLOBAL)
 include(CheckSymbolExists)
diff --git a/Modules/CheckFortranCompilerFlag.cmake b/Modules/CheckFortranCompilerFlag.cmake
index 2cb2532..299cd8c 100644
--- a/Modules/CheckFortranCompilerFlag.cmake
+++ b/Modules/CheckFortranCompilerFlag.cmake
@@ -9,7 +9,7 @@
 
 .. command:: check_fortran_compiler_flag
 
-  ::
+  .. code-block:: cmake
 
     check_fortran_compiler_flag(<flag> <var>)
 
diff --git a/Modules/CheckFortranFunctionExists.cmake b/Modules/CheckFortranFunctionExists.cmake
index f3ced93..fbfa061 100644
--- a/Modules/CheckFortranFunctionExists.cmake
+++ b/Modules/CheckFortranFunctionExists.cmake
@@ -5,24 +5,24 @@
 # CheckFortranFunctionExists
 # --------------------------
 #
-# macro which checks if the Fortran function exists
+# :command:`Macro <macro>` which checks if a Fortran function exists.
 #
-# CHECK_FORTRAN_FUNCTION_EXISTS(FUNCTION VARIABLE)
+# .. code-block:: cmake
 #
-# ::
+#   CHECK_FORTRAN_FUNCTION_EXISTS(<function> <result>)
 #
-#   FUNCTION - the name of the Fortran function
-#   VARIABLE - variable to store the result
-#              Will be created as an internal cache variable.
+# where
 #
-#
+# ``<function>``
+#   the name of the Fortran function
+# ``<result>``
+#   variable to store the result; will be created as an internal cache variable.
 #
 # The following variables may be set before calling this macro to modify
 # the way the check is run:
 #
-# ::
-#
-#   CMAKE_REQUIRED_LIBRARIES = list of libraries to link
+# ``CMAKE_REQUIRED_LIBRARIES``
+#   list of libraries to link
 
 include_guard(GLOBAL)
 
diff --git a/Modules/CheckFortranSourceCompiles.cmake b/Modules/CheckFortranSourceCompiles.cmake
index d2b0cca..977b7b4 100644
--- a/Modules/CheckFortranSourceCompiles.cmake
+++ b/Modules/CheckFortranSourceCompiles.cmake
@@ -9,23 +9,24 @@
 
 .. command:: check_fortran_source_compiles
 
-  ::
+  .. code-block:: cmake
 
-    check_fortran_source_compiles(code resultVar
-        [FAIL_REGEX regex1 [regex2...]]
-        [SRC_EXT ext]
+    check_fortran_source_compiles(<code> <resultVar>
+        [FAIL_REGEX <regex>...]
+        [SRC_EXT <extension>]
     )
 
-  Check that the source supplied in ``code`` can be compiled as a Fortran
+  Checks that the source supplied in ``<code>`` can be compiled as a Fortran
   source file and linked as an executable (so it must contain at least a
   ``PROGRAM`` entry point). The result will be stored in the internal cache
-  variable specified by ``resultVar``, with a boolean true value for success
-  and boolean false for failure. If ``FAIL_REGEX`` is provided, then failure is
-  determined by checking if anything in the output matches any of the specified
-  regular expressions.
+  variable ``<resultVar>``, with a boolean true value for success and boolean
+  false for failure.
+
+  If ``FAIL_REGEX`` is provided, then failure is determined by checking
+  if anything in the output matches any of the specified regular expressions.
 
   By default, the test source file will be given a ``.F`` file extension. The
-  ``SRC_EXT`` option can be used to override this with ``.ext`` instead.
+  ``SRC_EXT`` option can be used to override this with ``.<extension>`` instead.
 
   The underlying check is performed by the :command:`try_compile` command. The
   compile and link commands can be influenced by setting any of the following
@@ -40,7 +41,7 @@
   ``CMAKE_REQUIRED_DEFINITIONS``
     A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
     ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
-    ``resultVar`` will also be added automatically.
+    ``<resultVar>`` will also be added automatically.
 
   ``CMAKE_REQUIRED_INCLUDES``
     A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
@@ -59,10 +60,10 @@
     associated with the check will be suppressed.
 
   The check is only performed once, with the result cached in the variable
-  named by ``resultVar``. Every subsequent CMake run will re-use this cached
-  value rather than performing the check again, even if the ``code`` changes.
+  named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+  value rather than performing the check again, even if the ``<code>`` changes.
   In order to force the check to be re-evaluated, the variable named by
-  ``resultVar`` must be manually removed from the cache.
+  ``<resultVar>`` must be manually removed from the cache.
 
 #]=======================================================================]
 
diff --git a/Modules/CheckFunctionExists.cmake b/Modules/CheckFunctionExists.cmake
index d00aa8a..45f7a6b 100644
--- a/Modules/CheckFunctionExists.cmake
+++ b/Modules/CheckFunctionExists.cmake
@@ -5,24 +5,29 @@
 # CheckFunctionExists
 # -------------------
 #
-# Check if a C function can be linked::
+# Check if a C function can be linked
+#
+# .. code-block:: cmake
 #
 #   check_function_exists(<function> <variable>)
 #
-# Check that the ``<function>`` is provided by libraries on the system and store
-# the result in a ``<variable>``. ``<variable>`` will be created as an internal
+# Checks that the ``<function>`` is provided by libraries on the system and store
+# the result in a ``<variable>``, which will be created as an internal
 # cache variable.
 #
 # The following variables may be set before calling this macro to modify the
 # way the check is run:
 #
-# ::
-#
-#   CMAKE_REQUIRED_FLAGS = string of compile command line flags
-#   CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
-#   CMAKE_REQUIRED_INCLUDES = list of include directories
-#   CMAKE_REQUIRED_LIBRARIES = list of libraries to link
-#   CMAKE_REQUIRED_QUIET = execute quietly without messages
+# ``CMAKE_REQUIRED_FLAGS``
+#   string of compile command line flags
+# ``CMAKE_REQUIRED_DEFINITIONS``
+#   list of macros to define (-DFOO=bar)
+# ``CMAKE_REQUIRED_INCLUDES``
+#   list of include directories
+# ``CMAKE_REQUIRED_LIBRARIES``
+#   list of libraries to link
+# ``CMAKE_REQUIRED_QUIET``
+#   execute quietly without messages
 #
 # .. note::
 #
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index f987d2d..eb4f9fa 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -16,7 +16,9 @@
 
   The ``ExternalProject_Add()`` function creates a custom target to drive
   download, update/patch, configure, build, install and test steps of an
-  external project::
+  external project:
+
+  .. code-block:: cmake
 
     ExternalProject_Add(<name> [<option>...])
 
@@ -608,7 +610,9 @@
       appended to them by following them with as many ``COMMAND ...`` options
       as needed
       (:manual:`generator expressions <cmake-generator-expressions(7)>` are
-      supported). For example::
+      supported). For example:
+
+      .. code-block:: cmake
 
         ExternalProject_Add(example
           ... # Download options, etc.
@@ -627,7 +631,9 @@
 .. command:: ExternalProject_Get_Property
 
   The ``ExternalProject_Get_Property()`` function retrieves external project
-  target properties::
+  target properties:
+
+  .. code-block:: cmake
 
     ExternalProject_Get_Property(<name> <prop1> [<prop2>...])
 
@@ -655,7 +661,9 @@
 
   The ``ExternalProject_Add_Step()`` function specifies an additional custom
   step for an external project defined by an earlier call to
-  :command:`ExternalProject_Add`::
+  :command:`ExternalProject_Add`:
+
+  .. code-block:: cmake
 
     ExternalProject_Add_Step(<name> <step> [<option>...])
 
@@ -722,7 +730,9 @@
 
   The ``ExternalProject_Add_StepTargets()`` function generates targets for the
   steps listed. The name of each created target will be of the form
-  ``<name>-<step>``::
+  ``<name>-<step>``:
+
+  .. code-block:: cmake
 
     ExternalProject_Add_StepTargets(<name> [NO_DEPENDS] <step1> [<step2>...])
 
@@ -773,7 +783,9 @@
   The ``ExternalProject_Add_StepDependencies()`` function can be used to add
   dependencies to a step. The dependencies added must be targets CMake already
   knows about (these can be ordinary executable or library targets, custom
-  targets or even step targets of another external project)::
+  targets or even step targets of another external project):
+
+  .. code-block:: cmake
 
     ExternalProject_Add_StepDependencies(<name> <step> <target1> [<target2>...])
 
diff --git a/Modules/FindLibinput.cmake b/Modules/FindLibinput.cmake
index df66cff..c1fe455 100644
--- a/Modules/FindLibinput.cmake
+++ b/Modules/FindLibinput.cmake
@@ -26,7 +26,7 @@
   the libraries to link against to use libinput.
 ``Libinput_INCLUDE_DIRS``
   where to find the libinput headers.
-``Libinput_DEFINITIONS``
+``Libinput_COMPILE_OPTIONS``
   this should be passed to target_compile_options(), if the
   target is not used for linking
 
@@ -38,7 +38,7 @@
 find_package(PkgConfig QUIET)
 pkg_check_modules(PKG_Libinput QUIET libinput)
 
-set(Libinput_DEFINITIONS ${PKG_Libinput_CFLAGS_OTHER})
+set(Libinput_COMPILE_OPTIONS ${PKG_Libinput_CFLAGS_OTHER})
 set(Libinput_VERSION ${PKG_Libinput_VERSION})
 
 find_path(Libinput_INCLUDE_DIR
@@ -69,7 +69,7 @@
   add_library(Libinput::Libinput UNKNOWN IMPORTED)
   set_target_properties(Libinput::Libinput PROPERTIES
     IMPORTED_LOCATION "${Libinput_LIBRARY}"
-    INTERFACE_COMPILE_OPTIONS "${Libinput_DEFINITIONS}"
+    INTERFACE_COMPILE_OPTIONS "${Libinput_COMPILE_OPTIONS}"
     INTERFACE_INCLUDE_DIRECTORIES "${Libinput_INCLUDE_DIR}"
   )
 endif()
@@ -79,5 +79,4 @@
 if(Libinput_FOUND)
   set(Libinput_LIBRARIES ${Libinput_LIBRARY})
   set(Libinput_INCLUDE_DIRS ${Libinput_INCLUDE_DIR})
-  set(Libinput_VERSION_STRING ${Libinput_VERSION})
 endif()
diff --git a/Modules/FindPkgConfig.cmake b/Modules/FindPkgConfig.cmake
index a96df99..a45aef2 100644
--- a/Modules/FindPkgConfig.cmake
+++ b/Modules/FindPkgConfig.cmake
@@ -9,12 +9,14 @@
 
 Finds the ``pkg-config`` executable and adds the :command:`pkg_get_variable`,
 :command:`pkg_check_modules` and :command:`pkg_search_module` commands. The
-following variables will also be set::
+following variables will also be set:
 
-  PKG_CONFIG_FOUND          ... if pkg-config executable was found
-  PKG_CONFIG_EXECUTABLE     ... pathname of the pkg-config program
-  PKG_CONFIG_VERSION_STRING ... the version of the pkg-config program found
-                                (since CMake 2.8.8)
+``PKG_CONFIG_FOUND``
+  if pkg-config executable was found
+``PKG_CONFIG_EXECUTABLE``
+  pathname of the pkg-config program
+``PKG_CONFIG_VERSION_STRING``
+  version of pkg-config (since CMake 2.8.8)
 
 #]========================================]
 
@@ -86,7 +88,9 @@
 .. command:: pkg_get_variable
 
   Retrieves the value of a pkg-config variable ``varName`` and stores it in the
-  result variable ``resultVar`` in the calling scope. ::
+  result variable ``resultVar`` in the calling scope.
+
+  .. code-block:: cmake
 
     pkg_get_variable(<resultVar> <moduleName> <varName>)
 
@@ -512,7 +516,9 @@
 .. command:: pkg_check_modules
 
   Checks for all the given modules, setting a variety of result variables in
-  the calling scope. ::
+  the calling scope.
+
+  .. code-block:: cmake
 
     pkg_check_modules(<prefix>
                       [REQUIRED] [QUIET]
@@ -540,27 +546,39 @@
   :command:`target_link_libraries`. The ``GLOBAL`` argument will make the
   imported target available in global scope.
 
-  Each ``<moduleSpec>`` must be in one of the following formats::
+  Each ``<moduleSpec>`` can be either a bare module name or it can be a
+  module name with a version constraint (operators ``=``, ``<``, ``>``,
+  ``<=`` and ``>=`` are supported).  The following are examples for a module
+  named ``foo`` with various constraints:
 
-    {moduleName}            ... matches any version
-    {moduleName}>={version} ... at least version <version> is required
-    {moduleName}={version}  ... exactly version <version> is required
-    {moduleName}<={version} ... modules must not be newer than <version>
+  - ``foo`` matches any version.
+  - ``foo<2`` only matches versions before 2.
+  - ``foo>=3.1`` matches any version from 3.1 or later.
+  - ``foo=1.2.3`` requires that foo must be exactly version 1.2.3.
 
-  The following variables may be set upon return.  Two sets of values exist,
-  one for the common case (``<XXX> = <prefix>``) and another for the
-  information ``pkg-config`` provides when it is called with the ``--static``
-  option (``<XXX> = <prefix>_STATIC``)::
+  The following variables may be set upon return.  Two sets of values exist:
+  One for the common case (``<XXX> = <prefix>``) and another for the
+  information ``pkg-config`` provides when called with the ``--static``
+  option (``<XXX> = <prefix>_STATIC``).
 
-    <XXX>_FOUND          ... set to 1 if module(s) exist
-    <XXX>_LIBRARIES      ... only the libraries (without the '-l')
-    <XXX>_LINK_LIBRARIES ... the libraries and their absolute paths
-    <XXX>_LIBRARY_DIRS   ... the paths of the libraries (without the '-L')
-    <XXX>_LDFLAGS        ... all required linker flags
-    <XXX>_LDFLAGS_OTHER  ... all other linker flags
-    <XXX>_INCLUDE_DIRS   ... the '-I' preprocessor flags (without the '-I')
-    <XXX>_CFLAGS         ... all required cflags
-    <XXX>_CFLAGS_OTHER   ... the other compiler flags
+  ``<XXX>_FOUND``
+    set to 1 if module(s) exist
+  ``<XXX>_LIBRARIES``
+    only the libraries (without the '-l')
+  ``<XXX>_LINK_LIBRARIES``
+    the libraries and their absolute paths
+  ``<XXX>_LIBRARY_DIRS``
+    the paths of the libraries (without the '-L')
+  ``<XXX>_LDFLAGS``
+    all required linker flags
+  ``<XXX>_LDFLAGS_OTHER``
+    all other linker flags
+  ``<XXX>_INCLUDE_DIRS``
+    the '-I' preprocessor flags (without the '-I')
+  ``<XXX>_CFLAGS``
+    all required cflags
+  ``<XXX>_CFLAGS_OTHER``
+    the other compiler flags
 
   All but ``<XXX>_FOUND`` may be a :ref:`;-list <CMake Language Lists>` if the
   associated variable returned from ``pkg-config`` has multiple values.
@@ -568,14 +586,18 @@
   There are some special variables whose prefix depends on the number of
   ``<moduleSpec>`` given.  When there is only one ``<moduleSpec>``,
   ``<YYY>`` will simply be ``<prefix>``, but if two or more ``<moduleSpec>``
-  items are given, ``<YYY>`` will be ``<prefix>_<moduleName>``::
+  items are given, ``<YYY>`` will be ``<prefix>_<moduleName>``.
 
-    <YYY>_VERSION    ... version of the module
-    <YYY>_PREFIX     ... prefix directory of the module
-    <YYY>_INCLUDEDIR ... include directory of the module
-    <YYY>_LIBDIR     ... lib directory of the module
+  ``<YYY>_VERSION``
+    version of the module
+  ``<YYY>_PREFIX``
+    prefix directory of the module
+  ``<YYY>_INCLUDEDIR``
+    include directory of the module
+  ``<YYY>_LIBDIR``
+    lib directory of the module
 
-  Examples
+  Examples:
 
   .. code-block:: cmake
 
@@ -635,7 +657,9 @@
 
   The behavior of this command is the same as :command:`pkg_check_modules`,
   except that rather than checking for all the specified modules, it searches
-  for just the first successful match. ::
+  for just the first successful match.
+
+  .. code-block:: cmake
 
     pkg_search_module(<prefix>
                       [REQUIRED] [QUIET]
@@ -644,7 +668,7 @@
                       [IMPORTED_TARGET [GLOBAL]]
                       <moduleSpec> [<moduleSpec>...])
 
-  Examples
+  Example:
 
   .. code-block:: cmake
 
diff --git a/README.rst b/README.rst
index 1e8561a..775463e 100644
--- a/README.rst
+++ b/README.rst
@@ -62,7 +62,7 @@
 choice. Once this has finished successfully, run ``make`` and
 ``make install``.  In summary::
 
- $ ./bootstrap && make && make install
+ $ ./bootstrap && make && sudo make install
 
 Windows
 ^^^^^^^
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index 1bc2632..6960b7f 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,5 +1,5 @@
 # CMake version number components.
 set(CMake_VERSION_MAJOR 3)
 set(CMake_VERSION_MINOR 13)
-set(CMake_VERSION_PATCH 20181012)
+set(CMake_VERSION_PATCH 20181019)
 #set(CMake_VERSION_RC 1)
diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx
index 6ad0e03..98872a5 100644
--- a/Source/CTest/cmCTestSubmitHandler.cxx
+++ b/Source/CTest/cmCTestSubmitHandler.cxx
@@ -467,6 +467,17 @@
           cmSystemTools::ComputeFileHash(local_file, cmCryptoHash::AlgoMD5);
       }
 
+      // Generate Done.xml right before it is submitted.
+      // The reason for this is two-fold:
+      // 1) It must be generated after some other part has been submitted
+      //    so we have a buildId to refer to in its contents.
+      // 2) By generating Done.xml here its timestamp will be as late as
+      //    possible. This gives us a more accurate record of how long the
+      //    entire build took to complete.
+      if (file == "Done.xml") {
+        this->CTest->GenerateDoneFile();
+      }
+
       if (!cmSystemTools::FileExists(local_file)) {
         cmCTestLog(this->CTest, ERROR_MESSAGE,
                    "   Cannot find file: " << local_file << std::endl);
@@ -1420,7 +1431,6 @@
 
   // Submit Done.xml last
   if (this->SubmitPart[cmCTest::PartDone]) {
-    this->CTest->GenerateDoneFile();
     files.push_back("Done.xml");
   }
 
diff --git a/Source/CTest/cmParseGTMCoverage.cxx b/Source/CTest/cmParseGTMCoverage.cxx
index 83dde3f..0722753 100644
--- a/Source/CTest/cmParseGTMCoverage.cxx
+++ b/Source/CTest/cmParseGTMCoverage.cxx
@@ -1,5 +1,6 @@
 #include "cmParseGTMCoverage.h"
 
+#include "cmAlgorithms.h"
 #include "cmCTest.h"
 #include "cmCTestCoverageHandler.h"
 #include "cmSystemTools.h"
@@ -86,6 +87,10 @@
     }
     // Find the full path to the file
     bool found = this->FindMumpsFile(routine, filepath);
+    if (!found && cmHasLiteralSuffix(routine, "%")) {
+      routine.erase(0, 1);
+      found = this->FindMumpsFile(routine, filepath);
+    }
     if (found) {
       int lineoffset = 0;
       if (this->FindFunctionInMumpsFile(filepath, function, lineoffset)) {
@@ -192,8 +197,8 @@
         done = true;
       }
     } else {
-      // all chars except ", (, and % get stored in the arg string
-      if (cur != '\"' && cur != '(' && cur != '%') {
+      // all chars except " and ( get stored in the arg string
+      if (cur != '\"' && cur != '(') {
         arg.append(1, line[pos]);
       }
     }
diff --git a/Source/cmCustomCommand.cxx b/Source/cmCustomCommand.cxx
index cfd260c..e87eb1e 100644
--- a/Source/cmCustomCommand.cxx
+++ b/Source/cmCustomCommand.cxx
@@ -4,16 +4,6 @@
 
 #include "cmMakefile.h"
 
-cmCustomCommand::cmCustomCommand()
-  : Backtrace()
-{
-  this->HaveComment = false;
-  this->EscapeOldStyle = true;
-  this->EscapeAllowMakeVars = false;
-  this->UsesTerminal = false;
-  this->CommandExpandLists = false;
-}
-
 cmCustomCommand::cmCustomCommand(cmMakefile const* mf,
                                  const std::vector<std::string>& outputs,
                                  const std::vector<std::string>& byproducts,
diff --git a/Source/cmCustomCommand.h b/Source/cmCustomCommand.h
index 9e82f25..d82160b 100644
--- a/Source/cmCustomCommand.h
+++ b/Source/cmCustomCommand.h
@@ -22,9 +22,6 @@
 class cmCustomCommand
 {
 public:
-  /** Default and copy constructors for STL containers.  */
-  cmCustomCommand();
-
   /** Main constructor specifies all information for the command.  */
   cmCustomCommand(cmMakefile const* mf,
                   const std::vector<std::string>& outputs,
@@ -103,11 +100,11 @@
   std::string Comment;
   std::string WorkingDirectory;
   std::string Depfile;
-  bool HaveComment;
-  bool EscapeAllowMakeVars;
-  bool EscapeOldStyle;
-  bool UsesTerminal;
-  bool CommandExpandLists;
+  bool HaveComment = false;
+  bool EscapeAllowMakeVars = false;
+  bool EscapeOldStyle = true;
+  bool UsesTerminal = false;
+  bool CommandExpandLists = false;
 };
 
 #endif
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index 80fb621..ea283c6 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -1730,7 +1730,7 @@
     this->GetType() == cmStateEnums::EXECUTABLE;
 }
 
-const char* cmGeneratorTarget::GetExportMacro() const
+const std::string* cmGeneratorTarget::GetExportMacro() const
 {
   // Define the symbol for targets that export symbols.
   if (this->GetType() == cmStateEnums::SHARED_LIBRARY ||
@@ -1743,7 +1743,7 @@
       in += "_EXPORTS";
       this->ExportMacro = cmSystemTools::MakeCidentifier(in);
     }
-    return this->ExportMacro.c_str();
+    return &this->ExportMacro;
   }
   return nullptr;
 }
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index b1daa53..98669c3 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -283,7 +283,7 @@
 
   /** Get the macro to define when building sources in this target.
       If no macro should be defined null is returned.  */
-  const char* GetExportMacro() const;
+  const std::string* GetExportMacro() const;
 
   /** Get the soname of the target.  Allowed only for a shared library.  */
   std::string GetSOName(const std::string& config) const;
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index e353a37..596bc6b 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -1814,9 +1814,9 @@
   BuildObjectListOrString ppDefs(this, true);
   this->AppendDefines(
     ppDefs, "CMAKE_INTDIR=\"$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\"");
-  if (const char* exportMacro = gtgt->GetExportMacro()) {
+  if (const std::string* exportMacro = gtgt->GetExportMacro()) {
     // Add the export symbol definition for shared library objects.
-    this->AppendDefines(ppDefs, exportMacro);
+    this->AppendDefines(ppDefs, exportMacro->c_str());
   }
   std::vector<std::string> targetDefines;
   if (!langForPreprocessor.empty()) {
diff --git a/Source/cmJsonObjectDictionary.h b/Source/cmJsonObjectDictionary.h
index a4d41f3..8a2b529 100644
--- a/Source/cmJsonObjectDictionary.h
+++ b/Source/cmJsonObjectDictionary.h
@@ -43,4 +43,3 @@
 static const std::string kCTEST_INFO = "ctestInfo";
 static const std::string kMINIMUM_CMAKE_VERSION = "minimumCMakeVersion";
 static const std::string kIS_GENERATOR_PROVIDED_KEY = "isGeneratorProvided";
-static const std::string kIS_INTERFACE_SOURCES_KEY = "isInterfaceSources";
diff --git a/Source/cmJsonObjects.cxx b/Source/cmJsonObjects.cxx
index a7db75f..4148894 100644
--- a/Source/cmJsonObjects.cxx
+++ b/Source/cmJsonObjects.cxx
@@ -150,8 +150,6 @@
   return array;
 }
 
-const std::string kInterfaceSourcesLanguageDataKey =
-  "INTERFACE_SOURCES_LD_KEY";
 class LanguageData
 {
 public:
@@ -184,12 +182,6 @@
   Defines = std::move(result);
 }
 
-struct FileGroupSources
-{
-  bool IsInterfaceSources;
-  std::vector<std::string> Files;
-};
-
 namespace std {
 
 template <>
@@ -217,35 +209,31 @@
 } // namespace std
 
 static Json::Value DumpSourceFileGroup(const LanguageData& data,
-                                       bool isInterfaceSource,
                                        const std::vector<std::string>& files,
                                        const std::string& baseDir)
 {
   Json::Value result = Json::objectValue;
 
-  if (isInterfaceSource) {
-    result[kIS_INTERFACE_SOURCES_KEY] = true;
-  }
   if (!data.Language.empty()) {
     result[kLANGUAGE_KEY] = data.Language;
-  }
-  if (!data.Flags.empty()) {
-    result[kCOMPILE_FLAGS_KEY] = data.Flags;
-  }
-  if (!data.IncludePathList.empty()) {
-    Json::Value includes = Json::arrayValue;
-    for (auto const& i : data.IncludePathList) {
-      Json::Value tmp = Json::objectValue;
-      tmp[kPATH_KEY] = i.first;
-      if (i.second) {
-        tmp[kIS_SYSTEM_KEY] = i.second;
-      }
-      includes.append(tmp);
+    if (!data.Flags.empty()) {
+      result[kCOMPILE_FLAGS_KEY] = data.Flags;
     }
-    result[kINCLUDE_PATH_KEY] = includes;
-  }
-  if (!data.Defines.empty()) {
-    result[kDEFINES_KEY] = fromStringList(data.Defines);
+    if (!data.IncludePathList.empty()) {
+      Json::Value includes = Json::arrayValue;
+      for (auto const& i : data.IncludePathList) {
+        Json::Value tmp = Json::objectValue;
+        tmp[kPATH_KEY] = i.first;
+        if (i.second) {
+          tmp[kIS_SYSTEM_KEY] = i.second;
+        }
+        includes.append(tmp);
+      }
+      result[kINCLUDE_PATH_KEY] = includes;
+    }
+    if (!data.Defines.empty()) {
+      result[kDEFINES_KEY] = fromStringList(data.Defines);
+    }
   }
 
   result[kIS_GENERATED_KEY] = data.IsGenerated;
@@ -260,19 +248,21 @@
   return result;
 }
 
-static void PopulateFileGroupData(
-  cmGeneratorTarget* target, bool isInterfaceSources,
-  const std::vector<cmSourceFile*>& files, const std::string& config,
-  const std::map<std::string, LanguageData>& languageDataMap,
-  std::unordered_map<LanguageData, FileGroupSources>& fileGroups)
+static Json::Value DumpSourceFilesList(
+  cmGeneratorTarget* target, const std::string& config,
+  const std::map<std::string, LanguageData>& languageDataMap)
 {
+  // Collect sourcefile groups:
+
+  std::vector<cmSourceFile*> files;
+  target->GetSourceFiles(files, config);
+
+  std::unordered_map<LanguageData, std::vector<std::string>> fileGroups;
   for (cmSourceFile* file : files) {
     LanguageData fileData;
     fileData.Language = file->GetLanguage();
-    if (!fileData.Language.empty() || isInterfaceSources) {
-      const LanguageData& ld = isInterfaceSources
-        ? languageDataMap.at(kInterfaceSourcesLanguageDataKey)
-        : languageDataMap.at(fileData.Language);
+    if (!fileData.Language.empty()) {
+      const LanguageData& ld = languageDataMap.at(fileData.Language);
       cmLocalGenerator* lg = target->GetLocalGenerator();
       cmGeneratorExpressionInterpreter genexInterpreter(lg, config, target,
                                                         fileData.Language);
@@ -300,14 +290,10 @@
         lg->AppendIncludeDirectories(includes, evaluatedIncludes, *file);
 
         for (const auto& include : includes) {
-          // INTERFACE_LIBRARY targets do not support the
-          // IsSystemIncludeDirectory call so just set it to false.
-          const bool isSystemInclude = isInterfaceSources
-            ? false
-            : target->IsSystemIncludeDirectory(include, config,
-                                               fileData.Language);
           fileData.IncludePathList.push_back(
-            std::make_pair(include, isSystemInclude));
+            std::make_pair(include,
+                           target->IsSystemIncludeDirectory(
+                             include, config, fileData.Language)));
         }
       }
 
@@ -336,71 +322,14 @@
     }
 
     fileData.IsGenerated = file->GetPropertyAsBool("GENERATED");
-    FileGroupSources& groupFileList = fileGroups[fileData];
-    groupFileList.IsInterfaceSources = isInterfaceSources;
-    groupFileList.Files.push_back(file->GetFullPath());
-  }
-}
-
-static Json::Value DumpSourceFilesList(
-  cmGeneratorTarget* target, const std::string& config,
-  const std::map<std::string, LanguageData>& languageDataMap)
-{
-  const cmStateEnums::TargetType type = target->GetType();
-  std::unordered_map<LanguageData, FileGroupSources> fileGroups;
-
-  // Collect sourcefile groups:
-
-  std::vector<cmSourceFile*> files;
-  if (type == cmStateEnums::INTERFACE_LIBRARY) {
-    // INTERFACE_LIBRARY targets do not create all the data structures
-    // associated with regular targets. If properties are explicitly specified
-    // for files in INTERFACE_SOURCES then we can get them through the Makefile
-    // rather than the target.
-    files = target->Makefile->GetSourceFiles();
-  } else {
-    target->GetSourceFiles(files, config);
-    PopulateFileGroupData(target, false /* isInterfaceSources */, files,
-                          config, languageDataMap, fileGroups);
-  }
-
-  // Collect interface sourcefile groups:
-
-  auto targetProp = target->Target->GetProperty("INTERFACE_SOURCES");
-  if (targetProp != nullptr) {
-    cmGeneratorExpressionInterpreter genexInterpreter(
-      target->GetLocalGenerator(), config, target);
-
-    auto evaluatedSources = cmsys::SystemTools::SplitString(
-      genexInterpreter.Evaluate(targetProp, "INTERFACE_SOURCES"), ';');
-
-    std::map<std::string, cmSourceFile*> filesMap;
-    for (auto file : files) {
-      filesMap[file->GetFullPath()] = file;
-    }
-
-    std::vector<cmSourceFile*> interfaceSourceFiles;
-    for (const std::string& interfaceSourceFilePath : evaluatedSources) {
-      auto entry = filesMap.find(interfaceSourceFilePath);
-      if (entry != filesMap.end()) {
-        // use what we have since it has all the associated properties
-        interfaceSourceFiles.push_back(entry->second);
-      } else {
-        interfaceSourceFiles.push_back(
-          new cmSourceFile(target->Makefile, interfaceSourceFilePath));
-      }
-    }
-
-    PopulateFileGroupData(target, true /* isInterfaceSources */,
-                          interfaceSourceFiles, config, languageDataMap,
-                          fileGroups);
+    std::vector<std::string>& groupFileList = fileGroups[fileData];
+    groupFileList.push_back(file->GetFullPath());
   }
 
   const std::string& baseDir = target->Makefile->GetCurrentSourceDirectory();
   Json::Value result = Json::arrayValue;
   for (auto const& it : fileGroups) {
-    Json::Value group = DumpSourceFileGroup(
-      it.first, it.second.IsInterfaceSources, it.second.Files, baseDir);
+    Json::Value group = DumpSourceFileGroup(it.first, it.second, baseDir);
     if (!group.isNull()) {
       result.append(group);
     }
@@ -517,58 +446,6 @@
   return result;
 }
 
-static void GetTargetProperty(
-  cmGeneratorExpressionInterpreter& genexInterpreter,
-  cmGeneratorTarget* target, const char* propertyName,
-  std::vector<std::string>& propertyValue)
-{
-  auto targetProp = target->Target->GetProperty(propertyName);
-  if (targetProp != nullptr) {
-    propertyValue = cmsys::SystemTools::SplitString(
-      genexInterpreter.Evaluate(targetProp, propertyName), ';');
-  }
-}
-
-static void CreateInterfaceSourcesEntry(
-  cmLocalGenerator* lg, cmGeneratorTarget* target, const std::string& config,
-  std::map<std::string, LanguageData>& languageDataMap)
-{
-  LanguageData& ld = languageDataMap[kInterfaceSourcesLanguageDataKey];
-  ld.Language = "";
-
-  cmGeneratorExpressionInterpreter genexInterpreter(lg, config, target);
-  std::vector<std::string> propertyValue;
-  GetTargetProperty(genexInterpreter, target, "INTERFACE_INCLUDE_DIRECTORIES",
-                    propertyValue);
-  for (std::string const& i : propertyValue) {
-    ld.IncludePathList.push_back(
-      std::make_pair(i, false /* isSystemInclude */));
-  }
-
-  propertyValue.clear();
-  GetTargetProperty(genexInterpreter, target,
-                    "INTERFACE_SYSTEM_INCLUDE_DIRECTORIES", propertyValue);
-  for (std::string const& i : propertyValue) {
-    ld.IncludePathList.push_back(
-      std::make_pair(i, true /* isSystemInclude */));
-  }
-
-  propertyValue.clear();
-  GetTargetProperty(genexInterpreter, target, "INTERFACE_COMPILE_OPTIONS",
-                    propertyValue);
-  for (const auto& s : propertyValue) {
-    ld.Flags += " " + s;
-  }
-
-  propertyValue.clear();
-  GetTargetProperty(genexInterpreter, target, "INTERFACE_COMPILE_DEFINITIONS",
-                    propertyValue);
-  if (!propertyValue.empty()) {
-    std::set<std::string> defines(propertyValue.begin(), propertyValue.end());
-    ld.SetDefines(defines);
-  }
-}
-
 static Json::Value DumpTarget(cmGeneratorTarget* target,
                               const std::string& config)
 {
@@ -598,6 +475,11 @@
   result[kTYPE_KEY] = typeName;
   result[kSOURCE_DIRECTORY_KEY] = lg->GetCurrentSourceDirectory();
   result[kBUILD_DIRECTORY_KEY] = lg->GetCurrentBinaryDirectory();
+
+  if (type == cmStateEnums::INTERFACE_LIBRARY) {
+    return result;
+  }
+
   result[kFULL_NAME_KEY] = target->GetFullName(config);
 
   if (target->Target->GetHaveInstallRule()) {
@@ -684,21 +566,8 @@
   }
 
   std::set<std::string> languages;
+  target->GetLanguages(languages, config);
   std::map<std::string, LanguageData> languageDataMap;
-  if (type == cmStateEnums::INTERFACE_LIBRARY) {
-    // INTERFACE_LIBRARY targets do not create all the data structures
-    // associated with regular targets. If properties are explicitly specified
-    // for files in INTERFACE_SOURCES then we can get them through the Makefile
-    // rather than the target.
-    for (auto file : target->Makefile->GetSourceFiles()) {
-      const std::string& language = file->GetLanguage();
-      if (!language.empty()) {
-        languages.insert(language);
-      }
-    }
-  } else {
-    target->GetLanguages(languages, config);
-  }
 
   for (std::string const& lang : languages) {
     LanguageData& ld = languageDataMap[lang];
@@ -715,11 +584,6 @@
     }
   }
 
-  if (target->Target->GetProperty("INTERFACE_SOURCES") != nullptr) {
-    // Create an entry in the languageDataMap for interface sources.
-    CreateInterfaceSourcesEntry(lg, target, config, languageDataMap);
-  }
-
   Json::Value sourceGroupsValue =
     DumpSourceFilesList(target, config, languageDataMap);
   if (!sourceGroupsValue.empty()) {
diff --git a/Source/cmListCommand.cxx b/Source/cmListCommand.cxx
index d7de2fa..b2acb90 100644
--- a/Source/cmListCommand.cxx
+++ b/Source/cmListCommand.cxx
@@ -346,8 +346,7 @@
   // expand the variable
   std::vector<std::string> varArgsExpanded;
   if (!this->GetList(varArgsExpanded, listName)) {
-    this->SetError("sub-command REMOVE_ITEM requires list to be present.");
-    return false;
+    return true;
   }
 
   std::vector<std::string> remove(args.begin() + 2, args.end());
@@ -376,8 +375,7 @@
   // expand the variable
   std::vector<std::string> varArgsExpanded;
   if (!this->GetList(varArgsExpanded, listName)) {
-    this->SetError("sub-command REVERSE requires list to be present.");
-    return false;
+    return true;
   }
 
   std::string value = cmJoin(cmReverseRange(varArgsExpanded), ";");
@@ -399,9 +397,7 @@
   // expand the variable
   std::vector<std::string> varArgsExpanded;
   if (!this->GetList(varArgsExpanded, listName)) {
-    this->SetError(
-      "sub-command REMOVE_DUPLICATES requires list to be present.");
-    return false;
+    return true;
   }
 
   std::vector<std::string>::const_iterator argsEnd =
@@ -1152,8 +1148,7 @@
   // expand the variable
   std::vector<std::string> varArgsExpanded;
   if (!this->GetList(varArgsExpanded, listName)) {
-    this->SetError("sub-command SORT requires list to be present.");
-    return false;
+    return true;
   }
 
   if ((sortCompare == cmStringSorter::Compare::STRING) &&
@@ -1230,13 +1225,17 @@
   const std::string& listName = args[1];
   // expand the variable
   std::vector<std::string> varArgsExpanded;
-  if (!this->GetList(varArgsExpanded, listName)) {
-    this->SetError("sub-command REMOVE_AT requires list to be present.");
-    return false;
-  }
-  // FIXME: Add policy to make non-existing lists an error like empty lists.
-  if (varArgsExpanded.empty()) {
-    this->SetError("REMOVE_AT given empty list");
+  if (!this->GetList(varArgsExpanded, listName) || varArgsExpanded.empty()) {
+    std::ostringstream str;
+    str << "index: ";
+    for (size_t i = 1; i < args.size(); ++i) {
+      str << args[i];
+      if (i != args.size() - 1) {
+        str << ", ";
+      }
+    }
+    str << " out of range (0, 0)";
+    this->SetError(str.str());
     return false;
   }
 
@@ -1289,14 +1288,6 @@
     return false;
   }
 
-  const std::string& listName = args[1];
-  // expand the variable
-  std::vector<std::string> varArgsExpanded;
-  if (!this->GetList(varArgsExpanded, listName)) {
-    this->SetError("sub-command FILTER requires list to be present.");
-    return false;
-  }
-
   const std::string& op = args[2];
   bool includeMatches;
   if (op == "INCLUDE") {
@@ -1308,6 +1299,13 @@
     return false;
   }
 
+  const std::string& listName = args[1];
+  // expand the variable
+  std::vector<std::string> varArgsExpanded;
+  if (!this->GetList(varArgsExpanded, listName)) {
+    return true;
+  }
+
   const std::string& mode = args[3];
   if (mode == "REGEX") {
     if (args.size() != 5) {
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 229f884..941d787 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -1253,8 +1253,8 @@
                                         std::set<std::string>& defines) const
 {
   // Add the export symbol definition for shared library objects.
-  if (const char* exportMacro = target->GetExportMacro()) {
-    this->AppendDefines(defines, exportMacro);
+  if (const std::string* exportMacro = target->GetExportMacro()) {
+    this->AppendDefines(defines, *exportMacro);
   }
 
   // Add preprocessor definitions for this target and configuration.
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 8428672..1da077e 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -735,8 +735,8 @@
   targetOptions.AddDefine(configDefine);
 
   // Add the export symbol definition for shared library objects.
-  if (const char* exportMacro = target->GetExportMacro()) {
-    targetOptions.AddDefine(exportMacro);
+  if (const std::string* exportMacro = target->GetExportMacro()) {
+    targetOptions.AddDefine(*exportMacro);
   }
 
   // The intermediate directory name consists of a directory for the
diff --git a/Source/cmServerProtocol.cxx b/Source/cmServerProtocol.cxx
index f75a5ce..f051fd9 100644
--- a/Source/cmServerProtocol.cxx
+++ b/Source/cmServerProtocol.cxx
@@ -164,12 +164,7 @@
 
 std::pair<int, int> cmServerProtocol1::ProtocolVersion() const
 {
-  // Revision history
-  // 1, 1 - Report backtraces in codemodel response
-  // 1, 2 - Add target install destinations to codemodel
-  // 1, 3 - Add a flag to target filegroups indicating whether or not the
-  // filegroup is for INTERFACE_SOURCES
-  return std::make_pair(1, 3);
+  return std::make_pair(1, 2);
 }
 
 static void setErrorMessage(std::string* errorMessage, const std::string& text)
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 2d39cbb..7383efd 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -45,24 +45,21 @@
   bool HasContent = false;
   std::string Tag;
 
-  Elem(std::ostream& s)
+  Elem(std::ostream& s, const char* tag)
     : S(s)
     , Indent(0)
+    , Tag(tag)
   {
+    this->StartElement();
   }
   Elem(const Elem&) = delete;
-  Elem(Elem& par)
-    : S(par.S)
-    , Indent(par.Indent + 1)
-  {
-    par.SetHasElements();
-  }
   Elem(Elem& par, const char* tag)
     : S(par.S)
     , Indent(par.Indent + 1)
+    , Tag(tag)
   {
     par.SetHasElements();
-    this->StartElement(tag);
+    this->StartElement();
   }
   void SetHasElements()
   {
@@ -72,12 +69,7 @@
     }
   }
   std::ostream& WriteString(const char* line);
-  Elem& StartElement(const std::string& tag)
-  {
-    this->Tag = tag;
-    this->WriteString("<") << tag;
-    return *this;
-  }
+  void StartElement() { this->WriteString("<") << this->Tag; }
   void Element(const char* tag, const std::string& val)
   {
     Elem(*this, tag).Content(val);
@@ -87,8 +79,6 @@
     this->S << " " << an << "=\"" << cmVS10EscapeAttr(av) << "\"";
     return *this;
   }
-  // This method for now assumes that this->Tag has been set, e.g. by calling
-  // StartElement().
   void Content(const std::string& val)
   {
     if (!this->HasContent) {
@@ -380,8 +370,7 @@
                   << this->GlobalGenerator->Encoding() << "\"?>"
                   << "\n";
   {
-    Elem e0(BuildFileStream);
-    e0.StartElement("Project");
+    Elem e0(BuildFileStream, "Project");
     e0.Attribute("DefaultTargets", "Build");
     e0.Attribute("ToolsVersion", this->GlobalGenerator->GetToolsVersion());
     e0.Attribute("xmlns",
@@ -922,8 +911,8 @@
         xamlType = "Page";
       }
 
-      Elem e2(e1);
-      this->WriteSource(e2, xamlType, oi);
+      Elem e2(e1, xamlType);
+      this->WriteSource(e2, oi);
       e2.SetHasElements();
       if (this->ProjectType == csproj && !this->InSourceBuild) {
         // add <Link> tag to written XAML source if necessary
@@ -1275,15 +1264,15 @@
   std::unique_ptr<Elem> spe2;
   if (this->ProjectType != csproj) {
     spe1 = cm::make_unique<Elem>(e0, "ItemGroup");
-    spe2 = cm::make_unique<Elem>(*spe1);
-    this->WriteSource(*spe2, "CustomBuild", source);
+    spe2 = cm::make_unique<Elem>(*spe1, "CustomBuild");
+    this->WriteSource(*spe2, source);
     spe2->SetHasElements();
   } else {
     Elem e1(e0, "ItemGroup");
-    Elem e2(e1);
+    Elem e2(e1, "None");
     std::string link;
     this->GetCSharpSourceLink(source, link);
-    this->WriteSource(e2, "None", source);
+    this->WriteSource(e2, source);
     e2.SetHasElements();
     if (!link.empty()) {
       e2.Element("Link", link);
@@ -1417,8 +1406,7 @@
        << this->GlobalGenerator->Encoding() << "\"?>"
        << "\n";
   {
-    Elem e0(fout);
-    e0.StartElement("Project");
+    Elem e0(fout, "Project");
     e0.Attribute("ToolsVersion", this->GlobalGenerator->GetToolsVersion());
     e0.Attribute("xmlns",
                  "http://schemas.microsoft.com/developer/msbuild/2003");
@@ -1569,8 +1557,8 @@
                                                         cmSourceFile const* sf)
 {
   std::string const& fileName = sf->GetFullPath();
-  Elem e2(e1);
-  this->WriteSource(e2, "ClInclude", sf);
+  Elem e2(e1, "ClInclude");
+  this->WriteSource(e2, sf);
   if (this->IsResxHeader(fileName)) {
     e2.Element("FileType", "CppForm");
   } else if (this->IsXamlHeader(fileName)) {
@@ -1738,8 +1726,8 @@
     }
   }
 
-  Elem e2(e1);
-  this->WriteSource(e2, tool, sf);
+  Elem e2(e1, tool);
+  this->WriteSource(e2, sf);
   if (toolHasSettings) {
     e2.SetHasElements();
 
@@ -1859,7 +1847,6 @@
 }
 
 void cmVisualStudio10TargetGenerator::WriteSource(Elem& e2,
-                                                  std::string const& tool,
                                                   cmSourceFile const* sf)
 {
   // Visual Studio tools append relative paths to the current dir, as in:
@@ -1895,11 +1882,10 @@
     }
   }
   ConvertToWindowsSlash(sourceFile);
-  e2.StartElement(tool);
   e2.Attribute("Include", sourceFile);
 
   ToolSource toolSource = { sf, forceRelative };
-  this->Tools[tool].push_back(toolSource);
+  this->Tools[e2.Tag].push_back(toolSource);
 }
 
 void cmVisualStudio10TargetGenerator::WriteAllSources(Elem& e0)
@@ -2003,8 +1989,8 @@
                           include_configs.begin(), include_configs.end(),
                           std::back_inserter(exclude_configs));
 
-      Elem e2(e1);
-      this->WriteSource(e2, tool, si.Source);
+      Elem e2(e1, tool);
+      this->WriteSource(e2, si.Source);
       if (si.Kind == cmGeneratorTarget::SourceKindObjectSource) {
         this->OutputSourceSpecificFlags(e2, si.Source);
       }
@@ -2580,8 +2566,9 @@
   configDefine += configName;
   configDefine += "\"";
   clOptions.AddDefine(configDefine);
-  if (const char* exportMacro = this->GeneratorTarget->GetExportMacro()) {
-    clOptions.AddDefine(exportMacro);
+  if (const std::string* exportMacro =
+        this->GeneratorTarget->GetExportMacro()) {
+    clOptions.AddDefine(*exportMacro);
   }
 
   if (this->MSTools) {
@@ -2877,8 +2864,9 @@
   configDefine += configName;
   configDefine += "\"";
   cudaOptions.AddDefine(configDefine);
-  if (const char* exportMacro = this->GeneratorTarget->GetExportMacro()) {
-    cudaOptions.AddDefine(exportMacro);
+  if (const std::string* exportMacro =
+        this->GeneratorTarget->GetExportMacro()) {
+    cudaOptions.AddDefine(*exportMacro);
   }
 
   // Get includes for this target
@@ -3882,15 +3870,13 @@
 void cmVisualStudio10TargetGenerator::WriteSDKReferences(Elem& e0)
 {
   std::vector<std::string> sdkReferences;
-  Elem e1(e0);
-  bool hasWrittenItemGroup = false;
+  std::unique_ptr<Elem> spe1;
   if (const char* vsSDKReferences =
         this->GeneratorTarget->GetProperty("VS_SDK_REFERENCES")) {
     cmSystemTools::ExpandListArgument(vsSDKReferences, sdkReferences);
-    e1.StartElement("ItemGroup");
-    hasWrittenItemGroup = true;
+    spe1 = cm::make_unique<Elem>(e0, "ItemGroup");
     for (std::string const& ri : sdkReferences) {
-      Elem(e1, "SDKReference").Attribute("Include", ri);
+      Elem(*spe1, "SDKReference").Attribute("Include", ri);
     }
   }
 
@@ -3906,19 +3892,20 @@
 
     if (desktopExtensionsVersion || mobileExtensionsVersion ||
         iotExtensionsVersion) {
-      if (!hasWrittenItemGroup) {
-        e1.StartElement("ItemGroup");
+      if (!spe1) {
+        spe1 = cm::make_unique<Elem>(e0, "ItemGroup");
       }
       if (desktopExtensionsVersion) {
-        this->WriteSingleSDKReference(e1, "WindowsDesktop",
+        this->WriteSingleSDKReference(*spe1, "WindowsDesktop",
                                       desktopExtensionsVersion);
       }
       if (mobileExtensionsVersion) {
-        this->WriteSingleSDKReference(e1, "WindowsMobile",
+        this->WriteSingleSDKReference(*spe1, "WindowsMobile",
                                       mobileExtensionsVersion);
       }
       if (iotExtensionsVersion) {
-        this->WriteSingleSDKReference(e1, "WindowsIoT", iotExtensionsVersion);
+        this->WriteSingleSDKReference(*spe1, "WindowsIoT",
+                                      iotExtensionsVersion);
       }
     }
   }
diff --git a/Source/cmVisualStudio10TargetGenerator.h b/Source/cmVisualStudio10TargetGenerator.h
index 0dc03b6..b17b5f8 100644
--- a/Source/cmVisualStudio10TargetGenerator.h
+++ b/Source/cmVisualStudio10TargetGenerator.h
@@ -63,7 +63,7 @@
   void WriteExtraSource(Elem& e1, cmSourceFile const* sf);
   void WriteNsightTegraConfigurationValues(Elem& e1,
                                            std::string const& config);
-  void WriteSource(Elem& e2, std::string const& tool, cmSourceFile const* sf);
+  void WriteSource(Elem& e2, cmSourceFile const* sf);
   void WriteExcludeFromBuild(Elem& e2,
                              std::vector<size_t> const& exclude_configs);
   void WriteAllSources(Elem& e0);
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 6614933..71928a9 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -2673,7 +2673,7 @@
     $<TARGET_FILE:ctest> -T Coverage --debug)
   set_tests_properties(CTestGTMCoverage PROPERTIES
       PASS_REGULAR_EXPRESSION
-      "Process file.*ZZCOVTST.m.*Total LOC:.*30.*Percentage Coverage: 80.00*"
+      "Process file.*ZZCOVTST.m.*Total LOC:.*32.*Percentage Coverage: 81.25*"
       ENVIRONMENT COVFILE=)
 
   configure_file(
@@ -2691,7 +2691,7 @@
     $<TARGET_FILE:ctest> -T Coverage --debug)
   set_tests_properties(CTestCacheCoverage PROPERTIES
       PASS_REGULAR_EXPRESSION
-      "Process file.*ZZCOVTST.m.*Total LOC:.*29.*Percentage Coverage: 86.21.*"
+      "Process file.*ZZCOVTST.m.*Total LOC:.*32.*Percentage Coverage: 87.50.*"
       ENVIRONMENT COVFILE=)
 
   # Adding a test case for Python Coverage
diff --git a/Tests/MumpsCoverage/VistA-FOIA/Packages/Uncategorized/ZZCOVTST.m b/Tests/MumpsCoverage/VistA-FOIA/Packages/Uncategorized/ZZCOVTST.m
index ee70682..5567c4e 100644
--- a/Tests/MumpsCoverage/VistA-FOIA/Packages/Uncategorized/ZZCOVTST.m
+++ b/Tests/MumpsCoverage/VistA-FOIA/Packages/Uncategorized/ZZCOVTST.m
@@ -12,6 +12,9 @@
  ; This line not executable
  D T6^ZZCOVTST
  ;
+% ; a line to test for a problem where % was dropped
+ N Do,Re,Mi
+ S Do="A#"
 T1 ; This line should always be found
  N D
  S D=2
diff --git a/Tests/MumpsCoverage/ZZCOVTST.cmcov b/Tests/MumpsCoverage/ZZCOVTST.cmcov
index aec9336..12f2aa6 100644
--- a/Tests/MumpsCoverage/ZZCOVTST.cmcov
+++ b/Tests/MumpsCoverage/ZZCOVTST.cmcov
@@ -13,33 +13,36 @@
 ,12,1," Q"
 ,13,0," ; This line not executable"
 ,14,0," ;"
-,15,0,"T1 ; This line should always be found"
-,16,1," N D"
-,17,1," S D=2"
-,18,1," W !,D,!,""This is the second entry point"",!"
-,19,1," D T2^ZZCOVTST(D)"
-,20,1," Q"
-,21,0," ;"
-,22,0,"T2(EQ) ; This is debatable and only called with ENT^ROU notation"
-,23,1," N D"
-,24,1," S D=3"
-,25,1," W !,D,!,EQ,""This is the third entry point"",!"
-,26,1," D T3^ZZCOVTST"
-,27,1," Q"
-,28,0," ;"
-,29,1,"T3  N D S D=4 W D,!,""Fourth Entry point"",! Q"
-,30,0," ;"
-,31,0,"T4  N D S D=5 W ""Shouldn't be executed"""
-,32,0," W ""Lots to not do"""
-,33,0," Q"
-,34,1,"T5(EQ) ;this entry point is called with a $$ notation"
-,35,1," W ""THIS IS THE $$ NOTATION!"",!"
-,36,1," Q 0"
-,37,0,"T6 ; An entry point to show comments inside of ""DO"" blocks"
-,38,1," D"
-,39,1," . W ""This is executable code"",!"
-,40,0," . ; This is a comment inside the do block, not executable"
-,41,1," . S ZZBLAH=""blah"""
-,42,1," W ""Ending T6"",!"
-,43,0," ;"
-Totals for ZZCOVTST,,25,
+,15,1,"% ; a line to test for a problem where % was dropped"
+,16,1,"N Do,Re,Mi"
+,17,1,"S Do=""A#"""
+,18,0,"T1 ; This line should always be found"
+,19,1," N D"
+,20,1," S D=2"
+,21,1," W !,D,!,""This is the second entry point"",!"
+,22,1," D T2^ZZCOVTST(D)"
+,23,1," Q"
+,24,0," ;"
+,25,0,"T2(EQ) ; This is debatable and only called with ENT^ROU notation"
+,26,1," N D"
+,27,1," S D=3"
+,28,1," W !,D,!,EQ,""This is the third entry point"",!"
+,29,1," D T3^ZZCOVTST"
+,30,1," Q"
+,31,0," ;"
+,32,1,"T3  N D S D=4 W D,!,""Fourth Entry point"",! Q"
+,33,0," ;"
+,34,0,"T4  N D S D=5 W ""Shouldn't be executed"""
+,35,0," W ""Lots to not do"""
+,36,0," Q"
+,37,1,"T5(EQ) ;this entry point is called with a $$ notation"
+,38,1," W ""THIS IS THE $$ NOTATION!"",!"
+,39,1," Q 0"
+,40,0,"T6 ; An entry point to show comments inside of ""DO"" blocks"
+,41,1," D"
+,42,1," . W ""This is executable code"",!"
+,43,0," . ; This is a comment inside the do block, not executable"
+,44,1," . S ZZBLAH=""blah"""
+,45,1," W ""Ending T6"",!"
+,46,0," ;"
+Toals for ZZCOVTST,,28,
diff --git a/Tests/MumpsCoverage/ZZCOVTST.mcov b/Tests/MumpsCoverage/ZZCOVTST.mcov
index b2608d9..e1fa18c 100644
--- a/Tests/MumpsCoverage/ZZCOVTST.mcov
+++ b/Tests/MumpsCoverage/ZZCOVTST.mcov
@@ -9,6 +9,9 @@
 ^ZZCOVERAGE("ZZCOVTST","EN",4)="1:0:0:0:74"
 ^ZZCOVERAGE("ZZCOVTST","EN",5)="1:0:0:0:66"
 ^ZZCOVERAGE("ZZCOVTST","EN",6)="1:0:0:0:40"
+^ZZCOVERAGE("ZZCOVTST","%")="2:0:0:0:208"
+^ZZCOVERAGE("ZZCOVTST","%",1)="2:0:0:0:208"
+^ZZCOVERAGE("ZZCOVTST","%",2)="2:0:0:0:208"
 ^ZZCOVERAGE("ZZCOVTST","T1")="1:0:0:0:208"
 ^ZZCOVERAGE("ZZCOVTST","T1",1)="1:0:0:0:23"
 ^ZZCOVERAGE("ZZCOVTST","T1",2)="1:0:0:0:24"
diff --git a/Tests/RunCMake/Syntax/CMP0053-Dollar-NEW-stderr.txt b/Tests/RunCMake/Syntax/CMP0053-Dollar-NEW-stderr.txt
new file mode 100644
index 0000000..7f248ae
--- /dev/null
+++ b/Tests/RunCMake/Syntax/CMP0053-Dollar-NEW-stderr.txt
@@ -0,0 +1,2 @@
+^-->value<--
+-->value<--$
diff --git a/Tests/RunCMake/Syntax/CMP0053-Dollar-NEW.cmake b/Tests/RunCMake/Syntax/CMP0053-Dollar-NEW.cmake
new file mode 100644
index 0000000..b81fd56
--- /dev/null
+++ b/Tests/RunCMake/Syntax/CMP0053-Dollar-NEW.cmake
@@ -0,0 +1,6 @@
+cmake_policy(SET CMP0053 NEW)
+
+set($ value)
+set(dollar $)
+message("-->${${dollar}}<--")
+message("-->${$}<--")
diff --git a/Tests/RunCMake/list/FILTER-NotList-result.txt b/Tests/RunCMake/Syntax/CMP0053-Dollar-OLD-result.txt
similarity index 100%
copy from Tests/RunCMake/list/FILTER-NotList-result.txt
copy to Tests/RunCMake/Syntax/CMP0053-Dollar-OLD-result.txt
diff --git a/Tests/RunCMake/Syntax/CMP0053-Dollar-OLD-stderr.txt b/Tests/RunCMake/Syntax/CMP0053-Dollar-OLD-stderr.txt
new file mode 100644
index 0000000..aecd4d3
--- /dev/null
+++ b/Tests/RunCMake/Syntax/CMP0053-Dollar-OLD-stderr.txt
@@ -0,0 +1,24 @@
+^CMake Deprecation Warning at CMP0053-Dollar-OLD.cmake:1 \(cmake_policy\):
+  The OLD behavior for policy CMP0053 will be removed from a future version
+  of CMake.
+
+  The cmake-policies\(7\) manual explains that the OLD behaviors of all
+  policies are deprecated and that a policy should be set to OLD only under
+  specific short-term circumstances.  Projects should be ported to the NEW
+  behavior and not rely on setting a policy to OLD.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)
++
+-->value<--
+CMake Error at CMP0053-Dollar-OLD.cmake:6 \(message\):
+  Syntax error in cmake code at
+
+    .*CMP0053-Dollar-OLD.cmake:6
+
+  when parsing string
+
+    -->\${\$}<--
+
+  syntax error, unexpected \$, expecting } \(7\)
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/Syntax/CMP0053-Dollar-OLD.cmake b/Tests/RunCMake/Syntax/CMP0053-Dollar-OLD.cmake
new file mode 100644
index 0000000..647f464
--- /dev/null
+++ b/Tests/RunCMake/Syntax/CMP0053-Dollar-OLD.cmake
@@ -0,0 +1,6 @@
+cmake_policy(SET CMP0053 OLD)
+
+set($ value)
+set(dollar $)
+message("-->${${dollar}}<--")
+message("-->${$}<--")
diff --git a/Tests/RunCMake/Syntax/RunCMakeTest.cmake b/Tests/RunCMake/Syntax/RunCMakeTest.cmake
index a397620..8d74dc1 100644
--- a/Tests/RunCMake/Syntax/RunCMakeTest.cmake
+++ b/Tests/RunCMake/Syntax/RunCMakeTest.cmake
@@ -111,6 +111,8 @@
 run_cmake(CMP0053-NameWithCarriageReturnQuoted)
 run_cmake(CMP0053-NameWithEscapedSpacesQuoted)
 run_cmake(CMP0053-NameWithEscapedTabsQuoted)
+run_cmake(CMP0053-Dollar-OLD)
+run_cmake(CMP0053-Dollar-NEW)
 
 # Variable special types
 run_cmake(QueryCache)
diff --git a/Tests/RunCMake/list/EmptyRemoveAt0-stderr.txt b/Tests/RunCMake/list/EmptyRemoveAt0-stderr.txt
index b24a0ed..9368e88 100644
--- a/Tests/RunCMake/list/EmptyRemoveAt0-stderr.txt
+++ b/Tests/RunCMake/list/EmptyRemoveAt0-stderr.txt
@@ -1,4 +1,4 @@
 CMake Error at EmptyRemoveAt0.cmake:2 \(list\):
-  list REMOVE_AT given empty list
+  list index: mylist, 0 out of range \(0, 0\)
 Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/list/FILTER-NotList-stderr.txt b/Tests/RunCMake/list/FILTER-NotList-stderr.txt
deleted file mode 100644
index 159c28d..0000000
--- a/Tests/RunCMake/list/FILTER-NotList-stderr.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-^CMake Error at FILTER-NotList.cmake:2 \(list\):
-  list sub-command FILTER requires list to be present.
-Call Stack \(most recent call first\):
-  CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/list/FILTER-NotList.cmake b/Tests/RunCMake/list/FILTER-NotList.cmake
index 1e15635..bf09ec7 100644
--- a/Tests/RunCMake/list/FILTER-NotList.cmake
+++ b/Tests/RunCMake/list/FILTER-NotList.cmake
@@ -1,2 +1,6 @@
 unset(nosuchlist)
 list(FILTER nosuchlist EXCLUDE REGEX "^FILTER_THIS_.+")
+if (DEFINED nosuchlist)
+  message(FATAL_ERROR
+    "list(FILTER) created our list")
+endif ()
diff --git a/Tests/RunCMake/list/FILTER-NotList-result.txt b/Tests/RunCMake/list/REMOVE_AT-EmptyList-result.txt
similarity index 100%
rename from Tests/RunCMake/list/FILTER-NotList-result.txt
rename to Tests/RunCMake/list/REMOVE_AT-EmptyList-result.txt
diff --git a/Tests/RunCMake/list/REMOVE_AT-EmptyList-stderr.txt b/Tests/RunCMake/list/REMOVE_AT-EmptyList-stderr.txt
new file mode 100644
index 0000000..582b74b
--- /dev/null
+++ b/Tests/RunCMake/list/REMOVE_AT-EmptyList-stderr.txt
@@ -0,0 +1,4 @@
+^CMake Error at REMOVE_AT-EmptyList.cmake:2 \(list\):
+  list index: nosuchlist, 0 out of range \(0, 0\)
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/list/REMOVE_AT-EmptyList.cmake b/Tests/RunCMake/list/REMOVE_AT-EmptyList.cmake
new file mode 100644
index 0000000..ff0dde8
--- /dev/null
+++ b/Tests/RunCMake/list/REMOVE_AT-EmptyList.cmake
@@ -0,0 +1,6 @@
+set(nosuchlist "")
+list(REMOVE_AT nosuchlist 0)
+if (NOT DEFINED nosuchlist OR NOT nosuchlist STREQUAL "")
+  message(FATAL_ERROR
+    "list(REMOVE_AT) modified our list")
+endif ()
diff --git a/Tests/RunCMake/list/REMOVE_AT-NotList-stderr.txt b/Tests/RunCMake/list/REMOVE_AT-NotList-stderr.txt
index d6e8d85..563d865 100644
--- a/Tests/RunCMake/list/REMOVE_AT-NotList-stderr.txt
+++ b/Tests/RunCMake/list/REMOVE_AT-NotList-stderr.txt
@@ -1,4 +1,4 @@
 ^CMake Error at REMOVE_AT-NotList.cmake:2 \(list\):
-  list sub-command REMOVE_AT requires list to be present.
+  list index: nosuchlist, 0 out of range \(0, 0\)
 Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/list/REMOVE_AT-NotList.cmake b/Tests/RunCMake/list/REMOVE_AT-NotList.cmake
index 5266c7f..090df49 100644
--- a/Tests/RunCMake/list/REMOVE_AT-NotList.cmake
+++ b/Tests/RunCMake/list/REMOVE_AT-NotList.cmake
@@ -1,2 +1,6 @@
 unset(nosuchlist)
 list(REMOVE_AT nosuchlist 0)
+if (DEFINED nosuchlist)
+  message(FATAL_ERROR
+      "list(REMOVE_AT) created our list")
+endif ()
diff --git a/Tests/RunCMake/list/REMOVE_DUPLICATES-NotList-result.txt b/Tests/RunCMake/list/REMOVE_DUPLICATES-NotList-result.txt
deleted file mode 100644
index d00491f..0000000
--- a/Tests/RunCMake/list/REMOVE_DUPLICATES-NotList-result.txt
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/Tests/RunCMake/list/REMOVE_DUPLICATES-NotList-stderr.txt b/Tests/RunCMake/list/REMOVE_DUPLICATES-NotList-stderr.txt
deleted file mode 100644
index 96f3446..0000000
--- a/Tests/RunCMake/list/REMOVE_DUPLICATES-NotList-stderr.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-^CMake Error at REMOVE_DUPLICATES-NotList.cmake:2 \(list\):
-  list sub-command REMOVE_DUPLICATES requires list to be present.
-Call Stack \(most recent call first\):
-  CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/list/REMOVE_DUPLICATES-NotList.cmake b/Tests/RunCMake/list/REMOVE_DUPLICATES-NotList.cmake
index 218f227..b9f3999 100644
--- a/Tests/RunCMake/list/REMOVE_DUPLICATES-NotList.cmake
+++ b/Tests/RunCMake/list/REMOVE_DUPLICATES-NotList.cmake
@@ -1,2 +1,6 @@
 unset(nosuchlist)
 list(REMOVE_DUPLICATES nosuchlist)
+if (DEFINED nosuchlist)
+  message(FATAL_ERROR
+    "list(REMOVE_DUPLICATES) created our list")
+endif ()
diff --git a/Tests/RunCMake/list/REMOVE_ITEM-NotList-result.txt b/Tests/RunCMake/list/REMOVE_ITEM-NotList-result.txt
deleted file mode 100644
index d00491f..0000000
--- a/Tests/RunCMake/list/REMOVE_ITEM-NotList-result.txt
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/Tests/RunCMake/list/REMOVE_ITEM-NotList-stderr.txt b/Tests/RunCMake/list/REMOVE_ITEM-NotList-stderr.txt
deleted file mode 100644
index c32a4c0..0000000
--- a/Tests/RunCMake/list/REMOVE_ITEM-NotList-stderr.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-^CMake Error at REMOVE_ITEM-NotList.cmake:2 \(list\):
-  list sub-command REMOVE_ITEM requires list to be present.
-Call Stack \(most recent call first\):
-  CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/list/REMOVE_ITEM-NotList.cmake b/Tests/RunCMake/list/REMOVE_ITEM-NotList.cmake
index 079e7fb..0c66837 100644
--- a/Tests/RunCMake/list/REMOVE_ITEM-NotList.cmake
+++ b/Tests/RunCMake/list/REMOVE_ITEM-NotList.cmake
@@ -1,2 +1,6 @@
 unset(nosuchlist)
 list(REMOVE_ITEM nosuchlist alpha)
+if (DEFINED nosuchlist)
+  message(FATAL_ERROR
+    "list(REMOVE_ITEM) created our list")
+endif ()
diff --git a/Tests/RunCMake/list/REVERSE-NotList-result.txt b/Tests/RunCMake/list/REVERSE-NotList-result.txt
deleted file mode 100644
index d00491f..0000000
--- a/Tests/RunCMake/list/REVERSE-NotList-result.txt
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/Tests/RunCMake/list/REVERSE-NotList-stderr.txt b/Tests/RunCMake/list/REVERSE-NotList-stderr.txt
deleted file mode 100644
index e9dcc06..0000000
--- a/Tests/RunCMake/list/REVERSE-NotList-stderr.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-^CMake Error at REVERSE-NotList.cmake:2 \(list\):
-  list sub-command REVERSE requires list to be present.
-Call Stack \(most recent call first\):
-  CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/list/REVERSE-NotList.cmake b/Tests/RunCMake/list/REVERSE-NotList.cmake
index 977e2cc..7138329 100644
--- a/Tests/RunCMake/list/REVERSE-NotList.cmake
+++ b/Tests/RunCMake/list/REVERSE-NotList.cmake
@@ -1,2 +1,6 @@
 unset(nosuchlist)
 list(REVERSE nosuchlist)
+if (DEFINED nosuchlist)
+  message(FATAL_ERROR
+    "list(REVERSE) created our list")
+endif ()
diff --git a/Tests/RunCMake/list/RunCMakeTest.cmake b/Tests/RunCMake/list/RunCMakeTest.cmake
index a8a0b57..bf3d22d 100644
--- a/Tests/RunCMake/list/RunCMakeTest.cmake
+++ b/Tests/RunCMake/list/RunCMakeTest.cmake
@@ -22,6 +22,8 @@
 run_cmake(REVERSE-TooManyArguments)
 run_cmake(SUBLIST-TooManyArguments)
 
+run_cmake(REMOVE_AT-EmptyList)
+
 run_cmake(FILTER-NotList)
 run_cmake(REMOVE_AT-NotList)
 run_cmake(REMOVE_DUPLICATES-NotList)
diff --git a/Tests/RunCMake/list/SORT-NotList-result.txt b/Tests/RunCMake/list/SORT-NotList-result.txt
deleted file mode 100644
index d00491f..0000000
--- a/Tests/RunCMake/list/SORT-NotList-result.txt
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/Tests/RunCMake/list/SORT-NotList-stderr.txt b/Tests/RunCMake/list/SORT-NotList-stderr.txt
deleted file mode 100644
index 396c5b5..0000000
--- a/Tests/RunCMake/list/SORT-NotList-stderr.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-^CMake Error at SORT-NotList.cmake:2 \(list\):
-  list sub-command SORT requires list to be present.
-Call Stack \(most recent call first\):
-  CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/list/SORT-NotList.cmake b/Tests/RunCMake/list/SORT-NotList.cmake
index 8f48e10..6314f14 100644
--- a/Tests/RunCMake/list/SORT-NotList.cmake
+++ b/Tests/RunCMake/list/SORT-NotList.cmake
@@ -1,2 +1,6 @@
 unset(nosuchlist)
 list(SORT nosuchlist)
+if (DEFINED nosuchlist)
+  message(FATAL_ERROR
+    "list(SORT) created our list")
+endif ()
diff --git a/Utilities/Doxygen/CMakeLists.txt b/Utilities/Doxygen/CMakeLists.txt
index 6a90c84..2cdd767 100644
--- a/Utilities/Doxygen/CMakeLists.txt
+++ b/Utilities/Doxygen/CMakeLists.txt
@@ -3,7 +3,7 @@
 
 if(NOT CMake_SOURCE_DIR)
   set(CMakeDeveloperReference_STANDALONE 1)
-  cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
+  cmake_minimum_required(VERSION 3.1...3.12 FATAL_ERROR)
   get_filename_component(tmp "${CMAKE_CURRENT_SOURCE_DIR}" PATH)
   get_filename_component(CMake_SOURCE_DIR "${tmp}" PATH)
   include(${CMake_SOURCE_DIR}/Modules/CTestUseLaunchers.cmake)
diff --git a/Utilities/Release/create-cmake-release.cmake b/Utilities/Release/create-cmake-release.cmake
index 3af1b03..b3cc352 100644
--- a/Utilities/Release/create-cmake-release.cmake
+++ b/Utilities/Release/create-cmake-release.cmake
@@ -54,7 +54,7 @@
   -DCMAKE_INSTALL_PREFIX=\"\$inst/\" \\
   -DCMAKE_DOC_DIR=doc/cmake \\
   -DSPHINX_EXECUTABLE=\"${SPHINX_EXECUTABLE}\" \\
-  -DSPHINX_HTML=ON -DSPHINX_MAN=ON &&
+  -DSPHINX_HTML=ON -DSPHINX_MAN=ON -DSPHINX_QTHELP=ON &&
 make install &&
 cd .. &&
 tar czf \${name}.tar.gz \${name} ||
diff --git a/Utilities/Sphinx/CMakeLists.txt b/Utilities/Sphinx/CMakeLists.txt
index 1cbc463..15204d6 100644
--- a/Utilities/Sphinx/CMakeLists.txt
+++ b/Utilities/Sphinx/CMakeLists.txt
@@ -3,7 +3,7 @@
 
 if(NOT CMake_SOURCE_DIR)
   set(CMakeHelp_STANDALONE 1)
-  cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
+  cmake_minimum_required(VERSION 3.1...3.12 FATAL_ERROR)
   get_filename_component(tmp "${CMAKE_CURRENT_SOURCE_DIR}" PATH)
   get_filename_component(CMake_SOURCE_DIR "${tmp}" PATH)
   include(${CMake_SOURCE_DIR}/Modules/CTestUseLaunchers.cmake)
diff --git a/Utilities/Sphinx/cmake.py b/Utilities/Sphinx/cmake.py
index ebf44da..882cdc1 100644
--- a/Utilities/Sphinx/cmake.py
+++ b/Utilities/Sphinx/cmake.py
@@ -4,14 +4,55 @@
 import os
 import re
 
-# Monkey patch for pygments reporting an error when generator expressions are
-# used.
-# https://bitbucket.org/birkenfeld/pygments-main/issue/942/cmake-generator-expressions-not-handled
+# Override much of pygments' CMakeLexer.
+# We need to parse CMake syntax definitions, not CMake code.
+
+# For hard test cases that use much of the syntax below, see
+# - module/FindPkgConfig.html (with "glib-2.0>=2.10 gtk+-2.0" and similar)
+# - module/ExternalProject.html (with http:// https:// git@; also has command options -E --build)
+# - manual/cmake-buildsystem.7.html (with nested $<..>; relative and absolute paths, "::")
+
 from pygments.lexers import CMakeLexer
-from pygments.token import Name, Operator
+from pygments.token import Name, Operator, Punctuation, String, Text, Comment, Generic, Whitespace, Number
 from pygments.lexer import bygroups
-CMakeLexer.tokens["args"].append(('(\\$<)(.+?)(>)',
-                                  bygroups(Operator, Name.Variable, Operator)))
+
+# Notes on regular expressions below:
+# - [\.\+-] are needed for string constants like gtk+-2.0
+# - Unix paths are recognized by '/'; support for Windows paths may be added if needed
+# - (\\.) allows for \-escapes (used in manual/cmake-language.7)
+# - $<..$<..$>..> nested occurence in cmake-buildsystem
+
+CMakeLexer.tokens["root"] = [
+  (r'\b(\w+)([ \t]*)(\()', bygroups(Name.Function, Text, Name.Function), '#push'),     # fctn(
+  (r'\(', Name.Function, '#push'),
+  (r'\)', Name.Function, '#pop'),
+  (r'\[', Punctuation, '#push'),
+  (r'\]', Punctuation, '#pop'),
+  (r'[|;,.=*\-]', Punctuation),
+  (r'\\\\', Punctuation),                                   # used in commands/source_group
+  (r'[:]', Operator),
+  (r'[<>]=', Punctuation),                                  # used in FindPkgConfig.cmake
+  (r'\$<', Operator, '#push'),                              # $<...>
+  (r'<[^<|]+?>(\w*\.\.\.)?', Name.Variable),                # <expr>
+  (r'(\$\w*\{)(.+?)(\})', bygroups(Operator, Name.Tag, Operator)),   # ${..} $ENV{..}
+  (r'([A-Z]+\{)(.+?)(\})', bygroups(Operator, Name.Tag, Operator)),  # DATA{ ...}
+  (r'[a-z]+(@|(://))((\\.)|[\w.+-:/\\])+', Name.Attribute),          # URL, git@, ...
+  (r'/\w[\w\.\+-/\\]*', Name.Attribute),                    # absolute path
+  (r'/', Name.Attribute),
+  (r'\w[\w\.\+-]*/[\w.+-/\\]*', Name.Attribute),            # relative path
+  (r'[A-Z]((\\.)|[\w.+-])*[a-z]((\\.)|[\w.+-])*', Name.Builtin), # initial A-Z, contains a-z
+  (r'@?[A-Z][A-Z0-9_]*', Name.Constant),
+  (r'[a-z_]((\\;)|(\\ )|[\w.+-])*', Name.Builtin),
+  (r'[0-9][0-9\.]*', Number),
+  (r'(?s)"(\\"|[^"])*"', String),                           # "string"
+  (r'\.\.\.', Name.Variable),
+  (r'<', Operator, '#push'),                                # <..|..> is different from <expr>
+  (r'>', Operator, '#pop'),
+  (r'\n', Whitespace),
+  (r'[ \t]+', Whitespace),
+  (r'#.*\n', Comment),
+  #  (r'[^<>\])\}\|$"# \t\n]+', Name.Exception),            # fallback, for debugging only
+]
 
 # Monkey patch for sphinx generating invalid content for qcollectiongenerator
 # https://bitbucket.org/birkenfeld/sphinx/issue/1435/qthelp-builder-should-htmlescape-keywords
diff --git a/Utilities/Sphinx/colors.py b/Utilities/Sphinx/colors.py
new file mode 100644
index 0000000..f98a483
--- /dev/null
+++ b/Utilities/Sphinx/colors.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+
+from pygments.style import Style
+from pygments.token import Name, Comment, String, Number, Operator, Whitespace
+
+class CMakeTemplateStyle(Style):
+    """
+        for more token names, see pygments/styles.default
+    """
+
+    background_color = "#f8f8f8"
+    default_style = ""
+
+    styles = {
+        Whitespace:                "#bbbbbb",
+        Comment:                   "italic #408080",
+        Operator:                  "bold #000000",
+        String:                    "#217A21",
+        Number:                    "#105030",
+        Name.Builtin:              "#400080",          # anything lowercase
+        Name.Function:             "bold #1010A0",     # function
+        Name.Variable:             "#1080B0",          # <..>
+        Name.Tag:                  "#19177C",          # ${..}
+        Name.Constant:             "#6020E0",          # uppercase only
+        Name.Entity:               "italic #70A020",   # @..@
+        Name.Attribute:            "#906060",          # paths, URLs
+        Name.Label:                "#A0A000",          # anything left over
+        Name.Exception:            "bold #FF0000",     # for debugging only
+    }
diff --git a/Utilities/Sphinx/conf.py.in b/Utilities/Sphinx/conf.py.in
index f52ccd1..70ba080 100644
--- a/Utilities/Sphinx/conf.py.in
+++ b/Utilities/Sphinx/conf.py.in
@@ -15,6 +15,7 @@
 copyright = '@conf_copyright@'
 version = '@conf_version@' # feature version
 release = '@conf_release@' # full version string
+pygments_style = 'colors.CMakeTemplateStyle'
 
 primary_domain = 'cmake'
 highlight_language = 'none'