diff options
84 files changed, 3280 insertions, 904 deletions
diff --git a/Auxiliary/vim/cmake.vim.in b/Auxiliary/vim/cmake.vim.in index d7eff3e..77ad3d8 100644 --- a/Auxiliary/vim/cmake.vim.in +++ b/Auxiliary/vim/cmake.vim.in @@ -19,8 +19,10 @@ endif let s:keepcpo= &cpo set cpo&vim -syn region cmakeComment start="#" end="$" contains=cmakeTodo,cmakeLuaComment,@Spell -syn region cmakeLuaComment start="\[\z(=*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell +syn region cmakeBracketArgument start="\[\z(=\?\|=[0-9]*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell + +syn region cmakeComment start="#" end="$" contains=cmakeTodo,@Spell +syn region cmakeBracketComment start="#\[\z(=\?\|=[0-9]*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained syn region cmakeRegistry start="\[" end="]" contained oneline contains=cmakeTodo,cmakeEscaped @@ -33,7 +35,7 @@ syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmak syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo -syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeArguments,cmakeTodo +syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeCommandManuallyAdded,cmakeArguments,cmakeTodo syn case match @@ -75,6 +77,8 @@ syn keyword cmakeTodo \ TODO FIXME XXX \ contained +hi def link cmakeBracketArgument String +hi def link cmakeBracketComment Comment hi def link cmakeCommand Function hi def link cmakeCommandConditional Conditional hi def link cmakeCommandDeprecated WarningMsg @@ -84,7 +88,6 @@ hi def link cmakeEnvironment Special hi def link cmakeEscaped Special hi def link cmakeGeneratorExpression WarningMsg hi def link cmakeGeneratorExpressions Constant -hi def link cmakeLuaComment Comment hi def link cmakeModule Include hi def link cmakeProperty Constant hi def link cmakeRegistry Underlined @@ -95,6 +98,30 @@ hi def link cmakeVariable Identifier @KEYWORDS_HIGHLIGHT@ +" Manually added - difficult to parse out of documentation +syn case ignore + +syn keyword cmakeCommandManuallyAdded + \ configure_package_config_file write_basic_package_version_file + \ nextgroup=cmakeArguments + +syn case match + +syn keyword cmakeKWconfigure_package_config_file contained + \ INSTALL_DESTINATION PATH_VARS NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO INSTALL_PREFIX + +syn keyword cmakeKWconfigure_package_config_file_constants contained + \ AnyNewerVersion SameMajorVersion SameMinorVersion ExactVersion + +syn keyword cmakeKWwrite_basic_package_version_file contained + \ VERSION COMPATIBILITY + +hi def link cmakeCommandManuallyAdded Function + +hi def link cmakeKWconfigure_package_config_file ModeMsg +hi def link cmakeKWwrite_basic_package_version_file ModeMsg +hi def link cmakeKWconfigure_package_config_file_constants Constant + let b:current_syntax = "cmake" let &cpo = s:keepcpo 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 @@ while(<IN>) 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 @@ sub extract_upper 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 5c153c1..076b47f 100644 --- a/Auxiliary/vim/syntax/cmake.vim +++ b/Auxiliary/vim/syntax/cmake.vim @@ -1,13 +1,13 @@ " Vim syntax file " Program: CMake - Cross-Platform Makefile Generator -" Version: cmake version 3.10.20171031-gfd2e6 +" Version: cmake version 3.13.20181010-ga3598 " Language: CMake " Author: Andy Cedilnik <andy.cedilnik@kitware.com>, " Nicholas Hutchinson <nshutchinson@gmail.com>, " Patrick Boettcher <patrick.boettcher@posteo.de> " Maintainer: Dimitri Merejkowsky <d.merej@gmail.com> " Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com> -" Last Change: 2017 Oct 31 +" Last Change: 2018 Oct 18 " " Licence: The CMake license applies to this file. See " https://cmake.org/licensing @@ -19,8 +19,10 @@ endif let s:keepcpo= &cpo set cpo&vim -syn region cmakeComment start="#" end="$" contains=cmakeTodo,cmakeLuaComment,@Spell -syn region cmakeLuaComment start="\[\z(=*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell +syn region cmakeBracketArgument start="\[\z(=\?\|=[0-9]*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell + +syn region cmakeComment start="#" end="$" contains=cmakeTodo,@Spell +syn region cmakeBracketComment start="#\[\z(=\?\|=[0-9]*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained syn region cmakeRegistry start="\[" end="]" contained oneline contains=cmakeTodo,cmakeEscaped @@ -33,291 +35,2138 @@ syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmak syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo -syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeArguments,cmakeTodo +syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeCommandManuallyAdded,cmakeArguments,cmakeTodo 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_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 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_REMOTE_DIRECTORY DISABLED DISABLED_FEATURES ECLIPSE_EXTRA_NATURES ENABLED_FEATURES ENABLED_LANGUAGES ENABLE_EXPORTS ENVIRONMENT EXCLUDE_FROM_ALL EXCLUDE_FROM_DEFAULT_BUILD EXPORT_NAME 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_CONFIGURATIONS 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_LIBRARIES 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_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 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 STRINGS SUBDIRECTORIES SUFFIX SYMBOLIC TARGET_ARCHIVES_MAY_BE_SHARED_LIBS TARGET_MESSAGES TARGET_SUPPORTS_SHARED_LIBS 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_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_ENTRYPOINT VS_SHADER_FLAGS VS_SHADER_MODEL 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 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 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_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_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_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR CMAKE_CTEST_COMMAND CMAKE_CUDA_EXTENSIONS CMAKE_CUDA_HOST_COMPILER 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_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_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_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_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_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_NAME CMAKE_RANLIB CMAKE_ROOT 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_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_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_WINDOWS_TARGET_PLATFORM_VERSION CMAKE_WARN_DEPRECATED CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_WIN32_EXECUTABLE CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS CMAKE_XCODE_GENERATE_SCHEME CMAKE_XCODE_PLATFORM_TOOLSET CPACK_ABSOLUTE_DESTINATION_FILES CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CPACK_INCLUDE_TOPLEVEL_DIRECTORY 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_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_VERSION PROJECT_BINARY_DIR PROJECT_DESCRIPTION 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 - \ ALGO 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 syn keyword cmakeKWadd_compile_options contained \ 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_ 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 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 - \ 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 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 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 CONTENT COPY CR 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 PATTERN PROCESS READ REGEX RELATIVE RELATIVE_PATH RELEASE REMOVE REMOVE_RECURSE RENAME REQUIRED RESULT_VARIABLE SHOW_PROGRESS SSL STATUS STRINGS TIMESTAMP TLS_CAINFO TLS_VERIFY 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_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS 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_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS 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 - \ 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_POLICY_SCOPE NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OPTIONAL_COMPONENTS OS 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_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS 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_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS 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 + \ DEFINITION + \ DIRECTORY + \ INHERITED syn keyword cmakeKWget_filename_component contained - \ ABSOLUTE ARG_VAR BASE_DIR CACHE 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 CACHE 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 - \ LOCATION VAR + \ INHERITED + \ LOCATION + \ VAR syn keyword cmakeKWget_target_property contained + \ INHERITED \ VAR syn keyword cmakeKWget_test_property contained + \ 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 - \ ARCHIVE BUNDLE CODE COMPONENT CONFIGURATIONS CVS 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_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 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 syn keyword cmakeKWlist contained - \ APPEND CACHE EXCLUDE FILTER FIND GET INCLUDE INSERT INTERNAL LENGTH LIST NOTES PARENT_SCOPE REGEX REMOVE_AT REMOVE_DUPLICATES REMOVE_ITEM REVERSE SORT + \ 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 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 - \ CMAKE_PROJECT_ DESCRIPTION LANGUAGES NAME NONE PROJECT VERSION _BINARY_DIR _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 CACHE 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 CACHE DIRECTORY GLOBAL 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 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 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 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 + \ 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 syn keyword cmakeKWtarget_link_libraries contained - \ ALIAS DAG DEBUG_CONFIGURATIONS IMPORTED IMPORTED_NO_SONAME INTERFACE INTERFACE_LINK_LIBRARIES LINK_FLAGS LINK_INTERFACE_LIBRARIES LINK_INTERFACE_LIBRARIES_DEBUG LINK_INTERFACE_MULTIPLICITY LINK_PRIVATE LINK_PUBLIC OLD OSX PRIVATE PUBLIC 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 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 - \ CACHE LD_LIBRARY_PATH PARENT_SCOPE + \ 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 @@ -326,28 +2175,231 @@ syn keyword cmakeKWwhile contained \ 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 MAP_IMPORTED_CONFIG_ PLATFORM_ID C_COMPILER_ID 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 PUBLIC COMPILING_CXX 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 LINK_ONLY INTERFACE_LINK_LIBRARIES INSTALL_INTERFACE BUILD_INTERFACE LOWER_CASE UPPER_CASE MAKE_C_IDENTIFIER TARGET_OBJECTS OBJECT_LIBRARY SHELL_PATH MSYS + \ 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_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library 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_libraries 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 @@ -356,6 +2408,8 @@ syn keyword cmakeTodo \ TODO FIXME XXX \ contained +hi def link cmakeBracketArgument String +hi def link cmakeBracketComment Comment hi def link cmakeCommand Function hi def link cmakeCommandConditional Conditional hi def link cmakeCommandDeprecated WarningMsg @@ -365,7 +2419,6 @@ hi def link cmakeEnvironment Special hi def link cmakeEscaped Special hi def link cmakeGeneratorExpression WarningMsg hi def link cmakeGeneratorExpressions Constant -hi def link cmakeLuaComment Comment hi def link cmakeModule Include hi def link cmakeProperty Constant hi def link cmakeRegistry Underlined @@ -375,6 +2428,7 @@ hi def link cmakeVariableValue Type hi def link cmakeVariable Identifier hi def link cmakeKWExternalProject ModeMsg +hi def link cmakeKWadd_compile_definitions ModeMsg hi def link cmakeKWadd_compile_options ModeMsg hi def link cmakeKWadd_custom_command ModeMsg hi def link cmakeKWadd_custom_target ModeMsg @@ -382,6 +2436,7 @@ hi def link cmakeKWadd_definitions ModeMsg hi def link cmakeKWadd_dependencies ModeMsg hi def link cmakeKWadd_executable ModeMsg hi def link cmakeKWadd_library ModeMsg +hi def link cmakeKWadd_link_options ModeMsg hi def link cmakeKWadd_subdirectory ModeMsg hi def link cmakeKWadd_test ModeMsg hi def link cmakeKWbuild_command ModeMsg @@ -433,6 +2488,7 @@ hi def link cmakeKWinstall ModeMsg hi def link cmakeKWinstall_files ModeMsg hi def link cmakeKWinstall_programs ModeMsg hi def link cmakeKWinstall_targets ModeMsg +hi def link cmakeKWlink_directories ModeMsg hi def link cmakeKWlist ModeMsg hi def link cmakeKWload_cache ModeMsg hi def link cmakeKWload_command ModeMsg @@ -458,7 +2514,9 @@ hi def link cmakeKWtarget_compile_definitions ModeMsg hi def link cmakeKWtarget_compile_features ModeMsg hi def link cmakeKWtarget_compile_options ModeMsg hi def link cmakeKWtarget_include_directories ModeMsg +hi def link cmakeKWtarget_link_directories ModeMsg hi def link cmakeKWtarget_link_libraries ModeMsg +hi def link cmakeKWtarget_link_options ModeMsg hi def link cmakeKWtarget_sources ModeMsg hi def link cmakeKWtry_compile ModeMsg hi def link cmakeKWtry_run ModeMsg @@ -469,6 +2527,30 @@ hi def link cmakeKWvariable_watch ModeMsg hi def link cmakeKWwhile ModeMsg hi def link cmakeKWwrite_file ModeMsg +" Manually added - difficult to parse out of documentation +syn case ignore + +syn keyword cmakeCommandManuallyAdded + \ configure_package_config_file write_basic_package_version_file + \ nextgroup=cmakeArguments + +syn case match + +syn keyword cmakeKWconfigure_package_config_file contained + \ INSTALL_DESTINATION PATH_VARS NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO INSTALL_PREFIX + +syn keyword cmakeKWconfigure_package_config_file_constants contained + \ AnyNewerVersion SameMajorVersion SameMinorVersion ExactVersion + +syn keyword cmakeKWwrite_basic_package_version_file contained + \ VERSION COMPATIBILITY + +hi def link cmakeCommandManuallyAdded Function + +hi def link cmakeKWconfigure_package_config_file ModeMsg +hi def link cmakeKWwrite_basic_package_version_file ModeMsg +hi def link cmakeKWconfigure_package_config_file_constants Constant + let b:current_syntax = "cmake" let &cpo = s:keepcpo diff --git a/Help/command/find_package.rst b/Help/command/find_package.rst index b486b79..3ad571c 100644 --- a/Help/command/find_package.rst +++ b/Help/command/find_package.rst @@ -1,7 +1,16 @@ find_package ------------ -Load settings for an external project. +.. only:: html + + .. contents:: + +Find an external project, and load its settings. + +.. _`basic signature`: + +Basic Signature and Module Mode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: @@ -15,7 +24,6 @@ will be set to indicate whether the package was found. When the package is found package-specific information is provided through variables and :ref:`Imported Targets` documented by the package itself. The ``QUIET`` option disables messages if the package cannot be found. The -``MODULE`` option disables the second signature documented below. The ``REQUIRED`` option stops processing with an error message if the package cannot be found. @@ -33,25 +41,32 @@ should be compatible (format is ``major[.minor[.patch[.tweak]]]``). The inside a find-module, the corresponding arguments are forwarded automatically from the outer call (including the ``EXACT`` flag for ``[version]``). Version support is currently provided only on a -package-by-package basis (details below). +package-by-package basis (see the `Version Selection`_ section below). -User code should generally look for packages using the above simple -signature. The remainder of this command documentation specifies the +See the :command:`cmake_policy` command documentation for discussion +of the ``NO_POLICY_SCOPE`` option. + +The command has two modes by which it searches for packages: "Module" +mode and "Config" mode. The above signature selects Module mode. +If no module is found the command falls back to Config mode, described +below. This fall back is disabled if the ``MODULE`` option is given. + +In Module mode, CMake searches for a file called ``Find<PackageName>.cmake`` +in the :variable:`CMAKE_MODULE_PATH` followed by the CMake installation. +If the file is found, it is read and processed by CMake. It is responsible +for finding the package, checking the version, and producing any needed +messages. Some find-modules provide limited or no support for versioning; +check the module documentation. + +Full Signature and Config Mode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +User code should generally look for packages using the above `basic +signature`_. The remainder of this command documentation specifies the full command signature and details of the search process. Project maintainers wishing to provide a package to be found by this command are encouraged to read on. -The command has two modes by which it searches for packages: "Module" -mode and "Config" mode. Module mode is available when the command is -invoked with the above reduced signature. CMake searches for a file -called ``Find<PackageName>.cmake`` in the :variable:`CMAKE_MODULE_PATH` -followed by the CMake installation. If the file is found, it is read -and processed by CMake. It is responsible for finding the package, -checking the version, and producing any needed messages. Many -find-modules provide limited or no support for versioning; check -the module documentation. If no module is found and the ``MODULE`` -option is not given the command proceeds to Config mode. - The complete Config mode command signature is:: find_package(<PackageName> [version] [EXACT] [QUIET] @@ -76,12 +91,12 @@ The complete Config mode command signature is:: ONLY_CMAKE_FIND_ROOT_PATH | NO_CMAKE_FIND_ROOT_PATH]) -The ``CONFIG`` option may be used to skip Module mode explicitly and -switch to Config mode. It is synonymous to using ``NO_MODULE``. Config -mode is also implied by use of options not specified in the reduced -signature. +The ``CONFIG`` option, the synonymous ``NO_MODULE`` option, or the use +of options not specified in the `basic signature`_ all enforce pure Config +mode. In pure Config mode, the command skips Module mode search and +proceeds at once with Config mode search. -Config mode attempts to locate a configuration file provided by the +Config mode search attempts to locate a configuration file provided by the package to be found. A cache entry called ``<PackageName>_DIR`` is created to hold the directory containing the file. By default the command searches for a package with the name ``<PackageName>``. If the ``NAMES`` option @@ -107,6 +122,13 @@ fatal error is generated and the configure step stops executing. If ``<PackageName>_DIR`` has been set to a directory not containing a configuration file CMake will ignore it and search from scratch. +Package maintainers providing CMake package configuration files are +encouraged to name and install them such that the `Search Procedure`_ +outlined below will find them without requiring use of additional options. + +Version Selection +^^^^^^^^^^^^^^^^^ + When the ``[version]`` argument is given Config mode will only find a version of the package that claims compatibility with the requested version (format is ``major[.minor[.patch[.tweak]]]``). If the ``EXACT`` @@ -187,17 +209,8 @@ For instance in order to select the highest version one can set:: before calling ``find_package``. -Config mode provides an elaborate interface and search procedure. -Much of the interface is provided for completeness and for use -internally by find-modules loaded by Module mode. Most user code -should simply call:: - - find_package(<PackageName> [major[.minor]] [EXACT] [REQUIRED|QUIET]) - -in order to find a package. Package maintainers providing CMake -package configuration files are encouraged to name and install them -such that the procedure outlined below will find them without -requiring use of additional options. +Search Procedure +^^^^^^^^^^^^^^^^ CMake constructs a set of possible installation prefixes for the package. Under each prefix several directories are searched for a @@ -339,6 +352,9 @@ enabled. Every non-REQUIRED ``find_package`` call can be disabled by setting the :variable:`CMAKE_DISABLE_FIND_PACKAGE_<PackageName>` variable to ``TRUE``. +Package File Interface Variables +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + When loading a find module or package configuration file ``find_package`` defines variables to provide information about the call arguments (and restores their original state before returning): @@ -377,6 +393,3 @@ configuration file to handle components in a way that makes sense for the package. The package configuration file may set ``<PackageName>_FOUND`` to false to tell ``find_package`` that component requirements are not satisfied. - -See the :command:`cmake_policy` command documentation for discussion -of the ``NO_POLICY_SCOPE`` option. diff --git a/Help/command/install.rst b/Help/command/install.rst index 08c5718..98074d0 100644 --- a/Help/command/install.rst +++ b/Help/command/install.rst @@ -442,10 +442,6 @@ example, the code will print a message during installation. -The contents of ``SCRIPT`` or ``CODE`` may use "generator expressions" with -the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` -manual for available expressions. - Installing Exports ^^^^^^^^^^^^^^^^^^ diff --git a/Help/command/list.rst b/Help/command/list.rst index ad2c428..2357a9b 100644 --- a/Help/command/list.rst +++ b/Help/command/list.rst @@ -256,20 +256,24 @@ Reverses the contents of the list in-place. list(SORT <list> [COMPARE <compare>] [CASE <case>] [ORDER <order>]) Sorts the list in-place alphabetically. -Use the option ``<compare>`` to select the compare type for sorting. -The ``<compare>`` option may be one of: +Use the ``COMPARE`` keyword to select the comparison method for sorting. +The ``<compare>`` option should be one of: -* ``STRING``: Sorts a list of strings alphabetically. -* ``FILE_BASENAME``: Sort a list of pathnames of files by their basenames. +* ``STRING``: Sorts a list of strings alphabetically. This is the + default behavior if the ``COMPARE`` option is not given. +* ``FILE_BASENAME``: Sorts a list of pathnames of files by their basenames. -Use the option ``<case>`` to select a case sensitive or case insensitive sort mode. -The ``<case>`` option may be one of: +Use the ``CASE`` keyword to select a case sensitive or case insensitive +sort mode. The ``<case>`` option should be one of: -* ``SENSITIVE``: Sorts the list alphabetically. -* ``INSENSITIVE``: Sorts the list alphabetically in descending order. +* ``SENSITIVE``: List items are sorted in a case-sensitive manner. This is + the default behavior if the ``CASE`` option is not given. +* ``INSENSITIVE``: List items are sorted case insensitively. The order of + items which differ only by upper/lowercase is not specified. -Use the option ``<order>`` to select a case sensitive or case insensitive sort mode. -The ``<order>`` option may be one of: +To control the sort order, the ``ORDER`` keyword can be given. +The ``<order>`` option should be one of: -* ``ASCENDING``: Sorts the list in ascending order. +* ``ASCENDING``: Sorts the list in ascending order. This is the default + behavior when the ``ORDER`` option is not given. * ``DESCENDING``: Sorts the list in descending order. diff --git a/Help/command/project.rst b/Help/command/project.rst index c1de057..bd8b4ef 100644 --- a/Help/command/project.rst +++ b/Help/command/project.rst @@ -44,6 +44,7 @@ Variables corresponding to unspecified versions are set to the empty string If the optional ``DESCRIPTION`` is given, then :variable:`PROJECT_DESCRIPTION` and :variable:`<PROJECT-NAME>_DESCRIPTION` will be set to its argument. +These variables will be cleared if ``DESCRIPTION`` is not given. The description is expected to be a relatively short string, usually no more than a few words. @@ -51,6 +52,7 @@ The optional ``HOMEPAGE_URL`` sets the analogous variables :variable:`PROJECT_HOMEPAGE_URL` and :variable:`<PROJECT-NAME>_HOMEPAGE_URL`. When this option is given, the URL provided should be the canonical home for the project. +These variables will be cleared if ``HOMEPAGE_URL`` is not given. Note that the description and homepage URL may be used as defaults for things like packaging meta-data, documentation, etc. diff --git a/Help/command/string.rst b/Help/command/string.rst index 29a153a..cc18069 100644 --- a/Help/command/string.rst +++ b/Help/command/string.rst @@ -121,6 +121,11 @@ The following characters have special meaning in regular expressions: Matches at end of input ``.`` Matches any single character +``\<char>`` + Matches the single character specified by ``<char>``. Use this to + match special regex characters, e.g. ``\.`` for a literal ``.`` + or ``\\`` for a literal backslash ``\``. Escaping a non-special + character is unnecessary but allowed, e.g. ``\a`` matches ``a``. ``[ ]`` Matches any character(s) inside the brackets ``[^ ]`` @@ -151,12 +156,9 @@ has lower precedence than concatenation. This means that the regular expression ``^ab+d$`` matches ``abbd`` but not ``ababd``, and the regular expression ``^(ab|cd)$`` matches ``ab`` but not ``abd``. -Backslash (``\``) characters in regular expressions are interpreted -literally and do not escape anything or represent placeholders. -However, CMake language :ref:`Escape Sequences` such as ``\t``, -``\r``, ``\n``, and ``\\`` may be used to construct literal tabs, -carriage returns, newlines, and backslashes (respectively) to pass -in a regex. For example: +CMake language :ref:`Escape Sequences` such as ``\t``, ``\r``, ``\n``, +and ``\\`` may be used to construct literal tabs, carriage returns, +newlines, and backslashes (respectively) to pass in a regex. For example: * The quoted argument ``"[ \t\r\n]"`` specifies a regex that matches any single whitespace character. @@ -164,6 +166,11 @@ in a regex. For example: a single forward slash ``/`` or backslash ``\``. * The quoted argument ``"[A-Za-z0-9_]"`` specifies a regex that matches any single "word" character in the C locale. +* The quoted argument ``"\\(\\a\\+b\\)"`` specifies a regex that matches + the exact string ``(a+b)``. Each ``\\`` is parsed in a quoted argument + as just ``\``, so the regex itself is actually ``\(\a\+\b\)``. This + can alternatively be specified in a :ref:`bracket argument` without + having to escape the backslashes, e.g. ``[[\(\a\+\b\)]]``. Manipulation ^^^^^^^^^^^^ diff --git a/Help/command/target_link_libraries.rst b/Help/command/target_link_libraries.rst index e1c374e..58f312e 100644 --- a/Help/command/target_link_libraries.rst +++ b/Help/command/target_link_libraries.rst @@ -43,6 +43,9 @@ Each ``<item>`` may be: 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 @@ Each ``<item>`` may be: 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,23 @@ Each ``<item>`` may be: 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. + If the ``...`` contains any ``;`` characters, e.g. after evaluation + of a ``${list}`` variable, be sure to use an explicitly quoted + argument ``"$<...>"`` so that this command receives it as a + single ``<item>``. + + Additionally, a generator expression may be used as a fragment of + any of the above items, e.g. ``foo$<1:_d>``. + + Note that generator expressions will not be used in OLD handling of + policy :policy:`CMP0003` or policy :policy:`CMP0004`. + * A ``debug``, ``optimized``, or ``general`` keyword immediately followed by another ``<item>``. The item following such a keyword will be used only for the corresponding build configuration. The ``debug`` keyword @@ -88,18 +114,16 @@ Each ``<item>`` may be: optional. Higher granularity may be achieved for per-configuration rules by creating and linking to :ref:`IMPORTED library targets <Imported Targets>`. + These keywords are interpreted immediately by this command and therefore + have no special meaning when produced by a generator expression. Items containing ``::``, such as ``Foo::Bar``, are assumed to be :ref:`IMPORTED <Imported Targets>` or :ref:`ALIAS <Alias Targets>` library target names and will cause an error if no such target exists. See policy :policy:`CMP0028`. -Arguments to ``target_link_libraries`` may use "generator expressions" -with the syntax ``$<...>``. Note however, that generator expressions -will not be used in OLD handling of :policy:`CMP0003` or :policy:`CMP0004`. -See the :manual:`cmake-generator-expressions(7)` manual for available -expressions. See the :manual:`cmake-buildsystem(7)` manual for more on -defining buildsystem properties. +See the :manual:`cmake-buildsystem(7)` manual for more on defining +buildsystem properties. Libraries for a Target and/or its Dependents ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/Help/envvar/CTEST_PROGRESS_OUTPUT.rst b/Help/envvar/CTEST_PROGRESS_OUTPUT.rst new file mode 100644 index 0000000..a8e15bc --- /dev/null +++ b/Help/envvar/CTEST_PROGRESS_OUTPUT.rst @@ -0,0 +1,14 @@ +CTEST_PROGRESS_OUTPUT +--------------------- + +Boolean environment variable that affects how :manual:`ctest <ctest(1)>` +command output reports overall progress. When set to 1, TRUE, ON or anything +else that evaluates to boolean true, progress is reported by repeatedly +updating the same line. This greatly reduces the overall verbosity, but is +only supported when output is sent directly to a terminal. If the environment +variable is not set or has a value that evaluates to false, output is reported +normally with each test having its own start and end lines logged to the +output. + +The ``--progress`` option to :manual:`ctest <ctest(1)>` overrides this +environment variable if both are given. diff --git a/Help/manual/cmake-env-variables.7.rst b/Help/manual/cmake-env-variables.7.rst index 42aeabc..31aa723 100644 --- a/Help/manual/cmake-env-variables.7.rst +++ b/Help/manual/cmake-env-variables.7.rst @@ -53,5 +53,6 @@ Environment Variables for CTest /envvar/CTEST_INTERACTIVE_DEBUG_MODE /envvar/CTEST_OUTPUT_ON_FAILURE /envvar/CTEST_PARALLEL_LEVEL + /envvar/CTEST_PROGRESS_OUTPUT /envvar/CTEST_USE_LAUNCHERS_DEFAULT /envvar/DASHBOARD_TEST_FROM_CTEST diff --git a/Help/manual/cmake-language.7.rst b/Help/manual/cmake-language.7.rst index 591f73d..71649ba 100644 --- a/Help/manual/cmake-language.7.rst +++ b/Help/manual/cmake-language.7.rst @@ -391,8 +391,9 @@ inside out, e.g. ``${outer_${inner_variable}_variable}``. 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 @@ which will result in a response type "reply":: 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 @@ FileGroups are used to group sources using similar settings together. 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 @@ Each fileGroup object may contain the following keys: "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/manual/ctest.1.rst b/Help/manual/ctest.1.rst index 9553d15..e24b10d 100644 --- a/Help/manual/ctest.1.rst +++ b/Help/manual/ctest.1.rst @@ -35,6 +35,19 @@ Options which one should be tested. Example configurations are "Debug" and "Release". +``--progress`` + Enable short progress output from tests. + + When the output of ``ctest`` is being sent directly to a terminal, the + progress through the set of tests is reported by updating the same line + rather than printing start and end messages for each test on new lines. + This can significantly reduce the verbosity of the test output. + Test completion messages are still output on their own line for failed + tests and the final test summary will also still be logged. + + This option can also be enabled by setting the environment variable + :envvar:`CTEST_PROGRESS_OUTPUT`. + ``-V,--verbose`` Enable verbose output from tests. @@ -55,8 +68,8 @@ Options ``--output-on-failure`` Output anything outputted by the test program if the test should fail. - This option can also be enabled by setting the environment variable - ``CTEST_OUTPUT_ON_FAILURE``. + This option can also be enabled by setting the + :envvar:`CTEST_OUTPUT_ON_FAILURE` environment variable ``-F`` Enable failover. @@ -70,7 +83,7 @@ Options This option tells CTest to run the tests in parallel using given number of jobs. This option can also be set by setting the - environment variable ``CTEST_PARALLEL_LEVEL``. + :envvar:`CTEST_PARALLEL_LEVEL` environment variable. This option can be used with the :prop_test:`PROCESSORS` test property. @@ -867,7 +880,7 @@ Configuration settings include: * `CTest Script`_ variable: :variable:`CTEST_CONFIGURATION_TYPE` * :module:`CTest` module variable: ``DEFAULT_CTEST_CONFIGURATION_TYPE``, - initialized by the ``CMAKE_CONFIG_TYPE`` environment variable + initialized by the :envvar:`CMAKE_CONFIG_TYPE` environment variable ``LabelsForSubprojects`` Specify a semicolon-separated list of labels that will be treated as 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 @@ cleaned up to simplify the behavior. Specifically: * 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/policy/CMP0077.rst b/Help/policy/CMP0077.rst index 8efe198..44797b6 100644 --- a/Help/policy/CMP0077.rst +++ b/Help/policy/CMP0077.rst @@ -3,10 +3,46 @@ CMP0077 :command:`option` honors normal variables. -The ``OLD`` behavior for this policy is to clear any existing normal variables -with the same name. The ``NEW`` behavior for this policy is to not create -a cache entry or modify any existing normal variables if a normal variable -with the same name already exists. +The :command:`option` command is typically used to create a cache entry +to allow users to set the option. However, there are cases in which a +normal (non-cached) variable of the same name as the option may be +defined by the project prior to calling the :command:`option` command. +For example, a project that embeds another project as a subdirectory +may want to hard-code options of the subproject to build the way it needs. + +For historical reasons in CMake 3.12 and below the :command:`option` +command *removes* a normal (non-cached) variable of the same name when: + +* a cache entry of the specified name does not exist at all, or +* a cache entry of the specified name exists but has not been given + a type (e.g. via ``-D<name>=ON`` on the command line). + +In both of these cases (typically on the first run in a new build tree), +the :command:`option` command gives the cache entry type ``BOOL`` and +removes any normal (non-cached) variable of the same name. In the +remaining case that the cache entry of the specified name already +exists and has a type (typically on later runs in a build tree), the +:command:`option` command changes nothing and any normal variable of +the same name remains set. + +In CMake 3.13 and above the :command:`option` command prefers to +do nothing when a normal variable of the given name already exists. +It does not create or update a cache entry or remove the normal variable. +The new behavior is consistent between the first and later runs in a +build tree. This policy provides compatibility with projects that have +not been updated to expect the new behavior. + +When the :command:`option` command sees a normal variable of the given +name: + +* The ``OLD`` behavior for this policy is to proceed even when a normal + variable of the same name exists. If the cache entry does not already + exist and have a type then it is created and/or given a type and the + normal variable is removed. + +* The ``NEW`` behavior for this policy is to do nothing when a normal + variable of the same name exists. The normal variable is not removed. + The cache entry is not created or updated and is ignored if it exists. This policy was introduced in CMake version 3.13. CMake version |release| warns when the policy is not set and uses ``OLD`` behavior. diff --git a/Help/release/3.13.rst b/Help/release/3.13.rst index b08f21d..f547556 100644 --- a/Help/release/3.13.rst +++ b/Help/release/3.13.rst @@ -20,7 +20,7 @@ Generators * The :generator:`Xcode` generator learned to configure more Xcode Scheme fields. See the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable. -* The :generator:`Green Hills MULTI` generator has been udpated: +* The :generator:`Green Hills MULTI` generator has been updated: - Added support for architecture selection through :variable:`CMAKE_GENERATOR_PLATFORM`: @@ -61,9 +61,6 @@ Commands * The :command:`add_link_options` command was created to add link options in the current directory. -* The :command:`install(CODE)` and :command:`install(SCRIPT)` commands - learned to support generator expressions. - * The :command:`install(TARGETS)` command learned to install targets created outside the current directory. @@ -157,6 +154,10 @@ Modules * The :module:`FindPkgConfig` module gained an option to create imported targets in global scope. +* The :module:`FindPkgConfig` module gained support for ``<`` and ``>`` + operators for version checks in addition to the already supported + operators ``>=``, ``<=``, and ``=``. + * Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython` gain capability to control order of resource lookup on macOS (Framework) and Windows (Registry). @@ -203,8 +204,13 @@ Deprecated and Removed Features Other Changes ============= -* The :command:`option` command now honors existing normal variables instead - of replacing them with a cache entry. See policy :policy:`CMP0077`. +* 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. + See policy :policy:`CMP0077`. * The :ref:`Makefile Generators` learned to remove custom command and custom target byproducts during ``make clean``. diff --git a/Help/release/dev/0-sample-topic.rst b/Help/release/dev/0-sample-topic.rst deleted file mode 100644 index e4cc01e..0000000 --- a/Help/release/dev/0-sample-topic.rst +++ /dev/null @@ -1,7 +0,0 @@ -0-sample-topic --------------- - -* This is a sample release note for the change in a topic. - Developers should add similar notes for each topic branch - making a noteworthy change. Each document should be named - and titled to match the topic name to avoid merge conflicts. diff --git a/Help/release/index.rst b/Help/release/index.rst index 7ef3a8e..fbe4cf6 100644 --- a/Help/release/index.rst +++ b/Help/release/index.rst @@ -7,8 +7,6 @@ CMake Release Notes This file should include the adjacent "dev.txt" file in development versions but not in release versions. -.. include:: dev.txt - Releases ======== 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 @@ Enables tracing output for target properties. 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/Help/variable/CMAKE_OSX_VARIABLE.txt b/Help/variable/CMAKE_OSX_VARIABLE.txt index 5b84726..16f3c1a 100644 --- a/Help/variable/CMAKE_OSX_VARIABLE.txt +++ b/Help/variable/CMAKE_OSX_VARIABLE.txt @@ -2,6 +2,8 @@ The value of this variable should be set prior to the first :command:`project` or :command:`enable_language` command invocation because it may influence configuration of the toolchain and flags. It is intended to be set locally by the user creating a build tree. +This variable should be set as a ``CACHE`` entry (or else CMake may +remove it while initializing a cache entry of the same name). Despite the ``OSX`` part in the variable name(s) they apply also to other SDKs than macOS like iOS, tvOS, or watchOS. diff --git a/Modules/BundleUtilities.cmake b/Modules/BundleUtilities.cmake index 31db25a..613ba1a 100644 --- a/Modules/BundleUtilities.cmake +++ b/Modules/BundleUtilities.cmake @@ -224,17 +224,21 @@ that are already also in the bundle... Anything that points to an external file causes this function to fail the verification. #]=======================================================================] +function(_warn_cmp0080) + message(AUTHOR_WARNING + "Policy CMP0080 is not set: BundleUtilities prefers not to be included at configure time. " + "Run \"cmake --help-policy CMP0080\" for policy details. " + "Use the cmake_policy command to set the policy and suppress this warning." + ) +endfunction() + # Do not include this module at configure time! if(DEFINED CMAKE_GENERATOR) cmake_policy(GET CMP0080 _BundleUtilities_CMP0080) if(_BundleUtilities_CMP0080 STREQUAL "NEW") message(FATAL_ERROR "BundleUtilities cannot be included at configure time!") - elseif(NOT _BundleUtilities_CMP0080 STREQUAL "OLD") - message(AUTHOR_WARNING - "Policy CMP0080 is not set: BundleUtilities prefers not to be included at configure time. " - "Run \"cmake --help-policy CMP0080\" for policy details. " - "Use the cmake_policy command to set the policy and suppress this warning." - ) + elseif(NOT _BundleUtilities_CMP0080 STREQUAL "OLD" AND NOT _CMP0080_SUPPRESS_WARNING) + _warn_cmp0080() endif() endif() diff --git a/Modules/Compiler/Clang.cmake b/Modules/Compiler/Clang.cmake index 1653b55..e23470b 100644 --- a/Modules/Compiler/Clang.cmake +++ b/Modules/Compiler/Clang.cmake @@ -33,6 +33,14 @@ else() set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Xlinker" " ") set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP) + if(CMAKE_${lang}_COMPILER_TARGET) + if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.4.0) + list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "-target" "${CMAKE_${lang}_COMPILER_TARGET}") + else() + list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "--target=${CMAKE_${lang}_COMPILER_TARGET}") + endif() + endif() + set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES) set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES) diff --git a/Modules/DeployQt4.cmake b/Modules/DeployQt4.cmake index e758f3a..c69cd38 100644 --- a/Modules/DeployQt4.cmake +++ b/Modules/DeployQt4.cmake @@ -1,388 +1,400 @@ # Distributed under the OSI-approved BSD 3-Clause License. See accompanying # file Copyright.txt or https://cmake.org/licensing for details. -#.rst: -# DeployQt4 -# --------- -# -# Functions to help assemble a standalone Qt4 executable. -# -# A collection of CMake utility functions useful for deploying Qt4 -# executables. -# -# The following functions are provided by this module: -# -# :: -# -# write_qt4_conf -# resolve_qt4_paths -# fixup_qt4_executable -# install_qt4_plugin_path -# install_qt4_plugin -# install_qt4_executable -# -# Requires CMake 2.6 or greater because it uses function and -# PARENT_SCOPE. Also depends on BundleUtilities.cmake. -# -# :: -# -# WRITE_QT4_CONF(<qt_conf_dir> <qt_conf_contents>) -# -# Writes a qt.conf file with the <qt_conf_contents> into <qt_conf_dir>. -# -# :: -# -# RESOLVE_QT4_PATHS(<paths_var> [<executable_path>]) -# -# Loop through <paths_var> list and if any don't exist resolve them -# relative to the <executable_path> (if supplied) or the -# CMAKE_INSTALL_PREFIX. -# -# :: -# -# FIXUP_QT4_EXECUTABLE(<executable> -# [<qtplugins> <libs> <dirs> <plugins_dir> <request_qt_conf>]) -# -# Copies Qt plugins, writes a Qt configuration file (if needed) and -# fixes up a Qt4 executable using BundleUtilities so it is standalone -# and can be drag-and-drop copied to another machine as long as all of -# the system libraries are compatible. -# -# <executable> should point to the executable to be fixed-up. -# -# <qtplugins> should contain a list of the names or paths of any Qt -# plugins to be installed. -# -# <libs> will be passed to BundleUtilities and should be a list of any -# already installed plugins, libraries or executables to also be -# fixed-up. -# -# <dirs> will be passed to BundleUtilities and should contain and -# directories to be searched to find library dependencies. -# -# <plugins_dir> allows an custom plugins directory to be used. -# -# <request_qt_conf> will force a qt.conf file to be written even if not -# needed. -# -# :: -# -# INSTALL_QT4_PLUGIN_PATH(plugin executable copy installed_plugin_path_var -# <plugins_dir> <component> <configurations>) -# -# Install (or copy) a resolved <plugin> to the default plugins directory -# (or <plugins_dir>) relative to <executable> and store the result in -# <installed_plugin_path_var>. -# -# If <copy> is set to TRUE then the plugins will be copied rather than -# installed. This is to allow this module to be used at CMake time -# rather than install time. -# -# If <component> is set then anything installed will use this COMPONENT. -# -# :: -# -# INSTALL_QT4_PLUGIN(plugin executable copy installed_plugin_path_var -# <plugins_dir> <component>) -# -# Install (or copy) an unresolved <plugin> to the default plugins -# directory (or <plugins_dir>) relative to <executable> and store the -# result in <installed_plugin_path_var>. See documentation of -# INSTALL_QT4_PLUGIN_PATH. -# -# :: -# -# INSTALL_QT4_EXECUTABLE(<executable> -# [<qtplugins> <libs> <dirs> <plugins_dir> <request_qt_conf> <component>]) -# -# Installs Qt plugins, writes a Qt configuration file (if needed) and -# fixes up a Qt4 executable using BundleUtilities so it is standalone -# and can be drag-and-drop copied to another machine as long as all of -# the system libraries are compatible. The executable will be fixed-up -# at install time. <component> is the COMPONENT used for bundle fixup -# and plugin installation. See documentation of FIXUP_QT4_BUNDLE. +#[=======================================================================[.rst: +DeployQt4 +--------- + +Functions to help assemble a standalone Qt4 executable. + +A collection of CMake utility functions useful for deploying Qt4 +executables. + +The following functions are provided by this module: + +:: + + write_qt4_conf + resolve_qt4_paths + fixup_qt4_executable + install_qt4_plugin_path + install_qt4_plugin + install_qt4_executable + +Requires CMake 2.6 or greater because it uses function and +PARENT_SCOPE. Also depends on BundleUtilities.cmake. + +:: + + WRITE_QT4_CONF(<qt_conf_dir> <qt_conf_contents>) + +Writes a qt.conf file with the <qt_conf_contents> into <qt_conf_dir>. + +:: + + RESOLVE_QT4_PATHS(<paths_var> [<executable_path>]) + +Loop through <paths_var> list and if any don't exist resolve them +relative to the <executable_path> (if supplied) or the +CMAKE_INSTALL_PREFIX. + +:: + + FIXUP_QT4_EXECUTABLE(<executable> + [<qtplugins> <libs> <dirs> <plugins_dir> <request_qt_conf>]) + +Copies Qt plugins, writes a Qt configuration file (if needed) and +fixes up a Qt4 executable using BundleUtilities so it is standalone +and can be drag-and-drop copied to another machine as long as all of +the system libraries are compatible. + +<executable> should point to the executable to be fixed-up. + +<qtplugins> should contain a list of the names or paths of any Qt +plugins to be installed. + +<libs> will be passed to BundleUtilities and should be a list of any +already installed plugins, libraries or executables to also be +fixed-up. + +<dirs> will be passed to BundleUtilities and should contain and +directories to be searched to find library dependencies. + +<plugins_dir> allows an custom plugins directory to be used. + +<request_qt_conf> will force a qt.conf file to be written even if not +needed. + +:: + + INSTALL_QT4_PLUGIN_PATH(plugin executable copy installed_plugin_path_var + <plugins_dir> <component> <configurations>) + +Install (or copy) a resolved <plugin> to the default plugins directory +(or <plugins_dir>) relative to <executable> and store the result in +<installed_plugin_path_var>. + +If <copy> is set to TRUE then the plugins will be copied rather than +installed. This is to allow this module to be used at CMake time +rather than install time. + +If <component> is set then anything installed will use this COMPONENT. + +:: + + INSTALL_QT4_PLUGIN(plugin executable copy installed_plugin_path_var + <plugins_dir> <component>) + +Install (or copy) an unresolved <plugin> to the default plugins +directory (or <plugins_dir>) relative to <executable> and store the +result in <installed_plugin_path_var>. See documentation of +INSTALL_QT4_PLUGIN_PATH. + +:: + + INSTALL_QT4_EXECUTABLE(<executable> + [<qtplugins> <libs> <dirs> <plugins_dir> <request_qt_conf> <component>]) + +Installs Qt plugins, writes a Qt configuration file (if needed) and +fixes up a Qt4 executable using BundleUtilities so it is standalone +and can be drag-and-drop copied to another machine as long as all of +the system libraries are compatible. The executable will be fixed-up +at install time. <component> is the COMPONENT used for bundle fixup +and plugin installation. See documentation of FIXUP_QT4_BUNDLE. +#]=======================================================================] # The functions defined in this file depend on the fixup_bundle function # (and others) found in BundleUtilities.cmake -include("${CMAKE_CURRENT_LIST_DIR}/BundleUtilities.cmake") set(DeployQt4_cmake_dir "${CMAKE_CURRENT_LIST_DIR}") set(DeployQt4_apple_plugins_dir "PlugIns") function(write_qt4_conf qt_conf_dir qt_conf_contents) - set(qt_conf_path "${qt_conf_dir}/qt.conf") - message(STATUS "Writing ${qt_conf_path}") - file(WRITE "${qt_conf_path}" "${qt_conf_contents}") + set(qt_conf_path "${qt_conf_dir}/qt.conf") + message(STATUS "Writing ${qt_conf_path}") + file(WRITE "${qt_conf_path}" "${qt_conf_contents}") endfunction() function(resolve_qt4_paths paths_var) - unset(executable_path) - if(ARGC GREATER 1) - set(executable_path ${ARGV1}) - endif() - - set(paths_resolved) - foreach(path ${${paths_var}}) - if(EXISTS "${path}") - list(APPEND paths_resolved "${path}") - else() - if(${executable_path}) - list(APPEND paths_resolved "${executable_path}/${path}") - else() - list(APPEND paths_resolved "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${path}") - endif() - endif() - endforeach() - set(${paths_var} ${paths_resolved} PARENT_SCOPE) -endfunction() + unset(executable_path) + if(ARGC GREATER 1) + set(executable_path ${ARGV1}) + endif() -function(fixup_qt4_executable executable) - unset(qtplugins) - if(ARGC GREATER 1) - set(qtplugins ${ARGV1}) - endif() - unset(libs) - if(ARGC GREATER 2) - set(libs ${ARGV2}) - endif() - unset(dirs) - if(ARGC GREATER 3) - set(dirs ${ARGV3}) - endif() - unset(plugins_dir) - if(ARGC GREATER 4) - set(plugins_dir ${ARGV4}) - endif() - unset(request_qt_conf) - if(ARGC GREATER 5) - set(request_qt_conf ${ARGV5}) - endif() - - message(STATUS "fixup_qt4_executable") - message(STATUS " executable='${executable}'") - message(STATUS " qtplugins='${qtplugins}'") - message(STATUS " libs='${libs}'") - message(STATUS " dirs='${dirs}'") - message(STATUS " plugins_dir='${plugins_dir}'") - message(STATUS " request_qt_conf='${request_qt_conf}'") - - if(QT_LIBRARY_DIR) - list(APPEND dirs "${QT_LIBRARY_DIR}") - endif() - if(QT_BINARY_DIR) - list(APPEND dirs "${QT_BINARY_DIR}") - endif() - - if(APPLE) - set(qt_conf_dir "${executable}/Contents/Resources") - set(executable_path "${executable}") - set(write_qt_conf TRUE) - if(NOT DEFINED plugins_dir) - set(plugins_dir "${DeployQt4_apple_plugins_dir}") - endif() - else() - get_filename_component(executable_path "${executable}" PATH) - if(NOT executable_path) - set(executable_path ".") - endif() - set(qt_conf_dir "${executable_path}") - set(write_qt_conf ${request_qt_conf}) - endif() - - foreach(plugin ${qtplugins}) - set(installed_plugin_path "") - install_qt4_plugin("${plugin}" "${executable}" 1 installed_plugin_path) - list(APPEND libs ${installed_plugin_path}) - endforeach() - - foreach(lib ${libs}) - if(NOT EXISTS "${lib}") - message(FATAL_ERROR "Library does not exist: ${lib}") - endif() - endforeach() - - resolve_qt4_paths(libs "${executable_path}") - - if(write_qt_conf) - set(qt_conf_contents "[Paths]\nPlugins = ${plugins_dir}") - write_qt4_conf("${qt_conf_dir}" "${qt_conf_contents}") - endif() - - fixup_bundle("${executable}" "${libs}" "${dirs}") + set(paths_resolved) + foreach(path ${${paths_var}}) + if(EXISTS "${path}") + list(APPEND paths_resolved "${path}") + else() + if(${executable_path}) + list(APPEND paths_resolved "${executable_path}/${path}") + else() + list(APPEND paths_resolved "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${path}") + endif() + endif() + endforeach() + set(${paths_var} ${paths_resolved} PARENT_SCOPE) endfunction() +cmake_policy(GET CMP0080 _cmp0080_value) +if(NOT DEFINED CMAKE_GENERATOR OR NOT _cmp0080_value STREQUAL "NEW") + set(_CMP0080_SUPPRESS_WARNING TRUE) + include("${CMAKE_CURRENT_LIST_DIR}/BundleUtilities.cmake") + unset(_CMP0080_SUPPRESS_WARNING) + + function(fixup_qt4_executable executable) + cmake_policy(GET CMP0080 _cmp0080_value) + if(_cmp0080_value STREQUAL "" AND DEFINED CMAKE_GENERATOR) + _warn_cmp0080() + endif() + + unset(qtplugins) + if(ARGC GREATER 1) + set(qtplugins ${ARGV1}) + endif() + unset(libs) + if(ARGC GREATER 2) + set(libs ${ARGV2}) + endif() + unset(dirs) + if(ARGC GREATER 3) + set(dirs ${ARGV3}) + endif() + unset(plugins_dir) + if(ARGC GREATER 4) + set(plugins_dir ${ARGV4}) + endif() + unset(request_qt_conf) + if(ARGC GREATER 5) + set(request_qt_conf ${ARGV5}) + endif() + + message(STATUS "fixup_qt4_executable") + message(STATUS " executable='${executable}'") + message(STATUS " qtplugins='${qtplugins}'") + message(STATUS " libs='${libs}'") + message(STATUS " dirs='${dirs}'") + message(STATUS " plugins_dir='${plugins_dir}'") + message(STATUS " request_qt_conf='${request_qt_conf}'") + + if(QT_LIBRARY_DIR) + list(APPEND dirs "${QT_LIBRARY_DIR}") + endif() + if(QT_BINARY_DIR) + list(APPEND dirs "${QT_BINARY_DIR}") + endif() + + if(APPLE) + set(qt_conf_dir "${executable}/Contents/Resources") + set(executable_path "${executable}") + set(write_qt_conf TRUE) + if(NOT DEFINED plugins_dir) + set(plugins_dir "${DeployQt4_apple_plugins_dir}") + endif() + else() + get_filename_component(executable_path "${executable}" PATH) + if(NOT executable_path) + set(executable_path ".") + endif() + set(qt_conf_dir "${executable_path}") + set(write_qt_conf ${request_qt_conf}) + endif() + + foreach(plugin ${qtplugins}) + set(installed_plugin_path "") + install_qt4_plugin("${plugin}" "${executable}" 1 installed_plugin_path) + list(APPEND libs ${installed_plugin_path}) + endforeach() + + foreach(lib ${libs}) + if(NOT EXISTS "${lib}") + message(FATAL_ERROR "Library does not exist: ${lib}") + endif() + endforeach() + + resolve_qt4_paths(libs "${executable_path}") + + if(write_qt_conf) + set(qt_conf_contents "[Paths]\nPlugins = ${plugins_dir}") + write_qt4_conf("${qt_conf_dir}" "${qt_conf_contents}") + endif() + + fixup_bundle("${executable}" "${libs}" "${dirs}") + endfunction() +endif() + function(install_qt4_plugin_path plugin executable copy installed_plugin_path_var) - unset(plugins_dir) - if(ARGC GREATER 4) - set(plugins_dir ${ARGV4}) - endif() - unset(component) - if(ARGC GREATER 5) - set(component ${ARGV5}) - endif() + unset(plugins_dir) + if(ARGC GREATER 4) + set(plugins_dir ${ARGV4}) + endif() + unset(component) + if(ARGC GREATER 5) + set(component ${ARGV5}) + endif() + unset(configurations) + if(ARGC GREATER 6) + set(configurations ${ARGV6}) + endif() + + if(EXISTS "${plugin}") + if(APPLE) + if(NOT plugins_dir) + set(plugins_dir "${DeployQt4_apple_plugins_dir}") + endif() + set(plugins_path "${executable}/Contents/${plugins_dir}") + else() + get_filename_component(plugins_path "${executable}" PATH) + if(NOT plugins_path) + set(plugins_path ".") + endif() + if(plugins_dir) + string(APPEND plugins_path "/${plugins_dir}") + endif() + endif() + + set(plugin_group "") + + get_filename_component(plugin_path "${plugin}" PATH) + get_filename_component(plugin_parent_path "${plugin_path}" PATH) + get_filename_component(plugin_parent_dir_name "${plugin_parent_path}" NAME) + get_filename_component(plugin_name "${plugin}" NAME) + string(TOLOWER "${plugin_parent_dir_name}" plugin_parent_dir_name) + + if("${plugin_parent_dir_name}" STREQUAL "plugins") + get_filename_component(plugin_group "${plugin_path}" NAME) + set(${plugin_group_var} "${plugin_group}") + endif() + string(APPEND plugins_path "/${plugin_group}") + + if(${copy}) + file(MAKE_DIRECTORY "${plugins_path}") + file(COPY "${plugin}" DESTINATION "${plugins_path}") + else() + get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) + if(configurations AND (_isMultiConfig OR CMAKE_BUILD_TYPE)) + set(configurations CONFIGURATIONS ${configurations}) + else() unset(configurations) - if(ARGC GREATER 6) - set(configurations ${ARGV6}) - endif() - - if(EXISTS "${plugin}") - if(APPLE) - if(NOT plugins_dir) - set(plugins_dir "${DeployQt4_apple_plugins_dir}") - endif() - set(plugins_path "${executable}/Contents/${plugins_dir}") - else() - get_filename_component(plugins_path "${executable}" PATH) - if(NOT plugins_path) - set(plugins_path ".") - endif() - if(plugins_dir) - string(APPEND plugins_path "/${plugins_dir}") - endif() - endif() - - set(plugin_group "") - - get_filename_component(plugin_path "${plugin}" PATH) - get_filename_component(plugin_parent_path "${plugin_path}" PATH) - get_filename_component(plugin_parent_dir_name "${plugin_parent_path}" NAME) - get_filename_component(plugin_name "${plugin}" NAME) - string(TOLOWER "${plugin_parent_dir_name}" plugin_parent_dir_name) - - if("${plugin_parent_dir_name}" STREQUAL "plugins") - get_filename_component(plugin_group "${plugin_path}" NAME) - set(${plugin_group_var} "${plugin_group}") - endif() - string(APPEND plugins_path "/${plugin_group}") - - if(${copy}) - file(MAKE_DIRECTORY "${plugins_path}") - file(COPY "${plugin}" DESTINATION "${plugins_path}") - else() - get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) - if(configurations AND (_isMultiConfig OR CMAKE_BUILD_TYPE)) - set(configurations CONFIGURATIONS ${configurations}) - else() - unset(configurations) - endif() - install(FILES "${plugin}" DESTINATION "${plugins_path}" ${configurations} ${component}) - endif() - set(${installed_plugin_path_var} "${plugins_path}/${plugin_name}" PARENT_SCOPE) - endif() + endif() + install(FILES "${plugin}" DESTINATION "${plugins_path}" ${configurations} ${component}) + endif() + set(${installed_plugin_path_var} "${plugins_path}/${plugin_name}" PARENT_SCOPE) + endif() endfunction() function(install_qt4_plugin plugin executable copy installed_plugin_path_var) - unset(plugins_dir) - if(ARGC GREATER 4) - set(plugins_dir ${ARGV4}) - endif() - unset(component) - if(ARGC GREATER 5) - set(component ${ARGV5}) - endif() - - if(EXISTS "${plugin}") - install_qt4_plugin_path("${plugin}" "${executable}" "${copy}" "${installed_plugin_path_var}" "${plugins_dir}" "${component}") - else() - string(TOUPPER "QT_${plugin}_PLUGIN" plugin_var) - set(plugin_release_var "${plugin_var}_RELEASE") - set(plugin_debug_var "${plugin_var}_DEBUG") - set(plugin_release "${${plugin_release_var}}") - set(plugin_debug "${${plugin_debug_var}}") - if(DEFINED "${plugin_release_var}" AND DEFINED "${plugin_debug_var}" AND NOT EXISTS "${plugin_release}" AND NOT EXISTS "${plugin_debug}") - message(WARNING "Qt plugin \"${plugin}\" not recognized or found.") - endif() - if(NOT EXISTS "${${plugin_debug_var}}") - set(plugin_debug "${plugin_release}") - endif() - - get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) - if(_isMultiConfig OR CMAKE_BUILD_TYPE) - set(_RELEASE_CONFIGS ${CMAKE_CONFIGURATION_TYPES} "${CMAKE_BUILD_TYPE}") - if (_RELEASE_CONFIGS) - list(FILTER _RELEASE_CONFIGS EXCLUDE REGEX "[Dd][Ee][Bb][Uu][Gg]") - endif() - string(REPLACE ";" "|" _RELEASE_CONFIGS "${_RELEASE_CONFIGS}") - install_qt4_plugin_path("${plugin_release}" "${executable}" "${copy}" "${installed_plugin_path_var}_release" "${plugins_dir}" "${component}" "${_RELEASE_CONFIGS}") - install_qt4_plugin_path("${plugin_debug}" "${executable}" "${copy}" "${installed_plugin_path_var}_debug" "${plugins_dir}" "${component}" "Debug") - unset(_RELEASE_CONFIGS) - - if(CMAKE_BUILD_TYPE MATCHES "^Debug$") - set(${installed_plugin_path_var} ${${installed_plugin_path_var}_debug}) - else() - set(${installed_plugin_path_var} ${${installed_plugin_path_var}_release}) - endif() - else() - install_qt4_plugin_path("${plugin_release}" "${executable}" "${copy}" "${installed_plugin_path_var}" "${plugins_dir}" "${component}") - endif() - endif() - set(${installed_plugin_path_var} ${${installed_plugin_path_var}} PARENT_SCOPE) + unset(plugins_dir) + if(ARGC GREATER 4) + set(plugins_dir ${ARGV4}) + endif() + unset(component) + if(ARGC GREATER 5) + set(component ${ARGV5}) + endif() + + if(EXISTS "${plugin}") + install_qt4_plugin_path("${plugin}" "${executable}" "${copy}" "${installed_plugin_path_var}" "${plugins_dir}" "${component}") + else() + string(TOUPPER "QT_${plugin}_PLUGIN" plugin_var) + set(plugin_release_var "${plugin_var}_RELEASE") + set(plugin_debug_var "${plugin_var}_DEBUG") + set(plugin_release "${${plugin_release_var}}") + set(plugin_debug "${${plugin_debug_var}}") + if(DEFINED "${plugin_release_var}" AND DEFINED "${plugin_debug_var}" AND NOT EXISTS "${plugin_release}" AND NOT EXISTS "${plugin_debug}") + message(WARNING "Qt plugin \"${plugin}\" not recognized or found.") + endif() + if(NOT EXISTS "${${plugin_debug_var}}") + set(plugin_debug "${plugin_release}") + endif() + + get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) + if(_isMultiConfig OR CMAKE_BUILD_TYPE) + set(_RELEASE_CONFIGS ${CMAKE_CONFIGURATION_TYPES} "${CMAKE_BUILD_TYPE}") + if (_RELEASE_CONFIGS) + list(FILTER _RELEASE_CONFIGS EXCLUDE REGEX "[Dd][Ee][Bb][Uu][Gg]") + endif() + string(REPLACE ";" "|" _RELEASE_CONFIGS "${_RELEASE_CONFIGS}") + install_qt4_plugin_path("${plugin_release}" "${executable}" "${copy}" "${installed_plugin_path_var}_release" "${plugins_dir}" "${component}" "${_RELEASE_CONFIGS}") + install_qt4_plugin_path("${plugin_debug}" "${executable}" "${copy}" "${installed_plugin_path_var}_debug" "${plugins_dir}" "${component}" "Debug") + unset(_RELEASE_CONFIGS) + + if(CMAKE_BUILD_TYPE MATCHES "^Debug$") + set(${installed_plugin_path_var} ${${installed_plugin_path_var}_debug}) + else() + set(${installed_plugin_path_var} ${${installed_plugin_path_var}_release}) + endif() + else() + install_qt4_plugin_path("${plugin_release}" "${executable}" "${copy}" "${installed_plugin_path_var}" "${plugins_dir}" "${component}") + endif() + endif() + set(${installed_plugin_path_var} ${${installed_plugin_path_var}} PARENT_SCOPE) endfunction() function(install_qt4_executable executable) - unset(qtplugins) - if(ARGC GREATER 1) - set(qtplugins ${ARGV1}) - endif() - unset(libs) - if(ARGC GREATER 2) - set(libs ${ARGV2}) - endif() - unset(dirs) - if(ARGC GREATER 3) - set(dirs ${ARGV3}) - endif() - unset(plugins_dir) - if(ARGC GREATER 4) - set(plugins_dir ${ARGV4}) - endif() - unset(request_qt_conf) - if(ARGC GREATER 5) - set(request_qt_conf ${ARGV5}) - endif() - unset(component) - if(ARGC GREATER 6) - set(component ${ARGV6}) - endif() - - if(QT_LIBRARY_DIR) - list(APPEND dirs "${QT_LIBRARY_DIR}") - endif() - if(QT_BINARY_DIR) - list(APPEND dirs "${QT_BINARY_DIR}") - endif() - if(component) - set(component COMPONENT ${component}) - else() - unset(component) - endif() - - get_filename_component(executable_absolute "${executable}" ABSOLUTE) - if(EXISTS "${QT_QTCORE_LIBRARY_RELEASE}") - gp_file_type("${executable_absolute}" "${QT_QTCORE_LIBRARY_RELEASE}" qtcore_type) - elseif(EXISTS "${QT_QTCORE_LIBRARY_DEBUG}") - gp_file_type("${executable_absolute}" "${QT_QTCORE_LIBRARY_DEBUG}" qtcore_type) - endif() - if(qtcore_type STREQUAL "system") - set(qt_plugins_dir "") - endif() - - if(QT_IS_STATIC) - message(WARNING "Qt built statically: not installing plugins.") - else() - foreach(plugin ${qtplugins}) - set(installed_plugin_paths "") - install_qt4_plugin("${plugin}" "${executable}" 0 installed_plugin_paths "${plugins_dir}" "${component}") - list(APPEND libs ${installed_plugin_paths}) - endforeach() - endif() - - resolve_qt4_paths(libs "") - - install(CODE - "include(\"${DeployQt4_cmake_dir}/DeployQt4.cmake\") - set(BU_CHMOD_BUNDLE_ITEMS TRUE) - FIXUP_QT4_EXECUTABLE(\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${executable}\" \"\" \"${libs}\" \"${dirs}\" \"${plugins_dir}\" \"${request_qt_conf}\")" - ${component} - ) + unset(qtplugins) + if(ARGC GREATER 1) + set(qtplugins ${ARGV1}) + endif() + unset(libs) + if(ARGC GREATER 2) + set(libs ${ARGV2}) + endif() + unset(dirs) + if(ARGC GREATER 3) + set(dirs ${ARGV3}) + endif() + unset(plugins_dir) + if(ARGC GREATER 4) + set(plugins_dir ${ARGV4}) + endif() + unset(request_qt_conf) + if(ARGC GREATER 5) + set(request_qt_conf ${ARGV5}) + endif() + unset(component) + if(ARGC GREATER 6) + set(component ${ARGV6}) + endif() + + if(QT_LIBRARY_DIR) + list(APPEND dirs "${QT_LIBRARY_DIR}") + endif() + if(QT_BINARY_DIR) + list(APPEND dirs "${QT_BINARY_DIR}") + endif() + if(component) + set(component COMPONENT ${component}) + else() + unset(component) + endif() + + get_filename_component(executable_absolute "${executable}" ABSOLUTE) + if(EXISTS "${QT_QTCORE_LIBRARY_RELEASE}") + gp_file_type("${executable_absolute}" "${QT_QTCORE_LIBRARY_RELEASE}" qtcore_type) + elseif(EXISTS "${QT_QTCORE_LIBRARY_DEBUG}") + gp_file_type("${executable_absolute}" "${QT_QTCORE_LIBRARY_DEBUG}" qtcore_type) + endif() + if(qtcore_type STREQUAL "system") + set(qt_plugins_dir "") + endif() + + if(QT_IS_STATIC) + message(WARNING "Qt built statically: not installing plugins.") + else() + foreach(plugin ${qtplugins}) + set(installed_plugin_paths "") + install_qt4_plugin("${plugin}" "${executable}" 0 installed_plugin_paths "${plugins_dir}" "${component}") + list(APPEND libs ${installed_plugin_paths}) + endforeach() + endif() + + resolve_qt4_paths(libs "") + + install(CODE +"include(\"${DeployQt4_cmake_dir}/DeployQt4.cmake\") +set(BU_CHMOD_BUNDLE_ITEMS TRUE) +FIXUP_QT4_EXECUTABLE(\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${executable}\" \"\" \"${libs}\" \"${dirs}\" \"${plugins_dir}\" \"${request_qt_conf}\")" + ${component} + ) endfunction() diff --git a/Modules/FindBISON.cmake b/Modules/FindBISON.cmake index d684ccd..2000f7f 100644 --- a/Modules/FindBISON.cmake +++ b/Modules/FindBISON.cmake @@ -149,17 +149,25 @@ if(BISON_EXECUTABLE) set(BISON_TARGET_verbose_file "${ReportFile}") list(APPEND BISON_TARGET_cmdopt "--report-file=${BISON_TARGET_verbose_file}") endif() + if(NOT IS_ABSOLUTE "${BISON_TARGET_verbose_file}") + set(BISON_TARGET_verbose_file "${CMAKE_CURRENT_SOURCE_DIR}/${BISON_TARGET_verbose_file}") + endif() endmacro() # internal macro # adds a custom command and sets - # BISON_TARGET_cmdopt, BISON_TARGET_verbose_file, BISON_TARGET_extraoutputs + # BISON_TARGET_cmdopt, BISON_TARGET_extraoutputs macro(BISON_TARGET_option_verbose Name BisonOutput filename) list(APPEND BISON_TARGET_cmdopt "--verbose") - list(APPEND BISON_TARGET_extraoutputs + list(APPEND BISON_TARGET_outputs "${BISON_TARGET_verbose_file}") if (NOT "${filename}" STREQUAL "") - add_custom_command(OUTPUT ${filename} + if(IS_ABSOLUTE "${filename}") + set(BISON_TARGET_verbose_extra_file "${filename}") + else() + set(BISON_TARGET_verbose_extra_file "${CMAKE_CURRENT_SOURCE_DIR}/${filename}") + endif() + add_custom_command(OUTPUT ${BISON_TARGET_verbose_extra_file} COMMAND ${CMAKE_COMMAND} -E copy "${BISON_TARGET_verbose_file}" "${filename}" @@ -167,10 +175,10 @@ if(BISON_EXECUTABLE) DEPENDS "${BISON_TARGET_verbose_file}" COMMENT "[BISON][${Name}] Copying bison verbose table to ${filename}" - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) - set(BISON_${Name}_VERBOSE_FILE ${filename}) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) list(APPEND BISON_TARGET_extraoutputs - "${filename}") + "${BISON_TARGET_verbose_extra_file}") + unset(BISON_TARGET_verbose_extra_file) endif() endmacro() @@ -226,7 +234,6 @@ if(BISON_EXECUTABLE) list(APPEND BISON_TARGET_outputs "${BISON_TARGET_output_header}") add_custom_command(OUTPUT ${BISON_TARGET_outputs} - ${BISON_TARGET_extraoutputs} COMMAND ${BISON_EXECUTABLE} ${BISON_TARGET_cmdopt} -o ${BisonOutput} ${BisonInput} VERBATIM DEPENDS ${BisonInput} diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake index 39b9b74..e955bc2 100644 --- a/Modules/FindBLAS.cmake +++ b/Modules/FindBLAS.cmake @@ -53,8 +53,10 @@ # * SGIMATH # * IBMESSL # * Intel10_32 (intel mkl v10 32 bit) -# * Intel10_64lp (intel mkl v10 64 bit, lp thread model, lp64 model) -# * Intel10_64lp_seq (intel mkl v10 64 bit, sequential code, lp64 model) +# * Intel10_64lp (intel mkl v10+ 64 bit, threaded code, lp64 model) +# * Intel10_64lp_seq (intel mkl v10+ 64 bit, sequential code, lp64 model) +# * Intel10_64ilp (intel mkl v10+ 64 bit, threaded code, ilp64 model) +# * Intel10_64ilp_seq (intel mkl v10+ 64 bit, sequential code, ilp64 model) # * Intel (older versions of mkl 32 and 64 bit) # * ACML # * ACML_MP @@ -199,9 +201,14 @@ if (BLA_VENDOR STREQUAL "All") endif() endif () -#BLAS in intel mkl 10 library? (em64t 64bit) +#BLAS in intel mkl 10+ library? (em64t 64bit) if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") if (NOT BLAS_LIBRARIES) + if (BLA_VENDOR MATCHES "_64ilp") + set(BLAS_mkl_ILP_MODE "ilp64") + else () + set(BLAS_mkl_ILP_MODE "lp64") + endif () if (NOT WIN32) set(LM "-lm") endif () @@ -230,9 +237,9 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN "mkl_blas95${BLAS_mkl_DLL_SUFFIX} mkl_intel_c${BLAS_mkl_DLL_SUFFIX}") endif() - if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All") + if (BLA_VENDOR MATCHES "^Intel10_64i?lp" OR BLA_VENDOR STREQUAL "All") list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN - "mkl_blas95_lp64${BLAS_mkl_DLL_SUFFIX} mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}") + "mkl_blas95_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX} mkl_intel_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX}") endif () # Add threading/sequential libs @@ -262,23 +269,23 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") list(APPEND BLAS_SEARCH_LIBS "mkl_blas95 mkl_intel mkl_intel_thread mkl_core guide") endif () - if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All") + if (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All") # old version list(APPEND BLAS_SEARCH_LIBS - "mkl_blas95 mkl_intel_lp64 mkl_intel_thread mkl_core guide") + "mkl_blas95 mkl_intel_${BLAS_mkl_ILP_MODE} mkl_intel_thread mkl_core guide") # mkl >= 10.3 if (CMAKE_C_COMPILER MATCHES ".+gcc") list(APPEND BLAS_SEARCH_LIBS - "mkl_blas95_lp64 mkl_intel_lp64 mkl_gnu_thread mkl_core gomp") + "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_intel_${BLAS_mkl_ILP_MODE} mkl_gnu_thread mkl_core gomp") else () list(APPEND BLAS_SEARCH_LIBS - "mkl_blas95_lp64 mkl_intel_lp64 mkl_intel_thread mkl_core iomp5") + "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_intel_${BLAS_mkl_ILP_MODE} mkl_intel_thread mkl_core iomp5") endif () endif () - if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All") + if (BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All") list(APPEND BLAS_SEARCH_LIBS - "mkl_intel_lp64 mkl_sequential mkl_core") + "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_intel_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core") endif () endif () else () @@ -297,9 +304,9 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN "mkl_intel_c${BLAS_mkl_DLL_SUFFIX}") endif() - if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All") + if (BLA_VENDOR MATCHES "^Intel10_64i?lp" OR BLA_VENDOR STREQUAL "All") list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN - "mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}") + "mkl_intel_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX}") endif () # Add threading/sequential libs @@ -329,24 +336,24 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") list(APPEND BLAS_SEARCH_LIBS "mkl_intel mkl_intel_thread mkl_core guide") endif () - if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All") + if (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All") # old version list(APPEND BLAS_SEARCH_LIBS - "mkl_intel_lp64 mkl_intel_thread mkl_core guide") + "mkl_intel_${BLAS_mkl_ILP_MODE} mkl_intel_thread mkl_core guide") # mkl >= 10.3 if (CMAKE_C_COMPILER MATCHES ".+gcc") list(APPEND BLAS_SEARCH_LIBS - "mkl_intel_lp64 mkl_gnu_thread mkl_core gomp") + "mkl_intel_${BLAS_mkl_ILP_MODE} mkl_gnu_thread mkl_core gomp") else () list(APPEND BLAS_SEARCH_LIBS - "mkl_intel_lp64 mkl_intel_thread mkl_core iomp5") + "mkl_intel_${BLAS_mkl_ILP_MODE} mkl_intel_thread mkl_core iomp5") endif () endif () - if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All") + if (BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All") list(APPEND BLAS_SEARCH_LIBS - "mkl_intel_lp64 mkl_sequential mkl_core") + "mkl_intel_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core") endif () #older vesions of intel mkl libs @@ -376,6 +383,7 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") endforeach () endif () + unset(BLAS_mkl_ILP_MODE) endif () endif () diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake index 37539ba..5090c60 100644 --- a/Modules/FindBoost.cmake +++ b/Modules/FindBoost.cmake @@ -1740,6 +1740,7 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS}) list(APPEND _boost_RELEASE_NAMES ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG} + ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component} ) if(_boost_STATIC_RUNTIME_WORKAROUND) set(_boost_RELEASE_STATIC_ABI_TAG "-s${_boost_RELEASE_ABI_TAG}") diff --git a/Modules/FindLAPACK.cmake b/Modules/FindLAPACK.cmake index a3c87f8..7ca9950 100644 --- a/Modules/FindLAPACK.cmake +++ b/Modules/FindLAPACK.cmake @@ -278,6 +278,12 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") find_package(Threads REQUIRED) endif() + if (BLA_VENDOR MATCHES "_64ilp") + set(BLAS_mkl_ILP_MODE "ilp64") + else () + set(BLAS_mkl_ILP_MODE "lp64") + endif () + set(LAPACK_SEARCH_LIBS "") if (BLA_F95) @@ -292,7 +298,7 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") list(APPEND LAPACK_SEARCH_LIBS "mkl_intel_c") list(APPEND LAPACK_SEARCH_LIBS - "mkl_intel_lp64") + "mkl_intel_${BLAS_mkl_ILP_MODE}") else() set(LAPACK_mkl_SEARCH_SYMBOL "cheev") set(_LIBRARIES LAPACK_LIBRARIES) @@ -303,7 +309,7 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") "mkl_lapack") # new >= 10.3 list(APPEND LAPACK_SEARCH_LIBS - "mkl_gf_lp64") + "mkl_gf_${BLAS_mkl_ILP_MODE}") endif() # First try empty lapack libs @@ -332,6 +338,8 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") ) endif () endforeach () + + unset(BLAS_mkl_ILP_MODE) endif () endif() else() diff --git a/Modules/FindPkgConfig.cmake b/Modules/FindPkgConfig.cmake index 3934867..06beb7d 100644 --- a/Modules/FindPkgConfig.cmake +++ b/Modules/FindPkgConfig.cmake @@ -397,7 +397,7 @@ macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cma set(_pkg_check_modules_exist_query) # check whether version is given - if (_pkg_check_modules_pkg MATCHES "(.*[^><])(>=|=|<=)(.*)") + if (_pkg_check_modules_pkg MATCHES "(.*[^><])(=|[><]=?)(.*)") set(_pkg_check_modules_pkg_name "${CMAKE_MATCH_1}") set(_pkg_check_modules_pkg_op "${CMAKE_MATCH_2}") set(_pkg_check_modules_pkg_ver "${CMAKE_MATCH_3}") @@ -415,9 +415,11 @@ macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cma list(APPEND _pkg_check_modules_packages "${_pkg_check_modules_pkg_name}") # create the final query which is of the format: + # * <pkg-name> > <version> # * <pkg-name> >= <version> # * <pkg-name> = <version> # * <pkg-name> <= <version> + # * <pkg-name> < <version> # * --exists <pkg-name> list(APPEND _pkg_check_modules_exist_query --print-errors --short-errors) if (_pkg_check_modules_pkg_op) @@ -538,12 +540,15 @@ endmacro() :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 # Any version matches + foo<2 # Only match versions before 2 + foo>=3.1 # Match any version from 3.1 or later + foo=1.2.3 # 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 diff --git a/Modules/FindPython/Support.cmake b/Modules/FindPython/Support.cmake index a8a73a7..5b1ed4b 100644 --- a/Modules/FindPython/Support.cmake +++ b/Modules/FindPython/Support.cmake @@ -230,7 +230,7 @@ if (${_PYTHON_PREFIX}_FIND_VERSION_COUNT GREATER 1) endif() endif() -# Anaconda distribution: define which architectures can be used +# Python and Anaconda distributions: define which architectures can be used if (CMAKE_SIZEOF_VOID_P) # In this case, search only for 64bit or 32bit math (EXPR _${_PYTHON_PREFIX}_ARCH "${CMAKE_SIZEOF_VOID_P} * 8") @@ -336,9 +336,13 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS) NAMES_PER_DIR HINTS ${_${_PYTHON_PREFIX}_HINTS} PATHS [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath] + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath] + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath] [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath] [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath] [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath] [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath] [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath] [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath] @@ -393,9 +397,13 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS) ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES} NAMES_PER_DIR PATHS [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath] + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath] + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath] [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath] [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath] [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath] [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath] [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath] [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath] @@ -463,6 +471,23 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS) endif() if (${_PYTHON_PREFIX}_Interpreter_FOUND) + if (NOT CMAKE_SIZEOF_VOID_P) + # determine interpreter architecture + execute_process (COMMAND "${${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; print(sys.maxsize > 2**32)" + RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT + OUTPUT_VARIABLE ${_PYTHON_PREFIX}_IS64BIT + ERROR_VARIABLE ${_PYTHON_PREFIX}_IS64BIT) + if (NOT _${_PYTHON_PREFIX}_RESULT) + if (${_PYTHON_PREFIX}_IS64BIT) + set (_${_PYTHON_PREFIX}_ARCH 64) + set (_${_PYTHON_PREFIX}_ARCH2 64) + else() + set (_${_PYTHON_PREFIX}_ARCH 32) + set (_${_PYTHON_PREFIX}_ARCH2 32) + endif() + endif() + endif() + # retrieve interpreter identity execute_process (COMMAND "${${_PYTHON_PREFIX}_EXECUTABLE}" -V RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT @@ -769,9 +794,15 @@ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS set (_${_PYTHON_PREFIX}_REGISTRY_PATHS [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath] + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath] + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath] [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath] + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath] [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]) + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_${_PYTHON_PREFIX}_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath] + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_${_PYTHON_PREFIX}_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]) if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST") find_library (${_PYTHON_PREFIX}_LIBRARY_RELEASE diff --git a/Modules/FindPythonLibs.cmake b/Modules/FindPythonLibs.cmake index 3ac1ce2..6da87a8 100644 --- a/Modules/FindPythonLibs.cmake +++ b/Modules/FindPythonLibs.cmake @@ -121,6 +121,34 @@ unset(_PYTHON1_VERSIONS) unset(_PYTHON2_VERSIONS) unset(_PYTHON3_VERSIONS) +# Python distribution: define which architectures can be used +if (CMAKE_SIZEOF_VOID_P) + # In this case, search only for 64bit or 32bit + math (EXPR _PYTHON_ARCH "${CMAKE_SIZEOF_VOID_P} * 8") + set (_PYTHON_ARCH2 _PYTHON_PREFIX_ARCH}) +else() + if (PYTHON_EXECUTABLE) + # determine interpreter architecture + execute_process (COMMAND "${PYTHON_EXECUTABLE}" -c "import sys; print(sys.maxsize > 2**32)" + RESULT_VARIABLE _PYTHON_RESULT + OUTPUT_VARIABLE _PYTHON_IS64BIT + ERROR_VARIABLE _PYTHON_IS64BIT) + if (NOT _PYTHON_RESULT) + if (_PYTHON_IS64BIT) + set (_PYTHON_ARCH 64) + set (_PYTHON_ARCH2 64) + else() + set (_PYTHON_ARCH 32) + set (_PYTHON_ARCH2 32) + endif() + endif() + else() + # architecture unknown, search for both 64bit and 32bit + set (_PYTHON_ARCH 64) + set (_PYTHON_ARCH2 32) + endif() +endif() + foreach(_CURRENT_VERSION ${_Python_VERSIONS}) string(REPLACE "." "" _CURRENT_VERSION_NO_DOTS ${_CURRENT_VERSION}) if(WIN32) @@ -130,9 +158,17 @@ foreach(_CURRENT_VERSION ${_Python_VERSIONS}) HINTS ${_Python_LIBRARY_PATH_HINT} PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]/libs/Debug + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH}\\InstallPath]/libs/Debug + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH2}\\InstallPath]/libs/Debug [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]/libs/Debug + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH}\\InstallPath]/libs/Debug + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH2}\\InstallPath]/libs/Debug [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]/libs + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH}\\InstallPath]/libs + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH2}\\InstallPath]/libs [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]/libs + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH}\\InstallPath]/libs + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH2}\\InstallPath]/libs ) endif() @@ -156,7 +192,11 @@ foreach(_CURRENT_VERSION ${_Python_VERSIONS}) PATHS ${PYTHON_FRAMEWORK_LIBRARIES} [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]/libs + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH}\\InstallPath]/libs + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH2}\\InstallPath]/libs [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]/libs + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH}\\InstallPath]/libs + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH2}\\InstallPath]/libs ) # Look for the static library in the Python config directory find_library(PYTHON_LIBRARY @@ -201,7 +241,11 @@ foreach(_CURRENT_VERSION ${_Python_VERSIONS}) PATHS ${PYTHON_FRAMEWORK_INCLUDES} [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]/include + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH}\\InstallPath]/include + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH2}\\InstallPath]/include [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}\\InstallPath]/include + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH}\\InstallPath]/include + [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_CURRENT_VERSION}-${_PYTHON_ARCH2}\\InstallPath]/include PATH_SUFFIXES python${_CURRENT_VERSION}mu python${_CURRENT_VERSION}m diff --git a/Modules/InstallRequiredSystemLibraries.cmake b/Modules/InstallRequiredSystemLibraries.cmake index 36dd0a0..4ecba05 100644 --- a/Modules/InstallRequiredSystemLibraries.cmake +++ b/Modules/InstallRequiredSystemLibraries.cmake @@ -362,7 +362,7 @@ if(MSVC) ) endif() - # include the language dll's for vs8 as well as the actuall dll's + # include the language dll's for vs8 as well as the actual dll's set(MSVC_MFCLOC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.MFCLOC") # Install the manifest that allows DLLs to be loaded from the # directory containing the executable. @@ -406,7 +406,7 @@ if(MSVC) ) endif() - # include the language dll's for vs9 as well as the actuall dll's + # include the language dll's for vs9 as well as the actual dll's set(MSVC_MFCLOC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.MFCLOC") # Install the manifest that allows DLLs to be loaded from the # directory containing the executable. @@ -487,7 +487,7 @@ if(MSVC) endif() endif() - # include the language dll's as well as the actuall dll's + # include the language dll's as well as the actual dll's set(MSVC_MFCLOC_DIR "${MSVC_REDIST_MFC_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.MFCLOC") set(__install__libs ${__install__libs} "${MSVC_MFCLOC_DIR}/mfc${v}chs.dll" diff --git a/Modules/Internal/CPack/CPackRPM.cmake b/Modules/Internal/CPack/CPackRPM.cmake index 3bd5147..2de71ee 100644 --- a/Modules/Internal/CPack/CPackRPM.cmake +++ b/Modules/Internal/CPack/CPackRPM.cmake @@ -491,7 +491,7 @@ function(cpack_rpm_prepare_install_files INSTALL_FILES_LIST WDIR PACKAGE_PREFIXE list(LENGTH SYMLINK_RELOCATIONS SYMLINK_RELOCATIONS_COUNT) list(LENGTH POINT_RELOCATIONS POINT_RELOCATIONS_COUNT) else() - # location pointed to is ouside WDR so it should be treated as a permanent symlink + # location pointed to is outside WDR so it should be treated as a permanent symlink set(SYMLINK_POINT_WD_ "${SYMLINK_POINT_}") unset(SYMLINK_RELOCATIONS) diff --git a/Modules/NSIS.template.in b/Modules/NSIS.template.in index 9001888..f75ae78 100644 --- a/Modules/NSIS.template.in +++ b/Modules/NSIS.template.in @@ -847,7 +847,7 @@ Section "Uninstall" @CPACK_NSIS_DELETE_ICONS@ @CPACK_NSIS_DELETE_ICONS_EXTRA@ - ;Delete empty start menu parent diretories + ;Delete empty start menu parent directories StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" startMenuDeleteLoop: @@ -866,7 +866,7 @@ Section "Uninstall" Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" @CPACK_NSIS_DELETE_ICONS_EXTRA@ - ;Delete empty start menu parent diretories + ;Delete empty start menu parent directories StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" secondStartMenuDeleteLoop: diff --git a/Modules/Platform/Android-Clang.cmake b/Modules/Platform/Android-Clang.cmake index f739ab1..9ed1e01 100644 --- a/Modules/Platform/Android-Clang.cmake +++ b/Modules/Platform/Android-Clang.cmake @@ -40,5 +40,6 @@ macro(__android_compiler_clang lang) endif() if(NOT CMAKE_${lang}_COMPILER_TARGET) set(CMAKE_${lang}_COMPILER_TARGET "${_ANDROID_ABI_CLANG_TARGET}") + list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "--target=${CMAKE_${lang}_COMPILER_TARGET}") endif() endmacro() diff --git a/Modules/Platform/GNU.cmake b/Modules/Platform/GNU.cmake index e8c3b65..fac29a8 100644 --- a/Modules/Platform/GNU.cmake +++ b/Modules/Platform/GNU.cmake @@ -8,6 +8,33 @@ set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") +# Debian policy requires that shared libraries be installed without +# executable permission. Fedora policy requires that shared libraries +# be installed with the executable permission. Since the native tools +# create shared libraries with execute permission in the first place a +# reasonable policy seems to be to install with execute permission by +# default. In order to support debian packages we provide an option +# here. The option default is based on the current distribution, but +# packagers can set it explicitly on the command line. +if(DEFINED CMAKE_INSTALL_SO_NO_EXE) + # Store the decision variable in the cache. This preserves any + # setting the user provides on the command line. + set(CMAKE_INSTALL_SO_NO_EXE "${CMAKE_INSTALL_SO_NO_EXE}" CACHE INTERNAL + "Install .so files without execute permission.") +else() + # Store the decision variable as an internal cache entry to avoid + # checking the platform every time. This option is advanced enough + # that only package maintainers should need to adjust it. They are + # capable of providing a setting on the command line. + if(EXISTS "/etc/debian_version") + set(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL + "Install .so files without execute permission.") + else() + set(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL + "Install .so files without execute permission.") + endif() +endif() + set(CMAKE_LIBRARY_ARCHITECTURE_REGEX "[a-z0-9_]+(-[a-z0-9_]+)?-gnu[a-z0-9_]*") include(Platform/UnixPaths) diff --git a/Modules/UseSWIG.cmake b/Modules/UseSWIG.cmake index dc4febc..f20a53b 100644 --- a/Modules/UseSWIG.cmake +++ b/Modules/UseSWIG.cmake @@ -500,6 +500,10 @@ function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile) get_property (compile_options SOURCE "${infile}" PROPERTY GENERATED_COMPILE_OPTIONS) set_property (SOURCE "${swig_generated_file_fullname}" PROPERTY COMPILE_OPTIONS $<TARGET_GENEX_EVAL:${target_name},$<TARGET_PROPERTY:${target_name},SWIG_GENERATED_COMPILE_OPTIONS>> ${compile_options}) + if (SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG MATCHES "php") + set_property (SOURCE "${swig_generated_file_fullname}" APPEND PROPERTY INCLUDE_DIRECTORIES "${outdir}") + endif() + set(${outfiles} "${swig_generated_file_fullname}" ${swig_extra_generated_files} PARENT_SCOPE) # legacy support diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 129c6fb..626dbb8 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 12) -set(CMake_VERSION_PATCH 20181003) -#set(CMake_VERSION_RC 1) +set(CMake_VERSION_MINOR 13) +set(CMake_VERSION_PATCH 0) +set(CMake_VERSION_RC 1) diff --git a/Source/CTest/cmCTestScriptHandler.cxx b/Source/CTest/cmCTestScriptHandler.cxx index 6b62bb4..a87473d 100644 --- a/Source/CTest/cmCTestScriptHandler.cxx +++ b/Source/CTest/cmCTestScriptHandler.cxx @@ -563,7 +563,7 @@ int cmCTestScriptHandler::RunCurrentScript() // now that we have done most of the error checking finally run the // dashboard, we may be asked to repeatedly run this dashboard, such as - // for a continuous, do we ned to run it more than once? + // for a continuous, do we need to run it more than once? if (this->ContinuousDuration >= 0) { this->UpdateElapsedTime(); auto ending_time = diff --git a/Source/CTest/cmParseGTMCoverage.cxx b/Source/CTest/cmParseGTMCoverage.cxx index 822363d..83dde3f 100644 --- a/Source/CTest/cmParseGTMCoverage.cxx +++ b/Source/CTest/cmParseGTMCoverage.cxx @@ -160,7 +160,7 @@ bool cmParseGTMCoverage::ParseMCOVLine(std::string const& line, { // this method parses lines from the .mcov file // each line has ^COVERAGE(...) in it, and there - // are several varients of coverage lines: + // are several variants of coverage lines: // // ^COVERAGE("DIC11","PR1",0)="2:0:0:0" // ( file , entry, line ) = "number_executed:timing_info" diff --git a/Source/cmInstallScriptGenerator.cxx b/Source/cmInstallScriptGenerator.cxx index 3a90f4c..f7e6e44 100644 --- a/Source/cmInstallScriptGenerator.cxx +++ b/Source/cmInstallScriptGenerator.cxx @@ -2,7 +2,6 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmInstallScriptGenerator.h" -#include "cmGeneratorExpression.h" #include "cmScriptGenerator.h" #include <ostream> @@ -17,47 +16,24 @@ cmInstallScriptGenerator::cmInstallScriptGenerator(const char* script, , Script(script) , Code(code) { - // We need per-config actions if the script has generator expressions. - if (cmGeneratorExpression::Find(Script) != std::string::npos) { - this->ActionsPerConfig = true; - } } cmInstallScriptGenerator::~cmInstallScriptGenerator() { } -void cmInstallScriptGenerator::Compute(cmLocalGenerator* lg) +void cmInstallScriptGenerator::GenerateScript(std::ostream& os) { - this->LocalGenerator = lg; -} + Indent indent; + std::string component_test = + this->CreateComponentTest(this->Component.c_str(), this->ExcludeFromAll); + os << indent << "if(" << component_test << ")\n"; -void cmInstallScriptGenerator::AddScriptInstallRule(std::ostream& os, - Indent indent, - std::string const& script) -{ if (this->Code) { - os << indent.Next() << script << "\n"; - } else { - os << indent.Next() << "include(\"" << script << "\")\n"; - } -} - -void cmInstallScriptGenerator::GenerateScriptActions(std::ostream& os, - Indent indent) -{ - if (this->ActionsPerConfig) { - this->cmInstallGenerator::GenerateScriptActions(os, indent); + os << indent.Next() << this->Script << "\n"; } else { - this->AddScriptInstallRule(os, indent, this->Script); + os << indent.Next() << "include(\"" << this->Script << "\")\n"; } -} -void cmInstallScriptGenerator::GenerateScriptForConfig( - std::ostream& os, const std::string& config, Indent indent) -{ - cmGeneratorExpression ge; - std::unique_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(this->Script); - this->AddScriptInstallRule(os, indent, - cge->Evaluate(this->LocalGenerator, config)); + os << indent << "endif()\n\n"; } diff --git a/Source/cmInstallScriptGenerator.h b/Source/cmInstallScriptGenerator.h index 534bc1d..fe0f7c6 100644 --- a/Source/cmInstallScriptGenerator.h +++ b/Source/cmInstallScriptGenerator.h @@ -6,13 +6,10 @@ #include "cmConfigure.h" // IWYU pragma: keep #include "cmInstallGenerator.h" -#include "cmScriptGenerator.h" #include <iosfwd> #include <string> -class cmLocalGenerator; - /** \class cmInstallScriptGenerator * \brief Generate target installation rules. */ @@ -23,18 +20,10 @@ public: const char* component, bool exclude_from_all); ~cmInstallScriptGenerator() override; - void Compute(cmLocalGenerator* lg) override; - protected: - void GenerateScriptActions(std::ostream& os, Indent indent) override; - void GenerateScriptForConfig(std::ostream& os, const std::string& config, - Indent indent) override; - void AddScriptInstallRule(std::ostream& os, Indent indent, - std::string const& script); - + void GenerateScript(std::ostream& os) override; std::string Script; bool Code; - cmLocalGenerator* LocalGenerator; }; #endif 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_COMMAND = "ctestCommand"; 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 @@ Json::Value cmDumpCMakeInputs(const cmake* cm) return array; } -const std::string kInterfaceSourcesLanguageDataKey = - "INTERFACE_SOURCES_LD_KEY"; class LanguageData { public: @@ -184,12 +182,6 @@ void LanguageData::SetDefines(const std::set<std::string>& defines) Defines = std::move(result); } -struct FileGroupSources -{ - bool IsInterfaceSources; - std::vector<std::string> Files; -}; - namespace std { template <> @@ -217,35 +209,31 @@ struct hash<LanguageData> } // 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; + 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); } - includes.append(tmp); + result[kINCLUDE_PATH_KEY] = includes; + } + if (!data.Defines.empty()) { + result[kDEFINES_KEY] = fromStringList(data.Defines); } - 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 @@ static Json::Value DumpSourceFileGroup(const LanguageData& data, 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 @@ static void PopulateFileGroupData( 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 @@ static void PopulateFileGroupData( } 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 @@ Json::Value cmDumpCTestInfo(const cmake* cm) 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 @@ static Json::Value DumpTarget(cmGeneratorTarget* target, 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 @@ static Json::Value DumpTarget(cmGeneratorTarget* target, } 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 @@ static Json::Value DumpTarget(cmGeneratorTarget* target, } } - 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/cmProjectCommand.cxx b/Source/cmProjectCommand.cxx index 305c7a6..8f565c8 100644 --- a/Source/cmProjectCommand.cxx +++ b/Source/cmProjectCommand.cxx @@ -300,19 +300,15 @@ bool cmProjectCommand::InitialPass(std::vector<std::string> const& args, } } - if (haveDescription) { - this->Makefile->AddDefinition("PROJECT_DESCRIPTION", description.c_str()); - this->Makefile->AddDefinition(projectName + "_DESCRIPTION", - description.c_str()); - TopLevelCMakeVarCondSet("CMAKE_PROJECT_DESCRIPTION", description.c_str()); - } + this->Makefile->AddDefinition("PROJECT_DESCRIPTION", description.c_str()); + this->Makefile->AddDefinition(projectName + "_DESCRIPTION", + description.c_str()); + TopLevelCMakeVarCondSet("CMAKE_PROJECT_DESCRIPTION", description.c_str()); - if (haveHomepage) { - this->Makefile->AddDefinition("PROJECT_HOMEPAGE_URL", homepage.c_str()); - this->Makefile->AddDefinition(projectName + "_HOMEPAGE_URL", - homepage.c_str()); - TopLevelCMakeVarCondSet("CMAKE_PROJECT_HOMEPAGE_URL", homepage.c_str()); - } + this->Makefile->AddDefinition("PROJECT_HOMEPAGE_URL", homepage.c_str()); + this->Makefile->AddDefinition(projectName + "_HOMEPAGE_URL", + homepage.c_str()); + TopLevelCMakeVarCondSet("CMAKE_PROJECT_HOMEPAGE_URL", homepage.c_str()); if (languages.empty()) { // if no language is specified do c and c++ 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 @@ bool cmServerProtocol::DoActivate(const cmServerRequest& /*request*/, 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/cmSystemTools.cxx b/Source/cmSystemTools.cxx index 8339aac..d05d660 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -2826,11 +2826,11 @@ bool cmSystemTools::RemoveRPath(std::string const& file, std::string* emsg, // contain the location of the linker map, however on MIPS the // .dynamic section is always read-only so this is not possible. MIPS // objects instead contain a DT_MIPS_RLD_MAP tag which contains the - // address where the dyanmic linker will write to (an indirect + // address where the dynamic linker will write to (an indirect // version of DT_DEBUG). Since this doesn't work when using PIE, a // relative equivalent was created - DT_MIPS_RLD_MAP_REL. Since this // version contains a relative offset, moving it changes the - // calculated address. This may cause the dyanmic linker to write + // calculated address. This may cause the dynamic linker to write // into memory it should not be changing. // // To fix this, we adjust the value of DT_MIPS_RLD_MAP_REL here. If diff --git a/Source/cmTimestamp.cxx b/Source/cmTimestamp.cxx index 14cf6e9..da5d21e 100644 --- a/Source/cmTimestamp.cxx +++ b/Source/cmTimestamp.cxx @@ -96,7 +96,7 @@ time_t cmTimestamp::CreateUtcTimeTFromTm(struct tm& tm) const // From Linux timegm() manpage. std::string tz_old; - cmSystemTools::GetEnv("TZ", tz_old); + bool const tz_was_set = cmSystemTools::GetEnv("TZ", tz_old); tz_old = "TZ=" + tz_old; // The standard says that "TZ=" or "TZ=[UNRECOGNIZED_TZ]" means UTC. @@ -109,7 +109,17 @@ time_t cmTimestamp::CreateUtcTimeTFromTm(struct tm& tm) const time_t result = mktime(&tm); +# ifdef CMAKE_BUILD_WITH_CMAKE + if (tz_was_set) { + cmSystemTools::PutEnv(tz_old); + } else { + cmSystemTools::UnsetEnv("TZ"); + } +# else + // No UnsetEnv during bootstrap. This is good enough for CMake itself. cmSystemTools::PutEnv(tz_old); + static_cast<void>(tz_was_set); +# endif tzset(); diff --git a/Source/cmVS141CLFlagTable.h b/Source/cmVS141CLFlagTable.h index 7d3e356..2a9944a 100644 --- a/Source/cmVS141CLFlagTable.h +++ b/Source/cmVS141CLFlagTable.h @@ -83,6 +83,8 @@ static cmVS7FlagTable cmVS141CLFlagTable[] = { { "FloatingPointModel", "fp:strict", "Strict", "Strict", 0 }, { "FloatingPointModel", "fp:fast", "Fast", "Fast", 0 }, + { "SpectreMitigation", "Qspectre", "Spectre mitigations", "Spectre", 0 }, + { "LanguageStandard", "std:c++17", "ISO C++17 Standard", "stdcpp17", 0 }, { "LanguageStandard", "std:c++14", "ISO C++14 Standard", "stdcpp14", 0 }, { "LanguageStandard", "std:c++latest", "ISO C++ Latest Draft Standard", diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 16eca96..2d39cbb 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1125,6 +1125,9 @@ void cmVisualStudio10TargetGenerator::WriteMSToolConfigurationValues( if (this->IPOEnabledConfigurations.count(config) > 0) { e1.Element("WholeProgramOptimization", "true"); } + if (this->SpectreMitigationConfigurations.count(config) > 0) { + e1.Element("SpectreMitigation", "Spectre"); + } } void cmVisualStudio10TargetGenerator::WriteMSToolConfigurationValuesManaged( @@ -2625,6 +2628,11 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions( } } + if (clOptions.HasFlag("SpectreMitigation")) { + this->SpectreMitigationConfigurations.insert(configName); + clOptions.RemoveFlag("SpectreMitigation"); + } + this->ClOptions[configName] = std::move(pOptions); return true; } @@ -2671,6 +2679,13 @@ void cmVisualStudio10TargetGenerator::WriteClOptions( // Specify the compiler program database file if configured. std::string pdb = this->GeneratorTarget->GetCompilePDBPath(configName); if (!pdb.empty()) { + if (this->GlobalGenerator->IsCudaEnabled()) { + // CUDA does not quote paths with spaces correctly when forwarding + // this to the host compiler. Use a relative path to avoid spaces. + // FIXME: We can likely do this even when CUDA is not involved, + // but for now we will make a minimal change. + pdb = this->ConvertPath(pdb, true); + } ConvertToWindowsSlash(pdb); e2.Element("ProgramDataBaseFileName", pdb); } @@ -2811,15 +2826,19 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaOptions( // Specify the compiler program database file if configured. std::string pdb = this->GeneratorTarget->GetCompilePDBPath(configName); if (!pdb.empty()) { - // CUDA does not have a field for this and does not honor the - // ProgramDataBaseFileName field in ClCompile. Work around this - // limitation by creating the directory and passing the flag ourselves. + // CUDA does not make the directory if it is non-standard. std::string const pdbDir = cmSystemTools::GetFilenamePath(pdb); cmSystemTools::MakeDirectory(pdbDir); - pdb = this->ConvertPath(pdb, true); - ConvertToWindowsSlash(pdb); - std::string const clFd = "-Xcompiler=\"-Fd\\\"" + pdb + "\\\"\""; - cudaOptions.AppendFlagString("AdditionalOptions", clFd); + if (cmSystemTools::VersionCompareGreaterEq( + "9.2", this->GlobalGenerator->GetPlatformToolsetCudaString())) { + // CUDA does not have a field for this and does not honor the + // ProgramDataBaseFileName field in ClCompile. Work around this + // limitation by creating the directory and passing the flag ourselves. + pdb = this->ConvertPath(pdb, true); + ConvertToWindowsSlash(pdb); + std::string const clFd = "-Xcompiler=\"-Fd\\\"" + pdb + "\\\"\""; + cudaOptions.AppendFlagString("AdditionalOptions", clFd); + } } // CUDA automatically passes the proper '--machine' flag to nvcc diff --git a/Source/cmVisualStudio10TargetGenerator.h b/Source/cmVisualStudio10TargetGenerator.h index 829d2bf..0dc03b6 100644 --- a/Source/cmVisualStudio10TargetGenerator.h +++ b/Source/cmVisualStudio10TargetGenerator.h @@ -205,6 +205,7 @@ private: unsigned int NsightTegraVersion[4]; bool TargetCompileAsWinRT; std::set<std::string> IPOEnabledConfigurations; + std::set<std::string> SpectreMitigationConfigurations; cmGlobalVisualStudio10Generator* const GlobalGenerator; cmLocalVisualStudio10Generator* const LocalGenerator; std::set<std::string> CSharpCustomCommandNames; diff --git a/Tests/CMakeLib/testSystemTools.cxx b/Tests/CMakeLib/testSystemTools.cxx index 0dfa326..623ad28 100644 --- a/Tests/CMakeLib/testSystemTools.cxx +++ b/Tests/CMakeLib/testSystemTools.cxx @@ -52,7 +52,7 @@ int testSystemTools(int /*unused*/, char* /*unused*/ []) cmAssert(cmSystemTools::strverscmp("99999999999999", "99999999999991") > 0, "strverscmp natural overflow"); cmAssert(cmSystemTools::strverscmp("00000000000009", "00000000000001") > 0, - "strverscmp deciaml precision"); + "strverscmp decimal precision"); cmAssert(cmSystemTools::strverscmp("a.b.c.0", "a.b.c.000") > 0, "strverscmp multiple zeros"); cmAssert(cmSystemTools::strverscmp("lib_1.2_10", "lib_1.2_2") > 0, diff --git a/Tests/Cuda/Complex/CMakeLists.txt b/Tests/Cuda/Complex/CMakeLists.txt index f4e1923..d3d4b7c 100644 --- a/Tests/Cuda/Complex/CMakeLists.txt +++ b/Tests/Cuda/Complex/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.7) -project (CudaComplex CXX CUDA) +project (Complex CXX CUDA) #Goal for this example: #build a cpp dynamic library base diff --git a/Tests/Cuda/ConsumeCompileFeatures/CMakeLists.txt b/Tests/Cuda/ConsumeCompileFeatures/CMakeLists.txt index 9fda2d0..7098a7d 100644 --- a/Tests/Cuda/ConsumeCompileFeatures/CMakeLists.txt +++ b/Tests/Cuda/ConsumeCompileFeatures/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.7) -project (CudaConsumeCompileFeatures CXX CUDA) +project (ConsumeCompileFeatures CXX CUDA) #Goal for this example: #build a c++11 library that express a c++11 public compile feature diff --git a/Tests/Cuda/MixedStandardLevels/CMakeLists.txt b/Tests/Cuda/MixedStandardLevels/CMakeLists.txt index 683abe7..b399662 100644 --- a/Tests/Cuda/MixedStandardLevels/CMakeLists.txt +++ b/Tests/Cuda/MixedStandardLevels/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.7) -project(CudaComplex CXX CUDA) +project(MixedStandardLevels CXX CUDA) string(APPEND CMAKE_CUDA_FLAGS " -gencode arch=compute_30,code=compute_30") diff --git a/Tests/Cuda/ObjectLibrary/CMakeLists.txt b/Tests/Cuda/ObjectLibrary/CMakeLists.txt index da5fb87..395bd38 100644 --- a/Tests/Cuda/ObjectLibrary/CMakeLists.txt +++ b/Tests/Cuda/ObjectLibrary/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.7) -project (CudaObjectLibrary CUDA CXX) +project (ObjectLibrary CUDA CXX) #Goal for this example: # #Build C++ and CUDA object files and than use them to make an executable diff --git a/Tests/Cuda/WithC/CMakeLists.txt b/Tests/Cuda/WithC/CMakeLists.txt index 831ce12..69aa3f9 100644 --- a/Tests/Cuda/WithC/CMakeLists.txt +++ b/Tests/Cuda/WithC/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.7) -project(CudaComplex CUDA C) +project(WithC CUDA C) string(APPEND CMAKE_CUDA_FLAGS " -gencode arch=compute_30,code=compute_30") diff --git a/Tests/CudaOnly/CircularLinkLine/CMakeLists.txt b/Tests/CudaOnly/CircularLinkLine/CMakeLists.txt index c978e51..5e6f7ab 100644 --- a/Tests/CudaOnly/CircularLinkLine/CMakeLists.txt +++ b/Tests/CudaOnly/CircularLinkLine/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.7) -project (CudaOnlyCircularLinkLine CUDA) +project (CircularLinkLine CUDA) #Goal for this example: # Verify that we de-duplicate the device link line diff --git a/Tests/CudaOnly/EnableStandard/CMakeLists.txt b/Tests/CudaOnly/EnableStandard/CMakeLists.txt index 35a1deb..54e2c14 100644 --- a/Tests/CudaOnly/EnableStandard/CMakeLists.txt +++ b/Tests/CudaOnly/EnableStandard/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.7) -project (CudaOnlyEnableStandard CUDA) +project (EnableStandard CUDA) #Goal for this example: #build cuda sources that require C++11 to be enabled. diff --git a/Tests/CudaOnly/ExportPTX/CMakeLists.txt b/Tests/CudaOnly/ExportPTX/CMakeLists.txt index 65d5243..ff6e77c 100644 --- a/Tests/CudaOnly/ExportPTX/CMakeLists.txt +++ b/Tests/CudaOnly/ExportPTX/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.8) -project (CudaOnlyExportPTX CUDA) +project (ExportPTX CUDA) #Goal for this example: # How to generate PTX files instead of OBJECT files diff --git a/Tests/CudaOnly/GPUDebugFlag/CMakeLists.txt b/Tests/CudaOnly/GPUDebugFlag/CMakeLists.txt index 5b96906..fbef15f 100644 --- a/Tests/CudaOnly/GPUDebugFlag/CMakeLists.txt +++ b/Tests/CudaOnly/GPUDebugFlag/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.7) -project (CudaOnlGPUDebugFlag CUDA) +project (GPUDebugFlag CUDA) #Goal for this example: #verify that -G enables gpu debug flags diff --git a/Tests/CudaOnly/LinkSystemDeviceLibraries/CMakeLists.txt b/Tests/CudaOnly/LinkSystemDeviceLibraries/CMakeLists.txt index 62be1e6..7f7f606 100644 --- a/Tests/CudaOnly/LinkSystemDeviceLibraries/CMakeLists.txt +++ b/Tests/CudaOnly/LinkSystemDeviceLibraries/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.8) -project(CudaOnlyLinkSystemDeviceLibraries CUDA) +project(LinkSystemDeviceLibraries CUDA) string(APPEND CMAKE_CUDA_FLAGS " -gencode arch=compute_35,code=compute_35 -gencode arch=compute_35,code=sm_35") set(CMAKE_CUDA_STANDARD 11) diff --git a/Tests/CudaOnly/PDB/CMakeLists.txt b/Tests/CudaOnly/PDB/CMakeLists.txt index 34e1e5c..6ecf989 100644 --- a/Tests/CudaOnly/PDB/CMakeLists.txt +++ b/Tests/CudaOnly/PDB/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.11) -project (CudaOnlyPDB CUDA) +project (PDB CUDA) add_executable(CudaOnlyPDB main.cu) set_target_properties(CudaOnlyPDB PROPERTIES diff --git a/Tests/CudaOnly/ResolveDeviceSymbols/CMakeLists.txt b/Tests/CudaOnly/ResolveDeviceSymbols/CMakeLists.txt index 0c453a9..796e133 100644 --- a/Tests/CudaOnly/ResolveDeviceSymbols/CMakeLists.txt +++ b/Tests/CudaOnly/ResolveDeviceSymbols/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.7) -project (CudaOnlyResolveDeviceSymbols CUDA) +project (ResolveDeviceSymbols CUDA) # Find nm and dumpbin if(CMAKE_NM) diff --git a/Tests/CudaOnly/SeparateCompilation/CMakeLists.txt b/Tests/CudaOnly/SeparateCompilation/CMakeLists.txt index c934c51..1e574d6 100644 --- a/Tests/CudaOnly/SeparateCompilation/CMakeLists.txt +++ b/Tests/CudaOnly/SeparateCompilation/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.7) -project (CudaOnlySeparateCompilation CUDA) +project (SeparateCompilation CUDA) #Goal for this example: #Build a static library that defines multiple methods and kernels that diff --git a/Tests/CudaOnly/WithDefs/CMakeLists.txt b/Tests/CudaOnly/WithDefs/CMakeLists.txt index 926d9ed..e58204d 100644 --- a/Tests/CudaOnly/WithDefs/CMakeLists.txt +++ b/Tests/CudaOnly/WithDefs/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.7) -project (CudaOnlyWithDefs CUDA) +project (WithDefs CUDA) #verify that we can pass explicit cuda arch flags string(APPEND CMAKE_CUDA_FLAGS " -gencode arch=compute_30,code=compute_30") diff --git a/Tests/QtAutogen/MocIncludeRelaxed/CMakeLists.txt b/Tests/QtAutogen/MocIncludeRelaxed/CMakeLists.txt index b1c4fc3..1ad6238 100644 --- a/Tests/QtAutogen/MocIncludeRelaxed/CMakeLists.txt +++ b/Tests/QtAutogen/MocIncludeRelaxed/CMakeLists.txt @@ -9,7 +9,7 @@ set(CMAKE_AUTOMOC_RELAXED_MODE TRUE) set(MOC_INCLUDE_NAME "mocIncludeRelaxed") include(${CMAKE_CURRENT_SOURCE_DIR}/../MocInclude/shared.cmake) -# Relaxed ony executable +# Relaxed only executable add_executable(mocIncludeRelaxedOnly RObjA.cpp RObjB.cpp diff --git a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_VERSION_OPERATORS.cmake b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_VERSION_OPERATORS.cmake new file mode 100644 index 0000000..2a505c6 --- /dev/null +++ b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_VERSION_OPERATORS.cmake @@ -0,0 +1,83 @@ +cmake_minimum_required(VERSION 3.12) + +project(FindPkgConfig_IMPORTED_TARGET C) + +find_package(PkgConfig REQUIRED) + +message(STATUS "source: ${CMAKE_CURRENT_SOURCE_DIR} bin ${CMAKE_CURRENT_BINARY_DIR}") + +# Setup for the remaining package tests below +set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH) +set(fakePkgDir ${CMAKE_CURRENT_BINARY_DIR}/pc-fakepackage) +file(WRITE ${fakePkgDir}/lib/libcmakeinternalfakepackage.a "") +file(WRITE ${fakePkgDir}/lib/cmakeinternalfakepackage.lib "") +file(WRITE ${fakePkgDir}/lib/pkgconfig/cmakeinternalfakepackage.pc +"Name: CMakeInternalFakePackage +Description: Dummy package for FindPkgConfig VERSION_OPERATORS test +Version: 8.9 +Libs: -lcmakeinternalfakepackage +") + +# Always find the .pc file in the calls further below so that we can test that +# the import target find_library() calls handle the NO...PATH options correctly +set(ENV{PKG_CONFIG_PATH} ${fakePkgDir}/lib/pkgconfig) + +pkg_check_modules(FakePackageGE REQUIRED QUIET "cmakeinternalfakepackage >= 8") +if (NOT FakePackageGE_FOUND) + message(FATAL_ERROR "fake package >= 8 not found") +endif() + +pkg_check_modules(FakePackageGE_FAIL QUIET "cmakeinternalfakepackage >= 8.10") +if (FakePackageGE_FAIL_FOUND) + message(FATAL_ERROR "fake package >= 8.10 found") +endif() + +pkg_check_modules(FakePackageLE REQUIRED QUIET "cmakeinternalfakepackage<=9") +if (NOT FakePackageLE_FOUND) + message(FATAL_ERROR "fake package <= 9 not found") +endif() + +pkg_check_modules(FakePackageLE_FAIL QUIET "cmakeinternalfakepackage <= 8.1") +if (FakePackageLE_FAIL_FOUND) + message(FATAL_ERROR "fake package <= 8.1 found") +endif() + +pkg_check_modules(FakePackageGT REQUIRED QUIET "cmakeinternalfakepackage > 8") +if (NOT FakePackageGT_FOUND) + message(FATAL_ERROR "fake package > 8 not found") +endif() + +pkg_check_modules(FakePackageGT_FAIL QUIET "cmakeinternalfakepackage > 8.9") +if (FakePackageGT_FAIL_FOUND) + message(FATAL_ERROR "fake package > 8.9 found") +endif() + +pkg_check_modules(FakePackageLT REQUIRED QUIET "cmakeinternalfakepackage<9") +if (NOT FakePackageLT_FOUND) + message(FATAL_ERROR "fake package < 9 not found") +endif() + +pkg_check_modules(FakePackageLT_FAIL QUIET "cmakeinternalfakepackage < 8.9") +if (FakePackageLT_FAIL_FOUND) + message(FATAL_ERROR "fake package < 8.9 found") +endif() + +pkg_check_modules(FakePackageEQ REQUIRED QUIET "cmakeinternalfakepackage=8.9") +if (NOT FakePackageEQ_FOUND) + message(FATAL_ERROR "fake package = 8.9 not found") +endif() + +pkg_check_modules(FakePackageEQ_FAIL QUIET "cmakeinternalfakepackage = 8.8") +if (FakePackageEQ_FAIL_FOUND) + message(FATAL_ERROR "fake package = 8.8 found") +endif() + +pkg_check_modules(FakePackageEQ_INV QUIET "cmakeinternalfakepackage == 8.9") +if (FakePackageEQ_FAIL_FOUND) + message(FATAL_ERROR "fake package == 8.9 found") +endif() + +pkg_check_modules(FakePackageLLT_INV QUIET "cmakeinternalfakepackage <<= 9") +if (FakePackageLLT_FAIL_FOUND) + message(FATAL_ERROR "fake package <<= 9 found") +endif() diff --git a/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake b/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake index e12b52f..671ff51 100644 --- a/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake +++ b/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake @@ -16,4 +16,5 @@ if (PKG_CONFIG_FOUND) run_cmake(FindPkgConfig_GET_VARIABLE) run_cmake(FindPkgConfig_cache_variables) run_cmake(FindPkgConfig_IMPORTED_TARGET) + run_cmake(FindPkgConfig_VERSION_OPERATORS) endif () 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/install/CODE-genex-bad-result.txt b/Tests/RunCMake/Syntax/CMP0053-Dollar-OLD-result.txt index d00491f..d00491f 100644 --- a/Tests/RunCMake/install/CODE-genex-bad-result.txt +++ b/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-NameWithNewlineQuoted) 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/install/CODE-genex-bad-stderr.txt b/Tests/RunCMake/install/CODE-genex-bad-stderr.txt deleted file mode 100644 index 9844158..0000000 --- a/Tests/RunCMake/install/CODE-genex-bad-stderr.txt +++ /dev/null @@ -1,6 +0,0 @@ -CMake Error: - Error evaluating generator expression: - - \$<NOTAGENEX> - - Expression did not evaluate to a known generator expression diff --git a/Tests/RunCMake/install/CODE-genex-bad.cmake b/Tests/RunCMake/install/CODE-genex-bad.cmake deleted file mode 100644 index 1663b39..0000000 --- a/Tests/RunCMake/install/CODE-genex-bad.cmake +++ /dev/null @@ -1 +0,0 @@ -install(CODE "message(\"$<NOTAGENEX>\")") diff --git a/Tests/RunCMake/install/CODE-genex-check.cmake b/Tests/RunCMake/install/CODE-genex-check.cmake deleted file mode 100644 index 422c532..0000000 --- a/Tests/RunCMake/install/CODE-genex-check.cmake +++ /dev/null @@ -1,7 +0,0 @@ -execute_process(COMMAND ${CMAKE_COMMAND} -P ${RunCMake_TEST_BINARY_DIR}/cmake_install.cmake - OUTPUT_VARIABLE out ERROR_VARIABLE err) -if(NOT out MATCHES "-- Install configuration: .*-- codegenexlib") - string(REGEX REPLACE "\n" "\n " out " ${out}") - string(APPEND RunCMake_TEST_FAILED - "\"-- codegenexlib\" was not found:\n${out}") -endif() diff --git a/Tests/RunCMake/install/CODE-genex.cmake b/Tests/RunCMake/install/CODE-genex.cmake deleted file mode 100644 index 3b8513d..0000000 --- a/Tests/RunCMake/install/CODE-genex.cmake +++ /dev/null @@ -1,2 +0,0 @@ -add_library( codegenexlib INTERFACE ) -install(CODE "message( STATUS \"$<TARGET_PROPERTY:codegenexlib,NAME>\")") diff --git a/Tests/RunCMake/install/RunCMakeTest.cmake b/Tests/RunCMake/install/RunCMakeTest.cmake index 91524a6..ec022ca 100644 --- a/Tests/RunCMake/install/RunCMakeTest.cmake +++ b/Tests/RunCMake/install/RunCMakeTest.cmake @@ -65,8 +65,6 @@ run_cmake(CMP0062-NEW) run_cmake(CMP0062-WARN) run_cmake(TARGETS-NAMELINK_COMPONENT-bad-all) run_cmake(TARGETS-NAMELINK_COMPONENT-bad-exc) -run_cmake(CODE-genex) -run_cmake(CODE-genex-bad) if(NOT RunCMake_GENERATOR STREQUAL "Xcode" OR NOT "$ENV{CMAKE_OSX_ARCHITECTURES}" MATCHES "[;$]") run_install_test(FILES-TARGET_OBJECTS) diff --git a/Tests/RunCMake/project/ProjectTwice.cmake b/Tests/RunCMake/project/ProjectTwice.cmake new file mode 100644 index 0000000..d053834 --- /dev/null +++ b/Tests/RunCMake/project/ProjectTwice.cmake @@ -0,0 +1,26 @@ +cmake_policy(SET CMP0048 NEW) +project(ProjectTwiceTestFirst + VERSION 1.2.3.4 + DESCRIPTION "Test Project" + HOMEPAGE_URL "http://example.com" + LANGUAGES NONE +) + +project(ProjectTwiceTestSecond LANGUAGES NONE) + +foreach(var + PROJECT_VERSION + PROJECT_VERSION_MAJOR + PROJECT_VERSION_MINOR + PROJECT_VERSION_PATCH + PROJECT_VERSION_TWEAK + PROJECT_DESCRIPTION + PROJECT_HOMEPAGE_URL +) + if(${var}) + message(SEND_ERROR "${var} set but should be empty") + endif() + if(CMAKE_${var}) + message(SEND_ERROR "CMAKE_${var} set but should be empty") + endif() +endforeach() diff --git a/Tests/RunCMake/project/RunCMakeTest.cmake b/Tests/RunCMake/project/RunCMakeTest.cmake index e9fb929..3a8ad4b 100644 --- a/Tests/RunCMake/project/RunCMakeTest.cmake +++ b/Tests/RunCMake/project/RunCMakeTest.cmake @@ -15,6 +15,7 @@ run_cmake(ProjectDescriptionNoArg2) run_cmake(ProjectHomepage) run_cmake(ProjectHomepage2) run_cmake(ProjectHomepageNoArg) +run_cmake(ProjectTwice) run_cmake(VersionAndLanguagesEmpty) run_cmake(VersionEmpty) run_cmake(VersionInvalid) 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 @@ cd \${name}-build && -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/Release/upload_release.cmake b/Utilities/Release/upload_release.cmake index 1edcd65..bbc7437 100644 --- a/Utilities/Release/upload_release.cmake +++ b/Utilities/Release/upload_release.cmake @@ -1,6 +1,6 @@ set(CTEST_RUN_CURRENT_SCRIPT 0) if(NOT VERSION) - set(VERSION 3.12) + set(VERSION 3.13) endif() if(NOT DEFINED PROJECT_PREFIX) set(PROJECT_PREFIX cmake-${VERSION}) |