summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2020-03-20 14:28:55 -0700
committerHaibo Huang <hhb@google.com>2020-03-20 14:39:39 -0700
commit82cd051f0b358a85f268ddcc4320c12ef3fd7097 (patch)
tree720444adf4bb0d7698dc953c6706c2955621089f
parentd00577c9d4ee9a42fb5158f49a1ebce8047b0bd8 (diff)
downloaddarwin-x86-82cd051f0b358a85f268ddcc4320c12ef3fd7097.tar.gz
Upgrade cmake prebuilt to 3.17.0 [Darwin]
Built at: http://fusion/62f916ad-981c-481b-90fe-89fa033e9ef6 Change-Id: Icfd765935145267a3bfe7839446eb0bf623810d4
-rwxr-xr-xbin/ccmakebin9015860 -> 0 bytes
-rwxr-xr-xbin/cmakebin9462524 -> 0 bytes
-rwxr-xr-xbin/cmake.exebin0 -> 9919488 bytes
-rwxr-xr-xbin/cmcldeps.exebin0 -> 1067008 bytes
-rwxr-xr-xbin/cpackbin9786740 -> 0 bytes
-rwxr-xr-xbin/cpack.exebin0 -> 9735168 bytes
-rwxr-xr-xbin/ctestbin10553032 -> 0 bytes
-rwxr-xr-xbin/ctest.exebin0 -> 10690048 bytes
-rw-r--r--doc/cmake-3.16/Copyright.txt131
-rw-r--r--doc/cmake-3.17/Copyright.txt132
-rw-r--r--doc/cmake-3.17/cmake.org.html7
-rw-r--r--doc/cmake-3.17/cmcurl/COPYING (renamed from doc/cmake-3.16/cmcurl/COPYING)0
-rw-r--r--doc/cmake-3.17/cmlibarchive/COPYING (renamed from doc/cmake-3.16/cmlibarchive/COPYING)0
-rw-r--r--doc/cmake-3.17/cmliblzma/COPYING (renamed from doc/cmake-3.16/cmliblzma/COPYING)0
-rw-r--r--doc/cmake-3.17/cmlibrhash/COPYING (renamed from doc/cmake-3.16/cmlibrhash/COPYING)0
-rw-r--r--doc/cmake-3.17/cmlibrhash/README (renamed from doc/cmake-3.16/cmlibrhash/README)0
-rw-r--r--doc/cmake-3.17/cmlibuv/LICENSE (renamed from doc/cmake-3.16/cmlibuv/LICENSE)0
-rw-r--r--doc/cmake-3.17/cmsys/Copyright.txt (renamed from doc/cmake-3.16/cmsys/Copyright.txt)0
-rw-r--r--doc/cmake-3.17/cmzlib/Copyright.txt (renamed from doc/cmake-3.16/cmzlib/Copyright.txt)0
-rw-r--r--doc/cmake-3.17/cmzstd/LICENSE (renamed from doc/cmake-3.16/cmzstd/LICENSE)0
-rw-r--r--share/cmake-3.16/Help/command/add_custom_command.rst260
-rw-r--r--share/cmake-3.16/Help/command/add_custom_target.rst146
-rw-r--r--share/cmake-3.16/Help/command/ctest_test.rst120
-rw-r--r--share/cmake-3.16/Help/command/file.rst848
-rw-r--r--share/cmake-3.16/Help/command/foreach.rst84
-rw-r--r--share/cmake-3.16/Help/command/macro.rst140
-rw-r--r--share/cmake-3.16/Help/command/mark_as_advanced.rst24
-rw-r--r--share/cmake-3.16/Help/command/message.rst70
-rw-r--r--share/cmake-3.16/Help/command/project.rst130
-rw-r--r--share/cmake-3.16/Help/command/target_compile_features.rst33
-rw-r--r--share/cmake-3.16/Help/cpack_gen/dmg.rst101
-rw-r--r--share/cmake-3.16/Help/cpack_gen/ifw.rst339
-rw-r--r--share/cmake-3.16/Help/cpack_gen/nsis.rst130
-rw-r--r--share/cmake-3.16/Help/cpack_gen/packagemaker.rst23
-rw-r--r--share/cmake-3.16/Help/cpack_gen/productbuild.rst68
-rw-r--r--share/cmake-3.16/Help/generator/Ninja.rst40
-rw-r--r--share/cmake-3.16/Help/index.rst73
-rw-r--r--share/cmake-3.16/Help/manual/cmake-compile-features.7.rst375
-rw-r--r--share/cmake-3.16/Help/manual/cmake-env-variables.7.rst73
-rw-r--r--share/cmake-3.16/Help/manual/cmake-file-api.7.rst1113
-rw-r--r--share/cmake-3.16/Help/manual/cmake-generator-expressions.7.rst657
-rw-r--r--share/cmake-3.16/Help/manual/cmake-generators.7.rst117
-rw-r--r--share/cmake-3.16/Help/manual/cmake-language.7.rst627
-rw-r--r--share/cmake-3.16/Help/manual/cmake-modules.7.rst317
-rw-r--r--share/cmake-3.16/Help/manual/cmake-policies.7.rst270
-rw-r--r--share/cmake-3.16/Help/manual/cmake-properties.7.rst552
-rw-r--r--share/cmake-3.16/Help/manual/cmake-toolchains.7.rst663
-rw-r--r--share/cmake-3.16/Help/manual/cmake-variables.7.rst662
-rw-r--r--share/cmake-3.16/Help/manual/cmake.1.rst676
-rw-r--r--share/cmake-3.16/Help/manual/ctest.1.rst1531
-rw-r--r--share/cmake-3.16/Help/prop_sf/GENERATED.rst23
-rw-r--r--share/cmake-3.16/Help/prop_tgt/AUTOGEN_PARALLEL.rst21
-rw-r--r--share/cmake-3.16/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst36
-rw-r--r--share/cmake-3.16/Help/prop_tgt/AUTOMOC.rst247
-rw-r--r--share/cmake-3.16/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst104
-rw-r--r--share/cmake-3.16/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst15
-rw-r--r--share/cmake-3.16/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst32
-rw-r--r--share/cmake-3.16/Help/prop_tgt/AUTORCC.rst61
-rw-r--r--share/cmake-3.16/Help/prop_tgt/AUTORCC_OPTIONS.rst30
-rw-r--r--share/cmake-3.16/Help/prop_tgt/AUTOUIC.rst82
-rw-r--r--share/cmake-3.16/Help/prop_tgt/AUTOUIC_OPTIONS.rst34
-rw-r--r--share/cmake-3.16/Help/prop_tgt/COMPILE_FEATURES.rst12
-rw-r--r--share/cmake-3.16/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst13
-rw-r--r--share/cmake-3.16/Help/prop_tgt/INSTALL_NAME_DIR.rst12
-rw-r--r--share/cmake-3.16/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst10
-rw-r--r--share/cmake-3.16/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt10
-rw-r--r--share/cmake-3.16/Help/prop_tgt/SOVERSION.rst27
-rw-r--r--share/cmake-3.16/Help/prop_tgt/VERSION.rst29
-rw-r--r--share/cmake-3.16/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst10
-rw-r--r--share/cmake-3.16/Help/release/3.16.rst279
-rw-r--r--share/cmake-3.16/Help/release/index.rst32
-rw-r--r--share/cmake-3.16/Help/variable/CMAKE_CFG_INTDIR.rst45
-rw-r--r--share/cmake-3.16/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst16
-rw-r--r--share/cmake-3.16/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst34
-rw-r--r--share/cmake-3.16/Help/variable/CMAKE_GENERATOR_TOOLSET.rst60
-rw-r--r--share/cmake-3.16/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst26
-rw-r--r--share/cmake-3.16/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst8
-rw-r--r--share/cmake-3.16/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst9
-rw-r--r--share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst7
-rw-r--r--share/cmake-3.16/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst31
-rw-r--r--share/cmake-3.16/Help/variable/CMAKE_PROJECT_INCLUDE.rst9
-rw-r--r--share/cmake-3.16/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst9
-rw-r--r--share/cmake-3.16/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst10
-rw-r--r--share/cmake-3.16/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst8
-rw-r--r--share/cmake-3.16/Help/variable/CTEST_CONFIGURATION_TYPE.rst5
-rw-r--r--share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_TYPE.rst8
-rw-r--r--share/cmake-3.16/Modules/AndroidTestUtilities.cmake164
-rw-r--r--share/cmake-3.16/Modules/CMakeAddFortranSubdirectory.cmake203
-rw-r--r--share/cmake-3.16/Modules/CMakeCInformation.cmake190
-rw-r--r--share/cmake-3.16/Modules/CMakeCSharpInformation.cmake67
-rw-r--r--share/cmake-3.16/Modules/CMakeCUDACompiler.cmake.in32
-rw-r--r--share/cmake-3.16/Modules/CMakeCUDACompilerId.cu.in52
-rw-r--r--share/cmake-3.16/Modules/CMakeCUDAInformation.cmake208
-rw-r--r--share/cmake-3.16/Modules/CMakeCXXInformation.cmake277
-rw-r--r--share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake35
-rw-r--r--share/cmake-3.16/Modules/CMakeDetermineCUDACompiler.cmake225
-rw-r--r--share/cmake-3.16/Modules/CMakeDetermineCompileFeatures.cmake96
-rw-r--r--share/cmake-3.16/Modules/CMakeDetermineCompilerABI.cmake174
-rw-r--r--share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake910
-rw-r--r--share/cmake-3.16/Modules/CMakeDetermineFortranCompiler.cmake290
-rw-r--r--share/cmake-3.16/Modules/CMakeDetermineSwiftCompiler.cmake78
-rw-r--r--share/cmake-3.16/Modules/CMakeDetermineSystem.cmake189
-rw-r--r--share/cmake-3.16/Modules/CMakeFortranCompiler.cmake.in67
-rw-r--r--share/cmake-3.16/Modules/CMakeFortranInformation.cmake217
-rw-r--r--share/cmake-3.16/Modules/CMakeGenericSystem.cmake187
-rw-r--r--share/cmake-3.16/Modules/CMakeGraphVizOptions.cmake123
-rw-r--r--share/cmake-3.16/Modules/CMakeMinGWFindMake.cmake16
-rw-r--r--share/cmake-3.16/Modules/CMakeNinjaFindMake.cmake8
-rw-r--r--share/cmake-3.16/Modules/CMakeOBJCInformation.cmake188
-rw-r--r--share/cmake-3.16/Modules/CMakeOBJCXXInformation.cmake273
-rw-r--r--share/cmake-3.16/Modules/CMakePrintSystemInformation.cmake41
-rw-r--r--share/cmake-3.16/Modules/CMakeSwiftCompiler.cmake.in14
-rw-r--r--share/cmake-3.16/Modules/CMakeSwiftInformation.cmake98
-rw-r--r--share/cmake-3.16/Modules/CMakeTestCCompiler.cmake97
-rw-r--r--share/cmake-3.16/Modules/CMakeTestCSharpCompiler.cmake65
-rw-r--r--share/cmake-3.16/Modules/CMakeTestCUDACompiler.cmake77
-rw-r--r--share/cmake-3.16/Modules/CMakeTestCXXCompiler.cmake90
-rw-r--r--share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake27
-rw-r--r--share/cmake-3.16/Modules/CMakeTestFortranCompiler.cmake102
-rw-r--r--share/cmake-3.16/Modules/CMakeTestOBJCCompiler.cmake94
-rw-r--r--share/cmake-3.16/Modules/CMakeTestOBJCXXCompiler.cmake93
-rw-r--r--share/cmake-3.16/Modules/CMakeTestSwiftCompiler.cmake59
-rw-r--r--share/cmake-3.16/Modules/CPack.cmake779
-rw-r--r--share/cmake-3.16/Modules/CPackIFW.cmake740
-rw-r--r--share/cmake-3.16/Modules/CTest.cmake273
-rw-r--r--share/cmake-3.16/Modules/CheckCCompilerFlag.cmake63
-rw-r--r--share/cmake-3.16/Modules/CheckCSourceCompiles.cmake145
-rw-r--r--share/cmake-3.16/Modules/CheckCSourceRuns.cmake145
-rw-r--r--share/cmake-3.16/Modules/CheckCXXCompilerFlag.cmake63
-rw-r--r--share/cmake-3.16/Modules/CheckCXXSourceCompiles.cmake146
-rw-r--r--share/cmake-3.16/Modules/CheckCXXSourceRuns.cmake145
-rw-r--r--share/cmake-3.16/Modules/CheckFortranFunctionExists.cmake85
-rw-r--r--share/cmake-3.16/Modules/CheckFortranSourceCompiles.cmake168
-rw-r--r--share/cmake-3.16/Modules/CheckFortranSourceRuns.cmake175
-rw-r--r--share/cmake-3.16/Modules/CheckFunctionExists.cmake119
-rw-r--r--share/cmake-3.16/Modules/CheckIncludeFile.cmake130
-rw-r--r--share/cmake-3.16/Modules/CheckIncludeFileCXX.cmake129
-rw-r--r--share/cmake-3.16/Modules/CheckIncludeFiles.cmake168
-rw-r--r--share/cmake-3.16/Modules/CheckLanguage.cmake98
-rw-r--r--share/cmake-3.16/Modules/CheckLibraryExists.cmake99
-rw-r--r--share/cmake-3.16/Modules/CheckOBJCSourceCompiles.cmake145
-rw-r--r--share/cmake-3.16/Modules/CheckOBJCSourceRuns.cmake145
-rw-r--r--share/cmake-3.16/Modules/CheckOBJCXXSourceCompiles.cmake146
-rw-r--r--share/cmake-3.16/Modules/CheckOBJCXXSourceRuns.cmake145
-rw-r--r--share/cmake-3.16/Modules/CheckPrototypeDefinition.cmake122
-rw-r--r--share/cmake-3.16/Modules/CheckSymbolExists.cmake166
-rw-r--r--share/cmake-3.16/Modules/CheckTypeSize.cmake270
-rw-r--r--share/cmake-3.16/Modules/CheckVariableExists.cmake85
-rw-r--r--share/cmake-3.16/Modules/Compiler/AppleClang-CXX.cmake42
-rw-r--r--share/cmake-3.16/Modules/Compiler/AppleClang-OBJCXX.cmake39
-rw-r--r--share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake136
-rw-r--r--share/cmake-3.16/Modules/Compiler/Clang-C.cmake42
-rw-r--r--share/cmake-3.16/Modules/Compiler/Clang-CXX.cmake130
-rw-r--r--share/cmake-3.16/Modules/Compiler/Clang.cmake107
-rw-r--r--share/cmake-3.16/Modules/Compiler/Intel-C.cmake49
-rw-r--r--share/cmake-3.16/Modules/Compiler/Intel-CXX.cmake84
-rw-r--r--share/cmake-3.16/Modules/Compiler/MSVC-C.cmake38
-rw-r--r--share/cmake-3.16/Modules/Compiler/MSVC-CXX.cmake72
-rw-r--r--share/cmake-3.16/Modules/Compiler/NAG-Fortran.cmake39
-rw-r--r--share/cmake-3.16/Modules/Compiler/NVIDIA-CUDA.cmake48
-rw-r--r--share/cmake-3.16/Modules/Compiler/QCC.cmake34
-rw-r--r--share/cmake-3.16/Modules/Compiler/XL-Fortran.cmake20
-rw-r--r--share/cmake-3.16/Modules/CompilerId/VS-10.vcxproj.in69
-rw-r--r--share/cmake-3.16/Modules/DartConfiguration.tcl.in105
-rw-r--r--share/cmake-3.16/Modules/DeployQt4.cmake400
-rw-r--r--share/cmake-3.16/Modules/ExternalProject.cmake3249
-rw-r--r--share/cmake-3.16/Modules/FetchContent.cmake1061
-rw-r--r--share/cmake-3.16/Modules/FindBLAS.cmake820
-rw-r--r--share/cmake-3.16/Modules/FindBoost.cmake2355
-rw-r--r--share/cmake-3.16/Modules/FindCUDA.cmake2012
-rw-r--r--share/cmake-3.16/Modules/FindCUDA/run_nvcc.cmake306
-rw-r--r--share/cmake-3.16/Modules/FindCURL.cmake177
-rw-r--r--share/cmake-3.16/Modules/FindCurses.cmake267
-rw-r--r--share/cmake-3.16/Modules/FindDCMTK.cmake322
-rw-r--r--share/cmake-3.16/Modules/FindFLEX.cmake221
-rw-r--r--share/cmake-3.16/Modules/FindGLEW.cmake342
-rw-r--r--share/cmake-3.16/Modules/FindGTK2.cmake954
-rw-r--r--share/cmake-3.16/Modules/FindGTest.cmake243
-rw-r--r--share/cmake-3.16/Modules/FindLAPACK.cmake442
-rw-r--r--share/cmake-3.16/Modules/FindLibArchive.cmake61
-rw-r--r--share/cmake-3.16/Modules/FindLibXml2.cmake102
-rw-r--r--share/cmake-3.16/Modules/FindLua.cmake237
-rw-r--r--share/cmake-3.16/Modules/FindMFC.cmake71
-rw-r--r--share/cmake-3.16/Modules/FindMPI.cmake1769
-rw-r--r--share/cmake-3.16/Modules/FindMatlab.cmake1833
-rw-r--r--share/cmake-3.16/Modules/FindOpenACC.cmake283
-rw-r--r--share/cmake-3.16/Modules/FindOpenGL.cmake545
-rw-r--r--share/cmake-3.16/Modules/FindOpenMP.cmake586
-rw-r--r--share/cmake-3.16/Modules/FindOpenSSL.cmake529
-rw-r--r--share/cmake-3.16/Modules/FindPNG.cmake150
-rw-r--r--share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake401
-rw-r--r--share/cmake-3.16/Modules/FindPkgConfig.cmake772
-rw-r--r--share/cmake-3.16/Modules/FindProtobuf.cmake659
-rw-r--r--share/cmake-3.16/Modules/FindPython.cmake359
-rw-r--r--share/cmake-3.16/Modules/FindPython/Support.cmake2384
-rw-r--r--share/cmake-3.16/Modules/FindPython2.cmake267
-rw-r--r--share/cmake-3.16/Modules/FindPython3.cmake308
-rw-r--r--share/cmake-3.16/Modules/FindTCL.cmake239
-rw-r--r--share/cmake-3.16/Modules/FindThreads.cmake234
-rw-r--r--share/cmake-3.16/Modules/FortranCInterface.cmake392
-rw-r--r--share/cmake-3.16/Modules/FortranCInterface/Detect.cmake178
-rw-r--r--share/cmake-3.16/Modules/GNUInstallDirs.cmake384
-rw-r--r--share/cmake-3.16/Modules/GetPrerequisites.cmake1047
-rw-r--r--share/cmake-3.16/Modules/Internal/CPack/CPackDeb.cmake766
-rw-r--r--share/cmake-3.16/Modules/Internal/CPack/CPackFreeBSD.cmake107
-rw-r--r--share/cmake-3.16/Modules/Internal/CPack/CPackNuGet.cmake363
-rw-r--r--share/cmake-3.16/Modules/Internal/CPack/CPackRPM.cmake1881
-rw-r--r--share/cmake-3.16/Modules/Internal/CPack/NSIS.template.in972
-rw-r--r--share/cmake-3.16/Modules/Internal/FeatureTesting.cmake105
-rw-r--r--share/cmake-3.16/Modules/Platform/AIX-GNU.cmake33
-rw-r--r--share/cmake-3.16/Modules/Platform/AIX-XL.cmake41
-rw-r--r--share/cmake-3.16/Modules/Platform/AIX/ExportImportList53
-rw-r--r--share/cmake-3.16/Modules/Platform/Android-Clang.cmake48
-rw-r--r--share/cmake-3.16/Modules/Platform/Android-Determine.cmake414
-rw-r--r--share/cmake-3.16/Modules/Platform/Android-Initialize.cmake49
-rw-r--r--share/cmake-3.16/Modules/Platform/Android.cmake19
-rw-r--r--share/cmake-3.16/Modules/Platform/Android/Determine-Compiler.cmake75
-rw-r--r--share/cmake-3.16/Modules/Platform/Apple-GNU.cmake57
-rw-r--r--share/cmake-3.16/Modules/Platform/Darwin-Initialize.cmake153
-rw-r--r--share/cmake-3.16/Modules/Platform/Darwin.cmake220
-rw-r--r--share/cmake-3.16/Modules/Platform/Generic-SDCC-C.cmake55
-rw-r--r--share/cmake-3.16/Modules/Platform/Windows-Clang.cmake157
-rw-r--r--share/cmake-3.16/Modules/Platform/Windows-Embarcadero.cmake136
-rw-r--r--share/cmake-3.16/Modules/Platform/Windows-GNU.cmake210
-rw-r--r--share/cmake-3.16/Modules/Platform/Windows-MSVC.cmake443
-rw-r--r--share/cmake-3.16/Modules/Platform/Windows-NVIDIA-CUDA.cmake95
-rw-r--r--share/cmake-3.16/Modules/Platform/Windows-PGI.cmake48
-rw-r--r--share/cmake-3.16/Modules/Qt4Macros.cmake514
-rw-r--r--share/cmake-3.16/Modules/TestBigEndian.cmake122
-rw-r--r--share/cmake-3.16/Modules/TestCXXAcceptsFlag.cmake44
-rw-r--r--share/cmake-3.16/Modules/TestForANSIForScope.cmake43
-rw-r--r--share/cmake-3.16/Modules/TestForSSTREAM.cmake41
-rw-r--r--share/cmake-3.16/Modules/TestForSTDNamespace.cmake41
-rw-r--r--share/cmake-3.16/Modules/UseJava.cmake1446
-rw-r--r--share/cmake-3.16/Templates/MSBuild/FlagTables/v10_Cuda.json224
-rw-r--r--share/cmake-3.16/editors/vim/syntax/cmake.vim3363
-rw-r--r--share/cmake-3.16/include/cmCPluginAPI.h236
-rw-r--r--share/cmake-3.17/Help/command/FIND_XXX.txt (renamed from share/cmake-3.16/Help/command/FIND_XXX.txt)0
-rw-r--r--share/cmake-3.17/Help/command/FIND_XXX_ORDER.txt (renamed from share/cmake-3.16/Help/command/FIND_XXX_ORDER.txt)0
-rw-r--r--share/cmake-3.17/Help/command/FIND_XXX_ROOT.txt (renamed from share/cmake-3.16/Help/command/FIND_XXX_ROOT.txt)0
-rw-r--r--share/cmake-3.17/Help/command/LINK_OPTIONS_LINKER.txt (renamed from share/cmake-3.16/Help/command/LINK_OPTIONS_LINKER.txt)0
-rw-r--r--share/cmake-3.17/Help/command/OPTIONS_SHELL.txt (renamed from share/cmake-3.16/Help/command/OPTIONS_SHELL.txt)0
-rw-r--r--share/cmake-3.17/Help/command/add_compile_definitions.rst (renamed from share/cmake-3.16/Help/command/add_compile_definitions.rst)0
-rw-r--r--share/cmake-3.17/Help/command/add_compile_options.rst (renamed from share/cmake-3.16/Help/command/add_compile_options.rst)0
-rw-r--r--share/cmake-3.17/Help/command/add_custom_command.rst281
-rw-r--r--share/cmake-3.17/Help/command/add_custom_target.rst149
-rw-r--r--share/cmake-3.17/Help/command/add_definitions.rst (renamed from share/cmake-3.16/Help/command/add_definitions.rst)0
-rw-r--r--share/cmake-3.17/Help/command/add_dependencies.rst (renamed from share/cmake-3.16/Help/command/add_dependencies.rst)0
-rw-r--r--share/cmake-3.17/Help/command/add_executable.rst (renamed from share/cmake-3.16/Help/command/add_executable.rst)0
-rw-r--r--share/cmake-3.17/Help/command/add_library.rst (renamed from share/cmake-3.16/Help/command/add_library.rst)0
-rw-r--r--share/cmake-3.17/Help/command/add_link_options.rst (renamed from share/cmake-3.16/Help/command/add_link_options.rst)0
-rw-r--r--share/cmake-3.17/Help/command/add_subdirectory.rst (renamed from share/cmake-3.16/Help/command/add_subdirectory.rst)0
-rw-r--r--share/cmake-3.17/Help/command/add_test.rst (renamed from share/cmake-3.16/Help/command/add_test.rst)0
-rw-r--r--share/cmake-3.17/Help/command/aux_source_directory.rst (renamed from share/cmake-3.16/Help/command/aux_source_directory.rst)0
-rw-r--r--share/cmake-3.17/Help/command/break.rst (renamed from share/cmake-3.16/Help/command/break.rst)0
-rw-r--r--share/cmake-3.17/Help/command/build_command.rst (renamed from share/cmake-3.16/Help/command/build_command.rst)0
-rw-r--r--share/cmake-3.17/Help/command/build_name.rst (renamed from share/cmake-3.16/Help/command/build_name.rst)0
-rw-r--r--share/cmake-3.17/Help/command/cmake_host_system_information.rst (renamed from share/cmake-3.16/Help/command/cmake_host_system_information.rst)0
-rw-r--r--share/cmake-3.17/Help/command/cmake_minimum_required.rst (renamed from share/cmake-3.16/Help/command/cmake_minimum_required.rst)0
-rw-r--r--share/cmake-3.17/Help/command/cmake_parse_arguments.rst (renamed from share/cmake-3.16/Help/command/cmake_parse_arguments.rst)0
-rw-r--r--share/cmake-3.17/Help/command/cmake_policy.rst (renamed from share/cmake-3.16/Help/command/cmake_policy.rst)0
-rw-r--r--share/cmake-3.17/Help/command/configure_file.rst (renamed from share/cmake-3.16/Help/command/configure_file.rst)0
-rw-r--r--share/cmake-3.17/Help/command/continue.rst (renamed from share/cmake-3.16/Help/command/continue.rst)0
-rw-r--r--share/cmake-3.17/Help/command/create_test_sourcelist.rst (renamed from share/cmake-3.16/Help/command/create_test_sourcelist.rst)0
-rw-r--r--share/cmake-3.17/Help/command/ctest_build.rst (renamed from share/cmake-3.16/Help/command/ctest_build.rst)0
-rw-r--r--share/cmake-3.17/Help/command/ctest_configure.rst (renamed from share/cmake-3.16/Help/command/ctest_configure.rst)0
-rw-r--r--share/cmake-3.17/Help/command/ctest_coverage.rst (renamed from share/cmake-3.16/Help/command/ctest_coverage.rst)0
-rw-r--r--share/cmake-3.17/Help/command/ctest_empty_binary_directory.rst (renamed from share/cmake-3.16/Help/command/ctest_empty_binary_directory.rst)0
-rw-r--r--share/cmake-3.17/Help/command/ctest_memcheck.rst (renamed from share/cmake-3.16/Help/command/ctest_memcheck.rst)0
-rw-r--r--share/cmake-3.17/Help/command/ctest_read_custom_files.rst (renamed from share/cmake-3.16/Help/command/ctest_read_custom_files.rst)0
-rw-r--r--share/cmake-3.17/Help/command/ctest_run_script.rst (renamed from share/cmake-3.16/Help/command/ctest_run_script.rst)0
-rw-r--r--share/cmake-3.17/Help/command/ctest_sleep.rst (renamed from share/cmake-3.16/Help/command/ctest_sleep.rst)0
-rw-r--r--share/cmake-3.17/Help/command/ctest_start.rst (renamed from share/cmake-3.16/Help/command/ctest_start.rst)0
-rw-r--r--share/cmake-3.17/Help/command/ctest_submit.rst (renamed from share/cmake-3.16/Help/command/ctest_submit.rst)0
-rw-r--r--share/cmake-3.17/Help/command/ctest_test.rst140
-rw-r--r--share/cmake-3.17/Help/command/ctest_update.rst (renamed from share/cmake-3.16/Help/command/ctest_update.rst)0
-rw-r--r--share/cmake-3.17/Help/command/ctest_upload.rst (renamed from share/cmake-3.16/Help/command/ctest_upload.rst)0
-rw-r--r--share/cmake-3.17/Help/command/define_property.rst (renamed from share/cmake-3.16/Help/command/define_property.rst)0
-rw-r--r--share/cmake-3.17/Help/command/else.rst (renamed from share/cmake-3.16/Help/command/else.rst)0
-rw-r--r--share/cmake-3.17/Help/command/elseif.rst (renamed from share/cmake-3.16/Help/command/elseif.rst)0
-rw-r--r--share/cmake-3.17/Help/command/enable_language.rst (renamed from share/cmake-3.16/Help/command/enable_language.rst)0
-rw-r--r--share/cmake-3.17/Help/command/enable_testing.rst (renamed from share/cmake-3.16/Help/command/enable_testing.rst)0
-rw-r--r--share/cmake-3.17/Help/command/endforeach.rst (renamed from share/cmake-3.16/Help/command/endforeach.rst)0
-rw-r--r--share/cmake-3.17/Help/command/endfunction.rst (renamed from share/cmake-3.16/Help/command/endfunction.rst)0
-rw-r--r--share/cmake-3.17/Help/command/endif.rst (renamed from share/cmake-3.16/Help/command/endif.rst)0
-rw-r--r--share/cmake-3.17/Help/command/endmacro.rst (renamed from share/cmake-3.16/Help/command/endmacro.rst)0
-rw-r--r--share/cmake-3.17/Help/command/endwhile.rst (renamed from share/cmake-3.16/Help/command/endwhile.rst)0
-rw-r--r--share/cmake-3.17/Help/command/exec_program.rst (renamed from share/cmake-3.16/Help/command/exec_program.rst)0
-rw-r--r--share/cmake-3.17/Help/command/execute_process.rst (renamed from share/cmake-3.16/Help/command/execute_process.rst)0
-rw-r--r--share/cmake-3.17/Help/command/export.rst (renamed from share/cmake-3.16/Help/command/export.rst)0
-rw-r--r--share/cmake-3.17/Help/command/export_library_dependencies.rst (renamed from share/cmake-3.16/Help/command/export_library_dependencies.rst)0
-rw-r--r--share/cmake-3.17/Help/command/file.rst848
-rw-r--r--share/cmake-3.17/Help/command/find_file.rst (renamed from share/cmake-3.16/Help/command/find_file.rst)0
-rw-r--r--share/cmake-3.17/Help/command/find_library.rst (renamed from share/cmake-3.16/Help/command/find_library.rst)0
-rw-r--r--share/cmake-3.17/Help/command/find_package.rst (renamed from share/cmake-3.16/Help/command/find_package.rst)0
-rw-r--r--share/cmake-3.17/Help/command/find_path.rst (renamed from share/cmake-3.16/Help/command/find_path.rst)0
-rw-r--r--share/cmake-3.17/Help/command/find_program.rst (renamed from share/cmake-3.16/Help/command/find_program.rst)0
-rw-r--r--share/cmake-3.17/Help/command/fltk_wrap_ui.rst (renamed from share/cmake-3.16/Help/command/fltk_wrap_ui.rst)0
-rw-r--r--share/cmake-3.17/Help/command/foreach.rst127
-rw-r--r--share/cmake-3.17/Help/command/function.rst (renamed from share/cmake-3.16/Help/command/function.rst)0
-rw-r--r--share/cmake-3.17/Help/command/get_cmake_property.rst (renamed from share/cmake-3.16/Help/command/get_cmake_property.rst)0
-rw-r--r--share/cmake-3.17/Help/command/get_directory_property.rst (renamed from share/cmake-3.16/Help/command/get_directory_property.rst)0
-rw-r--r--share/cmake-3.17/Help/command/get_filename_component.rst (renamed from share/cmake-3.16/Help/command/get_filename_component.rst)0
-rw-r--r--share/cmake-3.17/Help/command/get_property.rst (renamed from share/cmake-3.16/Help/command/get_property.rst)0
-rw-r--r--share/cmake-3.17/Help/command/get_source_file_property.rst (renamed from share/cmake-3.16/Help/command/get_source_file_property.rst)0
-rw-r--r--share/cmake-3.17/Help/command/get_target_property.rst (renamed from share/cmake-3.16/Help/command/get_target_property.rst)0
-rw-r--r--share/cmake-3.17/Help/command/get_test_property.rst (renamed from share/cmake-3.16/Help/command/get_test_property.rst)0
-rw-r--r--share/cmake-3.17/Help/command/if.rst (renamed from share/cmake-3.16/Help/command/if.rst)0
-rw-r--r--share/cmake-3.17/Help/command/include.rst (renamed from share/cmake-3.16/Help/command/include.rst)0
-rw-r--r--share/cmake-3.17/Help/command/include_directories.rst (renamed from share/cmake-3.16/Help/command/include_directories.rst)0
-rw-r--r--share/cmake-3.17/Help/command/include_external_msproject.rst (renamed from share/cmake-3.16/Help/command/include_external_msproject.rst)0
-rw-r--r--share/cmake-3.17/Help/command/include_guard.rst (renamed from share/cmake-3.16/Help/command/include_guard.rst)0
-rw-r--r--share/cmake-3.17/Help/command/include_regular_expression.rst (renamed from share/cmake-3.16/Help/command/include_regular_expression.rst)0
-rw-r--r--share/cmake-3.17/Help/command/install.rst (renamed from share/cmake-3.16/Help/command/install.rst)0
-rw-r--r--share/cmake-3.17/Help/command/install_files.rst (renamed from share/cmake-3.16/Help/command/install_files.rst)0
-rw-r--r--share/cmake-3.17/Help/command/install_programs.rst (renamed from share/cmake-3.16/Help/command/install_programs.rst)0
-rw-r--r--share/cmake-3.17/Help/command/install_targets.rst (renamed from share/cmake-3.16/Help/command/install_targets.rst)0
-rw-r--r--share/cmake-3.17/Help/command/link_directories.rst (renamed from share/cmake-3.16/Help/command/link_directories.rst)0
-rw-r--r--share/cmake-3.17/Help/command/link_libraries.rst (renamed from share/cmake-3.16/Help/command/link_libraries.rst)0
-rw-r--r--share/cmake-3.17/Help/command/list.rst (renamed from share/cmake-3.16/Help/command/list.rst)0
-rw-r--r--share/cmake-3.17/Help/command/load_cache.rst (renamed from share/cmake-3.16/Help/command/load_cache.rst)0
-rw-r--r--share/cmake-3.17/Help/command/load_command.rst (renamed from share/cmake-3.16/Help/command/load_command.rst)0
-rw-r--r--share/cmake-3.17/Help/command/macro.rst146
-rw-r--r--share/cmake-3.17/Help/command/make_directory.rst (renamed from share/cmake-3.16/Help/command/make_directory.rst)0
-rw-r--r--share/cmake-3.17/Help/command/mark_as_advanced.rst30
-rw-r--r--share/cmake-3.17/Help/command/math.rst (renamed from share/cmake-3.16/Help/command/math.rst)0
-rw-r--r--share/cmake-3.17/Help/command/message.rst182
-rw-r--r--share/cmake-3.17/Help/command/option.rst (renamed from share/cmake-3.16/Help/command/option.rst)0
-rw-r--r--share/cmake-3.17/Help/command/output_required_files.rst (renamed from share/cmake-3.16/Help/command/output_required_files.rst)0
-rw-r--r--share/cmake-3.17/Help/command/project.rst133
-rw-r--r--share/cmake-3.17/Help/command/qt_wrap_cpp.rst (renamed from share/cmake-3.16/Help/command/qt_wrap_cpp.rst)0
-rw-r--r--share/cmake-3.17/Help/command/qt_wrap_ui.rst (renamed from share/cmake-3.16/Help/command/qt_wrap_ui.rst)0
-rw-r--r--share/cmake-3.17/Help/command/remove.rst (renamed from share/cmake-3.16/Help/command/remove.rst)0
-rw-r--r--share/cmake-3.17/Help/command/remove_definitions.rst (renamed from share/cmake-3.16/Help/command/remove_definitions.rst)0
-rw-r--r--share/cmake-3.17/Help/command/return.rst (renamed from share/cmake-3.16/Help/command/return.rst)0
-rw-r--r--share/cmake-3.17/Help/command/separate_arguments.rst (renamed from share/cmake-3.16/Help/command/separate_arguments.rst)0
-rw-r--r--share/cmake-3.17/Help/command/set.rst (renamed from share/cmake-3.16/Help/command/set.rst)0
-rw-r--r--share/cmake-3.17/Help/command/set_directory_properties.rst (renamed from share/cmake-3.16/Help/command/set_directory_properties.rst)0
-rw-r--r--share/cmake-3.17/Help/command/set_property.rst (renamed from share/cmake-3.16/Help/command/set_property.rst)0
-rw-r--r--share/cmake-3.17/Help/command/set_source_files_properties.rst (renamed from share/cmake-3.16/Help/command/set_source_files_properties.rst)0
-rw-r--r--share/cmake-3.17/Help/command/set_target_properties.rst (renamed from share/cmake-3.16/Help/command/set_target_properties.rst)0
-rw-r--r--share/cmake-3.17/Help/command/set_tests_properties.rst (renamed from share/cmake-3.16/Help/command/set_tests_properties.rst)0
-rw-r--r--share/cmake-3.17/Help/command/site_name.rst (renamed from share/cmake-3.16/Help/command/site_name.rst)0
-rw-r--r--share/cmake-3.17/Help/command/source_group.rst (renamed from share/cmake-3.16/Help/command/source_group.rst)0
-rw-r--r--share/cmake-3.17/Help/command/string.rst (renamed from share/cmake-3.16/Help/command/string.rst)0
-rw-r--r--share/cmake-3.17/Help/command/subdir_depends.rst (renamed from share/cmake-3.16/Help/command/subdir_depends.rst)0
-rw-r--r--share/cmake-3.17/Help/command/subdirs.rst (renamed from share/cmake-3.16/Help/command/subdirs.rst)0
-rw-r--r--share/cmake-3.17/Help/command/target_compile_definitions.rst (renamed from share/cmake-3.16/Help/command/target_compile_definitions.rst)0
-rw-r--r--share/cmake-3.17/Help/command/target_compile_features.rst33
-rw-r--r--share/cmake-3.17/Help/command/target_compile_options.rst (renamed from share/cmake-3.16/Help/command/target_compile_options.rst)0
-rw-r--r--share/cmake-3.17/Help/command/target_include_directories.rst (renamed from share/cmake-3.16/Help/command/target_include_directories.rst)0
-rw-r--r--share/cmake-3.17/Help/command/target_link_directories.rst (renamed from share/cmake-3.16/Help/command/target_link_directories.rst)0
-rw-r--r--share/cmake-3.17/Help/command/target_link_libraries.rst (renamed from share/cmake-3.16/Help/command/target_link_libraries.rst)0
-rw-r--r--share/cmake-3.17/Help/command/target_link_options.rst (renamed from share/cmake-3.16/Help/command/target_link_options.rst)0
-rw-r--r--share/cmake-3.17/Help/command/target_precompile_headers.rst (renamed from share/cmake-3.16/Help/command/target_precompile_headers.rst)0
-rw-r--r--share/cmake-3.17/Help/command/target_sources.rst (renamed from share/cmake-3.16/Help/command/target_sources.rst)0
-rw-r--r--share/cmake-3.17/Help/command/try_compile.rst (renamed from share/cmake-3.16/Help/command/try_compile.rst)0
-rw-r--r--share/cmake-3.17/Help/command/try_run.rst (renamed from share/cmake-3.16/Help/command/try_run.rst)0
-rw-r--r--share/cmake-3.17/Help/command/unset.rst (renamed from share/cmake-3.16/Help/command/unset.rst)0
-rw-r--r--share/cmake-3.17/Help/command/use_mangled_mesa.rst (renamed from share/cmake-3.16/Help/command/use_mangled_mesa.rst)0
-rw-r--r--share/cmake-3.17/Help/command/utility_source.rst (renamed from share/cmake-3.16/Help/command/utility_source.rst)0
-rw-r--r--share/cmake-3.17/Help/command/variable_requires.rst (renamed from share/cmake-3.16/Help/command/variable_requires.rst)0
-rw-r--r--share/cmake-3.17/Help/command/variable_watch.rst (renamed from share/cmake-3.16/Help/command/variable_watch.rst)0
-rw-r--r--share/cmake-3.17/Help/command/while.rst (renamed from share/cmake-3.16/Help/command/while.rst)0
-rw-r--r--share/cmake-3.17/Help/command/write_file.rst (renamed from share/cmake-3.16/Help/command/write_file.rst)0
-rw-r--r--share/cmake-3.17/Help/cpack_gen/archive.rst (renamed from share/cmake-3.16/Help/cpack_gen/archive.rst)0
-rw-r--r--share/cmake-3.17/Help/cpack_gen/bundle.rst (renamed from share/cmake-3.16/Help/cpack_gen/bundle.rst)0
-rw-r--r--share/cmake-3.17/Help/cpack_gen/cygwin.rst (renamed from share/cmake-3.16/Help/cpack_gen/cygwin.rst)0
-rw-r--r--share/cmake-3.17/Help/cpack_gen/deb.rst (renamed from share/cmake-3.16/Help/cpack_gen/deb.rst)0
-rw-r--r--share/cmake-3.17/Help/cpack_gen/dmg.rst110
-rw-r--r--share/cmake-3.17/Help/cpack_gen/external.rst (renamed from share/cmake-3.16/Help/cpack_gen/external.rst)0
-rw-r--r--share/cmake-3.17/Help/cpack_gen/freebsd.rst (renamed from share/cmake-3.16/Help/cpack_gen/freebsd.rst)0
-rw-r--r--share/cmake-3.17/Help/cpack_gen/ifw.rst334
-rw-r--r--share/cmake-3.17/Help/cpack_gen/nsis.rst155
-rw-r--r--share/cmake-3.17/Help/cpack_gen/nuget.rst (renamed from share/cmake-3.16/Help/cpack_gen/nuget.rst)0
-rw-r--r--share/cmake-3.17/Help/cpack_gen/packagemaker.rst79
-rw-r--r--share/cmake-3.17/Help/cpack_gen/productbuild.rst118
-rw-r--r--share/cmake-3.17/Help/cpack_gen/rpm.rst (renamed from share/cmake-3.16/Help/cpack_gen/rpm.rst)0
-rw-r--r--share/cmake-3.17/Help/cpack_gen/wix.rst (renamed from share/cmake-3.16/Help/cpack_gen/wix.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/ASM_DIALECT.rst (renamed from share/cmake-3.16/Help/envvar/ASM_DIALECT.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/ASM_DIALECTFLAGS.rst (renamed from share/cmake-3.16/Help/envvar/ASM_DIALECTFLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CC.rst (renamed from share/cmake-3.16/Help/envvar/CC.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CFLAGS.rst (renamed from share/cmake-3.16/Help/envvar/CFLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst (renamed from share/cmake-3.16/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CMAKE_CONFIG_TYPE.rst (renamed from share/cmake-3.16/Help/envvar/CMAKE_CONFIG_TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst9
-rw-r--r--share/cmake-3.17/Help/envvar/CMAKE_GENERATOR.rst (renamed from share/cmake-3.16/Help/envvar/CMAKE_GENERATOR.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst (renamed from share/cmake-3.16/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst (renamed from share/cmake-3.16/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst (renamed from share/cmake-3.16/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst10
-rw-r--r--share/cmake-3.17/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst (renamed from share/cmake-3.16/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CMAKE_NO_VERBOSE.rst (renamed from share/cmake-3.16/Help/envvar/CMAKE_NO_VERBOSE.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst (renamed from share/cmake-3.16/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CSFLAGS.rst (renamed from share/cmake-3.16/Help/envvar/CSFLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst (renamed from share/cmake-3.16/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst (renamed from share/cmake-3.16/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CTEST_PARALLEL_LEVEL.rst (renamed from share/cmake-3.16/Help/envvar/CTEST_PARALLEL_LEVEL.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CTEST_PROGRESS_OUTPUT.rst (renamed from share/cmake-3.16/Help/envvar/CTEST_PROGRESS_OUTPUT.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst (renamed from share/cmake-3.16/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CUDACXX.rst (renamed from share/cmake-3.16/Help/envvar/CUDACXX.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CUDAFLAGS.rst (renamed from share/cmake-3.16/Help/envvar/CUDAFLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CUDAHOSTCXX.rst (renamed from share/cmake-3.16/Help/envvar/CUDAHOSTCXX.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CXX.rst (renamed from share/cmake-3.16/Help/envvar/CXX.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/CXXFLAGS.rst (renamed from share/cmake-3.16/Help/envvar/CXXFLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst (renamed from share/cmake-3.16/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/DESTDIR.rst (renamed from share/cmake-3.16/Help/envvar/DESTDIR.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/ENV_VAR.txt (renamed from share/cmake-3.16/Help/envvar/ENV_VAR.txt)0
-rw-r--r--share/cmake-3.17/Help/envvar/FC.rst (renamed from share/cmake-3.16/Help/envvar/FC.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/FFLAGS.rst (renamed from share/cmake-3.16/Help/envvar/FFLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/LDFLAGS.rst (renamed from share/cmake-3.16/Help/envvar/LDFLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst (renamed from share/cmake-3.16/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/PackageName_ROOT.rst (renamed from share/cmake-3.16/Help/envvar/PackageName_ROOT.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/RC.rst (renamed from share/cmake-3.16/Help/envvar/RC.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/RCFLAGS.rst (renamed from share/cmake-3.16/Help/envvar/RCFLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/SWIFTC.rst (renamed from share/cmake-3.16/Help/envvar/SWIFTC.rst)0
-rw-r--r--share/cmake-3.17/Help/envvar/VERBOSE.rst (renamed from share/cmake-3.16/Help/envvar/VERBOSE.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Borland Makefiles.rst (renamed from share/cmake-3.16/Help/generator/Borland Makefiles.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/CodeBlocks.rst (renamed from share/cmake-3.16/Help/generator/CodeBlocks.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/CodeLite.rst (renamed from share/cmake-3.16/Help/generator/CodeLite.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Eclipse CDT4.rst (renamed from share/cmake-3.16/Help/generator/Eclipse CDT4.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Green Hills MULTI.rst (renamed from share/cmake-3.16/Help/generator/Green Hills MULTI.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Kate.rst (renamed from share/cmake-3.16/Help/generator/Kate.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/MSYS Makefiles.rst (renamed from share/cmake-3.16/Help/generator/MSYS Makefiles.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/MinGW Makefiles.rst (renamed from share/cmake-3.16/Help/generator/MinGW Makefiles.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/NMake Makefiles JOM.rst (renamed from share/cmake-3.16/Help/generator/NMake Makefiles JOM.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/NMake Makefiles.rst (renamed from share/cmake-3.16/Help/generator/NMake Makefiles.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Ninja Multi-Config.rst121
-rw-r--r--share/cmake-3.17/Help/generator/Ninja.rst46
-rw-r--r--share/cmake-3.17/Help/generator/Sublime Text 2.rst (renamed from share/cmake-3.16/Help/generator/Sublime Text 2.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Unix Makefiles.rst (renamed from share/cmake-3.16/Help/generator/Unix Makefiles.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/VS_TOOLSET_HOST_ARCH.txt (renamed from share/cmake-3.16/Help/generator/VS_TOOLSET_HOST_ARCH.txt)0
-rw-r--r--share/cmake-3.17/Help/generator/Visual Studio 10 2010.rst (renamed from share/cmake-3.16/Help/generator/Visual Studio 10 2010.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Visual Studio 11 2012.rst (renamed from share/cmake-3.16/Help/generator/Visual Studio 11 2012.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Visual Studio 12 2013.rst (renamed from share/cmake-3.16/Help/generator/Visual Studio 12 2013.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Visual Studio 14 2015.rst (renamed from share/cmake-3.16/Help/generator/Visual Studio 14 2015.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Visual Studio 15 2017.rst (renamed from share/cmake-3.16/Help/generator/Visual Studio 15 2017.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Visual Studio 16 2019.rst (renamed from share/cmake-3.16/Help/generator/Visual Studio 16 2019.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Visual Studio 6.rst (renamed from share/cmake-3.16/Help/generator/Visual Studio 6.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Visual Studio 7 .NET 2003.rst (renamed from share/cmake-3.16/Help/generator/Visual Studio 7 .NET 2003.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Visual Studio 7.rst (renamed from share/cmake-3.16/Help/generator/Visual Studio 7.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Visual Studio 8 2005.rst (renamed from share/cmake-3.16/Help/generator/Visual Studio 8 2005.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Visual Studio 9 2008.rst (renamed from share/cmake-3.16/Help/generator/Visual Studio 9 2008.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Watcom WMake.rst (renamed from share/cmake-3.16/Help/generator/Watcom WMake.rst)0
-rw-r--r--share/cmake-3.17/Help/generator/Xcode.rst (renamed from share/cmake-3.16/Help/generator/Xcode.rst)0
-rw-r--r--share/cmake-3.17/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt (renamed from share/cmake-3.16/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt)0
-rw-r--r--share/cmake-3.17/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt (renamed from share/cmake-3.16/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt)0
-rw-r--r--share/cmake-3.17/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt (renamed from share/cmake-3.16/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt)0
-rw-r--r--share/cmake-3.17/Help/index.rst104
-rw-r--r--share/cmake-3.17/Help/manual/ID_RESERVE.txt7
-rw-r--r--share/cmake-3.17/Help/manual/LINKS.txt (renamed from share/cmake-3.16/Help/manual/LINKS.txt)0
-rw-r--r--share/cmake-3.17/Help/manual/OPTIONS_BUILD.txt (renamed from share/cmake-3.16/Help/manual/OPTIONS_BUILD.txt)0
-rw-r--r--share/cmake-3.17/Help/manual/OPTIONS_HELP.txt (renamed from share/cmake-3.16/Help/manual/OPTIONS_HELP.txt)0
-rw-r--r--share/cmake-3.17/Help/manual/VS-Choose-Arch.pngbin0 -> 11130 bytes
-rw-r--r--share/cmake-3.17/Help/manual/ccmake.1.rst (renamed from share/cmake-3.16/Help/manual/ccmake.1.rst)0
-rw-r--r--share/cmake-3.17/Help/manual/cmake-buildsystem.7.rst (renamed from share/cmake-3.16/Help/manual/cmake-buildsystem.7.rst)0
-rw-r--r--share/cmake-3.17/Help/manual/cmake-commands.7.rst (renamed from share/cmake-3.16/Help/manual/cmake-commands.7.rst)0
-rw-r--r--share/cmake-3.17/Help/manual/cmake-compile-features.7.rst376
-rw-r--r--share/cmake-3.17/Help/manual/cmake-developer.7.rst (renamed from share/cmake-3.16/Help/manual/cmake-developer.7.rst)0
-rw-r--r--share/cmake-3.17/Help/manual/cmake-env-variables.7.rst75
-rw-r--r--share/cmake-3.17/Help/manual/cmake-file-api.7.rst1117
-rw-r--r--share/cmake-3.17/Help/manual/cmake-generator-expressions.7.rst658
-rw-r--r--share/cmake-3.17/Help/manual/cmake-generators.7.rst118
-rw-r--r--share/cmake-3.17/Help/manual/cmake-gui.1.rst (renamed from share/cmake-3.16/Help/manual/cmake-gui.1.rst)0
-rw-r--r--share/cmake-3.17/Help/manual/cmake-language.7.rst629
-rw-r--r--share/cmake-3.17/Help/manual/cmake-modules.7.rst318
-rw-r--r--share/cmake-3.17/Help/manual/cmake-packages.7.rst (renamed from share/cmake-3.16/Help/manual/cmake-packages.7.rst)0
-rw-r--r--share/cmake-3.17/Help/manual/cmake-policies.7.rst282
-rw-r--r--share/cmake-3.17/Help/manual/cmake-properties.7.rst562
-rw-r--r--share/cmake-3.17/Help/manual/cmake-qt.7.rst (renamed from share/cmake-3.16/Help/manual/cmake-qt.7.rst)0
-rw-r--r--share/cmake-3.17/Help/manual/cmake-server.7.rst (renamed from share/cmake-3.16/Help/manual/cmake-server.7.rst)0
-rw-r--r--share/cmake-3.17/Help/manual/cmake-toolchains.7.rst666
-rw-r--r--share/cmake-3.17/Help/manual/cmake-variables.7.rst683
-rw-r--r--share/cmake-3.17/Help/manual/cmake.1.rst781
-rw-r--r--share/cmake-3.17/Help/manual/cpack-generators.7.rst (renamed from share/cmake-3.16/Help/manual/cpack-generators.7.rst)0
-rw-r--r--share/cmake-3.17/Help/manual/cpack.1.rst (renamed from share/cmake-3.16/Help/manual/cpack.1.rst)0
-rw-r--r--share/cmake-3.17/Help/manual/ctest.1.rst1579
-rw-r--r--share/cmake-3.17/Help/module/AddFileDependencies.rst (renamed from share/cmake-3.16/Help/module/AddFileDependencies.rst)0
-rw-r--r--share/cmake-3.17/Help/module/AndroidTestUtilities.rst (renamed from share/cmake-3.16/Help/module/AndroidTestUtilities.rst)0
-rw-r--r--share/cmake-3.17/Help/module/BundleUtilities.rst (renamed from share/cmake-3.16/Help/module/BundleUtilities.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakeAddFortranSubdirectory.rst (renamed from share/cmake-3.16/Help/module/CMakeAddFortranSubdirectory.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakeBackwardCompatibilityCXX.rst (renamed from share/cmake-3.16/Help/module/CMakeBackwardCompatibilityCXX.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakeDependentOption.rst (renamed from share/cmake-3.16/Help/module/CMakeDependentOption.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakeDetermineVSServicePack.rst (renamed from share/cmake-3.16/Help/module/CMakeDetermineVSServicePack.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakeExpandImportedTargets.rst (renamed from share/cmake-3.16/Help/module/CMakeExpandImportedTargets.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakeFindDependencyMacro.rst (renamed from share/cmake-3.16/Help/module/CMakeFindDependencyMacro.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakeFindFrameworks.rst (renamed from share/cmake-3.16/Help/module/CMakeFindFrameworks.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakeFindPackageMode.rst (renamed from share/cmake-3.16/Help/module/CMakeFindPackageMode.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakeForceCompiler.rst (renamed from share/cmake-3.16/Help/module/CMakeForceCompiler.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakeGraphVizOptions.rst (renamed from share/cmake-3.16/Help/module/CMakeGraphVizOptions.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakePackageConfigHelpers.rst (renamed from share/cmake-3.16/Help/module/CMakePackageConfigHelpers.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakeParseArguments.rst (renamed from share/cmake-3.16/Help/module/CMakeParseArguments.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakePrintHelpers.rst (renamed from share/cmake-3.16/Help/module/CMakePrintHelpers.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakePrintSystemInformation.rst (renamed from share/cmake-3.16/Help/module/CMakePrintSystemInformation.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakePushCheckState.rst (renamed from share/cmake-3.16/Help/module/CMakePushCheckState.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CMakeVerifyManifest.rst (renamed from share/cmake-3.16/Help/module/CMakeVerifyManifest.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPack.rst (renamed from share/cmake-3.16/Help/module/CPack.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackArchive.rst (renamed from share/cmake-3.16/Help/module/CPackArchive.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackBundle.rst (renamed from share/cmake-3.16/Help/module/CPackBundle.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackComponent.rst (renamed from share/cmake-3.16/Help/module/CPackComponent.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackCygwin.rst (renamed from share/cmake-3.16/Help/module/CPackCygwin.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackDMG.rst (renamed from share/cmake-3.16/Help/module/CPackDMG.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackDeb.rst (renamed from share/cmake-3.16/Help/module/CPackDeb.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackFreeBSD.rst (renamed from share/cmake-3.16/Help/module/CPackFreeBSD.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackIFW.rst (renamed from share/cmake-3.16/Help/module/CPackIFW.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackIFWConfigureFile.rst (renamed from share/cmake-3.16/Help/module/CPackIFWConfigureFile.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackNSIS.rst (renamed from share/cmake-3.16/Help/module/CPackNSIS.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackNuGet.rst (renamed from share/cmake-3.16/Help/module/CPackNuGet.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackPackageMaker.rst (renamed from share/cmake-3.16/Help/module/CPackPackageMaker.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackProductBuild.rst (renamed from share/cmake-3.16/Help/module/CPackProductBuild.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackRPM.rst (renamed from share/cmake-3.16/Help/module/CPackRPM.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CPackWIX.rst (renamed from share/cmake-3.16/Help/module/CPackWIX.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CSharpUtilities.rst (renamed from share/cmake-3.16/Help/module/CSharpUtilities.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CTest.rst (renamed from share/cmake-3.16/Help/module/CTest.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CTestCoverageCollectGCOV.rst (renamed from share/cmake-3.16/Help/module/CTestCoverageCollectGCOV.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CTestScriptMode.rst (renamed from share/cmake-3.16/Help/module/CTestScriptMode.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CTestUseLaunchers.rst (renamed from share/cmake-3.16/Help/module/CTestUseLaunchers.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckCCompilerFlag.rst (renamed from share/cmake-3.16/Help/module/CheckCCompilerFlag.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckCSourceCompiles.rst (renamed from share/cmake-3.16/Help/module/CheckCSourceCompiles.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckCSourceRuns.rst (renamed from share/cmake-3.16/Help/module/CheckCSourceRuns.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckCXXCompilerFlag.rst (renamed from share/cmake-3.16/Help/module/CheckCXXCompilerFlag.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckCXXSourceCompiles.rst (renamed from share/cmake-3.16/Help/module/CheckCXXSourceCompiles.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckCXXSourceRuns.rst (renamed from share/cmake-3.16/Help/module/CheckCXXSourceRuns.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckCXXSymbolExists.rst (renamed from share/cmake-3.16/Help/module/CheckCXXSymbolExists.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckFortranCompilerFlag.rst (renamed from share/cmake-3.16/Help/module/CheckFortranCompilerFlag.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckFortranFunctionExists.rst (renamed from share/cmake-3.16/Help/module/CheckFortranFunctionExists.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckFortranSourceCompiles.rst (renamed from share/cmake-3.16/Help/module/CheckFortranSourceCompiles.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckFortranSourceRuns.rst (renamed from share/cmake-3.16/Help/module/CheckFortranSourceRuns.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckFunctionExists.rst (renamed from share/cmake-3.16/Help/module/CheckFunctionExists.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckIPOSupported.rst (renamed from share/cmake-3.16/Help/module/CheckIPOSupported.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckIncludeFile.rst (renamed from share/cmake-3.16/Help/module/CheckIncludeFile.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckIncludeFileCXX.rst (renamed from share/cmake-3.16/Help/module/CheckIncludeFileCXX.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckIncludeFiles.rst (renamed from share/cmake-3.16/Help/module/CheckIncludeFiles.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckLanguage.rst (renamed from share/cmake-3.16/Help/module/CheckLanguage.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckLibraryExists.rst (renamed from share/cmake-3.16/Help/module/CheckLibraryExists.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckOBJCCompilerFlag.rst (renamed from share/cmake-3.16/Help/module/CheckOBJCCompilerFlag.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckOBJCSourceCompiles.rst (renamed from share/cmake-3.16/Help/module/CheckOBJCSourceCompiles.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckOBJCSourceRuns.rst (renamed from share/cmake-3.16/Help/module/CheckOBJCSourceRuns.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckOBJCXXCompilerFlag.rst (renamed from share/cmake-3.16/Help/module/CheckOBJCXXCompilerFlag.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckOBJCXXSourceCompiles.rst (renamed from share/cmake-3.16/Help/module/CheckOBJCXXSourceCompiles.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckOBJCXXSourceRuns.rst (renamed from share/cmake-3.16/Help/module/CheckOBJCXXSourceRuns.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckPIESupported.rst (renamed from share/cmake-3.16/Help/module/CheckPIESupported.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckPrototypeDefinition.rst (renamed from share/cmake-3.16/Help/module/CheckPrototypeDefinition.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckStructHasMember.rst (renamed from share/cmake-3.16/Help/module/CheckStructHasMember.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckSymbolExists.rst (renamed from share/cmake-3.16/Help/module/CheckSymbolExists.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckTypeSize.rst (renamed from share/cmake-3.16/Help/module/CheckTypeSize.rst)0
-rw-r--r--share/cmake-3.17/Help/module/CheckVariableExists.rst (renamed from share/cmake-3.16/Help/module/CheckVariableExists.rst)0
-rw-r--r--share/cmake-3.17/Help/module/Dart.rst (renamed from share/cmake-3.16/Help/module/Dart.rst)0
-rw-r--r--share/cmake-3.17/Help/module/DeployQt4.rst (renamed from share/cmake-3.16/Help/module/DeployQt4.rst)0
-rw-r--r--share/cmake-3.17/Help/module/Documentation.rst (renamed from share/cmake-3.16/Help/module/Documentation.rst)0
-rw-r--r--share/cmake-3.17/Help/module/ExternalData.rst (renamed from share/cmake-3.16/Help/module/ExternalData.rst)0
-rw-r--r--share/cmake-3.17/Help/module/ExternalProject.rst (renamed from share/cmake-3.16/Help/module/ExternalProject.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FeatureSummary.rst (renamed from share/cmake-3.16/Help/module/FeatureSummary.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FetchContent.rst (renamed from share/cmake-3.16/Help/module/FetchContent.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindALSA.rst (renamed from share/cmake-3.16/Help/module/FindALSA.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindASPELL.rst (renamed from share/cmake-3.16/Help/module/FindASPELL.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindAVIFile.rst (renamed from share/cmake-3.16/Help/module/FindAVIFile.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindArmadillo.rst (renamed from share/cmake-3.16/Help/module/FindArmadillo.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindBISON.rst (renamed from share/cmake-3.16/Help/module/FindBISON.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindBLAS.rst (renamed from share/cmake-3.16/Help/module/FindBLAS.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindBZip2.rst (renamed from share/cmake-3.16/Help/module/FindBZip2.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindBacktrace.rst (renamed from share/cmake-3.16/Help/module/FindBacktrace.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindBoost.rst (renamed from share/cmake-3.16/Help/module/FindBoost.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindBullet.rst (renamed from share/cmake-3.16/Help/module/FindBullet.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindCABLE.rst (renamed from share/cmake-3.16/Help/module/FindCABLE.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindCUDA.rst (renamed from share/cmake-3.16/Help/module/FindCUDA.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindCUDAToolkit.rst1
-rw-r--r--share/cmake-3.17/Help/module/FindCURL.rst (renamed from share/cmake-3.16/Help/module/FindCURL.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindCVS.rst (renamed from share/cmake-3.16/Help/module/FindCVS.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindCoin3D.rst (renamed from share/cmake-3.16/Help/module/FindCoin3D.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindCups.rst (renamed from share/cmake-3.16/Help/module/FindCups.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindCurses.rst (renamed from share/cmake-3.16/Help/module/FindCurses.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindCxxTest.rst (renamed from share/cmake-3.16/Help/module/FindCxxTest.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindCygwin.rst (renamed from share/cmake-3.16/Help/module/FindCygwin.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindDCMTK.rst (renamed from share/cmake-3.16/Help/module/FindDCMTK.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindDart.rst (renamed from share/cmake-3.16/Help/module/FindDart.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindDevIL.rst (renamed from share/cmake-3.16/Help/module/FindDevIL.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindDoxygen.rst (renamed from share/cmake-3.16/Help/module/FindDoxygen.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindEXPAT.rst (renamed from share/cmake-3.16/Help/module/FindEXPAT.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindEnvModules.rst (renamed from share/cmake-3.16/Help/module/FindEnvModules.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindFLEX.rst (renamed from share/cmake-3.16/Help/module/FindFLEX.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindFLTK.rst (renamed from share/cmake-3.16/Help/module/FindFLTK.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindFLTK2.rst (renamed from share/cmake-3.16/Help/module/FindFLTK2.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindFontconfig.rst (renamed from share/cmake-3.16/Help/module/FindFontconfig.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindFreetype.rst (renamed from share/cmake-3.16/Help/module/FindFreetype.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindGCCXML.rst (renamed from share/cmake-3.16/Help/module/FindGCCXML.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindGDAL.rst (renamed from share/cmake-3.16/Help/module/FindGDAL.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindGIF.rst (renamed from share/cmake-3.16/Help/module/FindGIF.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindGLEW.rst (renamed from share/cmake-3.16/Help/module/FindGLEW.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindGLUT.rst (renamed from share/cmake-3.16/Help/module/FindGLUT.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindGSL.rst (renamed from share/cmake-3.16/Help/module/FindGSL.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindGTK.rst (renamed from share/cmake-3.16/Help/module/FindGTK.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindGTK2.rst (renamed from share/cmake-3.16/Help/module/FindGTK2.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindGTest.rst (renamed from share/cmake-3.16/Help/module/FindGTest.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindGettext.rst (renamed from share/cmake-3.16/Help/module/FindGettext.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindGit.rst (renamed from share/cmake-3.16/Help/module/FindGit.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindGnuTLS.rst (renamed from share/cmake-3.16/Help/module/FindGnuTLS.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindGnuplot.rst (renamed from share/cmake-3.16/Help/module/FindGnuplot.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindHDF5.rst (renamed from share/cmake-3.16/Help/module/FindHDF5.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindHSPELL.rst (renamed from share/cmake-3.16/Help/module/FindHSPELL.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindHTMLHelp.rst (renamed from share/cmake-3.16/Help/module/FindHTMLHelp.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindHg.rst (renamed from share/cmake-3.16/Help/module/FindHg.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindICU.rst (renamed from share/cmake-3.16/Help/module/FindICU.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindITK.rst (renamed from share/cmake-3.16/Help/module/FindITK.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindIce.rst (renamed from share/cmake-3.16/Help/module/FindIce.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindIconv.rst (renamed from share/cmake-3.16/Help/module/FindIconv.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindIcotool.rst (renamed from share/cmake-3.16/Help/module/FindIcotool.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindImageMagick.rst (renamed from share/cmake-3.16/Help/module/FindImageMagick.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindIntl.rst (renamed from share/cmake-3.16/Help/module/FindIntl.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindJNI.rst (renamed from share/cmake-3.16/Help/module/FindJNI.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindJPEG.rst (renamed from share/cmake-3.16/Help/module/FindJPEG.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindJasper.rst (renamed from share/cmake-3.16/Help/module/FindJasper.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindJava.rst (renamed from share/cmake-3.16/Help/module/FindJava.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindKDE3.rst (renamed from share/cmake-3.16/Help/module/FindKDE3.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindKDE4.rst (renamed from share/cmake-3.16/Help/module/FindKDE4.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindLAPACK.rst (renamed from share/cmake-3.16/Help/module/FindLAPACK.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindLATEX.rst (renamed from share/cmake-3.16/Help/module/FindLATEX.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindLTTngUST.rst (renamed from share/cmake-3.16/Help/module/FindLTTngUST.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindLibArchive.rst (renamed from share/cmake-3.16/Help/module/FindLibArchive.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindLibLZMA.rst (renamed from share/cmake-3.16/Help/module/FindLibLZMA.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindLibXml2.rst (renamed from share/cmake-3.16/Help/module/FindLibXml2.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindLibXslt.rst (renamed from share/cmake-3.16/Help/module/FindLibXslt.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindLibinput.rst (renamed from share/cmake-3.16/Help/module/FindLibinput.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindLua.rst (renamed from share/cmake-3.16/Help/module/FindLua.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindLua50.rst (renamed from share/cmake-3.16/Help/module/FindLua50.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindLua51.rst (renamed from share/cmake-3.16/Help/module/FindLua51.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindMFC.rst (renamed from share/cmake-3.16/Help/module/FindMFC.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindMPEG.rst (renamed from share/cmake-3.16/Help/module/FindMPEG.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindMPEG2.rst (renamed from share/cmake-3.16/Help/module/FindMPEG2.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindMPI.rst (renamed from share/cmake-3.16/Help/module/FindMPI.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindMatlab.rst (renamed from share/cmake-3.16/Help/module/FindMatlab.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindMotif.rst (renamed from share/cmake-3.16/Help/module/FindMotif.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindODBC.rst (renamed from share/cmake-3.16/Help/module/FindODBC.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindOpenACC.rst (renamed from share/cmake-3.16/Help/module/FindOpenACC.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindOpenAL.rst (renamed from share/cmake-3.16/Help/module/FindOpenAL.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindOpenCL.rst (renamed from share/cmake-3.16/Help/module/FindOpenCL.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindOpenGL.rst (renamed from share/cmake-3.16/Help/module/FindOpenGL.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindOpenMP.rst (renamed from share/cmake-3.16/Help/module/FindOpenMP.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindOpenSSL.rst (renamed from share/cmake-3.16/Help/module/FindOpenSSL.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindOpenSceneGraph.rst (renamed from share/cmake-3.16/Help/module/FindOpenSceneGraph.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindOpenThreads.rst (renamed from share/cmake-3.16/Help/module/FindOpenThreads.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPHP4.rst (renamed from share/cmake-3.16/Help/module/FindPHP4.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPNG.rst (renamed from share/cmake-3.16/Help/module/FindPNG.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPackageHandleStandardArgs.rst (renamed from share/cmake-3.16/Help/module/FindPackageHandleStandardArgs.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPackageMessage.rst (renamed from share/cmake-3.16/Help/module/FindPackageMessage.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPatch.rst (renamed from share/cmake-3.16/Help/module/FindPatch.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPerl.rst (renamed from share/cmake-3.16/Help/module/FindPerl.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPerlLibs.rst (renamed from share/cmake-3.16/Help/module/FindPerlLibs.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPhysFS.rst (renamed from share/cmake-3.16/Help/module/FindPhysFS.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPike.rst (renamed from share/cmake-3.16/Help/module/FindPike.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPkgConfig.rst (renamed from share/cmake-3.16/Help/module/FindPkgConfig.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPostgreSQL.rst (renamed from share/cmake-3.16/Help/module/FindPostgreSQL.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindProducer.rst (renamed from share/cmake-3.16/Help/module/FindProducer.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindProtobuf.rst (renamed from share/cmake-3.16/Help/module/FindProtobuf.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPython.rst (renamed from share/cmake-3.16/Help/module/FindPython.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPython2.rst (renamed from share/cmake-3.16/Help/module/FindPython2.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPython3.rst (renamed from share/cmake-3.16/Help/module/FindPython3.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPythonInterp.rst (renamed from share/cmake-3.16/Help/module/FindPythonInterp.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindPythonLibs.rst (renamed from share/cmake-3.16/Help/module/FindPythonLibs.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindQt.rst (renamed from share/cmake-3.16/Help/module/FindQt.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindQt3.rst (renamed from share/cmake-3.16/Help/module/FindQt3.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindQt4.rst (renamed from share/cmake-3.16/Help/module/FindQt4.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindQuickTime.rst (renamed from share/cmake-3.16/Help/module/FindQuickTime.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindRTI.rst (renamed from share/cmake-3.16/Help/module/FindRTI.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindRuby.rst (renamed from share/cmake-3.16/Help/module/FindRuby.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindSDL.rst (renamed from share/cmake-3.16/Help/module/FindSDL.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindSDL_image.rst (renamed from share/cmake-3.16/Help/module/FindSDL_image.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindSDL_mixer.rst (renamed from share/cmake-3.16/Help/module/FindSDL_mixer.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindSDL_net.rst (renamed from share/cmake-3.16/Help/module/FindSDL_net.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindSDL_sound.rst (renamed from share/cmake-3.16/Help/module/FindSDL_sound.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindSDL_ttf.rst (renamed from share/cmake-3.16/Help/module/FindSDL_ttf.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindSQLite3.rst (renamed from share/cmake-3.16/Help/module/FindSQLite3.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindSWIG.rst (renamed from share/cmake-3.16/Help/module/FindSWIG.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindSelfPackers.rst (renamed from share/cmake-3.16/Help/module/FindSelfPackers.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindSquish.rst (renamed from share/cmake-3.16/Help/module/FindSquish.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindSubversion.rst (renamed from share/cmake-3.16/Help/module/FindSubversion.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindTCL.rst (renamed from share/cmake-3.16/Help/module/FindTCL.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindTIFF.rst (renamed from share/cmake-3.16/Help/module/FindTIFF.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindTclStub.rst (renamed from share/cmake-3.16/Help/module/FindTclStub.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindTclsh.rst (renamed from share/cmake-3.16/Help/module/FindTclsh.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindThreads.rst (renamed from share/cmake-3.16/Help/module/FindThreads.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindUnixCommands.rst (renamed from share/cmake-3.16/Help/module/FindUnixCommands.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindVTK.rst (renamed from share/cmake-3.16/Help/module/FindVTK.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindVulkan.rst (renamed from share/cmake-3.16/Help/module/FindVulkan.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindWget.rst (renamed from share/cmake-3.16/Help/module/FindWget.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindWish.rst (renamed from share/cmake-3.16/Help/module/FindWish.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindX11.rst (renamed from share/cmake-3.16/Help/module/FindX11.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindXCTest.rst (renamed from share/cmake-3.16/Help/module/FindXCTest.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindXMLRPC.rst (renamed from share/cmake-3.16/Help/module/FindXMLRPC.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindXalanC.rst (renamed from share/cmake-3.16/Help/module/FindXalanC.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindXercesC.rst (renamed from share/cmake-3.16/Help/module/FindXercesC.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindZLIB.rst (renamed from share/cmake-3.16/Help/module/FindZLIB.rst)0
-rw-r--r--share/cmake-3.17/Help/module/Findosg.rst (renamed from share/cmake-3.16/Help/module/Findosg.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgAnimation.rst (renamed from share/cmake-3.16/Help/module/FindosgAnimation.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgDB.rst (renamed from share/cmake-3.16/Help/module/FindosgDB.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgFX.rst (renamed from share/cmake-3.16/Help/module/FindosgFX.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgGA.rst (renamed from share/cmake-3.16/Help/module/FindosgGA.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgIntrospection.rst (renamed from share/cmake-3.16/Help/module/FindosgIntrospection.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgManipulator.rst (renamed from share/cmake-3.16/Help/module/FindosgManipulator.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgParticle.rst (renamed from share/cmake-3.16/Help/module/FindosgParticle.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgPresentation.rst (renamed from share/cmake-3.16/Help/module/FindosgPresentation.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgProducer.rst (renamed from share/cmake-3.16/Help/module/FindosgProducer.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgQt.rst (renamed from share/cmake-3.16/Help/module/FindosgQt.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgShadow.rst (renamed from share/cmake-3.16/Help/module/FindosgShadow.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgSim.rst (renamed from share/cmake-3.16/Help/module/FindosgSim.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgTerrain.rst (renamed from share/cmake-3.16/Help/module/FindosgTerrain.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgText.rst (renamed from share/cmake-3.16/Help/module/FindosgText.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgUtil.rst (renamed from share/cmake-3.16/Help/module/FindosgUtil.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgViewer.rst (renamed from share/cmake-3.16/Help/module/FindosgViewer.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgVolume.rst (renamed from share/cmake-3.16/Help/module/FindosgVolume.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindosgWidget.rst (renamed from share/cmake-3.16/Help/module/FindosgWidget.rst)0
-rw-r--r--share/cmake-3.17/Help/module/Findosg_functions.rst (renamed from share/cmake-3.16/Help/module/Findosg_functions.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindwxWidgets.rst (renamed from share/cmake-3.16/Help/module/FindwxWidgets.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FindwxWindows.rst (renamed from share/cmake-3.16/Help/module/FindwxWindows.rst)0
-rw-r--r--share/cmake-3.17/Help/module/FortranCInterface.rst (renamed from share/cmake-3.16/Help/module/FortranCInterface.rst)0
-rw-r--r--share/cmake-3.17/Help/module/GNUInstallDirs.rst (renamed from share/cmake-3.16/Help/module/GNUInstallDirs.rst)0
-rw-r--r--share/cmake-3.17/Help/module/GenerateExportHeader.rst (renamed from share/cmake-3.16/Help/module/GenerateExportHeader.rst)0
-rw-r--r--share/cmake-3.17/Help/module/GetPrerequisites.rst (renamed from share/cmake-3.16/Help/module/GetPrerequisites.rst)0
-rw-r--r--share/cmake-3.17/Help/module/GoogleTest.rst (renamed from share/cmake-3.16/Help/module/GoogleTest.rst)0
-rw-r--r--share/cmake-3.17/Help/module/InstallRequiredSystemLibraries.rst (renamed from share/cmake-3.16/Help/module/InstallRequiredSystemLibraries.rst)0
-rw-r--r--share/cmake-3.17/Help/module/MacroAddFileDependencies.rst (renamed from share/cmake-3.16/Help/module/MacroAddFileDependencies.rst)0
-rw-r--r--share/cmake-3.17/Help/module/ProcessorCount.rst (renamed from share/cmake-3.16/Help/module/ProcessorCount.rst)0
-rw-r--r--share/cmake-3.17/Help/module/SelectLibraryConfigurations.rst (renamed from share/cmake-3.16/Help/module/SelectLibraryConfigurations.rst)0
-rw-r--r--share/cmake-3.17/Help/module/SquishTestScript.rst (renamed from share/cmake-3.16/Help/module/SquishTestScript.rst)0
-rw-r--r--share/cmake-3.17/Help/module/TestBigEndian.rst (renamed from share/cmake-3.16/Help/module/TestBigEndian.rst)0
-rw-r--r--share/cmake-3.17/Help/module/TestCXXAcceptsFlag.rst (renamed from share/cmake-3.16/Help/module/TestCXXAcceptsFlag.rst)0
-rw-r--r--share/cmake-3.17/Help/module/TestForANSIForScope.rst (renamed from share/cmake-3.16/Help/module/TestForANSIForScope.rst)0
-rw-r--r--share/cmake-3.17/Help/module/TestForANSIStreamHeaders.rst (renamed from share/cmake-3.16/Help/module/TestForANSIStreamHeaders.rst)0
-rw-r--r--share/cmake-3.17/Help/module/TestForSSTREAM.rst (renamed from share/cmake-3.16/Help/module/TestForSSTREAM.rst)0
-rw-r--r--share/cmake-3.17/Help/module/TestForSTDNamespace.rst (renamed from share/cmake-3.16/Help/module/TestForSTDNamespace.rst)0
-rw-r--r--share/cmake-3.17/Help/module/UseEcos.rst (renamed from share/cmake-3.16/Help/module/UseEcos.rst)0
-rw-r--r--share/cmake-3.17/Help/module/UseJava.rst (renamed from share/cmake-3.16/Help/module/UseJava.rst)0
-rw-r--r--share/cmake-3.17/Help/module/UseJavaClassFilelist.rst (renamed from share/cmake-3.16/Help/module/UseJavaClassFilelist.rst)0
-rw-r--r--share/cmake-3.17/Help/module/UseJavaSymlinks.rst (renamed from share/cmake-3.16/Help/module/UseJavaSymlinks.rst)0
-rw-r--r--share/cmake-3.17/Help/module/UsePkgConfig.rst (renamed from share/cmake-3.16/Help/module/UsePkgConfig.rst)0
-rw-r--r--share/cmake-3.17/Help/module/UseSWIG.rst (renamed from share/cmake-3.16/Help/module/UseSWIG.rst)0
-rw-r--r--share/cmake-3.17/Help/module/Use_wxWindows.rst (renamed from share/cmake-3.16/Help/module/Use_wxWindows.rst)0
-rw-r--r--share/cmake-3.17/Help/module/UsewxWidgets.rst (renamed from share/cmake-3.16/Help/module/UsewxWidgets.rst)0
-rw-r--r--share/cmake-3.17/Help/module/WriteBasicConfigVersionFile.rst (renamed from share/cmake-3.16/Help/module/WriteBasicConfigVersionFile.rst)0
-rw-r--r--share/cmake-3.17/Help/module/WriteCompilerDetectionHeader.rst (renamed from share/cmake-3.16/Help/module/WriteCompilerDetectionHeader.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0000.rst (renamed from share/cmake-3.16/Help/policy/CMP0000.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0001.rst (renamed from share/cmake-3.16/Help/policy/CMP0001.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0002.rst (renamed from share/cmake-3.16/Help/policy/CMP0002.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0003.rst (renamed from share/cmake-3.16/Help/policy/CMP0003.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0004.rst (renamed from share/cmake-3.16/Help/policy/CMP0004.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0005.rst (renamed from share/cmake-3.16/Help/policy/CMP0005.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0006.rst (renamed from share/cmake-3.16/Help/policy/CMP0006.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0007.rst (renamed from share/cmake-3.16/Help/policy/CMP0007.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0008.rst (renamed from share/cmake-3.16/Help/policy/CMP0008.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0009.rst (renamed from share/cmake-3.16/Help/policy/CMP0009.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0010.rst (renamed from share/cmake-3.16/Help/policy/CMP0010.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0011.rst (renamed from share/cmake-3.16/Help/policy/CMP0011.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0012.rst (renamed from share/cmake-3.16/Help/policy/CMP0012.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0013.rst (renamed from share/cmake-3.16/Help/policy/CMP0013.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0014.rst (renamed from share/cmake-3.16/Help/policy/CMP0014.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0015.rst (renamed from share/cmake-3.16/Help/policy/CMP0015.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0016.rst (renamed from share/cmake-3.16/Help/policy/CMP0016.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0017.rst (renamed from share/cmake-3.16/Help/policy/CMP0017.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0018.rst (renamed from share/cmake-3.16/Help/policy/CMP0018.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0019.rst (renamed from share/cmake-3.16/Help/policy/CMP0019.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0020.rst (renamed from share/cmake-3.16/Help/policy/CMP0020.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0021.rst (renamed from share/cmake-3.16/Help/policy/CMP0021.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0022.rst (renamed from share/cmake-3.16/Help/policy/CMP0022.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0023.rst (renamed from share/cmake-3.16/Help/policy/CMP0023.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0024.rst (renamed from share/cmake-3.16/Help/policy/CMP0024.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0025.rst (renamed from share/cmake-3.16/Help/policy/CMP0025.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0026.rst (renamed from share/cmake-3.16/Help/policy/CMP0026.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0027.rst (renamed from share/cmake-3.16/Help/policy/CMP0027.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0028.rst (renamed from share/cmake-3.16/Help/policy/CMP0028.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0029.rst (renamed from share/cmake-3.16/Help/policy/CMP0029.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0030.rst (renamed from share/cmake-3.16/Help/policy/CMP0030.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0031.rst (renamed from share/cmake-3.16/Help/policy/CMP0031.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0032.rst (renamed from share/cmake-3.16/Help/policy/CMP0032.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0033.rst (renamed from share/cmake-3.16/Help/policy/CMP0033.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0034.rst (renamed from share/cmake-3.16/Help/policy/CMP0034.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0035.rst (renamed from share/cmake-3.16/Help/policy/CMP0035.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0036.rst (renamed from share/cmake-3.16/Help/policy/CMP0036.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0037.rst (renamed from share/cmake-3.16/Help/policy/CMP0037.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0038.rst (renamed from share/cmake-3.16/Help/policy/CMP0038.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0039.rst (renamed from share/cmake-3.16/Help/policy/CMP0039.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0040.rst (renamed from share/cmake-3.16/Help/policy/CMP0040.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0041.rst (renamed from share/cmake-3.16/Help/policy/CMP0041.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0042.rst (renamed from share/cmake-3.16/Help/policy/CMP0042.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0043.rst (renamed from share/cmake-3.16/Help/policy/CMP0043.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0044.rst (renamed from share/cmake-3.16/Help/policy/CMP0044.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0045.rst (renamed from share/cmake-3.16/Help/policy/CMP0045.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0046.rst (renamed from share/cmake-3.16/Help/policy/CMP0046.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0047.rst (renamed from share/cmake-3.16/Help/policy/CMP0047.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0048.rst (renamed from share/cmake-3.16/Help/policy/CMP0048.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0049.rst (renamed from share/cmake-3.16/Help/policy/CMP0049.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0050.rst (renamed from share/cmake-3.16/Help/policy/CMP0050.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0051.rst (renamed from share/cmake-3.16/Help/policy/CMP0051.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0052.rst (renamed from share/cmake-3.16/Help/policy/CMP0052.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0053.rst (renamed from share/cmake-3.16/Help/policy/CMP0053.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0054.rst (renamed from share/cmake-3.16/Help/policy/CMP0054.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0055.rst (renamed from share/cmake-3.16/Help/policy/CMP0055.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0056.rst (renamed from share/cmake-3.16/Help/policy/CMP0056.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0057.rst (renamed from share/cmake-3.16/Help/policy/CMP0057.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0058.rst (renamed from share/cmake-3.16/Help/policy/CMP0058.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0059.rst (renamed from share/cmake-3.16/Help/policy/CMP0059.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0060.rst (renamed from share/cmake-3.16/Help/policy/CMP0060.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0061.rst (renamed from share/cmake-3.16/Help/policy/CMP0061.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0062.rst (renamed from share/cmake-3.16/Help/policy/CMP0062.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0063.rst (renamed from share/cmake-3.16/Help/policy/CMP0063.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0064.rst (renamed from share/cmake-3.16/Help/policy/CMP0064.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0065.rst (renamed from share/cmake-3.16/Help/policy/CMP0065.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0066.rst (renamed from share/cmake-3.16/Help/policy/CMP0066.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0067.rst (renamed from share/cmake-3.16/Help/policy/CMP0067.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0068.rst (renamed from share/cmake-3.16/Help/policy/CMP0068.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0069.rst (renamed from share/cmake-3.16/Help/policy/CMP0069.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0070.rst (renamed from share/cmake-3.16/Help/policy/CMP0070.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0071.rst (renamed from share/cmake-3.16/Help/policy/CMP0071.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0072.rst (renamed from share/cmake-3.16/Help/policy/CMP0072.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0073.rst (renamed from share/cmake-3.16/Help/policy/CMP0073.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0074.rst (renamed from share/cmake-3.16/Help/policy/CMP0074.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0075.rst (renamed from share/cmake-3.16/Help/policy/CMP0075.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0076.rst (renamed from share/cmake-3.16/Help/policy/CMP0076.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0077.rst (renamed from share/cmake-3.16/Help/policy/CMP0077.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0078.rst (renamed from share/cmake-3.16/Help/policy/CMP0078.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0079.rst (renamed from share/cmake-3.16/Help/policy/CMP0079.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0080.rst (renamed from share/cmake-3.16/Help/policy/CMP0080.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0081.rst (renamed from share/cmake-3.16/Help/policy/CMP0081.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0082.rst (renamed from share/cmake-3.16/Help/policy/CMP0082.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0083.rst (renamed from share/cmake-3.16/Help/policy/CMP0083.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0084.rst (renamed from share/cmake-3.16/Help/policy/CMP0084.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0085.rst (renamed from share/cmake-3.16/Help/policy/CMP0085.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0086.rst (renamed from share/cmake-3.16/Help/policy/CMP0086.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0087.rst (renamed from share/cmake-3.16/Help/policy/CMP0087.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0088.rst (renamed from share/cmake-3.16/Help/policy/CMP0088.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0089.rst (renamed from share/cmake-3.16/Help/policy/CMP0089.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0090.rst (renamed from share/cmake-3.16/Help/policy/CMP0090.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0091.rst (renamed from share/cmake-3.16/Help/policy/CMP0091.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0092.rst (renamed from share/cmake-3.16/Help/policy/CMP0092.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0093.rst (renamed from share/cmake-3.16/Help/policy/CMP0093.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0094.rst (renamed from share/cmake-3.16/Help/policy/CMP0094.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0095.rst (renamed from share/cmake-3.16/Help/policy/CMP0095.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0096.rst (renamed from share/cmake-3.16/Help/policy/CMP0096.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0097.rst (renamed from share/cmake-3.16/Help/policy/CMP0097.rst)0
-rw-r--r--share/cmake-3.17/Help/policy/CMP0098.rst30
-rw-r--r--share/cmake-3.17/Help/policy/CMP0099.rst24
-rw-r--r--share/cmake-3.17/Help/policy/CMP0100.rst40
-rw-r--r--share/cmake-3.17/Help/policy/CMP0101.rst20
-rw-r--r--share/cmake-3.17/Help/policy/CMP0102.rst25
-rw-r--r--share/cmake-3.17/Help/policy/DEPRECATED.txt (renamed from share/cmake-3.16/Help/policy/DEPRECATED.txt)0
-rw-r--r--share/cmake-3.17/Help/policy/DISALLOWED_COMMAND.txt (renamed from share/cmake-3.16/Help/policy/DISALLOWED_COMMAND.txt)0
-rw-r--r--share/cmake-3.17/Help/prop_cache/ADVANCED.rst (renamed from share/cmake-3.16/Help/prop_cache/ADVANCED.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_cache/HELPSTRING.rst (renamed from share/cmake-3.16/Help/prop_cache/HELPSTRING.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_cache/MODIFIED.rst (renamed from share/cmake-3.16/Help/prop_cache/MODIFIED.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_cache/STRINGS.rst (renamed from share/cmake-3.16/Help/prop_cache/STRINGS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_cache/TYPE.rst (renamed from share/cmake-3.16/Help/prop_cache/TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_cache/VALUE.rst (renamed from share/cmake-3.16/Help/prop_cache/VALUE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst (renamed from share/cmake-3.16/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst (renamed from share/cmake-3.16/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/BINARY_DIR.rst (renamed from share/cmake-3.16/Help/prop_dir/BINARY_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/BUILDSYSTEM_TARGETS.rst (renamed from share/cmake-3.16/Help/prop_dir/BUILDSYSTEM_TARGETS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/CACHE_VARIABLES.rst (renamed from share/cmake-3.16/Help/prop_dir/CACHE_VARIABLES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/CLEAN_NO_CUSTOM.rst (renamed from share/cmake-3.16/Help/prop_dir/CLEAN_NO_CUSTOM.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst (renamed from share/cmake-3.16/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS.rst (renamed from share/cmake-3.16/Help/prop_dir/COMPILE_DEFINITIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/COMPILE_OPTIONS.rst (renamed from share/cmake-3.16/Help/prop_dir/COMPILE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/DEFINITIONS.rst (renamed from share/cmake-3.16/Help/prop_dir/DEFINITIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/EXCLUDE_FROM_ALL.rst (renamed from share/cmake-3.16/Help/prop_dir/EXCLUDE_FROM_ALL.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst (renamed from share/cmake-3.16/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/prop_dir/INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst (renamed from share/cmake-3.16/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst (renamed from share/cmake-3.16/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/LABELS.rst (renamed from share/cmake-3.16/Help/prop_dir/LABELS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/LINK_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/prop_dir/LINK_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/LINK_OPTIONS.rst (renamed from share/cmake-3.16/Help/prop_dir/LINK_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/LISTFILE_STACK.rst (renamed from share/cmake-3.16/Help/prop_dir/LISTFILE_STACK.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/MACROS.rst (renamed from share/cmake-3.16/Help/prop_dir/MACROS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/PARENT_DIRECTORY.rst (renamed from share/cmake-3.16/Help/prop_dir/PARENT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_COMPILE.rst (renamed from share/cmake-3.16/Help/prop_dir/RULE_LAUNCH_COMPILE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst (renamed from share/cmake-3.16/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_LINK.rst (renamed from share/cmake-3.16/Help/prop_dir/RULE_LAUNCH_LINK.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/SOURCE_DIR.rst (renamed from share/cmake-3.16/Help/prop_dir/SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/SUBDIRECTORIES.rst (renamed from share/cmake-3.16/Help/prop_dir/SUBDIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/TESTS.rst (renamed from share/cmake-3.16/Help/prop_dir/TESTS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILE.rst (renamed from share/cmake-3.16/Help/prop_dir/TEST_INCLUDE_FILE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILES.rst (renamed from share/cmake-3.16/Help/prop_dir/TEST_INCLUDE_FILES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/VARIABLES.rst (renamed from share/cmake-3.16/Help/prop_dir/VARIABLES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst (renamed from share/cmake-3.16/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst (renamed from share/cmake-3.16/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_dir/VS_STARTUP_PROJECT.rst (renamed from share/cmake-3.16/Help/prop_dir/VS_STARTUP_PROJECT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst (renamed from share/cmake-3.16/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst (renamed from share/cmake-3.16/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst (renamed from share/cmake-3.16/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst (renamed from share/cmake-3.16/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst (renamed from share/cmake-3.16/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst (renamed from share/cmake-3.16/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/CMAKE_CUDA_KNOWN_FEATURES.rst30
-rw-r--r--share/cmake-3.17/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst (renamed from share/cmake-3.16/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst (renamed from share/cmake-3.16/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/CMAKE_ROLE.rst (renamed from share/cmake-3.16/Help/prop_gbl/CMAKE_ROLE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst (renamed from share/cmake-3.16/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/DISABLED_FEATURES.rst (renamed from share/cmake-3.16/Help/prop_gbl/DISABLED_FEATURES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst (renamed from share/cmake-3.16/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst (renamed from share/cmake-3.16/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/ENABLED_FEATURES.rst (renamed from share/cmake-3.16/Help/prop_gbl/ENABLED_FEATURES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/ENABLED_LANGUAGES.rst (renamed from share/cmake-3.16/Help/prop_gbl/ENABLED_LANGUAGES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst (renamed from share/cmake-3.16/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst (renamed from share/cmake-3.16/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst (renamed from share/cmake-3.16/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst (renamed from share/cmake-3.16/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst (renamed from share/cmake-3.16/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst (renamed from share/cmake-3.16/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/IN_TRY_COMPILE.rst (renamed from share/cmake-3.16/Help/prop_gbl/IN_TRY_COMPILE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/JOB_POOLS.rst (renamed from share/cmake-3.16/Help/prop_gbl/JOB_POOLS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/PACKAGES_FOUND.rst (renamed from share/cmake-3.16/Help/prop_gbl/PACKAGES_FOUND.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/PACKAGES_NOT_FOUND.rst (renamed from share/cmake-3.16/Help/prop_gbl/PACKAGES_NOT_FOUND.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst (renamed from share/cmake-3.16/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst (renamed from share/cmake-3.16/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst (renamed from share/cmake-3.16/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst (renamed from share/cmake-3.16/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_LINK.rst (renamed from share/cmake-3.16/Help/prop_gbl/RULE_LAUNCH_LINK.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/RULE_MESSAGES.rst (renamed from share/cmake-3.16/Help/prop_gbl/RULE_MESSAGES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst (renamed from share/cmake-3.16/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/TARGET_MESSAGES.rst (renamed from share/cmake-3.16/Help/prop_gbl/TARGET_MESSAGES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst (renamed from share/cmake-3.16/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/USE_FOLDERS.rst (renamed from share/cmake-3.16/Help/prop_gbl/USE_FOLDERS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst (renamed from share/cmake-3.16/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst (renamed from share/cmake-3.16/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst (renamed from share/cmake-3.16/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_inst/CPACK_PERMANENT.rst (renamed from share/cmake-3.16/Help/prop_inst/CPACK_PERMANENT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst (renamed from share/cmake-3.16/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst (renamed from share/cmake-3.16/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_inst/CPACK_WIX_ACL.rst (renamed from share/cmake-3.16/Help/prop_inst/CPACK_WIX_ACL.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/ABSTRACT.rst (renamed from share/cmake-3.16/Help/prop_sf/ABSTRACT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/AUTORCC_OPTIONS.rst (renamed from share/cmake-3.16/Help/prop_sf/AUTORCC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/AUTOUIC_OPTIONS.rst (renamed from share/cmake-3.16/Help/prop_sf/AUTOUIC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS.rst (renamed from share/cmake-3.16/Help/prop_sf/COMPILE_DEFINITIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/COMPILE_FLAGS.rst (renamed from share/cmake-3.16/Help/prop_sf/COMPILE_FLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/COMPILE_OPTIONS.rst (renamed from share/cmake-3.16/Help/prop_sf/COMPILE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/EXTERNAL_OBJECT.rst (renamed from share/cmake-3.16/Help/prop_sf/EXTERNAL_OBJECT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/Fortran_FORMAT.rst (renamed from share/cmake-3.16/Help/prop_sf/Fortran_FORMAT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/GENERATED.rst36
-rw-r--r--share/cmake-3.17/Help/prop_sf/HEADER_FILE_ONLY.rst (renamed from share/cmake-3.16/Help/prop_sf/HEADER_FILE_ONLY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/prop_sf/INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/KEEP_EXTENSION.rst (renamed from share/cmake-3.16/Help/prop_sf/KEEP_EXTENSION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/LABELS.rst (renamed from share/cmake-3.16/Help/prop_sf/LABELS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/LANGUAGE.rst (renamed from share/cmake-3.16/Help/prop_sf/LANGUAGE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/LOCATION.rst (renamed from share/cmake-3.16/Help/prop_sf/LOCATION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst (renamed from share/cmake-3.16/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/OBJECT_DEPENDS.rst (renamed from share/cmake-3.16/Help/prop_sf/OBJECT_DEPENDS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/OBJECT_OUTPUTS.rst (renamed from share/cmake-3.16/Help/prop_sf/OBJECT_OUTPUTS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/SKIP_AUTOGEN.rst (renamed from share/cmake-3.16/Help/prop_sf/SKIP_AUTOGEN.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/SKIP_AUTOMOC.rst (renamed from share/cmake-3.16/Help/prop_sf/SKIP_AUTOMOC.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/SKIP_AUTORCC.rst (renamed from share/cmake-3.16/Help/prop_sf/SKIP_AUTORCC.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/SKIP_AUTOUIC.rst (renamed from share/cmake-3.16/Help/prop_sf/SKIP_AUTOUIC.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst (renamed from share/cmake-3.16/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst (renamed from share/cmake-3.16/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/SYMBOLIC.rst (renamed from share/cmake-3.16/Help/prop_sf/SYMBOLIC.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst (renamed from share/cmake-3.16/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst (renamed from share/cmake-3.16/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_CSHARP_tagname.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_CSHARP_tagname.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_RESOURCE_GENERATOR.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_RESOURCE_GENERATOR.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_SHADER_FLAGS.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_SHADER_FLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_SHADER_MODEL.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_SHADER_MODEL.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_SHADER_TYPE.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_SHADER_TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_TOOL_OVERRIDE.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_TOOL_OVERRIDE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/VS_XAML_TYPE.rst (renamed from share/cmake-3.16/Help/prop_sf/VS_XAML_TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/WRAP_EXCLUDE.rst (renamed from share/cmake-3.16/Help/prop_sf/WRAP_EXCLUDE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst (renamed from share/cmake-3.16/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst (renamed from share/cmake-3.16/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst (renamed from share/cmake-3.16/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/ATTACHED_FILES.rst (renamed from share/cmake-3.16/Help/prop_test/ATTACHED_FILES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst (renamed from share/cmake-3.16/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/COST.rst (renamed from share/cmake-3.16/Help/prop_test/COST.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/DEPENDS.rst (renamed from share/cmake-3.16/Help/prop_test/DEPENDS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/DISABLED.rst (renamed from share/cmake-3.16/Help/prop_test/DISABLED.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/ENVIRONMENT.rst (renamed from share/cmake-3.16/Help/prop_test/ENVIRONMENT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst (renamed from share/cmake-3.16/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/FIXTURES_CLEANUP.rst (renamed from share/cmake-3.16/Help/prop_test/FIXTURES_CLEANUP.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/FIXTURES_REQUIRED.rst (renamed from share/cmake-3.16/Help/prop_test/FIXTURES_REQUIRED.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/FIXTURES_SETUP.rst (renamed from share/cmake-3.16/Help/prop_test/FIXTURES_SETUP.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/LABELS.rst (renamed from share/cmake-3.16/Help/prop_test/LABELS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/MEASUREMENT.rst (renamed from share/cmake-3.16/Help/prop_test/MEASUREMENT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/PASS_REGULAR_EXPRESSION.rst (renamed from share/cmake-3.16/Help/prop_test/PASS_REGULAR_EXPRESSION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/PROCESSORS.rst (renamed from share/cmake-3.16/Help/prop_test/PROCESSORS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/PROCESSOR_AFFINITY.rst (renamed from share/cmake-3.16/Help/prop_test/PROCESSOR_AFFINITY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/REQUIRED_FILES.rst (renamed from share/cmake-3.16/Help/prop_test/REQUIRED_FILES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/RESOURCE_GROUPS.rst (renamed from share/cmake-3.16/Help/prop_test/RESOURCE_GROUPS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/RESOURCE_LOCK.rst (renamed from share/cmake-3.16/Help/prop_test/RESOURCE_LOCK.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/RUN_SERIAL.rst (renamed from share/cmake-3.16/Help/prop_test/RUN_SERIAL.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst (renamed from share/cmake-3.16/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/SKIP_RETURN_CODE.rst (renamed from share/cmake-3.16/Help/prop_test/SKIP_RETURN_CODE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/TIMEOUT.rst (renamed from share/cmake-3.16/Help/prop_test/TIMEOUT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/TIMEOUT_AFTER_MATCH.rst (renamed from share/cmake-3.16/Help/prop_test/TIMEOUT_AFTER_MATCH.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/WILL_FAIL.rst (renamed from share/cmake-3.16/Help/prop_test/WILL_FAIL.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_test/WORKING_DIRECTORY.rst (renamed from share/cmake-3.16/Help/prop_test/WORKING_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst (renamed from share/cmake-3.16/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AIX_EXPORT_ALL_SYMBOLS.rst12
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ALIASED_TARGET.rst (renamed from share/cmake-3.16/Help/prop_tgt/ALIASED_TARGET.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_API.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_API.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_API_MIN.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_API_MIN.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_ARCH.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_ARCH.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_GUI.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_GUI.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_PROCESS_MAX.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_PROCESS_MAX.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_PROGUARD.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ANDROID_STL_TYPE.rst (renamed from share/cmake-3.16/Help/prop_tgt/ANDROID_STL_TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.16/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst (renamed from share/cmake-3.16/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst (renamed from share/cmake-3.16/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOGEN_PARALLEL.rst21
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst36
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOMOC.rst247
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst (renamed from share/cmake-3.16/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst107
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst (renamed from share/cmake-3.16/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst (renamed from share/cmake-3.16/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst17
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst32
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTORCC.rst62
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTORCC_EXECUTABLE.rst (renamed from share/cmake-3.16/Help/prop_tgt/AUTORCC_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTORCC_OPTIONS.rst28
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOUIC.rst85
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst (renamed from share/cmake-3.16/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOUIC_OPTIONS.rst32
-rw-r--r--share/cmake-3.17/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst (renamed from share/cmake-3.16/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/BINARY_DIR.rst (renamed from share/cmake-3.16/Help/prop_tgt/BINARY_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/BUILD_RPATH.rst (renamed from share/cmake-3.16/Help/prop_tgt/BUILD_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst (renamed from share/cmake-3.16/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst (renamed from share/cmake-3.16/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst (renamed from share/cmake-3.16/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/BUNDLE.rst (renamed from share/cmake-3.16/Help/prop_tgt/BUNDLE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/BUNDLE_EXTENSION.rst (renamed from share/cmake-3.16/Help/prop_tgt/BUNDLE_EXTENSION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst (renamed from share/cmake-3.16/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst (renamed from share/cmake-3.16/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst (renamed from share/cmake-3.16/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst (renamed from share/cmake-3.16/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst (renamed from share/cmake-3.16/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/COMPILE_DEFINITIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPILE_FEATURES.rst13
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPILE_FLAGS.rst (renamed from share/cmake-3.16/Help/prop_tgt/COMPILE_FLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPILE_OPTIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/COMPILE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NOTE.txt (renamed from share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_NOTE.txt)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CONFIG_POSTFIX.rst (renamed from share/cmake-3.16/Help/prop_tgt/CONFIG_POSTFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst (renamed from share/cmake-3.16/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CUDA_EXTENSIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/CUDA_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CUDA_PTX_COMPILATION.rst (renamed from share/cmake-3.16/Help/prop_tgt/CUDA_PTX_COMPILATION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst (renamed from share/cmake-3.16/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt9
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst21
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst (renamed from share/cmake-3.16/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD.rst (renamed from share/cmake-3.16/Help/prop_tgt/CUDA_STANDARD.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst (renamed from share/cmake-3.16/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CXX_EXTENSIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/CXX_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CXX_STANDARD.rst (renamed from share/cmake-3.16/Help/prop_tgt/CXX_STANDARD.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst (renamed from share/cmake-3.16/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/C_EXTENSIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/C_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/C_STANDARD.rst (renamed from share/cmake-3.16/Help/prop_tgt/C_STANDARD.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/C_STANDARD_REQUIRED.rst (renamed from share/cmake-3.16/Help/prop_tgt/C_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/DEBUG_POSTFIX.rst (renamed from share/cmake-3.16/Help/prop_tgt/DEBUG_POSTFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/DEFINE_SYMBOL.rst (renamed from share/cmake-3.16/Help/prop_tgt/DEFINE_SYMBOL.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst (renamed from share/cmake-3.16/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst (renamed from share/cmake-3.16/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/DEPRECATION.rst7
-rw-r--r--share/cmake-3.17/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst (renamed from share/cmake-3.16/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK.rst13
-rw-r--r--share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst15
-rw-r--r--share/cmake-3.17/Help/prop_tgt/ENABLE_EXPORTS.rst (renamed from share/cmake-3.16/Help/prop_tgt/ENABLE_EXPORTS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_ALL.rst (renamed from share/cmake-3.16/Help/prop_tgt/EXCLUDE_FROM_ALL.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst (renamed from share/cmake-3.16/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/EXPORT_NAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/EXPORT_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/EXPORT_PROPERTIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/EXPORT_PROPERTIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/EchoString.rst (renamed from share/cmake-3.16/Help/prop_tgt/EchoString.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/FOLDER.rst (renamed from share/cmake-3.16/Help/prop_tgt/FOLDER.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/FRAMEWORK.rst (renamed from share/cmake-3.16/Help/prop_tgt/FRAMEWORK.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/FRAMEWORK_VERSION.rst (renamed from share/cmake-3.16/Help/prop_tgt/FRAMEWORK_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/Fortran_FORMAT.rst (renamed from share/cmake-3.16/Help/prop_tgt/Fortran_FORMAT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst (renamed from share/cmake-3.16/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/GENERATOR_FILE_NAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/GENERATOR_FILE_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/GHS_INTEGRITY_APP.rst (renamed from share/cmake-3.16/Help/prop_tgt/GHS_INTEGRITY_APP.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst (renamed from share/cmake-3.16/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/GNUtoMS.rst (renamed from share/cmake-3.16/Help/prop_tgt/GNUtoMS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/HAS_CXX.rst (renamed from share/cmake-3.16/Help/prop_tgt/HAS_CXX.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_GLOBAL.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_GLOBAL.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_IMPLIB.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_LIBNAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_LOCATION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_NO_SONAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_OBJECTS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_SONAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORT_PREFIX.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORT_PREFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORT_SUFFIX.rst (renamed from share/cmake-3.16/Help/prop_tgt/IMPORT_SUFFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INSTALL_NAME_DIR.rst16
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst (renamed from share/cmake-3.16/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH.rst (renamed from share/cmake-3.16/Help/prop_tgt/INSTALL_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst14
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_SOURCES.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_SOURCES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IOS_INSTALL_COMBINED.rst (renamed from share/cmake-3.16/Help/prop_tgt/IOS_INSTALL_COMBINED.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/JOB_POOL_COMPILE.rst (renamed from share/cmake-3.16/Help/prop_tgt/JOB_POOL_COMPILE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/JOB_POOL_LINK.rst (renamed from share/cmake-3.16/Help/prop_tgt/JOB_POOL_LINK.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/JOB_POOL_PRECOMPILE_HEADER.rst21
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LABELS.rst (renamed from share/cmake-3.16/Help/prop_tgt/LABELS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LANG_CLANG_TIDY.rst (renamed from share/cmake-3.16/Help/prop_tgt/LANG_CLANG_TIDY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst (renamed from share/cmake-3.16/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LANG_CPPCHECK.rst (renamed from share/cmake-3.16/Help/prop_tgt/LANG_CPPCHECK.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LANG_CPPLINT.rst (renamed from share/cmake-3.16/Help/prop_tgt/LANG_CPPLINT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst (renamed from share/cmake-3.16/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst (renamed from share/cmake-3.16/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.16/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINKER_LANGUAGE.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINKER_LANGUAGE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_DEPENDS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_FLAGS.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_FLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_FLAGS_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt10
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_OPTIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_WHAT_YOU_USE.rst (renamed from share/cmake-3.16/Help/prop_tgt/LINK_WHAT_YOU_USE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LOCATION.rst (renamed from share/cmake-3.16/Help/prop_tgt/LOCATION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LOCATION_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/LOCATION_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst14
-rw-r--r--share/cmake-3.17/Help/prop_tgt/MACHO_CURRENT_VERSION.rst13
-rw-r--r--share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE.rst (renamed from share/cmake-3.16/Help/prop_tgt/MACOSX_BUNDLE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst (renamed from share/cmake-3.16/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst (renamed from share/cmake-3.16/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/MACOSX_RPATH.rst (renamed from share/cmake-3.16/Help/prop_tgt/MACOSX_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst (renamed from share/cmake-3.16/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt (renamed from share/cmake-3.16/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst (renamed from share/cmake-3.16/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/NAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/NO_SONAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/NO_SONAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst (renamed from share/cmake-3.16/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/OBJCXX_EXTENSIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/OBJCXX_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD.rst (renamed from share/cmake-3.16/Help/prop_tgt/OBJCXX_STANDARD.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst (renamed from share/cmake-3.16/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/OBJC_EXTENSIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/OBJC_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD.rst (renamed from share/cmake-3.16/Help/prop_tgt/OBJC_STANDARD.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst (renamed from share/cmake-3.16/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES.rst (renamed from share/cmake-3.16/Help/prop_tgt/OSX_ARCHITECTURES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/OUTPUT_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/PDB_NAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/PDB_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/PDB_NAME_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/PDB_NAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/PDB_NOTE.txt (renamed from share/cmake-3.16/Help/prop_tgt/PDB_NOTE.txt)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.16/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst (renamed from share/cmake-3.16/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/POST_INSTALL_SCRIPT.rst (renamed from share/cmake-3.16/Help/prop_tgt/POST_INSTALL_SCRIPT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS.rst (renamed from share/cmake-3.16/Help/prop_tgt/PRECOMPILE_HEADERS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst (renamed from share/cmake-3.16/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/PREFIX.rst (renamed from share/cmake-3.16/Help/prop_tgt/PREFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst (renamed from share/cmake-3.16/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/PRIVATE_HEADER.rst (renamed from share/cmake-3.16/Help/prop_tgt/PRIVATE_HEADER.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/PROJECT_LABEL.rst (renamed from share/cmake-3.16/Help/prop_tgt/PROJECT_LABEL.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/PUBLIC_HEADER.rst (renamed from share/cmake-3.16/Help/prop_tgt/PUBLIC_HEADER.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/RESOURCE.rst (renamed from share/cmake-3.16/Help/prop_tgt/RESOURCE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst (renamed from share/cmake-3.16/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst (renamed from share/cmake-3.16/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_LINK.rst (renamed from share/cmake-3.16/Help/prop_tgt/RULE_LAUNCH_LINK.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.16/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/SKIP_BUILD_RPATH.rst (renamed from share/cmake-3.16/Help/prop_tgt/SKIP_BUILD_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/SOURCES.rst (renamed from share/cmake-3.16/Help/prop_tgt/SOURCES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/SOURCE_DIR.rst (renamed from share/cmake-3.16/Help/prop_tgt/SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/SOVERSION.rst29
-rw-r--r--share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst (renamed from share/cmake-3.16/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst (renamed from share/cmake-3.16/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/SUFFIX.rst (renamed from share/cmake-3.16/Help/prop_tgt/SUFFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst (renamed from share/cmake-3.16/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst (renamed from share/cmake-3.16/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst (renamed from share/cmake-3.16/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/Swift_MODULE_NAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/Swift_MODULE_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/TYPE.rst (renamed from share/cmake-3.16/Help/prop_tgt/TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/UNITY_BUILD.rst (renamed from share/cmake-3.16/Help/prop_tgt/UNITY_BUILD.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst (renamed from share/cmake-3.16/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst (renamed from share/cmake-3.16/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst (renamed from share/cmake-3.16/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VERSION.rst31
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst (renamed from share/cmake-3.16/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_DOTNET_DOCUMENTATION_FILE.rst6
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_DOTNET_REFERENCES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst11
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_DPI_AWARE.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_DPI_AWARE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_variable.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_GLOBAL_variable.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_KEYWORD.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_KEYWORD.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_PROJECT_IMPORT.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_PROJECT_IMPORT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_SCC_AUXPATH.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_SCC_AUXPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_SCC_LOCALPATH.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_SCC_LOCALPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_SCC_PROJECTNAME.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_SCC_PROJECTNAME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_SCC_PROVIDER.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_SCC_PROVIDER.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_SDK_REFERENCES.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_SDK_REFERENCES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_USER_PROPS.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_USER_PROPS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_WINRT_COMPONENT.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_WINRT_COMPONENT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VS_WINRT_REFERENCES.rst (renamed from share/cmake-3.16/Help/prop_tgt/VS_WINRT_REFERENCES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/WIN32_EXECUTABLE.rst (renamed from share/cmake-3.16/Help/prop_tgt/WIN32_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst (renamed from share/cmake-3.16/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst13
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCTEST.rst (renamed from share/cmake-3.16/Help/prop_tgt/XCTEST.rst)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt (renamed from share/cmake-3.16/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt)0
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_NAME.txt (renamed from share/cmake-3.16/Help/prop_tgt/XXX_OUTPUT_NAME.txt)0
-rw-r--r--share/cmake-3.17/Help/release/3.0.rst (renamed from share/cmake-3.16/Help/release/3.0.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.1.rst (renamed from share/cmake-3.16/Help/release/3.1.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.10.rst (renamed from share/cmake-3.16/Help/release/3.10.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.11.rst (renamed from share/cmake-3.16/Help/release/3.11.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.12.rst (renamed from share/cmake-3.16/Help/release/3.12.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.13.rst (renamed from share/cmake-3.16/Help/release/3.13.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.14.rst (renamed from share/cmake-3.16/Help/release/3.14.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.15.rst (renamed from share/cmake-3.16/Help/release/3.15.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.16.rst305
-rw-r--r--share/cmake-3.17/Help/release/3.17.rst321
-rw-r--r--share/cmake-3.17/Help/release/3.2.rst (renamed from share/cmake-3.16/Help/release/3.2.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.3.rst (renamed from share/cmake-3.16/Help/release/3.3.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.4.rst (renamed from share/cmake-3.16/Help/release/3.4.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.5.rst (renamed from share/cmake-3.16/Help/release/3.5.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.6.rst (renamed from share/cmake-3.16/Help/release/3.6.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.7.rst (renamed from share/cmake-3.16/Help/release/3.7.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.8.rst (renamed from share/cmake-3.16/Help/release/3.8.rst)0
-rw-r--r--share/cmake-3.17/Help/release/3.9.rst (renamed from share/cmake-3.16/Help/release/3.9.rst)0
-rw-r--r--share/cmake-3.17/Help/release/dev.txt (renamed from share/cmake-3.16/Help/release/dev.txt)0
-rw-r--r--share/cmake-3.17/Help/release/index.rst33
-rw-r--r--share/cmake-3.17/Help/variable/ANDROID.rst (renamed from share/cmake-3.16/Help/variable/ANDROID.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/APPLE.rst (renamed from share/cmake-3.16/Help/variable/APPLE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/BORLAND.rst (renamed from share/cmake-3.16/Help/variable/BORLAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/BUILD_SHARED_LIBS.rst (renamed from share/cmake-3.16/Help/variable/BUILD_SHARED_LIBS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CACHE.rst (renamed from share/cmake-3.16/Help/variable/CACHE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS.rst6
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_API.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_API.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_API_MIN.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_API_MIN.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_ARCH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_MODE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_ARM_MODE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_NEON.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_ARM_NEON.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_GUI.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_GUI.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_NDK.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_PROGUARD.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ANDROID_STL_TYPE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ANDROID_STL_TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_APPBUNDLE_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_APPBUNDLE_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ARGC.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ARGC.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ARGV0.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ARGV0.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTOMOC.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTOMOC.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTORCC.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTORCC.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTORCC_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTORCC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTOUIC.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTOUIC.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_BINARY_DIR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_BINARY_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_BUILD_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_BUILD_TOOL.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_BUILD_TOOL.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_BUILD_TYPE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_BUILD_TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CACHEFILE_DIR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CACHEFILE_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CFG_INTDIR.rst52
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CL_64.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CL_64.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_COLOR_MAKEFILE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_COLOR_MAKEFILE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_COMPILER_2005.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_COMPILER_2005.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CONFIGURATION_TYPES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CONFIGURATION_TYPES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CONFIG_POSTFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CONFIG_POSTFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CPACK_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CPACK_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CROSSCOMPILING.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CROSS_CONFIGS.rst7
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CTEST_ARGUMENTS.rst6
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CTEST_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CTEST_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst11
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CUDA_EXTENSIONS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CUDA_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst24
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CUDA_STANDARD.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION.rst6
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst33
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst5
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst5
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_DIR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CURRENT_LIST_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_FILE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CURRENT_LIST_FILE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_LINE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CURRENT_LIST_LINE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CXX_EXTENSIONS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CXX_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CXX_STANDARD.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_C_COMPILE_FEATURES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_C_COMPILE_FEATURES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_C_EXTENSIONS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_C_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_C_STANDARD.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_C_STANDARD.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_DEBUG_POSTFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_DEBUG_POSTFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst6
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_DEFAULT_CONFIGS.rst7
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_DIRECTORY_LABELS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_DIRECTORY_LABELS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_DL_LIBS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_DL_LIBS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst16
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst20
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_EDIT_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_EDIT_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ENABLE_EXPORTS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ENABLE_EXPORTS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ERROR_DEPRECATED.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ERROR_DEPRECATED.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst37
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_EXTRA_GENERATOR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_EXTRA_GENERATOR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_APPBUNDLE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_APPBUNDLE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_DEBUG_MODE.rst22
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_FRAMEWORK.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_FRAMEWORK.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FOLDER.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FOLDER.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FRAMEWORK.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_FRAMEWORK_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_Fortran_FORMAT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_Fortran_FORMAT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_GENERATOR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_GENERATOR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_GENERATOR_INSTANCE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_GENERATOR_INSTANCE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_GENERATOR_PLATFORM.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_GENERATOR_PLATFORM.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_GENERATOR_TOOLSET.rst65
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst26
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_GNUtoMS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_GNUtoMS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_HOME_DIRECTORY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_HOME_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_HOST_APPLE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_HOST_APPLE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_HOST_SOLARIS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_HOST_SOLARIS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_HOST_SYSTEM.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst15
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_HOST_UNIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_HOST_UNIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_HOST_WIN32.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_HOST_WIN32.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_IGNORE_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_IGNORE_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INCLUDE_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INCLUDE_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INSTALL_MESSAGE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INSTALL_MESSAGE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INSTALL_NAME_DIR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INSTALL_NAME_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INSTALL_PREFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INSTALL_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst13
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_JOB_POOLS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_JOB_POOLS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_COMPILE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_JOB_POOL_COMPILE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_LINK.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_JOB_POOL_LINK.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER.rst6
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_CLANG_TIDY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_CLANG_TIDY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ABI.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_ABI.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_AR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_AR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ID.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_ID.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst10
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_CPPCHECK.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_CPPCHECK.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_CPPLINT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_CPPLINT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_PLATFORM_ID.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_PLATFORM_ID.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_ID.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_SIMULATE_ID.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LIBRARY_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MACOSX_BUNDLE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MACOSX_BUNDLE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MACOSX_RPATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MACOSX_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MAJOR_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MAJOR_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MAKE_PROGRAM.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MAKE_PROGRAM.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MATCH_COUNT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MATCH_COUNT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MATCH_n.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MATCH_n.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT.rst62
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst15
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MESSAGE_INDENT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MESSAGE_INDENT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst15
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MFC_FLAG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MFC_FLAG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MINOR_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MINOR_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MODULE_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MODULE_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_NETRC.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_NETRC.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_NETRC_FILE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_NETRC_FILE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_OBJCXX_STANDARD.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_OBJC_EXTENSIONS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_OBJC_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_OBJC_STANDARD.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_OBJECT_PATH_MAX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_OBJECT_PATH_MAX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_OSX_ARCHITECTURES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_OSX_ARCHITECTURES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_OSX_SYSROOT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_OSX_SYSROOT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_OSX_VARIABLE.txt (renamed from share/cmake-3.16/Help/variable/CMAKE_OSX_VARIABLE.txt)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PARENT_LIST_FILE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PARENT_LIST_FILE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PATCH_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PATCH_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst33
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PREFIX_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PREFIX_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PROGRAM_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PROGRAM_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE.rst10
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst10
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PROJECT_NAME.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PROJECT_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst11
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst11
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_RANLIB.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_RANLIB.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_ROOT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_ROOT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_RULE_MESSAGES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_RULE_MESSAGES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SIZEOF_VOID_P.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SIZEOF_VOID_P.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SKIP_RPATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SKIP_RPATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SOURCE_DIR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_STAGING_PREFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_STAGING_PREFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSROOT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSROOT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSROOT_COMPILE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSROOT_COMPILE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSROOT_LINK.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSROOT_LINK.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSTEM.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSTEM.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSTEM_NAME.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSTEM_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSTEM_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_SYSTEM_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_Swift_NUM_THREADS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_Swift_NUM_THREADS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_TOOLCHAIN_FILE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_TOOLCHAIN_FILE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_TWEAK_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_TWEAK_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_UNITY_BUILD.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_GLOBALS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_GLOBALS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst18
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_WARN_DEPRECATED.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_WARN_DEPRECATED.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_WIN32_EXECUTABLE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_WIN32_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT.rst15
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst12
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst (renamed from share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst (renamed from share/cmake-3.16/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst (renamed from share/cmake-3.16/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst (renamed from share/cmake-3.16/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst (renamed from share/cmake-3.16/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst (renamed from share/cmake-3.16/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst (renamed from share/cmake-3.16/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CPACK_SET_DESTDIR.rst (renamed from share/cmake-3.16/Help/variable/CPACK_SET_DESTDIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst (renamed from share/cmake-3.16/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_BINARY_DIRECTORY.rst (renamed from share/cmake-3.16/Help/variable/CTEST_BINARY_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_BUILD_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CTEST_BUILD_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_BUILD_NAME.rst (renamed from share/cmake-3.16/Help/variable/CTEST_BUILD_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_BZR_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CTEST_BZR_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CHANGE_ID.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CHANGE_ID.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CHECKOUT_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CHECKOUT_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CONFIGURATION_TYPE.rst8
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CONFIGURE_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CONFIGURE_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_COVERAGE_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CTEST_COVERAGE_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CURL_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CURL_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_TEST.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_POST_TEST.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_TEST.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_PRE_TEST.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CUSTOM_XXX.txt (renamed from share/cmake-3.16/Help/variable/CTEST_CUSTOM_XXX.txt)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CVS_CHECKOUT.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CVS_CHECKOUT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CVS_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CVS_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_DROP_LOCATION.rst (renamed from share/cmake-3.16/Help/variable/CTEST_DROP_LOCATION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_DROP_METHOD.rst (renamed from share/cmake-3.16/Help/variable/CTEST_DROP_METHOD.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_DROP_SITE.rst (renamed from share/cmake-3.16/Help/variable/CTEST_DROP_SITE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_DROP_SITE_CDASH.rst (renamed from share/cmake-3.16/Help/variable/CTEST_DROP_SITE_CDASH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_DROP_SITE_PASSWORD.rst (renamed from share/cmake-3.16/Help/variable/CTEST_DROP_SITE_PASSWORD.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_DROP_SITE_USER.rst (renamed from share/cmake-3.16/Help/variable/CTEST_DROP_SITE_USER.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst (renamed from share/cmake-3.16/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_GIT_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CTEST_GIT_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst (renamed from share/cmake-3.16/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst (renamed from share/cmake-3.16/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_HG_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CTEST_HG_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst (renamed from share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_TYPE.rst8
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_NIGHTLY_START_TIME.rst (renamed from share/cmake-3.16/Help/variable/CTEST_NIGHTLY_START_TIME.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_P4_CLIENT.rst (renamed from share/cmake-3.16/Help/variable/CTEST_P4_CLIENT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_P4_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CTEST_P4_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_P4_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_P4_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst (renamed from share/cmake-3.16/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_SCP_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CTEST_SCP_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_SITE.rst (renamed from share/cmake-3.16/Help/variable/CTEST_SITE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_SOURCE_DIRECTORY.rst (renamed from share/cmake-3.16/Help/variable/CTEST_SOURCE_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_SUBMIT_URL.rst (renamed from share/cmake-3.16/Help/variable/CTEST_SUBMIT_URL.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_SVN_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CTEST_SVN_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_SVN_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_SVN_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_TEST_LOAD.rst (renamed from share/cmake-3.16/Help/variable/CTEST_TEST_LOAD.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_TEST_TIMEOUT.rst (renamed from share/cmake-3.16/Help/variable/CTEST_TEST_TIMEOUT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_TRIGGER_SITE.rst (renamed from share/cmake-3.16/Help/variable/CTEST_TRIGGER_SITE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_UPDATE_COMMAND.rst (renamed from share/cmake-3.16/Help/variable/CTEST_UPDATE_COMMAND.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_UPDATE_OPTIONS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst (renamed from share/cmake-3.16/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst (renamed from share/cmake-3.16/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_USE_LAUNCHERS.rst (renamed from share/cmake-3.16/Help/variable/CTEST_USE_LAUNCHERS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/CYGWIN.rst (renamed from share/cmake-3.16/Help/variable/CYGWIN.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/ENV.rst (renamed from share/cmake-3.16/Help/variable/ENV.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/EXECUTABLE_OUTPUT_PATH.rst (renamed from share/cmake-3.16/Help/variable/EXECUTABLE_OUTPUT_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/GHS-MULTI.rst (renamed from share/cmake-3.16/Help/variable/GHS-MULTI.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/IOS.rst (renamed from share/cmake-3.16/Help/variable/IOS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/LIBRARY_OUTPUT_PATH.rst (renamed from share/cmake-3.16/Help/variable/LIBRARY_OUTPUT_PATH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MINGW.rst (renamed from share/cmake-3.16/Help/variable/MINGW.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSVC.rst (renamed from share/cmake-3.16/Help/variable/MSVC.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSVC10.rst (renamed from share/cmake-3.16/Help/variable/MSVC10.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSVC11.rst (renamed from share/cmake-3.16/Help/variable/MSVC11.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSVC12.rst (renamed from share/cmake-3.16/Help/variable/MSVC12.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSVC14.rst (renamed from share/cmake-3.16/Help/variable/MSVC14.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSVC60.rst (renamed from share/cmake-3.16/Help/variable/MSVC60.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSVC70.rst (renamed from share/cmake-3.16/Help/variable/MSVC70.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSVC71.rst (renamed from share/cmake-3.16/Help/variable/MSVC71.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSVC80.rst (renamed from share/cmake-3.16/Help/variable/MSVC80.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSVC90.rst (renamed from share/cmake-3.16/Help/variable/MSVC90.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSVC_IDE.rst (renamed from share/cmake-3.16/Help/variable/MSVC_IDE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSVC_TOOLSET_VERSION.rst (renamed from share/cmake-3.16/Help/variable/MSVC_TOOLSET_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSVC_VERSION.rst (renamed from share/cmake-3.16/Help/variable/MSVC_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/MSYS.rst (renamed from share/cmake-3.16/Help/variable/MSYS.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT-NAME_BINARY_DIR.rst (renamed from share/cmake-3.16/Help/variable/PROJECT-NAME_BINARY_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT-NAME_DESCRIPTION.rst (renamed from share/cmake-3.16/Help/variable/PROJECT-NAME_DESCRIPTION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst (renamed from share/cmake-3.16/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT-NAME_SOURCE_DIR.rst (renamed from share/cmake-3.16/Help/variable/PROJECT-NAME_SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION.rst (renamed from share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst (renamed from share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MINOR.rst (renamed from share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION_MINOR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_PATCH.rst (renamed from share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION_PATCH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst (renamed from share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT_BINARY_DIR.rst (renamed from share/cmake-3.16/Help/variable/PROJECT_BINARY_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT_DESCRIPTION.rst (renamed from share/cmake-3.16/Help/variable/PROJECT_DESCRIPTION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT_HOMEPAGE_URL.rst (renamed from share/cmake-3.16/Help/variable/PROJECT_HOMEPAGE_URL.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT_NAME.rst (renamed from share/cmake-3.16/Help/variable/PROJECT_NAME.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT_SOURCE_DIR.rst (renamed from share/cmake-3.16/Help/variable/PROJECT_SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT_VERSION.rst (renamed from share/cmake-3.16/Help/variable/PROJECT_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT_VERSION_MAJOR.rst (renamed from share/cmake-3.16/Help/variable/PROJECT_VERSION_MAJOR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT_VERSION_MINOR.rst (renamed from share/cmake-3.16/Help/variable/PROJECT_VERSION_MINOR.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT_VERSION_PATCH.rst (renamed from share/cmake-3.16/Help/variable/PROJECT_VERSION_PATCH.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT_VERSION_TWEAK.rst (renamed from share/cmake-3.16/Help/variable/PROJECT_VERSION_TWEAK.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/PackageName_ROOT.rst (renamed from share/cmake-3.16/Help/variable/PackageName_ROOT.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/UNIX.rst (renamed from share/cmake-3.16/Help/variable/UNIX.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/WIN32.rst (renamed from share/cmake-3.16/Help/variable/WIN32.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/WINCE.rst (renamed from share/cmake-3.16/Help/variable/WINCE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/WINDOWS_PHONE.rst (renamed from share/cmake-3.16/Help/variable/WINDOWS_PHONE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/WINDOWS_STORE.rst (renamed from share/cmake-3.16/Help/variable/WINDOWS_STORE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/XCODE.rst (renamed from share/cmake-3.16/Help/variable/XCODE.rst)0
-rw-r--r--share/cmake-3.17/Help/variable/XCODE_VERSION.rst (renamed from share/cmake-3.16/Help/variable/XCODE_VERSION.rst)0
-rw-r--r--share/cmake-3.17/Modules/AddFileDependencies.cmake (renamed from share/cmake-3.16/Modules/AddFileDependencies.cmake)0
-rw-r--r--share/cmake-3.17/Modules/AndroidTestUtilities.cmake162
-rw-r--r--share/cmake-3.17/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake (renamed from share/cmake-3.16/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake)0
-rw-r--r--share/cmake-3.17/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in (renamed from share/cmake-3.16/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/BasicConfigVersion-ExactVersion.cmake.in (renamed from share/cmake-3.16/Modules/BasicConfigVersion-ExactVersion.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/BasicConfigVersion-SameMajorVersion.cmake.in (renamed from share/cmake-3.16/Modules/BasicConfigVersion-SameMajorVersion.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/BasicConfigVersion-SameMinorVersion.cmake.in (renamed from share/cmake-3.16/Modules/BasicConfigVersion-SameMinorVersion.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/BundleUtilities.cmake (renamed from share/cmake-3.16/Modules/BundleUtilities.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMake.cmake (renamed from share/cmake-3.16/Modules/CMake.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeASM-ATTInformation.cmake (renamed from share/cmake-3.16/Modules/CMakeASM-ATTInformation.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeASMCompiler.cmake.in (renamed from share/cmake-3.16/Modules/CMakeASMCompiler.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeASMInformation.cmake (renamed from share/cmake-3.16/Modules/CMakeASMInformation.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeASM_MASMInformation.cmake (renamed from share/cmake-3.16/Modules/CMakeASM_MASMInformation.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeASM_NASMInformation.cmake (renamed from share/cmake-3.16/Modules/CMakeASM_NASMInformation.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeAddFortranSubdirectory.cmake194
-rw-r--r--share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in (renamed from share/cmake-3.16/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in (renamed from share/cmake-3.16/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeAddNewLanguage.txt (renamed from share/cmake-3.16/Modules/CMakeAddNewLanguage.txt)0
-rw-r--r--share/cmake-3.17/Modules/CMakeBackwardCompatibilityC.cmake (renamed from share/cmake-3.16/Modules/CMakeBackwardCompatibilityC.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeBackwardCompatibilityCXX.cmake (renamed from share/cmake-3.16/Modules/CMakeBackwardCompatibilityCXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeBorlandFindMake.cmake (renamed from share/cmake-3.16/Modules/CMakeBorlandFindMake.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeBuildSettings.cmake.in (renamed from share/cmake-3.16/Modules/CMakeBuildSettings.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeCCompiler.cmake.in (renamed from share/cmake-3.16/Modules/CMakeCCompiler.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeCCompilerABI.c (renamed from share/cmake-3.16/Modules/CMakeCCompilerABI.c)0
-rw-r--r--share/cmake-3.17/Modules/CMakeCCompilerId.c.in (renamed from share/cmake-3.16/Modules/CMakeCCompilerId.c.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeCInformation.cmake195
-rw-r--r--share/cmake-3.17/Modules/CMakeCSharpCompiler.cmake.in (renamed from share/cmake-3.16/Modules/CMakeCSharpCompiler.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeCSharpCompilerId.cs.in (renamed from share/cmake-3.16/Modules/CMakeCSharpCompilerId.cs.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeCSharpInformation.cmake67
-rw-r--r--share/cmake-3.17/Modules/CMakeCUDACompiler.cmake.in57
-rw-r--r--share/cmake-3.17/Modules/CMakeCUDACompilerABI.cu (renamed from share/cmake-3.16/Modules/CMakeCUDACompilerABI.cu)0
-rw-r--r--share/cmake-3.17/Modules/CMakeCUDACompilerId.cu.in52
-rw-r--r--share/cmake-3.17/Modules/CMakeCUDAInformation.cmake205
-rw-r--r--share/cmake-3.17/Modules/CMakeCXXCompiler.cmake.in (renamed from share/cmake-3.16/Modules/CMakeCXXCompiler.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp (renamed from share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp)0
-rw-r--r--share/cmake-3.17/Modules/CMakeCXXCompilerId.cpp.in (renamed from share/cmake-3.16/Modules/CMakeCXXCompilerId.cpp.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeCXXInformation.cmake282
-rw-r--r--share/cmake-3.17/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake36
-rw-r--r--share/cmake-3.17/Modules/CMakeCommonLanguageInclude.cmake (renamed from share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeCompilerABI.h (renamed from share/cmake-3.16/Modules/CMakeCompilerABI.h)0
-rw-r--r--share/cmake-3.17/Modules/CMakeCompilerIdDetection.cmake (renamed from share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeConfigurableFile.in (renamed from share/cmake-3.16/Modules/CMakeConfigurableFile.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDependentOption.cmake (renamed from share/cmake-3.16/Modules/CMakeDependentOption.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineASM-ATTCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeDetermineASM-ATTCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineASMCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeDetermineASMCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineASM_MASMCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeDetermineASM_MASMCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineASM_NASMCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeDetermineASM_NASMCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineCCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineCSharpCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeDetermineCSharpCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineCUDACompiler.cmake224
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineCXXCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineCompileFeatures.cmake147
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeDetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineCompilerABI.cmake187
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineCompilerId.cmake930
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineFortranCompiler.cmake295
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineJavaCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeDetermineJavaCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineOBJCCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeDetermineOBJCCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineOBJCXXCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeDetermineOBJCXXCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineRCCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeDetermineRCCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineSwiftCompiler.cmake78
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineSystem.cmake189
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineVSServicePack.cmake (renamed from share/cmake-3.16/Modules/CMakeDetermineVSServicePack.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeExpandImportedTargets.cmake (renamed from share/cmake-3.16/Modules/CMakeExpandImportedTargets.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeExportBuildSettings.cmake (renamed from share/cmake-3.16/Modules/CMakeExportBuildSettings.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake (renamed from share/cmake-3.16/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFindBinUtils.cmake (renamed from share/cmake-3.16/Modules/CMakeFindBinUtils.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFindCodeBlocks.cmake (renamed from share/cmake-3.16/Modules/CMakeFindCodeBlocks.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFindDependencyMacro.cmake (renamed from share/cmake-3.16/Modules/CMakeFindDependencyMacro.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFindEclipseCDT4.cmake (renamed from share/cmake-3.16/Modules/CMakeFindEclipseCDT4.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFindFrameworks.cmake (renamed from share/cmake-3.16/Modules/CMakeFindFrameworks.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFindJavaCommon.cmake (renamed from share/cmake-3.16/Modules/CMakeFindJavaCommon.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFindKate.cmake (renamed from share/cmake-3.16/Modules/CMakeFindKate.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFindPackageMode.cmake (renamed from share/cmake-3.16/Modules/CMakeFindPackageMode.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFindSublimeText2.cmake (renamed from share/cmake-3.16/Modules/CMakeFindSublimeText2.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFindWMake.cmake (renamed from share/cmake-3.16/Modules/CMakeFindWMake.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFindXCode.cmake (renamed from share/cmake-3.16/Modules/CMakeFindXCode.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeForceCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeForceCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFortranCompiler.cmake.in68
-rw-r--r--share/cmake-3.17/Modules/CMakeFortranCompilerABI.F (renamed from share/cmake-3.16/Modules/CMakeFortranCompilerABI.F)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFortranCompilerId.F.in (renamed from share/cmake-3.16/Modules/CMakeFortranCompilerId.F.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeFortranInformation.cmake222
-rw-r--r--share/cmake-3.17/Modules/CMakeGenericSystem.cmake187
-rw-r--r--share/cmake-3.17/Modules/CMakeGraphVizOptions.cmake149
-rw-r--r--share/cmake-3.17/Modules/CMakeIOSInstallCombined.cmake (renamed from share/cmake-3.16/Modules/CMakeIOSInstallCombined.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeImportBuildSettings.cmake (renamed from share/cmake-3.16/Modules/CMakeImportBuildSettings.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeInitializeConfigs.cmake (renamed from share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeJOMFindMake.cmake (renamed from share/cmake-3.16/Modules/CMakeJOMFindMake.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeJavaCompiler.cmake.in (renamed from share/cmake-3.16/Modules/CMakeJavaCompiler.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeJavaInformation.cmake (renamed from share/cmake-3.16/Modules/CMakeJavaInformation.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeLanguageInformation.cmake (renamed from share/cmake-3.16/Modules/CMakeLanguageInformation.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeMSYSFindMake.cmake (renamed from share/cmake-3.16/Modules/CMakeMSYSFindMake.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeMinGWFindMake.cmake11
-rw-r--r--share/cmake-3.17/Modules/CMakeNMakeFindMake.cmake (renamed from share/cmake-3.16/Modules/CMakeNMakeFindMake.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeNinjaFindMake.cmake9
-rw-r--r--share/cmake-3.17/Modules/CMakeOBJCCompiler.cmake.in (renamed from share/cmake-3.16/Modules/CMakeOBJCCompiler.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeOBJCCompilerABI.m (renamed from share/cmake-3.16/Modules/CMakeOBJCCompilerABI.m)0
-rw-r--r--share/cmake-3.17/Modules/CMakeOBJCCompilerId.m.in (renamed from share/cmake-3.16/Modules/CMakeOBJCCompilerId.m.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeOBJCInformation.cmake193
-rw-r--r--share/cmake-3.17/Modules/CMakeOBJCXXCompiler.cmake.in (renamed from share/cmake-3.16/Modules/CMakeOBJCXXCompiler.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeOBJCXXCompilerABI.mm (renamed from share/cmake-3.16/Modules/CMakeOBJCXXCompilerABI.mm)0
-rw-r--r--share/cmake-3.17/Modules/CMakeOBJCXXCompilerId.mm.in (renamed from share/cmake-3.16/Modules/CMakeOBJCXXCompilerId.mm.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeOBJCXXInformation.cmake278
-rw-r--r--share/cmake-3.17/Modules/CMakePackageConfigHelpers.cmake (renamed from share/cmake-3.16/Modules/CMakePackageConfigHelpers.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeParseArguments.cmake (renamed from share/cmake-3.16/Modules/CMakeParseArguments.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeParseImplicitIncludeInfo.cmake (renamed from share/cmake-3.16/Modules/CMakeParseImplicitIncludeInfo.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeParseImplicitLinkInfo.cmake (renamed from share/cmake-3.16/Modules/CMakeParseImplicitLinkInfo.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakePlatformId.h.in (renamed from share/cmake-3.16/Modules/CMakePlatformId.h.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakePrintHelpers.cmake (renamed from share/cmake-3.16/Modules/CMakePrintHelpers.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakePrintSystemInformation.cmake41
-rw-r--r--share/cmake-3.17/Modules/CMakePushCheckState.cmake (renamed from share/cmake-3.16/Modules/CMakePushCheckState.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeRCCompiler.cmake.in (renamed from share/cmake-3.16/Modules/CMakeRCCompiler.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeRCInformation.cmake (renamed from share/cmake-3.16/Modules/CMakeRCInformation.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeSwiftCompiler.cmake.in16
-rw-r--r--share/cmake-3.17/Modules/CMakeSwiftInformation.cmake103
-rw-r--r--share/cmake-3.17/Modules/CMakeSystem.cmake.in (renamed from share/cmake-3.16/Modules/CMakeSystem.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/CMakeSystemSpecificInformation.cmake (renamed from share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeSystemSpecificInitialize.cmake (renamed from share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeTestASM-ATTCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeTestASM-ATTCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeTestASMCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeTestASMCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeTestASM_MASMCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeTestASM_MASMCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeTestASM_NASMCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeTestASM_NASMCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeTestCCompiler.cmake97
-rw-r--r--share/cmake-3.17/Modules/CMakeTestCSharpCompiler.cmake67
-rw-r--r--share/cmake-3.17/Modules/CMakeTestCUDACompiler.cmake103
-rw-r--r--share/cmake-3.17/Modules/CMakeTestCXXCompiler.cmake90
-rw-r--r--share/cmake-3.17/Modules/CMakeTestCompilerCommon.cmake34
-rw-r--r--share/cmake-3.17/Modules/CMakeTestFortranCompiler.cmake102
-rw-r--r--share/cmake-3.17/Modules/CMakeTestGNU.c (renamed from share/cmake-3.16/Modules/CMakeTestGNU.c)0
-rw-r--r--share/cmake-3.17/Modules/CMakeTestJavaCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeTestJavaCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeTestOBJCCompiler.cmake94
-rw-r--r--share/cmake-3.17/Modules/CMakeTestOBJCXXCompiler.cmake93
-rw-r--r--share/cmake-3.17/Modules/CMakeTestRCCompiler.cmake (renamed from share/cmake-3.16/Modules/CMakeTestRCCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeTestSwiftCompiler.cmake64
-rw-r--r--share/cmake-3.17/Modules/CMakeUnixFindMake.cmake (renamed from share/cmake-3.16/Modules/CMakeUnixFindMake.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CMakeVerifyManifest.cmake (renamed from share/cmake-3.16/Modules/CMakeVerifyManifest.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CPack.cmake809
-rw-r--r--share/cmake-3.17/Modules/CPackComponent.cmake (renamed from share/cmake-3.16/Modules/CPackComponent.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CPackIFW.cmake737
-rw-r--r--share/cmake-3.17/Modules/CPackIFWConfigureFile.cmake (renamed from share/cmake-3.16/Modules/CPackIFWConfigureFile.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CSharpUtilities.cmake (renamed from share/cmake-3.16/Modules/CSharpUtilities.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CTest.cmake269
-rw-r--r--share/cmake-3.17/Modules/CTestCoverageCollectGCOV.cmake (renamed from share/cmake-3.16/Modules/CTestCoverageCollectGCOV.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CTestScriptMode.cmake (renamed from share/cmake-3.16/Modules/CTestScriptMode.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CTestTargets.cmake (renamed from share/cmake-3.16/Modules/CTestTargets.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CTestUseLaunchers.cmake (renamed from share/cmake-3.16/Modules/CTestUseLaunchers.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CheckCCompilerFlag.cmake58
-rw-r--r--share/cmake-3.17/Modules/CheckCSourceCompiles.cmake145
-rw-r--r--share/cmake-3.17/Modules/CheckCSourceRuns.cmake145
-rw-r--r--share/cmake-3.17/Modules/CheckCXXCompilerFlag.cmake58
-rw-r--r--share/cmake-3.17/Modules/CheckCXXSourceCompiles.cmake146
-rw-r--r--share/cmake-3.17/Modules/CheckCXXSourceRuns.cmake145
-rw-r--r--share/cmake-3.17/Modules/CheckCXXSymbolExists.cmake (renamed from share/cmake-3.16/Modules/CheckCXXSymbolExists.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CheckForPthreads.c (renamed from share/cmake-3.16/Modules/CheckForPthreads.c)0
-rw-r--r--share/cmake-3.17/Modules/CheckFortranCompilerFlag.cmake (renamed from share/cmake-3.16/Modules/CheckFortranCompilerFlag.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CheckFortranFunctionExists.cmake84
-rw-r--r--share/cmake-3.17/Modules/CheckFortranSourceCompiles.cmake168
-rw-r--r--share/cmake-3.17/Modules/CheckFortranSourceRuns.cmake175
-rw-r--r--share/cmake-3.17/Modules/CheckFunctionExists.c (renamed from share/cmake-3.16/Modules/CheckFunctionExists.c)0
-rw-r--r--share/cmake-3.17/Modules/CheckFunctionExists.cmake119
-rw-r--r--share/cmake-3.17/Modules/CheckIPOSupported.cmake (renamed from share/cmake-3.16/Modules/CheckIPOSupported.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-C.txt.in (renamed from share/cmake-3.16/Modules/CheckIPOSupported/CMakeLists-C.txt.in)0
-rw-r--r--share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in (renamed from share/cmake-3.16/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in)0
-rw-r--r--share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in (renamed from share/cmake-3.16/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in)0
-rw-r--r--share/cmake-3.17/Modules/CheckIPOSupported/foo.c (renamed from share/cmake-3.16/Modules/CheckIPOSupported/foo.c)0
-rw-r--r--share/cmake-3.17/Modules/CheckIPOSupported/foo.cpp (renamed from share/cmake-3.16/Modules/CheckIPOSupported/foo.cpp)0
-rw-r--r--share/cmake-3.17/Modules/CheckIPOSupported/foo.f (renamed from share/cmake-3.16/Modules/CheckIPOSupported/foo.f)0
-rw-r--r--share/cmake-3.17/Modules/CheckIPOSupported/main.c (renamed from share/cmake-3.16/Modules/CheckIPOSupported/main.c)0
-rw-r--r--share/cmake-3.17/Modules/CheckIPOSupported/main.cpp (renamed from share/cmake-3.16/Modules/CheckIPOSupported/main.cpp)0
-rw-r--r--share/cmake-3.17/Modules/CheckIPOSupported/main.f (renamed from share/cmake-3.16/Modules/CheckIPOSupported/main.f)0
-rw-r--r--share/cmake-3.17/Modules/CheckIncludeFile.c.in (renamed from share/cmake-3.16/Modules/CheckIncludeFile.c.in)0
-rw-r--r--share/cmake-3.17/Modules/CheckIncludeFile.cmake130
-rw-r--r--share/cmake-3.17/Modules/CheckIncludeFile.cxx.in (renamed from share/cmake-3.16/Modules/CheckIncludeFile.cxx.in)0
-rw-r--r--share/cmake-3.17/Modules/CheckIncludeFileCXX.cmake129
-rw-r--r--share/cmake-3.17/Modules/CheckIncludeFiles.cmake168
-rw-r--r--share/cmake-3.17/Modules/CheckLanguage.cmake106
-rw-r--r--share/cmake-3.17/Modules/CheckLibraryExists.cmake99
-rw-r--r--share/cmake-3.17/Modules/CheckLibraryExists.lists.in (renamed from share/cmake-3.16/Modules/CheckLibraryExists.lists.in)0
-rw-r--r--share/cmake-3.17/Modules/CheckOBJCCompilerFlag.cmake (renamed from share/cmake-3.16/Modules/CheckOBJCCompilerFlag.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CheckOBJCSourceCompiles.cmake145
-rw-r--r--share/cmake-3.17/Modules/CheckOBJCSourceRuns.cmake145
-rw-r--r--share/cmake-3.17/Modules/CheckOBJCXXCompilerFlag.cmake (renamed from share/cmake-3.16/Modules/CheckOBJCXXCompilerFlag.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CheckOBJCXXSourceCompiles.cmake146
-rw-r--r--share/cmake-3.17/Modules/CheckOBJCXXSourceRuns.cmake145
-rw-r--r--share/cmake-3.17/Modules/CheckPIESupported.cmake (renamed from share/cmake-3.16/Modules/CheckPIESupported.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CheckPrototypeDefinition.c.in (renamed from share/cmake-3.16/Modules/CheckPrototypeDefinition.c.in)0
-rw-r--r--share/cmake-3.17/Modules/CheckPrototypeDefinition.cmake125
-rw-r--r--share/cmake-3.17/Modules/CheckSizeOf.cmake (renamed from share/cmake-3.16/Modules/CheckSizeOf.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CheckStructHasMember.cmake (renamed from share/cmake-3.16/Modules/CheckStructHasMember.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CheckSymbolExists.cmake166
-rw-r--r--share/cmake-3.17/Modules/CheckTypeSize.c.in (renamed from share/cmake-3.16/Modules/CheckTypeSize.c.in)0
-rw-r--r--share/cmake-3.17/Modules/CheckTypeSize.cmake270
-rw-r--r--share/cmake-3.17/Modules/CheckTypeSizeMap.cmake.in (renamed from share/cmake-3.16/Modules/CheckTypeSizeMap.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/CheckVariableExists.c (renamed from share/cmake-3.16/Modules/CheckVariableExists.c)0
-rw-r--r--share/cmake-3.17/Modules/CheckVariableExists.cmake85
-rw-r--r--share/cmake-3.17/Modules/Compiler/ADSP-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/ADSP-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/ARMCC-ASM.cmake (renamed from share/cmake-3.16/Modules/Compiler/ARMCC-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/ARMCC-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/ARMCC-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/ARMCC-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/ARMCC-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/ARMCC-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/ARMCC-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/ARMCC.cmake (renamed from share/cmake-3.16/Modules/Compiler/ARMCC.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/ARMClang-ASM.cmake (renamed from share/cmake-3.16/Modules/Compiler/ARMClang-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/ARMClang-C-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/ARMClang-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/ARMClang-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/ARMClang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/ARMClang-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/ARMClang-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/ARMClang-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/ARMClang-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/ARMClang.cmake (renamed from share/cmake-3.16/Modules/Compiler/ARMClang.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Absoft-Fortran.cmake (renamed from share/cmake-3.16/Modules/Compiler/Absoft-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/AppleClang-ASM.cmake (renamed from share/cmake-3.16/Modules/Compiler/AppleClang-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/AppleClang-C-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/AppleClang-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/AppleClang-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/AppleClang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/AppleClang-CXX.cmake45
-rw-r--r--share/cmake-3.17/Modules/Compiler/AppleClang-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/AppleClang-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/AppleClang-OBJC.cmake (renamed from share/cmake-3.16/Modules/Compiler/AppleClang-OBJC.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/AppleClang-OBJCXX.cmake42
-rw-r--r--share/cmake-3.17/Modules/Compiler/Borland-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/Borland-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Bruce-C-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/Bruce-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Bruce-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/Bruce-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/CCur-Fortran.cmake (renamed from share/cmake-3.16/Modules/Compiler/CCur-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/CMakeCommonCompilerMacros.cmake180
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang-ASM.cmake (renamed from share/cmake-3.16/Modules/Compiler/Clang-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang-C-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/Clang-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang-C.cmake46
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang-CXX-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/Clang-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang-CXX-TestableFeatures.cmake (renamed from share/cmake-3.16/Modules/Compiler/Clang-CXX-TestableFeatures.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang-CXX.cmake133
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/Clang-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang-DetermineCompilerInternal.cmake (renamed from share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang-FindBinUtils.cmake (renamed from share/cmake-3.16/Modules/Compiler/Clang-FindBinUtils.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang-OBJC.cmake (renamed from share/cmake-3.16/Modules/Compiler/Clang-OBJC.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang-OBJCXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/Clang-OBJCXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang.cmake107
-rw-r--r--share/cmake-3.17/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Compaq-C-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/Compaq-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Cray-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/Cray-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Cray-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/Cray-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Cray-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/Cray-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Cray-Fortran.cmake (renamed from share/cmake-3.16/Modules/Compiler/Cray-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Cray.cmake (renamed from share/cmake-3.16/Modules/Compiler/Cray.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/CrayPrgEnv-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/CrayPrgEnv-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/CrayPrgEnv-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/CrayPrgEnv-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/CrayPrgEnv-Fortran.cmake (renamed from share/cmake-3.16/Modules/Compiler/CrayPrgEnv-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/CrayPrgEnv.cmake (renamed from share/cmake-3.16/Modules/Compiler/CrayPrgEnv.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Embarcadero-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/Embarcadero-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Flang-FindBinUtils.cmake (renamed from share/cmake-3.16/Modules/Compiler/Flang-FindBinUtils.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Flang-Fortran.cmake (renamed from share/cmake-3.16/Modules/Compiler/Flang-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Fujitsu-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/Fujitsu-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/G95-Fortran.cmake (renamed from share/cmake-3.16/Modules/Compiler/G95-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GHS-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/GHS-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GHS-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/GHS-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GHS-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/GHS-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GHS.cmake (renamed from share/cmake-3.16/Modules/Compiler/GHS.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU-ASM.cmake (renamed from share/cmake-3.16/Modules/Compiler/GNU-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU-C-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/GNU-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU-C-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/GNU-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU-CXX-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/GNU-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU-FindBinUtils.cmake (renamed from share/cmake-3.16/Modules/Compiler/GNU-FindBinUtils.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU-Fortran.cmake (renamed from share/cmake-3.16/Modules/Compiler/GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU-OBJC.cmake (renamed from share/cmake-3.16/Modules/Compiler/GNU-OBJC.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU-OBJCXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/GNU-OBJCXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU.cmake (renamed from share/cmake-3.16/Modules/Compiler/GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/HP-ASM.cmake (renamed from share/cmake-3.16/Modules/Compiler/HP-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/HP-C-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/HP-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/HP-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/HP-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/HP-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/HP-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/HP-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/HP-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/HP-Fortran.cmake (renamed from share/cmake-3.16/Modules/Compiler/HP-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/IAR-ASM.cmake (renamed from share/cmake-3.16/Modules/Compiler/IAR-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/IAR-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/IAR-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/IAR-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/IAR-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/IAR-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/IAR-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/IAR-FindBinUtils.cmake (renamed from share/cmake-3.16/Modules/Compiler/IAR-FindBinUtils.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/IAR.cmake (renamed from share/cmake-3.16/Modules/Compiler/IAR.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake (renamed from share/cmake-3.16/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake (renamed from share/cmake-3.16/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Intel-ASM.cmake (renamed from share/cmake-3.16/Modules/Compiler/Intel-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Intel-C-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/Intel-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Intel-C.cmake51
-rw-r--r--share/cmake-3.17/Modules/Compiler/Intel-CXX-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/Intel-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Intel-CXX.cmake86
-rw-r--r--share/cmake-3.17/Modules/Compiler/Intel-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/Intel-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Intel-Fortran.cmake (renamed from share/cmake-3.16/Modules/Compiler/Intel-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Intel.cmake (renamed from share/cmake-3.16/Modules/Compiler/Intel.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/MSVC-ASM.cmake (renamed from share/cmake-3.16/Modules/Compiler/MSVC-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/MSVC-C-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/MSVC-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/MSVC-C.cmake40
-rw-r--r--share/cmake-3.17/Modules/Compiler/MSVC-CXX-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/MSVC-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/MSVC-CXX.cmake74
-rw-r--r--share/cmake-3.17/Modules/Compiler/MSVC-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/MSVC-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/NAG-Fortran.cmake39
-rw-r--r--share/cmake-3.17/Modules/Compiler/NVIDIA-CUDA.cmake89
-rw-r--r--share/cmake-3.17/Modules/Compiler/NVIDIA-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/NVIDIA-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/PGI-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/PGI-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/PGI-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/PGI-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/PGI-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/PGI-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/PGI-Fortran.cmake (renamed from share/cmake-3.16/Modules/Compiler/PGI-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/PGI.cmake (renamed from share/cmake-3.16/Modules/Compiler/PGI.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/PathScale-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/PathScale-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/PathScale-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/PathScale-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/PathScale-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/PathScale-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/PathScale-Fortran.cmake (renamed from share/cmake-3.16/Modules/Compiler/PathScale-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/PathScale.cmake (renamed from share/cmake-3.16/Modules/Compiler/PathScale.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/QCC-ASM.cmake (renamed from share/cmake-3.16/Modules/Compiler/QCC-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/QCC-C-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/QCC-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/QCC-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/QCC-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/QCC-CXX-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/QCC-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/QCC-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/QCC-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/QCC.cmake37
-rw-r--r--share/cmake-3.17/Modules/Compiler/SCO-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/SCO-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/SCO-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/SCO-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/SCO-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/SCO-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/SCO.cmake (renamed from share/cmake-3.16/Modules/Compiler/SCO.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/SDCC-C-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/SDCC-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/SunPro-ASM.cmake (renamed from share/cmake-3.16/Modules/Compiler/SunPro-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/SunPro-C-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/SunPro-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/SunPro-C-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/SunPro-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/SunPro-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/SunPro-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/SunPro-CXX-FeatureTests.cmake (renamed from share/cmake-3.16/Modules/Compiler/SunPro-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/SunPro-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/SunPro-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/SunPro-Fortran.cmake (renamed from share/cmake-3.16/Modules/Compiler/SunPro-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/SunPro.cmake (renamed from share/cmake-3.16/Modules/Compiler/SunPro.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/TI-ASM.cmake (renamed from share/cmake-3.16/Modules/Compiler/TI-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/TI-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/TI-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/TI-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/TI-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/TI-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/TI-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/TinyCC-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/TinyCC-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/VisualAge-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/VisualAge-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/VisualAge-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/VisualAge-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/VisualAge-Fortran.cmake (renamed from share/cmake-3.16/Modules/Compiler/VisualAge-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/Watcom-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/Watcom-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/XL-ASM.cmake (renamed from share/cmake-3.16/Modules/Compiler/XL-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/XL-C-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/XL-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/XL-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/XL-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/XL-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/XL-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/XL-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/XL-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/XL-Fortran.cmake24
-rw-r--r--share/cmake-3.17/Modules/Compiler/XL-Fortran/cpp29
-rw-r--r--share/cmake-3.17/Modules/Compiler/XL.cmake (renamed from share/cmake-3.16/Modules/Compiler/XL.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/XLClang-C-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/XLClang-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/XLClang-C.cmake (renamed from share/cmake-3.16/Modules/Compiler/XLClang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/XLClang-CXX.cmake (renamed from share/cmake-3.16/Modules/Compiler/XLClang-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/XLClang.cmake (renamed from share/cmake-3.16/Modules/Compiler/XLClang.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/zOS-C-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/zOS-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.16/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.17/Modules/CompilerId/GHS_default.gpj.in (renamed from share/cmake-3.16/Modules/CompilerId/GHS_default.gpj.in)0
-rw-r--r--share/cmake-3.17/Modules/CompilerId/GHS_lib.gpj.in (renamed from share/cmake-3.16/Modules/CompilerId/GHS_lib.gpj.in)0
-rw-r--r--share/cmake-3.17/Modules/CompilerId/VS-10.csproj.in (renamed from share/cmake-3.16/Modules/CompilerId/VS-10.csproj.in)0
-rw-r--r--share/cmake-3.17/Modules/CompilerId/VS-10.vcxproj.in71
-rw-r--r--share/cmake-3.17/Modules/CompilerId/VS-7.vcproj.in (renamed from share/cmake-3.16/Modules/CompilerId/VS-7.vcproj.in)0
-rw-r--r--share/cmake-3.17/Modules/CompilerId/VS-Intel.vfproj.in (renamed from share/cmake-3.16/Modules/CompilerId/VS-Intel.vfproj.in)0
-rw-r--r--share/cmake-3.17/Modules/CompilerId/VS-NsightTegra.vcxproj.in (renamed from share/cmake-3.16/Modules/CompilerId/VS-NsightTegra.vcxproj.in)0
-rw-r--r--share/cmake-3.17/Modules/CompilerId/Xcode-3.pbxproj.in (renamed from share/cmake-3.16/Modules/CompilerId/Xcode-3.pbxproj.in)0
-rw-r--r--share/cmake-3.17/Modules/CompilerId/main.swift.in (renamed from share/cmake-3.16/Modules/CompilerId/main.swift.in)0
-rw-r--r--share/cmake-3.17/Modules/Dart.cmake (renamed from share/cmake-3.16/Modules/Dart.cmake)0
-rw-r--r--share/cmake-3.17/Modules/DartConfiguration.tcl.in107
-rw-r--r--share/cmake-3.17/Modules/DeployQt4.cmake399
-rw-r--r--share/cmake-3.17/Modules/Documentation.cmake (renamed from share/cmake-3.16/Modules/Documentation.cmake)0
-rw-r--r--share/cmake-3.17/Modules/DummyCXXFile.cxx (renamed from share/cmake-3.16/Modules/DummyCXXFile.cxx)0
-rw-r--r--share/cmake-3.17/Modules/ExternalData.cmake (renamed from share/cmake-3.16/Modules/ExternalData.cmake)0
-rw-r--r--share/cmake-3.17/Modules/ExternalData_config.cmake.in (renamed from share/cmake-3.16/Modules/ExternalData_config.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/ExternalProject-download.cmake.in (renamed from share/cmake-3.16/Modules/ExternalProject-download.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/ExternalProject-verify.cmake.in (renamed from share/cmake-3.16/Modules/ExternalProject-verify.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/ExternalProject.cmake3280
-rw-r--r--share/cmake-3.17/Modules/FLTKCompatibility.cmake (renamed from share/cmake-3.16/Modules/FLTKCompatibility.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FeatureSummary.cmake (renamed from share/cmake-3.16/Modules/FeatureSummary.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FetchContent.cmake1058
-rw-r--r--share/cmake-3.17/Modules/FetchContent/CMakeLists.cmake.in (renamed from share/cmake-3.16/Modules/FetchContent/CMakeLists.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/FindALSA.cmake (renamed from share/cmake-3.16/Modules/FindALSA.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindASPELL.cmake (renamed from share/cmake-3.16/Modules/FindASPELL.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindAVIFile.cmake (renamed from share/cmake-3.16/Modules/FindAVIFile.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindArmadillo.cmake (renamed from share/cmake-3.16/Modules/FindArmadillo.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindBISON.cmake (renamed from share/cmake-3.16/Modules/FindBISON.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindBLAS.cmake902
-rw-r--r--share/cmake-3.17/Modules/FindBZip2.cmake (renamed from share/cmake-3.16/Modules/FindBZip2.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindBacktrace.cmake (renamed from share/cmake-3.16/Modules/FindBacktrace.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindBoost.cmake2358
-rw-r--r--share/cmake-3.17/Modules/FindBullet.cmake (renamed from share/cmake-3.16/Modules/FindBullet.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindCABLE.cmake (renamed from share/cmake-3.16/Modules/FindCABLE.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindCUDA.cmake2024
-rw-r--r--share/cmake-3.17/Modules/FindCUDA/make2cmake.cmake (renamed from share/cmake-3.16/Modules/FindCUDA/make2cmake.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindCUDA/parse_cubin.cmake (renamed from share/cmake-3.16/Modules/FindCUDA/parse_cubin.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindCUDA/run_nvcc.cmake306
-rw-r--r--share/cmake-3.17/Modules/FindCUDA/select_compute_arch.cmake (renamed from share/cmake-3.16/Modules/FindCUDA/select_compute_arch.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindCUDAToolkit.cmake870
-rw-r--r--share/cmake-3.17/Modules/FindCURL.cmake203
-rw-r--r--share/cmake-3.17/Modules/FindCVS.cmake (renamed from share/cmake-3.16/Modules/FindCVS.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindCoin3D.cmake (renamed from share/cmake-3.16/Modules/FindCoin3D.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindCups.cmake (renamed from share/cmake-3.16/Modules/FindCups.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindCurses.cmake270
-rw-r--r--share/cmake-3.17/Modules/FindCxxTest.cmake (renamed from share/cmake-3.16/Modules/FindCxxTest.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindCygwin.cmake (renamed from share/cmake-3.16/Modules/FindCygwin.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindDCMTK.cmake322
-rw-r--r--share/cmake-3.17/Modules/FindDart.cmake (renamed from share/cmake-3.16/Modules/FindDart.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindDevIL.cmake (renamed from share/cmake-3.16/Modules/FindDevIL.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindDoxygen.cmake (renamed from share/cmake-3.16/Modules/FindDoxygen.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindEXPAT.cmake (renamed from share/cmake-3.16/Modules/FindEXPAT.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindEnvModules.cmake (renamed from share/cmake-3.16/Modules/FindEnvModules.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindFLEX.cmake256
-rw-r--r--share/cmake-3.17/Modules/FindFLTK.cmake (renamed from share/cmake-3.16/Modules/FindFLTK.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindFLTK2.cmake (renamed from share/cmake-3.16/Modules/FindFLTK2.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindFontconfig.cmake (renamed from share/cmake-3.16/Modules/FindFontconfig.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindFreetype.cmake (renamed from share/cmake-3.16/Modules/FindFreetype.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindGCCXML.cmake (renamed from share/cmake-3.16/Modules/FindGCCXML.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindGDAL.cmake (renamed from share/cmake-3.16/Modules/FindGDAL.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindGIF.cmake (renamed from share/cmake-3.16/Modules/FindGIF.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindGLEW.cmake342
-rw-r--r--share/cmake-3.17/Modules/FindGLU.cmake (renamed from share/cmake-3.16/Modules/FindGLU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindGLUT.cmake (renamed from share/cmake-3.16/Modules/FindGLUT.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindGSL.cmake (renamed from share/cmake-3.16/Modules/FindGSL.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindGTK.cmake (renamed from share/cmake-3.16/Modules/FindGTK.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindGTK2.cmake943
-rw-r--r--share/cmake-3.17/Modules/FindGTest.cmake254
-rw-r--r--share/cmake-3.17/Modules/FindGettext.cmake (renamed from share/cmake-3.16/Modules/FindGettext.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindGit.cmake (renamed from share/cmake-3.16/Modules/FindGit.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindGnuTLS.cmake (renamed from share/cmake-3.16/Modules/FindGnuTLS.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindGnuplot.cmake (renamed from share/cmake-3.16/Modules/FindGnuplot.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindHDF5.cmake (renamed from share/cmake-3.16/Modules/FindHDF5.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindHSPELL.cmake (renamed from share/cmake-3.16/Modules/FindHSPELL.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindHTMLHelp.cmake (renamed from share/cmake-3.16/Modules/FindHTMLHelp.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindHg.cmake (renamed from share/cmake-3.16/Modules/FindHg.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindICU.cmake (renamed from share/cmake-3.16/Modules/FindICU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindIce.cmake (renamed from share/cmake-3.16/Modules/FindIce.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindIconv.cmake (renamed from share/cmake-3.16/Modules/FindIconv.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindIcotool.cmake (renamed from share/cmake-3.16/Modules/FindIcotool.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindImageMagick.cmake (renamed from share/cmake-3.16/Modules/FindImageMagick.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindIntl.cmake (renamed from share/cmake-3.16/Modules/FindIntl.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindJNI.cmake (renamed from share/cmake-3.16/Modules/FindJNI.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindJPEG.cmake (renamed from share/cmake-3.16/Modules/FindJPEG.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindJasper.cmake (renamed from share/cmake-3.16/Modules/FindJasper.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindJava.cmake (renamed from share/cmake-3.16/Modules/FindJava.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindKDE3.cmake (renamed from share/cmake-3.16/Modules/FindKDE3.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindKDE4.cmake (renamed from share/cmake-3.16/Modules/FindKDE4.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindLAPACK.cmake496
-rw-r--r--share/cmake-3.17/Modules/FindLATEX.cmake (renamed from share/cmake-3.16/Modules/FindLATEX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindLTTngUST.cmake (renamed from share/cmake-3.16/Modules/FindLTTngUST.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindLibArchive.cmake76
-rw-r--r--share/cmake-3.17/Modules/FindLibLZMA.cmake (renamed from share/cmake-3.16/Modules/FindLibLZMA.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindLibXml2.cmake120
-rw-r--r--share/cmake-3.17/Modules/FindLibXslt.cmake (renamed from share/cmake-3.16/Modules/FindLibXslt.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindLibinput.cmake (renamed from share/cmake-3.16/Modules/FindLibinput.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindLua.cmake238
-rw-r--r--share/cmake-3.17/Modules/FindLua50.cmake (renamed from share/cmake-3.16/Modules/FindLua50.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindLua51.cmake (renamed from share/cmake-3.16/Modules/FindLua51.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindMFC.cmake71
-rw-r--r--share/cmake-3.17/Modules/FindMPEG.cmake (renamed from share/cmake-3.16/Modules/FindMPEG.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindMPEG2.cmake (renamed from share/cmake-3.16/Modules/FindMPEG2.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindMPI.cmake1787
-rw-r--r--share/cmake-3.17/Modules/FindMPI/fortranparam_mpi.f90.in (renamed from share/cmake-3.16/Modules/FindMPI/fortranparam_mpi.f90.in)0
-rw-r--r--share/cmake-3.17/Modules/FindMPI/libver_mpi.c (renamed from share/cmake-3.16/Modules/FindMPI/libver_mpi.c)0
-rw-r--r--share/cmake-3.17/Modules/FindMPI/libver_mpi.f90.in (renamed from share/cmake-3.16/Modules/FindMPI/libver_mpi.f90.in)0
-rw-r--r--share/cmake-3.17/Modules/FindMPI/mpiver.f90.in (renamed from share/cmake-3.16/Modules/FindMPI/mpiver.f90.in)0
-rw-r--r--share/cmake-3.17/Modules/FindMPI/test_mpi.c (renamed from share/cmake-3.16/Modules/FindMPI/test_mpi.c)0
-rw-r--r--share/cmake-3.17/Modules/FindMPI/test_mpi.f90.in (renamed from share/cmake-3.16/Modules/FindMPI/test_mpi.f90.in)0
-rw-r--r--share/cmake-3.17/Modules/FindMatlab.cmake1834
-rw-r--r--share/cmake-3.17/Modules/FindMotif.cmake (renamed from share/cmake-3.16/Modules/FindMotif.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindODBC.cmake (renamed from share/cmake-3.16/Modules/FindODBC.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindOpenACC.cmake284
-rw-r--r--share/cmake-3.17/Modules/FindOpenAL.cmake (renamed from share/cmake-3.16/Modules/FindOpenAL.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindOpenCL.cmake (renamed from share/cmake-3.16/Modules/FindOpenCL.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindOpenGL.cmake566
-rw-r--r--share/cmake-3.17/Modules/FindOpenMP.cmake605
-rw-r--r--share/cmake-3.17/Modules/FindOpenSSL.cmake532
-rw-r--r--share/cmake-3.17/Modules/FindOpenSceneGraph.cmake (renamed from share/cmake-3.16/Modules/FindOpenSceneGraph.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindOpenThreads.cmake (renamed from share/cmake-3.16/Modules/FindOpenThreads.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindPHP4.cmake (renamed from share/cmake-3.16/Modules/FindPHP4.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindPNG.cmake160
-rw-r--r--share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake453
-rw-r--r--share/cmake-3.17/Modules/FindPackageMessage.cmake (renamed from share/cmake-3.16/Modules/FindPackageMessage.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindPatch.cmake (renamed from share/cmake-3.16/Modules/FindPatch.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindPerl.cmake (renamed from share/cmake-3.16/Modules/FindPerl.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindPerlLibs.cmake (renamed from share/cmake-3.16/Modules/FindPerlLibs.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindPhysFS.cmake (renamed from share/cmake-3.16/Modules/FindPhysFS.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindPike.cmake (renamed from share/cmake-3.16/Modules/FindPike.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindPkgConfig.cmake778
-rw-r--r--share/cmake-3.17/Modules/FindPostgreSQL.cmake (renamed from share/cmake-3.16/Modules/FindPostgreSQL.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindProducer.cmake (renamed from share/cmake-3.16/Modules/FindProducer.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindProtobuf.cmake661
-rw-r--r--share/cmake-3.17/Modules/FindPython.cmake370
-rw-r--r--share/cmake-3.17/Modules/FindPython/Support.cmake2584
-rw-r--r--share/cmake-3.17/Modules/FindPython2.cmake268
-rw-r--r--share/cmake-3.17/Modules/FindPython3.cmake319
-rw-r--r--share/cmake-3.17/Modules/FindPythonInterp.cmake (renamed from share/cmake-3.16/Modules/FindPythonInterp.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindPythonLibs.cmake (renamed from share/cmake-3.16/Modules/FindPythonLibs.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindQt.cmake (renamed from share/cmake-3.16/Modules/FindQt.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindQt3.cmake (renamed from share/cmake-3.16/Modules/FindQt3.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindQt4.cmake (renamed from share/cmake-3.16/Modules/FindQt4.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindQuickTime.cmake (renamed from share/cmake-3.16/Modules/FindQuickTime.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindRTI.cmake (renamed from share/cmake-3.16/Modules/FindRTI.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindRuby.cmake (renamed from share/cmake-3.16/Modules/FindRuby.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindSDL.cmake (renamed from share/cmake-3.16/Modules/FindSDL.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindSDL_image.cmake (renamed from share/cmake-3.16/Modules/FindSDL_image.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindSDL_mixer.cmake (renamed from share/cmake-3.16/Modules/FindSDL_mixer.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindSDL_net.cmake (renamed from share/cmake-3.16/Modules/FindSDL_net.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindSDL_sound.cmake (renamed from share/cmake-3.16/Modules/FindSDL_sound.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindSDL_ttf.cmake (renamed from share/cmake-3.16/Modules/FindSDL_ttf.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindSQLite3.cmake (renamed from share/cmake-3.16/Modules/FindSQLite3.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindSWIG.cmake (renamed from share/cmake-3.16/Modules/FindSWIG.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindSelfPackers.cmake (renamed from share/cmake-3.16/Modules/FindSelfPackers.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindSquish.cmake (renamed from share/cmake-3.16/Modules/FindSquish.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindSubversion.cmake (renamed from share/cmake-3.16/Modules/FindSubversion.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindTCL.cmake241
-rw-r--r--share/cmake-3.17/Modules/FindTIFF.cmake (renamed from share/cmake-3.16/Modules/FindTIFF.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindTclStub.cmake (renamed from share/cmake-3.16/Modules/FindTclStub.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindTclsh.cmake (renamed from share/cmake-3.16/Modules/FindTclsh.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindThreads.cmake248
-rw-r--r--share/cmake-3.17/Modules/FindUnixCommands.cmake (renamed from share/cmake-3.16/Modules/FindUnixCommands.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindVulkan.cmake (renamed from share/cmake-3.16/Modules/FindVulkan.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindWget.cmake (renamed from share/cmake-3.16/Modules/FindWget.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindWish.cmake (renamed from share/cmake-3.16/Modules/FindWish.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindX11.cmake (renamed from share/cmake-3.16/Modules/FindX11.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindXCTest.cmake (renamed from share/cmake-3.16/Modules/FindXCTest.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindXMLRPC.cmake (renamed from share/cmake-3.16/Modules/FindXMLRPC.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindXalanC.cmake (renamed from share/cmake-3.16/Modules/FindXalanC.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindXercesC.cmake (renamed from share/cmake-3.16/Modules/FindXercesC.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindZLIB.cmake (renamed from share/cmake-3.16/Modules/FindZLIB.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Findosg.cmake (renamed from share/cmake-3.16/Modules/Findosg.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgAnimation.cmake (renamed from share/cmake-3.16/Modules/FindosgAnimation.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgDB.cmake (renamed from share/cmake-3.16/Modules/FindosgDB.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgFX.cmake (renamed from share/cmake-3.16/Modules/FindosgFX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgGA.cmake (renamed from share/cmake-3.16/Modules/FindosgGA.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgIntrospection.cmake (renamed from share/cmake-3.16/Modules/FindosgIntrospection.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgManipulator.cmake (renamed from share/cmake-3.16/Modules/FindosgManipulator.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgParticle.cmake (renamed from share/cmake-3.16/Modules/FindosgParticle.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgPresentation.cmake (renamed from share/cmake-3.16/Modules/FindosgPresentation.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgProducer.cmake (renamed from share/cmake-3.16/Modules/FindosgProducer.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgQt.cmake (renamed from share/cmake-3.16/Modules/FindosgQt.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgShadow.cmake (renamed from share/cmake-3.16/Modules/FindosgShadow.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgSim.cmake (renamed from share/cmake-3.16/Modules/FindosgSim.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgTerrain.cmake (renamed from share/cmake-3.16/Modules/FindosgTerrain.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgText.cmake (renamed from share/cmake-3.16/Modules/FindosgText.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgUtil.cmake (renamed from share/cmake-3.16/Modules/FindosgUtil.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgViewer.cmake (renamed from share/cmake-3.16/Modules/FindosgViewer.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgVolume.cmake (renamed from share/cmake-3.16/Modules/FindosgVolume.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindosgWidget.cmake (renamed from share/cmake-3.16/Modules/FindosgWidget.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Findosg_functions.cmake (renamed from share/cmake-3.16/Modules/Findosg_functions.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindwxWidgets.cmake (renamed from share/cmake-3.16/Modules/FindwxWidgets.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FindwxWindows.cmake (renamed from share/cmake-3.16/Modules/FindwxWindows.cmake)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface.cmake392
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/CMakeLists.txt (renamed from share/cmake-3.16/Modules/FortranCInterface/CMakeLists.txt)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/Detect.cmake180
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/Input.cmake.in (renamed from share/cmake-3.16/Modules/FortranCInterface/Input.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/MYMODULE.c (renamed from share/cmake-3.16/Modules/FortranCInterface/MYMODULE.c)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/MY_MODULE.c (renamed from share/cmake-3.16/Modules/FortranCInterface/MY_MODULE.c)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/Macro.h.in (renamed from share/cmake-3.16/Modules/FortranCInterface/Macro.h.in)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/Output.cmake.in (renamed from share/cmake-3.16/Modules/FortranCInterface/Output.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/Verify/CMakeLists.txt (renamed from share/cmake-3.16/Modules/FortranCInterface/Verify/CMakeLists.txt)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyC.c (renamed from share/cmake-3.16/Modules/FortranCInterface/Verify/VerifyC.c)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyCXX.cxx (renamed from share/cmake-3.16/Modules/FortranCInterface/Verify/VerifyCXX.cxx)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyFortran.f (renamed from share/cmake-3.16/Modules/FortranCInterface/Verify/VerifyFortran.f)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/Verify/main.c (renamed from share/cmake-3.16/Modules/FortranCInterface/Verify/main.c)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/call_mod.f90 (renamed from share/cmake-3.16/Modules/FortranCInterface/call_mod.f90)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/call_sub.f (renamed from share/cmake-3.16/Modules/FortranCInterface/call_sub.f)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/main.F (renamed from share/cmake-3.16/Modules/FortranCInterface/main.F)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/my_module.f90 (renamed from share/cmake-3.16/Modules/FortranCInterface/my_module.f90)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/my_module_.c (renamed from share/cmake-3.16/Modules/FortranCInterface/my_module_.c)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/my_sub.f (renamed from share/cmake-3.16/Modules/FortranCInterface/my_sub.f)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/mymodule.f90 (renamed from share/cmake-3.16/Modules/FortranCInterface/mymodule.f90)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/mymodule_.c (renamed from share/cmake-3.16/Modules/FortranCInterface/mymodule_.c)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/mysub.f (renamed from share/cmake-3.16/Modules/FortranCInterface/mysub.f)0
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/symbol.c.in (renamed from share/cmake-3.16/Modules/FortranCInterface/symbol.c.in)0
-rw-r--r--share/cmake-3.17/Modules/GNUInstallDirs.cmake383
-rw-r--r--share/cmake-3.17/Modules/GenerateExportHeader.cmake (renamed from share/cmake-3.16/Modules/GenerateExportHeader.cmake)0
-rw-r--r--share/cmake-3.17/Modules/GetPrerequisites.cmake1047
-rw-r--r--share/cmake-3.17/Modules/GoogleTest.cmake (renamed from share/cmake-3.16/Modules/GoogleTest.cmake)0
-rw-r--r--share/cmake-3.17/Modules/GoogleTestAddTests.cmake (renamed from share/cmake-3.16/Modules/GoogleTestAddTests.cmake)0
-rw-r--r--share/cmake-3.17/Modules/ITKCompatibility.cmake (renamed from share/cmake-3.16/Modules/ITKCompatibility.cmake)0
-rw-r--r--share/cmake-3.17/Modules/InstallRequiredSystemLibraries.cmake (renamed from share/cmake-3.16/Modules/InstallRequiredSystemLibraries.cmake)0
-rw-r--r--share/cmake-3.17/Modules/IntelVSImplicitPath/CMakeLists.txt (renamed from share/cmake-3.16/Modules/IntelVSImplicitPath/CMakeLists.txt)0
-rw-r--r--share/cmake-3.17/Modules/IntelVSImplicitPath/detect.cmake (renamed from share/cmake-3.16/Modules/IntelVSImplicitPath/detect.cmake)0
-rw-r--r--share/cmake-3.17/Modules/IntelVSImplicitPath/hello.f (renamed from share/cmake-3.16/Modules/IntelVSImplicitPath/hello.f)0
-rw-r--r--share/cmake-3.17/Modules/Internal/CMakeCheckCompilerFlag.cmake (renamed from share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPack.DS_Store.in (renamed from share/cmake-3.16/Modules/Internal/CPack/CPack.DS_Store.in)bin12292 -> 12292 bytes
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPack.Description.plist.in (renamed from share/cmake-3.16/Modules/Internal/CPack/CPack.Description.plist.in)0
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPack.Info.plist.in (renamed from share/cmake-3.16/Modules/Internal/CPack/CPack.Info.plist.in)0
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPack.NuGet.nuspec.in (renamed from share/cmake-3.16/Modules/Internal/CPack/CPack.NuGet.nuspec.in)0
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.in (renamed from share/cmake-3.16/Modules/Internal/CPack/CPack.OSXScriptLauncher.in)bin29592 -> 29592 bytes
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in (renamed from share/cmake-3.16/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in)bin362 -> 362 bytes
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in (renamed from share/cmake-3.16/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in)0
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in (renamed from share/cmake-3.16/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in)bin1870 -> 1870 bytes
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPack.RuntimeScript.in (renamed from share/cmake-3.16/Modules/Internal/CPack/CPack.RuntimeScript.in)0
-rw-r--r--[-rwxr-xr-x]share/cmake-3.17/Modules/Internal/CPack/CPack.STGZ_Header.sh.in (renamed from share/cmake-3.16/Modules/Internal/CPack/CPack.STGZ_Header.sh.in)0
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPack.VolumeIcon.icns.in (renamed from share/cmake-3.16/Modules/Internal/CPack/CPack.VolumeIcon.icns.in)bin45739 -> 45739 bytes
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPack.background.png.in (renamed from share/cmake-3.16/Modules/Internal/CPack/CPack.background.png.in)bin44108 -> 44108 bytes
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPack.distribution.dist.in (renamed from share/cmake-3.16/Modules/Internal/CPack/CPack.distribution.dist.in)0
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPackDeb.cmake766
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPackExternal.cmake (renamed from share/cmake-3.16/Modules/Internal/CPack/CPackExternal.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPackFreeBSD.cmake107
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake354
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPackRPM.cmake1881
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPackWIX.cmake (renamed from share/cmake-3.16/Modules/Internal/CPack/CPackWIX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPackZIP.cmake (renamed from share/cmake-3.16/Modules/Internal/CPack/CPackZIP.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/NSIS.InstallOptions.ini.in (renamed from share/cmake-3.16/Modules/Internal/CPack/NSIS.InstallOptions.ini.in)0
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/NSIS.template.in978
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/WIX.template.in (renamed from share/cmake-3.16/Modules/Internal/CPack/WIX.template.in)0
-rw-r--r--share/cmake-3.17/Modules/Internal/FeatureTesting.cmake119
-rw-r--r--share/cmake-3.17/Modules/KDE3Macros.cmake (renamed from share/cmake-3.16/Modules/KDE3Macros.cmake)0
-rw-r--r--share/cmake-3.17/Modules/MacOSXBundleInfo.plist.in (renamed from share/cmake-3.16/Modules/MacOSXBundleInfo.plist.in)0
-rw-r--r--share/cmake-3.17/Modules/MacOSXFrameworkInfo.plist.in (renamed from share/cmake-3.16/Modules/MacOSXFrameworkInfo.plist.in)0
-rw-r--r--share/cmake-3.17/Modules/MacroAddFileDependencies.cmake (renamed from share/cmake-3.16/Modules/MacroAddFileDependencies.cmake)0
-rw-r--r--share/cmake-3.17/Modules/MatlabTestsRedirect.cmake (renamed from share/cmake-3.16/Modules/MatlabTestsRedirect.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-Clang-C.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-Clang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-Clang-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-GNU-ASM.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-GNU-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-GNU-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-GNU.cmake33
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-VisualAge-C.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-VisualAge-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-VisualAge-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-VisualAge-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-VisualAge-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-VisualAge-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-XL-ASM.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-XL-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-XL-C.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-XL-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-XL-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-XL-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-XL-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-XL.cmake41
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-XLClang-C.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-XLClang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-XLClang-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-XLClang-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX-XLClang.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX-XLClang.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX.cmake (renamed from share/cmake-3.16/Modules/Platform/AIX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/AIX/ExportImportList60
-rw-r--r--share/cmake-3.17/Modules/Platform/ARTOS-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/ARTOS-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/ARTOS.cmake (renamed from share/cmake-3.16/Modules/Platform/ARTOS.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android-Clang-ASM.cmake (renamed from share/cmake-3.16/Modules/Platform/Android-Clang-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android-Clang-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Android-Clang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android-Clang-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Android-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android-Clang.cmake56
-rw-r--r--share/cmake-3.17/Modules/Platform/Android-Common.cmake (renamed from share/cmake-3.16/Modules/Platform/Android-Common.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android-Determine-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Android-Determine-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android-Determine-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Android-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android-Determine.cmake420
-rw-r--r--share/cmake-3.17/Modules/Platform/Android-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Android-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Android-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/Android-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android-Initialize.cmake55
-rw-r--r--share/cmake-3.17/Modules/Platform/Android.cmake24
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-NDK.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/Determine-Compiler-NDK.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-Standalone.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/Determine-Compiler-Standalone.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/Determine-Compiler.cmake85
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-armeabi-Clang.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-armeabi-Clang.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-armeabi-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-armeabi-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-common-Clang.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-common-Clang.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-common-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-common-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-common.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-common.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-mips-Clang.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-mips-Clang.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-mips-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-mips-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-mips64-Clang.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-mips64-Clang.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-mips64-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-mips64-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-x86-Clang.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-x86-Clang.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-x86-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-x86-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-x86_64-Clang.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-x86_64-Clang.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/abi-x86_64-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/abi-x86_64-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-c++.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_shared.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-c++_shared.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_static.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-c++_static.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-gabi++.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_static.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-gabi++_static.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-gnustl.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_static.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-gnustl_static.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-none.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-none.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-stlport.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_shared.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-stlport_shared.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_static.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-stlport_static.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Android/ndk-stl-system.cmake (renamed from share/cmake-3.16/Modules/Platform/Android/ndk-stl-system.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-Absoft-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-Absoft-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-Apple-Swift.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-Apple-Swift.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-AppleClang-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-AppleClang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-AppleClang-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-AppleClang-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJC.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-AppleClang-OBJC.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJCXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-AppleClang-OBJCXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-Clang-ASM.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-Clang-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-Clang-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-Clang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-Clang-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-Clang-OBJC.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-Clang-OBJC.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-Clang-OBJCXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-Clang-OBJCXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-Clang.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-Clang.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-GNU-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-GNU-OBJC.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-GNU-OBJC.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-GNU-OBJCXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-GNU-OBJCXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-GNU.cmake57
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-Intel-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-Intel-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-Intel-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-Intel-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-Intel-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-Intel-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-Intel.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-Intel.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-NAG-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-NAG-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-NVIDIA-CUDA.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-NVIDIA-CUDA.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-PGI-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-PGI-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-PGI-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-PGI-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-PGI-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-PGI-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-PGI.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-PGI.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-VisualAge-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-VisualAge-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-VisualAge-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-VisualAge-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-XL-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-XL-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Apple-XL-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Apple-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BSDOS.cmake (renamed from share/cmake-3.16/Modules/Platform/BSDOS.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BeOS.cmake (renamed from share/cmake-3.16/Modules/Platform/BeOS.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneL.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneL.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-base.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-base.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-static-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-C.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-static-XL-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-static-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-static.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneP-static.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-base.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-base.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-static-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-C.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-static-XL-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-static.cmake (renamed from share/cmake-3.16/Modules/Platform/BlueGeneQ-static.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/CYGWIN-Clang-C.cmake (renamed from share/cmake-3.16/Modules/Platform/CYGWIN-Clang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/CYGWIN-Clang-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/CYGWIN-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/CYGWIN-Determine-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/CYGWIN-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/CYGWIN-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/CYGWIN-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/CYGWIN-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/CYGWIN-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/CYGWIN-GNU-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/CYGWIN-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/CYGWIN-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/CYGWIN-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/CYGWIN-windres.cmake (renamed from share/cmake-3.16/Modules/Platform/CYGWIN-windres.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/CYGWIN.cmake (renamed from share/cmake-3.16/Modules/Platform/CYGWIN.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Catamount.cmake (renamed from share/cmake-3.16/Modules/Platform/Catamount.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/CrayLinuxEnvironment.cmake (renamed from share/cmake-3.16/Modules/Platform/CrayLinuxEnvironment.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Darwin-Determine-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Darwin-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Darwin-Initialize.cmake236
-rw-r--r--share/cmake-3.17/Modules/Platform/Darwin.cmake220
-rw-r--r--share/cmake-3.17/Modules/Platform/DragonFly.cmake (renamed from share/cmake-3.16/Modules/Platform/DragonFly.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Euros.cmake (renamed from share/cmake-3.16/Modules/Platform/Euros.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/FreeBSD-Determine-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/FreeBSD-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/FreeBSD.cmake (renamed from share/cmake-3.16/Modules/Platform/FreeBSD.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Fuchsia.cmake (renamed from share/cmake-3.16/Modules/Platform/Fuchsia.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/GHS-MULTI-Determine.cmake (renamed from share/cmake-3.16/Modules/Platform/GHS-MULTI-Determine.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/GHS-MULTI.cmake (renamed from share/cmake-3.16/Modules/Platform/GHS-MULTI.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/GNUtoMS_lib.bat.in (renamed from share/cmake-3.16/Modules/Platform/GNUtoMS_lib.bat.in)0
-rw-r--r--share/cmake-3.17/Modules/Platform/GNUtoMS_lib.cmake (renamed from share/cmake-3.16/Modules/Platform/GNUtoMS_lib.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Generic-ADSP-ASM.cmake (renamed from share/cmake-3.16/Modules/Platform/Generic-ADSP-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Generic-ADSP-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Generic-ADSP-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Generic-ADSP-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Generic-ADSP-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Generic-ADSP-Common.cmake (renamed from share/cmake-3.16/Modules/Platform/Generic-ADSP-Common.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Generic-SDCC-C.cmake58
-rw-r--r--share/cmake-3.17/Modules/Platform/Generic.cmake (renamed from share/cmake-3.16/Modules/Platform/Generic.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/HP-UX-GNU-ASM.cmake (renamed from share/cmake-3.16/Modules/Platform/HP-UX-GNU-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/HP-UX-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/HP-UX-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/HP-UX-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/HP-UX-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/HP-UX-GNU-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/HP-UX-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/HP-UX-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/HP-UX-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/HP-UX-HP-ASM.cmake (renamed from share/cmake-3.16/Modules/Platform/HP-UX-HP-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/HP-UX-HP-C.cmake (renamed from share/cmake-3.16/Modules/Platform/HP-UX-HP-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/HP-UX-HP-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/HP-UX-HP-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/HP-UX-HP-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/HP-UX-HP-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/HP-UX-HP.cmake (renamed from share/cmake-3.16/Modules/Platform/HP-UX-HP.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/HP-UX.cmake (renamed from share/cmake-3.16/Modules/Platform/HP-UX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Haiku.cmake (renamed from share/cmake-3.16/Modules/Platform/Haiku.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-Absoft-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-Absoft-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-CCur-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-CCur-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-Clang-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-Clang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-Clang-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-Determine-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-GNU-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-Intel-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-Intel-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-Intel-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-Intel-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-Intel-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-Intel-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-Intel.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-Intel.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-NAG-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-NAG-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-PGI-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-PGI-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-PGI-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-PGI-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-PGI-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-PGI-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-PGI.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-PGI.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-PathScale-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-PathScale-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-PathScale-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-PathScale-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-PathScale-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-PathScale-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-PathScale.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-PathScale.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-SunPro-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-SunPro-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-TinyCC-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-TinyCC-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-VisualAge-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-VisualAge-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-VisualAge-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-VisualAge-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-VisualAge-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-VisualAge-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-XL-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-XL-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-XL-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-XL-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-XL-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-como.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux-como.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux.cmake (renamed from share/cmake-3.16/Modules/Platform/Linux.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/MP-RAS.cmake (renamed from share/cmake-3.16/Modules/Platform/MP-RAS.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Midipix.cmake (renamed from share/cmake-3.16/Modules/Platform/Midipix.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/MirBSD.cmake (renamed from share/cmake-3.16/Modules/Platform/MirBSD.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/NetBSD.cmake (renamed from share/cmake-3.16/Modules/Platform/NetBSD.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/OSF1.cmake (renamed from share/cmake-3.16/Modules/Platform/OSF1.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/OpenBSD.cmake (renamed from share/cmake-3.16/Modules/Platform/OpenBSD.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/OpenVMS.cmake (renamed from share/cmake-3.16/Modules/Platform/OpenVMS.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/QNX.cmake (renamed from share/cmake-3.16/Modules/Platform/QNX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/RISCos.cmake (renamed from share/cmake-3.16/Modules/Platform/RISCos.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/SCO_SV.cmake (renamed from share/cmake-3.16/Modules/Platform/SCO_SV.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/SINIX.cmake (renamed from share/cmake-3.16/Modules/Platform/SINIX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/SunOS-Clang-C.cmake (renamed from share/cmake-3.16/Modules/Platform/SunOS-Clang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/SunOS-Clang-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/SunOS-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/SunOS-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/SunOS-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/SunOS-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/SunOS-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/SunOS-GNU-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/SunOS-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/SunOS-GNU.cmake (renamed from share/cmake-3.16/Modules/Platform/SunOS-GNU.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/SunOS-PathScale-C.cmake (renamed from share/cmake-3.16/Modules/Platform/SunOS-PathScale-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/SunOS-PathScale-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/SunOS-PathScale-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/SunOS-PathScale-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/SunOS-PathScale-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/SunOS-PathScale.cmake (renamed from share/cmake-3.16/Modules/Platform/SunOS-PathScale.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/SunOS.cmake (renamed from share/cmake-3.16/Modules/Platform/SunOS.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Tru64.cmake (renamed from share/cmake-3.16/Modules/Platform/Tru64.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/ULTRIX.cmake (renamed from share/cmake-3.16/Modules/Platform/ULTRIX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/UNIX_SV.cmake (renamed from share/cmake-3.16/Modules/Platform/UNIX_SV.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/UnixPaths.cmake (renamed from share/cmake-3.16/Modules/Platform/UnixPaths.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/UnixWare.cmake (renamed from share/cmake-3.16/Modules/Platform/UnixWare.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Apple-Swift.cmake1
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Borland-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Borland-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Borland-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Borland-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Clang-ASM.cmake2
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Clang-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Clang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Clang-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Clang.cmake178
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Determine-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Embarcadero-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Embarcadero-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Embarcadero-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Embarcadero-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Embarcadero.cmake136
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Flang-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Flang-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-G95-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-G95-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-GNU-ASM.cmake2
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-GNU-C-ABI.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-GNU-C-ABI.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-GNU-CXX-ABI.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-GNU-CXX-ABI.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran-ABI.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-GNU-Fortran-ABI.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-GNU.cmake210
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Intel-ASM.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Intel-ASM.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Intel-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Intel-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Intel-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Intel-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Intel-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Intel-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Intel.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Intel.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-MSVC-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-MSVC-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-MSVC-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-MSVC-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-MSVC.cmake443
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-NVIDIA-CUDA.cmake93
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-OpenWatcom-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-OpenWatcom-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-OpenWatcom.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-OpenWatcom.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-PGI-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-PGI-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-PGI-Fortran.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-PGI-Fortran.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-PGI.cmake49
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Watcom-C.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Watcom-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Watcom-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-Watcom-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-df.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-df.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-windres.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows-windres.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows.cmake (renamed from share/cmake-3.16/Modules/Platform/Windows.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-C.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsCE-MSVC-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsCE-MSVC-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsCE.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsCE.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsPaths.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsPaths.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-ASM.cmake1
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-C.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsPhone-Clang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsPhone-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-ASM.cmake1
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsPhone-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsPhone-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-C.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsPhone-MSVC-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsPhone-MSVC-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsPhone.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsPhone.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsStore-Clang-ASM.cmake1
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsStore-Clang-C.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsStore-Clang-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsStore-Clang-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsStore-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsStore-GNU-ASM.cmake1
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsStore-GNU-C.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsStore-GNU-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsStore-GNU-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsStore-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-C.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsStore-MSVC-C.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsStore-MSVC-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsStore.cmake (renamed from share/cmake-3.16/Modules/Platform/WindowsStore.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/Xenix.cmake (renamed from share/cmake-3.16/Modules/Platform/Xenix.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/eCos.cmake (renamed from share/cmake-3.16/Modules/Platform/eCos.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/gas.cmake (renamed from share/cmake-3.16/Modules/Platform/gas.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/iOS-Determine-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/iOS-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/iOS-Initialize.cmake (renamed from share/cmake-3.16/Modules/Platform/iOS-Initialize.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/iOS.cmake (renamed from share/cmake-3.16/Modules/Platform/iOS.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/kFreeBSD.cmake (renamed from share/cmake-3.16/Modules/Platform/kFreeBSD.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/syllable.cmake (renamed from share/cmake-3.16/Modules/Platform/syllable.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/tvOS-Determine-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/tvOS-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/tvOS-Initialize.cmake (renamed from share/cmake-3.16/Modules/Platform/tvOS-Initialize.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/tvOS.cmake (renamed from share/cmake-3.16/Modules/Platform/tvOS.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/watchOS-Determine-CXX.cmake (renamed from share/cmake-3.16/Modules/Platform/watchOS-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/watchOS-Initialize.cmake (renamed from share/cmake-3.16/Modules/Platform/watchOS-Initialize.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Platform/watchOS.cmake (renamed from share/cmake-3.16/Modules/Platform/watchOS.cmake)0
-rw-r--r--share/cmake-3.17/Modules/ProcessorCount.cmake (renamed from share/cmake-3.16/Modules/ProcessorCount.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Qt4ConfigDependentSettings.cmake (renamed from share/cmake-3.16/Modules/Qt4ConfigDependentSettings.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Qt4Macros.cmake516
-rw-r--r--share/cmake-3.17/Modules/RepositoryInfo.txt.in (renamed from share/cmake-3.16/Modules/RepositoryInfo.txt.in)0
-rw-r--r--share/cmake-3.17/Modules/SelectLibraryConfigurations.cmake (renamed from share/cmake-3.16/Modules/SelectLibraryConfigurations.cmake)0
-rwxr-xr-x[-rw-r--r--]share/cmake-3.17/Modules/Squish4RunTestCase.bat (renamed from share/cmake-3.16/Modules/Squish4RunTestCase.bat)0
-rw-r--r--[-rwxr-xr-x]share/cmake-3.17/Modules/Squish4RunTestCase.sh (renamed from share/cmake-3.16/Modules/Squish4RunTestCase.sh)0
-rwxr-xr-x[-rw-r--r--]share/cmake-3.17/Modules/SquishRunTestCase.bat (renamed from share/cmake-3.16/Modules/SquishRunTestCase.bat)0
-rw-r--r--[-rwxr-xr-x]share/cmake-3.17/Modules/SquishRunTestCase.sh (renamed from share/cmake-3.16/Modules/SquishRunTestCase.sh)0
-rw-r--r--share/cmake-3.17/Modules/SquishTestScript.cmake (renamed from share/cmake-3.16/Modules/SquishTestScript.cmake)0
-rw-r--r--share/cmake-3.17/Modules/SystemInformation.cmake (renamed from share/cmake-3.16/Modules/SystemInformation.cmake)0
-rw-r--r--share/cmake-3.17/Modules/SystemInformation.in (renamed from share/cmake-3.16/Modules/SystemInformation.in)0
-rw-r--r--share/cmake-3.17/Modules/TestBigEndian.cmake123
-rw-r--r--share/cmake-3.17/Modules/TestCXXAcceptsFlag.cmake44
-rw-r--r--share/cmake-3.17/Modules/TestEndianess.c.in (renamed from share/cmake-3.16/Modules/TestEndianess.c.in)0
-rw-r--r--share/cmake-3.17/Modules/TestForANSIForScope.cmake43
-rw-r--r--share/cmake-3.17/Modules/TestForANSIStreamHeaders.cmake (renamed from share/cmake-3.16/Modules/TestForANSIStreamHeaders.cmake)0
-rw-r--r--share/cmake-3.17/Modules/TestForANSIStreamHeaders.cxx (renamed from share/cmake-3.16/Modules/TestForANSIStreamHeaders.cxx)0
-rw-r--r--share/cmake-3.17/Modules/TestForAnsiForScope.cxx (renamed from share/cmake-3.16/Modules/TestForAnsiForScope.cxx)0
-rw-r--r--share/cmake-3.17/Modules/TestForSSTREAM.cmake41
-rw-r--r--share/cmake-3.17/Modules/TestForSSTREAM.cxx (renamed from share/cmake-3.16/Modules/TestForSSTREAM.cxx)0
-rw-r--r--share/cmake-3.17/Modules/TestForSTDNamespace.cmake41
-rw-r--r--share/cmake-3.17/Modules/TestForSTDNamespace.cxx (renamed from share/cmake-3.16/Modules/TestForSTDNamespace.cxx)0
-rw-r--r--share/cmake-3.17/Modules/UseEcos.cmake (renamed from share/cmake-3.16/Modules/UseEcos.cmake)0
-rw-r--r--share/cmake-3.17/Modules/UseJava.cmake1425
-rw-r--r--share/cmake-3.17/Modules/UseJavaClassFilelist.cmake (renamed from share/cmake-3.16/Modules/UseJavaClassFilelist.cmake)0
-rw-r--r--share/cmake-3.17/Modules/UseJavaSymlinks.cmake (renamed from share/cmake-3.16/Modules/UseJavaSymlinks.cmake)0
-rw-r--r--share/cmake-3.17/Modules/UsePkgConfig.cmake (renamed from share/cmake-3.16/Modules/UsePkgConfig.cmake)0
-rw-r--r--share/cmake-3.17/Modules/UseQt4.cmake (renamed from share/cmake-3.16/Modules/UseQt4.cmake)0
-rw-r--r--share/cmake-3.17/Modules/UseSWIG.cmake (renamed from share/cmake-3.16/Modules/UseSWIG.cmake)0
-rw-r--r--share/cmake-3.17/Modules/UseSWIG/ManageSupportFiles.cmake (renamed from share/cmake-3.16/Modules/UseSWIG/ManageSupportFiles.cmake)0
-rw-r--r--share/cmake-3.17/Modules/Use_wxWindows.cmake (renamed from share/cmake-3.16/Modules/Use_wxWindows.cmake)0
-rw-r--r--share/cmake-3.17/Modules/UsewxWidgets.cmake (renamed from share/cmake-3.16/Modules/UsewxWidgets.cmake)0
-rw-r--r--share/cmake-3.17/Modules/VTKCompatibility.cmake (renamed from share/cmake-3.16/Modules/VTKCompatibility.cmake)0
-rw-r--r--share/cmake-3.17/Modules/WriteBasicConfigVersionFile.cmake (renamed from share/cmake-3.16/Modules/WriteBasicConfigVersionFile.cmake)0
-rw-r--r--share/cmake-3.17/Modules/WriteCompilerDetectionHeader.cmake (renamed from share/cmake-3.16/Modules/WriteCompilerDetectionHeader.cmake)0
-rw-r--r--share/cmake-3.17/Modules/ecos_clean.cmake (renamed from share/cmake-3.16/Modules/ecos_clean.cmake)0
-rw-r--r--share/cmake-3.17/Modules/exportheader.cmake.in (renamed from share/cmake-3.16/Modules/exportheader.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/javaTargets.cmake.in (renamed from share/cmake-3.16/Modules/javaTargets.cmake.in)0
-rw-r--r--share/cmake-3.17/Modules/kde3init_dummy.cpp.in (renamed from share/cmake-3.16/Modules/kde3init_dummy.cpp.in)0
-rw-r--r--share/cmake-3.17/Modules/kde3uic.cmake (renamed from share/cmake-3.16/Modules/kde3uic.cmake)0
-rw-r--r--share/cmake-3.17/Modules/readme.txt (renamed from share/cmake-3.16/Modules/readme.txt)0
-rw-r--r--share/cmake-3.17/Templates/AppleInfo.plist (renamed from share/cmake-3.16/Templates/AppleInfo.plist)0
-rw-r--r--share/cmake-3.17/Templates/CMakeVSMacros1.vsmacros (renamed from share/cmake-3.16/Templates/CMakeVSMacros1.vsmacros)bin88064 -> 88064 bytes
-rw-r--r--share/cmake-3.17/Templates/CMakeVSMacros2.vsmacros (renamed from share/cmake-3.16/Templates/CMakeVSMacros2.vsmacros)bin63488 -> 63488 bytes
-rw-r--r--share/cmake-3.17/Templates/CPack.GenericDescription.txt (renamed from share/cmake-3.16/Templates/CPack.GenericDescription.txt)0
-rw-r--r--share/cmake-3.17/Templates/CPack.GenericLicense.txt (renamed from share/cmake-3.16/Templates/CPack.GenericLicense.txt)0
-rw-r--r--share/cmake-3.17/Templates/CPack.GenericWelcome.txt (renamed from share/cmake-3.16/Templates/CPack.GenericWelcome.txt)0
-rw-r--r--share/cmake-3.17/Templates/CPackConfig.cmake.in (renamed from share/cmake-3.16/Templates/CPackConfig.cmake.in)0
-rw-r--r--share/cmake-3.17/Templates/CTestScript.cmake.in (renamed from share/cmake-3.16/Templates/CTestScript.cmake.in)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CL.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v10_CL.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CSharp.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v10_CSharp.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Cuda.json244
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CudaHost.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v10_CudaHost.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v10_LIB.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v10_LIB.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Link.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v10_Link.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v10_MASM.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v10_MASM.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v10_NASM.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v10_NASM.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v10_RC.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v10_RC.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CL.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v11_CL.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CSharp.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v11_CSharp.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v11_LIB.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v11_LIB.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v11_Link.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v11_Link.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v11_MASM.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v11_MASM.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v11_RC.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v11_RC.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CL.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v12_CL.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CSharp.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v12_CSharp.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v12_LIB.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v12_LIB.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v12_Link.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v12_Link.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v12_MASM.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v12_MASM.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v12_RC.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v12_RC.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CL.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v140_CL.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CSharp.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v140_CSharp.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v140_Link.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v140_Link.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CL.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v141_CL.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CSharp.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v141_CSharp.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v141_Link.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v141_Link.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CL.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v142_CL.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CSharp.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v142_CSharp.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v142_Link.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v142_Link.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v14_LIB.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v14_LIB.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v14_MASM.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v14_MASM.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/FlagTables/v14_RC.json (renamed from share/cmake-3.16/Templates/MSBuild/FlagTables/v14_RC.json)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/nasm.props.in (renamed from share/cmake-3.16/Templates/MSBuild/nasm.props.in)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/nasm.targets (renamed from share/cmake-3.16/Templates/MSBuild/nasm.targets)0
-rw-r--r--share/cmake-3.17/Templates/MSBuild/nasm.xml (renamed from share/cmake-3.16/Templates/MSBuild/nasm.xml)0
-rw-r--r--share/cmake-3.17/Templates/TestDriver.cxx.in (renamed from share/cmake-3.16/Templates/TestDriver.cxx.in)0
-rw-r--r--share/cmake-3.17/Templates/Windows/ApplicationIcon.png (renamed from share/cmake-3.16/Templates/Windows/ApplicationIcon.png)bin2335 -> 2335 bytes
-rw-r--r--share/cmake-3.17/Templates/Windows/Logo.png (renamed from share/cmake-3.16/Templates/Windows/Logo.png)bin488 -> 488 bytes
-rw-r--r--share/cmake-3.17/Templates/Windows/SmallLogo.png (renamed from share/cmake-3.16/Templates/Windows/SmallLogo.png)bin167 -> 167 bytes
-rw-r--r--share/cmake-3.17/Templates/Windows/SmallLogo44x44.png (renamed from share/cmake-3.16/Templates/Windows/SmallLogo44x44.png)bin265 -> 265 bytes
-rw-r--r--share/cmake-3.17/Templates/Windows/SplashScreen.png (renamed from share/cmake-3.16/Templates/Windows/SplashScreen.png)bin909 -> 909 bytes
-rw-r--r--share/cmake-3.17/Templates/Windows/StoreLogo.png (renamed from share/cmake-3.16/Templates/Windows/StoreLogo.png)bin227 -> 227 bytes
-rw-r--r--share/cmake-3.17/Templates/Windows/Windows_TemporaryKey.pfx (renamed from share/cmake-3.16/Templates/Windows/Windows_TemporaryKey.pfx)bin2560 -> 2560 bytes
-rw-r--r--share/cmake-3.17/completions/cmake (renamed from share/cmake-3.16/completions/cmake)0
-rw-r--r--share/cmake-3.17/completions/cpack (renamed from share/cmake-3.16/completions/cpack)0
-rw-r--r--share/cmake-3.17/completions/ctest (renamed from share/cmake-3.16/completions/ctest)0
-rw-r--r--share/cmake-3.17/editors/emacs/cmake-mode.el (renamed from share/cmake-3.16/editors/emacs/cmake-mode.el)0
-rw-r--r--share/cmake-3.17/editors/vim/indent/cmake.vim (renamed from share/cmake-3.16/editors/vim/indent/cmake.vim)0
-rw-r--r--share/cmake-3.17/editors/vim/syntax/cmake.vim3374
-rw-r--r--share/cmake-3.17/include/cmCPluginAPI.h236
2968 files changed, 66244 insertions, 62406 deletions
diff --git a/bin/ccmake b/bin/ccmake
deleted file mode 100755
index 78667f7..0000000
--- a/bin/ccmake
+++ /dev/null
Binary files differ
diff --git a/bin/cmake b/bin/cmake
deleted file mode 100755
index f87e784..0000000
--- a/bin/cmake
+++ /dev/null
Binary files differ
diff --git a/bin/cmake.exe b/bin/cmake.exe
new file mode 100755
index 0000000..104af0e
--- /dev/null
+++ b/bin/cmake.exe
Binary files differ
diff --git a/bin/cmcldeps.exe b/bin/cmcldeps.exe
new file mode 100755
index 0000000..8f18e65
--- /dev/null
+++ b/bin/cmcldeps.exe
Binary files differ
diff --git a/bin/cpack b/bin/cpack
deleted file mode 100755
index 14a1c92..0000000
--- a/bin/cpack
+++ /dev/null
Binary files differ
diff --git a/bin/cpack.exe b/bin/cpack.exe
new file mode 100755
index 0000000..6353400
--- /dev/null
+++ b/bin/cpack.exe
Binary files differ
diff --git a/bin/ctest b/bin/ctest
deleted file mode 100755
index 5b4b6dd..0000000
--- a/bin/ctest
+++ /dev/null
Binary files differ
diff --git a/bin/ctest.exe b/bin/ctest.exe
new file mode 100755
index 0000000..841c252
--- /dev/null
+++ b/bin/ctest.exe
Binary files differ
diff --git a/doc/cmake-3.16/Copyright.txt b/doc/cmake-3.16/Copyright.txt
deleted file mode 100644
index f236214..0000000
--- a/doc/cmake-3.16/Copyright.txt
+++ /dev/null
@@ -1,131 +0,0 @@
-CMake - Cross Platform Makefile Generator
-Copyright 2000-2019 Kitware, Inc. and Contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-* Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-* Neither the name of Kitware, Inc. nor the names of Contributors
- may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-------------------------------------------------------------------------------
-
-The following individuals and institutions are among the Contributors:
-
-* Aaron C. Meadows <cmake@shadowguarddev.com>
-* Adriaan de Groot <groot@kde.org>
-* Aleksey Avdeev <solo@altlinux.ru>
-* Alexander Neundorf <neundorf@kde.org>
-* Alexander Smorkalov <alexander.smorkalov@itseez.com>
-* Alexey Sokolov <sokolov@google.com>
-* Alex Merry <alex.merry@kde.org>
-* Alex Turbov <i.zaufi@gmail.com>
-* Andreas Pakulat <apaku@gmx.de>
-* Andreas Schneider <asn@cryptomilk.org>
-* André Rigland Brodtkorb <Andre.Brodtkorb@ifi.uio.no>
-* Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf
-* Benjamin Eikel
-* Bjoern Ricks <bjoern.ricks@gmail.com>
-* Brad Hards <bradh@kde.org>
-* Christopher Harvey
-* Christoph Grüninger <foss@grueninger.de>
-* Clement Creusot <creusot@cs.york.ac.uk>
-* Daniel Blezek <blezek@gmail.com>
-* Daniel Pfeifer <daniel@pfeifer-mail.de>
-* Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-* Eran Ifrah <eran.ifrah@gmail.com>
-* Esben Mose Hansen, Ange Optimization ApS
-* Geoffrey Viola <geoffrey.viola@asirobots.com>
-* Google Inc
-* Gregor Jasny
-* Helio Chissini de Castro <helio@kde.org>
-* Ilya Lavrenov <ilya.lavrenov@itseez.com>
-* Insight Software Consortium <insightsoftwareconsortium.org>
-* Jan Woetzel
-* Julien Schueller
-* Kelly Thompson <kgt@lanl.gov>
-* Laurent Montel <montel@kde.org>
-* Konstantin Podsvirov <konstantin@podsvirov.pro>
-* Mario Bensi <mbensi@ipsquad.net>
-* Martin Gräßlin <mgraesslin@kde.org>
-* Mathieu Malaterre <mathieu.malaterre@gmail.com>
-* Matthaeus G. Chajdas
-* Matthias Kretz <kretz@kde.org>
-* Matthias Maennich <matthias@maennich.net>
-* Michael Hirsch, Ph.D. <www.scivision.co>
-* Michael Stürmer
-* Miguel A. Figueroa-Villanueva
-* Mike Jackson
-* Mike McQuaid <mike@mikemcquaid.com>
-* Nicolas Bock <nicolasbock@gmail.com>
-* Nicolas Despres <nicolas.despres@gmail.com>
-* Nikita Krupen'ko <krnekit@gmail.com>
-* NVIDIA Corporation <www.nvidia.com>
-* OpenGamma Ltd. <opengamma.com>
-* Patrick Stotko <stotko@cs.uni-bonn.de>
-* Per Øyvind Karlsen <peroyvind@mandriva.org>
-* Peter Collingbourne <peter@pcc.me.uk>
-* Petr Gotthard <gotthard@honeywell.com>
-* Philip Lowman <philip@yhbt.com>
-* Philippe Proulx <pproulx@efficios.com>
-* Raffi Enficiaud, Max Planck Society
-* Raumfeld <raumfeld.com>
-* Roger Leigh <rleigh@codelibre.net>
-* Rolf Eike Beer <eike@sf-mail.de>
-* Roman Donchenko <roman.donchenko@itseez.com>
-* Roman Kharitonov <roman.kharitonov@itseez.com>
-* Ruslan Baratov
-* Sebastian Holtermann <sebholt@xwmw.org>
-* Stephen Kelly <steveire@gmail.com>
-* Sylvain Joubert <joubert.sy@gmail.com>
-* Thomas Sondergaard <ts@medical-insight.com>
-* Tobias Hunger <tobias.hunger@qt.io>
-* Todd Gamblin <tgamblin@llnl.gov>
-* Tristan Carel
-* University of Dundee
-* Vadim Zhukov
-* Will Dicharry <wdicharry@stellarscience.com>
-
-See version control history for details of individual contributions.
-
-The above copyright and license notice applies to distributions of
-CMake in source and binary form. Third-party software packages supplied
-with CMake under compatible licenses provide their own copyright notices
-documented in corresponding subdirectories or source files.
-
-------------------------------------------------------------------------------
-
-CMake was initially developed by Kitware with the following sponsorship:
-
- * National Library of Medicine at the National Institutes of Health
- as part of the Insight Segmentation and Registration Toolkit (ITK).
-
- * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel
- Visualization Initiative.
-
- * National Alliance for Medical Image Computing (NAMIC) is funded by the
- National Institutes of Health through the NIH Roadmap for Medical Research,
- Grant U54 EB005149.
-
- * Kitware, Inc.
diff --git a/doc/cmake-3.17/Copyright.txt b/doc/cmake-3.17/Copyright.txt
new file mode 100644
index 0000000..b867d01
--- /dev/null
+++ b/doc/cmake-3.17/Copyright.txt
@@ -0,0 +1,132 @@
+CMake - Cross Platform Makefile Generator
+Copyright 2000-2020 Kitware, Inc. and Contributors
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+* Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+* Neither the name of Kitware, Inc. nor the names of Contributors
+ may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+------------------------------------------------------------------------------
+
+The following individuals and institutions are among the Contributors:
+
+* Aaron C. Meadows <cmake@shadowguarddev.com>
+* Adriaan de Groot <groot@kde.org>
+* Aleksey Avdeev <solo@altlinux.ru>
+* Alexander Neundorf <neundorf@kde.org>
+* Alexander Smorkalov <alexander.smorkalov@itseez.com>
+* Alexey Sokolov <sokolov@google.com>
+* Alex Merry <alex.merry@kde.org>
+* Alex Turbov <i.zaufi@gmail.com>
+* Andreas Pakulat <apaku@gmx.de>
+* Andreas Schneider <asn@cryptomilk.org>
+* André Rigland Brodtkorb <Andre.Brodtkorb@ifi.uio.no>
+* Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf
+* Benjamin Eikel
+* Bjoern Ricks <bjoern.ricks@gmail.com>
+* Brad Hards <bradh@kde.org>
+* Christopher Harvey
+* Christoph Grüninger <foss@grueninger.de>
+* Clement Creusot <creusot@cs.york.ac.uk>
+* Daniel Blezek <blezek@gmail.com>
+* Daniel Pfeifer <daniel@pfeifer-mail.de>
+* Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+* Eran Ifrah <eran.ifrah@gmail.com>
+* Esben Mose Hansen, Ange Optimization ApS
+* Geoffrey Viola <geoffrey.viola@asirobots.com>
+* Google Inc
+* Gregor Jasny
+* Helio Chissini de Castro <helio@kde.org>
+* Ilya Lavrenov <ilya.lavrenov@itseez.com>
+* Insight Software Consortium <insightsoftwareconsortium.org>
+* Jan Woetzel
+* Julien Schueller
+* Kelly Thompson <kgt@lanl.gov>
+* Laurent Montel <montel@kde.org>
+* Konstantin Podsvirov <konstantin@podsvirov.pro>
+* Mario Bensi <mbensi@ipsquad.net>
+* Martin Gräßlin <mgraesslin@kde.org>
+* Mathieu Malaterre <mathieu.malaterre@gmail.com>
+* Matthaeus G. Chajdas
+* Matthias Kretz <kretz@kde.org>
+* Matthias Maennich <matthias@maennich.net>
+* Michael Hirsch, Ph.D. <www.scivision.co>
+* Michael Stürmer
+* Miguel A. Figueroa-Villanueva
+* Mike Jackson
+* Mike McQuaid <mike@mikemcquaid.com>
+* Nicolas Bock <nicolasbock@gmail.com>
+* Nicolas Despres <nicolas.despres@gmail.com>
+* Nikita Krupen'ko <krnekit@gmail.com>
+* NVIDIA Corporation <www.nvidia.com>
+* OpenGamma Ltd. <opengamma.com>
+* Patrick Stotko <stotko@cs.uni-bonn.de>
+* Per Øyvind Karlsen <peroyvind@mandriva.org>
+* Peter Collingbourne <peter@pcc.me.uk>
+* Petr Gotthard <gotthard@honeywell.com>
+* Philip Lowman <philip@yhbt.com>
+* Philippe Proulx <pproulx@efficios.com>
+* Raffi Enficiaud, Max Planck Society
+* Raumfeld <raumfeld.com>
+* Roger Leigh <rleigh@codelibre.net>
+* Rolf Eike Beer <eike@sf-mail.de>
+* Roman Donchenko <roman.donchenko@itseez.com>
+* Roman Kharitonov <roman.kharitonov@itseez.com>
+* Ruslan Baratov
+* Sebastian Holtermann <sebholt@xwmw.org>
+* Stephen Kelly <steveire@gmail.com>
+* Sylvain Joubert <joubert.sy@gmail.com>
+* The Qt Company Ltd.
+* Thomas Sondergaard <ts@medical-insight.com>
+* Tobias Hunger <tobias.hunger@qt.io>
+* Todd Gamblin <tgamblin@llnl.gov>
+* Tristan Carel
+* University of Dundee
+* Vadim Zhukov
+* Will Dicharry <wdicharry@stellarscience.com>
+
+See version control history for details of individual contributions.
+
+The above copyright and license notice applies to distributions of
+CMake in source and binary form. Third-party software packages supplied
+with CMake under compatible licenses provide their own copyright notices
+documented in corresponding subdirectories or source files.
+
+------------------------------------------------------------------------------
+
+CMake was initially developed by Kitware with the following sponsorship:
+
+ * National Library of Medicine at the National Institutes of Health
+ as part of the Insight Segmentation and Registration Toolkit (ITK).
+
+ * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel
+ Visualization Initiative.
+
+ * National Alliance for Medical Image Computing (NAMIC) is funded by the
+ National Institutes of Health through the NIH Roadmap for Medical Research,
+ Grant U54 EB005149.
+
+ * Kitware, Inc.
diff --git a/doc/cmake-3.17/cmake.org.html b/doc/cmake-3.17/cmake.org.html
new file mode 100644
index 0000000..001d634
--- /dev/null
+++ b/doc/cmake-3.17/cmake.org.html
@@ -0,0 +1,7 @@
+<html>
+<head>
+<meta http-equiv="Refresh" content="0; url=https://cmake.org/" />
+</head>
+<body>
+</body>
+</html>
diff --git a/doc/cmake-3.16/cmcurl/COPYING b/doc/cmake-3.17/cmcurl/COPYING
index 3528bd7..3528bd7 100644
--- a/doc/cmake-3.16/cmcurl/COPYING
+++ b/doc/cmake-3.17/cmcurl/COPYING
diff --git a/doc/cmake-3.16/cmlibarchive/COPYING b/doc/cmake-3.17/cmlibarchive/COPYING
index 93952b7..93952b7 100644
--- a/doc/cmake-3.16/cmlibarchive/COPYING
+++ b/doc/cmake-3.17/cmlibarchive/COPYING
diff --git a/doc/cmake-3.16/cmliblzma/COPYING b/doc/cmake-3.17/cmliblzma/COPYING
index 20e60d5..20e60d5 100644
--- a/doc/cmake-3.16/cmliblzma/COPYING
+++ b/doc/cmake-3.17/cmliblzma/COPYING
diff --git a/doc/cmake-3.16/cmlibrhash/COPYING b/doc/cmake-3.17/cmlibrhash/COPYING
index bf65ee1..bf65ee1 100644
--- a/doc/cmake-3.16/cmlibrhash/COPYING
+++ b/doc/cmake-3.17/cmlibrhash/COPYING
diff --git a/doc/cmake-3.16/cmlibrhash/README b/doc/cmake-3.17/cmlibrhash/README
index 4ea492f..4ea492f 100644
--- a/doc/cmake-3.16/cmlibrhash/README
+++ b/doc/cmake-3.17/cmlibrhash/README
diff --git a/doc/cmake-3.16/cmlibuv/LICENSE b/doc/cmake-3.17/cmlibuv/LICENSE
index 28f1733..28f1733 100644
--- a/doc/cmake-3.16/cmlibuv/LICENSE
+++ b/doc/cmake-3.17/cmlibuv/LICENSE
diff --git a/doc/cmake-3.16/cmsys/Copyright.txt b/doc/cmake-3.17/cmsys/Copyright.txt
index 33d7fb4..33d7fb4 100644
--- a/doc/cmake-3.16/cmsys/Copyright.txt
+++ b/doc/cmake-3.17/cmsys/Copyright.txt
diff --git a/doc/cmake-3.16/cmzlib/Copyright.txt b/doc/cmake-3.17/cmzlib/Copyright.txt
index db0beae..db0beae 100644
--- a/doc/cmake-3.16/cmzlib/Copyright.txt
+++ b/doc/cmake-3.17/cmzlib/Copyright.txt
diff --git a/doc/cmake-3.16/cmzstd/LICENSE b/doc/cmake-3.17/cmzstd/LICENSE
index a793a80..a793a80 100644
--- a/doc/cmake-3.16/cmzstd/LICENSE
+++ b/doc/cmake-3.17/cmzstd/LICENSE
diff --git a/share/cmake-3.16/Help/command/add_custom_command.rst b/share/cmake-3.16/Help/command/add_custom_command.rst
deleted file mode 100644
index aba3742..0000000
--- a/share/cmake-3.16/Help/command/add_custom_command.rst
+++ /dev/null
@@ -1,260 +0,0 @@
-add_custom_command
-------------------
-
-Add a custom build rule to the generated build system.
-
-There are two main signatures for ``add_custom_command``.
-
-Generating Files
-^^^^^^^^^^^^^^^^
-
-The first signature is for adding a custom command to produce an output:
-
-.. code-block:: cmake
-
- add_custom_command(OUTPUT output1 [output2 ...]
- COMMAND command1 [ARGS] [args1...]
- [COMMAND command2 [ARGS] [args2...] ...]
- [MAIN_DEPENDENCY depend]
- [DEPENDS [depends...]]
- [BYPRODUCTS [files...]]
- [IMPLICIT_DEPENDS <lang1> depend1
- [<lang2> depend2] ...]
- [WORKING_DIRECTORY dir]
- [COMMENT comment]
- [DEPFILE depfile]
- [JOB_POOL job_pool]
- [VERBATIM] [APPEND] [USES_TERMINAL]
- [COMMAND_EXPAND_LISTS])
-
-This defines a command to generate specified ``OUTPUT`` file(s).
-A target created in the same directory (``CMakeLists.txt`` file)
-that specifies any output of the custom command as a source file
-is given a rule to generate the file using the command at build time.
-Do not list the output in more than one independent target that
-may build in parallel or the two instances of the rule may conflict
-(instead use the :command:`add_custom_target` command to drive the
-command and make the other targets depend on that one).
-In makefile terms this creates a new target in the following form::
-
- OUTPUT: MAIN_DEPENDENCY DEPENDS
- COMMAND
-
-The options are:
-
-``APPEND``
- Append the ``COMMAND`` and ``DEPENDS`` option values to the custom
- command for the first output specified. There must have already
- been a previous call to this command with the same output.
- The ``COMMENT``, ``MAIN_DEPENDENCY``, and ``WORKING_DIRECTORY``
- options are currently ignored when APPEND is given, but may be
- used in the future.
-
-``BYPRODUCTS``
- Specify the files the command is expected to produce but whose
- modification time may or may not be newer than the dependencies.
- If a byproduct name is a relative path it will be interpreted
- relative to the build tree directory corresponding to the
- current source directory.
- Each byproduct file will be marked with the :prop_sf:`GENERATED`
- source file property automatically.
-
- Explicit specification of byproducts is supported by the
- :generator:`Ninja` generator to tell the ``ninja`` build tool
- how to regenerate byproducts when they are missing. It is
- also useful when other build rules (e.g. custom commands)
- depend on the byproducts. Ninja requires a build rule for any
- generated file on which another rule depends even if there are
- order-only dependencies to ensure the byproducts will be
- available before their dependents build.
-
-``COMMAND``
- Specify the command-line(s) to execute at build time.
- If more than one ``COMMAND`` is specified they will be executed in order,
- but *not* necessarily composed into a stateful shell or batch script.
- (To run a full script, use the :command:`configure_file` command or the
- :command:`file(GENERATE)` command to create it, and then specify
- a ``COMMAND`` to launch it.)
- The optional ``ARGS`` argument is for backward compatibility and
- will be ignored.
-
- If ``COMMAND`` specifies an executable target name (created by the
- :command:`add_executable` command), it will automatically be replaced
- by the location of the executable created at build time if either of
- the following is true:
-
- * The target is not being cross-compiled (i.e. the
- :variable:`CMAKE_CROSSCOMPILING` variable is not set to true).
- * The target is being cross-compiled and an emulator is provided (i.e.
- its :prop_tgt:`CROSSCOMPILING_EMULATOR` target property is set).
- In this case, the contents of :prop_tgt:`CROSSCOMPILING_EMULATOR` will be
- prepended to the command before the location of the target executable.
-
- If neither of the above conditions are met, it is assumed that the
- command name is a program to be found on the ``PATH`` at build time.
-
- Arguments to ``COMMAND`` may use
- :manual:`generator expressions <cmake-generator-expressions(7)>`.
- Use the ``TARGET_FILE`` generator expression to refer to the location of
- a target later in the command line (i.e. as a command argument rather
- than as the command to execute).
-
- Whenever a target is used as a command to execute or is mentioned in a
- generator expression as a command argument, a target-level dependency
- will be added automatically so that the mentioned target will be built
- before any target using this custom command. However this does NOT add
- a file-level dependency that would cause the custom command to re-run
- whenever the executable is recompiled. List target names with
- the ``DEPENDS`` option to add such file-level dependencies.
-
-``COMMENT``
- Display the given message before the commands are executed at
- build time.
-
-``DEPENDS``
- Specify files on which the command depends. If any dependency is
- an ``OUTPUT`` of another custom command in the same directory
- (``CMakeLists.txt`` file) CMake automatically brings the other
- custom command into the target in which this command is built.
- A target-level dependency is added if any dependency is listed as
- ``BYPRODUCTS`` of a target or any of its build events in the same
- directory to ensure the byproducts will be available.
- If ``DEPENDS`` is not specified the command will run whenever
- the ``OUTPUT`` is missing; if the command does not actually
- create the ``OUTPUT`` then the rule will always run.
- If ``DEPENDS`` specifies any target (created by the
- :command:`add_custom_target`, :command:`add_executable`, or
- :command:`add_library` command) a target-level dependency is
- created to make sure the target is built before any target
- using this custom command. Additionally, if the target is an
- executable or library a file-level dependency is created to
- cause the custom command to re-run whenever the target is
- recompiled.
-
- Arguments to ``DEPENDS`` may use
- :manual:`generator expressions <cmake-generator-expressions(7)>`.
-
-``COMMAND_EXPAND_LISTS``
- Lists in ``COMMAND`` arguments will be expanded, including those
- created with
- :manual:`generator expressions <cmake-generator-expressions(7)>`,
- allowing ``COMMAND`` arguments such as
- ``${CC} "-I$<JOIN:$<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>,;-I>" foo.cc``
- to be properly expanded.
-
-``IMPLICIT_DEPENDS``
- Request scanning of implicit dependencies of an input file.
- The language given specifies the programming language whose
- corresponding dependency scanner should be used.
- Currently only ``C`` and ``CXX`` language scanners are supported.
- The language has to be specified for every file in the
- ``IMPLICIT_DEPENDS`` list. Dependencies discovered from the
- scanning are added to those of the custom command at build time.
- Note that the ``IMPLICIT_DEPENDS`` option is currently supported
- only for Makefile generators and will be ignored by other generators.
-
-``JOB_POOL``
- Specify a :prop_gbl:`pool <JOB_POOLS>` for the :generator:`Ninja`
- generator. Incompatible with ``USES_TERMINAL``, which implies
- the ``console`` pool.
- Using a pool that is not defined by :prop_gbl:`JOB_POOLS` causes
- an error by ninja at build time.
-
-``MAIN_DEPENDENCY``
- Specify the primary input source file to the command. This is
- treated just like any value given to the ``DEPENDS`` option
- but also suggests to Visual Studio generators where to hang
- the custom command. Each source file may have at most one command
- specifying it as its main dependency. A compile command (i.e. for a
- library or an executable) counts as an implicit main dependency which
- gets silently overwritten by a custom command specification.
-
-``OUTPUT``
- Specify the output files the command is expected to produce.
- If an output name is a relative path it will be interpreted
- relative to the build tree directory corresponding to the
- current source directory.
- Each output file will be marked with the :prop_sf:`GENERATED`
- source file property automatically.
- If the output of the custom command is not actually created
- as a file on disk it should be marked with the :prop_sf:`SYMBOLIC`
- source file property.
-
-``USES_TERMINAL``
- The command will be given direct access to the terminal if possible.
- With the :generator:`Ninja` generator, this places the command in
- the ``console`` :prop_gbl:`pool <JOB_POOLS>`.
-
-``VERBATIM``
- All arguments to the commands will be escaped properly for the
- build tool so that the invoked command receives each argument
- unchanged. Note that one level of escapes is still used by the
- CMake language processor before add_custom_command even sees the
- arguments. Use of ``VERBATIM`` is recommended as it enables
- correct behavior. When ``VERBATIM`` is not given the behavior
- is platform specific because there is no protection of
- tool-specific special characters.
-
-``WORKING_DIRECTORY``
- Execute the command with the given current working directory.
- If it is a relative path it will be interpreted relative to the
- build tree directory corresponding to the current source directory.
-
- Arguments to ``WORKING_DIRECTORY`` may use
- :manual:`generator expressions <cmake-generator-expressions(7)>`.
-
-``DEPFILE``
- Specify a ``.d`` depfile for the :generator:`Ninja` generator.
- A ``.d`` file holds dependencies usually emitted by the custom
- command itself.
- Using ``DEPFILE`` with other generators than Ninja is an error.
-
-Build Events
-^^^^^^^^^^^^
-
-The second signature adds a custom command to a target such as a
-library or executable. This is useful for performing an operation
-before or after building the target. The command becomes part of the
-target and will only execute when the target itself is built. If the
-target is already built, the command will not execute.
-
-.. code-block:: cmake
-
- add_custom_command(TARGET <target>
- PRE_BUILD | PRE_LINK | POST_BUILD
- COMMAND command1 [ARGS] [args1...]
- [COMMAND command2 [ARGS] [args2...] ...]
- [BYPRODUCTS [files...]]
- [WORKING_DIRECTORY dir]
- [COMMENT comment]
- [VERBATIM] [USES_TERMINAL]
- [COMMAND_EXPAND_LISTS])
-
-This defines a new command that will be associated with building the
-specified ``<target>``. The ``<target>`` must be defined in the current
-directory; targets defined in other directories may not be specified.
-
-When the command will happen is determined by which
-of the following is specified:
-
-``PRE_BUILD``
- On :ref:`Visual Studio Generators`, run before any other rules are
- executed within the target.
- On other generators, run just before ``PRE_LINK`` commands.
-``PRE_LINK``
- Run after sources have been compiled but before linking the binary
- or running the librarian or archiver tool of a static library.
- This is not defined for targets created by the
- :command:`add_custom_target` command.
-``POST_BUILD``
- Run after all other rules within the target have been executed.
-
-.. note::
- Because generator expressions can be used in custom commands,
- it is possible to define ``COMMAND`` lines or whole custom commands
- which evaluate to empty strings for certain configurations.
- For **Visual Studio 2010 (and newer)** generators these command
- lines or custom commands will be omitted for the specific
- configuration and no "empty-string-command" will be added.
-
- This allows to add individual build events for every configuration.
diff --git a/share/cmake-3.16/Help/command/add_custom_target.rst b/share/cmake-3.16/Help/command/add_custom_target.rst
deleted file mode 100644
index 2d5f5f0..0000000
--- a/share/cmake-3.16/Help/command/add_custom_target.rst
+++ /dev/null
@@ -1,146 +0,0 @@
-add_custom_target
------------------
-
-Add a target with no output so it will always be built.
-
-.. code-block:: cmake
-
- add_custom_target(Name [ALL] [command1 [args1...]]
- [COMMAND command2 [args2...] ...]
- [DEPENDS depend depend depend ... ]
- [BYPRODUCTS [files...]]
- [WORKING_DIRECTORY dir]
- [COMMENT comment]
- [JOB_POOL job_pool]
- [VERBATIM] [USES_TERMINAL]
- [COMMAND_EXPAND_LISTS]
- [SOURCES src1 [src2...]])
-
-Adds a target with the given name that executes the given commands.
-The target has no output file and is *always considered out of date*
-even if the commands try to create a file with the name of the target.
-Use the :command:`add_custom_command` command to generate a file with
-dependencies. By default nothing depends on the custom target. Use
-the :command:`add_dependencies` command to add dependencies to or
-from other targets.
-
-The options are:
-
-``ALL``
- Indicate that this target should be added to the default build
- target so that it will be run every time (the command cannot be
- called ``ALL``).
-
-``BYPRODUCTS``
- Specify the files the command is expected to produce but whose
- modification time may or may not be updated on subsequent builds.
- If a byproduct name is a relative path it will be interpreted
- relative to the build tree directory corresponding to the
- current source directory.
- Each byproduct file will be marked with the :prop_sf:`GENERATED`
- source file property automatically.
-
- Explicit specification of byproducts is supported by the
- :generator:`Ninja` generator to tell the ``ninja`` build tool
- how to regenerate byproducts when they are missing. It is
- also useful when other build rules (e.g. custom commands)
- depend on the byproducts. Ninja requires a build rule for any
- generated file on which another rule depends even if there are
- order-only dependencies to ensure the byproducts will be
- available before their dependents build.
-
-``COMMAND``
- Specify the command-line(s) to execute at build time.
- If more than one ``COMMAND`` is specified they will be executed in order,
- but *not* necessarily composed into a stateful shell or batch script.
- (To run a full script, use the :command:`configure_file` command or the
- :command:`file(GENERATE)` command to create it, and then specify
- a ``COMMAND`` to launch it.)
-
- If ``COMMAND`` specifies an executable target name (created by the
- :command:`add_executable` command), it will automatically be replaced
- by the location of the executable created at build time if either of
- the following is true:
-
- * The target is not being cross-compiled (i.e. the
- :variable:`CMAKE_CROSSCOMPILING` variable is not set to true).
- * The target is being cross-compiled and an emulator is provided (i.e.
- its :prop_tgt:`CROSSCOMPILING_EMULATOR` target property is set).
- In this case, the contents of :prop_tgt:`CROSSCOMPILING_EMULATOR` will be
- prepended to the command before the location of the target executable.
-
- If neither of the above conditions are met, it is assumed that the
- command name is a program to be found on the ``PATH`` at build time.
-
- Arguments to ``COMMAND`` may use
- :manual:`generator expressions <cmake-generator-expressions(7)>`.
- Use the ``TARGET_FILE`` generator expression to refer to the location of
- a target later in the command line (i.e. as a command argument rather
- than as the command to execute).
-
- Whenever a target is used as a command to execute or is mentioned in a
- generator expression as a command argument, a target-level dependency
- will be added automatically so that the mentioned target will be built
- before this custom target.
-
- The command and arguments are optional and if not specified an empty
- target will be created.
-
-``COMMENT``
- Display the given message before the commands are executed at
- build time.
-
-``DEPENDS``
- Reference files and outputs of custom commands created with
- :command:`add_custom_command` command calls in the same directory
- (``CMakeLists.txt`` file). They will be brought up to date when
- the target is built.
- A target-level dependency is added if any dependency is a byproduct
- of a target or any of its build events in the same directory to ensure
- the byproducts will be available before this target is built.
-
- Use the :command:`add_dependencies` command to add dependencies
- on other targets.
-
-``COMMAND_EXPAND_LISTS``
- Lists in ``COMMAND`` arguments will be expanded, including those
- created with
- :manual:`generator expressions <cmake-generator-expressions(7)>`,
- allowing ``COMMAND`` arguments such as
- ``${CC} "-I$<JOIN:$<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>,;-I>" foo.cc``
- to be properly expanded.
-
-``JOB_POOL``
- Specify a :prop_gbl:`pool <JOB_POOLS>` for the :generator:`Ninja`
- generator. Incompatible with ``USES_TERMINAL``, which implies
- the ``console`` pool.
- Using a pool that is not defined by :prop_gbl:`JOB_POOLS` causes
- an error by ninja at build time.
-
-``SOURCES``
- Specify additional source files to be included in the custom target.
- Specified source files will be added to IDE project files for
- convenience in editing even if they have no build rules.
-
-``VERBATIM``
- All arguments to the commands will be escaped properly for the
- build tool so that the invoked command receives each argument
- unchanged. Note that one level of escapes is still used by the
- CMake language processor before ``add_custom_target`` even sees
- the arguments. Use of ``VERBATIM`` is recommended as it enables
- correct behavior. When ``VERBATIM`` is not given the behavior
- is platform specific because there is no protection of
- tool-specific special characters.
-
-``USES_TERMINAL``
- The command will be given direct access to the terminal if possible.
- With the :generator:`Ninja` generator, this places the command in
- the ``console`` :prop_gbl:`pool <JOB_POOLS>`.
-
-``WORKING_DIRECTORY``
- Execute the command with the given current working directory.
- If it is a relative path it will be interpreted relative to the
- build tree directory corresponding to the current source directory.
-
- Arguments to ``WORKING_DIRECTORY`` may use
- :manual:`generator expressions <cmake-generator-expressions(7)>`.
diff --git a/share/cmake-3.16/Help/command/ctest_test.rst b/share/cmake-3.16/Help/command/ctest_test.rst
deleted file mode 100644
index 7a3393b..0000000
--- a/share/cmake-3.16/Help/command/ctest_test.rst
+++ /dev/null
@@ -1,120 +0,0 @@
-ctest_test
-----------
-
-Perform the :ref:`CTest Test Step` as a :ref:`Dashboard Client`.
-
-::
-
- ctest_test([BUILD <build-dir>] [APPEND]
- [START <start-number>]
- [END <end-number>]
- [STRIDE <stride-number>]
- [EXCLUDE <exclude-regex>]
- [INCLUDE <include-regex>]
- [EXCLUDE_LABEL <label-exclude-regex>]
- [INCLUDE_LABEL <label-include-regex>]
- [EXCLUDE_FIXTURE <regex>]
- [EXCLUDE_FIXTURE_SETUP <regex>]
- [EXCLUDE_FIXTURE_CLEANUP <regex>]
- [PARALLEL_LEVEL <level>]
- [RESOURCE_SPEC_FILE <file>]
- [TEST_LOAD <threshold>]
- [SCHEDULE_RANDOM <ON|OFF>]
- [STOP_TIME <time-of-day>]
- [RETURN_VALUE <result-var>]
- [CAPTURE_CMAKE_ERROR <result-var>]
- [QUIET]
- )
-
-Run tests in the project build tree and store results in
-``Test.xml`` for submission with the :command:`ctest_submit` command.
-
-The options are:
-
-``BUILD <build-dir>``
- Specify the top-level build directory. If not given, the
- :variable:`CTEST_BINARY_DIRECTORY` variable is used.
-
-``APPEND``
- Mark ``Test.xml`` for append to results previously submitted to a
- dashboard server since the last :command:`ctest_start` call.
- Append semantics are defined by the dashboard server in use.
- This does *not* cause results to be appended to a ``.xml`` file
- produced by a previous call to this command.
-
-``START <start-number>``
- Specify the beginning of a range of test numbers.
-
-``END <end-number>``
- Specify the end of a range of test numbers.
-
-``STRIDE <stride-number>``
- Specify the stride by which to step across a range of test numbers.
-
-``EXCLUDE <exclude-regex>``
- Specify a regular expression matching test names to exclude.
-
-``INCLUDE <include-regex>``
- Specify a regular expression matching test names to include.
- Tests not matching this expression are excluded.
-
-``EXCLUDE_LABEL <label-exclude-regex>``
- Specify a regular expression matching test labels to exclude.
-
-``INCLUDE_LABEL <label-include-regex>``
- Specify a regular expression matching test labels to include.
- Tests not matching this expression are excluded.
-
-``EXCLUDE_FIXTURE <regex>``
- If a test in the set of tests to be executed requires a particular fixture,
- that fixture's setup and cleanup tests would normally be added to the test
- set automatically. This option prevents adding setup or cleanup tests for
- fixtures matching the ``<regex>``. Note that all other fixture behavior is
- retained, including test dependencies and skipping tests that have fixture
- setup tests that fail.
-
-``EXCLUDE_FIXTURE_SETUP <regex>``
- Same as ``EXCLUDE_FIXTURE`` except only matching setup tests are excluded.
-
-``EXCLUDE_FIXTURE_CLEANUP <regex>``
- Same as ``EXCLUDE_FIXTURE`` except only matching cleanup tests are excluded.
-
-``PARALLEL_LEVEL <level>``
- Specify a positive number representing the number of tests to
- be run in parallel.
-
-``RESOURCE_SPEC_FILE <file>``
- Specify a
- :ref:`resource specification file <ctest-resource-specification-file>`. See
- :ref:`ctest-resource-allocation` for more information.
-
-``TEST_LOAD <threshold>``
- While running tests in parallel, try not to start tests when they
- may cause the CPU load to pass above a given threshold. If not
- specified the :variable:`CTEST_TEST_LOAD` variable will be checked,
- and then the ``--test-load`` command-line argument to :manual:`ctest(1)`.
- See also the ``TestLoad`` setting in the :ref:`CTest Test Step`.
-
-``SCHEDULE_RANDOM <ON|OFF>``
- Launch tests in a random order. This may be useful for detecting
- implicit test dependencies.
-
-``STOP_TIME <time-of-day>``
- Specify a time of day at which the tests should all stop running.
-
-``RETURN_VALUE <result-var>``
- Store in the ``<result-var>`` variable ``0`` if all tests passed.
- Store non-zero if anything went wrong.
-
-``CAPTURE_CMAKE_ERROR <result-var>``
- Store in the ``<result-var>`` variable -1 if there are any errors running
- the command and prevent ctest from returning non-zero if an error occurs.
-
-``QUIET``
- Suppress any CTest-specific non-error messages that would have otherwise
- been printed to the console. Output from the underlying test command is not
- affected. Summary info detailing the percentage of passing tests is also
- unaffected by the ``QUIET`` option.
-
-See also the :variable:`CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE`
-and :variable:`CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE` variables.
diff --git a/share/cmake-3.16/Help/command/file.rst b/share/cmake-3.16/Help/command/file.rst
deleted file mode 100644
index b186177..0000000
--- a/share/cmake-3.16/Help/command/file.rst
+++ /dev/null
@@ -1,848 +0,0 @@
-file
-----
-
-File manipulation command.
-
-Synopsis
-^^^^^^^^
-
-.. parsed-literal::
-
- `Reading`_
- file(`READ`_ <filename> <out-var> [...])
- file(`STRINGS`_ <filename> <out-var> [...])
- file(`\<HASH\> <HASH_>`_ <filename> <out-var>)
- file(`TIMESTAMP`_ <filename> <out-var> [...])
- file(`GET_RUNTIME_DEPENDENCIES`_ [...])
-
- `Writing`_
- file({`WRITE`_ | `APPEND`_} <filename> <content>...)
- file({`TOUCH`_ | `TOUCH_NOCREATE`_} [<file>...])
- file(`GENERATE`_ OUTPUT <output-file> [...])
-
- `Filesystem`_
- file({`GLOB`_ | `GLOB_RECURSE`_} <out-var> [...] [<globbing-expr>...])
- file(`RENAME`_ <oldname> <newname>)
- file({`REMOVE`_ | `REMOVE_RECURSE`_ } [<files>...])
- file(`MAKE_DIRECTORY`_ [<dir>...])
- file({`COPY`_ | `INSTALL`_} <file>... DESTINATION <dir> [...])
- file(`SIZE`_ <filename> <out-var>)
- file(`READ_SYMLINK`_ <linkname> <out-var>)
- file(`CREATE_LINK`_ <original> <linkname> [...])
-
- `Path Conversion`_
- file(`RELATIVE_PATH`_ <out-var> <directory> <file>)
- file({`TO_CMAKE_PATH`_ | `TO_NATIVE_PATH`_} <path> <out-var>)
-
- `Transfer`_
- file(`DOWNLOAD`_ <url> <file> [...])
- file(`UPLOAD`_ <file> <url> [...])
-
- `Locking`_
- file(`LOCK`_ <path> [...])
-
-Reading
-^^^^^^^
-
-.. _READ:
-
-.. code-block:: cmake
-
- file(READ <filename> <variable>
- [OFFSET <offset>] [LIMIT <max-in>] [HEX])
-
-Read content from a file called ``<filename>`` and store it in a
-``<variable>``. Optionally start from the given ``<offset>`` and
-read at most ``<max-in>`` bytes. The ``HEX`` option causes data to
-be converted to a hexadecimal representation (useful for binary data).
-
-.. _STRINGS:
-
-.. code-block:: cmake
-
- file(STRINGS <filename> <variable> [<options>...])
-
-Parse a list of ASCII strings from ``<filename>`` and store it in
-``<variable>``. Binary data in the file are ignored. Carriage return
-(``\r``, CR) characters are ignored. The options are:
-
-``LENGTH_MAXIMUM <max-len>``
- Consider only strings of at most a given length.
-
-``LENGTH_MINIMUM <min-len>``
- Consider only strings of at least a given length.
-
-``LIMIT_COUNT <max-num>``
- Limit the number of distinct strings to be extracted.
-
-``LIMIT_INPUT <max-in>``
- Limit the number of input bytes to read from the file.
-
-``LIMIT_OUTPUT <max-out>``
- Limit the number of total bytes to store in the ``<variable>``.
-
-``NEWLINE_CONSUME``
- Treat newline characters (``\n``, LF) as part of string content
- instead of terminating at them.
-
-``NO_HEX_CONVERSION``
- Intel Hex and Motorola S-record files are automatically converted to
- binary while reading unless this option is given.
-
-``REGEX <regex>``
- Consider only strings that match the given regular expression.
-
-``ENCODING <encoding-type>``
- Consider strings of a given encoding. Currently supported encodings are:
- UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE. If the ENCODING option
- is not provided and the file has a Byte Order Mark, the ENCODING option
- will be defaulted to respect the Byte Order Mark.
-
-For example, the code
-
-.. code-block:: cmake
-
- file(STRINGS myfile.txt myfile)
-
-stores a list in the variable ``myfile`` in which each item is a line
-from the input file.
-
-.. _HASH:
-
-.. code-block:: cmake
-
- file(<HASH> <filename> <variable>)
-
-Compute a cryptographic hash of the content of ``<filename>`` and
-store it in a ``<variable>``. The supported ``<HASH>`` algorithm names
-are those listed by the :ref:`string(\<HASH\>) <Supported Hash Algorithms>`
-command.
-
-.. _TIMESTAMP:
-
-.. code-block:: cmake
-
- file(TIMESTAMP <filename> <variable> [<format>] [UTC])
-
-Compute a string representation of the modification time of ``<filename>``
-and store it in ``<variable>``. Should the command be unable to obtain a
-timestamp variable will be set to the empty string ("").
-
-See the :command:`string(TIMESTAMP)` command for documentation of
-the ``<format>`` and ``UTC`` options.
-
-.. _GET_RUNTIME_DEPENDENCIES:
-
-.. code-block:: cmake
-
- file(GET_RUNTIME_DEPENDENCIES
- [RESOLVED_DEPENDENCIES_VAR <deps_var>]
- [UNRESOLVED_DEPENDENCIES_VAR <unresolved_deps_var>]
- [CONFLICTING_DEPENDENCIES_PREFIX <conflicting_deps_prefix>]
- [EXECUTABLES [<executable_files>...]]
- [LIBRARIES [<library_files>...]]
- [MODULES [<module_files>...]]
- [DIRECTORIES [<directories>...]]
- [BUNDLE_EXECUTABLE <bundle_executable_file>]
- [PRE_INCLUDE_REGEXES [<regexes>...]]
- [PRE_EXCLUDE_REGEXES [<regexes>...]]
- [POST_INCLUDE_REGEXES [<regexes>...]]
- [POST_EXCLUDE_REGEXES [<regexes>...]]
- )
-
-Recursively get the list of libraries depended on by the given files.
-
-Please note that this sub-command is not intended to be used in project mode.
-Instead, use it in an :command:`install(CODE)` or :command:`install(SCRIPT)`
-block. For example:
-
-.. code-block:: cmake
-
- install(CODE [[
- file(GET_RUNTIME_DEPENDENCIES
- # ...
- )
- ]])
-
-The arguments are as follows:
-
-``RESOLVED_DEPENDENCIES_VAR <deps_var>``
- Name of the variable in which to store the list of resolved dependencies.
-
-``UNRESOLVED_DEPENDENCIES_VAR <unresolved_deps_var>``
- Name of the variable in which to store the list of unresolved dependencies.
- If this variable is not specified, and there are any unresolved dependencies,
- an error is issued.
-
-``CONFLICTING_DEPENDENCIES_PREFIX <conflicting_deps_prefix>``
- Variable prefix in which to store conflicting dependency information.
- Dependencies are conflicting if two files with the same name are found in
- two different directories. The list of filenames that conflict are stored in
- ``<conflicting_deps_prefix>_FILENAMES``. For each filename, the list of paths
- that were found for that filename are stored in
- ``<conflicting_deps_prefix>_<filename>``.
-
-``EXECUTABLES <executable_files>``
- List of executable files to read for dependencies. These are executables that
- are typically created with :command:`add_executable`, but they do not have to
- be created by CMake. On Apple platforms, the paths to these files determine
- the value of ``@executable_path`` when recursively resolving the libraries.
- Specifying any kind of library (``STATIC``, ``MODULE``, or ``SHARED``) here
- will result in undefined behavior.
-
-``LIBRARIES <library_files>``
- List of library files to read for dependencies. These are libraries that are
- typically created with :command:`add_library(SHARED)`, but they do not have
- to be created by CMake. Specifying ``STATIC`` libraries, ``MODULE``
- libraries, or executables here will result in undefined behavior.
-
-``MODULES <module_files>``
- List of loadable module files to read for dependencies. These are modules
- that are typically created with :command:`add_library(MODULE)`, but they do
- not have to be created by CMake. They are typically used by calling
- ``dlopen()`` at runtime rather than linked at link time with ``ld -l``.
- Specifying ``STATIC`` libraries, ``SHARED`` libraries, or executables here
- will result in undefined behavior.
-
-``DIRECTORIES <directories>``
- List of additional directories to search for dependencies. On Linux
- platforms, these directories are searched if the dependency is not found in
- any of the other usual paths. If it is found in such a directory, a warning
- is issued, because it means that the file is incomplete (it does not list all
- of the directories that contain its dependencies). On Windows platforms,
- these directories are searched if the dependency is not found in any of the
- other search paths, but no warning is issued, because searching other paths
- is a normal part of Windows dependency resolution. On Apple platforms, this
- argument has no effect.
-
-``BUNDLE_EXECUTABLE <bundle_executable_file>``
- Executable to treat as the "bundle executable" when resolving libraries. On
- Apple platforms, this argument determines the value of ``@executable_path``
- when recursively resolving libraries for ``LIBRARIES`` and ``MODULES`` files.
- It has no effect on ``EXECUTABLES`` files. On other platforms, it has no
- effect. This is typically (but not always) one of the executables in the
- ``EXECUTABLES`` argument which designates the "main" executable of the
- package.
-
-The following arguments specify filters for including or excluding libraries to
-be resolved. See below for a full description of how they work.
-
-``PRE_INCLUDE_REGEXES <regexes>``
- List of pre-include regexes through which to filter the names of
- not-yet-resolved dependencies.
-
-``PRE_EXCLUDE_REGEXES <regexes>``
- List of pre-exclude regexes through which to filter the names of
- not-yet-resolved dependencies.
-
-``POST_INCLUDE_REGEXES <regexes>``
- List of post-include regexes through which to filter the names of resolved
- dependencies.
-
-``POST_EXCLUDE_REGEXES <regexes>``
- List of post-exclude regexes through which to filter the names of resolved
- dependencies.
-
-These arguments can be used to blacklist unwanted system libraries when
-resolving the dependencies, or to whitelist libraries from a specific
-directory. The filtering works as follows:
-
-1. If the not-yet-resolved dependency matches any of the
- ``PRE_INCLUDE_REGEXES``, steps 2 and 3 are skipped, and the dependency
- resolution proceeds to step 4.
-2. If the not-yet-resolved dependency matches any of the
- ``PRE_EXCLUDE_REGEXES``, dependency resolution stops for that dependency.
-3. Otherwise, dependency resolution proceeds.
-4. ``file(GET_RUNTIME_DEPENDENCIES)`` searches for the dependency according to
- the linking rules of the platform (see below).
-5. If the dependency is found, and its full path matches one of the
- ``POST_INCLUDE_REGEXES``, the full path is added to the resolved
- dependencies, and ``file(GET_RUNTIME_DEPENDENCIES)`` recursively resolves
- that library's own dependencies. Otherwise, resolution proceeds to step 6.
-6. If the dependency is found, but its full path matches one of the
- ``POST_EXCLUDE_REGEXES``, it is not added to the resolved dependencies, and
- dependency resolution stops for that dependency.
-7. If the dependency is found, and its full path does not match either
- ``POST_INCLUDE_REGEXES`` or ``POST_EXCLUDE_REGEXES``, the full path is added
- to the resolved dependencies, and ``file(GET_RUNTIME_DEPENDENCIES)``
- recursively resolves that library's own dependencies.
-
-Different platforms have different rules for how dependencies are resolved.
-These specifics are described here.
-
-On Linux platforms, library resolution works as follows:
-
-1. If the depending file does not have any ``RUNPATH`` entries, and the library
- exists in one of the depending file's ``RPATH`` entries, or its parents', in
- that order, the dependency is resolved to that file.
-2. Otherwise, if the depending file has any ``RUNPATH`` entries, and the
- library exists in one of those entries, the dependency is resolved to that
- file.
-3. Otherwise, if the library exists in one of the directories listed by
- ``ldconfig``, the dependency is resolved to that file.
-4. Otherwise, if the library exists in one of the ``DIRECTORIES`` entries, the
- dependency is resolved to that file. In this case, a warning is issued,
- because finding a file in one of the ``DIRECTORIES`` means that the
- depending file is not complete (it does not list all the directories from
- which it pulls dependencies).
-5. Otherwise, the dependency is unresolved.
-
-On Windows platforms, library resolution works as follows:
-
-1. The dependent DLL name is converted to lowercase. Windows DLL names are
- case-insensitive, and some linkers mangle the case of the DLL dependency
- names. However, this makes it more difficult for ``PRE_INCLUDE_REGEXES``,
- ``PRE_EXCLUDE_REGEXES``, ``POST_INCLUDE_REGEXES``, and
- ``POST_EXCLUDE_REGEXES`` to properly filter DLL names - every regex would
- have to check for both uppercase and lowercase letters. For example:
-
- .. code-block:: cmake
-
- file(GET_RUNTIME_DEPENDENCIES
- # ...
- PRE_INCLUDE_REGEXES "^[Mm][Yy][Ll][Ii][Bb][Rr][Aa][Rr][Yy]\\.[Dd][Ll][Ll]$"
- )
-
- Converting the DLL name to lowercase allows the regexes to only match
- lowercase names, thus simplifying the regex. For example:
-
- .. code-block:: cmake
-
- file(GET_RUNTIME_DEPENDENCIES
- # ...
- PRE_INCLUDE_REGEXES "^mylibrary\\.dll$"
- )
-
- This regex will match ``mylibrary.dll`` regardless of how it is cased,
- either on disk or in the depending file. (For example, it will match
- ``mylibrary.dll``, ``MyLibrary.dll``, and ``MYLIBRARY.DLL``.)
-
- Please note that the directory portion of any resolved DLLs retains its
- casing and is not converted to lowercase. Only the filename portion is
- converted.
-
-2. (**Not yet implemented**) If the depending file is a Windows Store app, and
- the dependency is listed as a dependency in the application's package
- manifest, the dependency is resolved to that file.
-3. Otherwise, if the library exists in the same directory as the depending
- file, the dependency is resolved to that file.
-4. Otherwise, if the library exists in either the operating system's
- ``system32`` directory or the ``Windows`` directory, in that order, the
- dependency is resolved to that file.
-5. Otherwise, if the library exists in one of the directories specified by
- ``DIRECTORIES``, in the order they are listed, the dependency is resolved to
- that file. In this case, a warning is not issued, because searching other
- directories is a normal part of Windows library resolution.
-6. Otherwise, the dependency is unresolved.
-
-On Apple platforms, library resolution works as follows:
-
-1. If the dependency starts with ``@executable_path/``, and an ``EXECUTABLES``
- argument is in the process of being resolved, and replacing
- ``@executable_path/`` with the directory of the executable yields an
- existing file, the dependency is resolved to that file.
-2. Otherwise, if the dependency starts with ``@executable_path/``, and there is
- a ``BUNDLE_EXECUTABLE`` argument, and replacing ``@executable_path/`` with
- the directory of the bundle executable yields an existing file, the
- dependency is resolved to that file.
-3. Otherwise, if the dependency starts with ``@loader_path/``, and replacing
- ``@loader_path/`` with the directory of the depending file yields an
- existing file, the dependency is resolved to that file.
-4. Otherwise, if the dependency starts with ``@rpath/``, and replacing
- ``@rpath/`` with one of the ``RPATH`` entries of the depending file yields
- an existing file, the dependency is resolved to that file. Note that
- ``RPATH`` entries that start with ``@executable_path/`` or ``@loader_path/``
- also have these items replaced with the appropriate path.
-5. Otherwise, if the dependency is an absolute file that exists, the dependency
- is resolved to that file.
-6. Otherwise, the dependency is unresolved.
-
-This function accepts several variables that determine which tool is used for
-dependency resolution:
-
-.. variable:: CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM
-
- Determines which operating system and executable format the files are built
- for. This could be one of several values:
-
- * ``linux+elf``
- * ``windows+pe``
- * ``macos+macho``
-
- If this variable is not specified, it is determined automatically by system
- introspection.
-
-.. variable:: CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL
-
- Determines the tool to use for dependency resolution. It could be one of
- several values, depending on the value of
- :variable:`CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM`:
-
- ================================================= =============================================
- ``CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM`` ``CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL``
- ================================================= =============================================
- ``linux+elf`` ``objdump``
- ``windows+pe`` ``dumpbin``
- ``windows+pe`` ``objdump``
- ``macos+macho`` ``otool``
- ================================================= =============================================
-
- If this variable is not specified, it is determined automatically by system
- introspection.
-
-.. variable:: CMAKE_GET_RUNTIME_DEPENDENCIES_COMMAND
-
- Determines the path to the tool to use for dependency resolution. This is the
- actual path to ``objdump``, ``dumpbin``, or ``otool``.
-
- If this variable is not specified, it is determined automatically by system
- introspection.
-
-Writing
-^^^^^^^
-
-.. _WRITE:
-.. _APPEND:
-
-.. code-block:: cmake
-
- file(WRITE <filename> <content>...)
- file(APPEND <filename> <content>...)
-
-Write ``<content>`` into a file called ``<filename>``. If the file does
-not exist, it will be created. If the file already exists, ``WRITE``
-mode will overwrite it and ``APPEND`` mode will append to the end.
-Any directories in the path specified by ``<filename>`` that do not
-exist will be created.
-
-If the file is a build input, use the :command:`configure_file` command
-to update the file only when its content changes.
-
-.. _TOUCH:
-.. _TOUCH_NOCREATE:
-
-.. code-block:: cmake
-
- file(TOUCH [<files>...])
- file(TOUCH_NOCREATE [<files>...])
-
-Create a file with no content if it does not yet exist. If the file already
-exists, its access and/or modification will be updated to the time when the
-function call is executed.
-
-Use TOUCH_NOCREATE to touch a file if it exists but not create it. If a file
-does not exist it will be silently ignored.
-
-With TOUCH and TOUCH_NOCREATE the contents of an existing file will not be
-modified.
-
-.. _GENERATE:
-
-.. code-block:: cmake
-
- file(GENERATE OUTPUT output-file
- <INPUT input-file|CONTENT content>
- [CONDITION expression])
-
-Generate an output file for each build configuration supported by the current
-:manual:`CMake Generator <cmake-generators(7)>`. Evaluate
-:manual:`generator expressions <cmake-generator-expressions(7)>`
-from the input content to produce the output content. The options are:
-
-``CONDITION <condition>``
- Generate the output file for a particular configuration only if
- the condition is true. The condition must be either ``0`` or ``1``
- after evaluating generator expressions.
-
-``CONTENT <content>``
- Use the content given explicitly as input.
-
-``INPUT <input-file>``
- Use the content from a given file as input.
- A relative path is treated with respect to the value of
- :variable:`CMAKE_CURRENT_SOURCE_DIR`. See policy :policy:`CMP0070`.
-
-``OUTPUT <output-file>``
- Specify the output file name to generate. Use generator expressions
- such as ``$<CONFIG>`` to specify a configuration-specific output file
- name. Multiple configurations may generate the same output file only
- if the generated content is identical. Otherwise, the ``<output-file>``
- must evaluate to an unique name for each configuration.
- A relative path (after evaluating generator expressions) is treated
- with respect to the value of :variable:`CMAKE_CURRENT_BINARY_DIR`.
- See policy :policy:`CMP0070`.
-
-Exactly one ``CONTENT`` or ``INPUT`` option must be given. A specific
-``OUTPUT`` file may be named by at most one invocation of ``file(GENERATE)``.
-Generated files are modified and their timestamp updated on subsequent cmake
-runs only if their content is changed.
-
-Note also that ``file(GENERATE)`` does not create the output file until the
-generation phase. The output file will not yet have been written when the
-``file(GENERATE)`` command returns, it is written only after processing all
-of a project's ``CMakeLists.txt`` files.
-
-Filesystem
-^^^^^^^^^^
-
-.. _GLOB:
-.. _GLOB_RECURSE:
-
-.. code-block:: cmake
-
- file(GLOB <variable>
- [LIST_DIRECTORIES true|false] [RELATIVE <path>] [CONFIGURE_DEPENDS]
- [<globbing-expressions>...])
- file(GLOB_RECURSE <variable> [FOLLOW_SYMLINKS]
- [LIST_DIRECTORIES true|false] [RELATIVE <path>] [CONFIGURE_DEPENDS]
- [<globbing-expressions>...])
-
-Generate a list of files that match the ``<globbing-expressions>`` and
-store it into the ``<variable>``. Globbing expressions are similar to
-regular expressions, but much simpler. If ``RELATIVE`` flag is
-specified, the results will be returned as relative paths to the given
-path. The results will be ordered lexicographically.
-
-On Windows and macOS, globbing is case-insensitive even if the underlying
-filesystem is case-sensitive (both filenames and globbing expressions are
-converted to lowercase before matching). On other platforms, globbing is
-case-sensitive.
-
-If the ``CONFIGURE_DEPENDS`` flag is specified, CMake will add logic
-to the main build system check target to rerun the flagged ``GLOB`` commands
-at build time. If any of the outputs change, CMake will regenerate the build
-system.
-
-By default ``GLOB`` lists directories - directories are omitted in result if
-``LIST_DIRECTORIES`` is set to false.
-
-.. note::
- We do not recommend using GLOB to collect a list of source files from
- your source tree. If no CMakeLists.txt file changes when a source is
- added or removed then the generated build system cannot know when to
- ask CMake to regenerate.
- The ``CONFIGURE_DEPENDS`` flag may not work reliably on all generators, or if
- a new generator is added in the future that cannot support it, projects using
- it will be stuck. Even if ``CONFIGURE_DEPENDS`` works reliably, there is
- still a cost to perform the check on every rebuild.
-
-Examples of globbing expressions include::
-
- *.cxx - match all files with extension cxx
- *.vt? - match all files with extension vta,...,vtz
- f[3-5].txt - match files f3.txt, f4.txt, f5.txt
-
-The ``GLOB_RECURSE`` mode will traverse all the subdirectories of the
-matched directory and match the files. Subdirectories that are symlinks
-are only traversed if ``FOLLOW_SYMLINKS`` is given or policy
-:policy:`CMP0009` is not set to ``NEW``.
-
-By default ``GLOB_RECURSE`` omits directories from result list - setting
-``LIST_DIRECTORIES`` to true adds directories to result list.
-If ``FOLLOW_SYMLINKS`` is given or policy :policy:`CMP0009` is not set to
-``OLD`` then ``LIST_DIRECTORIES`` treats symlinks as directories.
-
-Examples of recursive globbing include::
-
- /dir/*.py - match all python files in /dir and subdirectories
-
-.. _RENAME:
-
-.. code-block:: cmake
-
- file(RENAME <oldname> <newname>)
-
-Move a file or directory within a filesystem from ``<oldname>`` to
-``<newname>``, replacing the destination atomically.
-
-.. _REMOVE:
-.. _REMOVE_RECURSE:
-
-.. code-block:: cmake
-
- file(REMOVE [<files>...])
- file(REMOVE_RECURSE [<files>...])
-
-Remove the given files. The ``REMOVE_RECURSE`` mode will remove the given
-files and directories, also non-empty directories. No error is emitted if a
-given file does not exist. Relative input paths are evaluated with respect
-to the current source directory. Empty input paths are ignored with a warning.
-
-.. _MAKE_DIRECTORY:
-
-.. code-block:: cmake
-
- file(MAKE_DIRECTORY [<directories>...])
-
-Create the given directories and their parents as needed.
-
-.. _COPY:
-.. _INSTALL:
-
-.. code-block:: cmake
-
- file(<COPY|INSTALL> <files>... DESTINATION <dir>
- [FILE_PERMISSIONS <permissions>...]
- [DIRECTORY_PERMISSIONS <permissions>...]
- [NO_SOURCE_PERMISSIONS] [USE_SOURCE_PERMISSIONS]
- [FOLLOW_SYMLINK_CHAIN]
- [FILES_MATCHING]
- [[PATTERN <pattern> | REGEX <regex>]
- [EXCLUDE] [PERMISSIONS <permissions>...]] [...])
-
-The ``COPY`` signature copies files, directories, and symlinks to a
-destination folder. Relative input paths are evaluated with respect
-to the current source directory, and a relative destination is
-evaluated with respect to the current build directory. Copying
-preserves input file timestamps, and optimizes out a file if it exists
-at the destination with the same timestamp. Copying preserves input
-permissions unless explicit permissions or ``NO_SOURCE_PERMISSIONS``
-are given (default is ``USE_SOURCE_PERMISSIONS``).
-
-If ``FOLLOW_SYMLINK_CHAIN`` is specified, ``COPY`` will recursively resolve
-the symlinks at the paths given until a real file is found, and install
-a corresponding symlink in the destination for each symlink encountered. For
-each symlink that is installed, the resolution is stripped of the directory,
-leaving only the filename, meaning that the new symlink points to a file in
-the same directory as the symlink. This feature is useful on some Unix systems,
-where libraries are installed as a chain of symlinks with version numbers, with
-less specific versions pointing to more specific versions.
-``FOLLOW_SYMLINK_CHAIN`` will install all of these symlinks and the library
-itself into the destination directory. For example, if you have the following
-directory structure:
-
-* ``/opt/foo/lib/libfoo.so.1.2.3``
-* ``/opt/foo/lib/libfoo.so.1.2 -> libfoo.so.1.2.3``
-* ``/opt/foo/lib/libfoo.so.1 -> libfoo.so.1.2``
-* ``/opt/foo/lib/libfoo.so -> libfoo.so.1``
-
-and you do:
-
-.. code-block:: cmake
-
- file(COPY /opt/foo/lib/libfoo.so DESTINATION lib FOLLOW_SYMLINK_CHAIN)
-
-This will install all of the symlinks and ``libfoo.so.1.2.3`` itself into
-``lib``.
-
-See the :command:`install(DIRECTORY)` command for documentation of
-permissions, ``FILES_MATCHING``, ``PATTERN``, ``REGEX``, and
-``EXCLUDE`` options. Copying directories preserves the structure
-of their content even if options are used to select a subset of
-files.
-
-The ``INSTALL`` signature differs slightly from ``COPY``: it prints
-status messages (subject to the :variable:`CMAKE_INSTALL_MESSAGE` variable),
-and ``NO_SOURCE_PERMISSIONS`` is default.
-Installation scripts generated by the :command:`install` command
-use this signature (with some undocumented options for internal use).
-
-.. _SIZE:
-
-.. code-block:: cmake
-
- file(SIZE <filename> <variable>)
-
-Determine the file size of the ``<filename>`` and put the result in
-``<variable>`` variable. Requires that ``<filename>`` is a valid path
-pointing to a file and is readable.
-
-.. _READ_SYMLINK:
-
-.. code-block:: cmake
-
- file(READ_SYMLINK <linkname> <variable>)
-
-This subcommand queries the symlink ``<linkname>`` and stores the path it
-points to in the result ``<variable>``. If ``<linkname>`` does not exist or
-is not a symlink, CMake issues a fatal error.
-
-Note that this command returns the raw symlink path and does not resolve
-a relative path. The following is an example of how to ensure that an
-absolute path is obtained:
-
-.. code-block:: cmake
-
- set(linkname "/path/to/foo.sym")
- file(READ_SYMLINK "${linkname}" result)
- if(NOT IS_ABSOLUTE "${result}")
- get_filename_component(dir "${linkname}" DIRECTORY)
- set(result "${dir}/${result}")
- endif()
-
-.. _CREATE_LINK:
-
-.. code-block:: cmake
-
- file(CREATE_LINK <original> <linkname>
- [RESULT <result>] [COPY_ON_ERROR] [SYMBOLIC])
-
-Create a link ``<linkname>`` that points to ``<original>``.
-It will be a hard link by default, but providing the ``SYMBOLIC`` option
-results in a symbolic link instead. Hard links require that ``original``
-exists and is a file, not a directory. If ``<linkname>`` already exists,
-it will be overwritten.
-
-The ``<result>`` variable, if specified, receives the status of the operation.
-It is set to ``0`` upon success or an error message otherwise. If ``RESULT``
-is not specified and the operation fails, a fatal error is emitted.
-
-Specifying ``COPY_ON_ERROR`` enables copying the file as a fallback if
-creating the link fails. It can be useful for handling situations such as
-``<original>`` and ``<linkname>`` being on different drives or mount points,
-which would make them unable to support a hard link.
-
-Path Conversion
-^^^^^^^^^^^^^^^
-
-.. _RELATIVE_PATH:
-
-.. code-block:: cmake
-
- file(RELATIVE_PATH <variable> <directory> <file>)
-
-Compute the relative path from a ``<directory>`` to a ``<file>`` and
-store it in the ``<variable>``.
-
-.. _TO_CMAKE_PATH:
-.. _TO_NATIVE_PATH:
-
-.. code-block:: cmake
-
- file(TO_CMAKE_PATH "<path>" <variable>)
- file(TO_NATIVE_PATH "<path>" <variable>)
-
-The ``TO_CMAKE_PATH`` mode converts a native ``<path>`` into a cmake-style
-path with forward-slashes (``/``). The input can be a single path or a
-system search path like ``$ENV{PATH}``. A search path will be converted
-to a cmake-style list separated by ``;`` characters.
-
-The ``TO_NATIVE_PATH`` mode converts a cmake-style ``<path>`` into a native
-path with platform-specific slashes (``\`` on Windows and ``/`` elsewhere).
-
-Always use double quotes around the ``<path>`` to be sure it is treated
-as a single argument to this command.
-
-Transfer
-^^^^^^^^
-
-.. _DOWNLOAD:
-.. _UPLOAD:
-
-.. code-block:: cmake
-
- file(DOWNLOAD <url> <file> [<options>...])
- file(UPLOAD <file> <url> [<options>...])
-
-The ``DOWNLOAD`` mode downloads the given ``<url>`` to a local ``<file>``.
-The ``UPLOAD`` mode uploads a local ``<file>`` to a given ``<url>``.
-
-Options to both ``DOWNLOAD`` and ``UPLOAD`` are:
-
-``INACTIVITY_TIMEOUT <seconds>``
- Terminate the operation after a period of inactivity.
-
-``LOG <variable>``
- Store a human-readable log of the operation in a variable.
-
-``SHOW_PROGRESS``
- Print progress information as status messages until the operation is
- complete.
-
-``STATUS <variable>``
- Store the resulting status of the operation in a variable.
- The status is a ``;`` separated list of length 2.
- The first element is the numeric return value for the operation,
- and the second element is a string value for the error.
- A ``0`` numeric error means no error in the operation.
-
-``TIMEOUT <seconds>``
- Terminate the operation after a given total time has elapsed.
-
-``USERPWD <username>:<password>``
- Set username and password for operation.
-
-``HTTPHEADER <HTTP-header>``
- HTTP header for operation. Suboption can be repeated several times.
-
-``NETRC <level>``
- Specify whether the .netrc file is to be used for operation. If this
- option is not specified, the value of the ``CMAKE_NETRC`` variable
- will be used instead.
- Valid levels are:
-
- ``IGNORED``
- The .netrc file is ignored.
- This is the default.
- ``OPTIONAL``
- The .netrc file is optional, and information in the URL is preferred.
- The file will be scanned to find which ever information is not specified
- in the URL.
- ``REQUIRED``
- The .netrc file is required, and information in the URL is ignored.
-
-``NETRC_FILE <file>``
- Specify an alternative .netrc file to the one in your home directory,
- if the ``NETRC`` level is ``OPTIONAL`` or ``REQUIRED``. If this option
- is not specified, the value of the ``CMAKE_NETRC_FILE`` variable will
- be used instead.
-
-If neither ``NETRC`` option is given CMake will check variables
-``CMAKE_NETRC`` and ``CMAKE_NETRC_FILE``, respectively.
-
-Additional options to ``DOWNLOAD`` are:
-
-``EXPECTED_HASH ALGO=<value>``
-
- Verify that the downloaded content hash matches the expected value, where
- ``ALGO`` is one of the algorithms supported by ``file(<HASH>)``.
- If it does not match, the operation fails with an error.
-
-``EXPECTED_MD5 <value>``
- Historical short-hand for ``EXPECTED_HASH MD5=<value>``.
-
-``TLS_VERIFY <ON|OFF>``
- Specify whether to verify the server certificate for ``https://`` URLs.
- The default is to *not* verify.
-
-``TLS_CAINFO <file>``
- Specify a custom Certificate Authority file for ``https://`` URLs.
-
-For ``https://`` URLs CMake must be built with OpenSSL support. ``TLS/SSL``
-certificates are not checked by default. Set ``TLS_VERIFY`` to ``ON`` to
-check certificates and/or use ``EXPECTED_HASH`` to verify downloaded content.
-If neither ``TLS`` option is given CMake will check variables
-``CMAKE_TLS_VERIFY`` and ``CMAKE_TLS_CAINFO``, respectively.
-
-Locking
-^^^^^^^
-
-.. _LOCK:
-
-.. code-block:: cmake
-
- file(LOCK <path> [DIRECTORY] [RELEASE]
- [GUARD <FUNCTION|FILE|PROCESS>]
- [RESULT_VARIABLE <variable>]
- [TIMEOUT <seconds>])
-
-Lock a file specified by ``<path>`` if no ``DIRECTORY`` option present and file
-``<path>/cmake.lock`` otherwise. File will be locked for scope defined by
-``GUARD`` option (default value is ``PROCESS``). ``RELEASE`` option can be used
-to unlock file explicitly. If option ``TIMEOUT`` is not specified CMake will
-wait until lock succeed or until fatal error occurs. If ``TIMEOUT`` is set to
-``0`` lock will be tried once and result will be reported immediately. If
-``TIMEOUT`` is not ``0`` CMake will try to lock file for the period specified
-by ``<seconds>`` value. Any errors will be interpreted as fatal if there is no
-``RESULT_VARIABLE`` option. Otherwise result will be stored in ``<variable>``
-and will be ``0`` on success or error message on failure.
-
-Note that lock is advisory - there is no guarantee that other processes will
-respect this lock, i.e. lock synchronize two or more CMake instances sharing
-some modifiable resources. Similar logic applied to ``DIRECTORY`` option -
-locking parent directory doesn't prevent other ``LOCK`` commands to lock any
-child directory or file.
-
-Trying to lock file twice is not allowed. Any intermediate directories and
-file itself will be created if they not exist. ``GUARD`` and ``TIMEOUT``
-options ignored on ``RELEASE`` operation.
diff --git a/share/cmake-3.16/Help/command/foreach.rst b/share/cmake-3.16/Help/command/foreach.rst
deleted file mode 100644
index ae2afb2..0000000
--- a/share/cmake-3.16/Help/command/foreach.rst
+++ /dev/null
@@ -1,84 +0,0 @@
-foreach
--------
-
-Evaluate a group of commands for each value in a list.
-
-.. code-block:: cmake
-
- foreach(<loop_var> <items>)
- <commands>
- endforeach()
-
-where ``<items>`` is a list of items that are separated by
-semicolon or whitespace.
-All commands between ``foreach`` and the matching ``endforeach`` are recorded
-without being invoked. Once the ``endforeach`` is evaluated, the recorded
-list of commands is invoked once for each item in ``<items>``.
-At the beginning of each iteration the variable ``loop_var`` will be set
-to the value of the current item.
-
-The commands :command:`break` and :command:`continue` provide means to
-escape from the normal control flow.
-
-Per legacy, the :command:`endforeach` command admits
-an optional ``<loop_var>`` argument.
-If used, it must be a verbatim
-repeat of the argument of the opening
-``foreach`` command.
-
-.. code-block:: cmake
-
- foreach(<loop_var> RANGE <stop>)
-
-In this variant, ``foreach`` iterates over the numbers
-0, 1, ... up to (and including) the nonnegative integer ``<stop>``.
-
-.. code-block:: cmake
-
- foreach(<loop_var> RANGE <start> <stop> [<step>])
-
-In this variant, ``foreach`` iterates over the numbers from
-``<start>`` up to at most ``<stop>`` in steps of ``<step>``.
-If ``<step>`` is not specified, then the step size is 1.
-The three arguments ``<start>`` ``<stop>`` ``<step>`` must
-all be nonnegative integers, and ``<stop>`` must not be
-smaller than ``<start>``; otherwise you enter the danger zone
-of undocumented behavior that may change in future releases.
-
-.. code-block:: cmake
-
- foreach(loop_var IN [LISTS [<lists>]] [ITEMS [<items>]])
-
-In this variant, ``<lists>`` is a whitespace or semicolon
-separated list of list-valued variables. The ``foreach``
-command iterates over each item in each given list.
-The ``<items>`` following the ``ITEMS`` keyword are processed
-as in the first variant of the ``foreach`` command.
-The forms ``LISTS A`` and ``ITEMS ${A}`` are
-equivalent.
-
-The following example shows how the ``LISTS`` option is
-processed:
-
-.. code-block:: cmake
-
- set(A 0;1)
- set(B 2 3)
- set(C "4 5")
- set(D 6;7 8)
- set(E "")
- foreach(X IN LISTS A B C D E)
- message(STATUS "X=${X}")
- endforeach()
-
-yields
-::
-
- -- X=0
- -- X=1
- -- X=2
- -- X=3
- -- X=4 5
- -- X=6
- -- X=7
- -- X=8
diff --git a/share/cmake-3.16/Help/command/macro.rst b/share/cmake-3.16/Help/command/macro.rst
deleted file mode 100644
index 05e5d79..0000000
--- a/share/cmake-3.16/Help/command/macro.rst
+++ /dev/null
@@ -1,140 +0,0 @@
-macro
------
-
-Start recording a macro for later invocation as a command
-
-.. code-block:: cmake
-
- macro(<name> [<arg1> ...])
- <commands>
- endmacro()
-
-Defines a macro named ``<name>`` that takes arguments named
-``<arg1>``, ... Commands listed after macro, but before the
-matching :command:`endmacro()`, are not executed until the macro
-is invoked.
-
-Per legacy, the :command:`endmacro` command admits an optional
-``<name>`` argument. If used, it must be a verbatim repeat of the
-argument of the opening ``macro`` command.
-
-See the :command:`cmake_policy()` command documentation for the behavior
-of policies inside macros.
-
-See the :ref:`Macro vs Function` section below for differences
-between CMake macros and :command:`functions <function>`.
-
-Invocation
-^^^^^^^^^^
-
-The macro invocation is case-insensitive. A macro defined as
-
-.. code-block:: cmake
-
- macro(foo)
- <commands>
- endmacro()
-
-can be invoked through any of
-
-.. code-block:: cmake
-
- foo()
- Foo()
- FOO()
-
-and so on. However, it is strongly recommended to stay with the
-case chosen in the macro definition. Typically macros use
-all-lowercase names.
-
-Arguments
-^^^^^^^^^
-
-When a macro is invoked, the commands recorded in the macro are
-first modified by replacing formal parameters (``${arg1}``, ...)
-with the arguments passed, and then invoked as normal commands.
-
-In addition to referencing the formal parameters you can reference the
-values ``${ARGC}`` which will be set to the number of arguments passed
-into the function as well as ``${ARGV0}``, ``${ARGV1}``, ``${ARGV2}``,
-... which will have the actual values of the arguments passed in.
-This facilitates creating macros with optional arguments.
-
-Furthermore, ``${ARGV}`` holds the list of all arguments given to the
-macro and ``${ARGN}`` holds the list of arguments past the last expected
-argument.
-Referencing to ``${ARGV#}`` arguments beyond ``${ARGC}`` have undefined
-behavior. Checking that ``${ARGC}`` is greater than ``#`` is the only
-way to ensure that ``${ARGV#}`` was passed to the function as an extra
-argument.
-
-.. _`Macro vs Function`:
-
-Macro vs Function
-^^^^^^^^^^^^^^^^^
-
-The ``macro`` command is very similar to the :command:`function` command.
-Nonetheless, there are a few important differences.
-
-In a function, ``ARGN``, ``ARGC``, ``ARGV`` and ``ARGV0``, ``ARGV1``, ...
-are true variables in the usual CMake sense. In a macro, they are not,
-they are string replacements much like the C preprocessor would do
-with a macro. This has a number of consequences, as explained in
-the :ref:`Argument Caveats` section below.
-
-Another difference between macros and functions is the control flow.
-A function is executed by transferring control from the calling
-statement to the function body. A macro is executed as if the macro
-body were pasted in place of the calling statement. This has the
-consequence that a :command:`return()` in a macro body does not
-just terminate execution of the macro; rather, control is returned
-from the scope of the macro call. To avoid confusion, it is recommended
-to avoid :command:`return()` in macros altogether.
-
-.. _`Argument Caveats`:
-
-Argument Caveats
-^^^^^^^^^^^^^^^^
-
-Since ``ARGN``, ``ARGC``, ``ARGV``, ``ARGV0`` etc. are not variables,
-you will NOT be able to use commands like
-
-.. code-block:: cmake
-
- if(ARGV1) # ARGV1 is not a variable
- if(DEFINED ARGV2) # ARGV2 is not a variable
- if(ARGC GREATER 2) # ARGC is not a variable
- foreach(loop_var IN LISTS ARGN) # ARGN is not a variable
-
-In the first case, you can use ``if(${ARGV1})``. In the second and
-third case, the proper way to check if an optional variable was
-passed to the macro is to use ``if(${ARGC} GREATER 2)``. In the
-last case, you can use ``foreach(loop_var ${ARGN})`` but this will
-skip empty arguments. If you need to include them, you can use
-
-.. code-block:: cmake
-
- set(list_var "${ARGN}")
- foreach(loop_var IN LISTS list_var)
-
-Note that if you have a variable with the same name in the scope from
-which the macro is called, using unreferenced names will use the
-existing variable instead of the arguments. For example:
-
-.. code-block:: cmake
-
- macro(bar)
- foreach(arg IN LISTS ARGN)
- <commands>
- endforeach()
- endmacro()
-
- function(foo)
- bar(x y z)
- endfunction()
-
- foo(a b c)
-
-Will loop over ``a;b;c`` and not over ``x;y;z`` as one might have expected.
-If you want true CMake variables and/or better CMake scope control you
-should look at the function command.
diff --git a/share/cmake-3.16/Help/command/mark_as_advanced.rst b/share/cmake-3.16/Help/command/mark_as_advanced.rst
deleted file mode 100644
index 5712fb4..0000000
--- a/share/cmake-3.16/Help/command/mark_as_advanced.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-mark_as_advanced
-----------------
-
-Mark cmake cached variables as advanced.
-
-.. code-block:: cmake
-
- mark_as_advanced([CLEAR|FORCE] <var1> ...)
-
-Sets the advanced/non-advanced state of the named
-cached variables.
-
-An advanced variable will not be displayed in any
-of the cmake GUIs unless the ``show advanced`` option is on.
-In script mode, the advanced/non-advanced state has no effect.
-
-If the keyword ``CLEAR`` is given
-then advanced variables are changed back to unadvanced.
-If the keyword ``FORCE`` is given
-then the variables are made advanced.
-If neither ``FORCE`` nor ``CLEAR`` is specified,
-new values will be marked as advanced, but if a
-variable already has an advanced/non-advanced state,
-it will not be changed.
diff --git a/share/cmake-3.16/Help/command/message.rst b/share/cmake-3.16/Help/command/message.rst
deleted file mode 100644
index c614286..0000000
--- a/share/cmake-3.16/Help/command/message.rst
+++ /dev/null
@@ -1,70 +0,0 @@
-message
--------
-
-Display a message to the user.
-
-.. code-block:: cmake
-
- message([<mode>] "message to display" ...)
-
-The optional ``<mode>`` keyword determines the type of message:
-
-``FATAL_ERROR``
- CMake Error, stop processing and generation.
-
-``SEND_ERROR``
- CMake Error, continue processing, but skip generation.
-
-``WARNING``
- CMake Warning, continue processing.
-
-``AUTHOR_WARNING``
- CMake Warning (dev), continue processing.
-
-``DEPRECATION``
- CMake Deprecation Error or Warning if variable
- :variable:`CMAKE_ERROR_DEPRECATED` or :variable:`CMAKE_WARN_DEPRECATED`
- is enabled, respectively, else no message.
-
-(none) or ``NOTICE``
- Important message printed to stderr to attract user's attention.
-
-``STATUS``
- The main interesting messages that project users might be interested in.
- Ideally these should be concise, no more than a single line, but still
- informative.
-
-``VERBOSE``
- Detailed informational messages intended for project users. These messages
- should provide additional details that won't be of interest in most cases,
- but which may be useful to those building the project when they want deeper
- insight into what's happening.
-
-``DEBUG``
- Detailed informational messages intended for developers working on the
- project itself as opposed to users who just want to build it. These messages
- will not typically be of interest to other users building the project and
- will often be closely related to internal implementation details.
-
-``TRACE``
- Fine-grained messages with very low-level implementation details. Messages
- using this log level would normally only be temporary and would expect to be
- removed before releasing the project, packaging up the files, etc.
-
-The CMake command-line tool displays ``STATUS`` to ``TRACE`` messages on stdout
-with the message preceded by two hyphens and a space. All other message types
-are sent to stderr and are not prefixed with hyphens. The
-:manual:`CMake GUI <cmake-gui(1)>` displays all messages in its log area.
-The :manual:`curses interface <ccmake(1)>` shows ``STATUS`` to ``TRACE``
-messages one at a time on a status line and other messages in an
-interactive pop-up box. The ``--log-level`` command-line option to each of
-these tools can be used to control which messages will be shown.
-
-Messages of log levels ``NOTICE`` and below will also have each line preceded
-by the content of the :variable:`CMAKE_MESSAGE_INDENT` variable (converted to
-a single string by concatenating its list items). For ``STATUS`` to ``TRACE``
-messages, this indenting content will be inserted after the hyphens.
-
-CMake Warning and Error message text displays using a simple markup
-language. Non-indented text is formatted in line-wrapped paragraphs
-delimited by newlines. Indented text is considered pre-formatted.
diff --git a/share/cmake-3.16/Help/command/project.rst b/share/cmake-3.16/Help/command/project.rst
deleted file mode 100644
index 3951456..0000000
--- a/share/cmake-3.16/Help/command/project.rst
+++ /dev/null
@@ -1,130 +0,0 @@
-project
--------
-
-Set the name of the project.
-
-Synopsis
-^^^^^^^^
-
-.. code-block:: cmake
-
- project(<PROJECT-NAME> [<language-name>...])
- project(<PROJECT-NAME>
- [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
- [DESCRIPTION <project-description-string>]
- [HOMEPAGE_URL <url-string>]
- [LANGUAGES <language-name>...])
-
-Sets the name of the project, and stores it in the variable
-:variable:`PROJECT_NAME`. When called from the top-level
-``CMakeLists.txt`` also stores the project name in the
-variable :variable:`CMAKE_PROJECT_NAME`.
-
-Also sets the variables
-
-* :variable:`PROJECT_SOURCE_DIR`,
- :variable:`<PROJECT-NAME>_SOURCE_DIR`
-* :variable:`PROJECT_BINARY_DIR`,
- :variable:`<PROJECT-NAME>_BINARY_DIR`
-
-Further variables are set by the optional arguments described in the following.
-If any of these arguments is not used, then the corresponding variables are
-set to the empty string.
-
-Options
-^^^^^^^
-
-The options are:
-
-``VERSION <version>``
- Optional; may not be used unless policy :policy:`CMP0048` is
- set to ``NEW``.
-
- Takes a ``<version>`` argument composed of non-negative integer components,
- i.e. ``<major>[.<minor>[.<patch>[.<tweak>]]]``,
- and sets the variables
-
- * :variable:`PROJECT_VERSION`,
- :variable:`<PROJECT-NAME>_VERSION`
- * :variable:`PROJECT_VERSION_MAJOR`,
- :variable:`<PROJECT-NAME>_VERSION_MAJOR`
- * :variable:`PROJECT_VERSION_MINOR`,
- :variable:`<PROJECT-NAME>_VERSION_MINOR`
- * :variable:`PROJECT_VERSION_PATCH`,
- :variable:`<PROJECT-NAME>_VERSION_PATCH`
- * :variable:`PROJECT_VERSION_TWEAK`,
- :variable:`<PROJECT-NAME>_VERSION_TWEAK`.
-
- When the ``project()`` command is called from the top-level ``CMakeLists.txt``,
- then the version is also stored in the variable :variable:`CMAKE_PROJECT_VERSION`.
-
-``DESCRIPTION <project-description-string>``
- Optional.
- Sets the variables
-
- * :variable:`PROJECT_DESCRIPTION`, :variable:`<PROJECT-NAME>_DESCRIPTION`
-
- to ``<project-description-string>``.
- It is recommended that this description is a relatively short string,
- usually no more than a few words.
-
- When the ``project()`` command is called from the top-level ``CMakeLists.txt``,
- then the description is also stored in the variable :variable:`CMAKE_PROJECT_DESCRIPTION`.
-
-``HOMEPAGE_URL <url-string>``
- Optional.
- Sets the variables
-
- * :variable:`PROJECT_HOMEPAGE_URL`, :variable:`<PROJECT-NAME>_HOMEPAGE_URL`
-
- to ``<url-string>``, which should be the canonical home URL for the project.
-
- When the ``project()`` command is called from the top-level ``CMakeLists.txt``,
- then the URL also is stored in the variable :variable:`CMAKE_PROJECT_HOMEPAGE_URL`.
-
-``LANGUAGES <language-name>...``
- Optional.
- Can also be specified without ``LANGUAGES`` keyword per the first, short signature.
-
- Selects which programming languages are needed to build the project.
- Supported languages include ``C``, ``CXX`` (i.e. C++), ``CUDA``,
- ``OBJC`` (i.e. Objective-C), ``OBJCXX``, ``Fortran``, and ``ASM``.
- By default ``C`` and ``CXX`` are enabled if no language options are given.
- Specify language ``NONE``, or use the ``LANGUAGES`` keyword and list no languages,
- to skip enabling any languages.
-
- If enabling ``ASM``, list it last so that CMake can check whether
- compilers for other languages like ``C`` work for assembly too.
-
-The variables set through the ``VERSION``, ``DESCRIPTION`` and ``HOMEPAGE_URL``
-options are intended for use as default values in package metadata and documentation.
-
-Code Injection
-^^^^^^^^^^^^^^
-
-If the :variable:`CMAKE_PROJECT_INCLUDE_BEFORE` variable is set, the file
-pointed to by that variable will be included as the first step of the
-``project()`` command.
-
-If the :variable:`CMAKE_PROJECT_INCLUDE` or
-:variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE` variables are set, the files
-they point to will be included as the last step of the ``project()`` command.
-If both are set, then :variable:`CMAKE_PROJECT_INCLUDE` will be included before
-:variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE`.
-
-Usage
-^^^^^
-
-The top-level ``CMakeLists.txt`` file for a project must contain a
-literal, direct call to the ``project()`` command; loading one
-through the :command:`include` command is not sufficient. If no such
-call exists, CMake will issue a warning and pretend there is a
-``project(Project)`` at the top to enable the default languages
-(``C`` and ``CXX``).
-
-.. note::
- Call the ``project()`` command near the top of the top-level
- ``CMakeLists.txt``, but *after* calling :command:`cmake_minimum_required`.
- It is important to establish version and policy settings before invoking
- other commands whose behavior they may affect.
- See also policy :policy:`CMP0000`.
diff --git a/share/cmake-3.16/Help/command/target_compile_features.rst b/share/cmake-3.16/Help/command/target_compile_features.rst
deleted file mode 100644
index 9271cd5..0000000
--- a/share/cmake-3.16/Help/command/target_compile_features.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-target_compile_features
------------------------
-
-Add expected compiler features to a target.
-
-.. code-block:: cmake
-
- target_compile_features(<target> <PRIVATE|PUBLIC|INTERFACE> <feature> [...])
-
-Specifies compiler features required when compiling a given target. If the
-feature is not listed in the :variable:`CMAKE_C_COMPILE_FEATURES` variable
-or :variable:`CMAKE_CXX_COMPILE_FEATURES` variable,
-then an error will be reported by CMake. If the use of the feature requires
-an additional compiler flag, such as ``-std=gnu++11``, the flag will be added
-automatically.
-
-The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to
-specify the scope of the features. ``PRIVATE`` and ``PUBLIC`` items will
-populate the :prop_tgt:`COMPILE_FEATURES` property of ``<target>``.
-``PUBLIC`` and ``INTERFACE`` items will populate the
-:prop_tgt:`INTERFACE_COMPILE_FEATURES` property of ``<target>``.
-(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items.)
-Repeated calls for the same ``<target>`` append items.
-
-The named ``<target>`` must have been created by a command such as
-:command:`add_executable` or :command:`add_library` and must not be an
-:ref:`ALIAS target <Alias Targets>`.
-
-Arguments to ``target_compile_features`` may use "generator expressions"
-with the syntax ``$<...>``.
-See the :manual:`cmake-generator-expressions(7)` manual for available
-expressions. See the :manual:`cmake-compile-features(7)` manual for
-information on compile features and a list of supported compilers.
diff --git a/share/cmake-3.16/Help/cpack_gen/dmg.rst b/share/cmake-3.16/Help/cpack_gen/dmg.rst
deleted file mode 100644
index 1e37889..0000000
--- a/share/cmake-3.16/Help/cpack_gen/dmg.rst
+++ /dev/null
@@ -1,101 +0,0 @@
-CPack DragNDrop Generator
--------------------------
-
-The DragNDrop CPack generator (macOS) creates a DMG image.
-
-Variables specific to CPack DragNDrop generator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The following variables are specific to the DragNDrop installers built
-on macOS:
-
-.. variable:: CPACK_DMG_VOLUME_NAME
-
- The volume name of the generated disk image. Defaults to
- CPACK_PACKAGE_FILE_NAME.
-
-.. variable:: CPACK_DMG_FORMAT
-
- The disk image format. Common values are ``UDRO`` (UDIF read-only), ``UDZO`` (UDIF
- zlib-compressed) or ``UDBZ`` (UDIF bzip2-compressed). Refer to ``hdiutil(1)`` for
- more information on other available formats. Defaults to ``UDZO``.
-
-.. variable:: CPACK_DMG_DS_STORE
-
- Path to a custom ``.DS_Store`` file. This ``.DS_Store`` file can be used to
- specify the Finder window position/geometry and layout (such as hidden
- toolbars, placement of the icons etc.). This file has to be generated by
- the Finder (either manually or through AppleScript) using a normal folder
- from which the ``.DS_Store`` file can then be extracted.
-
-.. variable:: CPACK_DMG_DS_STORE_SETUP_SCRIPT
-
- Path to a custom AppleScript file. This AppleScript is used to generate
- a ``.DS_Store`` file which specifies the Finder window position/geometry and
- layout (such as hidden toolbars, placement of the icons etc.).
- By specifying a custom AppleScript there is no need to use
- ``CPACK_DMG_DS_STORE``, as the ``.DS_Store`` that is generated by the AppleScript
- will be packaged.
-
-.. variable:: CPACK_DMG_BACKGROUND_IMAGE
-
- Path to an image file to be used as the background. This file will be
- copied to ``.background``/``background.<ext>``, where ``<ext>`` is the original image file
- extension. The background image is installed into the image before
- ``CPACK_DMG_DS_STORE_SETUP_SCRIPT`` is executed or ``CPACK_DMG_DS_STORE`` is
- installed. By default no background image is set.
-
-.. variable:: CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK
-
- Default behaviour is to include a symlink to ``/Applications`` in the DMG.
- Set this option to ``ON`` to avoid adding the symlink.
-
-.. variable:: CPACK_DMG_SLA_DIR
-
- Directory where license and menu files for different languages are stored.
- Setting this causes CPack to look for a ``<language>.menu.txt`` and
- ``<language>.license.txt`` file for every language defined in
- ``CPACK_DMG_SLA_LANGUAGES``. If both this variable and
- ``CPACK_RESOURCE_FILE_LICENSE`` are set, CPack will only look for the menu
- files and use the same license file for all languages.
-
-.. variable:: CPACK_DMG_SLA_LANGUAGES
-
- Languages for which a license agreement is provided when mounting the
- generated DMG. A menu file consists of 9 lines of text. The first line is
- is the name of the language itself, uppercase, in English (e.g. German).
- The other lines are translations of the following strings:
-
- - Agree
- - Disagree
- - Print
- - Save...
- - You agree to the terms of the License Agreement when you click the
- "Agree" button.
- - Software License Agreement
- - This text cannot be saved. The disk may be full or locked, or the file
- may be locked.
- - Unable to print. Make sure you have selected a printer.
-
- For every language in this list, CPack will try to find files
- ``<language>.menu.txt`` and ``<language>.license.txt`` in the directory
- specified by the :variable:`CPACK_DMG_SLA_DIR` variable.
-
-.. variable:: CPACK_COMMAND_HDIUTIL
-
- Path to the ``hdiutil(1)`` command used to operate on disk image files on
- macOS. This variable can be used to override the automatically detected
- command (or specify its location if the auto-detection fails to find it).
-
-.. variable:: CPACK_COMMAND_SETFILE
-
- Path to the ``SetFile(1)`` command used to set extended attributes on files and
- directories on macOS. This variable can be used to override the
- automatically detected command (or specify its location if the
- auto-detection fails to find it).
-
-.. variable:: CPACK_COMMAND_REZ
-
- Path to the ``Rez(1)`` command used to compile resources on macOS. This
- variable can be used to override the automatically detected command (or
- specify its location if the auto-detection fails to find it).
diff --git a/share/cmake-3.16/Help/cpack_gen/ifw.rst b/share/cmake-3.16/Help/cpack_gen/ifw.rst
deleted file mode 100644
index feccd3d..0000000
--- a/share/cmake-3.16/Help/cpack_gen/ifw.rst
+++ /dev/null
@@ -1,339 +0,0 @@
-CPack IFW Generator
--------------------
-
-See :module:`CPackIFW` for details on the CPackIFW module.
-
-.. _QtIFW: http://doc.qt.io/qtinstallerframework/index.html
-
-
-Overview
-^^^^^^^^
-
-CPack ``IFW`` generator helps you to create online and offline
-binary cross-platform installers with a graphical user interface.
-
-CPack IFW generator prepares project installation and generates configuration
-and meta information for QtIFW_ tools.
-
-The QtIFW_ provides a set of tools and utilities to create
-installers for the supported desktop Qt platforms: Linux, Microsoft Windows,
-and macOS.
-
-You should also install QtIFW_ to use CPack ``IFW`` generator.
-
-Hints
-^^^^^
-
-Generally, the CPack ``IFW`` generator automatically finds QtIFW_ tools,
-but if you don't use a default path for installation of the QtIFW_ tools,
-the path may be specified in either a CMake or an environment variable:
-
-.. variable:: CPACK_IFW_ROOT
-
- An CMake variable which specifies the location of the QtIFW_ tool suite.
-
- The variable will be cached in the ``CPackConfig.cmake`` file and used at
- CPack runtime.
-
-.. variable:: QTIFWDIR
-
- An environment variable which specifies the location of the QtIFW_ tool
- suite.
-
-.. note::
- The specified path should not contain "bin" at the end
- (for example: "D:\\DevTools\\QtIFW2.0.5").
-
-The :variable:`CPACK_IFW_ROOT` variable has a higher priority and overrides
-the value of the :variable:`QTIFWDIR` variable.
-
-Internationalization
-^^^^^^^^^^^^^^^^^^^^
-
-Some variables and command arguments support internationalization via
-CMake script. This is an optional feature.
-
-Installers created by QtIFW_ tools have built-in support for
-internationalization and many phrases are localized to many languages,
-but this does not apply to the description of the your components and groups
-that will be distributed.
-
-Localization of the description of your components and groups is useful for
-users of your installers.
-
-A localized variable or argument can contain a single default value, and a
-set of pairs the name of the locale and the localized value.
-
-For example:
-
-.. code-block:: cmake
-
- set(LOCALIZABLE_VARIABLE "Default value"
- en "English value"
- en_US "American value"
- en_GB "Great Britain value"
- )
-
-Variables
-^^^^^^^^^
-
-You can use the following variables to change behavior of CPack ``IFW``
-generator.
-
-Debug
-"""""
-
-.. variable:: CPACK_IFW_VERBOSE
-
- Set to ``ON`` to enable addition debug output.
- By default is ``OFF``.
-
-Package
-"""""""
-
-.. variable:: CPACK_IFW_PACKAGE_TITLE
-
- Name of the installer as displayed on the title bar.
- By default used :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY`.
-
-.. variable:: CPACK_IFW_PACKAGE_PUBLISHER
-
- Publisher of the software (as shown in the Windows Control Panel).
- By default used :variable:`CPACK_PACKAGE_VENDOR`.
-
-.. variable:: CPACK_IFW_PRODUCT_URL
-
- URL to a page that contains product information on your web site.
-
-.. variable:: CPACK_IFW_PACKAGE_ICON
-
- Filename for a custom installer icon. The actual file is '.icns' (macOS),
- '.ico' (Windows). No functionality on Unix.
-
-.. variable:: CPACK_IFW_PACKAGE_WINDOW_ICON
-
- Filename for a custom window icon in PNG format for the Installer
- application.
-
-.. variable:: CPACK_IFW_PACKAGE_LOGO
-
- Filename for a logo is used as QWizard::LogoPixmap.
-
-.. variable:: CPACK_IFW_PACKAGE_WATERMARK
-
- Filename for a watermark is used as QWizard::WatermarkPixmap.
-
-.. variable:: CPACK_IFW_PACKAGE_BANNER
-
- Filename for a banner is used as QWizard::BannerPixmap.
-
-.. variable:: CPACK_IFW_PACKAGE_BACKGROUND
-
- Filename for an image used as QWizard::BackgroundPixmap (only used by MacStyle).
-
-.. variable:: CPACK_IFW_PACKAGE_WIZARD_STYLE
-
- Wizard style to be used ("Modern", "Mac", "Aero" or "Classic").
-
-.. variable:: CPACK_IFW_PACKAGE_STYLE_SHEET
-
- Filename for a stylesheet.
-
-.. variable:: CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH
-
- Default width of the wizard in pixels. Setting a banner image will override this.
-
-.. variable:: CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT
-
- Default height of the wizard in pixels. Setting a watermark image will override this.
-
-.. variable:: CPACK_IFW_PACKAGE_TITLE_COLOR
-
- Color of the titles and subtitles (takes an HTML color code, such as "#88FF33").
-
-.. variable:: CPACK_IFW_PACKAGE_START_MENU_DIRECTORY
-
- Name of the default program group for the product in the Windows Start menu.
-
- By default used :variable:`CPACK_IFW_PACKAGE_NAME`.
-
-.. variable:: CPACK_IFW_TARGET_DIRECTORY
-
- Default target directory for installation.
- By default used
- "@ApplicationsDir@/:variable:`CPACK_PACKAGE_INSTALL_DIRECTORY`"
-
- You can use predefined variables.
-
-.. variable:: CPACK_IFW_ADMIN_TARGET_DIRECTORY
-
- Default target directory for installation with administrator rights.
-
- You can use predefined variables.
-
-.. variable:: CPACK_IFW_PACKAGE_GROUP
-
- The group, which will be used to configure the root package
-
-.. variable:: CPACK_IFW_PACKAGE_NAME
-
- The root package name, which will be used if configuration group is not
- specified
-
-.. variable:: CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME
-
- Filename of the generated maintenance tool.
- The platform-specific executable file extension is appended.
-
- By default used QtIFW_ defaults (``maintenancetool``).
-
-.. variable:: CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR
-
- Set to ``OFF`` if the target directory should not be deleted when uninstalling.
-
- Is ``ON`` by default
-
-.. variable:: CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE
-
- Filename for the configuration of the generated maintenance tool.
-
- By default used QtIFW_ defaults (``maintenancetool.ini``).
-
-.. variable:: CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS
-
- Set to ``ON`` if the installation path can contain non-ASCII characters.
-
- Is ``ON`` for QtIFW_ less 2.0 tools.
-
-.. variable:: CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH
-
- Set to ``OFF`` if the installation path cannot contain space characters.
-
- Is ``ON`` for QtIFW_ less 2.0 tools.
-
-.. variable:: CPACK_IFW_PACKAGE_CONTROL_SCRIPT
-
- Filename for a custom installer control script.
-
-.. variable:: CPACK_IFW_PACKAGE_RESOURCES
-
- List of additional resources ('.qrc' files) to include in the installer
- binary.
-
- You can use :command:`cpack_ifw_add_package_resources` command to resolve
- relative paths.
-
-.. variable:: CPACK_IFW_PACKAGE_FILE_EXTENSION
-
- The target binary extension.
-
- On Linux, the name of the target binary is automatically extended with
- '.run', if you do not specify the extension.
-
- On Windows, the target is created as an application with the extension
- '.exe', which is automatically added, if not supplied.
-
- On Mac, the target is created as an DMG disk image with the extension
- '.dmg', which is automatically added, if not supplied.
-
-.. variable:: CPACK_IFW_REPOSITORIES_ALL
-
- The list of remote repositories.
-
- The default value of this variable is computed by CPack and contains
- all repositories added with command :command:`cpack_ifw_add_repository`
- or updated with command :command:`cpack_ifw_update_repository`.
-
-.. variable:: CPACK_IFW_DOWNLOAD_ALL
-
- If this is ``ON`` all components will be downloaded.
- By default is ``OFF`` or used value
- from ``CPACK_DOWNLOAD_ALL`` if set
-
-Components
-""""""""""
-
-.. variable:: CPACK_IFW_RESOLVE_DUPLICATE_NAMES
-
- Resolve duplicate names when installing components with groups.
-
-.. variable:: CPACK_IFW_PACKAGES_DIRECTORIES
-
- Additional prepared packages dirs that will be used to resolve
- dependent components.
-
-.. variable:: CPACK_IFW_REPOSITORIES_DIRECTORIES
-
- Additional prepared repository dirs that will be used to resolve and
- repack dependent components. This feature available only
- since QtIFW_ 3.1.
-
-Tools
-"""""
-
-.. variable:: CPACK_IFW_FRAMEWORK_VERSION
-
- The version of used QtIFW_ tools.
-
-.. variable:: CPACK_IFW_BINARYCREATOR_EXECUTABLE
-
- The path to "binarycreator" command line client.
-
- This variable is cached and may be configured if needed.
-
-.. variable:: CPACK_IFW_REPOGEN_EXECUTABLE
-
- The path to "repogen" command line client.
-
- This variable is cached and may be configured if needed.
-
-.. variable:: CPACK_IFW_INSTALLERBASE_EXECUTABLE
-
- The path to "installerbase" installer executable base.
-
- This variable is cached and may be configured if needed.
-
-.. variable:: CPACK_IFW_DEVTOOL_EXECUTABLE
-
- The path to "devtool" command line client.
-
- This variable is cached and may be configured if needed.
-
-
-Online installer
-^^^^^^^^^^^^^^^^
-
-By default CPack IFW generator makes offline installer. This means that all
-components will be packaged into a binary file.
-
-To make a component downloaded, you must set the ``DOWNLOADED`` option in
-:command:`cpack_add_component`.
-
-Then you would use the command :command:`cpack_configure_downloads`.
-If you set ``ALL`` option all components will be downloaded.
-
-You also can use command :command:`cpack_ifw_add_repository` and
-variable :variable:`CPACK_IFW_DOWNLOAD_ALL` for more specific configuration.
-
-CPack IFW generator creates "repository" dir in current binary dir. You
-would copy content of this dir to specified ``site`` (``url``).
-
-See Also
-^^^^^^^^
-
-Qt Installer Framework Manual:
-
-* Index page:
- http://doc.qt.io/qtinstallerframework/index.html
-
-* Component Scripting:
- http://doc.qt.io/qtinstallerframework/scripting.html
-
-* Predefined Variables:
- http://doc.qt.io/qtinstallerframework/scripting.html#predefined-variables
-
-* Promoting Updates:
- http://doc.qt.io/qtinstallerframework/ifw-updates.html
-
-Download Qt Installer Framework for you platform from Qt site:
- http://download.qt.io/official_releases/qt-installer-framework
diff --git a/share/cmake-3.16/Help/cpack_gen/nsis.rst b/share/cmake-3.16/Help/cpack_gen/nsis.rst
deleted file mode 100644
index cd2aea6..0000000
--- a/share/cmake-3.16/Help/cpack_gen/nsis.rst
+++ /dev/null
@@ -1,130 +0,0 @@
-CPack NSIS Generator
---------------------
-
-CPack Nullsoft Scriptable Install System (NSIS) generator specific options
-
-Variables specific to CPack NSIS generator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The following variables are specific to the graphical installers built
-on Windows Nullsoft Scriptable Install System.
-
-.. variable:: CPACK_NSIS_INSTALL_ROOT
-
- The default installation directory presented to the end user by the NSIS
- installer is under this root dir. The full directory presented to the end
- user is: ``${CPACK_NSIS_INSTALL_ROOT}/${CPACK_PACKAGE_INSTALL_DIRECTORY}``
-
-.. variable:: CPACK_NSIS_MUI_ICON
-
- An icon filename. The name of a ``*.ico`` file used as the main icon for the
- generated install program.
-
-.. variable:: CPACK_NSIS_MUI_UNIICON
-
- An icon filename. The name of a ``*.ico`` file used as the main icon for the
- generated uninstall program.
-
-.. variable:: CPACK_NSIS_INSTALLER_MUI_ICON_CODE
-
- undocumented.
-
-.. variable:: CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP
-
- The filename of a bitmap to use as the NSIS ``MUI_WELCOMEFINISHPAGE_BITMAP``.
-
-.. variable:: CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP
-
- The filename of a bitmap to use as the NSIS ``MUI_UNWELCOMEFINISHPAGE_BITMAP``.
-
-.. variable:: CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS
-
- Extra NSIS commands that will be added to the beginning of the install
- Section, before your install tree is available on the target system.
-
-.. variable:: CPACK_NSIS_EXTRA_INSTALL_COMMANDS
-
- Extra NSIS commands that will be added to the end of the install Section,
- after your install tree is available on the target system.
-
-.. variable:: CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS
-
- Extra NSIS commands that will be added to the uninstall Section, before
- your install tree is removed from the target system.
-
-.. variable:: CPACK_NSIS_COMPRESSOR
-
- The arguments that will be passed to the NSIS `SetCompressor` command.
-
-.. variable:: CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL
-
- Ask about uninstalling previous versions first. If this is set to ``ON``,
- then an installer will look for previous installed versions and if one is
- found, ask the user whether to uninstall it before proceeding with the
- install.
-
-.. variable:: CPACK_NSIS_MODIFY_PATH
-
- Modify ``PATH`` toggle. If this is set to ``ON``, then an extra page will appear
- in the installer that will allow the user to choose whether the program
- directory should be added to the system ``PATH`` variable.
-
-.. variable:: CPACK_NSIS_DISPLAY_NAME
-
- The display name string that appears in the Windows `Apps & features`
- in `Control Panel`
-
-.. variable:: CPACK_NSIS_PACKAGE_NAME
-
- The title displayed at the top of the installer.
-
-.. variable:: CPACK_NSIS_INSTALLED_ICON_NAME
-
- A path to the executable that contains the installer icon.
-
-.. variable:: CPACK_NSIS_HELP_LINK
-
- URL to a web site providing assistance in installing your application.
-
-.. variable:: CPACK_NSIS_URL_INFO_ABOUT
-
- URL to a web site providing more information about your application.
-
-.. variable:: CPACK_NSIS_CONTACT
-
- Contact information for questions and comments about the installation
- process.
-
-.. variable:: CPACK_NSIS_<compName>_INSTALL_DIRECTORY
-
- Custom install directory for the specified component ``<compName>`` instead
- of ``$INSTDIR``.
-
-.. variable:: CPACK_NSIS_CREATE_ICONS_EXTRA
-
- Additional NSIS commands for creating `Start Menu` shortcuts.
-
-.. variable:: CPACK_NSIS_DELETE_ICONS_EXTRA
-
- Additional NSIS commands to uninstall `Start Menu` shortcuts.
-
-.. variable:: CPACK_NSIS_EXECUTABLES_DIRECTORY
-
- Creating NSIS `Start Menu` links assumes that they are in ``bin`` unless this
- variable is set. For example, you would set this to ``exec`` if your
- executables are in an exec directory.
-
-.. variable:: CPACK_NSIS_MUI_FINISHPAGE_RUN
-
- Specify an executable to add an option to run on the finish page of the
- NSIS installer.
-
-.. variable:: CPACK_NSIS_MENU_LINKS
-
- Specify links in ``[application]`` menu. This should contain a list of pair
- ``link`` ``link name``. The link may be a URL or a path relative to
- installation prefix. Like::
-
- set(CPACK_NSIS_MENU_LINKS
- "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake.html"
- "CMake Help" "https://cmake.org" "CMake Web Site")
diff --git a/share/cmake-3.16/Help/cpack_gen/packagemaker.rst b/share/cmake-3.16/Help/cpack_gen/packagemaker.rst
deleted file mode 100644
index e9464b7..0000000
--- a/share/cmake-3.16/Help/cpack_gen/packagemaker.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-CPack PackageMaker Generator
-----------------------------
-
-PackageMaker CPack generator (macOS).
-
-Variables specific to CPack PackageMaker generator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The following variable is specific to installers built on Mac
-macOS using PackageMaker:
-
-.. variable:: CPACK_OSX_PACKAGE_VERSION
-
- The version of macOS that the resulting PackageMaker archive should be
- compatible with. Different versions of macOS support different
- features. For example, CPack can only build component-based installers for
- macOS 10.4 or newer, and can only build installers that download
- component son-the-fly for macOS 10.5 or newer. If left blank, this value
- will be set to the minimum version of macOS that supports the requested
- features. Set this variable to some value (e.g., 10.4) only if you want to
- guarantee that your installer will work on that version of macOS, and
- don't mind missing extra features available in the installer shipping with
- later versions of macOS.
diff --git a/share/cmake-3.16/Help/cpack_gen/productbuild.rst b/share/cmake-3.16/Help/cpack_gen/productbuild.rst
deleted file mode 100644
index d22fcd4..0000000
--- a/share/cmake-3.16/Help/cpack_gen/productbuild.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-CPack productbuild Generator
-----------------------------
-
-productbuild CPack generator (macOS).
-
-Variables specific to CPack productbuild generator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The following variable is specific to installers built on Mac
-macOS using ProductBuild:
-
-.. variable:: CPACK_COMMAND_PRODUCTBUILD
-
- Path to the ``productbuild(1)`` command used to generate a product archive for
- the macOS Installer or Mac App Store. This variable can be used to override
- the automatically detected command (or specify its location if the
- auto-detection fails to find it).
-
-.. variable:: CPACK_PRODUCTBUILD_IDENTITY_NAME
-
- Adds a digital signature to the resulting package.
-
-
-.. variable:: CPACK_PRODUCTBUILD_KEYCHAIN_PATH
-
- Specify a specific keychain to search for the signing identity.
-
-
-.. variable:: CPACK_COMMAND_PKGBUILD
-
- Path to the ``pkgbuild(1)`` command used to generate an macOS component package
- on macOS. This variable can be used to override the automatically detected
- command (or specify its location if the auto-detection fails to find it).
-
-
-.. variable:: CPACK_PKGBUILD_IDENTITY_NAME
-
- Adds a digital signature to the resulting package.
-
-
-.. variable:: CPACK_PKGBUILD_KEYCHAIN_PATH
-
- Specify a specific keychain to search for the signing identity.
-
-
-.. variable:: CPACK_PREFLIGHT_<COMP>_SCRIPT
-
- Full path to a file that will be used as the ``preinstall`` script for the
- named ``<COMP>`` component's package, where ``<COMP>`` is the uppercased
- component name. No ``preinstall`` script is added if this variable is not
- defined for a given component.
-
-
-.. variable:: CPACK_POSTFLIGHT_<COMP>_SCRIPT
-
- Full path to a file that will be used as the ``postinstall`` script for the
- named ``<COMP>`` component's package, where ``<COMP>`` is the uppercased
- component name. No ``postinstall`` script is added if this variable is not
- defined for a given component.
-
-
-.. variable:: CPACK_PRODUCTBUILD_RESOURCES_DIR
-
- If specified the productbuild generator copies files from this directory
- (including subdirectories) to the ``Resources`` directory. This is done
- before the :variable:`CPACK_RESOURCE_FILE_WELCOME`,
- :variable:`CPACK_RESOURCE_FILE_README`, and
- :variable:`CPACK_RESOURCE_FILE_LICENSE` files are copied.
diff --git a/share/cmake-3.16/Help/generator/Ninja.rst b/share/cmake-3.16/Help/generator/Ninja.rst
deleted file mode 100644
index c75d2c4..0000000
--- a/share/cmake-3.16/Help/generator/Ninja.rst
+++ /dev/null
@@ -1,40 +0,0 @@
-Ninja
------
-
-Generates build.ninja files.
-
-A ``build.ninja`` file is generated into the build tree. Use the ninja
-program to build the project through the ``all`` target and install the
-project through the ``install`` (or ``install/strip``) target.
-
-For each subdirectory ``sub/dir`` of the project, additional targets
-are generated:
-
-``sub/dir/all``
- Depends on all targets required by the subdirectory.
-
-``sub/dir/install``
- Runs the install step in the subdirectory, if any.
-
-``sub/dir/install/strip``
- Runs the install step in the subdirectory followed by a ``CMAKE_STRIP`` command,
- if any.
-
- The ``CMAKE_STRIP`` variable will contain the platform's ``strip`` utility, which
- removes symbols information from generated binaries.
-
-``sub/dir/test``
- Runs the test step in the subdirectory, if any.
-
-``sub/dir/package``
- Runs the package step in the subdirectory, if any.
-
-Fortran Support
-^^^^^^^^^^^^^^^
-
-The ``Ninja`` generator conditionally supports Fortran when the ``ninja``
-tool has the required features. As of this version of CMake the needed
-features have not been integrated into upstream Ninja. Kitware maintains
-a branch of Ninja with the required features on `github.com/Kitware/ninja`_.
-
-.. _`github.com/Kitware/ninja`: https://github.com/Kitware/ninja/tree/features-for-fortran#readme
diff --git a/share/cmake-3.16/Help/index.rst b/share/cmake-3.16/Help/index.rst
deleted file mode 100644
index cc6cee6..0000000
--- a/share/cmake-3.16/Help/index.rst
+++ /dev/null
@@ -1,73 +0,0 @@
-.. title:: CMake Reference Documentation
-
-Command-Line Tools
-##################
-
-.. toctree::
- :maxdepth: 1
-
- /manual/cmake.1
- /manual/ctest.1
- /manual/cpack.1
-
-Interactive Dialogs
-###################
-
-.. toctree::
- :maxdepth: 1
-
- /manual/cmake-gui.1
- /manual/ccmake.1
-
-Reference Manuals
-#################
-
-.. toctree::
- :maxdepth: 1
-
- /manual/cmake-buildsystem.7
- /manual/cmake-commands.7
- /manual/cmake-compile-features.7
- /manual/cmake-developer.7
- /manual/cmake-env-variables.7
- /manual/cmake-file-api.7
- /manual/cmake-generator-expressions.7
- /manual/cmake-generators.7
- /manual/cmake-language.7
- /manual/cmake-modules.7
- /manual/cmake-packages.7
- /manual/cmake-policies.7
- /manual/cmake-properties.7
- /manual/cmake-qt.7
- /manual/cmake-server.7
- /manual/cmake-toolchains.7
- /manual/cmake-variables.7
- /manual/cpack-generators.7
-
-.. only:: not man
-
- Guides
- ######
-
- .. toctree::
- :maxdepth: 1
-
- /guide/tutorial/index
-
-.. only:: html or text
-
- Release Notes
- #############
-
- .. toctree::
- :maxdepth: 1
-
- /release/index
-
-.. only:: html
-
- Index and Search
- ################
-
- * :ref:`genindex`
- * :ref:`search`
diff --git a/share/cmake-3.16/Help/manual/cmake-compile-features.7.rst b/share/cmake-3.16/Help/manual/cmake-compile-features.7.rst
deleted file mode 100644
index a14e322..0000000
--- a/share/cmake-3.16/Help/manual/cmake-compile-features.7.rst
+++ /dev/null
@@ -1,375 +0,0 @@
-.. cmake-manual-description: CMake Compile Features Reference
-
-cmake-compile-features(7)
-*************************
-
-.. only:: html
-
- .. contents::
-
-Introduction
-============
-
-Project source code may depend on, or be conditional on, the availability
-of certain features of the compiler. There are three use-cases which arise:
-`Compile Feature Requirements`_, `Optional Compile Features`_
-and `Conditional Compilation Options`_.
-
-While features are typically specified in programming language standards,
-CMake provides a primary user interface based on granular handling of
-the features, not the language standard that introduced the feature.
-
-The :prop_gbl:`CMAKE_C_KNOWN_FEATURES` and
-:prop_gbl:`CMAKE_CXX_KNOWN_FEATURES` global properties contain all the
-features known to CMake, regardless of compiler support for the feature.
-The :variable:`CMAKE_C_COMPILE_FEATURES` and
-:variable:`CMAKE_CXX_COMPILE_FEATURES` variables contain all features
-CMake knows are known to the compiler, regardless of language standard
-or compile flags needed to use them.
-
-Features known to CMake are named mostly following the same convention
-as the Clang feature test macros. There are some exceptions, such as
-CMake using ``cxx_final`` and ``cxx_override`` instead of the single
-``cxx_override_control`` used by Clang.
-
-Note that there are no separate compile features properties or variables for
-the ``OBJC`` or ``OBJCXX`` languages. These are based off ``C`` or ``C++``
-respectively, so the properties and variables for their corresponding base
-language should be used instead.
-
-Compile Feature Requirements
-============================
-
-Compile feature requirements may be specified with the
-:command:`target_compile_features` command. For example, if a target must
-be compiled with compiler support for the
-:prop_gbl:`cxx_constexpr <CMAKE_CXX_KNOWN_FEATURES>` feature:
-
-.. code-block:: cmake
-
- add_library(mylib requires_constexpr.cpp)
- target_compile_features(mylib PRIVATE cxx_constexpr)
-
-In processing the requirement for the ``cxx_constexpr`` feature,
-:manual:`cmake(1)` will ensure that the in-use C++ compiler is capable
-of the feature, and will add any necessary flags such as ``-std=gnu++11``
-to the compile lines of C++ files in the ``mylib`` target. A
-``FATAL_ERROR`` is issued if the compiler is not capable of the
-feature.
-
-The exact compile flags and language standard are deliberately not part
-of the user interface for this use-case. CMake will compute the
-appropriate compile flags to use by considering the features specified
-for each target.
-
-Such compile flags are added even if the compiler supports the
-particular feature without the flag. For example, the GNU compiler
-supports variadic templates (with a warning) even if ``-std=gnu++98`` is
-used. CMake adds the ``-std=gnu++11`` flag if ``cxx_variadic_templates``
-is specified as a requirement.
-
-In the above example, ``mylib`` requires ``cxx_constexpr`` when it
-is built itself, but consumers of ``mylib`` are not required to use a
-compiler which supports ``cxx_constexpr``. If the interface of
-``mylib`` does require the ``cxx_constexpr`` feature (or any other
-known feature), that may be specified with the ``PUBLIC`` or
-``INTERFACE`` signatures of :command:`target_compile_features`:
-
-.. code-block:: cmake
-
- add_library(mylib requires_constexpr.cpp)
- # cxx_constexpr is a usage-requirement
- target_compile_features(mylib PUBLIC cxx_constexpr)
-
- # main.cpp will be compiled with -std=gnu++11 on GNU for cxx_constexpr.
- add_executable(myexe main.cpp)
- target_link_libraries(myexe mylib)
-
-Feature requirements are evaluated transitively by consuming the link
-implementation. See :manual:`cmake-buildsystem(7)` for more on
-transitive behavior of build properties and usage requirements.
-
-Requiring Language Standards
-----------------------------
-
-In projects that use a large number of commonly available features from
-a particular language standard (e.g. C++ 11) one may specify a
-meta-feature (e.g. ``cxx_std_11``) that requires use of a compiler mode
-that is at minimum aware of that standard, but could be greater.
-This is simpler than specifying all the features individually, but does
-not guarantee the existence of any particular feature.
-Diagnosis of use of unsupported features will be delayed until compile time.
-
-For example, if C++ 11 features are used extensively in a project's
-header files, then clients must use a compiler mode that is no less
-than C++ 11. This can be requested with the code:
-
-.. code-block:: cmake
-
- target_compile_features(mylib PUBLIC cxx_std_11)
-
-In this example, CMake will ensure the compiler is invoked in a mode
-of at-least C++ 11 (or C++ 14, C++ 17, ...), adding flags such as
-``-std=gnu++11`` if necessary. This applies to sources within ``mylib``
-as well as any dependents (that may include headers from ``mylib``).
-
-Availability of Compiler Extensions
------------------------------------
-
-Because the :prop_tgt:`CXX_EXTENSIONS` target property is ``ON`` by default,
-CMake uses extended variants of language dialects by default, such as
-``-std=gnu++11`` instead of ``-std=c++11``. That target property may be
-set to ``OFF`` to use the non-extended variant of the dialect flag. Note
-that because most compilers enable extensions by default, this could
-expose cross-platform bugs in user code or in the headers of third-party
-dependencies.
-
-Optional Compile Features
-=========================
-
-Compile features may be preferred if available, without creating a hard
-requirement. For example, a library may provides alternative
-implementations depending on whether the ``cxx_variadic_templates``
-feature is available:
-
-.. code-block:: c++
-
- #if Foo_COMPILER_CXX_VARIADIC_TEMPLATES
- template<int I, int... Is>
- struct Interface;
-
- template<int I>
- struct Interface<I>
- {
- static int accumulate()
- {
- return I;
- }
- };
-
- template<int I, int... Is>
- struct Interface
- {
- static int accumulate()
- {
- return I + Interface<Is...>::accumulate();
- }
- };
- #else
- template<int I1, int I2 = 0, int I3 = 0, int I4 = 0>
- struct Interface
- {
- static int accumulate() { return I1 + I2 + I3 + I4; }
- };
- #endif
-
-Such an interface depends on using the correct preprocessor defines for the
-compiler features. CMake can generate a header file containing such
-defines using the :module:`WriteCompilerDetectionHeader` module. The
-module contains the ``write_compiler_detection_header`` function which
-accepts parameters to control the content of the generated header file:
-
-.. code-block:: cmake
-
- write_compiler_detection_header(
- FILE "${CMAKE_CURRENT_BINARY_DIR}/foo_compiler_detection.h"
- PREFIX Foo
- COMPILERS GNU
- FEATURES
- cxx_variadic_templates
- )
-
-Such a header file may be used internally in the source code of a project,
-and it may be installed and used in the interface of library code.
-
-For each feature listed in ``FEATURES``, a preprocessor definition
-is created in the header file, and defined to either ``1`` or ``0``.
-
-Additionally, some features call for additional defines, such as the
-``cxx_final`` and ``cxx_override`` features. Rather than being used in
-``#ifdef`` code, the ``final`` keyword is abstracted by a symbol
-which is defined to either ``final``, a compiler-specific equivalent, or
-to empty. That way, C++ code can be written to unconditionally use the
-symbol, and compiler support determines what it is expanded to:
-
-.. code-block:: c++
-
- struct Interface {
- virtual void Execute() = 0;
- };
-
- struct Concrete Foo_FINAL {
- void Execute() Foo_OVERRIDE;
- };
-
-In this case, ``Foo_FINAL`` will expand to ``final`` if the
-compiler supports the keyword, or to empty otherwise.
-
-In this use-case, the CMake code will wish to enable a particular language
-standard if available from the compiler. The :prop_tgt:`CXX_STANDARD`
-target property variable may be set to the desired language standard
-for a particular target, and the :variable:`CMAKE_CXX_STANDARD` may be
-set to influence all following targets:
-
-.. code-block:: cmake
-
- write_compiler_detection_header(
- FILE "${CMAKE_CURRENT_BINARY_DIR}/foo_compiler_detection.h"
- PREFIX Foo
- COMPILERS GNU
- FEATURES
- cxx_final cxx_override
- )
-
- # Includes foo_compiler_detection.h and uses the Foo_FINAL symbol
- # which will expand to 'final' if the compiler supports the requested
- # CXX_STANDARD.
- add_library(foo foo.cpp)
- set_property(TARGET foo PROPERTY CXX_STANDARD 11)
-
- # Includes foo_compiler_detection.h and uses the Foo_FINAL symbol
- # which will expand to 'final' if the compiler supports the feature,
- # even though CXX_STANDARD is not set explicitly. The requirement of
- # cxx_constexpr causes CMake to set CXX_STANDARD internally, which
- # affects the compile flags.
- add_library(foo_impl foo_impl.cpp)
- target_compile_features(foo_impl PRIVATE cxx_constexpr)
-
-The ``write_compiler_detection_header`` function also creates compatibility
-code for other features which have standard equivalents. For example, the
-``cxx_static_assert`` feature is emulated with a template and abstracted
-via the ``<PREFIX>_STATIC_ASSERT`` and ``<PREFIX>_STATIC_ASSERT_MSG``
-function-macros.
-
-Conditional Compilation Options
-===============================
-
-Libraries may provide entirely different header files depending on
-requested compiler features.
-
-For example, a header at ``with_variadics/interface.h`` may contain:
-
-.. code-block:: c++
-
- template<int I, int... Is>
- struct Interface;
-
- template<int I>
- struct Interface<I>
- {
- static int accumulate()
- {
- return I;
- }
- };
-
- template<int I, int... Is>
- struct Interface
- {
- static int accumulate()
- {
- return I + Interface<Is...>::accumulate();
- }
- };
-
-while a header at ``no_variadics/interface.h`` may contain:
-
-.. code-block:: c++
-
- template<int I1, int I2 = 0, int I3 = 0, int I4 = 0>
- struct Interface
- {
- static int accumulate() { return I1 + I2 + I3 + I4; }
- };
-
-It would be possible to write a abstraction ``interface.h`` header
-containing something like:
-
-.. code-block:: c++
-
- #include "foo_compiler_detection.h"
- #if Foo_COMPILER_CXX_VARIADIC_TEMPLATES
- #include "with_variadics/interface.h"
- #else
- #include "no_variadics/interface.h"
- #endif
-
-However this could be unmaintainable if there are many files to
-abstract. What is needed is to use alternative include directories
-depending on the compiler capabilities.
-
-CMake provides a ``COMPILE_FEATURES``
-:manual:`generator expression <cmake-generator-expressions(7)>` to implement
-such conditions. This may be used with the build-property commands such as
-:command:`target_include_directories` and :command:`target_link_libraries`
-to set the appropriate :manual:`buildsystem <cmake-buildsystem(7)>`
-properties:
-
-.. code-block:: cmake
-
- add_library(foo INTERFACE)
- set(with_variadics ${CMAKE_CURRENT_SOURCE_DIR}/with_variadics)
- set(no_variadics ${CMAKE_CURRENT_SOURCE_DIR}/no_variadics)
- target_include_directories(foo
- INTERFACE
- "$<$<COMPILE_FEATURES:cxx_variadic_templates>:${with_variadics}>"
- "$<$<NOT:$<COMPILE_FEATURES:cxx_variadic_templates>>:${no_variadics}>"
- )
-
-Consuming code then simply links to the ``foo`` target as usual and uses
-the feature-appropriate include directory
-
-.. code-block:: cmake
-
- add_executable(consumer_with consumer_with.cpp)
- target_link_libraries(consumer_with foo)
- set_property(TARGET consumer_with CXX_STANDARD 11)
-
- add_executable(consumer_no consumer_no.cpp)
- target_link_libraries(consumer_no foo)
-
-Supported Compilers
-===================
-
-CMake is currently aware of the :prop_tgt:`C++ standards <CXX_STANDARD>`
-and :prop_gbl:`compile features <CMAKE_CXX_KNOWN_FEATURES>` available from
-the following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the
-versions specified for each:
-
-* ``AppleClang``: Apple Clang for Xcode versions 4.4+.
-* ``Clang``: Clang compiler versions 2.9+.
-* ``GNU``: GNU compiler versions 4.4+.
-* ``MSVC``: Microsoft Visual Studio versions 2010+.
-* ``SunPro``: Oracle SolarisStudio versions 12.4+.
-* ``Intel``: Intel compiler versions 12.1+.
-
-CMake is currently aware of the :prop_tgt:`C standards <C_STANDARD>`
-and :prop_gbl:`compile features <CMAKE_C_KNOWN_FEATURES>` available from
-the following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the
-versions specified for each:
-
-* all compilers and versions listed above for C++.
-* ``GNU``: GNU compiler versions 3.4+
-
-CMake is currently aware of the :prop_tgt:`C++ standards <CXX_STANDARD>` and
-their associated meta-features (e.g. ``cxx_std_11``) available from the
-following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the
-versions specified for each:
-
-* ``Cray``: Cray Compiler Environment version 8.1+.
-* ``PGI``: PGI version 12.10+.
-* ``XL``: IBM XL version 10.1+.
-
-CMake is currently aware of the :prop_tgt:`C standards <C_STANDARD>` and
-their associated meta-features (e.g. ``c_std_99``) available from the
-following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the
-versions specified for each:
-
-* all compilers and versions listed above with only meta-features for C++.
-* ``TI``: Texas Instruments compiler.
-
-CMake is currently aware of the :prop_tgt:`CUDA standards <CUDA_STANDARD>`
-from the following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the
-versions specified for each:
-
-* ``NVIDIA``: NVIDIA nvcc compiler 7.5+.
diff --git a/share/cmake-3.16/Help/manual/cmake-env-variables.7.rst b/share/cmake-3.16/Help/manual/cmake-env-variables.7.rst
deleted file mode 100644
index 96ceb94..0000000
--- a/share/cmake-3.16/Help/manual/cmake-env-variables.7.rst
+++ /dev/null
@@ -1,73 +0,0 @@
-.. cmake-manual-description: CMake Environment Variables Reference
-
-cmake-env-variables(7)
-**********************
-
-.. only:: html
-
- .. contents::
-
-This page lists environment variables that have special
-meaning to CMake.
-
-For general information on environment variables, see the
-:ref:`Environment Variables <CMake Language Environment Variables>`
-section in the cmake-language manual.
-
-
-Environment Variables that Control the Build
-============================================
-
-.. toctree::
- :maxdepth: 1
-
- /envvar/CMAKE_BUILD_PARALLEL_LEVEL
- /envvar/CMAKE_CONFIG_TYPE
- /envvar/CMAKE_GENERATOR
- /envvar/CMAKE_GENERATOR_INSTANCE
- /envvar/CMAKE_GENERATOR_PLATFORM
- /envvar/CMAKE_GENERATOR_TOOLSET
- /envvar/CMAKE_MSVCIDE_RUN_PATH
- /envvar/CMAKE_NO_VERBOSE
- /envvar/CMAKE_OSX_ARCHITECTURES
- /envvar/DESTDIR
- /envvar/LDFLAGS
- /envvar/MACOSX_DEPLOYMENT_TARGET
- /envvar/PackageName_ROOT
- /envvar/VERBOSE
-
-Environment Variables for Languages
-===================================
-
-.. toctree::
- :maxdepth: 1
-
- /envvar/ASM_DIALECT
- /envvar/ASM_DIALECTFLAGS
- /envvar/CC
- /envvar/CFLAGS
- /envvar/CSFLAGS
- /envvar/CUDACXX
- /envvar/CUDAFLAGS
- /envvar/CUDAHOSTCXX
- /envvar/CXX
- /envvar/CXXFLAGS
- /envvar/FC
- /envvar/FFLAGS
- /envvar/RC
- /envvar/RCFLAGS
- /envvar/SWIFTC
-
-Environment Variables for CTest
-===============================
-
-.. toctree::
- :maxdepth: 1
-
- /envvar/CMAKE_CONFIG_TYPE
- /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/share/cmake-3.16/Help/manual/cmake-file-api.7.rst b/share/cmake-3.16/Help/manual/cmake-file-api.7.rst
deleted file mode 100644
index 04b6ed2..0000000
--- a/share/cmake-3.16/Help/manual/cmake-file-api.7.rst
+++ /dev/null
@@ -1,1113 +0,0 @@
-.. cmake-manual-description: CMake File-Based API
-
-cmake-file-api(7)
-*****************
-
-.. only:: html
-
- .. contents::
-
-Introduction
-============
-
-CMake provides a file-based API that clients may use to get semantic
-information about the buildsystems CMake generates. Clients may use
-the API by writing query files to a specific location in a build tree
-to request zero or more `Object Kinds`_. When CMake generates the
-buildsystem in that build tree it will read the query files and write
-reply files for the client to read.
-
-The file-based API uses a ``<build>/.cmake/api/`` directory at the top
-of a build tree. The API is versioned to support changes to the layout
-of files within the API directory. API file layout versioning is
-orthogonal to the versioning of `Object Kinds`_ used in replies.
-This version of CMake supports only one API version, `API v1`_.
-
-API v1
-======
-
-API v1 is housed in the ``<build>/.cmake/api/v1/`` directory.
-It has the following subdirectories:
-
-``query/``
- Holds query files written by clients.
- These may be `v1 Shared Stateless Query Files`_,
- `v1 Client Stateless Query Files`_, or `v1 Client Stateful Query Files`_.
-
-``reply/``
- Holds reply files written by CMake whenever it runs to generate a build
- system. These are indexed by a `v1 Reply Index File`_ file that may
- reference additional `v1 Reply Files`_. CMake owns all reply files.
- Clients must never remove them.
-
- Clients may look for and read a reply index file at any time.
- Clients may optionally create the ``reply/`` directory at any time
- and monitor it for the appearance of a new reply index file.
-
-v1 Shared Stateless Query Files
--------------------------------
-
-Shared stateless query files allow clients to share requests for
-major versions of the `Object Kinds`_ and get all requested versions
-recognized by the CMake that runs.
-
-Clients may create shared requests by creating empty files in the
-``v1/query/`` directory. The form is::
-
- <build>/.cmake/api/v1/query/<kind>-v<major>
-
-where ``<kind>`` is one of the `Object Kinds`_, ``-v`` is literal,
-and ``<major>`` is the major version number.
-
-Files of this form are stateless shared queries not owned by any specific
-client. Once created they should not be removed without external client
-coordination or human intervention.
-
-v1 Client Stateless Query Files
--------------------------------
-
-Client stateless query files allow clients to create owned requests for
-major versions of the `Object Kinds`_ and get all requested versions
-recognized by the CMake that runs.
-
-Clients may create owned requests by creating empty files in
-client-specific query subdirectories. The form is::
-
- <build>/.cmake/api/v1/query/client-<client>/<kind>-v<major>
-
-where ``client-`` is literal, ``<client>`` is a string uniquely
-identifying the client, ``<kind>`` is one of the `Object Kinds`_,
-``-v`` is literal, and ``<major>`` is the major version number.
-Each client must choose a unique ``<client>`` identifier via its
-own means.
-
-Files of this form are stateless queries owned by the client ``<client>``.
-The owning client may remove them at any time.
-
-v1 Client Stateful Query Files
-------------------------------
-
-Stateful query files allow clients to request a list of versions of
-each of the `Object Kinds`_ and get only the most recent version
-recognized by the CMake that runs.
-
-Clients may create owned stateful queries by creating ``query.json``
-files in client-specific query subdirectories. The form is::
-
- <build>/.cmake/api/v1/query/client-<client>/query.json
-
-where ``client-`` is literal, ``<client>`` is a string uniquely
-identifying the client, and ``query.json`` is literal. Each client
-must choose a unique ``<client>`` identifier via its own means.
-
-``query.json`` files are stateful queries owned by the client ``<client>``.
-The owning client may update or remove them at any time. When a
-given client installation is updated it may then update the stateful
-query it writes to build trees to request newer object versions.
-This can be used to avoid asking CMake to generate multiple object
-versions unnecessarily.
-
-A ``query.json`` file must contain a JSON object:
-
-.. code-block:: json
-
- {
- "requests": [
- { "kind": "<kind>" , "version": 1 },
- { "kind": "<kind>" , "version": { "major": 1, "minor": 2 } },
- { "kind": "<kind>" , "version": [2, 1] },
- { "kind": "<kind>" , "version": [2, { "major": 1, "minor": 2 }] },
- { "kind": "<kind>" , "version": 1, "client": {} },
- { "kind": "..." }
- ],
- "client": {}
- }
-
-The members are:
-
-``requests``
- A JSON array containing zero or more requests. Each request is
- a JSON object with members:
-
- ``kind``
- Specifies one of the `Object Kinds`_ to be included in the reply.
-
- ``version``
- Indicates the version(s) of the object kind that the client
- understands. Versions have major and minor components following
- semantic version conventions. The value must be
-
- * a JSON integer specifying a (non-negative) major version number, or
- * a JSON object containing ``major`` and (optionally) ``minor``
- members specifying non-negative integer version components, or
- * a JSON array whose elements are each one of the above.
-
- ``client``
- Optional member reserved for use by the client. This value is
- preserved in the reply written for the client in the
- `v1 Reply Index File`_ but is otherwise ignored. Clients may use
- this to pass custom information with a request through to its reply.
-
- For each requested object kind CMake will choose the *first* version
- that it recognizes for that kind among those listed in the request.
- The response will use the selected *major* version with the highest
- *minor* version known to the running CMake for that major version.
- Therefore clients should list all supported major versions in
- preferred order along with the minimal minor version required
- for each major version.
-
-``client``
- Optional member reserved for use by the client. This value is
- preserved in the reply written for the client in the
- `v1 Reply Index File`_ but is otherwise ignored. Clients may use
- this to pass custom information with a query through to its reply.
-
-Other ``query.json`` top-level members are reserved for future use.
-If present they are ignored for forward compatibility.
-
-v1 Reply Index File
--------------------
-
-CMake writes an ``index-*.json`` file to the ``v1/reply/`` directory
-whenever it runs to generate a build system. Clients must read the
-reply index file first and may read other `v1 Reply Files`_ only by
-following references. The form of the reply index file name is::
-
- <build>/.cmake/api/v1/reply/index-<unspecified>.json
-
-where ``index-`` is literal and ``<unspecified>`` is an unspecified
-name selected by CMake. Whenever a new index file is generated it
-is given a new name and any old one is deleted. During the short
-time between these steps there may be multiple index files present;
-the one with the largest name in lexicographic order is the current
-index file.
-
-The reply index file contains a JSON object:
-
-.. code-block:: json
-
- {
- "cmake": {
- "version": {
- "major": 3, "minor": 14, "patch": 0, "suffix": "",
- "string": "3.14.0", "isDirty": false
- },
- "paths": {
- "cmake": "/prefix/bin/cmake",
- "ctest": "/prefix/bin/ctest",
- "cpack": "/prefix/bin/cpack",
- "root": "/prefix/share/cmake-3.14"
- },
- "generator": {
- "name": "Unix Makefiles"
- }
- },
- "objects": [
- { "kind": "<kind>",
- "version": { "major": 1, "minor": 0 },
- "jsonFile": "<file>" },
- { "...": "..." }
- ],
- "reply": {
- "<kind>-v<major>": { "kind": "<kind>",
- "version": { "major": 1, "minor": 0 },
- "jsonFile": "<file>" },
- "<unknown>": { "error": "unknown query file" },
- "...": {},
- "client-<client>": {
- "<kind>-v<major>": { "kind": "<kind>",
- "version": { "major": 1, "minor": 0 },
- "jsonFile": "<file>" },
- "<unknown>": { "error": "unknown query file" },
- "...": {},
- "query.json": {
- "requests": [ {}, {}, {} ],
- "responses": [
- { "kind": "<kind>",
- "version": { "major": 1, "minor": 0 },
- "jsonFile": "<file>" },
- { "error": "unknown query file" },
- { "...": {} }
- ],
- "client": {}
- }
- }
- }
- }
-
-The members are:
-
-``cmake``
- A JSON object containing information about the instance of CMake that
- generated the reply. It contains members:
-
- ``version``
- A JSON object specifying the version of CMake with members:
-
- ``major``, ``minor``, ``patch``
- Integer values specifying the major, minor, and patch version components.
- ``suffix``
- A string specifying the version suffix, if any, e.g. ``g0abc3``.
- ``string``
- A string specifying the full version in the format
- ``<major>.<minor>.<patch>[-<suffix>]``.
- ``isDirty``
- A boolean indicating whether the version was built from a version
- controlled source tree with local modifications.
-
- ``paths``
- A JSON object specifying paths to things that come with CMake.
- It has members for ``cmake``, ``ctest``, and ``cpack`` whose values
- are JSON strings specifying the absolute path to each tool,
- represented with forward slashes. It also has a ``root`` member for
- the absolute path to the directory containing CMake resources like the
- ``Modules/`` directory (see :variable:`CMAKE_ROOT`).
-
- ``generator``
- A JSON object describing the CMake generator used for the build.
- It has members:
-
- ``name``
- A string specifying the name of the generator.
- ``platform``
- If the generator supports :variable:`CMAKE_GENERATOR_PLATFORM`,
- this is a string specifying the generator platform name.
-
-``objects``
- A JSON array listing all versions of all `Object Kinds`_ generated
- as part of the reply. Each array entry is a
- `v1 Reply File Reference`_.
-
-``reply``
- A JSON object mirroring the content of the ``query/`` directory
- that CMake loaded to produce the reply. The members are of the form
-
- ``<kind>-v<major>``
- A member of this form appears for each of the
- `v1 Shared Stateless Query Files`_ that CMake recognized as a
- request for object kind ``<kind>`` with major version ``<major>``.
- The value is a `v1 Reply File Reference`_ to the corresponding
- reply file for that object kind and version.
-
- ``<unknown>``
- A member of this form appears for each of the
- `v1 Shared Stateless Query Files`_ that CMake did not recognize.
- The value is a JSON object with a single ``error`` member
- containing a string with an error message indicating that the
- query file is unknown.
-
- ``client-<client>``
- A member of this form appears for each client-owned directory
- holding `v1 Client Stateless Query Files`_.
- The value is a JSON object mirroring the content of the
- ``query/client-<client>/`` directory. The members are of the form:
-
- ``<kind>-v<major>``
- A member of this form appears for each of the
- `v1 Client Stateless Query Files`_ that CMake recognized as a
- request for object kind ``<kind>`` with major version ``<major>``.
- The value is a `v1 Reply File Reference`_ to the corresponding
- reply file for that object kind and version.
-
- ``<unknown>``
- A member of this form appears for each of the
- `v1 Client Stateless Query Files`_ that CMake did not recognize.
- The value is a JSON object with a single ``error`` member
- containing a string with an error message indicating that the
- query file is unknown.
-
- ``query.json``
- This member appears for clients using
- `v1 Client Stateful Query Files`_.
- If the ``query.json`` file failed to read or parse as a JSON object,
- this member is a JSON object with a single ``error`` member
- containing a string with an error message. Otherwise, this member
- is a JSON object mirroring the content of the ``query.json`` file.
- The members are:
-
- ``client``
- A copy of the ``query.json`` file ``client`` member, if it exists.
-
- ``requests``
- A copy of the ``query.json`` file ``requests`` member, if it exists.
-
- ``responses``
- If the ``query.json`` file ``requests`` member is missing or invalid,
- this member is a JSON object with a single ``error`` member
- containing a string with an error message. Otherwise, this member
- contains a JSON array with a response for each entry of the
- ``requests`` array, in the same order. Each response is
-
- * a JSON object with a single ``error`` member containing a string
- with an error message, or
- * a `v1 Reply File Reference`_ to the corresponding reply file for
- the requested object kind and selected version.
-
-After reading the reply index file, clients may read the other
-`v1 Reply Files`_ it references.
-
-v1 Reply File Reference
-^^^^^^^^^^^^^^^^^^^^^^^
-
-The reply index file represents each reference to another reply file
-using a JSON object with members:
-
-``kind``
- A string specifying one of the `Object Kinds`_.
-``version``
- A JSON object with members ``major`` and ``minor`` specifying
- integer version components of the object kind.
-``jsonFile``
- A JSON string specifying a path relative to the reply index file
- to another JSON file containing the object.
-
-v1 Reply Files
---------------
-
-Reply files containing specific `Object Kinds`_ are written by CMake.
-The names of these files are unspecified and must not be interpreted
-by clients. Clients must first read the `v1 Reply Index File`_ and
-and follow references to the names of the desired response objects.
-
-Reply files (including the index file) will never be replaced by
-files of the same name but different content. This allows a client
-to read the files concurrently with a running CMake that may generate
-a new reply. However, after generating a new reply CMake will attempt
-to remove reply files from previous runs that it did not just write.
-If a client attempts to read a reply file referenced by the index but
-finds the file missing, that means a concurrent CMake has generated
-a new reply. The client may simply start again by reading the new
-reply index file.
-
-.. _`file-api object kinds`:
-
-Object Kinds
-============
-
-The CMake file-based API reports semantic information about the build
-system using the following kinds of JSON objects. Each kind of object
-is versioned independently using semantic versioning with major and
-minor components. Every kind of object has the form:
-
-.. code-block:: json
-
- {
- "kind": "<kind>",
- "version": { "major": 1, "minor": 0 },
- "...": {}
- }
-
-The ``kind`` member is a string specifying the object kind name.
-The ``version`` member is a JSON object with ``major`` and ``minor``
-members specifying integer components of the object kind's version.
-Additional top-level members are specific to each object kind.
-
-Object Kind "codemodel"
------------------------
-
-The ``codemodel`` object kind describes the build system structure as
-modeled by CMake.
-
-There is only one ``codemodel`` object major version, version 2.
-Version 1 does not exist to avoid confusion with that from
-:manual:`cmake-server(7)` mode.
-
-"codemodel" version 2
-^^^^^^^^^^^^^^^^^^^^^
-
-``codemodel`` object version 2 is a JSON object:
-
-.. code-block:: json
-
- {
- "kind": "codemodel",
- "version": { "major": 2, "minor": 0 },
- "paths": {
- "source": "/path/to/top-level-source-dir",
- "build": "/path/to/top-level-build-dir"
- },
- "configurations": [
- {
- "name": "Debug",
- "directories": [
- {
- "source": ".",
- "build": ".",
- "childIndexes": [ 1 ],
- "projectIndex": 0,
- "targetIndexes": [ 0 ],
- "hasInstallRule": true,
- "minimumCMakeVersion": {
- "string": "3.14"
- }
- },
- {
- "source": "sub",
- "build": "sub",
- "parentIndex": 0,
- "projectIndex": 0,
- "targetIndexes": [ 1 ],
- "minimumCMakeVersion": {
- "string": "3.14"
- }
- }
- ],
- "projects": [
- {
- "name": "MyProject",
- "directoryIndexes": [ 0, 1 ],
- "targetIndexes": [ 0, 1 ]
- }
- ],
- "targets": [
- {
- "name": "MyExecutable",
- "directoryIndex": 0,
- "projectIndex": 0,
- "jsonFile": "<file>"
- },
- {
- "name": "MyLibrary",
- "directoryIndex": 1,
- "projectIndex": 0,
- "jsonFile": "<file>"
- }
- ]
- }
- ]
- }
-
-The members specific to ``codemodel`` objects are:
-
-``paths``
- A JSON object containing members:
-
- ``source``
- A string specifying the absolute path to the top-level source directory,
- represented with forward slashes.
-
- ``build``
- A string specifying the absolute path to the top-level build directory,
- represented with forward slashes.
-
-``configurations``
- A JSON array of entries corresponding to available build configurations.
- On single-configuration generators there is one entry for the value
- of the :variable:`CMAKE_BUILD_TYPE` variable. For multi-configuration
- generators there is an entry for each configuration listed in the
- :variable:`CMAKE_CONFIGURATION_TYPES` variable.
- Each entry is a JSON object containing members:
-
- ``name``
- A string specifying the name of the configuration, e.g. ``Debug``.
-
- ``directories``
- A JSON array of entries each corresponding to a build system directory
- whose source directory contains a ``CMakeLists.txt`` file. The first
- entry corresponds to the top-level directory. Each entry is a
- JSON object containing members:
-
- ``source``
- A string specifying the path to the source directory, represented
- with forward slashes. If the directory is inside the top-level
- source directory then the path is specified relative to that
- directory (with ``.`` for the top-level source directory itself).
- Otherwise the path is absolute.
-
- ``build``
- A string specifying the path to the build directory, represented
- with forward slashes. If the directory is inside the top-level
- build directory then the path is specified relative to that
- directory (with ``.`` for the top-level build directory itself).
- Otherwise the path is absolute.
-
- ``parentIndex``
- Optional member that is present when the directory is not top-level.
- The value is an unsigned integer 0-based index of another entry in
- the main ``directories`` array that corresponds to the parent
- directory that added this directory as a subdirectory.
-
- ``childIndexes``
- Optional member that is present when the directory has subdirectories.
- The value is a JSON array of entries corresponding to child directories
- created by the :command:`add_subdirectory` or :command:`subdirs`
- command. Each entry is an unsigned integer 0-based index of another
- entry in the main ``directories`` array.
-
- ``projectIndex``
- An unsigned integer 0-based index into the main ``projects`` array
- indicating the build system project to which the this directory belongs.
-
- ``targetIndexes``
- Optional member that is present when the directory itself has targets,
- excluding those belonging to subdirectories. The value is a JSON
- array of entries corresponding to the targets. Each entry is an
- unsigned integer 0-based index into the main ``targets`` array.
-
- ``minimumCMakeVersion``
- Optional member present when a minimum required version of CMake is
- known for the directory. This is the ``<min>`` version given to the
- most local call to the :command:`cmake_minimum_required(VERSION)`
- command in the directory itself or one of its ancestors.
- The value is a JSON object with one member:
-
- ``string``
- A string specifying the minimum required version in the format::
-
- <major>.<minor>[.<patch>[.<tweak>]][<suffix>]
-
- Each component is an unsigned integer and the suffix may be an
- arbitrary string.
-
- ``hasInstallRule``
- Optional member that is present with boolean value ``true`` when
- the directory or one of its subdirectories contains any
- :command:`install` rules, i.e. whether a ``make install``
- or equivalent rule is available.
-
- ``projects``
- A JSON array of entries corresponding to the top-level project
- and sub-projects defined in the build system. Each (sub-)project
- corresponds to a source directory whose ``CMakeLists.txt`` file
- calls the :command:`project` command with a project name different
- from its parent directory. The first entry corresponds to the
- top-level project.
-
- Each entry is a JSON object containing members:
-
- ``name``
- A string specifying the name given to the :command:`project` command.
-
- ``parentIndex``
- Optional member that is present when the project is not top-level.
- The value is an unsigned integer 0-based index of another entry in
- the main ``projects`` array that corresponds to the parent project
- that added this project as a sub-project.
-
- ``childIndexes``
- Optional member that is present when the project has sub-projects.
- The value is a JSON array of entries corresponding to the sub-projects.
- Each entry is an unsigned integer 0-based index of another
- entry in the main ``projects`` array.
-
- ``directoryIndexes``
- A JSON array of entries corresponding to build system directories
- that are part of the project. The first entry corresponds to the
- top-level directory of the project. Each entry is an unsigned
- integer 0-based index into the main ``directories`` array.
-
- ``targetIndexes``
- Optional member that is present when the project itself has targets,
- excluding those belonging to sub-projects. The value is a JSON
- array of entries corresponding to the targets. Each entry is an
- unsigned integer 0-based index into the main ``targets`` array.
-
- ``targets``
- A JSON array of entries corresponding to the build system targets.
- Such targets are created by calls to :command:`add_executable`,
- :command:`add_library`, and :command:`add_custom_target`, excluding
- imported targets and interface libraries (which do not generate any
- build rules). Each entry is a JSON object containing members:
-
- ``name``
- A string specifying the target name.
-
- ``id``
- A string uniquely identifying the target. This matches the ``id``
- field in the file referenced by ``jsonFile``.
-
- ``directoryIndex``
- An unsigned integer 0-based index into the main ``directories`` array
- indicating the build system directory in which the target is defined.
-
- ``projectIndex``
- An unsigned integer 0-based index into the main ``projects`` array
- indicating the build system project in which the target is defined.
-
- ``jsonFile``
- A JSON string specifying a path relative to the codemodel file
- to another JSON file containing a
- `"codemodel" version 2 "target" object`_.
-
-"codemodel" version 2 "target" object
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-A codemodel "target" object is referenced by a `"codemodel" version 2`_
-object's ``targets`` array. Each "target" object is a JSON object
-with members:
-
-``name``
- A string specifying the logical name of the target.
-
-``id``
- A string uniquely identifying the target. The format is unspecified
- and should not be interpreted by clients.
-
-``type``
- A string specifying the type of the target. The value is one of
- ``EXECUTABLE``, ``STATIC_LIBRARY``, ``SHARED_LIBRARY``,
- ``MODULE_LIBRARY``, ``OBJECT_LIBRARY``, or ``UTILITY``.
-
-``backtrace``
- Optional member that is present when a CMake language backtrace to
- the command in the source code that created the target is available.
- The value is an unsigned integer 0-based index into the
- ``backtraceGraph`` member's ``nodes`` array.
-
-``folder``
- Optional member that is present when the :prop_tgt:`FOLDER` target
- property is set. The value is a JSON object with one member:
-
- ``name``
- A string specifying the name of the target folder.
-
-``paths``
- A JSON object containing members:
-
- ``source``
- A string specifying the path to the target's source directory,
- represented with forward slashes. If the directory is inside the
- top-level source directory then the path is specified relative to
- that directory (with ``.`` for the top-level source directory itself).
- Otherwise the path is absolute.
-
- ``build``
- A string specifying the path to the target's build directory,
- represented with forward slashes. If the directory is inside the
- top-level build directory then the path is specified relative to
- that directory (with ``.`` for the top-level build directory itself).
- Otherwise the path is absolute.
-
-``nameOnDisk``
- Optional member that is present for executable and library targets
- that are linked or archived into a single primary artifact.
- The value is a string specifying the file name of that artifact on disk.
-
-``artifacts``
- Optional member that is present for executable and library targets
- that produce artifacts on disk meant for consumption by dependents.
- The value is a JSON array of entries corresponding to the artifacts.
- Each entry is a JSON object containing one member:
-
- ``path``
- A string specifying the path to the file on disk, represented with
- forward slashes. If the file is inside the top-level build directory
- then the path is specified relative to that directory.
- Otherwise the path is absolute.
-
-``isGeneratorProvided``
- Optional member that is present with boolean value ``true`` if the
- target is provided by CMake's build system generator rather than by
- a command in the source code.
-
-``install``
- Optional member that is present when the target has an :command:`install`
- rule. The value is a JSON object with members:
-
- ``prefix``
- A JSON object specifying the installation prefix. It has one member:
-
- ``path``
- A string specifying the value of :variable:`CMAKE_INSTALL_PREFIX`.
-
- ``destinations``
- A JSON array of entries specifying an install destination path.
- Each entry is a JSON object with members:
-
- ``path``
- A string specifying the install destination path. The path may
- be absolute or relative to the install prefix.
-
- ``backtrace``
- Optional member that is present when a CMake language backtrace to
- the :command:`install` command invocation that specified this
- destination is available. The value is an unsigned integer 0-based
- index into the ``backtraceGraph`` member's ``nodes`` array.
-
-``link``
- Optional member that is present for executables and shared library
- targets that link into a runtime binary. The value is a JSON object
- with members describing the link step:
-
- ``language``
- A string specifying the language (e.g. ``C``, ``CXX``, ``Fortran``)
- of the toolchain is used to invoke the linker.
-
- ``commandFragments``
- Optional member that is present when fragments of the link command
- line invocation are available. The value is a JSON array of entries
- specifying ordered fragments. Each entry is a JSON object with members:
-
- ``fragment``
- A string specifying a fragment of the link command line invocation.
- The value is encoded in the build system's native shell format.
-
- ``role``
- A string specifying the role of the fragment's content:
-
- * ``flags``: link flags.
- * ``libraries``: link library file paths or flags.
- * ``libraryPath``: library search path flags.
- * ``frameworkPath``: macOS framework search path flags.
-
- ``lto``
- Optional member that is present with boolean value ``true``
- when link-time optimization (a.k.a. interprocedural optimization
- or link-time code generation) is enabled.
-
- ``sysroot``
- Optional member that is present when the :variable:`CMAKE_SYSROOT_LINK`
- or :variable:`CMAKE_SYSROOT` variable is defined. The value is a
- JSON object with one member:
-
- ``path``
- A string specifying the absolute path to the sysroot, represented
- with forward slashes.
-
-``archive``
- Optional member that is present for static library targets. The value
- is a JSON object with members describing the archive step:
-
- ``commandFragments``
- Optional member that is present when fragments of the archiver command
- line invocation are available. The value is a JSON array of entries
- specifying the fragments. Each entry is a JSON object with members:
-
- ``fragment``
- A string specifying a fragment of the archiver command line invocation.
- The value is encoded in the build system's native shell format.
-
- ``role``
- A string specifying the role of the fragment's content:
-
- * ``flags``: archiver flags.
-
- ``lto``
- Optional member that is present with boolean value ``true``
- when link-time optimization (a.k.a. interprocedural optimization
- or link-time code generation) is enabled.
-
-``dependencies``
- Optional member that is present when the target depends on other targets.
- The value is a JSON array of entries corresponding to the dependencies.
- Each entry is a JSON object with members:
-
- ``id``
- A string uniquely identifying the target on which this target depends.
- This matches the main ``id`` member of the other target.
-
- ``backtrace``
- Optional member that is present when a CMake language backtrace to
- the :command:`add_dependencies`, :command:`target_link_libraries`,
- or other command invocation that created this dependency is
- available. The value is an unsigned integer 0-based index into
- the ``backtraceGraph`` member's ``nodes`` array.
-
-``sources``
- A JSON array of entries corresponding to the target's source files.
- Each entry is a JSON object with members:
-
- ``path``
- A string specifying the path to the source file on disk, represented
- with forward slashes. If the file is inside the top-level source
- directory then the path is specified relative to that directory.
- Otherwise the path is absolute.
-
- ``compileGroupIndex``
- Optional member that is present when the source is compiled.
- The value is an unsigned integer 0-based index into the
- ``compileGroups`` array.
-
- ``sourceGroupIndex``
- Optional member that is present when the source is part of a source
- group either via the :command:`source_group` command or by default.
- The value is an unsigned integer 0-based index into the
- ``sourceGroups`` array.
-
- ``isGenerated``
- Optional member that is present with boolean value ``true`` if
- the source is :prop_sf:`GENERATED`.
-
- ``backtrace``
- Optional member that is present when a CMake language backtrace to
- the :command:`target_sources`, :command:`add_executable`,
- :command:`add_library`, :command:`add_custom_target`, or other
- command invocation that added this source to the target is
- available. The value is an unsigned integer 0-based index into
- the ``backtraceGraph`` member's ``nodes`` array.
-
-``sourceGroups``
- Optional member that is present when sources are grouped together by
- the :command:`source_group` command or by default. The value is a
- JSON array of entries corresponding to the groups. Each entry is
- a JSON object with members:
-
- ``name``
- A string specifying the name of the source group.
-
- ``sourceIndexes``
- A JSON array listing the sources belonging to the group.
- Each entry is an unsigned integer 0-based index into the
- main ``sources`` array for the target.
-
-``compileGroups``
- Optional member that is present when the target has sources that compile.
- The value is a JSON array of entries corresponding to groups of sources
- that all compile with the same settings. Each entry is a JSON object
- with members:
-
- ``sourceIndexes``
- A JSON array listing the sources belonging to the group.
- Each entry is an unsigned integer 0-based index into the
- main ``sources`` array for the target.
-
- ``language``
- A string specifying the language (e.g. ``C``, ``CXX``, ``Fortran``)
- of the toolchain is used to compile the source file.
-
- ``compileCommandFragments``
- Optional member that is present when fragments of the compiler command
- line invocation are available. The value is a JSON array of entries
- specifying ordered fragments. Each entry is a JSON object with
- one member:
-
- ``fragment``
- A string specifying a fragment of the compile command line invocation.
- The value is encoded in the build system's native shell format.
-
- ``includes``
- Optional member that is present when there are include directories.
- The value is a JSON array with an entry for each directory. Each
- entry is a JSON object with members:
-
- ``path``
- A string specifying the path to the include directory,
- represented with forward slashes.
-
- ``isSystem``
- Optional member that is present with boolean value ``true`` if
- the include directory is marked as a system include directory.
-
- ``backtrace``
- Optional member that is present when a CMake language backtrace to
- the :command:`target_include_directories` or other command invocation
- that added this include directory is available. The value is
- an unsigned integer 0-based index into the ``backtraceGraph``
- member's ``nodes`` array.
-
- ``defines``
- Optional member that is present when there are preprocessor definitions.
- The value is a JSON array with an entry for each definition. Each
- entry is a JSON object with members:
-
- ``define``
- A string specifying the preprocessor definition in the format
- ``<name>[=<value>]``, e.g. ``DEF`` or ``DEF=1``.
-
- ``backtrace``
- Optional member that is present when a CMake language backtrace to
- the :command:`target_compile_definitions` or other command invocation
- that added this preprocessor definition is available. The value is
- an unsigned integer 0-based index into the ``backtraceGraph``
- member's ``nodes`` array.
-
- ``sysroot``
- Optional member that is present when the
- :variable:`CMAKE_SYSROOT_COMPILE` or :variable:`CMAKE_SYSROOT`
- variable is defined. The value is a JSON object with one member:
-
- ``path``
- A string specifying the absolute path to the sysroot, represented
- with forward slashes.
-
-``backtraceGraph``
- A JSON object describing the graph of backtraces whose nodes are
- referenced from ``backtrace`` members elsewhere. The members are:
-
- ``nodes``
- A JSON array listing nodes in the backtrace graph. Each entry
- is a JSON object with members:
-
- ``file``
- An unsigned integer 0-based index into the backtrace ``files`` array.
-
- ``line``
- An optional member present when the node represents a line within
- the file. The value is an unsigned integer 1-based line number.
-
- ``command``
- An optional member present when the node represents a command
- invocation within the file. The value is an unsigned integer
- 0-based index into the backtrace ``commands`` array.
-
- ``parent``
- An optional member present when the node is not the bottom of
- the call stack. The value is an unsigned integer 0-based index
- of another entry in the backtrace ``nodes`` array.
-
- ``commands``
- A JSON array listing command names referenced by backtrace nodes.
- Each entry is a string specifying a command name.
-
- ``files``
- A JSON array listing CMake language files referenced by backtrace nodes.
- Each entry is a string specifying the path to a file, represented
- with forward slashes. If the file is inside the top-level source
- directory then the path is specified relative to that directory.
- Otherwise the path is absolute.
-
-Object Kind "cache"
--------------------
-
-The ``cache`` object kind lists cache entries. These are the
-:ref:`CMake Language Variables` stored in the persistent cache
-(``CMakeCache.txt``) for the build tree.
-
-There is only one ``cache`` object major version, version 2.
-Version 1 does not exist to avoid confusion with that from
-:manual:`cmake-server(7)` mode.
-
-"cache" version 2
-^^^^^^^^^^^^^^^^^
-
-``cache`` object version 2 is a JSON object:
-
-.. code-block:: json
-
- {
- "kind": "cache",
- "version": { "major": 2, "minor": 0 },
- "entries": [
- {
- "name": "BUILD_SHARED_LIBS",
- "value": "ON",
- "type": "BOOL",
- "properties": [
- {
- "name": "HELPSTRING",
- "value": "Build shared libraries"
- }
- ]
- },
- {
- "name": "CMAKE_GENERATOR",
- "value": "Unix Makefiles",
- "type": "INTERNAL",
- "properties": [
- {
- "name": "HELPSTRING",
- "value": "Name of generator."
- }
- ]
- }
- ]
- }
-
-The members specific to ``cache`` objects are:
-
-``entries``
- A JSON array whose entries are each a JSON object specifying a
- cache entry. The members of each entry are:
-
- ``name``
- A string specifying the name of the entry.
-
- ``value``
- A string specifying the value of the entry.
-
- ``type``
- A string specifying the type of the entry used by
- :manual:`cmake-gui(1)` to choose a widget for editing.
-
- ``properties``
- A JSON array of entries specifying associated
- :ref:`cache entry properties <Cache Entry Properties>`.
- Each entry is a JSON object containing members:
-
- ``name``
- A string specifying the name of the cache entry property.
-
- ``value``
- A string specifying the value of the cache entry property.
-
-Object Kind "cmakeFiles"
-------------------------
-
-The ``cmakeFiles`` object kind lists files used by CMake while
-configuring and generating the build system. These include the
-``CMakeLists.txt`` files as well as included ``.cmake`` files.
-
-There is only one ``cmakeFiles`` object major version, version 1.
-
-"cmakeFiles" version 1
-^^^^^^^^^^^^^^^^^^^^^^
-
-``cmakeFiles`` object version 1 is a JSON object:
-
-.. code-block:: json
-
- {
- "kind": "cmakeFiles",
- "version": { "major": 1, "minor": 0 },
- "paths": {
- "build": "/path/to/top-level-build-dir",
- "source": "/path/to/top-level-source-dir"
- },
- "inputs": [
- {
- "path": "CMakeLists.txt"
- },
- {
- "isGenerated": true,
- "path": "/path/to/top-level-build-dir/.../CMakeSystem.cmake"
- },
- {
- "isExternal": true,
- "path": "/path/to/external/third-party/module.cmake"
- },
- {
- "isCMake": true,
- "isExternal": true,
- "path": "/path/to/cmake/Modules/CMakeGenericSystem.cmake"
- }
- ]
- }
-
-The members specific to ``cmakeFiles`` objects are:
-
-``paths``
- A JSON object containing members:
-
- ``source``
- A string specifying the absolute path to the top-level source directory,
- represented with forward slashes.
-
- ``build``
- A string specifying the absolute path to the top-level build directory,
- represented with forward slashes.
-
-``inputs``
- A JSON array whose entries are each a JSON object specifying an input
- file used by CMake when configuring and generating the build system.
- The members of each entry are:
-
- ``path``
- A string specifying the path to an input file to CMake, represented
- with forward slashes. If the file is inside the top-level source
- directory then the path is specified relative to that directory.
- Otherwise the path is absolute.
-
- ``isGenerated``
- Optional member that is present with boolean value ``true``
- if the path specifies a file that is under the top-level
- build directory and the build is out-of-source.
- This member is not available on in-source builds.
-
- ``isExternal``
- Optional member that is present with boolean value ``true``
- if the path specifies a file that is not under the top-level
- source or build directories.
-
- ``isCMake``
- Optional member that is present with boolean value ``true``
- if the path specifies a file in the CMake installation.
diff --git a/share/cmake-3.16/Help/manual/cmake-generator-expressions.7.rst b/share/cmake-3.16/Help/manual/cmake-generator-expressions.7.rst
deleted file mode 100644
index 75f4bd4..0000000
--- a/share/cmake-3.16/Help/manual/cmake-generator-expressions.7.rst
+++ /dev/null
@@ -1,657 +0,0 @@
-.. cmake-manual-description: CMake Generator Expressions
-
-cmake-generator-expressions(7)
-******************************
-
-.. only:: html
-
- .. contents::
-
-Introduction
-============
-
-Generator expressions are evaluated during build system generation to produce
-information specific to each build configuration.
-
-Generator expressions are allowed in the context of many target properties,
-such as :prop_tgt:`LINK_LIBRARIES`, :prop_tgt:`INCLUDE_DIRECTORIES`,
-:prop_tgt:`COMPILE_DEFINITIONS` and others. They may also be used when using
-commands to populate those properties, such as :command:`target_link_libraries`,
-:command:`target_include_directories`, :command:`target_compile_definitions`
-and others.
-
-They enable conditional linking, conditional definitions used when compiling,
-conditional include directories, and more. The conditions may be based on
-the build configuration, target properties, platform information or any other
-queryable information.
-
-Generator expressions have the form ``$<...>``. To avoid confusion, this page
-deviates from most of the CMake documentation in that it omits angular brackets
-``<...>`` around placeholders like ``condition``, ``string``, ``target``,
-among others.
-
-Generator expressions can be nested, as shown in most of the examples below.
-
-.. _`Boolean Generator Expressions`:
-
-Boolean Generator Expressions
-=============================
-
-Boolean expressions evaluate to either ``0`` or ``1``.
-They are typically used to construct the condition in a :ref:`conditional
-generator expression<Conditional Generator Expressions>`.
-
-Available boolean expressions are:
-
-Logical Operators
------------------
-
-``$<BOOL:string>``
- Converts ``string`` to ``0`` or ``1``. Evaluates to ``0`` if any of the
- following is true:
-
- * ``string`` is empty,
- * ``string`` is a case-insensitive equal of
- ``0``, ``FALSE``, ``OFF``, ``N``, ``NO``, ``IGNORE``, or ``NOTFOUND``, or
- * ``string`` ends in the suffix ``-NOTFOUND`` (case-sensitive).
-
- Otherwise evaluates to ``1``.
-
-``$<AND:conditions>``
- where ``conditions`` is a comma-separated list of boolean expressions.
- Evaluates to ``1`` if all conditions are ``1``.
- Otherwise evaluates to ``0``.
-
-``$<OR:conditions>``
- where ``conditions`` is a comma-separated list of boolean expressions.
- Evaluates to ``1`` if at least one of the conditions is ``1``.
- Otherwise evaluates to ``0``.
-
-``$<NOT:condition>``
- ``0`` if ``condition`` is ``1``, else ``1``.
-
-String Comparisons
-------------------
-
-``$<STREQUAL:string1,string2>``
- ``1`` if ``string1`` and ``string2`` are equal, else ``0``.
- The comparison is case-sensitive. For a case-insensitive comparison,
- combine with a :ref:`string transforming generator expression
- <String Transforming Generator Expressions>`,
-
- .. code-block:: cmake
-
- $<STREQUAL:$<UPPER_CASE:${foo}>,"BAR"> # "1" if ${foo} is any of "BAR", "Bar", "bar", ...
-
-``$<EQUAL:value1,value2>``
- ``1`` if ``value1`` and ``value2`` are numerically equal, else ``0``.
-``$<IN_LIST:string,list>``
- ``1`` if ``string`` is member of the semicolon-separated ``list``, else ``0``.
- Uses case-sensitive comparisons.
-``$<VERSION_LESS:v1,v2>``
- ``1`` if ``v1`` is a version less than ``v2``, else ``0``.
-``$<VERSION_GREATER:v1,v2>``
- ``1`` if ``v1`` is a version greater than ``v2``, else ``0``.
-``$<VERSION_EQUAL:v1,v2>``
- ``1`` if ``v1`` is the same version as ``v2``, else ``0``.
-``$<VERSION_LESS_EQUAL:v1,v2>``
- ``1`` if ``v1`` is a version less than or equal to ``v2``, else ``0``.
-``$<VERSION_GREATER_EQUAL:v1,v2>``
- ``1`` if ``v1`` is a version greater than or equal to ``v2``, else ``0``.
-
-
-Variable Queries
-----------------
-
-``$<TARGET_EXISTS:target>``
- ``1`` if ``target`` exists, else ``0``.
-``$<CONFIG:cfg>``
- ``1`` if config is ``cfg``, else ``0``. This is a case-insensitive comparison.
- The mapping in :prop_tgt:`MAP_IMPORTED_CONFIG_<CONFIG>` is also considered by
- this expression when it is evaluated on a property on an :prop_tgt:`IMPORTED`
- target.
-``$<PLATFORM_ID:platform_ids>``
- where ``platform_ids`` is a comma-separated list.
- ``1`` if the CMake's platform id matches any one of the entries in
- ``platform_ids``, otherwise ``0``.
- See also the :variable:`CMAKE_SYSTEM_NAME` variable.
-``$<C_COMPILER_ID:compiler_ids>``
- where ``compiler_ids`` is a comma-separated list.
- ``1`` if the CMake's compiler id of the C compiler matches any one
- of the entries in ``compiler_ids``, otherwise ``0``.
- See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
-``$<CXX_COMPILER_ID:compiler_ids>``
- where ``compiler_ids`` is a comma-separated list.
- ``1`` if the CMake's compiler id of the CXX compiler matches any one
- of the entries in ``compiler_ids``, otherwise ``0``.
- See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
-``$<CUDA_COMPILER_ID:compiler_ids>``
- where ``compiler_ids`` is a comma-separated list.
- ``1`` if the CMake's compiler id of the CUDA compiler matches any one
- of the entries in ``compiler_ids``, otherwise ``0``.
- See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
-``$<OBJC_COMPILER_ID:compiler_ids>``
- where ``compiler_ids`` is a comma-separated list.
- ``1`` if the CMake's compiler id of the Objective-C compiler matches any one
- of the entries in ``compiler_ids``, otherwise ``0``.
- See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
-``$<OBJCXX_COMPILER_ID:compiler_ids>``
- where ``compiler_ids`` is a comma-separated list.
- ``1`` if the CMake's compiler id of the Objective-C++ compiler matches any one
- of the entries in ``compiler_ids``, otherwise ``0``.
- See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
-``$<Fortran_COMPILER_ID:compiler_ids>``
- where ``compiler_ids`` is a comma-separated list.
- ``1`` if the CMake's compiler id of the Fortran compiler matches any one
- of the entries in ``compiler_ids``, otherwise ``0``.
- See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
-``$<C_COMPILER_VERSION:version>``
- ``1`` if the version of the C compiler matches ``version``, otherwise ``0``.
- See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
-``$<CXX_COMPILER_VERSION:version>``
- ``1`` if the version of the CXX compiler matches ``version``, otherwise ``0``.
- See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
-``$<CUDA_COMPILER_VERSION:version>``
- ``1`` if the version of the CXX compiler matches ``version``, otherwise ``0``.
- See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
-``$<OBJC_COMPILER_VERSION:version>``
- ``1`` if the version of the OBJC compiler matches ``version``, otherwise ``0``.
- See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
-``$<OBJCXX_COMPILER_VERSION:version>``
- ``1`` if the version of the OBJCXX compiler matches ``version``, otherwise ``0``.
- See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
-``$<Fortran_COMPILER_VERSION:version>``
- ``1`` if the version of the Fortran compiler matches ``version``, otherwise ``0``.
- See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
-``$<TARGET_POLICY:policy>``
- ``1`` if the ``policy`` was NEW when the 'head' target was created,
- else ``0``. If the ``policy`` was not set, the warning message for the policy
- will be emitted. This generator expression only works for a subset of
- policies.
-``$<COMPILE_FEATURES:features>``
- where ``features`` is a comma-spearated list.
- Evaluates to ``1`` if all of the ``features`` are available for the 'head'
- target, and ``0`` otherwise. If this expression is used while evaluating
- the link implementation of a target and if any dependency transitively
- increases the required :prop_tgt:`C_STANDARD` or :prop_tgt:`CXX_STANDARD`
- for the 'head' target, an error is reported. See the
- :manual:`cmake-compile-features(7)` manual for information on
- compile features and a list of supported compilers.
-
-.. _`Boolean COMPILE_LANGUAGE Generator Expression`:
-
-``$<COMPILE_LANG_AND_ID:language,compiler_ids>``
- ``1`` when the language used for compilation unit matches ``language`` and
- the CMake's compiler id of the language compiler matches any one of the
- entries in ``compiler_ids``, otherwise ``0``. This expression is a short form
- for the combination of ``$<COMPILE_LANGUAGE:language>`` and
- ``$<LANG_COMPILER_ID:compiler_ids>``. This expression may be used to specify
- compile options, compile definitions, and include directories for source files of a
- particular language and compiler combination in a target. For example:
-
- .. code-block:: cmake
-
- add_executable(myapp main.cpp foo.c bar.cpp zot.cu)
- target_compile_definitions(myapp
- PRIVATE $<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:COMPILING_CXX_WITH_CLANG>
- $<$<COMPILE_LANG_AND_ID:CXX,Intel>:COMPILING_CXX_WITH_INTEL>
- $<$<COMPILE_LANG_AND_ID:C,Clang>:COMPILING_C_WITH_CLANG>
- )
-
- This specifies the use of different compile definitions based on both
- the compiler id and compilation language. This example will have a
- ``COMPILING_CXX_WITH_CLANG`` compile definition when Clang is the CXX
- compiler, and ``COMPILING_CXX_WITH_INTEL`` when Intel is the CXX compiler.
- Likewise when the C compiler is Clang it will only see the ``COMPILING_C_WITH_CLANG``
- definition.
-
- Without the ``COMPILE_LANG_AND_ID`` generator expression the same logic
- would be expressed as:
-
- .. code-block:: cmake
-
- target_compile_definitions(myapp
- PRIVATE $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:AppleClang,Clang>>:COMPILING_CXX_WITH_CLANG>
- $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:Intel>>:COMPILING_CXX_WITH_INTEL>
- $<$<AND:$<COMPILE_LANGUAGE:C>,$<C_COMPILER_ID:Clang>>:COMPILING_C_WITH_CLANG>
- )
-
-``$<COMPILE_LANGUAGE:languages>``
- ``1`` when the language used for compilation unit matches any of the entries
- in ``languages``, otherwise ``0``. This expression may be used to specify
- compile options, compile definitions, and include directories for source files of a
- particular language in a target. For example:
-
- .. code-block:: cmake
-
- add_executable(myapp main.cpp foo.c bar.cpp zot.cu)
- target_compile_options(myapp
- PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>
- )
- target_compile_definitions(myapp
- PRIVATE $<$<COMPILE_LANGUAGE:CXX>:COMPILING_CXX>
- $<$<COMPILE_LANGUAGE:CUDA>:COMPILING_CUDA>
- )
- target_include_directories(myapp
- PRIVATE $<$<COMPILE_LANGUAGE:CXX,CUDA>:/opt/foo/headers>
- )
-
- This specifies the use of the ``-fno-exceptions`` compile option,
- ``COMPILING_CXX`` compile definition, and ``cxx_headers`` include
- directory for C++ only (compiler id checks elided). It also specifies
- a ``COMPILING_CUDA`` compile definition for CUDA.
-
- Note that with :ref:`Visual Studio Generators` and :generator:`Xcode` there
- is no way to represent target-wide compile definitions or include directories
- separately for ``C`` and ``CXX`` languages.
- Also, with :ref:`Visual Studio Generators` there is no way to represent
- target-wide flags separately for ``C`` and ``CXX`` languages. Under these
- generators, expressions for both C and C++ sources will be evaluated
- using ``CXX`` if there are any C++ sources and otherwise using ``C``.
- A workaround is to create separate libraries for each source file language
- instead:
-
- .. code-block:: cmake
-
- add_library(myapp_c foo.c)
- add_library(myapp_cxx bar.cpp)
- target_compile_options(myapp_cxx PUBLIC -fno-exceptions)
- add_executable(myapp main.cpp)
- target_link_libraries(myapp myapp_c myapp_cxx)
-
-String-Valued Generator Expressions
-===================================
-
-These expressions expand to some string.
-For example,
-
-.. code-block:: cmake
-
- include_directories(/usr/include/$<CXX_COMPILER_ID>/)
-
-expands to ``/usr/include/GNU/`` or ``/usr/include/Clang/`` etc, depending on
-the compiler identifier.
-
-String-valued expressions may also be combined with other expressions.
-Here an example for a string-valued expression within a boolean expressions
-within a conditional expression:
-
-.. code-block:: cmake
-
- $<$<VERSION_LESS:$<CXX_COMPILER_VERSION>,4.2.0>:OLD_COMPILER>
-
-expands to ``OLD_COMPILER`` if the
-:variable:`CMAKE_CXX_COMPILER_VERSION <CMAKE_<LANG>_COMPILER_VERSION>` is less
-than 4.2.0.
-
-And here two nested string-valued expressions:
-
-.. code-block:: cmake
-
- -I$<JOIN:$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>, -I>
-
-generates a string of the entries in the :prop_tgt:`INCLUDE_DIRECTORIES` target
-property with each entry preceded by ``-I``.
-
-Expanding on the previous example, if one first wants to check if the
-``INCLUDE_DIRECTORIES`` property is non-empty, then it is advisable to
-introduce a helper variable to keep the code readable:
-
-.. code-block:: cmake
-
- set(prop "$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>") # helper variable
- $<$<BOOL:${prop}>:-I$<JOIN:${prop}, -I>>
-
-The following string-valued generator expressions are available:
-
-Escaped Characters
-------------------
-
-String literals to escape the special meaning a character would otherwise have:
-
-``$<ANGLE-R>``
- A literal ``>``. Used for example to compare strings that contain a ``>``.
-``$<COMMA>``
- A literal ``,``. Used for example to compare strings which contain a ``,``.
-``$<SEMICOLON>``
- A literal ``;``. Used to prevent list expansion on an argument with ``;``.
-
-.. _`Conditional Generator Expressions`:
-
-Conditional Expressions
------------------------
-
-Conditional generator expressions depend on a boolean condition
-that must be ``0`` or ``1``.
-
-``$<condition:true_string>``
- Evaluates to ``true_string`` if ``condition`` is ``1``.
- Otherwise evaluates to the empty string.
-
-``$<IF:condition,true_string,false_string>``
- Evaluates to ``true_string`` if ``condition`` is ``1``.
- Otherwise evaluates to ``false_string``.
-
-Typically, the ``condition`` is a :ref:`boolean generator expression
-<Boolean Generator Expressions>`. For instance,
-
-.. code-block:: cmake
-
- $<$<CONFIG:Debug>:DEBUG_MODE>
-
-expands to ``DEBUG_MODE`` when the ``Debug`` configuration is used, and
-otherwise expands to the empty string.
-
-.. _`String Transforming Generator Expressions`:
-
-String Transformations
-----------------------
-
-``$<JOIN:list,string>``
- Joins the list with the content of ``string``.
-``$<REMOVE_DUPLICATES:list>``
- Removes duplicated items in the given ``list``.
-``$<FILTER:list,INCLUDE|EXCLUDE,regex>``
- Includes or removes items from ``list`` that match the regular expression ``regex``.
-``$<LOWER_CASE:string>``
- Content of ``string`` converted to lower case.
-``$<UPPER_CASE:string>``
- Content of ``string`` converted to upper case.
-
-``$<GENEX_EVAL:expr>``
- Content of ``expr`` evaluated as a generator expression in the current
- context. This enables consumption of generator expressions whose
- evaluation results itself in generator expressions.
-``$<TARGET_GENEX_EVAL:tgt,expr>``
- Content of ``expr`` evaluated as a generator expression in the context of
- ``tgt`` target. This enables consumption of custom target properties that
- themselves contain generator expressions.
-
- Having the capability to evaluate generator expressions is very useful when
- you want to manage custom properties supporting generator expressions.
- For example:
-
- .. code-block:: cmake
-
- add_library(foo ...)
-
- set_property(TARGET foo PROPERTY
- CUSTOM_KEYS $<$<CONFIG:DEBUG>:FOO_EXTRA_THINGS>
- )
-
- add_custom_target(printFooKeys
- COMMAND ${CMAKE_COMMAND} -E echo $<TARGET_PROPERTY:foo,CUSTOM_KEYS>
- )
-
- This naive implementation of the ``printFooKeys`` custom command is wrong
- because ``CUSTOM_KEYS`` target property is not evaluated and the content
- is passed as is (i.e. ``$<$<CONFIG:DEBUG>:FOO_EXTRA_THINGS>``).
-
- To have the expected result (i.e. ``FOO_EXTRA_THINGS`` if config is
- ``Debug``), it is required to evaluate the output of
- ``$<TARGET_PROPERTY:foo,CUSTOM_KEYS>``:
-
- .. code-block:: cmake
-
- add_custom_target(printFooKeys
- COMMAND ${CMAKE_COMMAND} -E
- echo $<TARGET_GENEX_EVAL:foo,$<TARGET_PROPERTY:foo,CUSTOM_KEYS>>
- )
-
-Variable Queries
-----------------
-
-``$<CONFIG>``
- Configuration name.
-``$<CONFIGURATION>``
- Configuration name. Deprecated since CMake 3.0. Use ``CONFIG`` instead.
-``$<PLATFORM_ID>``
- The current system's CMake platform id.
- See also the :variable:`CMAKE_SYSTEM_NAME` variable.
-``$<C_COMPILER_ID>``
- The CMake's compiler id of the C compiler used.
- See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
-``$<CXX_COMPILER_ID>``
- The CMake's compiler id of the CXX compiler used.
- See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
-``$<CUDA_COMPILER_ID>``
- The CMake's compiler id of the CUDA compiler used.
- See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
-``$<OBJC_COMPILER_ID>``
- The CMake's compiler id of the OBJC compiler used.
- See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
-``$<OBJCXX_COMPILER_ID>``
- The CMake's compiler id of the OBJCXX compiler used.
- See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
-``$<Fortran_COMPILER_ID>``
- The CMake's compiler id of the Fortran compiler used.
- See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
-``$<C_COMPILER_VERSION>``
- The version of the C compiler used.
- See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
-``$<CXX_COMPILER_VERSION>``
- The version of the CXX compiler used.
- See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
-``$<CUDA_COMPILER_VERSION>``
- The version of the CUDA compiler used.
- See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
-``$<OBJC_COMPILER_VERSION>``
- The version of the OBJC compiler used.
- See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
-``$<OBJCXX_COMPILER_VERSION>``
- The version of the OBJCXX compiler used.
- See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
-``$<Fortran_COMPILER_VERSION>``
- The version of the Fortran compiler used.
- See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
-``$<COMPILE_LANGUAGE>``
- The compile language of source files when evaluating compile options.
- See :ref:`the related boolean expression
- <Boolean COMPILE_LANGUAGE Generator Expression>`
- ``$<COMPILE_LANGUAGE:language>``
- for notes about the portability of this generator expression.
-
-Target-Dependent Queries
-------------------------
-
-``$<TARGET_NAME_IF_EXISTS:tgt>``
- Expands to the ``tgt`` if the given target exists, an empty string
- otherwise.
-``$<TARGET_FILE:tgt>``
- Full path to main file (.exe, .so.1.2, .a) where ``tgt`` is the name of a
- target.
-``$<TARGET_FILE_BASE_NAME:tgt>``
- Base name of main file where ``tgt`` is the name of a target.
-
- The base name corresponds to the target file name (see
- ``$<TARGET_FILE_NAME:tgt>``) without prefix and suffix. For example, if
- target file name is ``libbase.so``, the base name is ``base``.
-
- See also the :prop_tgt:`OUTPUT_NAME`, :prop_tgt:`ARCHIVE_OUTPUT_NAME`,
- :prop_tgt:`LIBRARY_OUTPUT_NAME` and :prop_tgt:`RUNTIME_OUTPUT_NAME`
- target properties and their configuration specific variants
- :prop_tgt:`OUTPUT_NAME_<CONFIG>`, :prop_tgt:`ARCHIVE_OUTPUT_NAME_<CONFIG>`,
- :prop_tgt:`LIBRARY_OUTPUT_NAME_<CONFIG>` and
- :prop_tgt:`RUNTIME_OUTPUT_NAME_<CONFIG>`.
-
- The :prop_tgt:`<CONFIG>_POSTFIX` and :prop_tgt:`DEBUG_POSTFIX` target
- properties can also be considered.
-
- Note that ``tgt`` is not added as a dependency of the target this
- expression is evaluated on.
-``$<TARGET_FILE_PREFIX:tgt>``
- Prefix of main file where ``tgt`` is the name of a target.
-
- See also the :prop_tgt:`PREFIX` target property.
-
- Note that ``tgt`` is not added as a dependency of the target this
- expression is evaluated on.
-``$<TARGET_FILE_SUFFIX:tgt>``
- Suffix of main file where ``tgt`` is the name of a target.
-
- The suffix corresponds to the file extension (such as ".so" or ".exe").
-
- See also the :prop_tgt:`SUFFIX` target property.
-
- Note that ``tgt`` is not added as a dependency of the target this
- expression is evaluated on.
-``$<TARGET_FILE_NAME:tgt>``
- Name of main file (.exe, .so.1.2, .a).
-``$<TARGET_FILE_DIR:tgt>``
- Directory of main file (.exe, .so.1.2, .a).
-``$<TARGET_LINKER_FILE:tgt>``
- File used to link (.a, .lib, .so) where ``tgt`` is the name of a target.
-``$<TARGET_LINKER_FILE_BASE_NAME:tgt>``
- Base name of file used to link where ``tgt`` is the name of a target.
-
- The base name corresponds to the target linker file name (see
- ``$<TARGET_LINKER_FILE_NAME:tgt>``) without prefix and suffix. For example,
- if target file name is ``libbase.a``, the base name is ``base``.
-
- See also the :prop_tgt:`OUTPUT_NAME`, :prop_tgt:`ARCHIVE_OUTPUT_NAME`,
- and :prop_tgt:`LIBRARY_OUTPUT_NAME` target properties and their configuration
- specific variants :prop_tgt:`OUTPUT_NAME_<CONFIG>`,
- :prop_tgt:`ARCHIVE_OUTPUT_NAME_<CONFIG>` and
- :prop_tgt:`LIBRARY_OUTPUT_NAME_<CONFIG>`.
-
- The :prop_tgt:`<CONFIG>_POSTFIX` and :prop_tgt:`DEBUG_POSTFIX` target
- properties can also be considered.
-
- Note that ``tgt`` is not added as a dependency of the target this
- expression is evaluated on.
-``$<TARGET_LINKER_FILE_PREFIX:tgt>``
- Prefix of file used to link where ``tgt`` is the name of a target.
-
- See also the :prop_tgt:`PREFIX` and :prop_tgt:`IMPORT_PREFIX` target
- properties.
-
- Note that ``tgt`` is not added as a dependency of the target this
- expression is evaluated on.
-``$<TARGET_LINKER_FILE_SUFFIX:tgt>``
- Suffix of file used to link where ``tgt`` is the name of a target.
-
- The suffix corresponds to the file extension (such as ".so" or ".lib").
-
- See also the :prop_tgt:`SUFFIX` and :prop_tgt:`IMPORT_SUFFIX` target
- properties.
-
- Note that ``tgt`` is not added as a dependency of the target this
- expression is evaluated on.
-``$<TARGET_LINKER_FILE_NAME:tgt>``
- Name of file used to link (.a, .lib, .so).
-``$<TARGET_LINKER_FILE_DIR:tgt>``
- Directory of file used to link (.a, .lib, .so).
-``$<TARGET_SONAME_FILE:tgt>``
- File with soname (.so.3) where ``tgt`` is the name of a target.
-``$<TARGET_SONAME_FILE_NAME:tgt>``
- Name of file with soname (.so.3).
-``$<TARGET_SONAME_FILE_DIR:tgt>``
- Directory of with soname (.so.3).
-``$<TARGET_PDB_FILE:tgt>``
- Full path to the linker generated program database file (.pdb)
- where ``tgt`` is the name of a target.
-
- See also the :prop_tgt:`PDB_NAME` and :prop_tgt:`PDB_OUTPUT_DIRECTORY`
- target properties and their configuration specific variants
- :prop_tgt:`PDB_NAME_<CONFIG>` and :prop_tgt:`PDB_OUTPUT_DIRECTORY_<CONFIG>`.
-``$<TARGET_PDB_FILE_BASE_NAME:tgt>``
- Base name of the linker generated program database file (.pdb)
- where ``tgt`` is the name of a target.
-
- The base name corresponds to the target PDB file name (see
- ``$<TARGET_PDB_FILE_NAME:tgt>``) without prefix and suffix. For example,
- if target file name is ``base.pdb``, the base name is ``base``.
-
- See also the :prop_tgt:`PDB_NAME` target property and its configuration
- specific variant :prop_tgt:`PDB_NAME_<CONFIG>`.
-
- The :prop_tgt:`<CONFIG>_POSTFIX` and :prop_tgt:`DEBUG_POSTFIX` target
- properties can also be considered.
-
- Note that ``tgt`` is not added as a dependency of the target this
- expression is evaluated on.
-``$<TARGET_PDB_FILE_NAME:tgt>``
- Name of the linker generated program database file (.pdb).
-``$<TARGET_PDB_FILE_DIR:tgt>``
- Directory of the linker generated program database file (.pdb).
-``$<TARGET_BUNDLE_DIR:tgt>``
- Full path to the bundle directory (``my.app``, ``my.framework``, or
- ``my.bundle``) where ``tgt`` is the name of a target.
-``$<TARGET_BUNDLE_CONTENT_DIR:tgt>``
- Full path to the bundle content directory where ``tgt`` is the name of a
- target. For the macOS SDK it leads to ``my.app/Contents``, ``my.framework``,
- or ``my.bundle/Contents``. For all other SDKs (e.g. iOS) it leads to
- ``my.app``, ``my.framework``, or ``my.bundle`` due to the flat bundle
- structure.
-``$<TARGET_PROPERTY:tgt,prop>``
- Value of the property ``prop`` on the target ``tgt``.
-
- Note that ``tgt`` is not added as a dependency of the target this
- expression is evaluated on.
-``$<TARGET_PROPERTY:prop>``
- Value of the property ``prop`` on the target on which the generator
- expression is evaluated. Note that for generator expressions in
- :ref:`Target Usage Requirements` this is the value of the property
- on the consuming target rather than the target specifying the
- requirement.
-``$<INSTALL_PREFIX>``
- Content of the install prefix when the target is exported via
- :command:`install(EXPORT)` and empty otherwise.
-
-Output-Related Expressions
---------------------------
-
-``$<TARGET_NAME:...>``
- Marks ``...`` as being the name of a target. This is required if exporting
- targets to multiple dependent export sets. The ``...`` must be a literal
- name of a target- it may not contain generator expressions.
-``$<LINK_ONLY:...>``
- Content of ``...`` except when evaluated in a link interface while
- propagating :ref:`Target Usage Requirements`, in which case it is the
- empty string.
- Intended for use only in an :prop_tgt:`INTERFACE_LINK_LIBRARIES` target
- property, perhaps via the :command:`target_link_libraries` command,
- to specify private link dependencies without other usage requirements.
-``$<INSTALL_INTERFACE:...>``
- Content of ``...`` when the property is exported using :command:`install(EXPORT)`,
- and empty otherwise.
-``$<BUILD_INTERFACE:...>``
- Content of ``...`` when the property is exported using :command:`export`, or
- when the target is used by another target in the same buildsystem. Expands to
- the empty string otherwise.
-``$<MAKE_C_IDENTIFIER:...>``
- Content of ``...`` converted to a C identifier. The conversion follows the
- same behavior as :command:`string(MAKE_C_IDENTIFIER)`.
-``$<TARGET_OBJECTS:objLib>``
- List of objects resulting from build of ``objLib``.
-``$<SHELL_PATH:...>``
- Content of ``...`` converted to shell path style. For example, slashes are
- converted to backslashes in Windows shells and drive letters are converted
- to posix paths in MSYS shells. The ``...`` must be an absolute path.
- The ``...`` may be a :ref:`semicolon-separated list <CMake Language Lists>`
- of paths, in which case each path is converted individually and a result
- list is generated using the shell path separator (``:`` on POSIX and
- ``;`` on Windows). Be sure to enclose the argument containing this genex
- in double quotes in CMake source code so that ``;`` does not split arguments.
-
-Debugging
-=========
-
-Since generator expressions are evaluated during generation of the buildsystem,
-and not during processing of ``CMakeLists.txt`` files, it is not possible to
-inspect their result with the :command:`message()` command.
-
-One possible way to generate debug messages is to add a custom target,
-
-.. code-block:: cmake
-
- add_custom_target(genexdebug COMMAND ${CMAKE_COMMAND} -E echo "$<...>")
-
-The shell command ``make genexdebug`` (invoked after execution of ``cmake``)
-would then print the result of ``$<...>``.
-
-Another way is to write debug messages to a file:
-
-.. code-block:: cmake
-
- file(GENERATE OUTPUT filename CONTENT "$<...>")
diff --git a/share/cmake-3.16/Help/manual/cmake-generators.7.rst b/share/cmake-3.16/Help/manual/cmake-generators.7.rst
deleted file mode 100644
index 41f7652..0000000
--- a/share/cmake-3.16/Help/manual/cmake-generators.7.rst
+++ /dev/null
@@ -1,117 +0,0 @@
-.. cmake-manual-description: CMake Generators Reference
-
-cmake-generators(7)
-*******************
-
-.. only:: html
-
- .. contents::
-
-Introduction
-============
-
-A *CMake Generator* is responsible for writing the input files for
-a native build system. Exactly one of the `CMake Generators`_ must be
-selected for a build tree to determine what native build system is to
-be used. Optionally one of the `Extra Generators`_ may be selected
-as a variant of some of the `Command-Line Build Tool Generators`_ to
-produce project files for an auxiliary IDE.
-
-CMake Generators are platform-specific so each may be available only
-on certain platforms. The :manual:`cmake(1)` command-line tool ``--help``
-output lists available generators on the current platform. Use its ``-G``
-option to specify the generator for a new build tree.
-The :manual:`cmake-gui(1)` offers interactive selection of a generator
-when creating a new build tree.
-
-CMake Generators
-================
-
-.. _`Command-Line Build Tool Generators`:
-
-Command-Line Build Tool Generators
-----------------------------------
-
-These generators support command-line build tools. In order to use them,
-one must launch CMake from a command-line prompt whose environment is
-already configured for the chosen compiler and build tool.
-
-.. _`Makefile Generators`:
-
-Makefile Generators
-^^^^^^^^^^^^^^^^^^^
-
-.. toctree::
- :maxdepth: 1
-
- /generator/Borland Makefiles
- /generator/MSYS Makefiles
- /generator/MinGW Makefiles
- /generator/NMake Makefiles
- /generator/NMake Makefiles JOM
- /generator/Unix Makefiles
- /generator/Watcom WMake
-
-Ninja Generator
-^^^^^^^^^^^^^^^
-
-.. toctree::
- :maxdepth: 1
-
- /generator/Ninja
-
-.. _`IDE Build Tool Generators`:
-
-IDE Build Tool Generators
--------------------------
-
-These generators support Integrated Development Environment (IDE)
-project files. Since the IDEs configure their own environment
-one may launch CMake from any environment.
-
-.. _`Visual Studio Generators`:
-
-Visual Studio Generators
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. toctree::
- :maxdepth: 1
-
- /generator/Visual Studio 6
- /generator/Visual Studio 7
- /generator/Visual Studio 7 .NET 2003
- /generator/Visual Studio 8 2005
- /generator/Visual Studio 9 2008
- /generator/Visual Studio 10 2010
- /generator/Visual Studio 11 2012
- /generator/Visual Studio 12 2013
- /generator/Visual Studio 14 2015
- /generator/Visual Studio 15 2017
- /generator/Visual Studio 16 2019
-
-Other Generators
-^^^^^^^^^^^^^^^^
-
-.. toctree::
- :maxdepth: 1
-
- /generator/Green Hills MULTI
- /generator/Xcode
-
-Extra Generators
-================
-
-Some of the `CMake Generators`_ listed in the :manual:`cmake(1)`
-command-line tool ``--help`` output may have variants that specify
-an extra generator for an auxiliary IDE tool. Such generator
-names have the form ``<extra-generator> - <main-generator>``.
-The following extra generators are known to CMake.
-
-.. toctree::
- :maxdepth: 1
-
- /generator/CodeBlocks
- /generator/CodeLite
- /generator/Eclipse CDT4
- /generator/Kate
- /generator/Sublime Text 2
diff --git a/share/cmake-3.16/Help/manual/cmake-language.7.rst b/share/cmake-3.16/Help/manual/cmake-language.7.rst
deleted file mode 100644
index 4ca8e3a..0000000
--- a/share/cmake-3.16/Help/manual/cmake-language.7.rst
+++ /dev/null
@@ -1,627 +0,0 @@
-.. cmake-manual-description: CMake Language Reference
-
-cmake-language(7)
-*****************
-
-.. only:: html
-
- .. contents::
-
-Organization
-============
-
-CMake input files are written in the "CMake Language" in source files
-named ``CMakeLists.txt`` or ending in a ``.cmake`` file name extension.
-
-CMake Language source files in a project are organized into:
-
-* `Directories`_ (``CMakeLists.txt``),
-* `Scripts`_ (``<script>.cmake``), and
-* `Modules`_ (``<module>.cmake``).
-
-Directories
------------
-
-When CMake processes a project source tree, the entry point is
-a source file called ``CMakeLists.txt`` in the top-level source
-directory. This file may contain the entire build specification
-or use the :command:`add_subdirectory` command to add subdirectories
-to the build. Each subdirectory added by the command must also
-contain a ``CMakeLists.txt`` file as the entry point to that
-directory. For each source directory whose ``CMakeLists.txt`` file
-is processed CMake generates a corresponding directory in the build
-tree to act as the default working and output directory.
-
-Scripts
--------
-
-An individual ``<script>.cmake`` source file may be processed
-in *script mode* by using the :manual:`cmake(1)` command-line tool
-with the ``-P`` option. Script mode simply runs the commands in
-the given CMake Language source file and does not generate a
-build system. It does not allow CMake commands that define build
-targets or actions.
-
-Modules
--------
-
-CMake Language code in either `Directories`_ or `Scripts`_ may
-use the :command:`include` command to load a ``<module>.cmake``
-source file in the scope of the including context.
-See the :manual:`cmake-modules(7)` manual page for documentation
-of modules included with the CMake distribution.
-Project source trees may also provide their own modules and
-specify their location(s) in the :variable:`CMAKE_MODULE_PATH`
-variable.
-
-Syntax
-======
-
-.. _`CMake Language Encoding`:
-
-Encoding
---------
-
-A CMake Language source file may be written in 7-bit ASCII text for
-maximum portability across all supported platforms. Newlines may be
-encoded as either ``\n`` or ``\r\n`` but will be converted to ``\n``
-as input files are read.
-
-Note that the implementation is 8-bit clean so source files may
-be encoded as UTF-8 on platforms with system APIs supporting this
-encoding. In addition, CMake 3.2 and above support source files
-encoded in UTF-8 on Windows (using UTF-16 to call system APIs).
-Furthermore, CMake 3.0 and above allow a leading UTF-8
-`Byte-Order Mark`_ in source files.
-
-.. _`Byte-Order Mark`: http://en.wikipedia.org/wiki/Byte_order_mark
-
-Source Files
-------------
-
-A CMake Language source file consists of zero or more
-`Command Invocations`_ separated by newlines and optionally
-spaces and `Comments`_:
-
-.. raw:: latex
-
- \begin{small}
-
-.. productionlist::
- file: `file_element`*
- file_element: `command_invocation` `line_ending` |
- : (`bracket_comment`|`space`)* `line_ending`
- line_ending: `line_comment`? `newline`
- space: <match '[ \t]+'>
- newline: <match '\n'>
-
-.. raw:: latex
-
- \end{small}
-
-Note that any source file line not inside `Command Arguments`_ or
-a `Bracket Comment`_ can end in a `Line Comment`_.
-
-.. _`Command Invocations`:
-
-Command Invocations
--------------------
-
-A *command invocation* is a name followed by paren-enclosed arguments
-separated by whitespace:
-
-.. raw:: latex
-
- \begin{small}
-
-.. productionlist::
- command_invocation: `space`* `identifier` `space`* '(' `arguments` ')'
- identifier: <match '[A-Za-z_][A-Za-z0-9_]*'>
- arguments: `argument`? `separated_arguments`*
- separated_arguments: `separation`+ `argument`? |
- : `separation`* '(' `arguments` ')'
- separation: `space` | `line_ending`
-
-.. raw:: latex
-
- \end{small}
-
-For example:
-
-.. code-block:: cmake
-
- add_executable(hello world.c)
-
-Command names are case-insensitive.
-Nested unquoted parentheses in the arguments must balance.
-Each ``(`` or ``)`` is given to the command invocation as
-a literal `Unquoted Argument`_. This may be used in calls
-to the :command:`if` command to enclose conditions.
-For example:
-
-.. code-block:: cmake
-
- if(FALSE AND (FALSE OR TRUE)) # evaluates to FALSE
-
-.. note::
- CMake versions prior to 3.0 require command name identifiers
- to be at least 2 characters.
-
- CMake versions prior to 2.8.12 silently accept an `Unquoted Argument`_
- or a `Quoted Argument`_ immediately following a `Quoted Argument`_ and
- not separated by any whitespace. For compatibility, CMake 2.8.12 and
- higher accept such code but produce a warning.
-
-Command Arguments
------------------
-
-There are three types of arguments within `Command Invocations`_:
-
-.. raw:: latex
-
- \begin{small}
-
-.. productionlist::
- argument: `bracket_argument` | `quoted_argument` | `unquoted_argument`
-
-.. raw:: latex
-
- \end{small}
-
-.. _`Bracket Argument`:
-
-Bracket Argument
-^^^^^^^^^^^^^^^^
-
-A *bracket argument*, inspired by `Lua`_ long bracket syntax,
-encloses content between opening and closing "brackets" of the
-same length:
-
-.. raw:: latex
-
- \begin{small}
-
-.. productionlist::
- bracket_argument: `bracket_open` `bracket_content` `bracket_close`
- bracket_open: '[' '='* '['
- bracket_content: <any text not containing a `bracket_close` with
- : the same number of '=' as the `bracket_open`>
- bracket_close: ']' '='* ']'
-
-.. raw:: latex
-
- \end{small}
-
-An opening bracket is written ``[`` followed by zero or more ``=`` followed
-by ``[``. The corresponding closing bracket is written ``]`` followed
-by the same number of ``=`` followed by ``]``.
-Brackets do not nest. A unique length may always be chosen
-for the opening and closing brackets to contain closing brackets
-of other lengths.
-
-Bracket argument content consists of all text between the opening
-and closing brackets, except that one newline immediately following
-the opening bracket, if any, is ignored. No evaluation of the
-enclosed content, such as `Escape Sequences`_ or `Variable References`_,
-is performed. A bracket argument is always given to the command
-invocation as exactly one argument.
-
-.. No code-block syntax highlighting in the following example
- (long string literal not supported by our cmake.py)
-
-For example::
-
- message([=[
- This is the first line in a bracket argument with bracket length 1.
- No \-escape sequences or ${variable} references are evaluated.
- This is always one argument even though it contains a ; character.
- The text does not end on a closing bracket of length 0 like ]].
- It does end in a closing bracket of length 1.
- ]=])
-
-.. note::
- CMake versions prior to 3.0 do not support bracket arguments.
- They interpret the opening bracket as the start of an
- `Unquoted Argument`_.
-
-.. _`Lua`: http://www.lua.org/
-
-.. _`Quoted Argument`:
-
-Quoted Argument
-^^^^^^^^^^^^^^^
-
-A *quoted argument* encloses content between opening and closing
-double-quote characters:
-
-.. raw:: latex
-
- \begin{small}
-
-.. productionlist::
- quoted_argument: '"' `quoted_element`* '"'
- quoted_element: <any character except '\' or '"'> |
- : `escape_sequence` |
- : `quoted_continuation`
- quoted_continuation: '\' `newline`
-
-.. raw:: latex
-
- \end{small}
-
-Quoted argument content consists of all text between opening and
-closing quotes. Both `Escape Sequences`_ and `Variable References`_
-are evaluated. A quoted argument is always given to the command
-invocation as exactly one argument.
-
-.. No code-block syntax highlighting in the following example
- (escape \" not supported by our cmake.py)
-
-For example:
-
-.. code-block:: cmake
-
- message("This is a quoted argument containing multiple lines.
- This is always one argument even though it contains a ; character.
- Both \\-escape sequences and ${variable} references are evaluated.
- The text does not end on an escaped double-quote like \".
- It does end in an unescaped double quote.
- ")
-
-.. No code-block syntax highlighting in the following example
- (for conformity with the two above examples)
-
-The final ``\`` on any line ending in an odd number of backslashes
-is treated as a line continuation and ignored along with the
-immediately following newline character. For example:
-
-.. code-block:: cmake
-
- message("\
- This is the first line of a quoted argument. \
- In fact it is the only line but since it is long \
- the source code uses line continuation.\
- ")
-
-.. note::
- CMake versions prior to 3.0 do not support continuation with ``\``.
- They report errors in quoted arguments containing lines ending in
- an odd number of ``\`` characters.
-
-.. _`Unquoted Argument`:
-
-Unquoted Argument
-^^^^^^^^^^^^^^^^^
-
-An *unquoted argument* is not enclosed by any quoting syntax.
-It may not contain any whitespace, ``(``, ``)``, ``#``, ``"``, or ``\``
-except when escaped by a backslash:
-
-.. raw:: latex
-
- \begin{small}
-
-.. productionlist::
- unquoted_argument: `unquoted_element`+ | `unquoted_legacy`
- unquoted_element: <any character except whitespace or one of '()#"\'> |
- : `escape_sequence`
- unquoted_legacy: <see note in text>
-
-.. raw:: latex
-
- \end{small}
-
-Unquoted argument content consists of all text in a contiguous block
-of allowed or escaped characters. Both `Escape Sequences`_ and
-`Variable References`_ are evaluated. The resulting value is divided
-in the same way `Lists`_ divide into elements. Each non-empty element
-is given to the command invocation as an argument. Therefore an
-unquoted argument may be given to a command invocation as zero or
-more arguments.
-
-For example:
-
-.. code-block:: cmake
-
- foreach(arg
- NoSpace
- Escaped\ Space
- This;Divides;Into;Five;Arguments
- Escaped\;Semicolon
- )
- message("${arg}")
- endforeach()
-
-.. note::
- To support legacy CMake code, unquoted arguments may also contain
- double-quoted strings (``"..."``, possibly enclosing horizontal
- whitespace), and make-style variable references (``$(MAKEVAR)``).
-
- Unescaped double-quotes must balance, may not appear at the
- beginning of an unquoted argument, and are treated as part of the
- content. For example, the unquoted arguments ``-Da="b c"``,
- ``-Da=$(v)``, and ``a" "b"c"d`` are each interpreted literally.
- They may instead be written as quoted arguments ``"-Da=\"b c\""``,
- ``"-Da=$(v)"``, and ``"a\" \"b\"c\"d"``, respectively.
-
- Make-style references are treated literally as part of the content
- and do not undergo variable expansion. They are treated as part
- of a single argument (rather than as separate ``$``, ``(``,
- ``MAKEVAR``, and ``)`` arguments).
-
- The above "unquoted_legacy" production represents such arguments.
- We do not recommend using legacy unquoted arguments in new code.
- Instead use a `Quoted Argument`_ or a `Bracket Argument`_ to
- represent the content.
-
-.. _`Escape Sequences`:
-
-Escape Sequences
-----------------
-
-An *escape sequence* is a ``\`` followed by one character:
-
-.. raw:: latex
-
- \begin{small}
-
-.. productionlist::
- escape_sequence: `escape_identity` | `escape_encoded` | `escape_semicolon`
- escape_identity: '\' <match '[^A-Za-z0-9;]'>
- escape_encoded: '\t' | '\r' | '\n'
- escape_semicolon: '\;'
-
-.. raw:: latex
-
- \end{small}
-
-A ``\`` followed by a non-alphanumeric character simply encodes the literal
-character without interpreting it as syntax. A ``\t``, ``\r``, or ``\n``
-encodes a tab, carriage return, or newline character, respectively. A ``\;``
-outside of any `Variable References`_ encodes itself but may be used in an
-`Unquoted Argument`_ to encode the ``;`` without dividing the argument
-value on it. A ``\;`` inside `Variable References`_ encodes the literal
-``;`` character. (See also policy :policy:`CMP0053` documentation for
-historical considerations.)
-
-.. _`Variable References`:
-
-Variable References
--------------------
-
-A *variable reference* has the form ``${<variable>}`` and is
-evaluated inside a `Quoted Argument`_ or an `Unquoted Argument`_.
-A variable reference is replaced by the value of the variable,
-or by the empty string if the variable is not set.
-Variable references can nest and are evaluated from the
-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 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.
-
-An *environment variable reference* has the form ``$ENV{<variable>}``.
-See the `Environment Variables`_ section for more information.
-
-A *cache variable reference* has the form ``$CACHE{<variable>}``.
-See :variable:`CACHE` for more information.
-
-The :command:`if` command has a special condition syntax that
-allows for variable references in the short form ``<variable>``
-instead of ``${<variable>}``.
-However, environment and cache variables always need to be
-referenced as ``$ENV{<variable>}`` or ``$CACHE{<variable>}``.
-
-Comments
---------
-
-A comment starts with a ``#`` character that is not inside a
-`Bracket Argument`_, `Quoted Argument`_, or escaped with ``\``
-as part of an `Unquoted Argument`_. There are two types of
-comments: a `Bracket Comment`_ and a `Line Comment`_.
-
-.. _`Bracket Comment`:
-
-Bracket Comment
-^^^^^^^^^^^^^^^
-
-A ``#`` immediately followed by a :token:`bracket_open` forms a
-*bracket comment* consisting of the entire bracket enclosure:
-
-.. raw:: latex
-
- \begin{small}
-
-.. productionlist::
- bracket_comment: '#' `bracket_argument`
-
-.. raw:: latex
-
- \end{small}
-
-For example:
-
-::
-
- #[[This is a bracket comment.
- It runs until the close bracket.]]
- message("First Argument\n" #[[Bracket Comment]] "Second Argument")
-
-.. note::
- CMake versions prior to 3.0 do not support bracket comments.
- They interpret the opening ``#`` as the start of a `Line Comment`_.
-
-.. _`Line Comment`:
-
-Line Comment
-^^^^^^^^^^^^
-
-A ``#`` not immediately followed by a :token:`bracket_open` forms a
-*line comment* that runs until the end of the line:
-
-.. raw:: latex
-
- \begin{small}
-
-.. productionlist::
- line_comment: '#' <any text not starting in a `bracket_open`
- : and not containing a `newline`>
-
-.. raw:: latex
-
- \end{small}
-
-For example:
-
-.. code-block:: cmake
-
- # This is a line comment.
- message("First Argument\n" # This is a line comment :)
- "Second Argument") # This is a line comment.
-
-Control Structures
-==================
-
-Conditional Blocks
-------------------
-
-The :command:`if`/:command:`elseif`/:command:`else`/:command:`endif`
-commands delimit code blocks to be executed conditionally.
-
-Loops
------
-
-The :command:`foreach`/:command:`endforeach` and
-:command:`while`/:command:`endwhile` commands delimit code
-blocks to be executed in a loop. Inside such blocks the
-:command:`break` command may be used to terminate the loop
-early whereas the :command:`continue` command may be used
-to start with the next iteration immediately.
-
-Command Definitions
--------------------
-
-The :command:`macro`/:command:`endmacro`, and
-:command:`function`/:command:`endfunction` commands delimit
-code blocks to be recorded for later invocation as commands.
-
-.. _`CMake Language Variables`:
-
-Variables
-=========
-
-Variables are the basic unit of storage in the CMake Language.
-Their values are always of string type, though some commands may
-interpret the strings as values of other types.
-The :command:`set` and :command:`unset` commands explicitly
-set or unset a variable, but other commands have semantics
-that modify variables as well.
-Variable names are case-sensitive and may consist of almost
-any text, but we recommend sticking to names consisting only
-of alphanumeric characters plus ``_`` and ``-``.
-
-Variables have dynamic scope. Each variable "set" or "unset"
-creates a binding in the current scope:
-
-Function Scope
- `Command Definitions`_ created by the :command:`function` command
- create commands that, when invoked, process the recorded commands
- in a new variable binding scope. A variable "set" or "unset"
- binds in this scope and is visible for the current function and
- any nested calls within it, but not after the function returns.
-
-Directory Scope
- Each of the `Directories`_ in a source tree has its own variable
- bindings. Before processing the ``CMakeLists.txt`` file for a
- directory, CMake copies all variable bindings currently defined
- in the parent directory, if any, to initialize the new directory
- scope. CMake `Scripts`_, when processed with ``cmake -P``, bind
- variables in one "directory" scope.
-
- A variable "set" or "unset" not inside a function call binds
- to the current directory scope.
-
-Persistent Cache
- CMake stores a separate set of "cache" variables, or "cache entries",
- whose values persist across multiple runs within a project build
- tree. Cache entries have an isolated binding scope modified only
- by explicit request, such as by the ``CACHE`` option of the
- :command:`set` and :command:`unset` commands.
-
-When evaluating `Variable References`_, CMake first searches the
-function call stack, if any, for a binding and then falls back
-to the binding in the current directory scope, if any. If a
-"set" binding is found, its value is used. If an "unset" binding
-is found, or no binding is found, CMake then searches for a
-cache entry. If a cache entry is found, its value is used.
-Otherwise, the variable reference evaluates to an empty string.
-The ``$CACHE{VAR}`` syntax can be used to do direct cache entry
-lookups.
-
-The :manual:`cmake-variables(7)` manual documents the many variables
-that are provided by CMake or have meaning to CMake when set
-by project code.
-
-.. _`CMake Language Environment Variables`:
-
-Environment Variables
-=====================
-
-Environment Variables are like ordinary `Variables`_, with the
-following differences:
-
-Scope
- Environment variables have global scope in a CMake process.
- They are never cached.
-
-References
- `Variable References`_ have the form ``$ENV{<variable>}``.
-
-Initialization
- Initial values of the CMake environment variables are those of
- the calling process.
- Values can be changed using the :command:`set` and :command:`unset`
- commands.
- These commands only affect the running CMake process,
- not the system environment at large.
- Changed values are not written back to the calling process,
- and they are not seen by subsequent build or test processes.
-
-The :manual:`cmake-env-variables(7)` manual documents environment
-variables that have special meaning to CMake.
-
-.. _`CMake Language Lists`:
-
-Lists
-=====
-
-Although all values in CMake are stored as strings, a string
-may be treated as a list in certain contexts, such as during
-evaluation of an `Unquoted Argument`_. In such contexts, a string
-is divided into list elements by splitting on ``;`` characters not
-following an unequal number of ``[`` and ``]`` characters and not
-immediately preceded by a ``\``. The sequence ``\;`` does not
-divide a value but is replaced by ``;`` in the resulting element.
-
-A list of elements is represented as a string by concatenating
-the elements separated by ``;``. For example, the :command:`set`
-command stores multiple values into the destination variable
-as a list:
-
-.. code-block:: cmake
-
- set(srcs a.c b.c c.c) # sets "srcs" to "a.c;b.c;c.c"
-
-Lists are meant for simple use cases such as a list of source
-files and should not be used for complex data processing tasks.
-Most commands that construct lists do not escape ``;`` characters
-in list elements, thus flattening nested lists:
-
-.. code-block:: cmake
-
- set(x a "b;c") # sets "x" to "a;b;c", not "a;b\;c"
diff --git a/share/cmake-3.16/Help/manual/cmake-modules.7.rst b/share/cmake-3.16/Help/manual/cmake-modules.7.rst
deleted file mode 100644
index c60dc40..0000000
--- a/share/cmake-3.16/Help/manual/cmake-modules.7.rst
+++ /dev/null
@@ -1,317 +0,0 @@
-.. cmake-manual-description: CMake Modules Reference
-
-cmake-modules(7)
-****************
-
-The modules listed here are part of the CMake distribution.
-Projects may provide further modules; their location(s)
-can be specified in the :variable:`CMAKE_MODULE_PATH` variable.
-
-Utility Modules
-^^^^^^^^^^^^^^^
-
-These modules are loaded using the :command:`include` command.
-
-.. toctree::
- :maxdepth: 1
-
- /module/AddFileDependencies
- /module/AndroidTestUtilities
- /module/BundleUtilities
- /module/CheckCCompilerFlag
- /module/CheckCSourceCompiles
- /module/CheckCSourceRuns
- /module/CheckCXXCompilerFlag
- /module/CheckCXXSourceCompiles
- /module/CheckCXXSourceRuns
- /module/CheckCXXSymbolExists
- /module/CheckFortranCompilerFlag
- /module/CheckFortranFunctionExists
- /module/CheckFortranSourceCompiles
- /module/CheckFortranSourceRuns
- /module/CheckFunctionExists
- /module/CheckIPOSupported
- /module/CheckIncludeFileCXX
- /module/CheckIncludeFile
- /module/CheckIncludeFiles
- /module/CheckLanguage
- /module/CheckLibraryExists
- /module/CheckOBJCCompilerFlag
- /module/CheckOBJCSourceCompiles
- /module/CheckOBJCSourceRuns
- /module/CheckOBJCXXCompilerFlag
- /module/CheckOBJCXXSourceCompiles
- /module/CheckOBJCXXSourceRuns
- /module/CheckPIESupported
- /module/CheckPrototypeDefinition
- /module/CheckStructHasMember
- /module/CheckSymbolExists
- /module/CheckTypeSize
- /module/CheckVariableExists
- /module/CMakeAddFortranSubdirectory
- /module/CMakeBackwardCompatibilityCXX
- /module/CMakeDependentOption
- /module/CMakeFindDependencyMacro
- /module/CMakeFindFrameworks
- /module/CMakeFindPackageMode
- /module/CMakeGraphVizOptions
- /module/CMakePackageConfigHelpers
- /module/CMakePrintHelpers
- /module/CMakePrintSystemInformation
- /module/CMakePushCheckState
- /module/CMakeVerifyManifest
- /module/CPackComponent
- /module/CPackIFW
- /module/CPackIFWConfigureFile
- /module/CPack
- /module/CSharpUtilities
- /module/CTest
- /module/CTestCoverageCollectGCOV
- /module/CTestScriptMode
- /module/CTestUseLaunchers
- /module/Dart
- /module/DeployQt4
- /module/Documentation
- /module/ExternalData
- /module/ExternalProject
- /module/FeatureSummary
- /module/FetchContent
- /module/FindPackageHandleStandardArgs
- /module/FindPackageMessage
- /module/FortranCInterface
- /module/GenerateExportHeader
- /module/GetPrerequisites
- /module/GNUInstallDirs
- /module/GoogleTest
- /module/InstallRequiredSystemLibraries
- /module/ProcessorCount
- /module/SelectLibraryConfigurations
- /module/SquishTestScript
- /module/TestBigEndian
- /module/TestForANSIForScope
- /module/TestForANSIStreamHeaders
- /module/TestForSSTREAM
- /module/TestForSTDNamespace
- /module/UseEcos
- /module/UseJavaClassFilelist
- /module/UseJava
- /module/UseJavaSymlinks
- /module/UseSWIG
- /module/UsewxWidgets
- /module/WriteCompilerDetectionHeader
-
-Find Modules
-^^^^^^^^^^^^
-
-These modules search for third-party software.
-They are normally called through the :command:`find_package` command.
-
-.. toctree::
- :maxdepth: 1
-
- /module/FindALSA
- /module/FindArmadillo
- /module/FindASPELL
- /module/FindAVIFile
- /module/FindBISON
- /module/FindBLAS
- /module/FindBacktrace
- /module/FindBoost
- /module/FindBullet
- /module/FindBZip2
- /module/FindCABLE
- /module/FindCoin3D
- /module/FindCups
- /module/FindCURL
- /module/FindCurses
- /module/FindCVS
- /module/FindCxxTest
- /module/FindCygwin
- /module/FindDart
- /module/FindDCMTK
- /module/FindDevIL
- /module/FindDoxygen
- /module/FindEnvModules
- /module/FindEXPAT
- /module/FindFLEX
- /module/FindFLTK2
- /module/FindFLTK
- /module/FindFontconfig
- /module/FindFreetype
- /module/FindGCCXML
- /module/FindGDAL
- /module/FindGettext
- /module/FindGIF
- /module/FindGit
- /module/FindGLEW
- /module/FindGLUT
- /module/FindGnuplot
- /module/FindGnuTLS
- /module/FindGSL
- /module/FindGTest
- /module/FindGTK2
- /module/FindGTK
- /module/FindHDF5
- /module/FindHg
- /module/FindHSPELL
- /module/FindHTMLHelp
- /module/FindIce
- /module/FindIcotool
- /module/FindICU
- /module/FindImageMagick
- /module/FindIconv
- /module/FindIntl
- /module/FindITK
- /module/FindJasper
- /module/FindJava
- /module/FindJNI
- /module/FindJPEG
- /module/FindKDE3
- /module/FindKDE4
- /module/FindLAPACK
- /module/FindLATEX
- /module/FindLibArchive
- /module/FindLibinput
- /module/FindLibLZMA
- /module/FindLibXml2
- /module/FindLibXslt
- /module/FindLTTngUST
- /module/FindLua50
- /module/FindLua51
- /module/FindLua
- /module/FindMatlab
- /module/FindMFC
- /module/FindMotif
- /module/FindMPEG2
- /module/FindMPEG
- /module/FindMPI
- /module/FindODBC
- /module/FindOpenACC
- /module/FindOpenAL
- /module/FindOpenCL
- /module/FindOpenGL
- /module/FindOpenMP
- /module/FindOpenSceneGraph
- /module/FindOpenSSL
- /module/FindOpenThreads
- /module/FindosgAnimation
- /module/FindosgDB
- /module/Findosg_functions
- /module/FindosgFX
- /module/FindosgGA
- /module/FindosgIntrospection
- /module/FindosgManipulator
- /module/FindosgParticle
- /module/FindosgPresentation
- /module/FindosgProducer
- /module/FindosgQt
- /module/Findosg
- /module/FindosgShadow
- /module/FindosgSim
- /module/FindosgTerrain
- /module/FindosgText
- /module/FindosgUtil
- /module/FindosgViewer
- /module/FindosgVolume
- /module/FindosgWidget
- /module/FindPatch
- /module/FindPerlLibs
- /module/FindPerl
- /module/FindPHP4
- /module/FindPhysFS
- /module/FindPike
- /module/FindPkgConfig
- /module/FindPNG
- /module/FindPostgreSQL
- /module/FindProducer
- /module/FindProtobuf
- /module/FindPython
- /module/FindPython2
- /module/FindPython3
- /module/FindQt3
- /module/FindQt4
- /module/FindQuickTime
- /module/FindRTI
- /module/FindRuby
- /module/FindSDL_image
- /module/FindSDL_mixer
- /module/FindSDL_net
- /module/FindSDL
- /module/FindSDL_sound
- /module/FindSDL_ttf
- /module/FindSelfPackers
- /module/FindSquish
- /module/FindSQLite3
- /module/FindSubversion
- /module/FindSWIG
- /module/FindTCL
- /module/FindTclsh
- /module/FindTclStub
- /module/FindThreads
- /module/FindTIFF
- /module/FindUnixCommands
- /module/FindVTK
- /module/FindVulkan
- /module/FindWget
- /module/FindWish
- /module/FindwxWidgets
- /module/FindXCTest
- /module/FindXalanC
- /module/FindXercesC
- /module/FindX11
- /module/FindXMLRPC
- /module/FindZLIB
-
-Deprecated Modules
-^^^^^^^^^^^^^^^^^^^
-
-Deprecated Utility Modules
-==========================
-
-.. toctree::
- :maxdepth: 1
-
- /module/CMakeDetermineVSServicePack
- /module/CMakeExpandImportedTargets
- /module/CMakeForceCompiler
- /module/CMakeParseArguments
- /module/MacroAddFileDependencies
- /module/TestCXXAcceptsFlag
- /module/UsePkgConfig
- /module/Use_wxWindows
- /module/WriteBasicConfigVersionFile
-
-Deprecated Find Modules
-=======================
-
-.. toctree::
- :maxdepth: 1
-
- /module/FindCUDA
- /module/FindPythonInterp
- /module/FindPythonLibs
- /module/FindQt
- /module/FindwxWindows
-
-Legacy CPack Modules
-====================
-
-These modules used to be mistakenly exposed to the user, and have been moved
-out of user visibility. They are for CPack internal use, and should never be
-used directly.
-
-.. toctree::
- :maxdepth: 1
-
- /module/CPackArchive
- /module/CPackBundle
- /module/CPackCygwin
- /module/CPackDeb
- /module/CPackDMG
- /module/CPackFreeBSD
- /module/CPackNSIS
- /module/CPackNuGet
- /module/CPackPackageMaker
- /module/CPackProductBuild
- /module/CPackRPM
- /module/CPackWIX
diff --git a/share/cmake-3.16/Help/manual/cmake-policies.7.rst b/share/cmake-3.16/Help/manual/cmake-policies.7.rst
deleted file mode 100644
index 44ea1a8..0000000
--- a/share/cmake-3.16/Help/manual/cmake-policies.7.rst
+++ /dev/null
@@ -1,270 +0,0 @@
-.. cmake-manual-description: CMake Policies Reference
-
-cmake-policies(7)
-*****************
-
-.. only:: html
-
- .. contents::
-
-Introduction
-============
-
-Policies in CMake are used to preserve backward compatible behavior
-across multiple releases. When a new policy is introduced, newer CMake
-versions will begin to warn about the backward compatible behavior. It
-is possible to disable the warning by explicitly requesting the OLD, or
-backward compatible behavior using the :command:`cmake_policy` command.
-It is also possible to request ``NEW``, or non-backward compatible behavior
-for a policy, also avoiding the warning. Each policy can also be set to
-either ``NEW`` or ``OLD`` behavior explicitly on the command line with the
-:variable:`CMAKE_POLICY_DEFAULT_CMP<NNNN>` variable.
-
-A policy is a deprecation mechanism and not a reliable feature toggle.
-A policy should almost never be set to ``OLD``, except to silence warnings
-in an otherwise frozen or stable codebase, or temporarily as part of a
-larger migration path. The ``OLD`` behavior of each policy is undesirable
-and will be replaced with an error condition in a future release.
-
-The :command:`cmake_minimum_required` command does more than report an
-error if a too-old version of CMake is used to build a project. It
-also sets all policies introduced in that CMake version or earlier to
-``NEW`` behavior. To manage policies without increasing the minimum required
-CMake version, the :command:`if(POLICY)` command may be used:
-
-.. code-block:: cmake
-
- if(POLICY CMP0990)
- cmake_policy(SET CMP0990 NEW)
- endif()
-
-This has the effect of using the ``NEW`` behavior with newer CMake releases which
-users may be using and not issuing a compatibility warning.
-
-The setting of a policy is confined in some cases to not propagate to the
-parent scope. For example, if the files read by the :command:`include` command
-or the :command:`find_package` command contain a use of :command:`cmake_policy`,
-that policy setting will not affect the caller by default. Both commands accept
-an optional ``NO_POLICY_SCOPE`` keyword to control this behavior.
-
-The :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` variable may also be used
-to determine whether to report an error on use of deprecated macros or
-functions.
-
-Policies Introduced by CMake 3.16
-=================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0097: ExternalProject_Add with GIT_SUBMODULES "" initializes no submodules. </policy/CMP0097>
- CMP0096: project() preserves leading zeros in version components. </policy/CMP0096>
- CMP0095: RPATH entries are properly escaped in the intermediary CMake install script. </policy/CMP0095>
-
-Policies Introduced by CMake 3.15
-=================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0094: FindPython3, FindPython2 and FindPython use LOCATION for lookup strategy. </policy/CMP0094>
- CMP0093: FindBoost reports Boost_VERSION in x.y.z format. </policy/CMP0093>
- CMP0092: MSVC warning flags are not in CMAKE_{C,CXX}_FLAGS by default. </policy/CMP0092>
- CMP0091: MSVC runtime library flags are selected by an abstraction. </policy/CMP0091>
- CMP0090: export(PACKAGE) does not populate package registry by default. </policy/CMP0090>
- CMP0089: Compiler id for IBM Clang-based XL compilers is now XLClang. </policy/CMP0089>
-
-Policies Introduced by CMake 3.14
-=================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0088: FindBISON runs bison in CMAKE_CURRENT_BINARY_DIR when executing. </policy/CMP0088>
- CMP0087: install(SCRIPT | CODE) supports generator expressions. </policy/CMP0087>
- CMP0086: UseSWIG honors SWIG_MODULE_NAME via -module flag. </policy/CMP0086>
- CMP0085: IN_LIST generator expression handles empty list items. </policy/CMP0085>
- CMP0084: The FindQt module does not exist for find_package(). </policy/CMP0084>
- CMP0083: Add PIE options when linking executable. </policy/CMP0083>
- CMP0082: Install rules from add_subdirectory() are interleaved with those in caller. </policy/CMP0082>
-
-
-Policies Introduced by CMake 3.13
-=================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0081: Relative paths not allowed in LINK_DIRECTORIES target property. </policy/CMP0081>
- CMP0080: BundleUtilities cannot be included at configure time. </policy/CMP0080>
- CMP0079: target_link_libraries allows use with targets in other directories. </policy/CMP0079>
- CMP0078: UseSWIG generates standard target names. </policy/CMP0078>
- CMP0077: option() honors normal variables. </policy/CMP0077>
- CMP0076: target_sources() command converts relative paths to absolute. </policy/CMP0076>
-
-Policies Introduced by CMake 3.12
-=================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0075: Include file check macros honor CMAKE_REQUIRED_LIBRARIES. </policy/CMP0075>
- CMP0074: find_package uses PackageName_ROOT variables. </policy/CMP0074>
- CMP0073: Do not produce legacy _LIB_DEPENDS cache entries. </policy/CMP0073>
-
-Policies Introduced by CMake 3.11
-=================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0072: FindOpenGL prefers GLVND by default when available. </policy/CMP0072>
-
-Policies Introduced by CMake 3.10
-=================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0071: Let AUTOMOC and AUTOUIC process GENERATED files. </policy/CMP0071>
- CMP0070: Define file(GENERATE) behavior for relative paths. </policy/CMP0070>
-
-Policies Introduced by CMake 3.9
-================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0069: INTERPROCEDURAL_OPTIMIZATION is enforced when enabled. </policy/CMP0069>
- CMP0068: RPATH settings on macOS do not affect install_name. </policy/CMP0068>
-
-Policies Introduced by CMake 3.8
-================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0067: Honor language standard in try_compile() source-file signature. </policy/CMP0067>
-
-Policies Introduced by CMake 3.7
-================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0066: Honor per-config flags in try_compile() source-file signature. </policy/CMP0066>
-
-Policies Introduced by CMake 3.4
-================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0065: Do not add flags to export symbols from executables without the ENABLE_EXPORTS target property. </policy/CMP0065>
- CMP0064: Support new TEST if() operator. </policy/CMP0064>
-
-Policies Introduced by CMake 3.3
-================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0063: Honor visibility properties for all target types. </policy/CMP0063>
- CMP0062: Disallow install() of export() result. </policy/CMP0062>
- CMP0061: CTest does not by default tell make to ignore errors (-i). </policy/CMP0061>
- CMP0060: Link libraries by full path even in implicit directories. </policy/CMP0060>
- CMP0059: Do not treat DEFINITIONS as a built-in directory property. </policy/CMP0059>
- CMP0058: Ninja requires custom command byproducts to be explicit. </policy/CMP0058>
- CMP0057: Support new IN_LIST if() operator. </policy/CMP0057>
-
-Policies Introduced by CMake 3.2
-================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0056: Honor link flags in try_compile() source-file signature. </policy/CMP0056>
- CMP0055: Strict checking for break() command. </policy/CMP0055>
-
-Policies Introduced by CMake 3.1
-================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0054: Only interpret if() arguments as variables or keywords when unquoted. </policy/CMP0054>
- CMP0053: Simplify variable reference and escape sequence evaluation. </policy/CMP0053>
- CMP0052: Reject source and build dirs in installed INTERFACE_INCLUDE_DIRECTORIES. </policy/CMP0052>
- CMP0051: List TARGET_OBJECTS in SOURCES target property. </policy/CMP0051>
-
-Policies Introduced by CMake 3.0
-================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0050: Disallow add_custom_command SOURCE signatures. </policy/CMP0050>
- CMP0049: Do not expand variables in target source entries. </policy/CMP0049>
- CMP0048: project() command manages VERSION variables. </policy/CMP0048>
- CMP0047: Use QCC compiler id for the qcc drivers on QNX. </policy/CMP0047>
- CMP0046: Error on non-existent dependency in add_dependencies. </policy/CMP0046>
- CMP0045: Error on non-existent target in get_target_property. </policy/CMP0045>
- CMP0044: Case sensitive Lang_COMPILER_ID generator expressions. </policy/CMP0044>
- CMP0043: Ignore COMPILE_DEFINITIONS_Config properties. </policy/CMP0043>
- CMP0042: MACOSX_RPATH is enabled by default. </policy/CMP0042>
- CMP0041: Error on relative include with generator expression. </policy/CMP0041>
- CMP0040: The target in the TARGET signature of add_custom_command() must exist. </policy/CMP0040>
- CMP0039: Utility targets may not have link dependencies. </policy/CMP0039>
- CMP0038: Targets may not link directly to themselves. </policy/CMP0038>
- CMP0037: Target names should not be reserved and should match a validity pattern. </policy/CMP0037>
- CMP0036: The build_name command should not be called. </policy/CMP0036>
- CMP0035: The variable_requires command should not be called. </policy/CMP0035>
- CMP0034: The utility_source command should not be called. </policy/CMP0034>
- CMP0033: The export_library_dependencies command should not be called. </policy/CMP0033>
- CMP0032: The output_required_files command should not be called. </policy/CMP0032>
- CMP0031: The load_command command should not be called. </policy/CMP0031>
- CMP0030: The use_mangled_mesa command should not be called. </policy/CMP0030>
- CMP0029: The subdir_depends command should not be called. </policy/CMP0029>
- CMP0028: Double colon in target name means ALIAS or IMPORTED target. </policy/CMP0028>
- CMP0027: Conditionally linked imported targets with missing include directories. </policy/CMP0027>
- CMP0026: Disallow use of the LOCATION target property. </policy/CMP0026>
- CMP0025: Compiler id for Apple Clang is now AppleClang. </policy/CMP0025>
- CMP0024: Disallow include export result. </policy/CMP0024>
-
-Policies Introduced by CMake 2.8
-================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0023: Plain and keyword target_link_libraries signatures cannot be mixed. </policy/CMP0023>
- CMP0022: INTERFACE_LINK_LIBRARIES defines the link interface. </policy/CMP0022>
- CMP0021: Fatal error on relative paths in INCLUDE_DIRECTORIES target property. </policy/CMP0021>
- CMP0020: Automatically link Qt executables to qtmain target on Windows. </policy/CMP0020>
- CMP0019: Do not re-expand variables in include and link information. </policy/CMP0019>
- CMP0018: Ignore CMAKE_SHARED_LIBRARY_Lang_FLAGS variable. </policy/CMP0018>
- CMP0017: Prefer files from the CMake module directory when including from there. </policy/CMP0017>
- CMP0016: target_link_libraries() reports error if its only argument is not a target. </policy/CMP0016>
- CMP0015: link_directories() treats paths relative to the source dir. </policy/CMP0015>
- CMP0014: Input directories must have CMakeLists.txt. </policy/CMP0014>
- CMP0013: Duplicate binary directories are not allowed. </policy/CMP0013>
- CMP0012: if() recognizes numbers and boolean constants. </policy/CMP0012>
-
-Policies Introduced by CMake 2.6
-================================
-
-.. toctree::
- :maxdepth: 1
-
- CMP0011: Included scripts do automatic cmake_policy PUSH and POP. </policy/CMP0011>
- CMP0010: Bad variable reference syntax is an error. </policy/CMP0010>
- CMP0009: FILE GLOB_RECURSE calls should not follow symlinks by default. </policy/CMP0009>
- CMP0008: Libraries linked by full-path must have a valid library file name. </policy/CMP0008>
- CMP0007: list command no longer ignores empty elements. </policy/CMP0007>
- CMP0006: Installing MACOSX_BUNDLE targets requires a BUNDLE DESTINATION. </policy/CMP0006>
- CMP0005: Preprocessor definition values are now escaped automatically. </policy/CMP0005>
- CMP0004: Libraries linked may not have leading or trailing whitespace. </policy/CMP0004>
- CMP0003: Libraries linked via full path no longer produce linker search paths. </policy/CMP0003>
- CMP0002: Logical target names must be globally unique. </policy/CMP0002>
- CMP0001: CMAKE_BACKWARDS_COMPATIBILITY should no longer be used. </policy/CMP0001>
- CMP0000: A minimum required CMake version must be specified. </policy/CMP0000>
diff --git a/share/cmake-3.16/Help/manual/cmake-properties.7.rst b/share/cmake-3.16/Help/manual/cmake-properties.7.rst
deleted file mode 100644
index e704371..0000000
--- a/share/cmake-3.16/Help/manual/cmake-properties.7.rst
+++ /dev/null
@@ -1,552 +0,0 @@
-.. cmake-manual-description: CMake Properties Reference
-
-cmake-properties(7)
-*******************
-
-.. only:: html
-
- .. contents::
-
-.. _`Global Properties`:
-
-Properties of Global Scope
-==========================
-
-.. toctree::
- :maxdepth: 1
-
- /prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS
- /prop_gbl/AUTOGEN_SOURCE_GROUP
- /prop_gbl/AUTOGEN_TARGETS_FOLDER
- /prop_gbl/AUTOMOC_SOURCE_GROUP
- /prop_gbl/AUTOMOC_TARGETS_FOLDER
- /prop_gbl/AUTORCC_SOURCE_GROUP
- /prop_gbl/CMAKE_C_KNOWN_FEATURES
- /prop_gbl/CMAKE_CXX_KNOWN_FEATURES
- /prop_gbl/CMAKE_ROLE
- /prop_gbl/DEBUG_CONFIGURATIONS
- /prop_gbl/DISABLED_FEATURES
- /prop_gbl/ENABLED_FEATURES
- /prop_gbl/ENABLED_LANGUAGES
- /prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS
- /prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS
- /prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS
- /prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING
- /prop_gbl/GENERATOR_IS_MULTI_CONFIG
- /prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE
- /prop_gbl/GLOBAL_DEPENDS_NO_CYCLES
- /prop_gbl/IN_TRY_COMPILE
- /prop_gbl/PACKAGES_FOUND
- /prop_gbl/PACKAGES_NOT_FOUND
- /prop_gbl/JOB_POOLS
- /prop_gbl/PREDEFINED_TARGETS_FOLDER
- /prop_gbl/ECLIPSE_EXTRA_NATURES
- /prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS
- /prop_gbl/REPORT_UNDEFINED_PROPERTIES
- /prop_gbl/RULE_LAUNCH_COMPILE
- /prop_gbl/RULE_LAUNCH_CUSTOM
- /prop_gbl/RULE_LAUNCH_LINK
- /prop_gbl/RULE_MESSAGES
- /prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS
- /prop_gbl/TARGET_MESSAGES
- /prop_gbl/TARGET_SUPPORTS_SHARED_LIBS
- /prop_gbl/USE_FOLDERS
- /prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME
-
-.. _`Directory Properties`:
-
-Properties on Directories
-=========================
-
-.. toctree::
- :maxdepth: 1
-
- /prop_dir/ADDITIONAL_CLEAN_FILES
- /prop_dir/BINARY_DIR
- /prop_dir/BUILDSYSTEM_TARGETS
- /prop_dir/CACHE_VARIABLES
- /prop_dir/CLEAN_NO_CUSTOM
- /prop_dir/CMAKE_CONFIGURE_DEPENDS
- /prop_dir/COMPILE_DEFINITIONS
- /prop_dir/COMPILE_OPTIONS
- /prop_dir/DEFINITIONS
- /prop_dir/EXCLUDE_FROM_ALL
- /prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM
- /prop_dir/INCLUDE_DIRECTORIES
- /prop_dir/INCLUDE_REGULAR_EXPRESSION
- /prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG
- /prop_dir/INTERPROCEDURAL_OPTIMIZATION
- /prop_dir/LABELS
- /prop_dir/LINK_DIRECTORIES
- /prop_dir/LINK_OPTIONS
- /prop_dir/LISTFILE_STACK
- /prop_dir/MACROS
- /prop_dir/PARENT_DIRECTORY
- /prop_dir/RULE_LAUNCH_COMPILE
- /prop_dir/RULE_LAUNCH_CUSTOM
- /prop_dir/RULE_LAUNCH_LINK
- /prop_dir/SOURCE_DIR
- /prop_dir/SUBDIRECTORIES
- /prop_dir/TESTS
- /prop_dir/TEST_INCLUDE_FILES
- /prop_dir/VARIABLES
- /prop_dir/VS_GLOBAL_SECTION_POST_section
- /prop_dir/VS_GLOBAL_SECTION_PRE_section
- /prop_dir/VS_STARTUP_PROJECT
-
-.. _`Target Properties`:
-
-Properties on Targets
-=====================
-
-.. toctree::
- :maxdepth: 1
-
- /prop_tgt/ADDITIONAL_CLEAN_FILES
- /prop_tgt/ALIASED_TARGET
- /prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS
- /prop_tgt/ANDROID_API
- /prop_tgt/ANDROID_API_MIN
- /prop_tgt/ANDROID_ARCH
- /prop_tgt/ANDROID_ASSETS_DIRECTORIES
- /prop_tgt/ANDROID_GUI
- /prop_tgt/ANDROID_JAR_DEPENDENCIES
- /prop_tgt/ANDROID_JAR_DIRECTORIES
- /prop_tgt/ANDROID_JAVA_SOURCE_DIR
- /prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES
- /prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES
- /prop_tgt/ANDROID_PROCESS_MAX
- /prop_tgt/ANDROID_PROGUARD
- /prop_tgt/ANDROID_PROGUARD_CONFIG_PATH
- /prop_tgt/ANDROID_SECURE_PROPS_PATH
- /prop_tgt/ANDROID_SKIP_ANT_STEP
- /prop_tgt/ANDROID_STL_TYPE
- /prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG
- /prop_tgt/ARCHIVE_OUTPUT_DIRECTORY
- /prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG
- /prop_tgt/ARCHIVE_OUTPUT_NAME
- /prop_tgt/AUTOGEN_BUILD_DIR
- /prop_tgt/AUTOGEN_ORIGIN_DEPENDS
- /prop_tgt/AUTOGEN_PARALLEL
- /prop_tgt/AUTOGEN_TARGET_DEPENDS
- /prop_tgt/AUTOMOC_COMPILER_PREDEFINES
- /prop_tgt/AUTOMOC_DEPEND_FILTERS
- /prop_tgt/AUTOMOC_EXECUTABLE
- /prop_tgt/AUTOMOC_MACRO_NAMES
- /prop_tgt/AUTOMOC_MOC_OPTIONS
- /prop_tgt/AUTOMOC_PATH_PREFIX
- /prop_tgt/AUTOMOC
- /prop_tgt/AUTOUIC
- /prop_tgt/AUTOUIC_EXECUTABLE
- /prop_tgt/AUTOUIC_OPTIONS
- /prop_tgt/AUTOUIC_SEARCH_PATHS
- /prop_tgt/AUTORCC
- /prop_tgt/AUTORCC_EXECUTABLE
- /prop_tgt/AUTORCC_OPTIONS
- /prop_tgt/BINARY_DIR
- /prop_tgt/BUILD_RPATH
- /prop_tgt/BUILD_RPATH_USE_ORIGIN
- /prop_tgt/BUILD_WITH_INSTALL_NAME_DIR
- /prop_tgt/BUILD_WITH_INSTALL_RPATH
- /prop_tgt/BUNDLE_EXTENSION
- /prop_tgt/BUNDLE
- /prop_tgt/C_EXTENSIONS
- /prop_tgt/C_STANDARD
- /prop_tgt/C_STANDARD_REQUIRED
- /prop_tgt/COMMON_LANGUAGE_RUNTIME
- /prop_tgt/COMPATIBLE_INTERFACE_BOOL
- /prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX
- /prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN
- /prop_tgt/COMPATIBLE_INTERFACE_STRING
- /prop_tgt/COMPILE_DEFINITIONS
- /prop_tgt/COMPILE_FEATURES
- /prop_tgt/COMPILE_FLAGS
- /prop_tgt/COMPILE_OPTIONS
- /prop_tgt/COMPILE_PDB_NAME
- /prop_tgt/COMPILE_PDB_NAME_CONFIG
- /prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY
- /prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG
- /prop_tgt/CONFIG_OUTPUT_NAME
- /prop_tgt/CONFIG_POSTFIX
- /prop_tgt/CROSSCOMPILING_EMULATOR
- /prop_tgt/CUDA_PTX_COMPILATION
- /prop_tgt/CUDA_SEPARABLE_COMPILATION
- /prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS
- /prop_tgt/CUDA_EXTENSIONS
- /prop_tgt/CUDA_STANDARD
- /prop_tgt/CUDA_STANDARD_REQUIRED
- /prop_tgt/CXX_EXTENSIONS
- /prop_tgt/CXX_STANDARD
- /prop_tgt/CXX_STANDARD_REQUIRED
- /prop_tgt/DEBUG_POSTFIX
- /prop_tgt/DEFINE_SYMBOL
- /prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY
- /prop_tgt/DEPLOYMENT_ADDITIONAL_FILES
- /prop_tgt/DISABLE_PRECOMPILE_HEADERS
- /prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION
- /prop_tgt/EchoString
- /prop_tgt/ENABLE_EXPORTS
- /prop_tgt/EXCLUDE_FROM_ALL
- /prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG
- /prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD
- /prop_tgt/EXPORT_NAME
- /prop_tgt/EXPORT_PROPERTIES
- /prop_tgt/FOLDER
- /prop_tgt/Fortran_FORMAT
- /prop_tgt/Fortran_MODULE_DIRECTORY
- /prop_tgt/FRAMEWORK
- /prop_tgt/FRAMEWORK_VERSION
- /prop_tgt/GENERATOR_FILE_NAME
- /prop_tgt/GHS_INTEGRITY_APP
- /prop_tgt/GHS_NO_SOURCE_GROUP_FILE
- /prop_tgt/GNUtoMS
- /prop_tgt/HAS_CXX
- /prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM
- /prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME
- /prop_tgt/IMPORTED_CONFIGURATIONS
- /prop_tgt/IMPORTED_GLOBAL
- /prop_tgt/IMPORTED_IMPLIB_CONFIG
- /prop_tgt/IMPORTED_IMPLIB
- /prop_tgt/IMPORTED_LIBNAME_CONFIG
- /prop_tgt/IMPORTED_LIBNAME
- /prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG
- /prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES
- /prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG
- /prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES
- /prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG
- /prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES
- /prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG
- /prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY
- /prop_tgt/IMPORTED_LOCATION_CONFIG
- /prop_tgt/IMPORTED_LOCATION
- /prop_tgt/IMPORTED_NO_SONAME_CONFIG
- /prop_tgt/IMPORTED_NO_SONAME
- /prop_tgt/IMPORTED_OBJECTS_CONFIG
- /prop_tgt/IMPORTED_OBJECTS
- /prop_tgt/IMPORTED
- /prop_tgt/IMPORTED_SONAME_CONFIG
- /prop_tgt/IMPORTED_SONAME
- /prop_tgt/IMPORT_PREFIX
- /prop_tgt/IMPORT_SUFFIX
- /prop_tgt/INCLUDE_DIRECTORIES
- /prop_tgt/INSTALL_NAME_DIR
- /prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH
- /prop_tgt/INSTALL_RPATH
- /prop_tgt/INSTALL_RPATH_USE_LINK_PATH
- /prop_tgt/INTERFACE_AUTOUIC_OPTIONS
- /prop_tgt/INTERFACE_COMPILE_DEFINITIONS
- /prop_tgt/INTERFACE_COMPILE_FEATURES
- /prop_tgt/INTERFACE_COMPILE_OPTIONS
- /prop_tgt/INTERFACE_INCLUDE_DIRECTORIES
- /prop_tgt/INTERFACE_LINK_DEPENDS
- /prop_tgt/INTERFACE_LINK_DIRECTORIES
- /prop_tgt/INTERFACE_LINK_LIBRARIES
- /prop_tgt/INTERFACE_LINK_OPTIONS
- /prop_tgt/INTERFACE_PRECOMPILE_HEADERS
- /prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE
- /prop_tgt/INTERFACE_SOURCES
- /prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES
- /prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG
- /prop_tgt/INTERPROCEDURAL_OPTIMIZATION
- /prop_tgt/IOS_INSTALL_COMBINED
- /prop_tgt/JOB_POOL_COMPILE
- /prop_tgt/JOB_POOL_LINK
- /prop_tgt/LABELS
- /prop_tgt/LANG_CLANG_TIDY
- /prop_tgt/LANG_COMPILER_LAUNCHER
- /prop_tgt/LANG_CPPCHECK
- /prop_tgt/LANG_CPPLINT
- /prop_tgt/LANG_INCLUDE_WHAT_YOU_USE
- /prop_tgt/LANG_VISIBILITY_PRESET
- /prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG
- /prop_tgt/LIBRARY_OUTPUT_DIRECTORY
- /prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG
- /prop_tgt/LIBRARY_OUTPUT_NAME
- /prop_tgt/LINK_DEPENDS_NO_SHARED
- /prop_tgt/LINK_DEPENDS
- /prop_tgt/LINKER_LANGUAGE
- /prop_tgt/LINK_DIRECTORIES
- /prop_tgt/LINK_FLAGS_CONFIG
- /prop_tgt/LINK_FLAGS
- /prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG
- /prop_tgt/LINK_INTERFACE_LIBRARIES
- /prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG
- /prop_tgt/LINK_INTERFACE_MULTIPLICITY
- /prop_tgt/LINK_LIBRARIES
- /prop_tgt/LINK_OPTIONS
- /prop_tgt/LINK_SEARCH_END_STATIC
- /prop_tgt/LINK_SEARCH_START_STATIC
- /prop_tgt/LINK_WHAT_YOU_USE
- /prop_tgt/LOCATION_CONFIG
- /prop_tgt/LOCATION
- /prop_tgt/MACOSX_BUNDLE_INFO_PLIST
- /prop_tgt/MACOSX_BUNDLE
- /prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST
- /prop_tgt/MACOSX_RPATH
- /prop_tgt/MANUALLY_ADDED_DEPENDENCIES
- /prop_tgt/MAP_IMPORTED_CONFIG_CONFIG
- /prop_tgt/MSVC_RUNTIME_LIBRARY
- /prop_tgt/NAME
- /prop_tgt/NO_SONAME
- /prop_tgt/NO_SYSTEM_FROM_IMPORTED
- /prop_tgt/OBJC_EXTENSIONS
- /prop_tgt/OBJC_STANDARD
- /prop_tgt/OBJC_STANDARD_REQUIRED
- /prop_tgt/OBJCXX_EXTENSIONS
- /prop_tgt/OBJCXX_STANDARD
- /prop_tgt/OBJCXX_STANDARD_REQUIRED
- /prop_tgt/OSX_ARCHITECTURES_CONFIG
- /prop_tgt/OSX_ARCHITECTURES
- /prop_tgt/OUTPUT_NAME_CONFIG
- /prop_tgt/OUTPUT_NAME
- /prop_tgt/PDB_NAME_CONFIG
- /prop_tgt/PDB_NAME
- /prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG
- /prop_tgt/PDB_OUTPUT_DIRECTORY
- /prop_tgt/POSITION_INDEPENDENT_CODE
- /prop_tgt/PRECOMPILE_HEADERS
- /prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM
- /prop_tgt/PREFIX
- /prop_tgt/PRIVATE_HEADER
- /prop_tgt/PROJECT_LABEL
- /prop_tgt/PUBLIC_HEADER
- /prop_tgt/RESOURCE
- /prop_tgt/RULE_LAUNCH_COMPILE
- /prop_tgt/RULE_LAUNCH_CUSTOM
- /prop_tgt/RULE_LAUNCH_LINK
- /prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG
- /prop_tgt/RUNTIME_OUTPUT_DIRECTORY
- /prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG
- /prop_tgt/RUNTIME_OUTPUT_NAME
- /prop_tgt/SKIP_BUILD_RPATH
- /prop_tgt/SOURCE_DIR
- /prop_tgt/SOURCES
- /prop_tgt/SOVERSION
- /prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG
- /prop_tgt/STATIC_LIBRARY_FLAGS
- /prop_tgt/STATIC_LIBRARY_OPTIONS
- /prop_tgt/SUFFIX
- /prop_tgt/Swift_DEPENDENCIES_FILE
- /prop_tgt/Swift_LANGUAGE_VERSION
- /prop_tgt/Swift_MODULE_DIRECTORY
- /prop_tgt/Swift_MODULE_NAME
- /prop_tgt/TYPE
- /prop_tgt/UNITY_BUILD
- /prop_tgt/UNITY_BUILD_BATCH_SIZE
- /prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE
- /prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE
- /prop_tgt/VERSION
- /prop_tgt/VISIBILITY_INLINES_HIDDEN
- /prop_tgt/VS_CONFIGURATION_TYPE
- /prop_tgt/VS_DEBUGGER_COMMAND
- /prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS
- /prop_tgt/VS_DEBUGGER_ENVIRONMENT
- /prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY
- /prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION
- /prop_tgt/VS_DOTNET_REFERENCE_refname
- /prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname
- /prop_tgt/VS_DOTNET_REFERENCES
- /prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL
- /prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION
- /prop_tgt/VS_DPI_AWARE
- /prop_tgt/VS_GLOBAL_KEYWORD
- /prop_tgt/VS_GLOBAL_PROJECT_TYPES
- /prop_tgt/VS_GLOBAL_ROOTNAMESPACE
- /prop_tgt/VS_GLOBAL_variable
- /prop_tgt/VS_IOT_EXTENSIONS_VERSION
- /prop_tgt/VS_IOT_STARTUP_TASK
- /prop_tgt/VS_JUST_MY_CODE_DEBUGGING
- /prop_tgt/VS_KEYWORD
- /prop_tgt/VS_MOBILE_EXTENSIONS_VERSION
- /prop_tgt/VS_NO_SOLUTION_DEPLOY
- /prop_tgt/VS_PACKAGE_REFERENCES
- /prop_tgt/VS_PROJECT_IMPORT
- /prop_tgt/VS_SCC_AUXPATH
- /prop_tgt/VS_SCC_LOCALPATH
- /prop_tgt/VS_SCC_PROJECTNAME
- /prop_tgt/VS_SCC_PROVIDER
- /prop_tgt/VS_SDK_REFERENCES
- /prop_tgt/VS_USER_PROPS
- /prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION
- /prop_tgt/VS_WINRT_COMPONENT
- /prop_tgt/VS_WINRT_EXTENSIONS
- /prop_tgt/VS_WINRT_REFERENCES
- /prop_tgt/WIN32_EXECUTABLE
- /prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS
- /prop_tgt/XCODE_ATTRIBUTE_an-attribute
- /prop_tgt/XCODE_EXPLICIT_FILE_TYPE
- /prop_tgt/XCODE_GENERATE_SCHEME
- /prop_tgt/XCODE_PRODUCT_TYPE
- /prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER
- /prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
- /prop_tgt/XCODE_SCHEME_ARGUMENTS
- /prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT
- /prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING
- /prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
- /prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
- /prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
- /prop_tgt/XCODE_SCHEME_ENVIRONMENT
- /prop_tgt/XCODE_SCHEME_EXECUTABLE
- /prop_tgt/XCODE_SCHEME_GUARD_MALLOC
- /prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
- /prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES
- /prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE
- /prop_tgt/XCODE_SCHEME_MALLOC_STACK
- /prop_tgt/XCODE_SCHEME_THREAD_SANITIZER
- /prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP
- /prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
- /prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
- /prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS
- /prop_tgt/XCTEST
-
-.. _`Test Properties`:
-
-Properties on Tests
-===================
-
-.. toctree::
- :maxdepth: 1
-
- /prop_test/ATTACHED_FILES_ON_FAIL
- /prop_test/ATTACHED_FILES
- /prop_test/COST
- /prop_test/DEPENDS
- /prop_test/DISABLED
- /prop_test/ENVIRONMENT
- /prop_test/FAIL_REGULAR_EXPRESSION
- /prop_test/FIXTURES_CLEANUP
- /prop_test/FIXTURES_REQUIRED
- /prop_test/FIXTURES_SETUP
- /prop_test/LABELS
- /prop_test/MEASUREMENT
- /prop_test/PASS_REGULAR_EXPRESSION
- /prop_test/PROCESSOR_AFFINITY
- /prop_test/PROCESSORS
- /prop_test/REQUIRED_FILES
- /prop_test/RESOURCE_GROUPS
- /prop_test/RESOURCE_LOCK
- /prop_test/RUN_SERIAL
- /prop_test/SKIP_REGULAR_EXPRESSION
- /prop_test/SKIP_RETURN_CODE
- /prop_test/TIMEOUT
- /prop_test/TIMEOUT_AFTER_MATCH
- /prop_test/WILL_FAIL
- /prop_test/WORKING_DIRECTORY
-
-.. _`Source File Properties`:
-
-Properties on Source Files
-==========================
-
-.. toctree::
- :maxdepth: 1
-
- /prop_sf/ABSTRACT
- /prop_sf/AUTOUIC_OPTIONS
- /prop_sf/AUTORCC_OPTIONS
- /prop_sf/COMPILE_DEFINITIONS
- /prop_sf/COMPILE_FLAGS
- /prop_sf/COMPILE_OPTIONS
- /prop_sf/EXTERNAL_OBJECT
- /prop_sf/Fortran_FORMAT
- /prop_sf/GENERATED
- /prop_sf/HEADER_FILE_ONLY
- /prop_sf/INCLUDE_DIRECTORIES
- /prop_sf/KEEP_EXTENSION
- /prop_sf/LABELS
- /prop_sf/LANGUAGE
- /prop_sf/LOCATION
- /prop_sf/MACOSX_PACKAGE_LOCATION
- /prop_sf/OBJECT_DEPENDS
- /prop_sf/OBJECT_OUTPUTS
- /prop_sf/SKIP_AUTOGEN
- /prop_sf/SKIP_AUTOMOC
- /prop_sf/SKIP_AUTORCC
- /prop_sf/SKIP_AUTOUIC
- /prop_sf/SKIP_PRECOMPILE_HEADERS
- /prop_sf/SKIP_UNITY_BUILD_INCLUSION
- /prop_sf/Swift_DEPENDENCIES_FILE
- /prop_sf/Swift_DIAGNOSTICS_FILE
- /prop_sf/SYMBOLIC
- /prop_sf/VS_COPY_TO_OUT_DIR
- /prop_sf/VS_CSHARP_tagname
- /prop_sf/VS_DEPLOYMENT_CONTENT
- /prop_sf/VS_DEPLOYMENT_LOCATION
- /prop_sf/VS_INCLUDE_IN_VSIX
- /prop_sf/VS_RESOURCE_GENERATOR
- /prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS
- /prop_sf/VS_SHADER_ENABLE_DEBUG
- /prop_sf/VS_SHADER_ENTRYPOINT
- /prop_sf/VS_SHADER_FLAGS
- /prop_sf/VS_SHADER_MODEL
- /prop_sf/VS_SHADER_OBJECT_FILE_NAME
- /prop_sf/VS_SHADER_OUTPUT_HEADER_FILE
- /prop_sf/VS_SHADER_TYPE
- /prop_sf/VS_SHADER_VARIABLE_NAME
- /prop_sf/VS_TOOL_OVERRIDE.rst
- /prop_sf/VS_XAML_TYPE
- /prop_sf/WRAP_EXCLUDE
- /prop_sf/XCODE_EXPLICIT_FILE_TYPE
- /prop_sf/XCODE_FILE_ATTRIBUTES
- /prop_sf/XCODE_LAST_KNOWN_FILE_TYPE
-
-.. _`Cache Entry Properties`:
-
-Properties on Cache Entries
-===========================
-
-.. toctree::
- :maxdepth: 1
-
- /prop_cache/ADVANCED
- /prop_cache/HELPSTRING
- /prop_cache/MODIFIED
- /prop_cache/STRINGS
- /prop_cache/TYPE
- /prop_cache/VALUE
-
-.. _`Installed File Properties`:
-
-Properties on Installed Files
-=============================
-
-.. toctree::
- :maxdepth: 1
-
- /prop_inst/CPACK_DESKTOP_SHORTCUTS.rst
- /prop_inst/CPACK_NEVER_OVERWRITE.rst
- /prop_inst/CPACK_PERMANENT.rst
- /prop_inst/CPACK_START_MENU_SHORTCUTS.rst
- /prop_inst/CPACK_STARTUP_SHORTCUTS.rst
- /prop_inst/CPACK_WIX_ACL.rst
-
-
-Deprecated Properties on Directories
-====================================
-
-.. toctree::
- :maxdepth: 1
-
- /prop_dir/ADDITIONAL_MAKE_CLEAN_FILES
- /prop_dir/COMPILE_DEFINITIONS_CONFIG
- /prop_dir/TEST_INCLUDE_FILE
-
-
-Deprecated Properties on Targets
-================================
-
-.. toctree::
- :maxdepth: 1
-
- /prop_tgt/COMPILE_DEFINITIONS_CONFIG
- /prop_tgt/POST_INSTALL_SCRIPT
- /prop_tgt/PRE_INSTALL_SCRIPT
-
-
-Deprecated Properties on Source Files
-=====================================
-
-.. toctree::
- :maxdepth: 1
-
- /prop_sf/COMPILE_DEFINITIONS_CONFIG
diff --git a/share/cmake-3.16/Help/manual/cmake-toolchains.7.rst b/share/cmake-3.16/Help/manual/cmake-toolchains.7.rst
deleted file mode 100644
index f233d08..0000000
--- a/share/cmake-3.16/Help/manual/cmake-toolchains.7.rst
+++ /dev/null
@@ -1,663 +0,0 @@
-.. cmake-manual-description: CMake Toolchains Reference
-
-cmake-toolchains(7)
-*******************
-
-.. only:: html
-
- .. contents::
-
-Introduction
-============
-
-CMake uses a toolchain of utilities to compile, link libraries and create
-archives, and other tasks to drive the build. The toolchain utilities available
-are determined by the languages enabled. In normal builds, CMake automatically
-determines the toolchain for host builds based on system introspection and
-defaults. In cross-compiling scenarios, a toolchain file may be specified
-with information about compiler and utility paths.
-
-Languages
-=========
-
-Languages are enabled by the :command:`project` command. Language-specific
-built-in variables, such as
-:variable:`CMAKE_CXX_COMPILER <CMAKE_<LANG>_COMPILER>`,
-:variable:`CMAKE_CXX_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` etc are set by
-invoking the :command:`project` command. If no project command
-is in the top-level CMakeLists file, one will be implicitly generated. By default
-the enabled languages are ``C`` and ``CXX``:
-
-.. code-block:: cmake
-
- project(C_Only C)
-
-A special value of ``NONE`` can also be used with the :command:`project` command
-to enable no languages:
-
-.. code-block:: cmake
-
- project(MyProject NONE)
-
-The :command:`enable_language` command can be used to enable languages after the
-:command:`project` command:
-
-.. code-block:: cmake
-
- enable_language(CXX)
-
-When a language is enabled, CMake finds a compiler for that language, and
-determines some information, such as the vendor and version of the compiler,
-the target architecture and bitwidth, the location of corresponding utilities
-etc.
-
-The :prop_gbl:`ENABLED_LANGUAGES` global property contains the languages which
-are currently enabled.
-
-Variables and Properties
-========================
-
-Several variables relate to the language components of a toolchain which are
-enabled. :variable:`CMAKE_<LANG>_COMPILER` is the full path to the compiler used
-for ``<LANG>``. :variable:`CMAKE_<LANG>_COMPILER_ID` is the identifier used
-by CMake for the compiler and :variable:`CMAKE_<LANG>_COMPILER_VERSION` is the
-version of the compiler.
-
-The :variable:`CMAKE_<LANG>_FLAGS` variables and the configuration-specific
-equivalents contain flags that will be added to the compile command when
-compiling a file of a particular language.
-
-As the linker is invoked by the compiler driver, CMake needs a way to determine
-which compiler to use to invoke the linker. This is calculated by the
-:prop_sf:`LANGUAGE` of source files in the target, and in the case of static
-libraries, the language of the dependent libraries. The choice CMake makes may
-be overridden with the :prop_tgt:`LINKER_LANGUAGE` target property.
-
-Toolchain Features
-==================
-
-CMake provides the :command:`try_compile` command and wrapper macros such as
-:module:`CheckCXXSourceCompiles`, :module:`CheckCXXSymbolExists` and
-:module:`CheckIncludeFile` to test capability and availability of various
-toolchain features. These APIs test the toolchain in some way and cache the
-result so that the test does not have to be performed again the next time
-CMake runs.
-
-Some toolchain features have built-in handling in CMake, and do not require
-compile-tests. For example, :prop_tgt:`POSITION_INDEPENDENT_CODE` allows
-specifying that a target should be built as position-independent code, if
-the compiler supports that feature. The :prop_tgt:`<LANG>_VISIBILITY_PRESET`
-and :prop_tgt:`VISIBILITY_INLINES_HIDDEN` target properties add flags for
-hidden visibility, if supported by the compiler.
-
-.. _`Cross Compiling Toolchain`:
-
-Cross Compiling
-===============
-
-If :manual:`cmake(1)` is invoked with the command line parameter
-``-DCMAKE_TOOLCHAIN_FILE=path/to/file``, the file will be loaded early to set
-values for the compilers.
-The :variable:`CMAKE_CROSSCOMPILING` variable is set to true when CMake is
-cross-compiling.
-
-Note that using the :variable:`CMAKE_SOURCE_DIR` or :variable:`CMAKE_BINARY_DIR`
-variables inside a toolchain file is typically undesirable. The toolchain
-file is used in contexts where these variables have different values when used
-in different places (e.g. as part of a call to :command:`try_compile`). In most
-cases, where there is a need to evaluate paths inside a toolchain file, the more
-appropriate variable to use would be :variable:`CMAKE_CURRENT_LIST_DIR`, since
-it always has an unambiguous, predictable value.
-
-Cross Compiling for Linux
--------------------------
-
-A typical cross-compiling toolchain for Linux has content such
-as:
-
-.. code-block:: cmake
-
- set(CMAKE_SYSTEM_NAME Linux)
- set(CMAKE_SYSTEM_PROCESSOR arm)
-
- set(CMAKE_SYSROOT /home/devel/rasp-pi-rootfs)
- set(CMAKE_STAGING_PREFIX /home/devel/stage)
-
- set(tools /home/devel/gcc-4.7-linaro-rpi-gnueabihf)
- set(CMAKE_C_COMPILER ${tools}/bin/arm-linux-gnueabihf-gcc)
- set(CMAKE_CXX_COMPILER ${tools}/bin/arm-linux-gnueabihf-g++)
-
- set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
- set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
- set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
- set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
-
-The :variable:`CMAKE_SYSTEM_NAME` is the CMake-identifier of the target platform
-to build for.
-
-The :variable:`CMAKE_SYSTEM_PROCESSOR` is the CMake-identifier of the target architecture
-to build for.
-
-The :variable:`CMAKE_SYSROOT` is optional, and may be specified if a sysroot
-is available.
-
-The :variable:`CMAKE_STAGING_PREFIX` is also optional. It may be used to specify
-a path on the host to install to. The :variable:`CMAKE_INSTALL_PREFIX` is always
-the runtime installation location, even when cross-compiling.
-
-The :variable:`CMAKE_<LANG>_COMPILER` variables may be set to full paths, or to
-names of compilers to search for in standard locations. For toolchains that
-do not support linking binaries without custom flags or scripts one may set
-the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable to ``STATIC_LIBRARY``
-to tell CMake not to try to link executables during its checks.
-
-CMake ``find_*`` commands will look in the sysroot, and the :variable:`CMAKE_FIND_ROOT_PATH`
-entries by default in all cases, as well as looking in the host system root prefix.
-Although this can be controlled on a case-by-case basis, when cross-compiling, it
-can be useful to exclude looking in either the host or the target for particular
-artifacts. Generally, includes, libraries and packages should be found in the
-target system prefixes, whereas executables which must be run as part of the build
-should be found only on the host and not on the target. This is the purpose of
-the ``CMAKE_FIND_ROOT_PATH_MODE_*`` variables.
-
-.. _`Cray Cross-Compile`:
-
-Cross Compiling for the Cray Linux Environment
-----------------------------------------------
-
-Cross compiling for compute nodes in the Cray Linux Environment can be done
-without needing a separate toolchain file. Specifying
-``-DCMAKE_SYSTEM_NAME=CrayLinuxEnvironment`` on the CMake command line will
-ensure that the appropriate build settings and search paths are configured.
-The platform will pull its configuration from the current environment
-variables and will configure a project to use the compiler wrappers from the
-Cray Programming Environment's ``PrgEnv-*`` modules if present and loaded.
-
-The default configuration of the Cray Programming Environment is to only
-support static libraries. This can be overridden and shared libraries
-enabled by setting the ``CRAYPE_LINK_TYPE`` environment variable to
-``dynamic``.
-
-Running CMake without specifying :variable:`CMAKE_SYSTEM_NAME` will
-run the configure step in host mode assuming a standard Linux environment.
-If not overridden, the ``PrgEnv-*`` compiler wrappers will end up getting used,
-which if targeting the either the login node or compute node, is likely not the
-desired behavior. The exception to this would be if you are building directly
-on a NID instead of cross-compiling from a login node. If trying to build
-software for a login node, you will need to either first unload the
-currently loaded ``PrgEnv-*`` module or explicitly tell CMake to use the
-system compilers in ``/usr/bin`` instead of the Cray wrappers. If instead
-targeting a compute node is desired, just specify the
-:variable:`CMAKE_SYSTEM_NAME` as mentioned above.
-
-Cross Compiling using Clang
----------------------------
-
-Some compilers such as Clang are inherently cross compilers.
-The :variable:`CMAKE_<LANG>_COMPILER_TARGET` can be set to pass a
-value to those supported compilers when compiling:
-
-.. code-block:: cmake
-
- set(CMAKE_SYSTEM_NAME Linux)
- set(CMAKE_SYSTEM_PROCESSOR arm)
-
- set(triple arm-linux-gnueabihf)
-
- set(CMAKE_C_COMPILER clang)
- set(CMAKE_C_COMPILER_TARGET ${triple})
- set(CMAKE_CXX_COMPILER clang++)
- set(CMAKE_CXX_COMPILER_TARGET ${triple})
-
-Similarly, some compilers do not ship their own supplementary utilities
-such as linkers, but provide a way to specify the location of the external
-toolchain which will be used by the compiler driver. The
-:variable:`CMAKE_<LANG>_COMPILER_EXTERNAL_TOOLCHAIN` variable can be set in a
-toolchain file to pass the path to the compiler driver.
-
-Cross Compiling for QNX
------------------------
-
-As the Clang compiler the QNX QCC compile is inherently a cross compiler.
-And the :variable:`CMAKE_<LANG>_COMPILER_TARGET` can be set to pass a
-value to those supported compilers when compiling:
-
-.. code-block:: cmake
-
- set(CMAKE_SYSTEM_NAME QNX)
-
- set(arch gcc_ntoarmv7le)
-
- set(CMAKE_C_COMPILER qcc)
- set(CMAKE_C_COMPILER_TARGET ${arch})
- set(CMAKE_CXX_COMPILER QCC)
- set(CMAKE_CXX_COMPILER_TARGET ${arch})
-
-Cross Compiling for Windows CE
-------------------------------
-
-Cross compiling for Windows CE requires the corresponding SDK being
-installed on your system. These SDKs are usually installed under
-``C:/Program Files (x86)/Windows CE Tools/SDKs``.
-
-A toolchain file to configure a Visual Studio generator for
-Windows CE may look like this:
-
-.. code-block:: cmake
-
- set(CMAKE_SYSTEM_NAME WindowsCE)
-
- set(CMAKE_SYSTEM_VERSION 8.0)
- set(CMAKE_SYSTEM_PROCESSOR arm)
-
- set(CMAKE_GENERATOR_TOOLSET CE800) # Can be omitted for 8.0
- set(CMAKE_GENERATOR_PLATFORM SDK_AM335X_SK_WEC2013_V310)
-
-The :variable:`CMAKE_GENERATOR_PLATFORM` tells the generator which SDK to use.
-Further :variable:`CMAKE_SYSTEM_VERSION` tells the generator what version of
-Windows CE to use. Currently version 8.0 (Windows Embedded Compact 2013) is
-supported out of the box. Other versions may require one to set
-:variable:`CMAKE_GENERATOR_TOOLSET` to the correct value.
-
-Cross Compiling for Windows 10 Universal Applications
------------------------------------------------------
-
-A toolchain file to configure a Visual Studio generator for a
-Windows 10 Universal Application may look like this:
-
-.. code-block:: cmake
-
- set(CMAKE_SYSTEM_NAME WindowsStore)
- set(CMAKE_SYSTEM_VERSION 10.0)
-
-A Windows 10 Universal Application targets both Windows Store and
-Windows Phone. Specify the :variable:`CMAKE_SYSTEM_VERSION` variable
-to be ``10.0`` to build with the latest available Windows 10 SDK.
-Specify a more specific version (e.g. ``10.0.10240.0`` for RTM)
-to build with the corresponding SDK.
-
-Cross Compiling for Windows Phone
----------------------------------
-
-A toolchain file to configure a Visual Studio generator for
-Windows Phone may look like this:
-
-.. code-block:: cmake
-
- set(CMAKE_SYSTEM_NAME WindowsPhone)
- set(CMAKE_SYSTEM_VERSION 8.1)
-
-Cross Compiling for Windows Store
----------------------------------
-
-A toolchain file to configure a Visual Studio generator for
-Windows Store may look like this:
-
-.. code-block:: cmake
-
- set(CMAKE_SYSTEM_NAME WindowsStore)
- set(CMAKE_SYSTEM_VERSION 8.1)
-
-.. _`Cross Compiling for Android`:
-
-Cross Compiling for Android
----------------------------
-
-A toolchain file may configure cross-compiling for Android by setting the
-:variable:`CMAKE_SYSTEM_NAME` variable to ``Android``. Further configuration
-is specific to the Android development environment to be used.
-
-For :ref:`Visual Studio Generators`, CMake expects :ref:`NVIDIA Nsight Tegra
-Visual Studio Edition <Cross Compiling for Android with NVIDIA Nsight Tegra
-Visual Studio Edition>` to be installed. See that section for further
-configuration details.
-
-For :ref:`Makefile Generators` and the :generator:`Ninja` generator,
-CMake expects one of these environments:
-
-* :ref:`NDK <Cross Compiling for Android with the NDK>`
-* :ref:`Standalone Toolchain <Cross Compiling for Android with a Standalone Toolchain>`
-
-CMake uses the following steps to select one of the environments:
-
-* If the :variable:`CMAKE_ANDROID_NDK` variable is set, the NDK at the
- specified location will be used.
-
-* Else, if the :variable:`CMAKE_ANDROID_STANDALONE_TOOLCHAIN` variable
- is set, the Standalone Toolchain at the specified location will be used.
-
-* Else, if the :variable:`CMAKE_SYSROOT` variable is set to a directory
- of the form ``<ndk>/platforms/android-<api>/arch-<arch>``, the ``<ndk>``
- part will be used as the value of :variable:`CMAKE_ANDROID_NDK` and the
- NDK will be used.
-
-* Else, if the :variable:`CMAKE_SYSROOT` variable is set to a directory of the
- form ``<standalone-toolchain>/sysroot``, the ``<standalone-toolchain>`` part
- will be used as the value of :variable:`CMAKE_ANDROID_STANDALONE_TOOLCHAIN`
- and the Standalone Toolchain will be used.
-
-* Else, if a cmake variable ``ANDROID_NDK`` is set it will be used
- as the value of :variable:`CMAKE_ANDROID_NDK`, and the NDK will be used.
-
-* Else, if a cmake variable ``ANDROID_STANDALONE_TOOLCHAIN`` is set, it will be
- used as the value of :variable:`CMAKE_ANDROID_STANDALONE_TOOLCHAIN`, and the
- Standalone Toolchain will be used.
-
-* Else, if an environment variable ``ANDROID_NDK_ROOT`` or
- ``ANDROID_NDK`` is set, it will be used as the value of
- :variable:`CMAKE_ANDROID_NDK`, and the NDK will be used.
-
-* Else, if an environment variable ``ANDROID_STANDALONE_TOOLCHAIN`` is
- set then it will be used as the value of
- :variable:`CMAKE_ANDROID_STANDALONE_TOOLCHAIN`, and the Standalone
- Toolchain will be used.
-
-* Else, an error diagnostic will be issued that neither the NDK or
- Standalone Toolchain can be found.
-
-.. _`Cross Compiling for Android with the NDK`:
-
-Cross Compiling for Android with the NDK
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-A toolchain file may configure :ref:`Makefile Generators` or the
-:generator:`Ninja` generator to target Android for cross-compiling.
-
-Configure use of an Android NDK with the following variables:
-
-:variable:`CMAKE_SYSTEM_NAME`
- Set to ``Android``. Must be specified to enable cross compiling
- for Android.
-
-:variable:`CMAKE_SYSTEM_VERSION`
- Set to the Android API level. If not specified, the value is
- determined as follows:
-
- * If the :variable:`CMAKE_ANDROID_API` variable is set, its value
- is used as the API level.
- * If the :variable:`CMAKE_SYSROOT` variable is set, the API level is
- detected from the NDK directory structure containing the sysroot.
- * Otherwise, the latest API level available in the NDK is used.
-
-:variable:`CMAKE_ANDROID_ARCH_ABI`
- Set to the Android ABI (architecture). If not specified, this
- variable will default to ``armeabi``.
- The :variable:`CMAKE_ANDROID_ARCH` variable will be computed
- from ``CMAKE_ANDROID_ARCH_ABI`` automatically.
- Also see the :variable:`CMAKE_ANDROID_ARM_MODE` and
- :variable:`CMAKE_ANDROID_ARM_NEON` variables.
-
-:variable:`CMAKE_ANDROID_NDK`
- Set to the absolute path to the Android NDK root directory.
- A ``${CMAKE_ANDROID_NDK}/platforms`` directory must exist.
- If not specified, a default for this variable will be chosen
- as specified :ref:`above <Cross Compiling for Android>`.
-
-:variable:`CMAKE_ANDROID_NDK_DEPRECATED_HEADERS`
- Set to a true value to use the deprecated per-api-level headers
- instead of the unified headers. If not specified, the default will
- be false unless using a NDK that does not provide unified headers.
-
-:variable:`CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION`
- On NDK r19 or above, this variable must be unset or set to ``clang``.
- On NDK r18 or below, set this to the version of the NDK toolchain to
- be selected as the compiler. If not specified, the default will be
- the latest available GCC toolchain.
-
-:variable:`CMAKE_ANDROID_STL_TYPE`
- Set to specify which C++ standard library to use. If not specified,
- a default will be selected as described in the variable documentation.
-
-The following variables will be computed and provided automatically:
-
-:variable:`CMAKE_<LANG>_ANDROID_TOOLCHAIN_PREFIX`
- The absolute path prefix to the binutils in the NDK toolchain.
-
-:variable:`CMAKE_<LANG>_ANDROID_TOOLCHAIN_SUFFIX`
- The host platform suffix of the binutils in the NDK toolchain.
-
-
-For example, a toolchain file might contain:
-
-.. code-block:: cmake
-
- set(CMAKE_SYSTEM_NAME Android)
- set(CMAKE_SYSTEM_VERSION 21) # API level
- set(CMAKE_ANDROID_ARCH_ABI arm64-v8a)
- set(CMAKE_ANDROID_NDK /path/to/android-ndk)
- set(CMAKE_ANDROID_STL_TYPE gnustl_static)
-
-Alternatively one may specify the values without a toolchain file:
-
-.. code-block:: console
-
- $ cmake ../src \
- -DCMAKE_SYSTEM_NAME=Android \
- -DCMAKE_SYSTEM_VERSION=21 \
- -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \
- -DCMAKE_ANDROID_NDK=/path/to/android-ndk \
- -DCMAKE_ANDROID_STL_TYPE=gnustl_static
-
-.. _`Cross Compiling for Android with a Standalone Toolchain`:
-
-Cross Compiling for Android with a Standalone Toolchain
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-A toolchain file may configure :ref:`Makefile Generators` or the
-:generator:`Ninja` generator to target Android for cross-compiling
-using a standalone toolchain.
-
-Configure use of an Android standalone toolchain with the following variables:
-
-:variable:`CMAKE_SYSTEM_NAME`
- Set to ``Android``. Must be specified to enable cross compiling
- for Android.
-
-:variable:`CMAKE_ANDROID_STANDALONE_TOOLCHAIN`
- Set to the absolute path to the standalone toolchain root directory.
- A ``${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot`` directory
- must exist.
- If not specified, a default for this variable will be chosen
- as specified :ref:`above <Cross Compiling for Android>`.
-
-:variable:`CMAKE_ANDROID_ARM_MODE`
- When the standalone toolchain targets ARM, optionally set this to ``ON``
- to target 32-bit ARM instead of 16-bit Thumb.
- See variable documentation for details.
-
-:variable:`CMAKE_ANDROID_ARM_NEON`
- When the standalone toolchain targets ARM v7, optionally set thisto ``ON``
- to target ARM NEON devices. See variable documentation for details.
-
-The following variables will be computed and provided automatically:
-
-:variable:`CMAKE_SYSTEM_VERSION`
- The Android API level detected from the standalone toolchain.
-
-:variable:`CMAKE_ANDROID_ARCH_ABI`
- The Android ABI detected from the standalone toolchain.
-
-:variable:`CMAKE_<LANG>_ANDROID_TOOLCHAIN_PREFIX`
- The absolute path prefix to the ``binutils`` in the standalone toolchain.
-
-:variable:`CMAKE_<LANG>_ANDROID_TOOLCHAIN_SUFFIX`
- The host platform suffix of the ``binutils`` in the standalone toolchain.
-
-For example, a toolchain file might contain:
-
-.. code-block:: cmake
-
- set(CMAKE_SYSTEM_NAME Android)
- set(CMAKE_ANDROID_STANDALONE_TOOLCHAIN /path/to/android-toolchain)
-
-Alternatively one may specify the values without a toolchain file:
-
-.. code-block:: console
-
- $ cmake ../src \
- -DCMAKE_SYSTEM_NAME=Android \
- -DCMAKE_ANDROID_STANDALONE_TOOLCHAIN=/path/to/android-toolchain
-
-.. _`Cross Compiling for Android with NVIDIA Nsight Tegra Visual Studio Edition`:
-
-Cross Compiling for Android with NVIDIA Nsight Tegra Visual Studio Edition
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-A toolchain file to configure one of the :ref:`Visual Studio Generators`
-to build using NVIDIA Nsight Tegra targeting Android may look like this:
-
-.. code-block:: cmake
-
- set(CMAKE_SYSTEM_NAME Android)
-
-The :variable:`CMAKE_GENERATOR_TOOLSET` may be set to select
-the Nsight Tegra "Toolchain Version" value.
-
-See also target properties:
-
-* :prop_tgt:`ANDROID_ANT_ADDITIONAL_OPTIONS`
-* :prop_tgt:`ANDROID_API_MIN`
-* :prop_tgt:`ANDROID_API`
-* :prop_tgt:`ANDROID_ARCH`
-* :prop_tgt:`ANDROID_ASSETS_DIRECTORIES`
-* :prop_tgt:`ANDROID_GUI`
-* :prop_tgt:`ANDROID_JAR_DEPENDENCIES`
-* :prop_tgt:`ANDROID_JAR_DIRECTORIES`
-* :prop_tgt:`ANDROID_JAVA_SOURCE_DIR`
-* :prop_tgt:`ANDROID_NATIVE_LIB_DEPENDENCIES`
-* :prop_tgt:`ANDROID_NATIVE_LIB_DIRECTORIES`
-* :prop_tgt:`ANDROID_PROCESS_MAX`
-* :prop_tgt:`ANDROID_PROGUARD_CONFIG_PATH`
-* :prop_tgt:`ANDROID_PROGUARD`
-* :prop_tgt:`ANDROID_SECURE_PROPS_PATH`
-* :prop_tgt:`ANDROID_SKIP_ANT_STEP`
-* :prop_tgt:`ANDROID_STL_TYPE`
-
-.. _`Cross Compiling for iOS, tvOS, or watchOS`:
-
-Cross Compiling for iOS, tvOS, or watchOS
------------------------------------------
-
-For cross-compiling to iOS, tvOS, or watchOS, the :generator:`Xcode`
-generator is recommended. The :generator:`Unix Makefiles` or
-:generator:`Ninja` generators can also be used, but they require the
-project to handle more areas like target CPU selection and code signing.
-
-Any of the three systems can be targeted by setting the
-:variable:`CMAKE_SYSTEM_NAME` variable to a value from the table below.
-By default, the latest Device SDK is chosen. As for all Apple platforms,
-a different SDK (e.g. a simulator) can be selected by setting the
-:variable:`CMAKE_OSX_SYSROOT` variable, although this should rarely be
-necessary (see :ref:`Switching Between Device and Simulator` below).
-A list of available SDKs can be obtained by running ``xcodebuild -showsdks``.
-
-======= ================= ==================== ================
-OS CMAKE_SYSTEM_NAME Device SDK (default) Simulator SDK
-======= ================= ==================== ================
-iOS iOS iphoneos iphonesimulator
-tvOS tvOS appletvos appletvsimulator
-watchOS watchOS watchos watchsimulator
-======= ================= ==================== ================
-
-For example, to create a CMake configuration for iOS, the following
-command is sufficient:
-
-.. code-block:: console
-
- cmake .. -GXcode -DCMAKE_SYSTEM_NAME=iOS
-
-Variable :variable:`CMAKE_OSX_ARCHITECTURES` can be used to set architectures
-for both device and simulator. Variable :variable:`CMAKE_OSX_DEPLOYMENT_TARGET`
-can be used to set an iOS/tvOS/watchOS deployment target.
-
-Next configuration will install fat 5 architectures iOS library
-and add the ``-miphoneos-version-min=9.3``/``-mios-simulator-version-min=9.3``
-flags to the compiler:
-
-.. code-block:: console
-
- $ cmake -S. -B_builds -GXcode \
- -DCMAKE_SYSTEM_NAME=iOS \
- "-DCMAKE_OSX_ARCHITECTURES=armv7;armv7s;arm64;i386;x86_64" \
- -DCMAKE_OSX_DEPLOYMENT_TARGET=9.3 \
- -DCMAKE_INSTALL_PREFIX=`pwd`/_install \
- -DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=NO \
- -DCMAKE_IOS_INSTALL_COMBINED=YES
-
-Example:
-
-.. code-block:: cmake
-
- # CMakeLists.txt
- cmake_minimum_required(VERSION 3.14)
- project(foo)
- add_library(foo foo.cpp)
- install(TARGETS foo DESTINATION lib)
-
-Install:
-
-.. code-block:: console
-
- $ cmake --build _builds --config Release --target install
-
-Check library:
-
-.. code-block:: console
-
- $ lipo -info _install/lib/libfoo.a
- Architectures in the fat file: _install/lib/libfoo.a are: i386 armv7 armv7s x86_64 arm64
-
-.. code-block:: console
-
- $ otool -l _install/lib/libfoo.a | grep -A2 LC_VERSION_MIN_IPHONEOS
- cmd LC_VERSION_MIN_IPHONEOS
- cmdsize 16
- version 9.3
-
-Code Signing
-^^^^^^^^^^^^
-
-Some build artifacts for the embedded Apple platforms require mandatory
-code signing. If the :generator:`Xcode` generator is being used and
-code signing is required or desired, the development team ID can be
-specified via the ``CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM`` CMake variable.
-This team ID will then be included in the generated Xcode project.
-By default, CMake avoids the need for code signing during the internal
-configuration phase (i.e compiler ID and feature detection).
-
-.. _`Switching Between Device and Simulator`:
-
-Switching Between Device and Simulator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-When configuring for any of the embedded platforms, one can target either
-real devices or the simulator. Both have their own separate SDK, but CMake
-only supports specifying a single SDK for the configuration phase. This
-means the developer must select one or the other at configuration time.
-When using the :generator:`Xcode` generator, this is less of a limitation
-because Xcode still allows you to build for either a device or a simulator,
-even though configuration was only performed for one of the two. From
-within the Xcode IDE, builds are performed for the selected "destination"
-platform. When building from the command line, the desired sdk can be
-specified directly by passing a ``-sdk`` option to the underlying build
-tool (``xcodebuild``). For example:
-
-.. code-block:: console
-
- $ cmake --build ... -- -sdk iphonesimulator
-
-Please note that checks made during configuration were performed against
-the configure-time SDK and might not hold true for other SDKs. Commands
-like :command:`find_package`, :command:`find_library`, etc. store and use
-details only for the configured SDK/platform, so they can be problematic
-if wanting to switch between device and simulator builds. You can follow
-the next rules to make device + simulator configuration work:
-
-- Use explicit ``-l`` linker flag,
- e.g. ``target_link_libraries(foo PUBLIC "-lz")``
-
-- Use explicit ``-framework`` linker flag,
- e.g. ``target_link_libraries(foo PUBLIC "-framework CoreFoundation")``
-
-- Use :command:`find_package` only for libraries installed with
- :variable:`CMAKE_IOS_INSTALL_COMBINED` feature
diff --git a/share/cmake-3.16/Help/manual/cmake-variables.7.rst b/share/cmake-3.16/Help/manual/cmake-variables.7.rst
deleted file mode 100644
index 53b7f8d..0000000
--- a/share/cmake-3.16/Help/manual/cmake-variables.7.rst
+++ /dev/null
@@ -1,662 +0,0 @@
-.. cmake-manual-description: CMake Variables Reference
-
-cmake-variables(7)
-******************
-
-.. only:: html
-
- .. contents::
-
-This page documents variables that are provided by CMake
-or have meaning to CMake when set by project code.
-
-For general information on variables, see the
-:ref:`Variables <CMake Language Variables>`
-section in the cmake-language manual.
-
-
-Variables that Provide Information
-==================================
-
-.. toctree::
- :maxdepth: 1
-
- /variable/CMAKE_AR
- /variable/CMAKE_ARGC
- /variable/CMAKE_ARGV0
- /variable/CMAKE_BINARY_DIR
- /variable/CMAKE_BUILD_TOOL
- /variable/CMAKE_CACHEFILE_DIR
- /variable/CMAKE_CACHE_MAJOR_VERSION
- /variable/CMAKE_CACHE_MINOR_VERSION
- /variable/CMAKE_CACHE_PATCH_VERSION
- /variable/CMAKE_CFG_INTDIR
- /variable/CMAKE_COMMAND
- /variable/CMAKE_CPACK_COMMAND
- /variable/CMAKE_CROSSCOMPILING
- /variable/CMAKE_CROSSCOMPILING_EMULATOR
- /variable/CMAKE_CTEST_COMMAND
- /variable/CMAKE_CURRENT_BINARY_DIR
- /variable/CMAKE_CURRENT_LIST_DIR
- /variable/CMAKE_CURRENT_LIST_FILE
- /variable/CMAKE_CURRENT_LIST_LINE
- /variable/CMAKE_CURRENT_SOURCE_DIR
- /variable/CMAKE_DIRECTORY_LABELS
- /variable/CMAKE_DL_LIBS
- /variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION
- /variable/CMAKE_EDIT_COMMAND
- /variable/CMAKE_EXECUTABLE_SUFFIX
- /variable/CMAKE_EXTRA_GENERATOR
- /variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES
- /variable/CMAKE_FIND_PACKAGE_NAME
- /variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION
- /variable/CMAKE_FIND_PACKAGE_SORT_ORDER
- /variable/CMAKE_GENERATOR
- /variable/CMAKE_GENERATOR_INSTANCE
- /variable/CMAKE_GENERATOR_PLATFORM
- /variable/CMAKE_GENERATOR_TOOLSET
- /variable/CMAKE_IMPORT_LIBRARY_PREFIX
- /variable/CMAKE_IMPORT_LIBRARY_SUFFIX
- /variable/CMAKE_JOB_POOL_COMPILE
- /variable/CMAKE_JOB_POOL_LINK
- /variable/CMAKE_JOB_POOLS
- /variable/CMAKE_LANG_COMPILER_AR
- /variable/CMAKE_LANG_COMPILER_RANLIB
- /variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX
- /variable/CMAKE_LINK_LIBRARY_SUFFIX
- /variable/CMAKE_LINK_SEARCH_END_STATIC
- /variable/CMAKE_LINK_SEARCH_START_STATIC
- /variable/CMAKE_MAJOR_VERSION
- /variable/CMAKE_MAKE_PROGRAM
- /variable/CMAKE_MATCH_COUNT
- /variable/CMAKE_MATCH_n
- /variable/CMAKE_MESSAGE_INDENT
- /variable/CMAKE_MINIMUM_REQUIRED_VERSION
- /variable/CMAKE_MINOR_VERSION
- /variable/CMAKE_NETRC
- /variable/CMAKE_NETRC_FILE
- /variable/CMAKE_PARENT_LIST_FILE
- /variable/CMAKE_PATCH_VERSION
- /variable/CMAKE_PROJECT_DESCRIPTION
- /variable/CMAKE_PROJECT_HOMEPAGE_URL
- /variable/CMAKE_PROJECT_NAME
- /variable/CMAKE_PROJECT_VERSION
- /variable/CMAKE_PROJECT_VERSION_MAJOR
- /variable/CMAKE_PROJECT_VERSION_MINOR
- /variable/CMAKE_PROJECT_VERSION_PATCH
- /variable/CMAKE_PROJECT_VERSION_TWEAK
- /variable/CMAKE_RANLIB
- /variable/CMAKE_ROOT
- /variable/CMAKE_RULE_MESSAGES
- /variable/CMAKE_SCRIPT_MODE_FILE
- /variable/CMAKE_SHARED_LIBRARY_PREFIX
- /variable/CMAKE_SHARED_LIBRARY_SUFFIX
- /variable/CMAKE_SHARED_MODULE_PREFIX
- /variable/CMAKE_SHARED_MODULE_SUFFIX
- /variable/CMAKE_SIZEOF_VOID_P
- /variable/CMAKE_SKIP_INSTALL_RULES
- /variable/CMAKE_SKIP_RPATH
- /variable/CMAKE_SOURCE_DIR
- /variable/CMAKE_STATIC_LIBRARY_PREFIX
- /variable/CMAKE_STATIC_LIBRARY_SUFFIX
- /variable/CMAKE_Swift_MODULE_DIRECTORY
- /variable/CMAKE_Swift_NUM_THREADS
- /variable/CMAKE_TOOLCHAIN_FILE
- /variable/CMAKE_TWEAK_VERSION
- /variable/CMAKE_VERBOSE_MAKEFILE
- /variable/CMAKE_VERSION
- /variable/CMAKE_VS_DEVENV_COMMAND
- /variable/CMAKE_VS_MSBUILD_COMMAND
- /variable/CMAKE_VS_NsightTegra_VERSION
- /variable/CMAKE_VS_PLATFORM_NAME
- /variable/CMAKE_VS_PLATFORM_NAME_DEFAULT
- /variable/CMAKE_VS_PLATFORM_TOOLSET
- /variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA
- /variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR
- /variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE
- /variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION
- /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION
- /variable/CMAKE_XCODE_GENERATE_SCHEME
- /variable/CMAKE_XCODE_PLATFORM_TOOLSET
- /variable/PROJECT-NAME_BINARY_DIR
- /variable/PROJECT-NAME_DESCRIPTION
- /variable/PROJECT-NAME_HOMEPAGE_URL
- /variable/PROJECT-NAME_SOURCE_DIR
- /variable/PROJECT-NAME_VERSION
- /variable/PROJECT-NAME_VERSION_MAJOR
- /variable/PROJECT-NAME_VERSION_MINOR
- /variable/PROJECT-NAME_VERSION_PATCH
- /variable/PROJECT-NAME_VERSION_TWEAK
- /variable/PROJECT_BINARY_DIR
- /variable/PROJECT_DESCRIPTION
- /variable/PROJECT_HOMEPAGE_URL
- /variable/PROJECT_NAME
- /variable/PROJECT_SOURCE_DIR
- /variable/PROJECT_VERSION
- /variable/PROJECT_VERSION_MAJOR
- /variable/PROJECT_VERSION_MINOR
- /variable/PROJECT_VERSION_PATCH
- /variable/PROJECT_VERSION_TWEAK
-
-Variables that Change Behavior
-==============================
-
-.. toctree::
- :maxdepth: 1
-
- /variable/BUILD_SHARED_LIBS
- /variable/CMAKE_ABSOLUTE_DESTINATION_FILES
- /variable/CMAKE_APPBUNDLE_PATH
- /variable/CMAKE_AUTOMOC_RELAXED_MODE
- /variable/CMAKE_BACKWARDS_COMPATIBILITY
- /variable/CMAKE_BUILD_TYPE
- /variable/CMAKE_CODEBLOCKS_COMPILER_ID
- /variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES
- /variable/CMAKE_CODELITE_USE_TARGETS
- /variable/CMAKE_COLOR_MAKEFILE
- /variable/CMAKE_CONFIGURATION_TYPES
- /variable/CMAKE_DEBUG_TARGET_PROPERTIES
- /variable/CMAKE_DEPENDS_IN_PROJECT_ONLY
- /variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName
- /variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES
- /variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT
- /variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS
- /variable/CMAKE_ECLIPSE_RESOURCE_ENCODING
- /variable/CMAKE_ECLIPSE_VERSION
- /variable/CMAKE_ERROR_DEPRECATED
- /variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
- /variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO
- /variable/CMAKE_EXPORT_COMPILE_COMMANDS
- /variable/CMAKE_EXPORT_PACKAGE_REGISTRY
- /variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY
- /variable/CMAKE_FIND_APPBUNDLE
- /variable/CMAKE_FIND_FRAMEWORK
- /variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX
- /variable/CMAKE_FIND_LIBRARY_PREFIXES
- /variable/CMAKE_FIND_LIBRARY_SUFFIXES
- /variable/CMAKE_FIND_NO_INSTALL_PREFIX
- /variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY
- /variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY
- /variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG
- /variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS
- /variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE
- /variable/CMAKE_FIND_ROOT_PATH
- /variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
- /variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
- /variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
- /variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
- /variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH
- /variable/CMAKE_FIND_USE_CMAKE_PATH
- /variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH
- /variable/CMAKE_FIND_USE_PACKAGE_REGISTRY
- /variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH
- /variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH
- /variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY
- /variable/CMAKE_FRAMEWORK_PATH
- /variable/CMAKE_IGNORE_PATH
- /variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE
- /variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE
- /variable/CMAKE_INCLUDE_PATH
- /variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME
- /variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
- /variable/CMAKE_INSTALL_MESSAGE
- /variable/CMAKE_INSTALL_PREFIX
- /variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT
- /variable/CMAKE_LIBRARY_PATH
- /variable/CMAKE_LINK_DIRECTORIES_BEFORE
- /variable/CMAKE_MFC_FLAG
- /variable/CMAKE_MAXIMUM_RECURSION_DEPTH
- /variable/CMAKE_MODULE_PATH
- /variable/CMAKE_POLICY_DEFAULT_CMPNNNN
- /variable/CMAKE_POLICY_WARNING_CMPNNNN
- /variable/CMAKE_PREFIX_PATH
- /variable/CMAKE_PROGRAM_PATH
- /variable/CMAKE_PROJECT_INCLUDE
- /variable/CMAKE_PROJECT_INCLUDE_BEFORE
- /variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE
- /variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY
- /variable/CMAKE_STAGING_PREFIX
- /variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS
- /variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE
- /variable/CMAKE_SUPPRESS_REGENERATION
- /variable/CMAKE_SYSROOT
- /variable/CMAKE_SYSROOT_COMPILE
- /variable/CMAKE_SYSROOT_LINK
- /variable/CMAKE_SYSTEM_APPBUNDLE_PATH
- /variable/CMAKE_SYSTEM_FRAMEWORK_PATH
- /variable/CMAKE_SYSTEM_IGNORE_PATH
- /variable/CMAKE_SYSTEM_INCLUDE_PATH
- /variable/CMAKE_SYSTEM_LIBRARY_PATH
- /variable/CMAKE_SYSTEM_PREFIX_PATH
- /variable/CMAKE_SYSTEM_PROGRAM_PATH
- /variable/CMAKE_USER_MAKE_RULES_OVERRIDE
- /variable/CMAKE_WARN_DEPRECATED
- /variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
- /variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY
- /variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER
- /variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
- /variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING
- /variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
- /variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
- /variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
- /variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC
- /variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
- /variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES
- /variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE
- /variable/CMAKE_XCODE_SCHEME_MALLOC_STACK
- /variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER
- /variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP
- /variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
- /variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
- /variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS
- /variable/PackageName_ROOT
-
-Variables that Describe the System
-==================================
-
-.. toctree::
- :maxdepth: 1
-
- /variable/ANDROID
- /variable/APPLE
- /variable/BORLAND
- /variable/CMAKE_CL_64
- /variable/CMAKE_COMPILER_2005
- /variable/CMAKE_HOST_APPLE
- /variable/CMAKE_HOST_SOLARIS
- /variable/CMAKE_HOST_SYSTEM
- /variable/CMAKE_HOST_SYSTEM_NAME
- /variable/CMAKE_HOST_SYSTEM_PROCESSOR
- /variable/CMAKE_HOST_SYSTEM_VERSION
- /variable/CMAKE_HOST_UNIX
- /variable/CMAKE_HOST_WIN32
- /variable/CMAKE_LIBRARY_ARCHITECTURE
- /variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX
- /variable/CMAKE_OBJECT_PATH_MAX
- /variable/CMAKE_SYSTEM
- /variable/CMAKE_SYSTEM_NAME
- /variable/CMAKE_SYSTEM_PROCESSOR
- /variable/CMAKE_SYSTEM_VERSION
- /variable/CYGWIN
- /variable/GHS-MULTI
- /variable/IOS
- /variable/MINGW
- /variable/MSVC
- /variable/MSVC10
- /variable/MSVC11
- /variable/MSVC12
- /variable/MSVC14
- /variable/MSVC60
- /variable/MSVC70
- /variable/MSVC71
- /variable/MSVC80
- /variable/MSVC90
- /variable/MSVC_IDE
- /variable/MSVC_TOOLSET_VERSION
- /variable/MSVC_VERSION
- /variable/MSYS
- /variable/UNIX
- /variable/WIN32
- /variable/WINCE
- /variable/WINDOWS_PHONE
- /variable/WINDOWS_STORE
- /variable/XCODE
- /variable/XCODE_VERSION
-
-Variables that Control the Build
-================================
-
-.. toctree::
- :maxdepth: 1
-
- /variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS
- /variable/CMAKE_ANDROID_API
- /variable/CMAKE_ANDROID_API_MIN
- /variable/CMAKE_ANDROID_ARCH
- /variable/CMAKE_ANDROID_ARCH_ABI
- /variable/CMAKE_ANDROID_ARM_MODE
- /variable/CMAKE_ANDROID_ARM_NEON
- /variable/CMAKE_ANDROID_ASSETS_DIRECTORIES
- /variable/CMAKE_ANDROID_GUI
- /variable/CMAKE_ANDROID_JAR_DEPENDENCIES
- /variable/CMAKE_ANDROID_JAR_DIRECTORIES
- /variable/CMAKE_ANDROID_JAVA_SOURCE_DIR
- /variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES
- /variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES
- /variable/CMAKE_ANDROID_NDK
- /variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS
- /variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG
- /variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION
- /variable/CMAKE_ANDROID_PROCESS_MAX
- /variable/CMAKE_ANDROID_PROGUARD
- /variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH
- /variable/CMAKE_ANDROID_SECURE_PROPS_PATH
- /variable/CMAKE_ANDROID_SKIP_ANT_STEP
- /variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN
- /variable/CMAKE_ANDROID_STL_TYPE
- /variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY
- /variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG
- /variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS
- /variable/CMAKE_AUTOGEN_PARALLEL
- /variable/CMAKE_AUTOGEN_VERBOSE
- /variable/CMAKE_AUTOMOC
- /variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES
- /variable/CMAKE_AUTOMOC_DEPEND_FILTERS
- /variable/CMAKE_AUTOMOC_MACRO_NAMES
- /variable/CMAKE_AUTOMOC_MOC_OPTIONS
- /variable/CMAKE_AUTOMOC_PATH_PREFIX
- /variable/CMAKE_AUTORCC
- /variable/CMAKE_AUTORCC_OPTIONS
- /variable/CMAKE_AUTOUIC
- /variable/CMAKE_AUTOUIC_OPTIONS
- /variable/CMAKE_AUTOUIC_SEARCH_PATHS
- /variable/CMAKE_BUILD_RPATH
- /variable/CMAKE_BUILD_RPATH_USE_ORIGIN
- /variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR
- /variable/CMAKE_BUILD_WITH_INSTALL_RPATH
- /variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY
- /variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG
- /variable/CMAKE_CONFIG_POSTFIX
- /variable/CMAKE_CUDA_SEPARABLE_COMPILATION
- /variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS
- /variable/CMAKE_DEBUG_POSTFIX
- /variable/CMAKE_DISABLE_PRECOMPILE_HEADERS
- /variable/CMAKE_ENABLE_EXPORTS
- /variable/CMAKE_EXE_LINKER_FLAGS
- /variable/CMAKE_EXE_LINKER_FLAGS_CONFIG
- /variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT
- /variable/CMAKE_EXE_LINKER_FLAGS_INIT
- /variable/CMAKE_FOLDER
- /variable/CMAKE_FRAMEWORK
- /variable/CMAKE_Fortran_FORMAT
- /variable/CMAKE_Fortran_MODULE_DIRECTORY
- /variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE
- /variable/CMAKE_GLOBAL_AUTOGEN_TARGET
- /variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME
- /variable/CMAKE_GLOBAL_AUTORCC_TARGET
- /variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME
- /variable/CMAKE_GNUtoMS
- /variable/CMAKE_INCLUDE_CURRENT_DIR
- /variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE
- /variable/CMAKE_INSTALL_NAME_DIR
- /variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH
- /variable/CMAKE_INSTALL_RPATH
- /variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH
- /variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION
- /variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG
- /variable/CMAKE_IOS_INSTALL_COMBINED
- /variable/CMAKE_LANG_CLANG_TIDY
- /variable/CMAKE_LANG_COMPILER_LAUNCHER
- /variable/CMAKE_LANG_CPPCHECK
- /variable/CMAKE_LANG_CPPLINT
- /variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE
- /variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG
- /variable/CMAKE_LANG_LINK_LIBRARY_FLAG
- /variable/CMAKE_LANG_VISIBILITY_PRESET
- /variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY
- /variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG
- /variable/CMAKE_LIBRARY_PATH_FLAG
- /variable/CMAKE_LINK_DEF_FILE_FLAG
- /variable/CMAKE_LINK_DEPENDS_NO_SHARED
- /variable/CMAKE_LINK_INTERFACE_LIBRARIES
- /variable/CMAKE_LINK_LIBRARY_FILE_FLAG
- /variable/CMAKE_LINK_LIBRARY_FLAG
- /variable/CMAKE_LINK_WHAT_YOU_USE
- /variable/CMAKE_MACOSX_BUNDLE
- /variable/CMAKE_MACOSX_RPATH
- /variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG
- /variable/CMAKE_MODULE_LINKER_FLAGS
- /variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG
- /variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT
- /variable/CMAKE_MODULE_LINKER_FLAGS_INIT
- /variable/CMAKE_MSVCIDE_RUN_PATH
- /variable/CMAKE_MSVC_RUNTIME_LIBRARY
- /variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX
- /variable/CMAKE_NO_BUILTIN_CHRPATH
- /variable/CMAKE_NO_SYSTEM_FROM_IMPORTED
- /variable/CMAKE_OSX_ARCHITECTURES
- /variable/CMAKE_OSX_DEPLOYMENT_TARGET
- /variable/CMAKE_OSX_SYSROOT
- /variable/CMAKE_PDB_OUTPUT_DIRECTORY
- /variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG
- /variable/CMAKE_POSITION_INDEPENDENT_CODE
- /variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY
- /variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG
- /variable/CMAKE_SHARED_LINKER_FLAGS
- /variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG
- /variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT
- /variable/CMAKE_SHARED_LINKER_FLAGS_INIT
- /variable/CMAKE_SKIP_BUILD_RPATH
- /variable/CMAKE_SKIP_INSTALL_RPATH
- /variable/CMAKE_STATIC_LINKER_FLAGS
- /variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG
- /variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT
- /variable/CMAKE_STATIC_LINKER_FLAGS_INIT
- /variable/CMAKE_TRY_COMPILE_CONFIGURATION
- /variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
- /variable/CMAKE_TRY_COMPILE_TARGET_TYPE
- /variable/CMAKE_UNITY_BUILD
- /variable/CMAKE_UNITY_BUILD_BATCH_SIZE
- /variable/CMAKE_USE_RELATIVE_PATHS
- /variable/CMAKE_VISIBILITY_INLINES_HIDDEN
- /variable/CMAKE_VS_GLOBALS
- /variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD
- /variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD
- /variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING
- /variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES
- /variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES
- /variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES
- /variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES
- /variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES
- /variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES
- /variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES
- /variable/CMAKE_VS_WINRT_BY_DEFAULT
- /variable/CMAKE_WIN32_EXECUTABLE
- /variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
- /variable/CMAKE_XCODE_ATTRIBUTE_an-attribute
- /variable/EXECUTABLE_OUTPUT_PATH
- /variable/LIBRARY_OUTPUT_PATH
-
-Variables for Languages
-=======================
-
-.. toctree::
- :maxdepth: 1
-
- /variable/CMAKE_COMPILER_IS_GNUCC
- /variable/CMAKE_COMPILER_IS_GNUCXX
- /variable/CMAKE_COMPILER_IS_GNUG77
- /variable/CMAKE_CUDA_HOST_COMPILER
- /variable/CMAKE_CUDA_EXTENSIONS
- /variable/CMAKE_CUDA_STANDARD
- /variable/CMAKE_CUDA_STANDARD_REQUIRED
- /variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES
- /variable/CMAKE_CXX_COMPILE_FEATURES
- /variable/CMAKE_CXX_EXTENSIONS
- /variable/CMAKE_CXX_STANDARD
- /variable/CMAKE_CXX_STANDARD_REQUIRED
- /variable/CMAKE_C_COMPILE_FEATURES
- /variable/CMAKE_C_EXTENSIONS
- /variable/CMAKE_C_STANDARD
- /variable/CMAKE_C_STANDARD_REQUIRED
- /variable/CMAKE_Fortran_MODDIR_DEFAULT
- /variable/CMAKE_Fortran_MODDIR_FLAG
- /variable/CMAKE_Fortran_MODOUT_FLAG
- /variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE
- /variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX
- /variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX
- /variable/CMAKE_LANG_ARCHIVE_APPEND
- /variable/CMAKE_LANG_ARCHIVE_CREATE
- /variable/CMAKE_LANG_ARCHIVE_FINISH
- /variable/CMAKE_LANG_COMPILER
- /variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN
- /variable/CMAKE_LANG_COMPILER_ID
- /variable/CMAKE_LANG_COMPILER_LOADED
- /variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND
- /variable/CMAKE_LANG_COMPILER_TARGET
- /variable/CMAKE_LANG_COMPILER_VERSION
- /variable/CMAKE_LANG_COMPILE_OBJECT
- /variable/CMAKE_LANG_CREATE_SHARED_LIBRARY
- /variable/CMAKE_LANG_CREATE_SHARED_MODULE
- /variable/CMAKE_LANG_CREATE_STATIC_LIBRARY
- /variable/CMAKE_LANG_FLAGS
- /variable/CMAKE_LANG_FLAGS_CONFIG
- /variable/CMAKE_LANG_FLAGS_CONFIG_INIT
- /variable/CMAKE_LANG_FLAGS_DEBUG
- /variable/CMAKE_LANG_FLAGS_DEBUG_INIT
- /variable/CMAKE_LANG_FLAGS_INIT
- /variable/CMAKE_LANG_FLAGS_MINSIZEREL
- /variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT
- /variable/CMAKE_LANG_FLAGS_RELEASE
- /variable/CMAKE_LANG_FLAGS_RELEASE_INIT
- /variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO
- /variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT
- /variable/CMAKE_LANG_IGNORE_EXTENSIONS
- /variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES
- /variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES
- /variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- /variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES
- /variable/CMAKE_LANG_LIBRARY_ARCHITECTURE
- /variable/CMAKE_LANG_LINKER_PREFERENCE
- /variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES
- /variable/CMAKE_LANG_LINKER_WRAPPER_FLAG
- /variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP
- /variable/CMAKE_LANG_LINK_EXECUTABLE
- /variable/CMAKE_LANG_OUTPUT_EXTENSION
- /variable/CMAKE_LANG_SIMULATE_ID
- /variable/CMAKE_LANG_SIMULATE_VERSION
- /variable/CMAKE_LANG_SIZEOF_DATA_PTR
- /variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS
- /variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES
- /variable/CMAKE_LANG_STANDARD_LIBRARIES
- /variable/CMAKE_OBJC_EXTENSIONS
- /variable/CMAKE_OBJC_STANDARD
- /variable/CMAKE_OBJC_STANDARD_REQUIRED
- /variable/CMAKE_OBJCXX_EXTENSIONS
- /variable/CMAKE_OBJCXX_STANDARD
- /variable/CMAKE_OBJCXX_STANDARD_REQUIRED
- /variable/CMAKE_Swift_LANGUAGE_VERSION
- /variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG
-
-Variables for CTest
-===================
-
-.. toctree::
- :maxdepth: 1
-
- /variable/CTEST_BINARY_DIRECTORY
- /variable/CTEST_BUILD_COMMAND
- /variable/CTEST_BUILD_NAME
- /variable/CTEST_BZR_COMMAND
- /variable/CTEST_BZR_UPDATE_OPTIONS
- /variable/CTEST_CHANGE_ID
- /variable/CTEST_CHECKOUT_COMMAND
- /variable/CTEST_CONFIGURATION_TYPE
- /variable/CTEST_CONFIGURE_COMMAND
- /variable/CTEST_COVERAGE_COMMAND
- /variable/CTEST_COVERAGE_EXTRA_FLAGS
- /variable/CTEST_CURL_OPTIONS
- /variable/CTEST_CUSTOM_COVERAGE_EXCLUDE
- /variable/CTEST_CUSTOM_ERROR_EXCEPTION
- /variable/CTEST_CUSTOM_ERROR_MATCH
- /variable/CTEST_CUSTOM_ERROR_POST_CONTEXT
- /variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT
- /variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE
- /variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS
- /variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS
- /variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE
- /variable/CTEST_CUSTOM_MEMCHECK_IGNORE
- /variable/CTEST_CUSTOM_POST_MEMCHECK
- /variable/CTEST_CUSTOM_POST_TEST
- /variable/CTEST_CUSTOM_PRE_MEMCHECK
- /variable/CTEST_CUSTOM_PRE_TEST
- /variable/CTEST_CUSTOM_TESTS_IGNORE
- /variable/CTEST_CUSTOM_WARNING_EXCEPTION
- /variable/CTEST_CUSTOM_WARNING_MATCH
- /variable/CTEST_CVS_CHECKOUT
- /variable/CTEST_CVS_COMMAND
- /variable/CTEST_CVS_UPDATE_OPTIONS
- /variable/CTEST_DROP_LOCATION
- /variable/CTEST_DROP_METHOD
- /variable/CTEST_DROP_SITE
- /variable/CTEST_DROP_SITE_CDASH
- /variable/CTEST_DROP_SITE_PASSWORD
- /variable/CTEST_DROP_SITE_USER
- /variable/CTEST_EXTRA_COVERAGE_GLOB
- /variable/CTEST_GIT_COMMAND
- /variable/CTEST_GIT_INIT_SUBMODULES
- /variable/CTEST_GIT_UPDATE_CUSTOM
- /variable/CTEST_GIT_UPDATE_OPTIONS
- /variable/CTEST_HG_COMMAND
- /variable/CTEST_HG_UPDATE_OPTIONS
- /variable/CTEST_LABELS_FOR_SUBPROJECTS
- /variable/CTEST_MEMORYCHECK_COMMAND
- /variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS
- /variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS
- /variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE
- /variable/CTEST_MEMORYCHECK_TYPE
- /variable/CTEST_NIGHTLY_START_TIME
- /variable/CTEST_P4_CLIENT
- /variable/CTEST_P4_COMMAND
- /variable/CTEST_P4_OPTIONS
- /variable/CTEST_P4_UPDATE_OPTIONS
- /variable/CTEST_RUN_CURRENT_SCRIPT
- /variable/CTEST_SCP_COMMAND
- /variable/CTEST_SITE
- /variable/CTEST_SUBMIT_URL
- /variable/CTEST_SOURCE_DIRECTORY
- /variable/CTEST_SVN_COMMAND
- /variable/CTEST_SVN_OPTIONS
- /variable/CTEST_SVN_UPDATE_OPTIONS
- /variable/CTEST_TEST_LOAD
- /variable/CTEST_TEST_TIMEOUT
- /variable/CTEST_TRIGGER_SITE
- /variable/CTEST_UPDATE_COMMAND
- /variable/CTEST_UPDATE_OPTIONS
- /variable/CTEST_UPDATE_VERSION_ONLY
- /variable/CTEST_UPDATE_VERSION_OVERRIDE
- /variable/CTEST_USE_LAUNCHERS
-
-Variables for CPack
-===================
-
-.. toctree::
- :maxdepth: 1
-
- /variable/CPACK_ABSOLUTE_DESTINATION_FILES
- /variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY
- /variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
- /variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY
- /variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
- /variable/CPACK_PACKAGING_INSTALL_PREFIX
- /variable/CPACK_SET_DESTDIR
- /variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
-
-Variable Expansion Operators
-============================
-
-.. toctree::
- :maxdepth: 1
-
- /variable/CACHE
- /variable/ENV
-
-Internal Variables
-==================
-
-CMake has many internal variables. Most of them are undocumented.
-Some of them, however, were at some point described as normal
-variables, and therefore may be encountered in legacy code. They
-are subject to change, and not recommended for use in project code.
-
-.. toctree::
- :maxdepth: 1
-
- /variable/CMAKE_HOME_DIRECTORY
- /variable/CMAKE_INTERNAL_PLATFORM_ABI
- /variable/CMAKE_LANG_COMPILER_ABI
- /variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID
- /variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL
- /variable/CMAKE_LANG_PLATFORM_ID
- /variable/CMAKE_NOT_USING_CONFIG_FLAGS
- /variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION
diff --git a/share/cmake-3.16/Help/manual/cmake.1.rst b/share/cmake-3.16/Help/manual/cmake.1.rst
deleted file mode 100644
index 4ab55a0..0000000
--- a/share/cmake-3.16/Help/manual/cmake.1.rst
+++ /dev/null
@@ -1,676 +0,0 @@
-.. cmake-manual-description: CMake Command-Line Reference
-
-cmake(1)
-********
-
-Synopsis
-========
-
-.. parsed-literal::
-
- `Generate a Project Buildsystem`_
- cmake [<options>] <path-to-source>
- cmake [<options>] <path-to-existing-build>
- cmake [<options>] -S <path-to-source> -B <path-to-build>
-
- `Build a Project`_
- cmake --build <dir> [<options>] [-- <build-tool-options>]
-
- `Install a Project`_
- cmake --install <dir> [<options>]
-
- `Open a Project`_
- cmake --open <dir>
-
- `Run a Script`_
- cmake [{-D <var>=<value>}...] -P <cmake-script-file>
-
- `Run a Command-Line Tool`_
- cmake -E <command> [<options>]
-
- `Run the Find-Package Tool`_
- cmake --find-package [<options>]
-
- `View Help`_
- cmake --help[-<topic>]
-
-Description
-===========
-
-The **cmake** executable is the command-line interface of the cross-platform
-buildsystem generator CMake. The above `Synopsis`_ lists various actions
-the tool can perform as described in sections below.
-
-To build a software project with CMake, `Generate a Project Buildsystem`_.
-Optionally use **cmake** to `Build a Project`_, `Install a Project`_ or just
-run the corresponding build tool (e.g. ``make``) directly. **cmake** can also
-be used to `View Help`_.
-
-The other actions are meant for use by software developers writing
-scripts in the :manual:`CMake language <cmake-language(7)>` to support
-their builds.
-
-For graphical user interfaces that may be used in place of **cmake**,
-see :manual:`ccmake <ccmake(1)>` and :manual:`cmake-gui <cmake-gui(1)>`.
-For command-line interfaces to the CMake testing and packaging facilities,
-see :manual:`ctest <ctest(1)>` and :manual:`cpack <cpack(1)>`.
-
-For more information on CMake at large, `see also`_ the links at the end
-of this manual.
-
-
-Introduction to CMake Buildsystems
-==================================
-
-A *buildsystem* describes how to build a project's executables and libraries
-from its source code using a *build tool* to automate the process. For
-example, a buildsystem may be a ``Makefile`` for use with a command-line
-``make`` tool or a project file for an Integrated Development Environment
-(IDE). In order to avoid maintaining multiple such buildsystems, a project
-may specify its buildsystem abstractly using files written in the
-:manual:`CMake language <cmake-language(7)>`. From these files CMake
-generates a preferred buildsystem locally for each user through a backend
-called a *generator*.
-
-To generate a buildsystem with CMake, the following must be selected:
-
-Source Tree
- The top-level directory containing source files provided by the project.
- The project specifies its buildsystem using files as described in the
- :manual:`cmake-language(7)` manual, starting with a top-level file named
- ``CMakeLists.txt``. These files specify build targets and their
- dependencies as described in the :manual:`cmake-buildsystem(7)` manual.
-
-Build Tree
- The top-level directory in which buildsystem files and build output
- artifacts (e.g. executables and libraries) are to be stored.
- CMake will write a ``CMakeCache.txt`` file to identify the directory
- as a build tree and store persistent information such as buildsystem
- configuration options.
-
- To maintain a pristine source tree, perform an *out-of-source* build
- by using a separate dedicated build tree. An *in-source* build in
- which the build tree is placed in the same directory as the source
- tree is also supported, but discouraged.
-
-Generator
- This chooses the kind of buildsystem to generate. See the
- :manual:`cmake-generators(7)` manual for documentation of all generators.
- Run ``cmake --help`` to see a list of generators available locally.
- Optionally use the ``-G`` option below to specify a generator, or simply
- accept the default CMake chooses for the current platform.
-
- When using one of the :ref:`Command-Line Build Tool Generators`
- CMake expects that the environment needed by the compiler toolchain
- is already configured in the shell. When using one of the
- :ref:`IDE Build Tool Generators`, no particular environment is needed.
-
-
-Generate a Project Buildsystem
-==============================
-
-Run CMake with one of the following command signatures to specify the
-source and build trees and generate a buildsystem:
-
-``cmake [<options>] <path-to-source>``
- Uses the current working directory as the build tree, and
- ``<path-to-source>`` as the source tree. The specified path may
- be absolute or relative to the current working directory.
- The source tree must contain a ``CMakeLists.txt`` file and must
- *not* contain a ``CMakeCache.txt`` file because the latter
- identifies an existing build tree. For example:
-
- .. code-block:: console
-
- $ mkdir build ; cd build
- $ cmake ../src
-
-``cmake [<options>] <path-to-existing-build>``
- Uses ``<path-to-existing-build>`` as the build tree, and loads the
- path to the source tree from its ``CMakeCache.txt`` file, which must
- have already been generated by a previous run of CMake. The specified
- path may be absolute or relative to the current working directory.
- For example:
-
- .. code-block:: console
-
- $ cd build
- $ cmake .
-
-``cmake [<options>] -S <path-to-source> -B <path-to-build>``
- Uses ``<path-to-build>`` as the build tree and ``<path-to-source>``
- as the source tree. The specified paths may be absolute or relative
- to the current working directory. The source tree must contain a
- ``CMakeLists.txt`` file. The build tree will be created automatically
- if it does not already exist. For example:
-
- .. code-block:: console
-
- $ cmake -S src -B build
-
-In all cases the ``<options>`` may be zero or more of the `Options`_ below.
-
-After generating a buildsystem one may use the corresponding native
-build tool to build the project. For example, after using the
-:generator:`Unix Makefiles` generator one may run ``make`` directly:
-
- .. code-block:: console
-
- $ make
- $ make install
-
-Alternatively, one may use **cmake** to `Build a Project`_ by
-automatically choosing and invoking the appropriate native build tool.
-
-.. _`CMake Options`:
-
-Options
--------
-
-.. include:: OPTIONS_BUILD.txt
-
-``-L[A][H]``
- List non-advanced cached variables.
-
- List ``CACHE`` variables will run CMake and list all the variables from
- the CMake ``CACHE`` that are not marked as ``INTERNAL`` or :prop_cache:`ADVANCED`.
- This will effectively display current CMake settings, which can then be
- changed with ``-D`` option. Changing some of the variables may result
- in more variables being created. If ``A`` is specified, then it will
- display also advanced variables. If ``H`` is specified, it will also
- display help for each variable.
-
-``-N``
- View mode only.
-
- Only load the cache. Do not actually run configure and generate
- steps.
-
-``--graphviz=[file]``
- Generate graphviz of dependencies, see :module:`CMakeGraphVizOptions` for more.
-
- Generate a graphviz input file that will contain all the library and
- executable dependencies in the project. See the documentation for
- :module:`CMakeGraphVizOptions` for more details.
-
-``--system-information [file]``
- Dump information about this system.
-
- Dump a wide range of information about the current system. If run
- from the top of a binary tree for a CMake project it will dump
- additional information such as the cache, log files etc.
-
-``--log-level=<ERROR|WARNING|NOTICE|STATUS|VERBOSE|DEBUG|TRACE>``
- Set the log level.
-
- The :command:`message` command will only output messages of the specified
- log level or higher. The default log level is ``STATUS``.
-
- For backward compatibility reasons, ``--loglevel`` is also accepted as a
- synonym for this option.
-
-``--debug-trycompile``
- Do not delete the :command:`try_compile` build tree.
- Only useful on one :command:`try_compile` at a time.
-
- Do not delete the files and directories created for :command:`try_compile`
- calls. This is useful in debugging failed try_compiles. It may
- however change the results of the try-compiles as old junk from a
- previous try-compile may cause a different test to either pass or
- fail incorrectly. This option is best used for one try-compile at a
- time, and only when debugging.
-
-``--debug-output``
- Put cmake in a debug mode.
-
- Print extra information during the cmake run like stack traces with
- :command:`message(SEND_ERROR)` calls.
-
-``--trace``
- Put cmake in trace mode.
-
- Print a trace of all calls made and from where.
-
-``--trace-expand``
- Put cmake in trace mode.
-
- Like ``--trace``, but with variables expanded.
-
-``--trace-source=<file>``
- Put cmake in trace mode, but output only lines of a specified file.
-
- Multiple options are allowed.
-
-``--trace-redirect=<file>``
- Put cmake in trace mode and redirect trace output to a file instead of stderr.
-
-``--warn-uninitialized``
- Warn about uninitialized values.
-
- Print a warning when an uninitialized variable is used.
-
-``--warn-unused-vars``
- Warn about unused variables.
-
- Find variables that are declared or set, but not used.
-
-``--no-warn-unused-cli``
- Don't warn about command line options.
-
- Don't find variables that are declared on the command line, but not
- used.
-
-``--check-system-vars``
- Find problems with variable usage in system files.
-
- Normally, unused and uninitialized variables are searched for only
- in :variable:`CMAKE_SOURCE_DIR` and :variable:`CMAKE_BINARY_DIR`.
- This flag tells CMake to warn about other files as well.
-
-.. _`Build Tool Mode`:
-
-Build a Project
-===============
-
-CMake provides a command-line signature to build an already-generated
-project binary tree:
-
-.. code-block:: shell
-
- cmake --build <dir> [<options>] [-- <build-tool-options>]
-
-This abstracts a native build tool's command-line interface with the
-following options:
-
-``--build <dir>``
- Project binary directory to be built. This is required and must be first.
-
-``--parallel [<jobs>], -j [<jobs>]``
- The maximum number of concurrent processes to use when building.
- If ``<jobs>`` is omitted the native build tool's default number is used.
-
- The :envvar:`CMAKE_BUILD_PARALLEL_LEVEL` environment variable, if set,
- specifies a default parallel level when this option is not given.
-
- Some native build tools always build in parallel. The use of ``<jobs>``
- value of ``1`` can be used to limit to a single job.
-
-``--target <tgt>..., -t <tgt>...``
- Build ``<tgt>`` instead of the default target. Multiple targets may be
- given, separated by spaces.
-
-``--config <cfg>``
- For multi-configuration tools, choose configuration ``<cfg>``.
-
-``--clean-first``
- Build target ``clean`` first, then build.
- (To clean only, use ``--target clean``.)
-
-``--use-stderr``
- Ignored. Behavior is default in CMake >= 3.0.
-
-``--verbose, -v``
- Enable verbose output - if supported - including the build commands to be
- executed.
-
- This option can be omitted if :envvar:`VERBOSE` environment variable or
- :variable:`CMAKE_VERBOSE_MAKEFILE` cached variable is set.
-
-
-``--``
- Pass remaining options to the native tool.
-
-Run ``cmake --build`` with no options for quick help.
-
-Install a Project
-=================
-
-CMake provides a command-line signature to install an already-generated
-project binary tree:
-
-.. code-block:: shell
-
- cmake --install <dir> [<options>]
-
-This may be used after building a project to run installation without
-using the generated build system or the native build tool.
-The options are:
-
-``--install <dir>``
- Project binary directory to install. This is required and must be first.
-
-``--config <cfg>``
- For multi-configuration generators, choose configuration ``<cfg>``.
-
-``--component <comp>``
- Component-based install. Only install component ``<comp>``.
-
-``--prefix <prefix>``
- Override the installation prefix, :variable:`CMAKE_INSTALL_PREFIX`.
-
-``--strip``
- Strip before installing.
-
-``-v, --verbose``
- Enable verbose output.
-
- This option can be omitted if :envvar:`VERBOSE` environment variable is set.
-
-Run ``cmake --install`` with no options for quick help.
-
-Open a Project
-==============
-
-.. code-block:: shell
-
- cmake --open <dir>
-
-Open the generated project in the associated application. This is only
-supported by some generators.
-
-
-.. _`Script Processing Mode`:
-
-Run a Script
-============
-
-.. code-block:: shell
-
- cmake [{-D <var>=<value>}...] -P <cmake-script-file>
-
-Process the given cmake file as a script written in the CMake
-language. No configure or generate step is performed and the cache
-is not modified. If variables are defined using ``-D``, this must be
-done before the ``-P`` argument.
-
-
-Run a Command-Line Tool
-=======================
-
-CMake provides builtin command-line tools through the signature
-
-.. code-block:: shell
-
- cmake -E <command> [<options>]
-
-Run ``cmake -E`` or ``cmake -E help`` for a summary of commands.
-Available commands are:
-
-``capabilities``
- Report cmake capabilities in JSON format. The output is a JSON object
- with the following keys:
-
- ``version``
- A JSON object with version information. Keys are:
-
- ``string``
- The full version string as displayed by cmake ``--version``.
- ``major``
- The major version number in integer form.
- ``minor``
- The minor version number in integer form.
- ``patch``
- The patch level in integer form.
- ``suffix``
- The cmake version suffix string.
- ``isDirty``
- A bool that is set if the cmake build is from a dirty tree.
-
- ``generators``
- A list available generators. Each generator is a JSON object with the
- following keys:
-
- ``name``
- A string containing the name of the generator.
- ``toolsetSupport``
- ``true`` if the generator supports toolsets and ``false`` otherwise.
- ``platformSupport``
- ``true`` if the generator supports platforms and ``false`` otherwise.
- ``extraGenerators``
- A list of strings with all the extra generators compatible with
- the generator.
-
- ``fileApi``
- Optional member that is present when the :manual:`cmake-file-api(7)`
- is available. The value is a JSON object with one member:
-
- ``requests``
- A JSON array containing zero or more supported file-api requests.
- Each request is a JSON object with members:
-
- ``kind``
- Specifies one of the supported :ref:`file-api object kinds`.
-
- ``version``
- A JSON array whose elements are each a JSON object containing
- ``major`` and ``minor`` members specifying non-negative integer
- version components.
-
- ``serverMode``
- ``true`` if cmake supports server-mode and ``false`` otherwise.
-
-``chdir <dir> <cmd> [<arg>...]``
- Change the current working directory and run a command.
-
-``compare_files [--ignore-eol] <file1> <file2>``
- Check if ``<file1>`` is same as ``<file2>``. If files are the same,
- then returns ``0``, if not it returns ``1``. The ``--ignore-eol`` option
- implies line-wise comparison and ignores LF/CRLF differences.
-
-``copy <file>... <destination>``
- Copy files to ``<destination>`` (either file or directory).
- If multiple files are specified, the ``<destination>`` must be
- directory and it must exist. Wildcards are not supported.
- ``copy`` does follow symlinks. That means it does not copy symlinks,
- but the files or directories it point to.
-
-``copy_directory <dir>... <destination>``
- Copy content of ``<dir>...`` directories to ``<destination>`` directory.
- If ``<destination>`` directory does not exist it will be created.
- ``copy_directory`` does follow symlinks.
-
-``copy_if_different <file>... <destination>``
- Copy files to ``<destination>`` (either file or directory) if
- they have changed.
- If multiple files are specified, the ``<destination>`` must be
- directory and it must exist.
- ``copy_if_different`` does follow symlinks.
-
-``create_symlink <old> <new>``
- Create a symbolic link ``<new>`` naming ``<old>``.
-
- .. note::
- Path to where ``<new>`` symbolic link will be created has to exist beforehand.
-
-``echo [<string>...]``
- Displays arguments as text.
-
-``echo_append [<string>...]``
- Displays arguments as text but no new line.
-
-``env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]...``
- Run command in a modified environment.
-
-``environment``
- Display the current environment variables.
-
-``false``
- Do nothing, with an exit code of 1.
-
-``make_directory <dir>...``
- Create ``<dir>`` directories. If necessary, create parent
- directories too. If a directory already exists it will be
- silently ignored.
-
-``md5sum <file>...``
- Create MD5 checksum of files in ``md5sum`` compatible format::
-
- 351abe79cd3800b38cdfb25d45015a15 file1.txt
- 052f86c15bbde68af55c7f7b340ab639 file2.txt
-
-``sha1sum <file>...``
- Create SHA1 checksum of files in ``sha1sum`` compatible format::
-
- 4bb7932a29e6f73c97bb9272f2bdc393122f86e0 file1.txt
- 1df4c8f318665f9a5f2ed38f55adadb7ef9f559c file2.txt
-
-``sha224sum <file>...``
- Create SHA224 checksum of files in ``sha224sum`` compatible format::
-
- b9b9346bc8437bbda630b0b7ddfc5ea9ca157546dbbf4c613192f930 file1.txt
- 6dfbe55f4d2edc5fe5c9197bca51ceaaf824e48eba0cc453088aee24 file2.txt
-
-``sha256sum <file>...``
- Create SHA256 checksum of files in ``sha256sum`` compatible format::
-
- 76713b23615d31680afeb0e9efe94d47d3d4229191198bb46d7485f9cb191acc file1.txt
- 15b682ead6c12dedb1baf91231e1e89cfc7974b3787c1e2e01b986bffadae0ea file2.txt
-
-``sha384sum <file>...``
- Create SHA384 checksum of files in ``sha384sum`` compatible format::
-
- acc049fedc091a22f5f2ce39a43b9057fd93c910e9afd76a6411a28a8f2b8a12c73d7129e292f94fc0329c309df49434 file1.txt
- 668ddeb108710d271ee21c0f3acbd6a7517e2b78f9181c6a2ff3b8943af92b0195dcb7cce48aa3e17893173c0a39e23d file2.txt
-
-``sha512sum <file>...``
- Create SHA512 checksum of files in ``sha512sum`` compatible format::
-
- 2a78d7a6c5328cfb1467c63beac8ff21794213901eaadafd48e7800289afbc08e5fb3e86aa31116c945ee3d7bf2a6194489ec6101051083d1108defc8e1dba89 file1.txt
- 7a0b54896fe5e70cca6dd643ad6f672614b189bf26f8153061c4d219474b05dad08c4e729af9f4b009f1a1a280cb625454bf587c690f4617c27e3aebdf3b7a2d file2.txt
-
-``remove [-f] <file>...``
- Remove the file(s). If any of the listed files already do not
- exist, the command returns a non-zero exit code, but no message
- is logged. The ``-f`` option changes the behavior to return a
- zero exit code (i.e. success) in such situations instead.
- ``remove`` does not follow symlinks. That means it remove only symlinks
- and not files it point to.
-
-``remove_directory <dir>...``
- Remove ``<dir>`` directories and their contents. If a directory does
- not exist it will be silently ignored. If ``<dir>`` is a symlink to
- a directory, just the symlink will be removed.
-
-``rename <oldname> <newname>``
- Rename a file or directory (on one volume). If file with the ``<newname>`` name
- already exists, then it will be silently replaced.
-
-``server``
- Launch :manual:`cmake-server(7)` mode.
-
-``sleep <number>...``
- Sleep for given number of seconds.
-
-``tar [cxt][vf][zjJ] file.tar [<options>] [--] [<pathname>...]``
- Create or extract a tar or zip archive. Options are:
-
- ``c``
- Create a new archive containing the specified files.
- If used, the ``<pathname>...`` argument is mandatory.
- ``x``
- Extract to disk from the archive.
- The ``<pathname>...`` argument could be used to extract only selected files
- or directories.
- When extracting selected files or directories, you must provide their exact
- names including the path, as printed by list (``-t``).
- ``t``
- List archive contents.
- The ``<pathname>...`` argument could be used to list only selected files
- or directories.
- ``v``
- Produce verbose output.
- ``z``
- Compress the resulting archive with gzip.
- ``j``
- Compress the resulting archive with bzip2.
- ``J``
- Compress the resulting archive with XZ.
- ``--zstd``
- Compress the resulting archive with Zstandard.
- ``--files-from=<file>``
- Read file names from the given file, one per line.
- Blank lines are ignored. Lines may not start in ``-``
- except for ``--add-file=<name>`` to add files whose
- names start in ``-``.
- ``--format=<format>``
- Specify the format of the archive to be created.
- Supported formats are: ``7zip``, ``gnutar``, ``pax``,
- ``paxr`` (restricted pax, default), and ``zip``.
- ``--mtime=<date>``
- Specify modification time recorded in tarball entries.
- ``--``
- Stop interpreting options and treat all remaining arguments
- as file names, even if they start with ``-``.
-
-
-``time <command> [<args>...]``
- Run command and display elapsed time.
-
-``touch <file>...``
- Creates ``<file>`` if file do not exist.
- If ``<file>`` exists, it is changing ``<file>`` access and modification times.
-
-``touch_nocreate <file>...``
- Touch a file if it exists but do not create it. If a file does
- not exist it will be silently ignored.
-
-``true``
- Do nothing, with an exit code of 0.
-
-Windows-specific Command-Line Tools
------------------------------------
-
-The following ``cmake -E`` commands are available only on Windows:
-
-``delete_regv <key>``
- Delete Windows registry value.
-
-``env_vs8_wince <sdkname>``
- Displays a batch file which sets the environment for the provided
- Windows CE SDK installed in VS2005.
-
-``env_vs9_wince <sdkname>``
- Displays a batch file which sets the environment for the provided
- Windows CE SDK installed in VS2008.
-
-``write_regv <key> <value>``
- Write Windows registry value.
-
-
-Run the Find-Package Tool
-=========================
-
-CMake provides a pkg-config like helper for Makefile-based projects:
-
-.. code-block:: shell
-
- cmake --find-package [<options>]
-
-It searches a package using :command:`find_package()` and prints the
-resulting flags to stdout. This can be used instead of pkg-config
-to find installed libraries in plain Makefile-based projects or in
-autoconf-based projects (via ``share/aclocal/cmake.m4``).
-
-.. note::
- This mode is not well-supported due to some technical limitations.
- It is kept for compatibility but should not be used in new projects.
-
-
-View Help
-=========
-
-To print selected pages from the CMake documentation, use
-
-.. code-block:: shell
-
- cmake --help[-<topic>]
-
-with one of the following options:
-
-.. include:: OPTIONS_HELP.txt
-
-
-See Also
-========
-
-.. include:: LINKS.txt
diff --git a/share/cmake-3.16/Help/manual/ctest.1.rst b/share/cmake-3.16/Help/manual/ctest.1.rst
deleted file mode 100644
index e29ebca..0000000
--- a/share/cmake-3.16/Help/manual/ctest.1.rst
+++ /dev/null
@@ -1,1531 +0,0 @@
-.. cmake-manual-description: CTest Command-Line Reference
-
-ctest(1)
-********
-
-.. contents::
-
-Synopsis
-========
-
-.. parsed-literal::
-
- ctest [<options>]
- ctest --build-and-test <path-to-source> <path-to-build>
- --build-generator <generator> [<options>...]
- [--build-options <opts>...] [--test-command <command> [<args>...]]
- ctest {-D <dashboard> | -M <model> -T <action> | -S <script> | -SP <script>}
- [-- <dashboard-options>...]
-
-Description
-===========
-
-The **ctest** executable is the CMake test driver program.
-CMake-generated build trees created for projects that use the
-:command:`enable_testing` and :command:`add_test` commands have testing support.
-This program will run the tests and report results.
-
-Options
-=======
-
-``-C <cfg>, --build-config <cfg>``
- Choose configuration to test.
-
- Some CMake-generated build trees can have multiple build
- configurations in the same tree. This option can be used to specify
- 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.
-
- Test output is normally suppressed and only summary information is
- displayed. This option will show all test output.
-
-``-VV,--extra-verbose``
- Enable more verbose output from tests.
-
- Test output is normally suppressed and only summary information is
- displayed. This option will show even more test output.
-
-``--debug``
- Displaying more verbose internals of CTest.
-
- This feature will result in a large number of output that is mostly
- useful for debugging dashboard problems.
-
-``--output-on-failure``
- Output anything outputted by the test program if the test should fail.
- This option can also be enabled by setting the
- :envvar:`CTEST_OUTPUT_ON_FAILURE` environment variable
-
-``-F``
- Enable failover.
-
- This option allows CTest to resume a test set execution that was
- previously interrupted. If no interruption occurred, the ``-F`` option
- will have no effect.
-
-``-j <jobs>, --parallel <jobs>``
- Run the tests in parallel using the given number of jobs.
-
- This option tells CTest to run the tests in parallel using given
- number of jobs. This option can also be set by setting the
- :envvar:`CTEST_PARALLEL_LEVEL` environment variable.
-
- This option can be used with the :prop_test:`PROCESSORS` test property.
-
- See `Label and Subproject Summary`_.
-
-``--resource-spec-file <file>``
- Run CTest with :ref:`resource allocation <ctest-resource-allocation>` enabled,
- using the
- :ref:`resource specification file <ctest-resource-specification-file>`
- specified in ``<file>``.
-
- When ``ctest`` is run as a `Dashboard Client`_ this sets the
- ``ResourceSpecFile`` option of the `CTest Test Step`_.
-
-``--test-load <level>``
- While running tests in parallel (e.g. with ``-j``), try not to start
- tests when they may cause the CPU load to pass above a given threshold.
-
- When ``ctest`` is run as a `Dashboard Client`_ this sets the
- ``TestLoad`` option of the `CTest Test Step`_.
-
-``-Q,--quiet``
- Make CTest quiet.
-
- This option will suppress all the output. The output log file will
- still be generated if the ``--output-log`` is specified. Options such
- as ``--verbose``, ``--extra-verbose``, and ``--debug`` are ignored
- if ``--quiet`` is specified.
-
-``-O <file>, --output-log <file>``
- Output to log file.
-
- This option tells CTest to write all its output to a ``<file>`` log file.
-
-``-N,--show-only[=<format>]``
- Disable actual execution of tests.
-
- This option tells CTest to list the tests that would be run but not
- actually run them. Useful in conjunction with the ``-R`` and ``-E``
- options.
-
- ``<format>`` can be one of the following values.
-
- ``human``
- Human-friendly output. This is not guaranteed to be stable.
- This is the default.
-
- ``json-v1``
- Dump the test information in JSON format.
- See `Show as JSON Object Model`_.
-
-``-L <regex>, --label-regex <regex>``
- Run tests with labels matching regular expression.
-
- This option tells CTest to run only the tests whose labels match the
- given regular expression.
-
-``-R <regex>, --tests-regex <regex>``
- Run tests matching regular expression.
-
- This option tells CTest to run only the tests whose names match the
- given regular expression.
-
-``-E <regex>, --exclude-regex <regex>``
- Exclude tests matching regular expression.
-
- This option tells CTest to NOT run the tests whose names match the
- given regular expression.
-
-``-LE <regex>, --label-exclude <regex>``
- Exclude tests with labels matching regular expression.
-
- This option tells CTest to NOT run the tests whose labels match the
- given regular expression.
-
-``-FA <regex>, --fixture-exclude-any <regex>``
- Exclude fixtures matching ``<regex>`` from automatically adding any tests to
- the test set.
-
- If a test in the set of tests to be executed requires a particular fixture,
- that fixture's setup and cleanup tests would normally be added to the test set
- automatically. This option prevents adding setup or cleanup tests for fixtures
- matching the ``<regex>``. Note that all other fixture behavior is retained,
- including test dependencies and skipping tests that have fixture setup tests
- that fail.
-
-``-FS <regex>, --fixture-exclude-setup <regex>``
- Same as ``-FA`` except only matching setup tests are excluded.
-
-``-FC <regex>, --fixture-exclude-cleanup <regex>``
- Same as ``-FA`` except only matching cleanup tests are excluded.
-
-``-D <dashboard>, --dashboard <dashboard>``
- Execute dashboard test.
-
- This option tells CTest to act as a CDash client and perform a
- dashboard test. All tests are ``<Mode><Test>``, where ``<Mode>`` can be
- ``Experimental``, ``Nightly``, and ``Continuous``, and ``<Test>`` can be
- ``Start``, ``Update``, ``Configure``, ``Build``, ``Test``,
- ``Coverage``, and ``Submit``.
-
- See `Dashboard Client`_.
-
-``-D <var>:<type>=<value>``
- Define a variable for script mode.
-
- Pass in variable values on the command line. Use in conjunction
- with ``-S`` to pass variable values to a dashboard script. Parsing ``-D``
- arguments as variable values is only attempted if the value
- following ``-D`` does not match any of the known dashboard types.
-
-``-M <model>, --test-model <model>``
- Sets the model for a dashboard.
-
- This option tells CTest to act as a CDash client where the ``<model>``
- can be ``Experimental``, ``Nightly``, and ``Continuous``.
- Combining ``-M`` and ``-T`` is similar to ``-D``.
-
- See `Dashboard Client`_.
-
-``-T <action>, --test-action <action>``
- Sets the dashboard action to perform.
-
- This option tells CTest to act as a CDash client and perform some
- action such as ``start``, ``build``, ``test`` etc. See
- `Dashboard Client Steps`_ for the full list of actions.
- Combining ``-M`` and ``-T`` is similar to ``-D``.
-
- See `Dashboard Client`_.
-
-``-S <script>, --script <script>``
- Execute a dashboard for a configuration.
-
- This option tells CTest to load in a configuration script which sets
- a number of parameters such as the binary and source directories.
- Then CTest will do what is required to create and run a dashboard.
- This option basically sets up a dashboard and then runs ``ctest -D``
- with the appropriate options.
-
- See `Dashboard Client`_.
-
-``-SP <script>, --script-new-process <script>``
- Execute a dashboard for a configuration.
-
- This option does the same operations as ``-S`` but it will do them in a
- separate process. This is primarily useful in cases where the
- script may modify the environment and you do not want the modified
- environment to impact other ``-S`` scripts.
-
- See `Dashboard Client`_.
-
-``-I [Start,End,Stride,test#,test#|Test file], --tests-information``
- Run a specific number of tests by number.
-
- This option causes CTest to run tests starting at number ``Start``,
- ending at number ``End``, and incrementing by ``Stride``. Any additional
- numbers after ``Stride`` are considered individual test numbers. ``Start``,
- ``End``, or ``Stride`` can be empty. Optionally a file can be given that
- contains the same syntax as the command line.
-
-``-U, --union``
- Take the Union of ``-I`` and ``-R``.
-
- When both ``-R`` and ``-I`` are specified by default the intersection of
- tests are run. By specifying ``-U`` the union of tests is run instead.
-
-``--rerun-failed``
- Run only the tests that failed previously.
-
- This option tells CTest to perform only the tests that failed during
- its previous run. When this option is specified, CTest ignores all
- other options intended to modify the list of tests to run (``-L``, ``-R``,
- ``-E``, ``-LE``, ``-I``, etc). In the event that CTest runs and no tests
- fail, subsequent calls to CTest with the ``--rerun-failed`` option will run
- the set of tests that most recently failed (if any).
-
-``--repeat-until-fail <n>``
- Require each test to run ``<n>`` times without failing in order to pass.
-
- This is useful in finding sporadic failures in test cases.
-
-``--max-width <width>``
- Set the max width for a test name to output.
-
- Set the maximum width for each test name to show in the output.
- This allows the user to widen the output to avoid clipping the test
- name which can be very annoying.
-
-``--interactive-debug-mode [0|1]``
- Set the interactive mode to ``0`` or ``1``.
-
- This option causes CTest to run tests in either an interactive mode
- or a non-interactive mode. On Windows this means that in
- non-interactive mode, all system debug pop up windows are blocked.
- In dashboard mode (``Experimental``, ``Nightly``, ``Continuous``), the default
- is non-interactive. When just running tests not for a dashboard the
- default is to allow popups and interactive debugging.
-
-``--no-label-summary``
- Disable timing summary information for labels.
-
- This option tells CTest not to print summary information for each
- label associated with the tests run. If there are no labels on the
- tests, nothing extra is printed.
-
- See `Label and Subproject Summary`_.
-
-``--no-subproject-summary``
- Disable timing summary information for subprojects.
-
- This option tells CTest not to print summary information for each
- subproject associated with the tests run. If there are no subprojects on the
- tests, nothing extra is printed.
-
- See `Label and Subproject Summary`_.
-
-``--build-and-test``
-See `Build and Test Mode`_.
-
-``--test-output-size-passed <size>``
- Limit the output for passed tests to ``<size>`` bytes.
-
-``--test-output-size-failed <size>``
- Limit the output for failed tests to ``<size>`` bytes.
-
-``--overwrite``
- Overwrite CTest configuration option.
-
- By default CTest uses configuration options from configuration file.
- This option will overwrite the configuration option.
-
-``--force-new-ctest-process``
- Run child CTest instances as new processes.
-
- By default CTest will run child CTest instances within the same
- process. If this behavior is not desired, this argument will
- enforce new processes for child CTest processes.
-
-``--schedule-random``
- Use a random order for scheduling tests.
-
- This option will run the tests in a random order. It is commonly
- used to detect implicit dependencies in a test suite.
-
-``--submit-index``
- Legacy option for old Dart2 dashboard server feature.
- Do not use.
-
-``--timeout <seconds>``
- Set the default test timeout.
-
- This option effectively sets a timeout on all tests that do not
- already have a timeout set on them via the :prop_test:`TIMEOUT`
- property.
-
-``--stop-time <time>``
- Set a time at which all tests should stop running.
-
- Set a real time of day at which all tests should timeout. Example:
- ``7:00:00 -0400``. Any time format understood by the curl date parser
- is accepted. Local time is assumed if no timezone is specified.
-
-``--print-labels``
- Print all available test labels.
-
- This option will not run any tests, it will simply print the list of
- all labels associated with the test set.
-
-.. include:: OPTIONS_HELP.txt
-
-.. _`Label and Subproject Summary`:
-
-Label and Subproject Summary
-============================
-
-CTest prints timing summary information for each ``LABEL`` and subproject
-associated with the tests run. The label time summary will not include labels
-that are mapped to subprojects.
-
-When the :prop_test:`PROCESSORS` test property is set, CTest will display a
-weighted test timing result in label and subproject summaries. The time is
-reported with `sec*proc` instead of just `sec`.
-
-The weighted time summary reported for each label or subproject ``j``
-is computed as::
-
- Weighted Time Summary for Label/Subproject j =
- sum(raw_test_time[j,i] * num_processors[j,i], i=1...num_tests[j])
-
- for labels/subprojects j=1...total
-
-where:
-
-* ``raw_test_time[j,i]``: Wall-clock time for the ``i`` test
- for the ``j`` label or subproject
-* ``num_processors[j,i]``: Value of the CTest :prop_test:`PROCESSORS` property
- for the ``i`` test for the ``j`` label or subproject
-* ``num_tests[j]``: Number of tests associated with the ``j`` label or subproject
-* ``total``: Total number of labels or subprojects that have at least one test run
-
-Therefore, the weighted time summary for each label or subproject represents
-the amount of time that CTest gave to run the tests for each label or
-subproject and gives a good representation of the total expense of the tests
-for each label or subproject when compared to other labels or subprojects.
-
-For example, if ``SubprojectA`` showed ``100 sec*proc`` and ``SubprojectB`` showed
-``10 sec*proc``, then CTest allocated approximately 10 times the CPU/core time
-to run the tests for ``SubprojectA`` than for ``SubprojectB`` (e.g. so if effort
-is going to be expended to reduce the cost of the test suite for the whole
-project, then reducing the cost of the test suite for ``SubprojectA`` would
-likely have a larger impact than effort to reduce the cost of the test suite
-for ``SubprojectB``).
-
-.. _`Build and Test Mode`:
-
-Build and Test Mode
-===================
-
-CTest provides a command-line signature to configure (i.e. run cmake on),
-build, and/or execute a test::
-
- ctest --build-and-test <path-to-source> <path-to-build>
- --build-generator <generator>
- [<options>...]
- [--build-options <opts>...]
- [--test-command <command> [<args>...]]
-
-The configure and test steps are optional. The arguments to this command line
-are the source and binary directories. The ``--build-generator`` option *must*
-be provided to use ``--build-and-test``. If ``--test-command`` is specified
-then that will be run after the build is complete. Other options that affect
-this mode include:
-
-``--build-target``
- Specify a specific target to build.
-
- If left out the ``all`` target is built.
-
-``--build-nocmake``
- Run the build without running cmake first.
-
- Skip the cmake step.
-
-``--build-run-dir``
- Specify directory to run programs from.
-
- Directory where programs will be after it has been compiled.
-
-``--build-two-config``
- Run CMake twice.
-
-``--build-exe-dir``
- Specify the directory for the executable.
-
-``--build-generator``
- Specify the generator to use. See the :manual:`cmake-generators(7)` manual.
-
-``--build-generator-platform``
- Specify the generator-specific platform.
-
-``--build-generator-toolset``
- Specify the generator-specific toolset.
-
-``--build-project``
- Specify the name of the project to build.
-
-``--build-makeprogram``
- Specify the explicit make program to be used by CMake when configuring and
- building the project. Only applicable for Make and Ninja based generators.
-
-``--build-noclean``
- Skip the make clean step.
-
-``--build-config-sample``
- A sample executable to use to determine the configuration that
- should be used. e.g. ``Debug``, ``Release`` etc.
-
-``--build-options``
- Additional options for configuring the build (i.e. for CMake, not for
- the build tool). Note that if this is specified, the ``--build-options``
- keyword and its arguments must be the last option given on the command
- line, with the possible exception of ``--test-command``.
-
-``--test-command``
- The command to run as the test step with the ``--build-and-test`` option.
- All arguments following this keyword will be assumed to be part of the
- test command line, so it must be the last option given.
-
-``--test-timeout``
- The time limit in seconds
-
-.. _`Dashboard Client`:
-
-Dashboard Client
-================
-
-CTest can operate as a client for the `CDash`_ software quality dashboard
-application. As a dashboard client, CTest performs a sequence of steps
-to configure, build, and test software, and then submits the results to
-a `CDash`_ server. The command-line signature used to submit to `CDash`_ is::
-
- ctest (-D <dashboard> | -M <model> -T <action> | -S <script> | -SP <script>)
- [-- <dashboard-options>...]
-
-Options for Dashboard Client include:
-
-``--group <group>``
- Specify what group you'd like to submit results to
-
- Submit dashboard to specified group instead of default one. By
- default, the dashboard is submitted to Nightly, Experimental, or
- Continuous group, but by specifying this option, the group can be
- arbitrary.
-
- This replaces the deprecated option ``--track``.
- Despite the name change its behavior is unchanged.
-
-``-A <file>, --add-notes <file>``
- Add a notes file with submission.
-
- This option tells CTest to include a notes file when submitting
- dashboard.
-
-``--tomorrow-tag``
- ``Nightly`` or ``Experimental`` starts with next day tag.
-
- This is useful if the build will not finish in one day.
-
-``--extra-submit <file>[;<file>]``
- Submit extra files to the dashboard.
-
- This option will submit extra files to the dashboard.
-
-``--http1.0``
- Submit using `HTTP 1.0`.
-
- This option will force CTest to use `HTTP 1.0` to submit files to the
- dashboard, instead of `HTTP 1.1`.
-
-``--no-compress-output``
- Do not compress test output when submitting.
-
- This flag will turn off automatic compression of test output. Use
- this to maintain compatibility with an older version of CDash which
- doesn't support compressed test output.
-
-Dashboard Client Steps
-----------------------
-
-CTest defines an ordered list of testing steps of which some or all may
-be run as a dashboard client:
-
-``Start``
- Start a new dashboard submission to be composed of results recorded
- by the following steps.
- See the `CTest Start Step`_ section below.
-
-``Update``
- Update the source tree from its version control repository.
- Record the old and new versions and the list of updated source files.
- See the `CTest Update Step`_ section below.
-
-``Configure``
- Configure the software by running a command in the build tree.
- Record the configuration output log.
- See the `CTest Configure Step`_ section below.
-
-``Build``
- Build the software by running a command in the build tree.
- Record the build output log and detect warnings and errors.
- See the `CTest Build Step`_ section below.
-
-``Test``
- Test the software by loading a ``CTestTestfile.cmake``
- from the build tree and executing the defined tests.
- Record the output and result of each test.
- See the `CTest Test Step`_ section below.
-
-``Coverage``
- Compute coverage of the source code by running a coverage
- analysis tool and recording its output.
- See the `CTest Coverage Step`_ section below.
-
-``MemCheck``
- Run the software test suite through a memory check tool.
- Record the test output, results, and issues reported by the tool.
- See the `CTest MemCheck Step`_ section below.
-
-``Submit``
- Submit results recorded from other testing steps to the
- software quality dashboard server.
- See the `CTest Submit Step`_ section below.
-
-Dashboard Client Modes
-----------------------
-
-CTest defines three modes of operation as a dashboard client:
-
-``Nightly``
- This mode is intended to be invoked once per day, typically at night.
- It enables the ``Start``, ``Update``, ``Configure``, ``Build``, ``Test``,
- ``Coverage``, and ``Submit`` steps by default. Selected steps run even
- if the ``Update`` step reports no changes to the source tree.
-
-``Continuous``
- This mode is intended to be invoked repeatedly throughout the day.
- It enables the ``Start``, ``Update``, ``Configure``, ``Build``, ``Test``,
- ``Coverage``, and ``Submit`` steps by default, but exits after the
- ``Update`` step if it reports no changes to the source tree.
-
-``Experimental``
- This mode is intended to be invoked by a developer to test local changes.
- It enables the ``Start``, ``Configure``, ``Build``, ``Test``, ``Coverage``,
- and ``Submit`` steps by default.
-
-Dashboard Client via CTest Command-Line
----------------------------------------
-
-CTest can perform testing on an already-generated build tree.
-Run the ``ctest`` command with the current working directory set
-to the build tree and use one of these signatures::
-
- ctest -D <mode>[<step>]
- ctest -M <mode> [ -T <step> ]...
-
-The ``<mode>`` must be one of the above `Dashboard Client Modes`_,
-and each ``<step>`` must be one of the above `Dashboard Client Steps`_.
-
-CTest reads the `Dashboard Client Configuration`_ settings from
-a file in the build tree called either ``CTestConfiguration.ini``
-or ``DartConfiguration.tcl`` (the names are historical). The format
-of the file is::
-
- # Lines starting in '#' are comments.
- # Other non-blank lines are key-value pairs.
- <setting>: <value>
-
-where ``<setting>`` is the setting name and ``<value>`` is the
-setting value.
-
-In build trees generated by CMake, this configuration file is
-generated by the :module:`CTest` module if included by the project.
-The module uses variables to obtain a value for each setting
-as documented with the settings below.
-
-.. _`CTest Script`:
-
-Dashboard Client via CTest Script
----------------------------------
-
-CTest can perform testing driven by a :manual:`cmake-language(7)`
-script that creates and maintains the source and build tree as
-well as performing the testing steps. Run the ``ctest`` command
-with the current working directory set outside of any build tree
-and use one of these signatures::
-
- ctest -S <script>
- ctest -SP <script>
-
-The ``<script>`` file must call :ref:`CTest Commands` commands
-to run testing steps explicitly as documented below. The commands
-obtain `Dashboard Client Configuration`_ settings from their
-arguments or from variables set in the script.
-
-Dashboard Client Configuration
-==============================
-
-The `Dashboard Client Steps`_ may be configured by named
-settings as documented in the following sections.
-
-.. _`CTest Start Step`:
-
-CTest Start Step
-----------------
-
-Start a new dashboard submission to be composed of results recorded
-by the following steps.
-
-In a `CTest Script`_, the :command:`ctest_start` command runs this step.
-Arguments to the command may specify some of the step settings.
-The command first runs the command-line specified by the
-``CTEST_CHECKOUT_COMMAND`` variable, if set, to initialize the source
-directory.
-
-Configuration settings include:
-
-``BuildDirectory``
- The full path to the project build tree.
-
- * `CTest Script`_ variable: :variable:`CTEST_BINARY_DIRECTORY`
- * :module:`CTest` module variable: :variable:`PROJECT_BINARY_DIR`
-
-``SourceDirectory``
- The full path to the project source tree.
-
- * `CTest Script`_ variable: :variable:`CTEST_SOURCE_DIRECTORY`
- * :module:`CTest` module variable: :variable:`PROJECT_SOURCE_DIR`
-
-.. _`CTest Update Step`:
-
-CTest Update Step
------------------
-
-In a `CTest Script`_, the :command:`ctest_update` command runs this step.
-Arguments to the command may specify some of the step settings.
-
-Configuration settings to specify the version control tool include:
-
-``BZRCommand``
- ``bzr`` command-line tool to use if source tree is managed by Bazaar.
-
- * `CTest Script`_ variable: :variable:`CTEST_BZR_COMMAND`
- * :module:`CTest` module variable: none
-
-``BZRUpdateOptions``
- Command-line options to the ``BZRCommand`` when updating the source.
-
- * `CTest Script`_ variable: :variable:`CTEST_BZR_UPDATE_OPTIONS`
- * :module:`CTest` module variable: none
-
-``CVSCommand``
- ``cvs`` command-line tool to use if source tree is managed by CVS.
-
- * `CTest Script`_ variable: :variable:`CTEST_CVS_COMMAND`
- * :module:`CTest` module variable: ``CVSCOMMAND``
-
-``CVSUpdateOptions``
- Command-line options to the ``CVSCommand`` when updating the source.
-
- * `CTest Script`_ variable: :variable:`CTEST_CVS_UPDATE_OPTIONS`
- * :module:`CTest` module variable: ``CVS_UPDATE_OPTIONS``
-
-``GITCommand``
- ``git`` command-line tool to use if source tree is managed by Git.
-
- * `CTest Script`_ variable: :variable:`CTEST_GIT_COMMAND`
- * :module:`CTest` module variable: ``GITCOMMAND``
-
- The source tree is updated by ``git fetch`` followed by
- ``git reset --hard`` to the ``FETCH_HEAD``. The result is the same
- as ``git pull`` except that any local modifications are overwritten.
- Use ``GITUpdateCustom`` to specify a different approach.
-
-``GITInitSubmodules``
- If set, CTest will update the repository's submodules before updating.
-
- * `CTest Script`_ variable: :variable:`CTEST_GIT_INIT_SUBMODULES`
- * :module:`CTest` module variable: ``CTEST_GIT_INIT_SUBMODULES``
-
-``GITUpdateCustom``
- Specify a custom command line (as a semicolon-separated list) to run
- in the source tree (Git work tree) to update it instead of running
- the ``GITCommand``.
-
- * `CTest Script`_ variable: :variable:`CTEST_GIT_UPDATE_CUSTOM`
- * :module:`CTest` module variable: ``CTEST_GIT_UPDATE_CUSTOM``
-
-``GITUpdateOptions``
- Command-line options to the ``GITCommand`` when updating the source.
-
- * `CTest Script`_ variable: :variable:`CTEST_GIT_UPDATE_OPTIONS`
- * :module:`CTest` module variable: ``GIT_UPDATE_OPTIONS``
-
-``HGCommand``
- ``hg`` command-line tool to use if source tree is managed by Mercurial.
-
- * `CTest Script`_ variable: :variable:`CTEST_HG_COMMAND`
- * :module:`CTest` module variable: none
-
-``HGUpdateOptions``
- Command-line options to the ``HGCommand`` when updating the source.
-
- * `CTest Script`_ variable: :variable:`CTEST_HG_UPDATE_OPTIONS`
- * :module:`CTest` module variable: none
-
-``P4Client``
- Value of the ``-c`` option to the ``P4Command``.
-
- * `CTest Script`_ variable: :variable:`CTEST_P4_CLIENT`
- * :module:`CTest` module variable: ``CTEST_P4_CLIENT``
-
-``P4Command``
- ``p4`` command-line tool to use if source tree is managed by Perforce.
-
- * `CTest Script`_ variable: :variable:`CTEST_P4_COMMAND`
- * :module:`CTest` module variable: ``P4COMMAND``
-
-``P4Options``
- Command-line options to the ``P4Command`` for all invocations.
-
- * `CTest Script`_ variable: :variable:`CTEST_P4_OPTIONS`
- * :module:`CTest` module variable: ``CTEST_P4_OPTIONS``
-
-``P4UpdateCustom``
- Specify a custom command line (as a semicolon-separated list) to run
- in the source tree (Perforce tree) to update it instead of running
- the ``P4Command``.
-
- * `CTest Script`_ variable: none
- * :module:`CTest` module variable: ``CTEST_P4_UPDATE_CUSTOM``
-
-``P4UpdateOptions``
- Command-line options to the ``P4Command`` when updating the source.
-
- * `CTest Script`_ variable: :variable:`CTEST_P4_UPDATE_OPTIONS`
- * :module:`CTest` module variable: ``CTEST_P4_UPDATE_OPTIONS``
-
-``SVNCommand``
- ``svn`` command-line tool to use if source tree is managed by Subversion.
-
- * `CTest Script`_ variable: :variable:`CTEST_SVN_COMMAND`
- * :module:`CTest` module variable: ``SVNCOMMAND``
-
-``SVNOptions``
- Command-line options to the ``SVNCommand`` for all invocations.
-
- * `CTest Script`_ variable: :variable:`CTEST_SVN_OPTIONS`
- * :module:`CTest` module variable: ``CTEST_SVN_OPTIONS``
-
-``SVNUpdateOptions``
- Command-line options to the ``SVNCommand`` when updating the source.
-
- * `CTest Script`_ variable: :variable:`CTEST_SVN_UPDATE_OPTIONS`
- * :module:`CTest` module variable: ``SVN_UPDATE_OPTIONS``
-
-``UpdateCommand``
- Specify the version-control command-line tool to use without
- detecting the VCS that manages the source tree.
-
- * `CTest Script`_ variable: :variable:`CTEST_UPDATE_COMMAND`
- * :module:`CTest` module variable: ``<VCS>COMMAND``
- when ``UPDATE_TYPE`` is ``<vcs>``, else ``UPDATE_COMMAND``
-
-``UpdateOptions``
- Command-line options to the ``UpdateCommand``.
-
- * `CTest Script`_ variable: :variable:`CTEST_UPDATE_OPTIONS`
- * :module:`CTest` module variable: ``<VCS>_UPDATE_OPTIONS``
- when ``UPDATE_TYPE`` is ``<vcs>``, else ``UPDATE_OPTIONS``
-
-``UpdateType``
- Specify the version-control system that manages the source
- tree if it cannot be detected automatically.
- The value may be ``bzr``, ``cvs``, ``git``, ``hg``,
- ``p4``, or ``svn``.
-
- * `CTest Script`_ variable: none, detected from source tree
- * :module:`CTest` module variable: ``UPDATE_TYPE`` if set,
- else ``CTEST_UPDATE_TYPE``
-
-.. _`UpdateVersionOnly`:
-
-``UpdateVersionOnly``
- Specify that you want the version control update command to only
- discover the current version that is checked out, and not to update
- to a different version.
-
- * `CTest Script`_ variable: :variable:`CTEST_UPDATE_VERSION_ONLY`
-
-.. _`UpdateVersionOverride`:
-
-``UpdateVersionOverride``
- Specify the current version of your source tree.
-
- When this variable is set to a non-empty string, CTest will report the value
- you specified rather than using the update command to discover the current
- version that is checked out. Use of this variable supersedes
- ``UpdateVersionOnly``. Like ``UpdateVersionOnly``, using this variable tells
- CTest not to update the source tree to a different version.
-
- * `CTest Script`_ variable: :variable:`CTEST_UPDATE_VERSION_OVERRIDE`
-
-Additional configuration settings include:
-
-``NightlyStartTime``
- In the ``Nightly`` dashboard mode, specify the "nightly start time".
- With centralized version control systems (``cvs`` and ``svn``),
- the ``Update`` step checks out the version of the software as of
- this time so that multiple clients choose a common version to test.
- This is not well-defined in distributed version-control systems so
- the setting is ignored.
-
- * `CTest Script`_ variable: :variable:`CTEST_NIGHTLY_START_TIME`
- * :module:`CTest` module variable: ``NIGHTLY_START_TIME`` if set,
- else ``CTEST_NIGHTLY_START_TIME``
-
-.. _`CTest Configure Step`:
-
-CTest Configure Step
---------------------
-
-In a `CTest Script`_, the :command:`ctest_configure` command runs this step.
-Arguments to the command may specify some of the step settings.
-
-Configuration settings include:
-
-``ConfigureCommand``
- Command-line to launch the software configuration process.
- It will be executed in the location specified by the
- ``BuildDirectory`` setting.
-
- * `CTest Script`_ variable: :variable:`CTEST_CONFIGURE_COMMAND`
- * :module:`CTest` module variable: :variable:`CMAKE_COMMAND`
- followed by :variable:`PROJECT_SOURCE_DIR`
-
-``LabelsForSubprojects``
- Specify a semicolon-separated list of labels that will be treated as
- subprojects. This mapping will be passed on to CDash when configure, test or
- build results are submitted.
-
- * `CTest Script`_ variable: :variable:`CTEST_LABELS_FOR_SUBPROJECTS`
- * :module:`CTest` module variable: ``CTEST_LABELS_FOR_SUBPROJECTS``
-
- See `Label and Subproject Summary`_.
-
-.. _`CTest Build Step`:
-
-CTest Build Step
-----------------
-
-In a `CTest Script`_, the :command:`ctest_build` command runs this step.
-Arguments to the command may specify some of the step settings.
-
-Configuration settings include:
-
-``DefaultCTestConfigurationType``
- When the build system to be launched allows build-time selection
- of the configuration (e.g. ``Debug``, ``Release``), this specifies
- the default configuration to be built when no ``-C`` option is
- given to the ``ctest`` command. The value will be substituted into
- the value of ``MakeCommand`` to replace the literal string
- ``${CTEST_CONFIGURATION_TYPE}`` if it appears.
-
- * `CTest Script`_ variable: :variable:`CTEST_CONFIGURATION_TYPE`
- * :module:`CTest` module variable: ``DEFAULT_CTEST_CONFIGURATION_TYPE``,
- initialized by the :envvar:`CMAKE_CONFIG_TYPE` environment variable
-
-``LabelsForSubprojects``
- Specify a semicolon-separated list of labels that will be treated as
- subprojects. This mapping will be passed on to CDash when configure, test or
- build results are submitted.
-
- * `CTest Script`_ variable: :variable:`CTEST_LABELS_FOR_SUBPROJECTS`
- * :module:`CTest` module variable: ``CTEST_LABELS_FOR_SUBPROJECTS``
-
- See `Label and Subproject Summary`_.
-
-``MakeCommand``
- Command-line to launch the software build process.
- It will be executed in the location specified by the
- ``BuildDirectory`` setting.
-
- * `CTest Script`_ variable: :variable:`CTEST_BUILD_COMMAND`
- * :module:`CTest` module variable: ``MAKECOMMAND``,
- initialized by the :command:`build_command` command
-
-``UseLaunchers``
- For build trees generated by CMake using one of the
- :ref:`Makefile Generators` or the :generator:`Ninja`
- generator, specify whether the
- ``CTEST_USE_LAUNCHERS`` feature is enabled by the
- :module:`CTestUseLaunchers` module (also included by the
- :module:`CTest` module). When enabled, the generated build
- system wraps each invocation of the compiler, linker, or
- custom command line with a "launcher" that communicates
- with CTest via environment variables and files to report
- granular build warning and error information. Otherwise,
- CTest must "scrape" the build output log for diagnostics.
-
- * `CTest Script`_ variable: :variable:`CTEST_USE_LAUNCHERS`
- * :module:`CTest` module variable: ``CTEST_USE_LAUNCHERS``
-
-.. _`CTest Test Step`:
-
-CTest Test Step
----------------
-
-In a `CTest Script`_, the :command:`ctest_test` command runs this step.
-Arguments to the command may specify some of the step settings.
-
-Configuration settings include:
-
-``ResourceSpecFile``
- Specify a
- :ref:`resource specification file <ctest-resource-specification-file>`. See
- :ref:`ctest-resource-allocation` for more information.
-
-``LabelsForSubprojects``
- Specify a semicolon-separated list of labels that will be treated as
- subprojects. This mapping will be passed on to CDash when configure, test or
- build results are submitted.
-
- * `CTest Script`_ variable: :variable:`CTEST_LABELS_FOR_SUBPROJECTS`
- * :module:`CTest` module variable: ``CTEST_LABELS_FOR_SUBPROJECTS``
-
- See `Label and Subproject Summary`_.
-
-``TestLoad``
- While running tests in parallel (e.g. with ``-j``), try not to start
- tests when they may cause the CPU load to pass above a given threshold.
-
- * `CTest Script`_ variable: :variable:`CTEST_TEST_LOAD`
- * :module:`CTest` module variable: ``CTEST_TEST_LOAD``
-
-``TimeOut``
- The default timeout for each test if not specified by the
- :prop_test:`TIMEOUT` test property.
-
- * `CTest Script`_ variable: :variable:`CTEST_TEST_TIMEOUT`
- * :module:`CTest` module variable: ``DART_TESTING_TIMEOUT``
-
-.. _`CTest Coverage Step`:
-
-CTest Coverage Step
--------------------
-
-In a `CTest Script`_, the :command:`ctest_coverage` command runs this step.
-Arguments to the command may specify some of the step settings.
-
-Configuration settings include:
-
-``CoverageCommand``
- Command-line tool to perform software coverage analysis.
- It will be executed in the location specified by the
- ``BuildDirectory`` setting.
-
- * `CTest Script`_ variable: :variable:`CTEST_COVERAGE_COMMAND`
- * :module:`CTest` module variable: ``COVERAGE_COMMAND``
-
-``CoverageExtraFlags``
- Specify command-line options to the ``CoverageCommand`` tool.
-
- * `CTest Script`_ variable: :variable:`CTEST_COVERAGE_EXTRA_FLAGS`
- * :module:`CTest` module variable: ``COVERAGE_EXTRA_FLAGS``
-
- These options are the first arguments passed to ``CoverageCommand``.
-
-.. _`CTest MemCheck Step`:
-
-CTest MemCheck Step
--------------------
-
-In a `CTest Script`_, the :command:`ctest_memcheck` command runs this step.
-Arguments to the command may specify some of the step settings.
-
-Configuration settings include:
-
-``MemoryCheckCommand``
- Command-line tool to perform dynamic analysis. Test command lines
- will be launched through this tool.
-
- * `CTest Script`_ variable: :variable:`CTEST_MEMORYCHECK_COMMAND`
- * :module:`CTest` module variable: ``MEMORYCHECK_COMMAND``
-
-``MemoryCheckCommandOptions``
- Specify command-line options to the ``MemoryCheckCommand`` tool.
- They will be placed prior to the test command line.
-
- * `CTest Script`_ variable: :variable:`CTEST_MEMORYCHECK_COMMAND_OPTIONS`
- * :module:`CTest` module variable: ``MEMORYCHECK_COMMAND_OPTIONS``
-
-``MemoryCheckType``
- Specify the type of memory checking to perform.
-
- * `CTest Script`_ variable: :variable:`CTEST_MEMORYCHECK_TYPE`
- * :module:`CTest` module variable: ``MEMORYCHECK_TYPE``
-
-``MemoryCheckSanitizerOptions``
- Specify options to sanitizers when running with a sanitize-enabled build.
-
- * `CTest Script`_ variable: :variable:`CTEST_MEMORYCHECK_SANITIZER_OPTIONS`
- * :module:`CTest` module variable: ``MEMORYCHECK_SANITIZER_OPTIONS``
-
-``MemoryCheckSuppressionFile``
- Specify a file containing suppression rules for the
- ``MemoryCheckCommand`` tool. It will be passed with options
- appropriate to the tool.
-
- * `CTest Script`_ variable: :variable:`CTEST_MEMORYCHECK_SUPPRESSIONS_FILE`
- * :module:`CTest` module variable: ``MEMORYCHECK_SUPPRESSIONS_FILE``
-
-Additional configuration settings include:
-
-``BoundsCheckerCommand``
- Specify a ``MemoryCheckCommand`` that is known to be command-line
- compatible with Bounds Checker.
-
- * `CTest Script`_ variable: none
- * :module:`CTest` module variable: none
-
-``PurifyCommand``
- Specify a ``MemoryCheckCommand`` that is known to be command-line
- compatible with Purify.
-
- * `CTest Script`_ variable: none
- * :module:`CTest` module variable: ``PURIFYCOMMAND``
-
-``ValgrindCommand``
- Specify a ``MemoryCheckCommand`` that is known to be command-line
- compatible with Valgrind.
-
- * `CTest Script`_ variable: none
- * :module:`CTest` module variable: ``VALGRIND_COMMAND``
-
-``ValgrindCommandOptions``
- Specify command-line options to the ``ValgrindCommand`` tool.
- They will be placed prior to the test command line.
-
- * `CTest Script`_ variable: none
- * :module:`CTest` module variable: ``VALGRIND_COMMAND_OPTIONS``
-
-.. _`CTest Submit Step`:
-
-CTest Submit Step
------------------
-
-In a `CTest Script`_, the :command:`ctest_submit` command runs this step.
-Arguments to the command may specify some of the step settings.
-
-Configuration settings include:
-
-``BuildName``
- Describe the dashboard client platform with a short string.
- (Operating system, compiler, etc.)
-
- * `CTest Script`_ variable: :variable:`CTEST_BUILD_NAME`
- * :module:`CTest` module variable: ``BUILDNAME``
-
-``CDashVersion``
- Legacy option. Not used.
-
- * `CTest Script`_ variable: none, detected from server
- * :module:`CTest` module variable: ``CTEST_CDASH_VERSION``
-
-``CTestSubmitRetryCount``
- Specify a number of attempts to retry submission on network failure.
-
- * `CTest Script`_ variable: none,
- use the :command:`ctest_submit` ``RETRY_COUNT`` option.
- * :module:`CTest` module variable: ``CTEST_SUBMIT_RETRY_COUNT``
-
-``CTestSubmitRetryDelay``
- Specify a delay before retrying submission on network failure.
-
- * `CTest Script`_ variable: none,
- use the :command:`ctest_submit` ``RETRY_DELAY`` option.
- * :module:`CTest` module variable: ``CTEST_SUBMIT_RETRY_DELAY``
-
-``CurlOptions``
- Specify a semicolon-separated list of options to control the
- Curl library that CTest uses internally to connect to the
- server. Possible options are ``CURLOPT_SSL_VERIFYPEER_OFF``
- and ``CURLOPT_SSL_VERIFYHOST_OFF``.
-
- * `CTest Script`_ variable: :variable:`CTEST_CURL_OPTIONS`
- * :module:`CTest` module variable: ``CTEST_CURL_OPTIONS``
-
-``DropLocation``
- Legacy option. When ``SubmitURL`` is not set, it is constructed from
- ``DropMethod``, ``DropSiteUser``, ``DropSitePassword``, ``DropSite``, and
- ``DropLocation``.
-
- * `CTest Script`_ variable: :variable:`CTEST_DROP_LOCATION`
- * :module:`CTest` module variable: ``DROP_LOCATION`` if set,
- else ``CTEST_DROP_LOCATION``
-
-``DropMethod``
- Legacy option. When ``SubmitURL`` is not set, it is constructed from
- ``DropMethod``, ``DropSiteUser``, ``DropSitePassword``, ``DropSite``, and
- ``DropLocation``.
-
- * `CTest Script`_ variable: :variable:`CTEST_DROP_METHOD`
- * :module:`CTest` module variable: ``DROP_METHOD`` if set,
- else ``CTEST_DROP_METHOD``
-
-``DropSite``
- Legacy option. When ``SubmitURL`` is not set, it is constructed from
- ``DropMethod``, ``DropSiteUser``, ``DropSitePassword``, ``DropSite``, and
- ``DropLocation``.
-
- * `CTest Script`_ variable: :variable:`CTEST_DROP_SITE`
- * :module:`CTest` module variable: ``DROP_SITE`` if set,
- else ``CTEST_DROP_SITE``
-
-``DropSitePassword``
- Legacy option. When ``SubmitURL`` is not set, it is constructed from
- ``DropMethod``, ``DropSiteUser``, ``DropSitePassword``, ``DropSite``, and
- ``DropLocation``.
-
- * `CTest Script`_ variable: :variable:`CTEST_DROP_SITE_PASSWORD`
- * :module:`CTest` module variable: ``DROP_SITE_PASSWORD`` if set,
- else ``CTEST_DROP_SITE_PASWORD``
-
-``DropSiteUser``
- Legacy option. When ``SubmitURL`` is not set, it is constructed from
- ``DropMethod``, ``DropSiteUser``, ``DropSitePassword``, ``DropSite``, and
- ``DropLocation``.
-
- * `CTest Script`_ variable: :variable:`CTEST_DROP_SITE_USER`
- * :module:`CTest` module variable: ``DROP_SITE_USER`` if set,
- else ``CTEST_DROP_SITE_USER``
-
-``IsCDash``
- Legacy option. Not used.
-
- * `CTest Script`_ variable: :variable:`CTEST_DROP_SITE_CDASH`
- * :module:`CTest` module variable: ``CTEST_DROP_SITE_CDASH``
-
-``ScpCommand``
- Legacy option. Not used.
-
- * `CTest Script`_ variable: :variable:`CTEST_SCP_COMMAND`
- * :module:`CTest` module variable: ``SCPCOMMAND``
-
-``Site``
- Describe the dashboard client host site with a short string.
- (Hostname, domain, etc.)
-
- * `CTest Script`_ variable: :variable:`CTEST_SITE`
- * :module:`CTest` module variable: ``SITE``,
- initialized by the :command:`site_name` command
-
-``SubmitURL``
- The ``http`` or ``https`` URL of the dashboard server to send the submission
- to.
-
- * `CTest Script`_ variable: :variable:`CTEST_SUBMIT_URL`
- * :module:`CTest` module variable: ``SUBMIT_URL`` if set,
- else ``CTEST_SUBMIT_URL``
-
-``TriggerSite``
- Legacy option. Not used.
-
- * `CTest Script`_ variable: :variable:`CTEST_TRIGGER_SITE`
- * :module:`CTest` module variable: ``TRIGGER_SITE`` if set,
- else ``CTEST_TRIGGER_SITE``
-
-.. _`Show as JSON Object Model`:
-
-Show as JSON Object Model
-=========================
-
-When the ``--show-only=json-v1`` command line option is given, the test
-information is output in JSON format. Version 1.0 of the JSON object
-model is defined as follows:
-
-``kind``
- The string "ctestInfo".
-
-``version``
- A JSON object specifying the version components. Its members are
-
- ``major``
- A non-negative integer specifying the major version component.
- ``minor``
- A non-negative integer specifying the minor version component.
-
-``backtraceGraph``
- JSON object representing backtrace information with the
- following members:
-
- ``commands``
- List of command names.
- ``files``
- List of file names.
- ``nodes``
- List of node JSON objects with members:
-
- ``command``
- Index into the ``commands`` member of the ``backtraceGraph``.
- ``file``
- Index into the ``files`` member of the ``backtraceGraph``.
- ``line``
- Line number in the file where the backtrace was added.
- ``parent``
- Index into the ``nodes`` member of the ``backtraceGraph``
- representing the parent in the graph.
-
-``tests``
- A JSON array listing information about each test. Each entry
- is a JSON object with members:
-
- ``name``
- Test name.
- ``config``
- Configuration that the test can run on.
- Empty string means any config.
- ``command``
- List where the first element is the test command and the
- remaining elements are the command arguments.
- ``backtrace``
- Index into the ``nodes`` member of the ``backtraceGraph``.
- ``properties``
- Test properties.
- Can contain keys for each of the supported test properties.
-
-.. _`ctest-resource-allocation`:
-
-Resource Allocation
-===================
-
-CTest provides a mechanism for tests to specify the resources that they need
-in a fine-grained way, and for users to specify the resources availiable on
-the running machine. This allows CTest to internally keep track of which
-resources are in use and which are free, scheduling tests in a way that
-prevents them from trying to claim resources that are not available.
-
-A common use case for this feature is for tests that require the use of a GPU.
-Multiple tests can simultaneously allocate memory from a GPU, but if too many
-tests try to do this at once, some of them will fail to allocate, resulting in
-a failed test, even though the test would have succeeded if it had the memory
-it needed. By using the resource allocation feature, each test can specify how
-much memory it requires from a GPU, allowing CTest to schedule tests in a way
-that running several of these tests at once does not exhaust the GPU's memory
-pool.
-
-Please note that CTest has no concept of what a GPU is or how much memory it
-has, nor does it have any way of communicating with a GPU to retrieve this
-information or perform any memory management. CTest simply keeps track of a
-list of abstract resource types, each of which has a certain number of slots
-available for tests to use. Each test specifies the number of slots that it
-requires from a certain resource, and CTest then schedules them in a way that
-prevents the total number of slots in use from exceeding the listed capacity.
-When a test is executed, and slots from a resource are allocated to that test,
-tests may assume that they have exclusive use of those slots for the duration
-of the test's process.
-
-The CTest resource allocation feature consists of two inputs:
-
-* The :ref:`resource specification file <ctest-resource-specification-file>`,
- described below, which describes the resources available on the system.
-* The :prop_test:`RESOURCE_GROUPS` property of tests, which describes the
- resources required by the test.
-
-When CTest runs a test, the resources allocated to that test are passed in the
-form of a set of
-:ref:`environment variables <ctest-resource-environment-variables>` as
-described below. Using this information to decide which resource to connect to
-is left to the test writer.
-
-The ``RESOURCE_GROUPS`` property tells CTest what resources a test expects
-to use grouped in a way meaningful to the test. The test itself must read
-the :ref:`environment variables <ctest-resource-environment-variables>` to
-determine which resources have been allocated to each group. For example,
-each group may correspond to a process the test will spawn when executed.
-
-Note that even if a test specifies a ``RESOURCE_GROUPS`` property, it is still
-possible for that to test to run without any resource allocation (and without
-the corresponding
-:ref:`environment variables <ctest-resource-environment-variables>`)
-if the user does not pass a resource specification file. Passing this file,
-either through the ``--resource-spec-file`` command-line argument or the
-``RESOURCE_SPEC_FILE`` argument to :command:`ctest_test`, is what activates the
-resource allocation feature. Tests should check the
-``CTEST_RESOURCE_GROUP_COUNT`` environment variable to find out whether or not
-resource allocation is activated. This variable will always (and only) be
-defined if resource allocation is activated. If resource allocation is not
-activated, then the ``CTEST_RESOURCE_GROUP_COUNT`` variable will not exist,
-even if it exists for the parent ``ctest`` process. If a test absolutely must
-have resource allocation, then it can return a failing exit code or use the
-:prop_test:`SKIP_RETURN_CODE` or :prop_test:`SKIP_REGULAR_EXPRESSION`
-properties to indicate a skipped test.
-
-.. _`ctest-resource-specification-file`:
-
-Resource Specification File
----------------------------
-
-The resource specification file is a JSON file which is passed to CTest, either
-on the :manual:`ctest(1)` command line as ``--resource-spec-file``, or as the
-``RESOURCE_SPEC_FILE`` argument of :command:`ctest_test`. The resource
-specification file must be a JSON object. All examples in this document assume
-the following resource specification file:
-
-.. code-block:: json
-
- {
- "version": {
- "major": 1,
- "minor": 0
- },
- "local": [
- {
- "gpus": [
- {
- "id": "0",
- "slots": 2
- },
- {
- "id": "1",
- "slots": 4
- },
- {
- "id": "2",
- "slots": 2
- },
- {
- "id": "3"
- }
- ],
- "crypto_chips": [
- {
- "id": "card0",
- "slots": 4
- }
- ]
- }
- ]
- }
-
-The members are:
-
-``version``
- An object containing a ``major`` integer field and a ``minor`` integer field.
- Currently, the only supported version is major ``1``, minor ``0``. Any other
- value is an error.
-
-``local``
- A JSON array of resource sets present on the system. Currently, this array
- is restricted to being of size 1.
-
- Each array element is a JSON object with members whose names are equal to the
- desired resource types, such as ``gpus``. These names must start with a
- lowercase letter or an underscore, and subsequent characters can be a
- lowercase letter, a digit, or an underscore. Uppercase letters are not
- allowed, because certain platforms have case-insensitive environment
- variables. See the `Environment Variables`_ section below for
- more information. It is recommended that the resource type name be the plural
- of a noun, such as ``gpus`` or ``crypto_chips`` (and not ``gpu`` or
- ``crypto_chip``.)
-
- Please note that the names ``gpus`` and ``crypto_chips`` are just examples,
- and CTest does not interpret them in any way. You are free to make up any
- resource type you want to meet your own requirements.
-
- The value for each resource type is a JSON array consisting of JSON objects,
- each of which describe a specific instance of the specified resource. These
- objects have the following members:
-
- ``id``
- A string consisting of an identifier for the resource. Each character in
- the identifier can be a lowercase letter, a digit, or an underscore.
- Uppercase letters are not allowed.
-
- Identifiers must be unique within a resource type. However, they do not
- have to be unique across resource types. For example, it is valid to have a
- ``gpus`` resource named ``0`` and a ``crypto_chips`` resource named ``0``,
- but not two ``gpus`` resources both named ``0``.
-
- Please note that the IDs ``0``, ``1``, ``2``, ``3``, and ``card0`` are just
- examples, and CTest does not interpret them in any way. You are free to
- make up any IDs you want to meet your own requirements.
-
- ``slots``
- An optional unsigned number specifying the number of slots available on the
- resource. For example, this could be megabytes of RAM on a GPU, or
- cryptography units available on a cryptography chip. If ``slots`` is not
- specified, a default value of ``1`` is assumed.
-
-In the example file above, there are four GPUs with ID's 0 through 3. GPU 0 has
-2 slots, GPU 1 has 4, GPU 2 has 2, and GPU 3 has a default of 1 slot. There is
-also one cryptography chip with 4 slots.
-
-``RESOURCE_GROUPS`` Property
-----------------------------
-
-See :prop_test:`RESOURCE_GROUPS` for a description of this property.
-
-.. _`ctest-resource-environment-variables`:
-
-Environment Variables
----------------------
-
-Once CTest has decided which resources to allocate to a test, it passes this
-information to the test executable as a series of environment variables. For
-each example below, we will assume that the test in question has a
-:prop_test:`RESOURCE_GROUPS` property of
-``2,gpus:2;gpus:4,gpus:1,crypto_chips:2``.
-
-The following variables are passed to the test process:
-
-.. envvar:: CTEST_RESOURCE_GROUP_COUNT
-
- The total number of groups specified by the :prop_test:`RESOURCE_GROUPS`
- property. For example:
-
- * ``CTEST_RESOURCE_GROUP_COUNT=3``
-
- This variable will only be defined if :manual:`ctest(1)` has been given a
- ``--resource-spec-file``, or if :command:`ctest_test` has been given a
- ``RESOURCE_SPEC_FILE``. If no resource specification file has been given,
- this variable will not be defined.
-
-.. envvar:: CTEST_RESOURCE_GROUP_<num>
-
- The list of resource types allocated to each group, with each item
- separated by a comma. ``<num>`` is a number from zero to
- ``CTEST_RESOURCE_GROUP_COUNT`` minus one. ``CTEST_RESOURCE_GROUP_<num>``
- is defined for each ``<num>`` in this range. For example:
-
- * ``CTEST_RESOURCE_GROUP_0=gpus``
- * ``CTEST_RESOURCE_GROUP_1=gpus``
- * ``CTEST_RESOURCE_GROUP_2=crypto_chips,gpus``
-
-.. envvar:: CTEST_RESOURCE_GROUP_<num>_<resource-type>
-
- The list of resource IDs and number of slots from each ID allocated to each
- group for a given resource type. This variable consists of a series of
- pairs, each pair separated by a semicolon, and with the two items in the pair
- separated by a comma. The first item in each pair is ``id:`` followed by the
- ID of a resource of type ``<resource-type>``, and the second item is
- ``slots:`` followed by the number of slots from that resource allocated to
- the given group. For example:
-
- * ``CTEST_RESOURCE_GROUP_0_GPUS=id:0,slots:2``
- * ``CTEST_RESOURCE_GROUP_1_GPUS=id:2,slots:2``
- * ``CTEST_RESOURCE_GROUP_2_GPUS=id:1,slots:4;id:3,slots:1``
- * ``CTEST_RESOURCE_GROUP_2_CRYPTO_CHIPS=id:card0,slots:2``
-
- In this example, group 0 gets 2 slots from GPU ``0``, group 1 gets 2 slots
- from GPU ``2``, and group 2 gets 4 slots from GPU ``1``, 1 slot from GPU
- ``3``, and 2 slots from cryptography chip ``card0``.
-
- ``<num>`` is a number from zero to ``CTEST_RESOURCE_GROUP_COUNT`` minus one.
- ``<resource-type>`` is the name of a resource type, converted to uppercase.
- ``CTEST_RESOURCE_GROUP_<num>_<resource-type>`` is defined for the product
- of each ``<num>`` in the range listed above and each resource type listed in
- ``CTEST_RESOURCE_GROUP_<num>``.
-
- Because some platforms have case-insensitive names for environment variables,
- the names of resource types may not clash in a case-insensitive environment.
- Because of this, for the sake of simplicity, all resource types must be
- listed in all lowercase in the
- :ref:`resource specification file <ctest-resource-specification-file>` and
- in the :prop_test:`RESOURCE_GROUPS` property, and they are converted to all
- uppercase in the ``CTEST_RESOURCE_GROUP_<num>_<resource-type>`` environment
- variable.
-
-See Also
-========
-
-.. include:: LINKS.txt
-
-.. _`CDash`: http://cdash.org/
diff --git a/share/cmake-3.16/Help/prop_sf/GENERATED.rst b/share/cmake-3.16/Help/prop_sf/GENERATED.rst
deleted file mode 100644
index d430ee2..0000000
--- a/share/cmake-3.16/Help/prop_sf/GENERATED.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-GENERATED
----------
-
-Is this source file generated as part of the build or CMake process.
-
-Tells the internal CMake engine that a source file is generated by an outside
-process such as another build step, or the execution of CMake itself. This
-information is then used to exempt the file from any existence or validity
-checks. Generated files are created by the execution of commands such as
-:command:`add_custom_command` and :command:`file(GENERATE)`.
-
-When a generated file created by an :command:`add_custom_command` command
-is explicitly listed as a source file for any target in the same
-directory scope (which usually means the same ``CMakeLists.txt`` file),
-CMake will automatically create a dependency to make sure the file is
-generated before building that target.
-
-Generated sources may be hidden in some IDE tools, while in others they might
-be shown. For the special case of sources generated by CMake's :prop_tgt:`AUTOMOC`
-or :prop_tgt:`AUTORCC` functionality, the :prop_gbl:`AUTOGEN_SOURCE_GROUP`,
-:prop_gbl:`AUTOMOC_SOURCE_GROUP` and :prop_gbl:`AUTORCC_SOURCE_GROUP` target
-properties may influence where the generated sources are grouped in the project's
-file lists.
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOGEN_PARALLEL.rst b/share/cmake-3.16/Help/prop_tgt/AUTOGEN_PARALLEL.rst
deleted file mode 100644
index 07fbc5a..0000000
--- a/share/cmake-3.16/Help/prop_tgt/AUTOGEN_PARALLEL.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-AUTOGEN_PARALLEL
-----------------
-
-Number of parallel ``moc`` or ``uic`` processes to start when using
-:prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`.
-
-The custom `<origin>_autogen` target starts a number of threads of which
-each one parses a source file and on demand starts a ``moc`` or ``uic``
-process. :prop_tgt:`AUTOGEN_PARALLEL` controls how many parallel threads
-(and therefore ``moc`` or ``uic`` processes) are started.
-
-- An empty (or unset) value or the string ``AUTO`` sets the number of
- threads/processes to the number of physical CPUs on the host system.
-- A positive non zero integer value sets the exact thread/process count.
-- Otherwise a single thread/process is started.
-
-By default :prop_tgt:`AUTOGEN_PARALLEL` is initialized from
-:variable:`CMAKE_AUTOGEN_PARALLEL`.
-
-See the :manual:`cmake-qt(7)` manual for more information on using CMake
-with Qt.
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst b/share/cmake-3.16/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
deleted file mode 100644
index d5c5e14..0000000
--- a/share/cmake-3.16/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-AUTOGEN_TARGET_DEPENDS
-----------------------
-
-Additional target dependencies of the corresponding ``_autogen`` target.
-
-Targets which have their :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` property
-``ON`` have a corresponding ``_autogen`` target which generates
-``moc`` and ``uic`` files. As this ``_autogen`` target is created at
-generate-time, it is not possible to define dependencies of it using
-e.g. :command:`add_dependencies`. Instead the
-:prop_tgt:`AUTOGEN_TARGET_DEPENDS` target property can be set to a
-:ref:`;-list <CMake Language Lists>` of additional dependencies for the
-``_autogen`` target. Dependencies can be target names or file names.
-
-In total the dependencies of the ``_autogen`` target are composed from
-
-- forwarded origin target dependencies
- (enabled by default via :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS`)
-- additional user defined dependencies from :prop_tgt:`AUTOGEN_TARGET_DEPENDS`
-
-See the :manual:`cmake-qt(7)` manual for more information on using CMake
-with Qt.
-
-Use cases
-^^^^^^^^^
-
-If :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` depends on a file that is either
-
-- a :prop_sf:`GENERATED` non C++ file (e.g. a :prop_sf:`GENERATED` ``.json``
- or ``.ui`` file) or
-- a :prop_sf:`GENERATED` C++ file that isn't recognized by :prop_tgt:`AUTOMOC`
- and :prop_tgt:`AUTOUIC` because it's skipped by :prop_sf:`SKIP_AUTOMOC`,
- :prop_sf:`SKIP_AUTOUIC`, :prop_sf:`SKIP_AUTOGEN` or :policy:`CMP0071` or
-- a file that isn't in the origin target's sources
-
-it must added to :prop_tgt:`AUTOGEN_TARGET_DEPENDS`.
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOMOC.rst b/share/cmake-3.16/Help/prop_tgt/AUTOMOC.rst
deleted file mode 100644
index f6dfabd..0000000
--- a/share/cmake-3.16/Help/prop_tgt/AUTOMOC.rst
+++ /dev/null
@@ -1,247 +0,0 @@
-AUTOMOC
--------
-
-Should the target be processed with auto-moc (for Qt projects).
-
-:prop_tgt:`AUTOMOC` is a boolean specifying whether CMake will handle the Qt
-``moc`` preprocessor automatically, i.e. without having to use the
-:module:`QT4_WRAP_CPP() <FindQt4>` or ``QT5_WRAP_CPP()`` macro.
-Currently Qt4 and Qt5 are supported.
-
-This property is initialized by the value of the :variable:`CMAKE_AUTOMOC`
-variable if it is set when a target is created.
-
-When this property is set ``ON``, CMake will scan the header and
-source files at build time and invoke ``moc`` accordingly.
-
-
-Header file processing
-^^^^^^^^^^^^^^^^^^^^^^
-
-At configuration time, a list of header files that should be scanned by
-:prop_tgt:`AUTOMOC` is computed from the target's sources.
-
-- All header files in the target's sources are added to the scan list.
-- For all C++ source files ``<source_base>.<source_extension>`` in the
- target's sources, CMake searches for
-
- - a regular header with the same base name
- (``<source_base>.<header_extention>``) and
- - a private header with the same base name and a ``_p`` suffix
- (``<source_base>_p.<header_extention>``)
-
- and adds these to the scan list.
-
-At build time, CMake scans each unknown or modified header file from the
-list and searches for
-
-- a Qt macro from :prop_tgt:`AUTOMOC_MACRO_NAMES`,
-- additional file dependencies from the ``FILE`` argument of a
- ``Q_PLUGIN_METADATA`` macro and
-- additional file dependencies detected by filters defined in
- :prop_tgt:`AUTOMOC_DEPEND_FILTERS`.
-
-If a Qt macro is found, then the header will be compiled by the ``moc`` to the
-output file ``moc_<base_name>.cpp``. The complete output file path is
-described in the section `Output file location`_.
-
-The header will be ``moc`` compiled again if a file from the additional file
-dependencies changes.
-
-Header ``moc`` output files ``moc_<base_name>.cpp`` can be included in source
-files. In the section `Including header moc files in sources`_ there is more
-information on that topic.
-
-
-Source file processing
-^^^^^^^^^^^^^^^^^^^^^^
-
-At build time, CMake scans each unknown or modified C++ source file from the
-target's sources for
-
-- a Qt macro from :prop_tgt:`AUTOMOC_MACRO_NAMES`,
-- includes of header ``moc`` files
- (see `Including header moc files in sources`_),
-- additional file dependencies from the ``FILE`` argument of a
- ``Q_PLUGIN_METADATA`` macro and
-- additional file dependencies detected by filters defined in
- :prop_tgt:`AUTOMOC_DEPEND_FILTERS`.
-
-If a Qt macro is found, then the C++ source file
-``<base>.<source_extension>`` is expected to as well contain an include
-statement
-
-.. code-block:: c++
-
- #include <<base>.moc> // or
- #include "<base>.moc"
-
-The source file then will be compiled by the ``moc`` to the output file
-``<base>.moc``. A description of the complete output file path is in section
-`Output file location`_.
-
-The source will be ``moc`` compiled again if a file from the additional file
-dependencies changes.
-
-Including header moc files in sources
-"""""""""""""""""""""""""""""""""""""
-
-A source file can include the ``moc`` output file of a header
-``<header_base>.<header_extension>`` by using an include statement of
-the form
-
-.. code-block:: c++
-
- #include <moc_<header_base>.cpp> // or
- #include "moc_<header_base>.cpp"
-
-If the ``moc`` output file of a header is included by a source, it will
-be generated in a different location than if it was not included. This is
-described in the section `Output file location`_.
-
-
-Output file location
-^^^^^^^^^^^^^^^^^^^^
-
-Included moc output files
-"""""""""""""""""""""""""
-
-``moc`` output files that are included by a source file will be generated in
-
-- ``<AUTOGEN_BUILD_DIR>/include``
- for single configuration generators or in
-- ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>``
- for :prop_gbl:`multi configuration <GENERATOR_IS_MULTI_CONFIG>` generators.
-
-Where ``<AUTOGEN_BUILD_DIR>`` is the value of the target property
-:prop_tgt:`AUTOGEN_BUILD_DIR`.
-
-The include directory is automatically added to the target's
-:prop_tgt:`INCLUDE_DIRECTORIES`.
-
-Not included moc output files
-"""""""""""""""""""""""""""""
-
-``moc`` output files that are not included in a source file will be generated
-in
-
-- ``<AUTOGEN_BUILD_DIR>/<SOURCE_DIR_CHECKSUM>``
- for single configuration generators or in,
-- ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>/<SOURCE_DIR_CHECKSUM>``
- for :prop_gbl:`multi configuration <GENERATOR_IS_MULTI_CONFIG>` generators.
-
-Where ``<SOURCE_DIR_CHECKSUM>`` is a checksum computed from the relative
-parent directory path of the ``moc`` input file. This scheme allows to have
-``moc`` input files with the same name in different directories.
-
-All not included ``moc`` output files will be included automatically by the
-CMake generated file
-
-- ``<AUTOGEN_BUILD_DIR>/mocs_compilation.cpp``,
-
-which is added to the target's sources.
-
-
-Qt version detection
-^^^^^^^^^^^^^^^^^^^^
-
-:prop_tgt:`AUTOMOC` enabled targets need to know the Qt major and minor
-version they're working with. The major version usually is provided by the
-``INTERFACE_QT_MAJOR_VERSION`` property of the ``Qt[45]Core`` library,
-that the target links to. To find the minor version, CMake builds a list of
-available Qt versions from
-
-- ``Qt5Core_VERSION_MAJOR`` and ``Qt5Core_VERSION_MINOR`` variables
- (usually set by ``find_package(Qt5...)``)
-- ``Qt5Core_VERSION_MAJOR`` and ``Qt5Core_VERSION_MINOR`` directory properties
-- ``QT_VERSION_MAJOR`` and ``QT_VERSION_MINOR`` variables
- (usually set by ``find_package(Qt4...)``)
-- ``QT_VERSION_MAJOR`` and ``QT_VERSION_MINOR`` directory properties
-
-in the context of the :command:`add_executable` or :command:`add_library` call.
-
-Assumed ``INTERFACE_QT_MAJOR_VERSION`` is a valid number, the first
-entry in the list with a matching major version is taken. If no matching major
-version was found, an error is generated.
-If ``INTERFACE_QT_MAJOR_VERSION`` is not a valid number, the first
-entry in the list is taken.
-
-A ``find_package(Qt[45]...)`` call sets the ``QT/Qt5Core_VERSION_MAJOR/MINOR``
-variables. If the call is in a different context than the
-:command:`add_executable` or :command:`add_library` call, e.g. in a function,
-then the version variables might not be available to the :prop_tgt:`AUTOMOC`
-enabled target.
-In that case the version variables can be forwarded from the
-`find_package(Qt[45]...)` calling context to the :command:`add_executable`
-or :command:`add_library` calling context as directory properties.
-The following Qt5 example demonstrates the procedure.
-
-.. code-block:: cmake
-
- function (add_qt5_client)
- find_package(Qt5 REQUIRED QUIET COMPONENTS Core Widgets)
- ...
- set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
- PROPERTY Qt5Core_VERSION_MAJOR "${Qt5Core_VERSION_MAJOR}")
- set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
- PROPERTY Qt5Core_VERSION_MINOR "${Qt5Core_VERSION_MAJOR}")
- ...
- endfunction ()
- ...
- add_qt5_client()
- add_executable(myTarget main.cpp)
- target_link_libraries(myTarget Qt5::QtWidgets)
- set_property(TARGET myTarget PROPERTY AUTOMOC ON)
-
-
-Modifiers
-^^^^^^^^^
-
-:prop_tgt:`AUTOMOC_EXECUTABLE`:
-The ``moc`` executable will be detected automatically, but can be forced to
-a certain binary using this target property.
-
-:prop_tgt:`AUTOMOC_MOC_OPTIONS`:
-Additional command line options for ``moc`` can be set in this target property.
-
-:prop_tgt:`AUTOMOC_MACRO_NAMES`:
-This list of Qt macro names can be extended to search for additional macros in
-headers and sources.
-
-:prop_tgt:`AUTOMOC_DEPEND_FILTERS`:
-``moc`` dependency file names can be extracted from headers or sources by
-defining file name filters in this target property.
-
-:prop_tgt:`AUTOMOC_COMPILER_PREDEFINES`:
-Compiler pre definitions for ``moc`` are written to the ``moc_predefs.h`` file.
-The generation of this file can be enabled or disabled in this target property.
-
-:prop_sf:`SKIP_AUTOMOC`:
-Sources and headers can be excluded from :prop_tgt:`AUTOMOC` processing by
-setting this source file property.
-
-:prop_sf:`SKIP_AUTOGEN`:
-Source files can be excluded from :prop_tgt:`AUTOMOC`,
-:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` processing by
-setting this source file property.
-
-:prop_gbl:`AUTOGEN_SOURCE_GROUP`:
-This global property can be used to group files generated by
-:prop_tgt:`AUTOMOC` or :prop_tgt:`AUTORCC` together in an IDE, e.g. in MSVS.
-
-:prop_gbl:`AUTOGEN_TARGETS_FOLDER`:
-This global property can be used to group :prop_tgt:`AUTOMOC`,
-:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` targets together in an IDE,
-e.g. in MSVS.
-
-:variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`:
-A global ``autogen`` target, that depends on all :prop_tgt:`AUTOMOC` or
-:prop_tgt:`AUTOUIC` generated ``<ORIGIN>_autogen`` targets in the project,
-will be generated when this variable is ``ON``.
-
-:prop_tgt:`AUTOGEN_PARALLEL`:
-This target property controls the number of ``moc`` or ``uic`` processes to
-start in parallel during builds.
-
-See the :manual:`cmake-qt(7)` manual for more information on using CMake
-with Qt.
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst b/share/cmake-3.16/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst
deleted file mode 100644
index 69957bf..0000000
--- a/share/cmake-3.16/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst
+++ /dev/null
@@ -1,104 +0,0 @@
-AUTOMOC_DEPEND_FILTERS
-----------------------
-
-Filter definitions used by :prop_tgt:`AUTOMOC` to extract file names from a
-source file that are registered as additional dependencies for the
-``moc`` file of the source file.
-
-Filters are defined as ``KEYWORD;REGULAR_EXPRESSION`` pairs. First the file
-content is searched for ``KEYWORD``. If it is found at least once, then file
-names are extracted by successively searching for ``REGULAR_EXPRESSION`` and
-taking the first match group.
-
-The file name found in the first match group is searched for
-
-- first in the vicinity of the source file
-- and afterwards in the target's :prop_tgt:`INCLUDE_DIRECTORIES`.
-
-If any of the extracted files changes, then the ``moc`` file for the source
-file gets rebuilt even when the source file itself doesn't change.
-
-If any of the extracted files is :prop_sf:`GENERATED` or if it is not in the
-target's sources, then it might be necessary to add it to the
-``_autogen`` target dependencies.
-See :prop_tgt:`AUTOGEN_TARGET_DEPENDS` for reference.
-
-By default :prop_tgt:`AUTOMOC_DEPEND_FILTERS` is initialized from
-:variable:`CMAKE_AUTOMOC_DEPEND_FILTERS`, which is empty by default.
-
-See the :manual:`cmake-qt(7)` manual for more information on using CMake
-with Qt.
-
-
-Example 1
-^^^^^^^^^
-
-A header file ``my_class.hpp`` uses a custom macro ``JSON_FILE_MACRO`` which
-is defined in an other header ``macros.hpp``.
-We want the ``moc`` file of ``my_class.hpp`` to depend on the file name
-argument of ``JSON_FILE_MACRO``::
-
- // my_class.hpp
- class My_Class : public QObject
- {
- Q_OBJECT
- JSON_FILE_MACRO ( "info.json" )
- ...
- };
-
-In ``CMakeLists.txt`` we add a filter to
-:variable:`CMAKE_AUTOMOC_DEPEND_FILTERS` like this::
-
- list( APPEND CMAKE_AUTOMOC_DEPEND_FILTERS
- "JSON_FILE_MACRO"
- "[\n][ \t]*JSON_FILE_MACRO[ \t]*\\([ \t]*\"([^\"]+)\""
- )
-
-We assume ``info.json`` is a plain (not :prop_sf:`GENERATED`) file that is
-listed in the target's source. Therefore we do not need to add it to
-:prop_tgt:`AUTOGEN_TARGET_DEPENDS`.
-
-Example 2
-^^^^^^^^^
-
-In the target ``my_target`` a header file ``complex_class.hpp`` uses a
-custom macro ``JSON_BASED_CLASS`` which is defined in an other header
-``macros.hpp``::
-
- // macros.hpp
- ...
- #define JSON_BASED_CLASS(name, json) \
- class name : public QObject \
- { \
- Q_OBJECT \
- Q_PLUGIN_METADATA(IID "demo" FILE json) \
- name() {} \
- };
- ...
-
-::
-
- // complex_class.hpp
- #pragma once
- JSON_BASED_CLASS(Complex_Class, "meta.json")
- // end of file
-
-Since ``complex_class.hpp`` doesn't contain a ``Q_OBJECT`` macro it would be
-ignored by :prop_tgt:`AUTOMOC`. We change this by adding ``JSON_BASED_CLASS``
-to :variable:`CMAKE_AUTOMOC_MACRO_NAMES`::
-
- list(APPEND CMAKE_AUTOMOC_MACRO_NAMES "JSON_BASED_CLASS")
-
-We want the ``moc`` file of ``complex_class.hpp`` to depend on
-``meta.json``. So we add a filter to
-:variable:`CMAKE_AUTOMOC_DEPEND_FILTERS`::
-
- list(APPEND CMAKE_AUTOMOC_DEPEND_FILTERS
- "JSON_BASED_CLASS"
- "[\n^][ \t]*JSON_BASED_CLASS[ \t]*\\([^,]*,[ \t]*\"([^\"]+)\""
- )
-
-Additionally we assume ``meta.json`` is :prop_sf:`GENERATED` which is
-why we have to add it to :prop_tgt:`AUTOGEN_TARGET_DEPENDS`::
-
- set_property(TARGET my_target APPEND PROPERTY AUTOGEN_TARGET_DEPENDS "meta.json")
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst b/share/cmake-3.16/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst
deleted file mode 100644
index ebd5c49..0000000
--- a/share/cmake-3.16/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-AUTOMOC_MOC_OPTIONS
--------------------
-
-Additional options for moc when using :prop_tgt:`AUTOMOC`
-
-This property is only used if the :prop_tgt:`AUTOMOC` property is ``ON``
-for this target. In this case, it holds additional command line
-options which will be used when ``moc`` is executed during the build, i.e.
-it is equivalent to the optional ``OPTIONS`` argument of the
-:module:`qt4_wrap_cpp() <FindQt4>` macro.
-
-By default it is empty.
-
-See the :manual:`cmake-qt(7)` manual for more information on using CMake
-with Qt.
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst b/share/cmake-3.16/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst
deleted file mode 100644
index e2ebb3f..0000000
--- a/share/cmake-3.16/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-AUTOMOC_PATH_PREFIX
--------------------
-
-When this property is ``ON``, CMake will generate the ``-p`` path prefix
-option for ``moc`` on :prop_tgt:`AUTOMOC` enabled Qt targets.
-
-To generate the path prefix, CMake tests if the header compiled by ``moc``
-is in any of the target
-:command:`include directories <target_include_directories>`. If so, CMake will
-compute the relative path accordingly. If the header is not in the
-:command:`include directories <target_include_directories>`, CMake will omit
-the ``-p`` path prefix option. ``moc`` usually generates a
-relative include path in that case.
-
-:prop_tgt:`AUTOMOC_PATH_PREFIX` is initialized from the variable
-:variable:`CMAKE_AUTOMOC_PATH_PREFIX`, which is ``ON`` by default.
-
-See the :manual:`cmake-qt(7)` manual for more information on using CMake
-with Qt.
-
-Reproducible builds
-^^^^^^^^^^^^^^^^^^^
-
-For reproducible builds is is recommended to keep headers that are ``moc``
-compiled in one of the target
-:command:`include directories <target_include_directories>` and set
-:prop_tgt:`AUTOMOC_PATH_PREFIX` to ``ON`` (which is the default). This ensures
-that
-
-- ``moc`` output files are identical on different build setups,
-- ``moc`` output files will compile correctly when the source and/or
- build directory is a symbolic link.
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTORCC.rst b/share/cmake-3.16/Help/prop_tgt/AUTORCC.rst
deleted file mode 100644
index cca3e58..0000000
--- a/share/cmake-3.16/Help/prop_tgt/AUTORCC.rst
+++ /dev/null
@@ -1,61 +0,0 @@
-AUTORCC
--------
-
-Should the target be processed with auto-rcc (for Qt projects).
-
-:prop_tgt:`AUTORCC` is a boolean specifying whether CMake will handle
-the Qt ``rcc`` code generator automatically, i.e. without having to use
-the :module:`QT4_ADD_RESOURCES() <FindQt4>` or ``QT5_ADD_RESOURCES()``
-macro. Currently Qt4 and Qt5 are supported.
-
-When this property is ``ON``, CMake will handle ``.qrc`` files added
-as target sources at build time and invoke ``rcc`` accordingly.
-This property is initialized by the value of the :variable:`CMAKE_AUTORCC`
-variable if it is set when a target is created.
-
-By default :prop_tgt:`AUTORCC` is processed by a
-:command:`custom command <add_custom_command>`.
-If the ``.qrc`` file is :prop_sf:`GENERATED`, a
-:command:`custom target <add_custom_target>` is used instead.
-
-When there are multiple ``.qrc`` files with the same name, CMake will
-generate unspecified unique output file names for ``rcc``. Therefore, if
-``Q_INIT_RESOURCE()`` or ``Q_CLEANUP_RESOURCE()`` need to be used, the
-``.qrc`` file name must be unique.
-
-
-Modifiers
-^^^^^^^^^
-
-:prop_tgt:`AUTORCC_EXECUTABLE`:
-The ``rcc`` executable will be detected automatically, but can be forced to
-a certain binary by setting this target property.
-
-:prop_sf:`AUTORCC_OPTIONS`:
-Additional command line options for ``rcc`` can be set via this ``.qrc``
-source file property.
-
-:prop_sf:`SKIP_AUTORCC`:
-``.qrc`` files can be excluded from :prop_tgt:`AUTORCC` processing by
-setting this source file property.
-
-:prop_sf:`SKIP_AUTOGEN`:
-Source files can be excluded from :prop_tgt:`AUTOMOC`,
-:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` processing by
-setting this source file property.
-
-:prop_gbl:`AUTOGEN_SOURCE_GROUP`:
-This global property can be used to group files generated by
-:prop_tgt:`AUTOMOC` or :prop_tgt:`AUTORCC` together in an IDE, e.g. in MSVS.
-
-:prop_gbl:`AUTOGEN_TARGETS_FOLDER`:
-This global property can be used to group :prop_tgt:`AUTOMOC`,
-:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` targets together in an IDE,
-e.g. in MSVS.
-
-:variable:`CMAKE_GLOBAL_AUTORCC_TARGET`:
-A global ``autorcc`` target that depends on all :prop_tgt:`AUTORCC` targets
-in the project will be generated when this variable is ``ON``.
-
-See the :manual:`cmake-qt(7)` manual for more information on using CMake
-with Qt.
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTORCC_OPTIONS.rst b/share/cmake-3.16/Help/prop_tgt/AUTORCC_OPTIONS.rst
deleted file mode 100644
index d6ade5a..0000000
--- a/share/cmake-3.16/Help/prop_tgt/AUTORCC_OPTIONS.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-AUTORCC_OPTIONS
----------------
-
-Additional options for ``rcc`` when using :prop_tgt:`AUTORCC`
-
-This property holds additional command line options which will be used
-when ``rcc`` is executed during the build via :prop_tgt:`AUTORCC`,
-i.e. it is equivalent to the optional ``OPTIONS`` argument of the
-:module:`qt4_add_resources() <FindQt4>` macro.
-
-By default it is empty.
-
-This property is initialized by the value of the
-:variable:`CMAKE_AUTORCC_OPTIONS` variable if it is set when a target is
-created.
-
-The options set on the target may be overridden by :prop_sf:`AUTORCC_OPTIONS`
-set on the ``.qrc`` source file.
-
-See the :manual:`cmake-qt(7)` manual for more information on using CMake
-with Qt.
-
-EXAMPLE
-^^^^^^^
-
-.. code-block:: cmake
-
- # ...
- set_property(TARGET tgt PROPERTY AUTORCC_OPTIONS "--compress;9")
- # ...
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOUIC.rst b/share/cmake-3.16/Help/prop_tgt/AUTOUIC.rst
deleted file mode 100644
index 5cf8755..0000000
--- a/share/cmake-3.16/Help/prop_tgt/AUTOUIC.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-AUTOUIC
--------
-
-Should the target be processed with auto-uic (for Qt projects).
-
-:prop_tgt:`AUTOUIC` is a boolean specifying whether CMake will handle
-the Qt ``uic`` code generator automatically, i.e. without having to use
-the :module:`QT4_WRAP_UI() <FindQt4>` or ``QT5_WRAP_UI()`` macro. Currently
-Qt4 and Qt5 are supported.
-
-This property is initialized by the value of the :variable:`CMAKE_AUTOUIC`
-variable if it is set when a target is created.
-
-When this property is ``ON``, CMake will scan the header and source files at
-build time and invoke ``uic`` accordingly.
-
-
-Header and source file processing
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-At build time, CMake scans each header and source file from the
-target's sources for include statements of the form
-
-.. code-block:: c++
-
- #include "ui_<ui_base>.h"
-
-Once such an include statement is found in a file, CMake searches for the
-``uic`` input file ``<ui_base>.ui``
-
-- in the vicinity of the file and
-- in the :prop_tgt:`AUTOUIC_SEARCH_PATHS` of the target.
-
-If the ``<ui_base>.ui`` file was found, ``uic`` is called on it to generate
-``ui_<ui_base>.h`` in the directory
-
-- ``<AUTOGEN_BUILD_DIR>/include`` for single configuration generators or in
-- ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>`` for
- :prop_gbl:`multi configuration <GENERATOR_IS_MULTI_CONFIG>` generators.
-
-Where ``<AUTOGEN_BUILD_DIR>`` is the value of the target property
-:prop_tgt:`AUTOGEN_BUILD_DIR`.
-
-The include directory is automatically added to the target's
-:prop_tgt:`INCLUDE_DIRECTORIES`.
-
-
-Modifiers
-^^^^^^^^^
-
-:prop_tgt:`AUTOUIC_EXECUTABLE`:
-The ``uic`` executable will be detected automatically, but can be forced to
-a certain binary using this target property.
-
-:prop_sf:`AUTOUIC_OPTIONS`: Additional command line options for ``uic`` can
-be set via this source file property on a ``<base_name>.ui`` file.
-
-:prop_sf:`SKIP_AUTOUIC`:
-Source files can be excluded from :prop_tgt:`AUTOUIC` processing by setting
-this source file property.
-
-:prop_sf:`SKIP_AUTOGEN`:
-Source files can be excluded from :prop_tgt:`AUTOMOC`,
-:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` processing by
-setting this source file property.
-
-:prop_gbl:`AUTOGEN_TARGETS_FOLDER`:
-This global property can be used to group :prop_tgt:`AUTOMOC`,
-:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` targets together in an IDE,
-e.g. in MSVS.
-
-:variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`:
-A global ``autogen`` target, that depends on all :prop_tgt:`AUTOMOC` or
-:prop_tgt:`AUTOUIC` generated ``<ORIGIN>_autogen`` targets in the project,
-will be generated when this variable is ``ON``.
-
-:prop_tgt:`AUTOGEN_PARALLEL`:
-This target property controls the number of ``moc`` or ``uic`` processes to
-start in parallel during builds.
-
-See the :manual:`cmake-qt(7)` manual for more information on using CMake
-with Qt.
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOUIC_OPTIONS.rst b/share/cmake-3.16/Help/prop_tgt/AUTOUIC_OPTIONS.rst
deleted file mode 100644
index 3f613b9..0000000
--- a/share/cmake-3.16/Help/prop_tgt/AUTOUIC_OPTIONS.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-AUTOUIC_OPTIONS
----------------
-
-Additional options for ``uic`` when using :prop_tgt:`AUTOUIC`
-
-This property holds additional command line options which will be used when
-``uic`` is executed during the build via :prop_tgt:`AUTOUIC`, i.e. it is
-equivalent to the optional ``OPTIONS`` argument of the
-:module:`qt4_wrap_ui() <FindQt4>` macro.
-
-By default it is empty.
-
-This property is initialized by the value of the
-:variable:`CMAKE_AUTOUIC_OPTIONS` variable if it is set when a target is
-created.
-
-The options set on the target may be overridden by :prop_sf:`AUTOUIC_OPTIONS`
-set on the ``.ui`` source file.
-
-This property may use "generator expressions" with the syntax ``$<...>``.
-See the :manual:`cmake-generator-expressions(7)` manual for available
-expressions.
-
-See the :manual:`cmake-qt(7)` manual for more information on using CMake
-with Qt.
-
-EXAMPLE
-^^^^^^^
-
-.. code-block:: cmake
-
- # ...
- set_property(TARGET tgt PROPERTY AUTOUIC_OPTIONS "--no-protection")
- # ...
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPILE_FEATURES.rst b/share/cmake-3.16/Help/prop_tgt/COMPILE_FEATURES.rst
deleted file mode 100644
index 195215e..0000000
--- a/share/cmake-3.16/Help/prop_tgt/COMPILE_FEATURES.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-COMPILE_FEATURES
-----------------
-
-Compiler features enabled for this target.
-
-The list of features in this property are a subset of the features listed
-in the :variable:`CMAKE_CXX_COMPILE_FEATURES` variable.
-
-Contents of ``COMPILE_FEATURES`` may use "generator expressions" with the
-syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` manual for
-available expressions. See the :manual:`cmake-compile-features(7)` manual
-for information on compile features and a list of supported compilers.
diff --git a/share/cmake-3.16/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst b/share/cmake-3.16/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst
deleted file mode 100644
index c100326..0000000
--- a/share/cmake-3.16/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-DOTNET_TARGET_FRAMEWORK_VERSION
--------------------------------
-
-Specify the .NET target framework version.
-
-Used to specify the .NET target framework version for C++/CLI. For
-example: ``v4.5``.
-
-This property is only evaluated for :ref:`Visual Studio Generators`
-VS 2010 and above.
-
-Can be initialized for all targets using the variable
-:variable:`CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION`.
diff --git a/share/cmake-3.16/Help/prop_tgt/INSTALL_NAME_DIR.rst b/share/cmake-3.16/Help/prop_tgt/INSTALL_NAME_DIR.rst
deleted file mode 100644
index 2216072..0000000
--- a/share/cmake-3.16/Help/prop_tgt/INSTALL_NAME_DIR.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-INSTALL_NAME_DIR
-----------------
-
-macOS directory name for installed targets.
-
-``INSTALL_NAME_DIR`` is a string specifying the directory portion of the
-"install_name" field of shared libraries on macOS to use in the
-installed targets.
-
-This property is initialized by the value of the variable
-:variable:`CMAKE_INSTALL_NAME_DIR` if it is set when a target is
-created.
diff --git a/share/cmake-3.16/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst b/share/cmake-3.16/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst
deleted file mode 100644
index d8be954..0000000
--- a/share/cmake-3.16/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-INSTALL_RPATH_USE_LINK_PATH
----------------------------
-
-Add paths to linker search and installed rpath.
-
-``INSTALL_RPATH_USE_LINK_PATH`` is a boolean that if set to ``True`` will
-append directories in the linker search path and outside the project
-to the :prop_tgt:`INSTALL_RPATH`. This property is initialized by the value of
-the variable ``CMAKE_INSTALL_RPATH_USE_LINK_PATH`` if it is set when a
-target is created.
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt b/share/cmake-3.16/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt
deleted file mode 100644
index 1fdb6ad..0000000
--- a/share/cmake-3.16/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-.. note::
- A call to :command:`target_link_libraries(<target> ...)` may update this
- property on ``<target>``. If ``<target>`` was not created in the same
- directory as the call then :command:`target_link_libraries` will add a
- suffix of the form ``::@<directory-id>`` to each entry, where the
- ``::@`` is a separator and the ``<directory-id>`` is unspecified.
- This tells the generators that the named libraries must be looked up in
- the scope of the caller rather than in the scope in which the
- ``<target>`` was created. Valid directory ids are stripped on export
- by the :command:`install(EXPORT)` and :command:`export` commands.
diff --git a/share/cmake-3.16/Help/prop_tgt/SOVERSION.rst b/share/cmake-3.16/Help/prop_tgt/SOVERSION.rst
deleted file mode 100644
index b07c17c..0000000
--- a/share/cmake-3.16/Help/prop_tgt/SOVERSION.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-SOVERSION
----------
-
-What version number is this target.
-
-For shared libraries :prop_tgt:`VERSION` and ``SOVERSION`` can be used to
-specify the build version and API version respectively. When building or
-installing appropriate symlinks are created if the platform supports
-symlinks and the linker supports so-names. If only one of both is
-specified the missing is assumed to have the same version number.
-``SOVERSION`` is ignored if :prop_tgt:`NO_SONAME` property is set.
-
-Windows Versions
-^^^^^^^^^^^^^^^^
-
-For shared libraries and executables on Windows the :prop_tgt:`VERSION`
-attribute is parsed to extract a ``<major>.<minor>`` version number.
-These numbers are used as the image version of the binary.
-
-Mach-O Versions
-^^^^^^^^^^^^^^^
-
-For shared libraries and executables on Mach-O systems (e.g. macOS, iOS),
-the ``SOVERSION`` property corresponds to *compatibility version* and
-:prop_tgt:`VERSION` to *current version*. See the :prop_tgt:`FRAMEWORK` target
-property for an example. Versions of Mach-O binaries may be checked with the
-``otool -L <binary>`` command.
diff --git a/share/cmake-3.16/Help/prop_tgt/VERSION.rst b/share/cmake-3.16/Help/prop_tgt/VERSION.rst
deleted file mode 100644
index ff3b303..0000000
--- a/share/cmake-3.16/Help/prop_tgt/VERSION.rst
+++ /dev/null
@@ -1,29 +0,0 @@
-VERSION
--------
-
-What version number is this target.
-
-For shared libraries ``VERSION`` and :prop_tgt:`SOVERSION` can be used
-to specify the build version and API version respectively. When building or
-installing appropriate symlinks are created if the platform supports
-symlinks and the linker supports so-names. If only one of both is
-specified the missing is assumed to have the same version number. For
-executables ``VERSION`` can be used to specify the build version. When
-building or installing appropriate symlinks are created if the
-platform supports symlinks.
-
-Windows Versions
-^^^^^^^^^^^^^^^^
-
-For shared libraries and executables on Windows the ``VERSION``
-attribute is parsed to extract a ``<major>.<minor>`` version number.
-These numbers are used as the image version of the binary.
-
-Mach-O Versions
-^^^^^^^^^^^^^^^
-
-For shared libraries and executables on Mach-O systems (e.g. macOS, iOS),
-the :prop_tgt:`SOVERSION` property correspond to *compatibility version* and
-``VERSION`` to *current version*. See the :prop_tgt:`FRAMEWORK` target
-property for an example. Versions of Mach-O binaries may be checked with the
-``otool -L <binary>`` command.
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst b/share/cmake-3.16/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst
deleted file mode 100644
index 9f5a313..0000000
--- a/share/cmake-3.16/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-VS_DOTNET_TARGET_FRAMEWORK_VERSION
-----------------------------------
-
-Specify the .NET target framework version.
-
-Used to specify the .NET target framework version for C++/CLI. For
-example, "v4.5".
-
-This property is deprecated and should not be used anymore. Use
-:prop_tgt:`DOTNET_TARGET_FRAMEWORK_VERSION` instead.
diff --git a/share/cmake-3.16/Help/release/3.16.rst b/share/cmake-3.16/Help/release/3.16.rst
deleted file mode 100644
index 0d1cc1e..0000000
--- a/share/cmake-3.16/Help/release/3.16.rst
+++ /dev/null
@@ -1,279 +0,0 @@
-CMake 3.16 Release Notes
-************************
-
-.. only:: html
-
- .. contents::
-
-Changes made since CMake 3.15 include the following.
-
-New Features
-============
-
-Languages
----------
-
-* CMake learned to support the Objective C (``OBJC``) and Objective C++
- (``OBJCXX``) languages. They may be enabled via the :command:`project`
- and :command:`enable_language` commands. When ``OBJC`` or ``OBJCXX``
- is enabled, source files with the ``.m`` or ``.mm``, respectively,
- will be compiled as Objective C or C++. Otherwise they will be treated
- as plain C++ sources as they were before.
-
-Compilers
----------
-
-* The ``Clang`` compiler is now supported on ``Solaris``.
-
-Platforms
----------
-
-* On AIX, executables using the :prop_tgt:`ENABLE_EXPORTS` target property
- now produce a linker import file with a ``.imp`` extension in addition
- to the executable file. Plugins (created via :command:`add_library` with
- the ``MODULE`` option) that use :command:`target_link_libraries` to link
- to the executable for its symbols are now linked using the import file.
- The :command:`install(TARGETS)` command now installs the import file as
- an ``ARCHIVE`` artifact.
-
-* On AIX, runtime linking is no longer enabled by default. CMake provides
- the linker enough information to resolve all symbols up front.
- One may manually enable runtime linking for shared libraries and/or
- loadable modules by adding ``-Wl,-G`` to their link flags
- (e.g. in the :variable:`CMAKE_SHARED_LINKER_FLAGS` or
- :variable:`CMAKE_MODULE_LINKER_FLAGS` variable).
- One may manually enable runtime linking for executables by adding
- ``-Wl,-brtl`` to their link flags (e.g. in the
- :variable:`CMAKE_EXE_LINKER_FLAGS` variable).
-
-Command-Line
-------------
-
-* :manual:`cmake(1)` ``-E`` now supports ``true`` and ``false`` commands,
- which do nothing while returning exit codes of 0 and 1, respectively.
-
-* :manual:`cmake(1)` gained a ``--trace-redirect=<file>`` command line
- option that can be used to redirect ``--trace`` output to a file instead
- of ``stderr``.
-
-* The :manual:`cmake(1)` ``--loglevel`` command line option has been
- renamed to ``--log-level`` to make it consistent with the naming of other
- command line options. The ``--loglevel`` option is still supported to
- preserve backward compatibility.
-
-Commands
---------
-
-* The :command:`add_test` command learned the option ``COMMAND_EXPAND_LISTS``
- which causes lists in the ``COMMAND`` argument to be expanded, including
- lists created by generator expressions.
-
-* The :command:`file` command learned a new sub-command,
- ``GET_RUNTIME_DEPENDENCIES``, which allows you to recursively get the list of
- libraries linked by an executable or library. This sub-command is intended as
- a replacement for :module:`GetPrerequisites`.
-
-* The :command:`find_file`, :command:`find_library`, :command:`find_path`,
- :command:`find_package`, and :command:`find_program` commands have learned to
- check the following variables to control the default behavior for groups of
- search locations:
-
- * :variable:`CMAKE_FIND_USE_PACKAGE_ROOT_PATH` - Controls the default
- behavior of searching the :variable:`<PackageName>_ROOT` variables.
-
- * :variable:`CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH` - Controls the default
- behavior of searching the CMake-specific environment variables.
-
- * :variable:`CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH` - Controls the default
- behavior of searching the standard system environment variables.
-
- * :variable:`CMAKE_FIND_USE_CMAKE_PATH` - Controls the default behavior of
- searching the CMake-specific cache variables.
-
- * :variable:`CMAKE_FIND_USE_CMAKE_SYSTEM_PATH` - Controls the default
- behavior of searching the platform-specific CMake variables.
-
-* The :command:`find_package` command has learned to check the
- :variable:`CMAKE_FIND_USE_PACKAGE_REGISTRY` variable to control the default
- behavior of searching the CMake user package registry and to check the
- :variable:`CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY` variable to control
- the default behavior of searching the CMake system package registry.
-
-* The :command:`message` command learned indentation control with the new
- :variable:`CMAKE_MESSAGE_INDENT` variable.
-
-* The :command:`target_precompile_headers` command was added to specify
- a list of headers to precompile for faster compilation times.
-
-Variables
----------
-
-* The :variable:`CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS` variable has been
- introduced to optionally initialize the
- :prop_tgt:`CUDA_RESOLVE_DEVICE_SYMBOLS` target property.
-
-* The :variable:`CMAKE_ECLIPSE_RESOURCE_ENCODING` variable was added to
- specify the resource encoding for the the :generator:`Eclipse CDT4` extra
- generator.
-
-* The :variable:`CMAKE_UNITY_BUILD` variable was added to initialize the
- :prop_tgt:`UNITY_BUILD` target property to tell generators to batch
- include source files for faster compilation times.
-
-Properties
-----------
-
-* The :prop_tgt:`BUILD_RPATH` and :prop_tgt:`INSTALL_RPATH` target properties
- now support :manual:`generator expressions <cmake-generator-expressions(7)>`.
-
-* The :prop_tgt:`INSTALL_REMOVE_ENVIRONMENT_RPATH` target property was
- added to remove compiler-defined ``RPATH`` entries from a target.
- This property is initialized by the
- :variable:`CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH` variable.
-
-* The :prop_tgt:`PRECOMPILE_HEADERS` target property was added to specify
- a list of headers to precompile for faster compilation times.
- Set it using the :command:`target_precompile_headers` command.
-
-* The :prop_tgt:`UNITY_BUILD` target property was added to tell
- generators to batch include source files for faster compilation
- times.
-
-* The :prop_tgt:`VS_CONFIGURATION_TYPE` target property now supports
- :manual:`generator expressions <cmake-generator-expressions(7)>`.
-
-* The :prop_tgt:`VS_DPI_AWARE` target property was added to tell
- :ref:`Visual Studio Generators` to set the ``EnableDpiAwareness``
- property in ``.vcxproj`` files.
-
-* The :prop_tgt:`XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING` target property was
- added to tell the :generator:`Xcode` generator to set the value of the
- ``Allow debugging when using document Versions Browser`` schema option.
-
-Modules
--------
-
-* The :module:`FindDoxygen` module :command:`doxygen_add_docs` command
- gained a new ``USE_STAMP_FILE`` option. When this option present,
- the custom target created by the command will only re-run Doxygen if
- any of the source files have changed since the last successful run.
-
-* The :module:`FindGnuTLS` module now provides an imported target.
-
-* The :module:`FindPackageHandleStandardArgs` module
- :command:`find_package_handle_standard_args` command gained
- a new ``REASON_FAILURE_MESSAGE`` option to specify a message
- giving the reason for the failure.
-
-* The :module:`FindPkgConfig` module :command:`pkg_search_module` macro
- now defines a ``<prefix>_MODULE_NAME`` result variable containing the
- first matching module name.
-
-* The :module:`FindPython3` and :module:`FindPython` modules gained
- options to control which ``ABIs`` will be searched.
-
-* The :module:`FindPython3`, :module:`FindPython2`, and :module:`FindPython`
- modules now support direct specification of artifacts via cache entries.
-
-Autogen
--------
-
-* When using :prop_tgt:`AUTOMOC`, CMake now generates the ``-p`` path prefix
- option for ``moc``. This ensures that ``moc`` output files are identical
- on different build setups (given, that the headers compiled by ``moc`` are
- in an :command:`include directory <target_include_directories>`).
- Also it ensures that ``moc`` output files will compile correctly when the
- source and/or build directory is a symbolic link.
-
- The ``moc`` path prefix generation behavior can be configured by setting
- the new :variable:`CMAKE_AUTOMOC_PATH_PREFIX` variable and/or
- :prop_tgt:`AUTOMOC_PATH_PREFIX` target property.
-
-CTest
------
-
-* :manual:`ctest(1)` now has the ability to schedule tests based on resource
- requirements for each test. See :ref:`ctest-resource-allocation` for
- details.
-
-* A new test property, :prop_test:`SKIP_REGULAR_EXPRESSION`, has been added.
- This property is similar to :prop_test:`FAIL_REGULAR_EXPRESSION` and
- :prop_test:`PASS_REGULAR_EXPRESSION`, but with the same meaning as
- :prop_test:`SKIP_RETURN_CODE`. This is useful, for example, in cases where
- the user has no control over the return code of the test. For example, in
- Catch2, the return value is the number of assertion failed, therefore it is
- impossible to use it for :prop_test:`SKIP_RETURN_CODE`.
-
-CPack
------
-
-* :manual:`cpack(1)` learned support for multiple configurations for ``-C``
- option.
-
-* The :cpack_gen:`CPack DEB Generator` is now able to format generic text
- (usually used as the description for multiple CPack generators) according
- to the `Debian Policy Manual`_. See the
- :variable:`CPACK_PACKAGE_DESCRIPTION_FILE` and
- :variable:`CPACK_DEBIAN_<COMPONENT>_DESCRIPTION` variables.
-
-* The :cpack_gen:`CPack Archive Generator` learned to generate ``.tar.zst``
- packages with Zstandard compression.
-
-.. _`Debian Policy Manual`: https://www.debian.org/doc/debian-policy/ch-controlfields.html#description
-
-Deprecated and Removed Features
-===============================
-
-* An explicit deprecation diagnostic was added for policy ``CMP0067``
- (``CMP0066`` and below were already deprecated).
- The :manual:`cmake-policies(7)` manual explains that the OLD behaviors
- of all policies are deprecated and that projects should port to the
- NEW behaviors.
-
-* The :variable:`CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY` variable has been
- deprecated. Use the :variable:`CMAKE_FIND_USE_PACKAGE_REGISTRY` variable
- instead.
-
-* The :module:`GetPrerequisites` module has been deprecated, as it has been
- superceded by :command:`file(GET_RUNTIME_DEPENDENCIES)`.
-
-* The ``CPACK_INSTALL_SCRIPT`` variable has been deprecated in favor of the
- new, more accurately named :variable:`CPACK_INSTALL_SCRIPTS` variable.
-
-Other Changes
-=============
-
-* The :manual:`cmake(1)` ``-C <initial-cache>`` option now evaluates the
- initial cache script with :variable:`CMAKE_SOURCE_DIR` and
- :variable:`CMAKE_BINARY_DIR` set to the top-level source and build trees.
-
-* The :manual:`cmake(1)` ``-E remove_directory`` command-line tool,
- when given the path to a symlink to a directory, now removes just
- the symlink. It no longer removes content of the linked directory.
-
-* The :manual:`ctest(1)` ``--build-makeprogram`` command-line option now
- specifies the make program used when configuring a project with the
- :generator:`Ninja` generator or the :ref:`Makefile Generators`.
-
-* The :module:`ExternalProject` module :command:`ExternalProject_Add` command
- has been updated so that ``GIT_SUBMODULES ""`` initializes no submodules.
- See policy :policy:`CMP0097`.
-
-* The :module:`FindGTest` module has been updated to recognize
- MSVC build trees generated by GTest 1.8.1.
-
-* The :command:`project` command no longer strips leading zeros in version
- components. See policy :policy:`CMP0096`.
-
-* The Qt Compressed Help file is now named ``CMake.qch``, which no longer
- contains the release version in the file name. When CMake is upgraded
- in-place, the name and location of this file will remain constant.
- Tools such as IDEs, help viewers, etc. should now be able to refer to this
- file at a fixed location that remains valid across CMake upgrades.
-
-* ``RPATH`` entries are properly escaped in the generated CMake scripts
- used for installation. See policy :policy:`CMP0095`.
-
-* When using :variable:`CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS` on Windows the
- auto-generated exports are now updated only when the object files
- providing the symbols are updated.
diff --git a/share/cmake-3.16/Help/release/index.rst b/share/cmake-3.16/Help/release/index.rst
deleted file mode 100644
index 0cc3f97..0000000
--- a/share/cmake-3.16/Help/release/index.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-:orphan:
-
-CMake Release Notes
-*******************
-
-..
- This file should include the adjacent "dev.txt" file
- in development versions but not in release versions.
-
-Releases
-========
-
-.. toctree::
- :maxdepth: 1
-
- 3.16 <3.16>
- 3.15 <3.15>
- 3.14 <3.14>
- 3.13 <3.13>
- 3.12 <3.12>
- 3.11 <3.11>
- 3.10 <3.10>
- 3.9 <3.9>
- 3.8 <3.8>
- 3.7 <3.7>
- 3.6 <3.6>
- 3.5 <3.5>
- 3.4 <3.4>
- 3.3 <3.3>
- 3.2 <3.2>
- 3.1 <3.1>
- 3.0 <3.0>
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CFG_INTDIR.rst b/share/cmake-3.16/Help/variable/CMAKE_CFG_INTDIR.rst
deleted file mode 100644
index af82f75..0000000
--- a/share/cmake-3.16/Help/variable/CMAKE_CFG_INTDIR.rst
+++ /dev/null
@@ -1,45 +0,0 @@
-CMAKE_CFG_INTDIR
-----------------
-
-Build-time reference to per-configuration output subdirectory.
-
-For native build systems supporting multiple configurations in the
-build tree (such as :ref:`Visual Studio Generators` and :generator:`Xcode`),
-the value is a reference to a build-time variable specifying the name
-of the per-configuration output subdirectory. On :ref:`Makefile Generators`
-this evaluates to `.` because there is only one configuration in a build tree.
-Example values:
-
-::
-
- $(ConfigurationName) = Visual Studio 9
- $(Configuration) = Visual Studio 10
- $(CONFIGURATION) = Xcode
- . = Make-based tools
-
-Since these values are evaluated by the native build system, this
-variable is suitable only for use in command lines that will be
-evaluated at build time. Example of intended usage:
-
-::
-
- add_executable(mytool mytool.c)
- add_custom_command(
- OUTPUT out.txt
- COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool
- ${CMAKE_CURRENT_SOURCE_DIR}/in.txt out.txt
- DEPENDS mytool in.txt
- )
- add_custom_target(drive ALL DEPENDS out.txt)
-
-Note that ``CMAKE_CFG_INTDIR`` is no longer necessary for this purpose but
-has been left for compatibility with existing projects. Instead
-:command:`add_custom_command` recognizes executable target names in its
-``COMMAND`` option, so
-``${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool`` can be replaced
-by just ``mytool``.
-
-This variable is read-only. Setting it is undefined behavior. In
-multi-configuration build systems the value of this variable is passed
-as the value of preprocessor symbol ``CMAKE_INTDIR`` to the compilation
-of all source files.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst b/share/cmake-3.16/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst
deleted file mode 100644
index 124fefe..0000000
--- a/share/cmake-3.16/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION
--------------------------------------
-
-Default value for :prop_tgt:`DOTNET_TARGET_FRAMEWORK_VERSION`
-property of targets.
-
-This variable is used to initialize the
-:prop_tgt:`DOTNET_TARGET_FRAMEWORK_VERSION` property on all
-targets. See that target property for additional information.
-
-Setting ``CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION`` may be necessary
-when working with ``C#`` and newer .NET framework versions to
-avoid referencing errors with the ``ALL_BUILD`` CMake target.
-
-This variable is only evaluated for :ref:`Visual Studio Generators`
-VS 2010 and above.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst b/share/cmake-3.16/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst
deleted file mode 100644
index 4548abc..0000000
--- a/share/cmake-3.16/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-CMAKE_EXPORT_COMPILE_COMMANDS
------------------------------
-
-Enable/Disable output of compile commands during generation.
-
-If enabled, generates a ``compile_commands.json`` file containing the exact
-compiler calls for all translation units of the project in machine-readable
-form. The format of the JSON file looks like:
-
-.. code-block:: javascript
-
- [
- {
- "directory": "/home/user/development/project",
- "command": "/usr/bin/c++ ... -c ../foo/foo.cc",
- "file": "../foo/foo.cc"
- },
-
- ...
-
- {
- "directory": "/home/user/development/project",
- "command": "/usr/bin/c++ ... -c ../foo/bar.cc",
- "file": "../foo/bar.cc"
- }
- ]
-
-.. note::
- This option is implemented only by :ref:`Makefile Generators`
- and the :generator:`Ninja`. It is ignored on other generators.
-
- This option currently does not work well in combination with
- the :prop_tgt:`UNITY_BUILD` target property or the
- :variable:`CMAKE_UNITY_BUILD` variable.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_GENERATOR_TOOLSET.rst b/share/cmake-3.16/Help/variable/CMAKE_GENERATOR_TOOLSET.rst
deleted file mode 100644
index 222824f..0000000
--- a/share/cmake-3.16/Help/variable/CMAKE_GENERATOR_TOOLSET.rst
+++ /dev/null
@@ -1,60 +0,0 @@
-CMAKE_GENERATOR_TOOLSET
------------------------
-
-Native build system toolset specification provided by user.
-
-Some CMake generators support a toolset specification to tell the
-native build system how to choose a compiler. If the user specifies
-a toolset (e.g. via the :manual:`cmake(1)` ``-T`` option or via
-the :envvar:`CMAKE_GENERATOR_TOOLSET` environment variable) the value
-will be available in this variable.
-
-The value of this variable should never be modified by project code.
-A toolchain file specified by the :variable:`CMAKE_TOOLCHAIN_FILE`
-variable may initialize ``CMAKE_GENERATOR_TOOLSET``. Once a given
-build tree has been initialized with a particular value for this
-variable, changing the value has undefined behavior.
-
-Toolset specification is supported only on specific generators:
-
-* :ref:`Visual Studio Generators` for VS 2010 and above
-* The :generator:`Xcode` generator for Xcode 3.0 and above
-* The :generator:`Green Hills MULTI` generator
-
-See native build system documentation for allowed toolset names.
-
-Visual Studio Toolset Selection
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The :ref:`Visual Studio Generators` support toolset specification
-using one of these forms:
-
-* ``toolset``
-* ``toolset[,key=value]*``
-* ``key=value[,key=value]*``
-
-The ``toolset`` specifies the toolset name. The selected toolset name
-is provided in the :variable:`CMAKE_VS_PLATFORM_TOOLSET` variable.
-
-The ``key=value`` pairs form a comma-separated list of options to
-specify generator-specific details of the toolset selection.
-Supported pairs are:
-
-``cuda=<version>|<path>``
- Specify the CUDA toolkit version to use or the path to a
- standalone CUDA toolkit directory. Supported by VS 2010
- and above. The version can only be used with the CUDA
- toolkit VS integration globally installed.
- See the :variable:`CMAKE_VS_PLATFORM_TOOLSET_CUDA` and
- :variable:`CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR` variables.
-
-``host=<arch>``
- Specify the host tools architecture as ``x64`` or ``x86``.
- Supported by VS 2013 and above.
- See the :variable:`CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE`
- variable.
-
-``version=<version>``
- Specify the toolset version to use. Supported by VS 2017
- and above with the specified toolset installed.
- See the :variable:`CMAKE_VS_PLATFORM_TOOLSET_VERSION` variable.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst b/share/cmake-3.16/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst
deleted file mode 100644
index e82867d..0000000
--- a/share/cmake-3.16/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-CMAKE_GLOBAL_AUTOGEN_TARGET
----------------------------
-
-Switch to enable generation of a global ``autogen`` target.
-
-When :variable:`CMAKE_GLOBAL_AUTORCC_TARGET` is enabled, a custom target
-``autogen`` is generated. This target depends on all :prop_tgt:`AUTOMOC` and
-:prop_tgt:`AUTOUIC` generated ``<ORIGIN>_autogen`` targets in the project.
-By building the global ``autogen`` target, all :prop_tgt:`AUTOMOC` and
-:prop_tgt:`AUTOUIC` files in the project will be generated.
-
-The name of the global ``autogen`` target can be changed by setting
-:variable:`CMAKE_GLOBAL_AUTOGEN_TARGET_NAME`.
-
-By default :variable:`CMAKE_GLOBAL_AUTOGEN_TARGET` is unset.
-
-See the :manual:`cmake-qt(7)` manual for more information on using CMake
-with Qt.
-
-Note
-^^^^
-
-``<ORIGIN>_autogen`` targets by default inherit their origin target's
-dependencies. This might result in unintended dependency target
-builds when only ``<ORIGIN>_autogen`` targets are built. A solution is to
-disable :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` on the respective origin targets.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst b/share/cmake-3.16/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst
deleted file mode 100644
index ba8a850..0000000
--- a/share/cmake-3.16/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-CMAKE_HOST_SYSTEM_PROCESSOR
----------------------------
-
-The name of the CPU CMake is running on.
-
-On systems that support ``uname``, this variable is set to the output of
-``uname -p``. On Windows it is set to the value of the environment variable
-``PROCESSOR_ARCHITECTURE``.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst b/share/cmake-3.16/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
deleted file mode 100644
index 78148d5..0000000
--- a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-CMAKE_INSTALL_RPATH_USE_LINK_PATH
----------------------------------
-
-Add paths to linker search and installed rpath.
-
-``CMAKE_INSTALL_RPATH_USE_LINK_PATH`` is a boolean that if set to ``true``
-will append directories in the linker search path and outside the
-project to the :prop_tgt:`INSTALL_RPATH`. This is used to initialize the
-target property :prop_tgt:`INSTALL_RPATH_USE_LINK_PATH` for all targets.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst b/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst
deleted file mode 100644
index 6b7e35a..0000000
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-CMAKE_<LANG>_COMPILER_LAUNCHER
-------------------------------
-
-Default value for :prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property.
-This variable is used to initialize the property on each target as it is
-created. This is done only when ``<LANG>`` is ``C``, ``CXX``, ``Fortran``,
-``OBJC``, ``OBJCXX``, or ``CUDA``.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst b/share/cmake-3.16/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst
deleted file mode 100644
index fc52e7b..0000000
--- a/share/cmake-3.16/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-CMAKE_POLICY_WARNING_CMP<NNNN>
-------------------------------
-
-Explicitly enable or disable the warning when CMake Policy ``CMP<NNNN>``
-is not set. This is meaningful only for the few policies that do not
-warn by default:
-
-* ``CMAKE_POLICY_WARNING_CMP0025`` controls the warning for
- policy :policy:`CMP0025`.
-* ``CMAKE_POLICY_WARNING_CMP0047`` controls the warning for
- policy :policy:`CMP0047`.
-* ``CMAKE_POLICY_WARNING_CMP0056`` controls the warning for
- policy :policy:`CMP0056`.
-* ``CMAKE_POLICY_WARNING_CMP0060`` controls the warning for
- policy :policy:`CMP0060`.
-* ``CMAKE_POLICY_WARNING_CMP0065`` controls the warning for
- policy :policy:`CMP0065`.
-* ``CMAKE_POLICY_WARNING_CMP0066`` controls the warning for
- policy :policy:`CMP0066`.
-* ``CMAKE_POLICY_WARNING_CMP0067`` controls the warning for
- policy :policy:`CMP0067`.
-* ``CMAKE_POLICY_WARNING_CMP0082`` controls the warning for
- policy :policy:`CMP0082`.
-* ``CMAKE_POLICY_WARNING_CMP0089`` controls the warning for
- policy :policy:`CMP0089`.
-
-This variable should not be set by a project in CMake code. Project
-developers running CMake may set this variable in their cache to
-enable the warning (e.g. ``-DCMAKE_POLICY_WARNING_CMP<NNNN>=ON``).
-Alternatively, running :manual:`cmake(1)` with the ``--debug-output``,
-``--trace``, or ``--trace-expand`` option will also enable the warning.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_INCLUDE.rst b/share/cmake-3.16/Help/variable/CMAKE_PROJECT_INCLUDE.rst
deleted file mode 100644
index 965c94e..0000000
--- a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_INCLUDE.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-CMAKE_PROJECT_INCLUDE
----------------------
-
-A CMake language file or module to be included as the last step of all
-:command:`project` command calls. This is intended for injecting custom code
-into project builds without modifying their source.
-
-See also the :variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE` and
-:variable:`CMAKE_PROJECT_INCLUDE_BEFORE` variables.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst b/share/cmake-3.16/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst
deleted file mode 100644
index 70b15e6..0000000
--- a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-CMAKE_PROJECT_INCLUDE_BEFORE
-----------------------------
-
-A CMake language file or module to be included as the first step of all
-:command:`project` command calls. This is intended for injecting custom code
-into project builds without modifying their source.
-
-See also the :variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE` and
-:variable:`CMAKE_PROJECT_INCLUDE` variables.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst b/share/cmake-3.16/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst
deleted file mode 100644
index 3485c38..0000000
--- a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE
-------------------------------------
-
-A CMake language file or module to be included as the last step of any
-:command:`project` command calls that specify ``<PROJECT-NAME>`` as the project
-name. This is intended for injecting custom code into project builds without
-modifying their source.
-
-See also the :variable:`CMAKE_PROJECT_INCLUDE` and
-:variable:`CMAKE_PROJECT_INCLUDE_BEFORE` variables.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst b/share/cmake-3.16/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst
deleted file mode 100644
index 2ba8fe2..0000000
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-CMAKE_VS_WINRT_BY_DEFAULT
--------------------------
-
-Tell :ref:`Visual Studio Generators` for VS 2010 and above that the
-target platform compiles as WinRT by default (compiles with ``/ZW``).
-
-This variable is meant to be set by a
-:variable:`toolchain file <CMAKE_TOOLCHAIN_FILE>` for such platforms.
diff --git a/share/cmake-3.16/Help/variable/CTEST_CONFIGURATION_TYPE.rst b/share/cmake-3.16/Help/variable/CTEST_CONFIGURATION_TYPE.rst
deleted file mode 100644
index c905480..0000000
--- a/share/cmake-3.16/Help/variable/CTEST_CONFIGURATION_TYPE.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-CTEST_CONFIGURATION_TYPE
-------------------------
-
-Specify the CTest ``DefaultCTestConfigurationType`` setting
-in a :manual:`ctest(1)` dashboard client script.
diff --git a/share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_TYPE.rst b/share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_TYPE.rst
deleted file mode 100644
index b8b4c30..0000000
--- a/share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_TYPE.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-CTEST_MEMORYCHECK_TYPE
-----------------------
-
-Specify the CTest ``MemoryCheckType`` setting
-in a :manual:`ctest(1)` dashboard client script.
-Valid values are ``Valgrind``, ``Purify``, ``BoundsChecker``, and
-``ThreadSanitizer``, ``AddressSanitizer``, ``LeakSanitizer``, ``MemorySanitizer``, and
-``UndefinedBehaviorSanitizer``.
diff --git a/share/cmake-3.16/Modules/AndroidTestUtilities.cmake b/share/cmake-3.16/Modules/AndroidTestUtilities.cmake
deleted file mode 100644
index e333cdb..0000000
--- a/share/cmake-3.16/Modules/AndroidTestUtilities.cmake
+++ /dev/null
@@ -1,164 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[======================================================================[.rst:
-AndroidTestUtilities
-------------------------
-
-Create a test that automatically loads specified data onto an Android device.
-
-Introduction
-^^^^^^^^^^^^
-
-Use this module to push data needed for testing an Android device behavior
-onto a connected Android device. The module will accept files and libraries as
-well as separate destinations for each. It will create a test that loads the
-files into a device object store and link to them from the specified
-destination. The files are only uploaded if they are not already in the object
-store.
-
-For example:
-
-.. code-block:: cmake
-
- include(AndroidTestUtilities)
- android_add_test_data(
- example_setup_test
- FILES <files>...
- LIBS <libs>...
- DEVICE_TEST_DIR "/data/local/tests/example"
- DEVICE_OBJECT_STORE "/sdcard/.ExternalData/SHA"
- )
-
-
-At build time a test named "example_setup_test" will be created. Run this test
-on the command line with :manual:`ctest(1)` to load the data onto the Android
-device.
-
-Module Functions
-^^^^^^^^^^^^^^^^
-
-.. command:: android_add_test_data
-
- .. code-block:: cmake
-
- android_add_test_data(<test-name>
- [FILES <files>...] [FILES_DEST <device-dir>]
- [LIBS <libs>...] [LIBS_DEST <device-dir>]
- [DEVICE_OBJECT_STORE <device-dir>]
- [DEVICE_TEST_DIR <device-dir>]
- [NO_LINK_REGEX <strings>...]
- )
-
- The ``android_add_test_data`` function is used to copy files and libraries
- needed to run project-specific tests. On the host operating system, this is
- done at build time. For on-device testing, the files are loaded onto the
- device by the manufactured test at run time.
-
- This function accepts the following named parameters:
-
- ``FILES <files>...``
- zero or more files needed for testing
- ``LIBS <libs>...``
- zero or more libraries needed for testing
- ``FILES_DEST <device-dir>``
- absolute path where the data files are expected to be
- ``LIBS_DEST <device-dir>``
- absolute path where the libraries are expected to be
- ``DEVICE_OBJECT_STORE <device-dir>``
- absolute path to the location where the data is stored on-device
- ``DEVICE_TEST_DIR <device-dir>``
- absolute path to the root directory of the on-device test location
- ``NO_LINK_REGEX <strings>...``
- list of regex strings matching the names of files that should be
- copied from the object store to the testing directory
-#]======================================================================]
-
-include(${CMAKE_CURRENT_LIST_DIR}/ExternalData.cmake)
-
-set(_AndroidTestUtilities_SELF_DIR "${CMAKE_CURRENT_LIST_DIR}")
-
-# The parameters to this function should be set to the list of directories,
-# files, and libraries that need to be installed prior to testing.
-function(android_add_test_data test_name)
- # As the names suggest, oneValueArgs lists the arguments that specify a
- # single value, while multiValueArgs can contain one or more values.
- set(keywordArgs)
- set(oneValueArgs FILES_DEST LIBS_DEST DEVICE_OBJECT_STORE DEVICE_TEST_DIR)
- set(multiValueArgs FILES LIBS NO_LINK_REGEX)
-
- # For example, if you called this function with FILES </path/to/file>
- # then this path would be stored in the variable AST_FILES.
- # The AST prefix stands for the name of this function (android_add_test_data).
- cmake_parse_arguments(AST "${keywordArgs}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
- if(NOT AST_DEVICE_TEST_DIR)
- message(FATAL_ERROR "-- You must specify the location of the on device test directory.")
- endif()
- if(NOT AST_DEVICE_OBJECT_STORE)
- message(FATAL_ERROR "-- You must specify the location of the on device object store.")
- endif()
- if(${AST_DEVICE_TEST_DIR} STREQUAL "/")
- message(FATAL_ERROR "-- The device test directory cannot be '/'")
- endif()
-
- # Copy all test data files into the binary directory, where tests are run.
- # ExternalData will handle fetching DATA{...} references.
- string(REPLACE "|" ";" hash_algs "${_ExternalData_REGEX_EXT}")
- # Convert ExternalData placeholder file names to DATA{} syntax.
- foreach(alg ${hash_algs})
- string(REGEX REPLACE "([^ ;]+)\\.${alg}" "DATA{\\1}" AST_FILES "${AST_FILES}")
- endforeach()
-
- set(DATA_TARGET_NAME "${test_name}")
- string(FIND "${AST_FILES}" "DATA{" data_files_found)
- if(${data_files_found} GREATER "-1")
- # Use ExternalData if any DATA{} files were found.
- ExternalData_Expand_Arguments(
- ${DATA_TARGET_NAME}
- extern_data_output
- ${AST_FILES})
- ExternalData_Add_Target(${DATA_TARGET_NAME})
- else()
- add_custom_target(${DATA_TARGET_NAME} ALL)
- set(extern_data_output ${AST_FILES})
- endif()
-
- # For regular files on Linux, just copy them directly.
- foreach(path ${AST_FILES})
- foreach(output ${extern_data_output})
- if(${output} STREQUAL ${path})
- # Check if a destination was specified. If not, we copy by default
- # into this project's binary directory, preserving its relative path.
- if(AST_${VAR}_DEST)
- set(DEST ${CMAKE_BINARY_DIR}/${parent_dir}/${AST_${VAR}_DEST})
- else()
- get_filename_component(parent_dir ${path} DIRECTORY)
- set(DEST "${CMAKE_BINARY_DIR}/${parent_dir}")
- endif()
- get_filename_component(extern_data_source ${output} REALPATH)
- get_filename_component(extern_data_basename ${output} NAME)
- add_custom_command(
- TARGET ${DATA_TARGET_NAME} POST_BUILD
- DEPENDS ${extern_data_source}
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${extern_data_source} ${DEST}/${extern_data_basename}
- )
- endif()
- endforeach()
- endforeach()
-
- if(ANDROID)
- string(REGEX REPLACE "DATA{([^ ;]+)}" "\\1" processed_FILES "${AST_FILES}")
- add_test(
- NAME ${test_name}
- COMMAND ${CMAKE_COMMAND}
- "-Darg_files_dest=${AST_FILES_DEST}"
- "-Darg_libs_dest=${AST_LIBS_DEST}"
- "-Darg_dev_test_dir=${AST_DEVICE_TEST_DIR}"
- "-Darg_dev_obj_store=${AST_DEVICE_OBJECT_STORE}"
- "-Darg_no_link_regex=${AST_NO_LINK_REGEX}"
- "-Darg_files=${processed_FILES}"
- "-Darg_libs=${AST_LIBS}"
- "-Darg_src_dir=${CMAKE_CURRENT_SOURCE_DIR}"
- -P ${_AndroidTestUtilities_SELF_DIR}/AndroidTestUtilities/PushToAndroidDevice.cmake)
- endif()
-endfunction()
diff --git a/share/cmake-3.16/Modules/CMakeAddFortranSubdirectory.cmake b/share/cmake-3.16/Modules/CMakeAddFortranSubdirectory.cmake
deleted file mode 100644
index 2613569..0000000
--- a/share/cmake-3.16/Modules/CMakeAddFortranSubdirectory.cmake
+++ /dev/null
@@ -1,203 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CMakeAddFortranSubdirectory
----------------------------
-
-Add a fortran-only subdirectory, find a fortran compiler, and build.
-
-The ``cmake_add_fortran_subdirectory`` function adds a subdirectory
-to a project that contains a fortran-only subproject. The module will
-check the current compiler and see if it can support fortran. If no
-fortran compiler is found and the compiler is MSVC, then this module
-will find the MinGW gfortran. It will then use an external project to
-build with the MinGW tools. It will also create imported targets for
-the libraries created. This will only work if the fortran code is
-built into a dll, so :variable:`BUILD_SHARED_LIBS` is turned on in
-the project. In addition the :variable:`CMAKE_GNUtoMS` option is set
-to on, so that Microsoft ``.lib`` files are created. Usage is as follows:
-
-::
-
- cmake_add_fortran_subdirectory(
- <subdir> # name of subdirectory
- PROJECT <project_name> # project name in subdir top CMakeLists.txt
- ARCHIVE_DIR <dir> # dir where project places .lib files
- RUNTIME_DIR <dir> # dir where project places .dll files
- LIBRARIES <lib>... # names of library targets to import
- LINK_LIBRARIES # link interface libraries for LIBRARIES
- [LINK_LIBS <lib> <dep>...]...
- CMAKE_COMMAND_LINE ... # extra command line flags to pass to cmake
- NO_EXTERNAL_INSTALL # skip installation of external project
- )
-
-Relative paths in ``ARCHIVE_DIR`` and ``RUNTIME_DIR`` are interpreted with
-respect to the build directory corresponding to the source directory
-in which the function is invoked.
-
-Limitations:
-
-``NO_EXTERNAL_INSTALL`` is required for forward compatibility with a
-future version that supports installation of the external project
-binaries during ``make install``.
-#]=======================================================================]
-
-set(_MS_MINGW_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR})
-include(CheckLanguage)
-include(ExternalProject)
-
-function(_setup_mingw_config_and_build source_dir build_dir)
- # Look for a MinGW gfortran.
- find_program(MINGW_GFORTRAN
- NAMES gfortran
- PATHS
- c:/MinGW/bin
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\MinGW;InstallLocation]/bin"
- )
- if(NOT MINGW_GFORTRAN)
- message(FATAL_ERROR
- "gfortran not found, please install MinGW with the gfortran option."
- "Or set the cache variable MINGW_GFORTRAN to the full path. "
- " This is required to build")
- endif()
-
- # Validate the MinGW gfortran we found.
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(_mingw_target "Target:.*64.*mingw")
- else()
- set(_mingw_target "Target:.*mingw32")
- endif()
- execute_process(COMMAND "${MINGW_GFORTRAN}" -v
- ERROR_VARIABLE out ERROR_STRIP_TRAILING_WHITESPACE)
- if(NOT "${out}" MATCHES "${_mingw_target}")
- string(REPLACE "\n" "\n " out " ${out}")
- message(FATAL_ERROR
- "MINGW_GFORTRAN is set to\n"
- " ${MINGW_GFORTRAN}\n"
- "which is not a MinGW gfortran for this architecture. "
- "The output from -v does not match \"${_mingw_target}\":\n"
- "${out}\n"
- "Set MINGW_GFORTRAN to a proper MinGW gfortran for this architecture."
- )
- endif()
-
- # Configure scripts to run MinGW tools with the proper PATH.
- get_filename_component(MINGW_PATH ${MINGW_GFORTRAN} PATH)
- file(TO_NATIVE_PATH "${MINGW_PATH}" MINGW_PATH)
- string(REPLACE "\\" "\\\\" MINGW_PATH "${MINGW_PATH}")
- configure_file(
- ${_MS_MINGW_SOURCE_DIR}/CMakeAddFortranSubdirectory/config_mingw.cmake.in
- ${build_dir}/config_mingw.cmake
- @ONLY)
- configure_file(
- ${_MS_MINGW_SOURCE_DIR}/CMakeAddFortranSubdirectory/build_mingw.cmake.in
- ${build_dir}/build_mingw.cmake
- @ONLY)
-endfunction()
-
-function(_add_fortran_library_link_interface library depend_library)
- set_target_properties(${library} PROPERTIES
- IMPORTED_LINK_INTERFACE_LIBRARIES_NOCONFIG "${depend_library}")
-endfunction()
-
-
-function(cmake_add_fortran_subdirectory subdir)
- # Parse arguments to function
- set(options NO_EXTERNAL_INSTALL)
- set(oneValueArgs PROJECT ARCHIVE_DIR RUNTIME_DIR)
- set(multiValueArgs LIBRARIES LINK_LIBRARIES CMAKE_COMMAND_LINE)
- cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
- if(NOT ARGS_NO_EXTERNAL_INSTALL)
- message(FATAL_ERROR
- "Option NO_EXTERNAL_INSTALL is required (for forward compatibility) "
- "but was not given."
- )
- endif()
-
- # if we are not using MSVC without fortran support
- # then just use the usual add_subdirectory to build
- # the fortran library
- check_language(Fortran)
- if(NOT (MSVC AND (NOT CMAKE_Fortran_COMPILER)))
- add_subdirectory(${subdir})
- return()
- endif()
-
- # if we have MSVC without Intel fortran then setup
- # external projects to build with mingw fortran
-
- set(source_dir "${CMAKE_CURRENT_SOURCE_DIR}/${subdir}")
- set(project_name "${ARGS_PROJECT}")
- set(library_dir "${ARGS_ARCHIVE_DIR}")
- set(binary_dir "${ARGS_RUNTIME_DIR}")
- set(libraries ${ARGS_LIBRARIES})
- # use the same directory that add_subdirectory would have used
- set(build_dir "${CMAKE_CURRENT_BINARY_DIR}/${subdir}")
- foreach(dir_var library_dir binary_dir)
- if(NOT IS_ABSOLUTE "${${dir_var}}")
- get_filename_component(${dir_var}
- "${CMAKE_CURRENT_BINARY_DIR}/${${dir_var}}" ABSOLUTE)
- endif()
- endforeach()
- # create build and configure wrapper scripts
- _setup_mingw_config_and_build("${source_dir}" "${build_dir}")
- # create the external project
- externalproject_add(${project_name}_build
- SOURCE_DIR ${source_dir}
- BINARY_DIR ${build_dir}
- CONFIGURE_COMMAND ${CMAKE_COMMAND}
- -P ${build_dir}/config_mingw.cmake
- BUILD_COMMAND ${CMAKE_COMMAND}
- -P ${build_dir}/build_mingw.cmake
- INSTALL_COMMAND ""
- )
- # make the external project always run make with each build
- externalproject_add_step(${project_name}_build forcebuild
- COMMAND ${CMAKE_COMMAND}
- -E remove
- ${CMAKE_CURRENT_BUILD_DIR}/${project_name}-prefix/src/${project_name}-stamp/${project_name}-build
- DEPENDEES configure
- DEPENDERS build
- ALWAYS 1
- )
- # create imported targets for all libraries
- foreach(lib ${libraries})
- add_library(${lib} SHARED IMPORTED GLOBAL)
- set_property(TARGET ${lib} APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG)
- set_target_properties(${lib} PROPERTIES
- IMPORTED_IMPLIB_NOCONFIG "${library_dir}/lib${lib}.lib"
- IMPORTED_LOCATION_NOCONFIG "${binary_dir}/lib${lib}.dll"
- )
- add_dependencies(${lib} ${project_name}_build)
- endforeach()
-
- # now setup link libraries for targets
- set(start FALSE)
- set(target)
- foreach(lib ${ARGS_LINK_LIBRARIES})
- if("${lib}" STREQUAL "LINK_LIBS")
- set(start TRUE)
- else()
- if(start)
- if(DEFINED target)
- # process current target and target_libs
- _add_fortran_library_link_interface(${target} "${target_libs}")
- # zero out target and target_libs
- set(target)
- set(target_libs)
- endif()
- # save the current target and set start to FALSE
- set(target ${lib})
- set(start FALSE)
- else()
- # append the lib to target_libs
- list(APPEND target_libs "${lib}")
- endif()
- endif()
- endforeach()
- # process anything that is left in target and target_libs
- if(DEFINED target)
- _add_fortran_library_link_interface(${target} "${target_libs}")
- endif()
-endfunction()
diff --git a/share/cmake-3.16/Modules/CMakeCInformation.cmake b/share/cmake-3.16/Modules/CMakeCInformation.cmake
deleted file mode 100644
index df43559..0000000
--- a/share/cmake-3.16/Modules/CMakeCInformation.cmake
+++ /dev/null
@@ -1,190 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This file sets the basic flags for the C language in CMake.
-# It also loads the available platform file for the system-compiler
-# if it exists.
-# It also loads a system - compiler - processor (or target hardware)
-# specific file, which is mainly useful for crosscompiling and embedded systems.
-
-include(CMakeLanguageInformation)
-
-# some compilers use different extensions (e.g. sdcc uses .rel)
-# so set the extension here first so it can be overridden by the compiler specific file
-if(UNIX)
- set(CMAKE_C_OUTPUT_EXTENSION .o)
-else()
- set(CMAKE_C_OUTPUT_EXTENSION .obj)
-endif()
-
-set(_INCLUDED_FILE 0)
-
-# Load compiler-specific information.
-if(CMAKE_C_COMPILER_ID)
- include(Compiler/${CMAKE_C_COMPILER_ID}-C OPTIONAL)
-endif()
-
-set(CMAKE_BASE_NAME)
-get_filename_component(CMAKE_BASE_NAME "${CMAKE_C_COMPILER}" NAME_WE)
-if(CMAKE_COMPILER_IS_GNUCC)
- set(CMAKE_BASE_NAME gcc)
-endif()
-
-
-# load a hardware specific file, mostly useful for embedded compilers
-if(CMAKE_SYSTEM_PROCESSOR)
- if(CMAKE_C_COMPILER_ID)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
- endif()
- if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
- endif ()
-endif()
-
-
-# load the system- and compiler specific files
-if(CMAKE_C_COMPILER_ID)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C
- OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
-endif()
-if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}
- OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
-endif ()
-
-# load any compiler-wrapper specific information
-if (CMAKE_C_COMPILER_WRAPPER)
- __cmake_include_compiler_wrapper(C)
-endif ()
-
-# We specify the compiler information in the system file for some
-# platforms, but this language may not have been enabled when the file
-# was first included. Include it again to get the language info.
-# Remove this when all compiler info is removed from system files.
-if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_SYSTEM_NAME} OPTIONAL)
-endif ()
-
-if(CMAKE_C_SIZEOF_DATA_PTR)
- foreach(f ${CMAKE_C_ABI_FILES})
- include(${f})
- endforeach()
- unset(CMAKE_C_ABI_FILES)
-endif()
-
-# This should be included before the _INIT variables are
-# used to initialize the cache. Since the rule variables
-# have if blocks on them, users can still define them here.
-# But, it should still be after the platform file so changes can
-# be made to those values.
-
-if(CMAKE_USER_MAKE_RULES_OVERRIDE)
- # Save the full path of the file so try_compile can use it.
- include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
- set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
-endif()
-
-if(CMAKE_USER_MAKE_RULES_OVERRIDE_C)
- # Save the full path of the file so try_compile can use it.
- include(${CMAKE_USER_MAKE_RULES_OVERRIDE_C} RESULT_VARIABLE _override)
- set(CMAKE_USER_MAKE_RULES_OVERRIDE_C "${_override}")
-endif()
-
-
-# for most systems a module is the same as a shared library
-# so unless the variable CMAKE_MODULE_EXISTS is set just
-# copy the values from the LIBRARY variables
-if(NOT CMAKE_MODULE_EXISTS)
- set(CMAKE_SHARED_MODULE_C_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS})
- set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS})
-endif()
-
-set(CMAKE_C_FLAGS_INIT "$ENV{CFLAGS} ${CMAKE_C_FLAGS_INIT}")
-
-cmake_initialize_per_config_variable(CMAKE_C_FLAGS "Flags used by the C compiler")
-
-if(CMAKE_C_STANDARD_LIBRARIES_INIT)
- set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES_INIT}"
- CACHE STRING "Libraries linked by default with all C applications.")
- mark_as_advanced(CMAKE_C_STANDARD_LIBRARIES)
-endif()
-
-include(CMakeCommonLanguageInclude)
-
-# now define the following rule variables
-
-# CMAKE_C_CREATE_SHARED_LIBRARY
-# CMAKE_C_CREATE_SHARED_MODULE
-# CMAKE_C_COMPILE_OBJECT
-# CMAKE_C_LINK_EXECUTABLE
-
-# variables supplied by the generator at use time
-# <TARGET>
-# <TARGET_BASE> the target without the suffix
-# <OBJECTS>
-# <OBJECT>
-# <LINK_LIBRARIES>
-# <FLAGS>
-# <LINK_FLAGS>
-
-# C compiler information
-# <CMAKE_C_COMPILER>
-# <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS>
-# <CMAKE_SHARED_MODULE_CREATE_C_FLAGS>
-# <CMAKE_C_LINK_FLAGS>
-
-# Static library tools
-# <CMAKE_AR>
-# <CMAKE_RANLIB>
-
-
-# create a C shared library
-if(NOT CMAKE_C_CREATE_SHARED_LIBRARY)
- set(CMAKE_C_CREATE_SHARED_LIBRARY
- "<CMAKE_C_COMPILER> <CMAKE_SHARED_LIBRARY_C_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
-endif()
-
-# create a C shared module just copy the shared library rule
-if(NOT CMAKE_C_CREATE_SHARED_MODULE)
- set(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_C_CREATE_SHARED_LIBRARY})
-endif()
-
-# Create a static archive incrementally for large object file counts.
-# If CMAKE_C_CREATE_STATIC_LIBRARY is set it will override these.
-if(NOT DEFINED CMAKE_C_ARCHIVE_CREATE)
- set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
-endif()
-if(NOT DEFINED CMAKE_C_ARCHIVE_APPEND)
- set(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
-endif()
-if(NOT DEFINED CMAKE_C_ARCHIVE_FINISH)
- set(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
-endif()
-
-# compile a C file into an object file
-if(NOT CMAKE_C_COMPILE_OBJECT)
- set(CMAKE_C_COMPILE_OBJECT
- "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
-endif()
-
-if(NOT CMAKE_C_LINK_EXECUTABLE)
- set(CMAKE_C_LINK_EXECUTABLE
- "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RUNTIME_C_FLAG)
- set(CMAKE_EXECUTABLE_RUNTIME_C_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RUNTIME_C_FLAG_SEP)
- set(CMAKE_EXECUTABLE_RUNTIME_C_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RPATH_LINK_C_FLAG)
- set(CMAKE_EXECUTABLE_RPATH_LINK_C_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG})
-endif()
-
-set(CMAKE_C_INFORMATION_LOADED 1)
-
-
diff --git a/share/cmake-3.16/Modules/CMakeCSharpInformation.cmake b/share/cmake-3.16/Modules/CMakeCSharpInformation.cmake
deleted file mode 100644
index 48e1a1e..0000000
--- a/share/cmake-3.16/Modules/CMakeCSharpInformation.cmake
+++ /dev/null
@@ -1,67 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-# This file sets the basic flags for the C# language in CMake.
-# It also loads the available platform file for the system-compiler
-# if it exists.
-
-set(CMAKE_BASE_NAME)
-get_filename_component(CMAKE_BASE_NAME "${CMAKE_CSharp_COMPILER}" NAME_WE)
-
-set(CMAKE_BUILD_TYPE_INIT Debug)
-
-set(CMAKE_CSharp_FLAGS_INIT "/define:TRACE /langversion:3")
-set(CMAKE_CSharp_FLAGS_DEBUG_INIT "/debug:full /optimize- /warn:3 /errorreport:prompt /define:DEBUG")
-set(CMAKE_CSharp_FLAGS_RELEASE_INIT "/debug:none /optimize /warn:1 /errorreport:queue")
-set(CMAKE_CSharp_FLAGS_RELWITHDEBINFO_INIT "/debug:full /optimize-")
-set(CMAKE_CSharp_FLAGS_MINSIZEREL_INIT "/debug:none /optimize")
-set(CMAKE_CSharp_LINKER_SUPPORTS_PDB ON)
-
-set(CMAKE_CSharp_STANDARD_LIBRARIES_INIT "System")
-
-if(CMAKE_SIZEOF_VOID_P EQUAL 4)
- set(CMAKE_CSharp_FLAGS_INIT "/platform:x86 ${CMAKE_CSharp_FLAGS_INIT}")
-else()
- set(CMAKE_CSharp_FLAGS_INIT "/platform:x64 ${CMAKE_CSharp_FLAGS_INIT}")
-endif()
-
-# This should be included before the _INIT variables are
-# used to initialize the cache. Since the rule variables
-# have if blocks on them, users can still define them here.
-# But, it should still be after the platform file so changes can
-# be made to those values.
-
-# for most systems a module is the same as a shared library
-# so unless the variable CMAKE_MODULE_EXISTS is set just
-# copy the values from the LIBRARY variables
-if(NOT CMAKE_MODULE_EXISTS)
- set(CMAKE_SHARED_MODULE_CSharp_FLAGS ${CMAKE_SHARED_LIBRARY_CSharp_FLAGS})
- set(CMAKE_SHARED_MODULE_CREATE_CSharp_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_CSharp_FLAGS})
-endif()
-
-# add the flags to the cache based
-# on the initial values computed in the platform/*.cmake files
-# use _INIT variables so that this only happens the first time
-# and you can set these flags in the cmake cache
-set(CMAKE_CSharp_FLAGS_INIT "$ENV{CSFLAGS} ${CMAKE_CSharp_FLAGS_INIT}")
-
-cmake_initialize_per_config_variable(CMAKE_CSharp_FLAGS "Flags used by the C# compiler")
-
-if(CMAKE_CSharp_STANDARD_LIBRARIES_INIT)
- set(CMAKE_CSharp_STANDARD_LIBRARIES "${CMAKE_CSharp_STANDARD_LIBRARIES_INIT}"
- CACHE STRING "Libraries linked by default with all C# applications.")
- mark_as_advanced(CMAKE_CSharp_STANDARD_LIBRARIES)
-endif()
-
-# set missing flags (if they are not defined). This is needed in the
-# unlikely case that you have only C# and no C/C++ targets in your
-# project.
-cmake_initialize_per_config_variable(CMAKE_EXE_LINKER_FLAGS "Flags used by the linker")
-cmake_initialize_per_config_variable(CMAKE_SHARED_LINKER_FLAGS "Flags used by the linker during the creation of shared libraries")
-
-set(CMAKE_CSharp_CREATE_SHARED_LIBRARY "CSharp_NO_CREATE_SHARED_LIBRARY")
-set(CMAKE_CSharp_CREATE_SHARED_MODULE "CSharp_NO_CREATE_SHARED_MODULE")
-set(CMAKE_CSharp_LINK_EXECUTABLE "CSharp_NO_LINK_EXECUTABLE")
-
-set(CMAKE_CSharp_USE_RESPONSE_FILE_FOR_OBJECTS 1)
-set(CMAKE_CSharp_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.16/Modules/CMakeCUDACompiler.cmake.in b/share/cmake-3.16/Modules/CMakeCUDACompiler.cmake.in
deleted file mode 100644
index 711129a..0000000
--- a/share/cmake-3.16/Modules/CMakeCUDACompiler.cmake.in
+++ /dev/null
@@ -1,32 +0,0 @@
-set(CMAKE_CUDA_COMPILER "@CMAKE_CUDA_COMPILER@")
-set(CMAKE_CUDA_HOST_COMPILER "@CMAKE_CUDA_HOST_COMPILER@")
-set(CMAKE_CUDA_HOST_LINK_LAUNCHER "@CMAKE_CUDA_HOST_LINK_LAUNCHER@")
-set(CMAKE_CUDA_COMPILER_ID "@CMAKE_CUDA_COMPILER_ID@")
-set(CMAKE_CUDA_COMPILER_VERSION "@CMAKE_CUDA_COMPILER_VERSION@")
-set(CMAKE_CUDA_STANDARD_COMPUTED_DEFAULT "@CMAKE_CUDA_STANDARD_COMPUTED_DEFAULT@")
-set(CMAKE_CUDA_SIMULATE_ID "@CMAKE_CUDA_SIMULATE_ID@")
-set(CMAKE_CUDA_SIMULATE_VERSION "@CMAKE_CUDA_SIMULATE_VERSION@")
-@SET_MSVC_CUDA_ARCHITECTURE_ID@
-
-set(CMAKE_CUDA_COMPILER_ENV_VAR "CUDACXX")
-set(CMAKE_CUDA_HOST_COMPILER_ENV_VAR "CUDAHOSTCXX")
-
-set(CMAKE_CUDA_COMPILER_LOADED 1)
-set(CMAKE_CUDA_COMPILER_ID_RUN 1)
-set(CMAKE_CUDA_SOURCE_FILE_EXTENSIONS cu)
-set(CMAKE_CUDA_LINKER_PREFERENCE 15)
-set(CMAKE_CUDA_LINKER_PREFERENCE_PROPAGATES 1)
-
-set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "@CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES@")
-
-set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "@CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES@")
-set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "@CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES@")
-set(CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "@CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES@")
-
-set(CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES "@CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES@")
-set(CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES "@CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES@")
-set(CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES "@CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES@")
-set(CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "@CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES@")
-
-set(CMAKE_LINKER "@CMAKE_LINKER@")
-set(CMAKE_MT "@CMAKE_MT@")
diff --git a/share/cmake-3.16/Modules/CMakeCUDACompilerId.cu.in b/share/cmake-3.16/Modules/CMakeCUDACompilerId.cu.in
deleted file mode 100644
index 6eda924..0000000
--- a/share/cmake-3.16/Modules/CMakeCUDACompilerId.cu.in
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef __CUDACC__
-# error "A C or C++ compiler has been selected for CUDA"
-#endif
-
-@CMAKE_CUDA_COMPILER_ID_CONTENT@
-
-/* Construct the string literal in pieces to prevent the source from
- getting matched. Store it in a pointer rather than an array
- because some compilers will just produce instructions to fill the
- array rather than assigning a pointer to a static array. */
-char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
-#ifdef SIMULATE_ID
-char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
-#endif
-
-@CMAKE_CUDA_COMPILER_ID_PLATFORM_CONTENT@
-@CMAKE_CUDA_COMPILER_ID_ERROR_FOR_TEST@
-
-const char* info_language_dialect_default = "INFO" ":" "dialect_default["
-#if __cplusplus > 201703L
- "20"
-#elif __cplusplus >= 201703L
- "17"
-#elif __cplusplus >= 201402L
- "14"
-#elif __cplusplus >= 201103L
- "11"
-#else
- "98"
-#endif
-"]";
-
-/*--------------------------------------------------------------------------*/
-
-int main(int argc, char* argv[])
-{
- int require = 0;
- require += info_compiler[argc];
- require += info_platform[argc];
-#ifdef COMPILER_VERSION_MAJOR
- require += info_version[argc];
-#endif
-#ifdef SIMULATE_ID
- require += info_simulate[argc];
-#endif
-#ifdef SIMULATE_VERSION_MAJOR
- require += info_simulate_version[argc];
-#endif
- require += info_language_dialect_default[argc];
- (void)argv;
- return require;
-}
diff --git a/share/cmake-3.16/Modules/CMakeCUDAInformation.cmake b/share/cmake-3.16/Modules/CMakeCUDAInformation.cmake
deleted file mode 100644
index b0d80d1..0000000
--- a/share/cmake-3.16/Modules/CMakeCUDAInformation.cmake
+++ /dev/null
@@ -1,208 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-if(UNIX)
- set(CMAKE_CUDA_OUTPUT_EXTENSION .o)
-else()
- set(CMAKE_CUDA_OUTPUT_EXTENSION .obj)
-endif()
-set(CMAKE_INCLUDE_FLAG_CUDA "-I")
-
-# Load compiler-specific information.
-if(CMAKE_CUDA_COMPILER_ID)
- include(Compiler/${CMAKE_CUDA_COMPILER_ID}-CUDA OPTIONAL)
-endif()
-
-# load the system- and compiler specific files
-if(CMAKE_CUDA_COMPILER_ID)
- # load a hardware specific file, mostly useful for embedded compilers
- if(CMAKE_SYSTEM_PROCESSOR)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_CUDA_COMPILER_ID}-CUDA-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
- endif()
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_CUDA_COMPILER_ID}-CUDA OPTIONAL)
-endif()
-
-
-if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG)
- set(CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG})
-endif()
-
-if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG_SEP)
- set(CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP})
-endif()
-
-if(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_CUDA_FLAG)
- set(CMAKE_SHARED_LIBRARY_RPATH_LINK_CUDA_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_EXE_EXPORTS_CUDA_FLAG)
- set(CMAKE_EXE_EXPORTS_CUDA_FLAG ${CMAKE_EXE_EXPORTS_C_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_SONAME_CUDA_FLAG)
- set(CMAKE_SHARED_LIBRARY_SONAME_CUDA_FLAG ${CMAKE_SHARED_LIBRARY_SONAME_C_FLAG})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RUNTIME_CUDA_FLAG)
- set(CMAKE_EXECUTABLE_RUNTIME_CUDA_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RUNTIME_CUDA_FLAG_SEP)
- set(CMAKE_EXECUTABLE_RUNTIME_CUDA_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG_SEP})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RPATH_LINK_CUDA_FLAG)
- set(CMAKE_EXECUTABLE_RPATH_LINK_CUDA_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_CUDA_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_CUDA_WITH_RUNTIME_PATH)
- set(CMAKE_SHARED_LIBRARY_LINK_CUDA_WITH_RUNTIME_PATH ${CMAKE_SHARED_LIBRARY_LINK_C_WITH_RUNTIME_PATH})
-endif()
-
-
-# for most systems a module is the same as a shared library
-# so unless the variable CMAKE_MODULE_EXISTS is set just
-# copy the values from the LIBRARY variables
-if(NOT CMAKE_MODULE_EXISTS)
- set(CMAKE_SHARED_MODULE_CUDA_FLAGS ${CMAKE_SHARED_LIBRARY_CUDA_FLAGS})
- set(CMAKE_SHARED_MODULE_CREATE_CUDA_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS})
-endif()
-
-# add the flags to the cache based
-# on the initial values computed in the platform/*.cmake files
-# use _INIT variables so that this only happens the first time
-# and you can set these flags in the cmake cache
-set(CMAKE_CUDA_FLAGS_INIT "$ENV{CUDAFLAGS} ${CMAKE_CUDA_FLAGS_INIT}")
-
-cmake_initialize_per_config_variable(CMAKE_CUDA_FLAGS "Flags used by the CUDA compiler")
-
-if(CMAKE_CUDA_STANDARD_LIBRARIES_INIT)
- set(CMAKE_CUDA_STANDARD_LIBRARIES "${CMAKE_CUDA_STANDARD_LIBRARIES_INIT}"
- CACHE STRING "Libraries linked by default with all CUDA applications.")
- mark_as_advanced(CMAKE_CUDA_STANDARD_LIBRARIES)
-endif()
-
-include(CMakeCommonLanguageInclude)
-
-# now define the following rules:
-# CMAKE_CUDA_CREATE_SHARED_LIBRARY
-# CMAKE_CUDA_CREATE_SHARED_MODULE
-# CMAKE_CUDA_COMPILE_WHOLE_COMPILATION
-# CMAKE_CUDA_COMPILE_PTX_COMPILATION
-# CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION
-# CMAKE_CUDA_LINK_EXECUTABLE
-
-if(CMAKE_CUDA_HOST_COMPILER)
- set(CMAKE_CUDA_HOST_FLAGS "-ccbin=<CMAKE_CUDA_HOST_COMPILER>")
-else()
- set(CMAKE_CUDA_HOST_FLAGS "")
-endif()
-
-set(__IMPLICT_LINKS )
-foreach(dir ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
- string(APPEND __IMPLICT_LINKS " -L\"${dir}\"")
-endforeach()
-foreach(lib ${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES})
- if(${lib} MATCHES "/")
- string(APPEND __IMPLICT_LINKS " \"${lib}\"")
- else()
- string(APPEND __IMPLICT_LINKS " -l${lib}")
- endif()
-endforeach()
-
-# create a shared library
-if(NOT CMAKE_CUDA_CREATE_SHARED_LIBRARY)
- set(CMAKE_CUDA_CREATE_SHARED_LIBRARY
- "<CMAKE_CUDA_HOST_LINK_LAUNCHER> <CMAKE_SHARED_LIBRARY_CUDA_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>${__IMPLICT_LINKS}")
-endif()
-
-# create a shared module copy the shared library rule by default
-if(NOT CMAKE_CUDA_CREATE_SHARED_MODULE)
- set(CMAKE_CUDA_CREATE_SHARED_MODULE ${CMAKE_CUDA_CREATE_SHARED_LIBRARY})
-endif()
-
-# Create a static archive incrementally for large object file counts.
-if(NOT DEFINED CMAKE_CUDA_ARCHIVE_CREATE)
- set(CMAKE_CUDA_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
-endif()
-if(NOT DEFINED CMAKE_CUDA_ARCHIVE_APPEND)
- set(CMAKE_CUDA_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
-endif()
-if(NOT DEFINED CMAKE_CUDA_ARCHIVE_FINISH)
- set(CMAKE_CUDA_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
-endif()
-
-#Specify how to compile when ptx has been requested
-if(NOT CMAKE_CUDA_COMPILE_PTX_COMPILATION)
- set(CMAKE_CUDA_COMPILE_PTX_COMPILATION
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -ptx <SOURCE> -o <OBJECT>")
-endif()
-
-#Specify how to compile when separable compilation has been requested
-if(NOT CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION)
- set(CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -dc <SOURCE> -o <OBJECT>")
-endif()
-
-#Specify how to compile when whole compilation has been requested
-if(NOT CMAKE_CUDA_COMPILE_WHOLE_COMPILATION)
- set(CMAKE_CUDA_COMPILE_WHOLE_COMPILATION
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -c <SOURCE> -o <OBJECT>")
-endif()
-
-if(CMAKE_GENERATOR STREQUAL "Ninja")
- set(CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -M <SOURCE> -MT <OBJECT> -o $DEP_FILE")
- #The Ninja generator uses the make file dependency files to determine what
- #files need to be recompiled. Unfortunately, nvcc doesn't support building
- #a source file and generating the dependencies of said file in a single
- #invocation. Instead we have to state that you need to chain two commands.
- #
- #The makefile generators uses the custom CMake dependency scanner, and thus
- #it is exempt from this logic.
- list(APPEND CMAKE_CUDA_COMPILE_PTX_COMPILATION "${CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION}")
- list(APPEND CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION "${CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION}")
- list(APPEND CMAKE_CUDA_COMPILE_WHOLE_COMPILATION "${CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION}")
-endif()
-
-# compile a cu file into an executable
-if(NOT CMAKE_CUDA_LINK_EXECUTABLE)
- set(CMAKE_CUDA_LINK_EXECUTABLE
- "<CMAKE_CUDA_HOST_LINK_LAUNCHER> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_LINKS}")
-endif()
-
-if( CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA" AND
- CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "8.0.0")
- set(_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS "-Wno-deprecated-gpu-targets")
-else()
- set(_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS "")
-endif()
-
-# Add implicit host link directories that contain device libraries
-# to the device link line.
-set(__IMPLICT_DLINK_DIRS ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
-if(__IMPLICT_DLINK_DIRS)
- list(REMOVE_ITEM __IMPLICT_DLINK_DIRS ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
-endif()
-set(__IMPLICT_DLINK_FLAGS )
-foreach(dir ${__IMPLICT_DLINK_DIRS})
- if(EXISTS "${dir}/libcurand_static.a")
- string(APPEND __IMPLICT_DLINK_FLAGS " -L\"${dir}\"")
- endif()
-endforeach()
-unset(__IMPLICT_DLINK_DIRS)
-
-#These are used when linking relocatable (dc) cuda code
-if(NOT CMAKE_CUDA_DEVICE_LINK_LIBRARY)
- set(CMAKE_CUDA_DEVICE_LINK_LIBRARY
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <LANGUAGE_COMPILE_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
-endif()
-if(NOT CMAKE_CUDA_DEVICE_LINK_EXECUTABLE)
- set(CMAKE_CUDA_DEVICE_LINK_EXECUTABLE
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
-endif()
-
-unset(_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS)
-unset(__IMPLICT_DLINK_FLAGS)
-
-set(CMAKE_CUDA_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.16/Modules/CMakeCXXInformation.cmake b/share/cmake-3.16/Modules/CMakeCXXInformation.cmake
deleted file mode 100644
index a896b99..0000000
--- a/share/cmake-3.16/Modules/CMakeCXXInformation.cmake
+++ /dev/null
@@ -1,277 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This file sets the basic flags for the C++ language in CMake.
-# It also loads the available platform file for the system-compiler
-# if it exists.
-# It also loads a system - compiler - processor (or target hardware)
-# specific file, which is mainly useful for crosscompiling and embedded systems.
-
-include(CMakeLanguageInformation)
-
-# some compilers use different extensions (e.g. sdcc uses .rel)
-# so set the extension here first so it can be overridden by the compiler specific file
-if(UNIX)
- set(CMAKE_CXX_OUTPUT_EXTENSION .o)
-else()
- set(CMAKE_CXX_OUTPUT_EXTENSION .obj)
-endif()
-
-set(_INCLUDED_FILE 0)
-
-# Load compiler-specific information.
-if(CMAKE_CXX_COMPILER_ID)
- include(Compiler/${CMAKE_CXX_COMPILER_ID}-CXX OPTIONAL)
-endif()
-
-set(CMAKE_BASE_NAME)
-get_filename_component(CMAKE_BASE_NAME "${CMAKE_CXX_COMPILER}" NAME_WE)
-# since the gnu compiler has several names force g++
-if(CMAKE_COMPILER_IS_GNUCXX)
- set(CMAKE_BASE_NAME g++)
-endif()
-
-
-# load a hardware specific file, mostly useful for embedded compilers
-if(CMAKE_SYSTEM_PROCESSOR)
- if(CMAKE_CXX_COMPILER_ID)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
- endif()
- if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
- endif ()
-endif()
-
-# load the system- and compiler specific files
-if(CMAKE_CXX_COMPILER_ID)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
-endif()
-if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL
- RESULT_VARIABLE _INCLUDED_FILE)
-endif ()
-
-# load any compiler-wrapper specific information
-if (CMAKE_CXX_COMPILER_WRAPPER)
- __cmake_include_compiler_wrapper(CXX)
-endif ()
-
-# We specify the compiler information in the system file for some
-# platforms, but this language may not have been enabled when the file
-# was first included. Include it again to get the language info.
-# Remove this when all compiler info is removed from system files.
-if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_SYSTEM_NAME} OPTIONAL)
-endif ()
-
-if(CMAKE_CXX_SIZEOF_DATA_PTR)
- foreach(f ${CMAKE_CXX_ABI_FILES})
- include(${f})
- endforeach()
- unset(CMAKE_CXX_ABI_FILES)
-endif()
-
-# This should be included before the _INIT variables are
-# used to initialize the cache. Since the rule variables
-# have if blocks on them, users can still define them here.
-# But, it should still be after the platform file so changes can
-# be made to those values.
-
-if(CMAKE_USER_MAKE_RULES_OVERRIDE)
- # Save the full path of the file so try_compile can use it.
- include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
- set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
-endif()
-
-if(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX)
- # Save the full path of the file so try_compile can use it.
- include(${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX} RESULT_VARIABLE _override)
- set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX "${_override}")
-endif()
-
-
-# Create a set of shared library variable specific to C++
-# For 90% of the systems, these are the same flags as the C versions
-# so if these are not set just copy the flags from the c version
-if(NOT CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS)
- set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS})
-endif()
-
-if(NOT CMAKE_CXX_COMPILE_OPTIONS_PIC)
- set(CMAKE_CXX_COMPILE_OPTIONS_PIC ${CMAKE_C_COMPILE_OPTIONS_PIC})
-endif()
-
-if(NOT CMAKE_CXX_COMPILE_OPTIONS_PIE)
- set(CMAKE_CXX_COMPILE_OPTIONS_PIE ${CMAKE_C_COMPILE_OPTIONS_PIE})
-endif()
-if(NOT CMAKE_CXX_LINK_OPTIONS_PIE)
- set(CMAKE_CXX_LINK_OPTIONS_PIE ${CMAKE_C_LINK_OPTIONS_PIE})
-endif()
-if(NOT CMAKE_CXX_LINK_OPTIONS_NO_PIE)
- set(CMAKE_CXX_LINK_OPTIONS_NO_PIE ${CMAKE_C_LINK_OPTIONS_NO_PIE})
-endif()
-
-if(NOT CMAKE_CXX_COMPILE_OPTIONS_DLL)
- set(CMAKE_CXX_COMPILE_OPTIONS_DLL ${CMAKE_C_COMPILE_OPTIONS_DLL})
-endif()
-
-if(NOT CMAKE_SHARED_LIBRARY_CXX_FLAGS)
- set(CMAKE_SHARED_LIBRARY_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS)
- set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS})
-endif()
-
-if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG)
- set(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG})
-endif()
-
-if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP)
- set(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP})
-endif()
-
-if(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_CXX_FLAG)
- set(CMAKE_SHARED_LIBRARY_RPATH_LINK_CXX_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_EXE_EXPORTS_CXX_FLAG)
- set(CMAKE_EXE_EXPORTS_CXX_FLAG ${CMAKE_EXE_EXPORTS_C_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG)
- set(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG ${CMAKE_SHARED_LIBRARY_SONAME_C_FLAG})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG)
- set(CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG_SEP)
- set(CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RPATH_LINK_CXX_FLAG)
- set(CMAKE_EXECUTABLE_RPATH_LINK_CXX_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_CXX_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_CXX_WITH_RUNTIME_PATH)
- set(CMAKE_SHARED_LIBRARY_LINK_CXX_WITH_RUNTIME_PATH ${CMAKE_SHARED_LIBRARY_LINK_C_WITH_RUNTIME_PATH})
-endif()
-
-if(NOT CMAKE_INCLUDE_FLAG_CXX)
- set(CMAKE_INCLUDE_FLAG_CXX ${CMAKE_INCLUDE_FLAG_C})
-endif()
-
-# for most systems a module is the same as a shared library
-# so unless the variable CMAKE_MODULE_EXISTS is set just
-# copy the values from the LIBRARY variables
-if(NOT CMAKE_MODULE_EXISTS)
- set(CMAKE_SHARED_MODULE_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS})
- set(CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS})
-endif()
-
-# repeat for modules
-if(NOT CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS)
- set(CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS ${CMAKE_SHARED_MODULE_CREATE_C_FLAGS})
-endif()
-
-if(NOT CMAKE_SHARED_MODULE_CXX_FLAGS)
- set(CMAKE_SHARED_MODULE_CXX_FLAGS ${CMAKE_SHARED_MODULE_C_FLAGS})
-endif()
-
-# Initialize CXX link type selection flags from C versions.
-foreach(type SHARED_LIBRARY SHARED_MODULE EXE)
- if(NOT CMAKE_${type}_LINK_STATIC_CXX_FLAGS)
- set(CMAKE_${type}_LINK_STATIC_CXX_FLAGS
- ${CMAKE_${type}_LINK_STATIC_C_FLAGS})
- endif()
- if(NOT CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS)
- set(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS
- ${CMAKE_${type}_LINK_DYNAMIC_C_FLAGS})
- endif()
-endforeach()
-
-# add the flags to the cache based
-# on the initial values computed in the platform/*.cmake files
-# use _INIT variables so that this only happens the first time
-# and you can set these flags in the cmake cache
-set(CMAKE_CXX_FLAGS_INIT "$ENV{CXXFLAGS} ${CMAKE_CXX_FLAGS_INIT}")
-
-cmake_initialize_per_config_variable(CMAKE_CXX_FLAGS "Flags used by the CXX compiler")
-
-if(CMAKE_CXX_STANDARD_LIBRARIES_INIT)
- set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES_INIT}"
- CACHE STRING "Libraries linked by default with all C++ applications.")
- mark_as_advanced(CMAKE_CXX_STANDARD_LIBRARIES)
-endif()
-
-include(CMakeCommonLanguageInclude)
-
-# now define the following rules:
-# CMAKE_CXX_CREATE_SHARED_LIBRARY
-# CMAKE_CXX_CREATE_SHARED_MODULE
-# CMAKE_CXX_COMPILE_OBJECT
-# CMAKE_CXX_LINK_EXECUTABLE
-
-# variables supplied by the generator at use time
-# <TARGET>
-# <TARGET_BASE> the target without the suffix
-# <OBJECTS>
-# <OBJECT>
-# <LINK_LIBRARIES>
-# <FLAGS>
-# <LINK_FLAGS>
-
-# CXX compiler information
-# <CMAKE_CXX_COMPILER>
-# <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS>
-# <CMAKE_CXX_SHARED_MODULE_CREATE_FLAGS>
-# <CMAKE_CXX_LINK_FLAGS>
-
-# Static library tools
-# <CMAKE_AR>
-# <CMAKE_RANLIB>
-
-
-# create a shared C++ library
-if(NOT CMAKE_CXX_CREATE_SHARED_LIBRARY)
- set(CMAKE_CXX_CREATE_SHARED_LIBRARY
- "<CMAKE_CXX_COMPILER> <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
-endif()
-
-# create a c++ shared module copy the shared library rule by default
-if(NOT CMAKE_CXX_CREATE_SHARED_MODULE)
- set(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_LIBRARY})
-endif()
-
-
-# Create a static archive incrementally for large object file counts.
-# If CMAKE_CXX_CREATE_STATIC_LIBRARY is set it will override these.
-if(NOT DEFINED CMAKE_CXX_ARCHIVE_CREATE)
- set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
-endif()
-if(NOT DEFINED CMAKE_CXX_ARCHIVE_APPEND)
- set(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
-endif()
-if(NOT DEFINED CMAKE_CXX_ARCHIVE_FINISH)
- set(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
-endif()
-
-# compile a C++ file into an object file
-if(NOT CMAKE_CXX_COMPILE_OBJECT)
- set(CMAKE_CXX_COMPILE_OBJECT
- "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
-endif()
-
-if(NOT CMAKE_CXX_LINK_EXECUTABLE)
- set(CMAKE_CXX_LINK_EXECUTABLE
- "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-endif()
-
-mark_as_advanced(
-CMAKE_VERBOSE_MAKEFILE
-)
-
-set(CMAKE_CXX_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake b/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
deleted file mode 100644
index e1ce617..0000000
--- a/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
+++ /dev/null
@@ -1,35 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# Do NOT include this module directly into any of your code. It is meant as
-# a library for Check*CompilerFlag.cmake modules. It's content may change in
-# any way between releases.
-
-macro (CHECK_COMPILER_FLAG_COMMON_PATTERNS _VAR)
- set(${_VAR}
- FAIL_REGEX "[Uu]nrecogni[sz]ed .*option" # GNU, NAG
- FAIL_REGEX "unknown .*option" # Clang
- FAIL_REGEX "optimization flag .* not supported" # Clang
- FAIL_REGEX "unknown argument ignored" # Clang (cl)
- FAIL_REGEX "ignoring unknown option" # MSVC, Intel
- FAIL_REGEX "warning D9002" # MSVC, any lang
- FAIL_REGEX "option.*not supported" # Intel
- FAIL_REGEX "invalid argument .*option" # Intel
- FAIL_REGEX "ignoring option .*argument required" # Intel
- FAIL_REGEX "ignoring option .*argument is of wrong type" # Intel
- FAIL_REGEX "[Uu]nknown option" # HP
- FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro
- FAIL_REGEX "command option .* is not recognized" # XL
- FAIL_REGEX "command option .* contains an incorrect subargument" # XL
- FAIL_REGEX "Option .* is not recognized. Option will be ignored." # XL
- FAIL_REGEX "not supported in this configuration. ignored" # AIX
- FAIL_REGEX "File with unknown suffix passed to linker" # PGI
- FAIL_REGEX "[Uu]nknown switch" # PGI
- FAIL_REGEX "WARNING: unknown flag:" # Open64
- FAIL_REGEX "Incorrect command line option:" # Borland
- FAIL_REGEX "Warning: illegal option" # SunStudio 12
- FAIL_REGEX "[Ww]arning: Invalid suboption" # Fujitsu
- FAIL_REGEX "An invalid option .* appears on the command line" # Cray
- )
-endmacro ()
diff --git a/share/cmake-3.16/Modules/CMakeDetermineCUDACompiler.cmake b/share/cmake-3.16/Modules/CMakeDetermineCUDACompiler.cmake
deleted file mode 100644
index 490d659..0000000
--- a/share/cmake-3.16/Modules/CMakeDetermineCUDACompiler.cmake
+++ /dev/null
@@ -1,225 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
-include(${CMAKE_ROOT}/Modules//CMakeParseImplicitLinkInfo.cmake)
-
-if( NOT ( ("${CMAKE_GENERATOR}" MATCHES "Make") OR
- ("${CMAKE_GENERATOR}" MATCHES "Ninja") OR
- ("${CMAKE_GENERATOR}" MATCHES "Visual Studio (1|[9][0-9])") ) )
- message(FATAL_ERROR "CUDA language not currently supported by \"${CMAKE_GENERATOR}\" generator")
-endif()
-
-if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
-else()
- if(NOT CMAKE_CUDA_COMPILER)
- set(CMAKE_CUDA_COMPILER_INIT NOTFOUND)
-
- # prefer the environment variable CUDACXX
- if(NOT $ENV{CUDACXX} STREQUAL "")
- get_filename_component(CMAKE_CUDA_COMPILER_INIT $ENV{CUDACXX} PROGRAM PROGRAM_ARGS CMAKE_CUDA_FLAGS_ENV_INIT)
- if(CMAKE_CUDA_FLAGS_ENV_INIT)
- set(CMAKE_CUDA_COMPILER_ARG1 "${CMAKE_CUDA_FLAGS_ENV_INIT}" CACHE STRING "First argument to CXX compiler")
- endif()
- if(NOT EXISTS ${CMAKE_CUDA_COMPILER_INIT})
- message(FATAL_ERROR "Could not find compiler set in environment variable CUDACXX:\n$ENV{CUDACXX}.\n${CMAKE_CUDA_COMPILER_INIT}")
- endif()
- endif()
-
- # finally list compilers to try
- if(NOT CMAKE_CUDA_COMPILER_INIT)
- set(CMAKE_CUDA_COMPILER_LIST nvcc)
- endif()
-
- _cmake_find_compiler(CUDA)
- else()
- _cmake_find_compiler_path(CUDA)
- endif()
-
- mark_as_advanced(CMAKE_CUDA_COMPILER)
-endif()
-
-#Allow the user to specify a host compiler
-if(NOT $ENV{CUDAHOSTCXX} STREQUAL "")
- get_filename_component(CMAKE_CUDA_HOST_COMPILER $ENV{CUDAHOSTCXX} PROGRAM)
- if(NOT EXISTS ${CMAKE_CUDA_HOST_COMPILER})
- message(FATAL_ERROR "Could not find compiler set in environment variable CUDAHOSTCXX:\n$ENV{CUDAHOSTCXX}.\n${CMAKE_CUDA_HOST_COMPILER}")
- endif()
-endif()
-
-# Build a small source file to identify the compiler.
-if(NOT CMAKE_CUDA_COMPILER_ID_RUN)
- set(CMAKE_CUDA_COMPILER_ID_RUN 1)
-
- # Try to identify the compiler.
- set(CMAKE_CUDA_COMPILER_ID)
- set(CMAKE_CUDA_PLATFORM_ID)
- file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
- CMAKE_CUDA_COMPILER_ID_PLATFORM_CONTENT)
-
- list(APPEND CMAKE_CUDA_COMPILER_ID_MATCH_VENDORS NVIDIA)
- set(CMAKE_CUDA_COMPILER_ID_MATCH_VENDOR_REGEX_NVIDIA "nvcc: NVIDIA \(R\) Cuda compiler driver")
-
- set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdCUDA/(\\./)?(CompilerIdCUDA.xctest/)?CompilerIdCUDA[ \t\n\\\"]")
- set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_INDEX 2)
-
- set(CMAKE_CUDA_COMPILER_ID_FLAGS_ALWAYS -v --keep --keep-dir tmp)
- if(CMAKE_CUDA_HOST_COMPILER)
- list(APPEND CMAKE_CUDA_COMPILER_ID_FLAGS_ALWAYS "-ccbin=${CMAKE_CUDA_HOST_COMPILER}")
- endif()
-
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
- CMAKE_DETERMINE_COMPILER_ID(CUDA CUDAFLAGS CMakeCUDACompilerId.cu)
-endif()
-
-set(_CMAKE_PROCESSING_LANGUAGE "CUDA")
-include(CMakeFindBinUtils)
-unset(_CMAKE_PROCESSING_LANGUAGE)
-
-if(MSVC_CUDA_ARCHITECTURE_ID)
- set(SET_MSVC_CUDA_ARCHITECTURE_ID
- "set(MSVC_CUDA_ARCHITECTURE_ID ${MSVC_CUDA_ARCHITECTURE_ID})")
-endif()
-
-if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
- set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${CMAKE_LINKER}")
- set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "")
- set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "")
- set(CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
-elseif(CMAKE_CUDA_COMPILER_ID STREQUAL NVIDIA)
- set(_nvcc_log "")
- string(REPLACE "\r" "" _nvcc_output_orig "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
- if(_nvcc_output_orig MATCHES "#\\\$ +PATH= *([^\n]*)\n")
- set(_nvcc_path "${CMAKE_MATCH_1}")
- string(APPEND _nvcc_log " found 'PATH=' string: [${_nvcc_path}]\n")
- string(REPLACE ":" ";" _nvcc_path "${_nvcc_path}")
- else()
- set(_nvcc_path "")
- string(REPLACE "\n" "\n " _nvcc_output_log "\n${_nvcc_output_orig}")
- string(APPEND _nvcc_log " no 'PATH=' string found in nvcc output:${_nvcc_output_log}\n")
- endif()
- if(_nvcc_output_orig MATCHES "#\\\$ +LIBRARIES= *([^\n]*)\n")
- set(_nvcc_libraries "${CMAKE_MATCH_1}")
- string(APPEND _nvcc_log " found 'LIBRARIES=' string: [${_nvcc_libraries}]\n")
- else()
- set(_nvcc_libraries "")
- string(REPLACE "\n" "\n " _nvcc_output_log "\n${_nvcc_output_orig}")
- string(APPEND _nvcc_log " no 'LIBRARIES=' string found in nvcc output:${_nvcc_output_log}\n")
- endif()
-
- set(_nvcc_link_line "")
- if(_nvcc_libraries)
- # Remove variable assignments.
- string(REGEX REPLACE "#\\\$ *[^= ]+=[^\n]*\n" "" _nvcc_output "${_nvcc_output_orig}")
- # Encode [] characters that break list expansion.
- string(REPLACE "[" "{==={" _nvcc_output "${_nvcc_output}")
- string(REPLACE "]" "}===}" _nvcc_output "${_nvcc_output}")
- # Split lines.
- string(REGEX REPLACE "\n+(#\\\$ )?" ";" _nvcc_output "${_nvcc_output}")
- foreach(line IN LISTS _nvcc_output)
- set(_nvcc_output_line "${line}")
- string(REPLACE "{==={" "[" _nvcc_output_line "${_nvcc_output_line}")
- string(REPLACE "}===}" "]" _nvcc_output_line "${_nvcc_output_line}")
- string(APPEND _nvcc_log " considering line: [${_nvcc_output_line}]\n")
- if("${_nvcc_output_line}" MATCHES "^ *nvlink")
- string(APPEND _nvcc_log " ignoring nvlink line\n")
- elseif(_nvcc_libraries)
- if("${_nvcc_output_line}" MATCHES "(@\"?tmp/a\\.exe\\.res\"?)")
- set(_nvcc_link_res_arg "${CMAKE_MATCH_1}")
- set(_nvcc_link_res "${CMAKE_PLATFORM_INFO_DIR}/CompilerIdCUDA/tmp/a.exe.res")
- if(EXISTS "${_nvcc_link_res}")
- file(READ "${_nvcc_link_res}" _nvcc_link_res_content)
- string(REPLACE "${_nvcc_link_res_arg}" "${_nvcc_link_res_content}" _nvcc_output_line "${_nvcc_output_line}")
- endif()
- endif()
- string(FIND "${_nvcc_output_line}" "${_nvcc_libraries}" _nvcc_libraries_pos)
- if(NOT _nvcc_libraries_pos EQUAL -1)
- set(_nvcc_link_line "${_nvcc_output_line}")
- string(APPEND _nvcc_log " extracted link line: [${_nvcc_link_line}]\n")
- endif()
- endif()
- endforeach()
- endif()
-
- if(_nvcc_link_line)
- if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
- set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${CMAKE_LINKER}")
- else()
- #extract the compiler that is being used for linking
- separate_arguments(_nvcc_link_line_args UNIX_COMMAND "${_nvcc_link_line}")
- list(GET _nvcc_link_line_args 0 _nvcc_host_link_launcher)
- if(IS_ABSOLUTE "${_nvcc_host_link_launcher}")
- string(APPEND _nvcc_log " extracted link launcher absolute path: [${_nvcc_host_link_launcher}]\n")
- set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${_nvcc_host_link_launcher}")
- else()
- string(APPEND _nvcc_log " extracted link launcher name: [${_nvcc_host_link_launcher}]\n")
- find_program(_nvcc_find_host_link_launcher
- NAMES ${_nvcc_host_link_launcher}
- PATHS ${_nvcc_path} NO_DEFAULT_PATH)
- find_program(_nvcc_find_host_link_launcher
- NAMES ${_nvcc_host_link_launcher})
- if(_nvcc_find_host_link_launcher)
- string(APPEND _nvcc_log " found link launcher absolute path: [${_nvcc_find_host_link_launcher}]\n")
- set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${_nvcc_find_host_link_launcher}")
- else()
- string(APPEND _nvcc_log " could not find link launcher absolute path\n")
- set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${_nvcc_host_link_launcher}")
- endif()
- unset(_nvcc_find_host_link_launcher CACHE)
- endif()
- endif()
-
- #prefix the line with cuda-fake-ld so that implicit link info believes it is
- #a link line
- set(_nvcc_link_line "cuda-fake-ld ${_nvcc_link_line}")
- CMAKE_PARSE_IMPLICIT_LINK_INFO("${_nvcc_link_line}"
- CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES
- CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES
- CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- log
- "${CMAKE_CUDA_IMPLICIT_OBJECT_REGEX}")
-
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Parsed CUDA nvcc implicit link information from above output:\n${_nvcc_log}\n${log}\n\n")
- else()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Failed to parsed CUDA nvcc implicit link information:\n${_nvcc_log}\n\n")
- message(FATAL_ERROR "Failed to extract nvcc implicit link line.")
- endif()
-
- set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES )
- if(_nvcc_output_orig MATCHES "#\\\$ +INCLUDES= *([^\n]*)\n")
- set(_nvcc_includes "${CMAKE_MATCH_1}")
- string(APPEND _nvcc_log " found 'INCLUDES=' string: [${_nvcc_includes}]\n")
- else()
- set(_nvcc_includes "")
- string(REPLACE "\n" "\n " _nvcc_output_log "\n${_nvcc_output_orig}")
- string(APPEND _nvcc_log " no 'INCLUDES=' string found in nvcc output:${_nvcc_output_log}\n")
- endif()
- if(_nvcc_includes)
- # across all operating system each include directory is prefixed with -I
- separate_arguments(_nvcc_output UNIX_COMMAND "${_nvcc_includes}")
- foreach(line IN LISTS _nvcc_output)
- string(REGEX REPLACE "^-I" "" line "${line}")
- get_filename_component(line "${line}" ABSOLUTE)
- list(APPEND CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "${line}")
- endforeach()
-
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Parsed CUDA nvcc include information from above output:\n${_nvcc_log}\n${log}\n\n")
- else()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Failed to detect CUDA nvcc include information:\n${_nvcc_log}\n\n")
- endif()
-
-
-endif()
-
-# configure all variables set in this file
-configure_file(${CMAKE_ROOT}/Modules/CMakeCUDACompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeCUDACompiler.cmake
- @ONLY
- )
-
-set(CMAKE_CUDA_COMPILER_ENV_VAR "CUDACXX")
-set(CMAKE_CUDA_HOST_COMPILER_ENV_VAR "CUDAHOSTCXX")
diff --git a/share/cmake-3.16/Modules/CMakeDetermineCompileFeatures.cmake b/share/cmake-3.16/Modules/CMakeDetermineCompileFeatures.cmake
deleted file mode 100644
index 01a81a1..0000000
--- a/share/cmake-3.16/Modules/CMakeDetermineCompileFeatures.cmake
+++ /dev/null
@@ -1,96 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-function(cmake_determine_compile_features lang)
-
- if(lang STREQUAL C AND COMMAND cmake_record_c_compile_features)
- message(STATUS "Detecting ${lang} compile features")
-
- set(CMAKE_C90_COMPILE_FEATURES)
- set(CMAKE_C99_COMPILE_FEATURES)
- set(CMAKE_C11_COMPILE_FEATURES)
-
- include("${CMAKE_ROOT}/Modules/Internal/FeatureTesting.cmake")
-
- cmake_record_c_compile_features()
-
- if(NOT _result EQUAL 0)
- message(STATUS "Detecting ${lang} compile features - failed")
- return()
- endif()
-
- if (CMAKE_C99_COMPILE_FEATURES AND CMAKE_C11_COMPILE_FEATURES)
- list(REMOVE_ITEM CMAKE_C11_COMPILE_FEATURES ${CMAKE_C99_COMPILE_FEATURES})
- endif()
- if (CMAKE_C90_COMPILE_FEATURES AND CMAKE_C99_COMPILE_FEATURES)
- list(REMOVE_ITEM CMAKE_C99_COMPILE_FEATURES ${CMAKE_C90_COMPILE_FEATURES})
- endif()
-
- if(NOT CMAKE_C_COMPILE_FEATURES)
- set(CMAKE_C_COMPILE_FEATURES
- ${CMAKE_C90_COMPILE_FEATURES}
- ${CMAKE_C99_COMPILE_FEATURES}
- ${CMAKE_C11_COMPILE_FEATURES}
- )
- endif()
-
- set(CMAKE_C_COMPILE_FEATURES ${CMAKE_C_COMPILE_FEATURES} PARENT_SCOPE)
- set(CMAKE_C90_COMPILE_FEATURES ${CMAKE_C90_COMPILE_FEATURES} PARENT_SCOPE)
- set(CMAKE_C99_COMPILE_FEATURES ${CMAKE_C99_COMPILE_FEATURES} PARENT_SCOPE)
- set(CMAKE_C11_COMPILE_FEATURES ${CMAKE_C11_COMPILE_FEATURES} PARENT_SCOPE)
-
- message(STATUS "Detecting ${lang} compile features - done")
-
- elseif(lang STREQUAL CXX AND COMMAND cmake_record_cxx_compile_features)
- message(STATUS "Detecting ${lang} compile features")
-
- set(CMAKE_CXX98_COMPILE_FEATURES)
- set(CMAKE_CXX11_COMPILE_FEATURES)
- set(CMAKE_CXX14_COMPILE_FEATURES)
- set(CMAKE_CXX17_COMPILE_FEATURES)
- set(CMAKE_CXX20_COMPILE_FEATURES)
-
- include("${CMAKE_ROOT}/Modules/Internal/FeatureTesting.cmake")
-
- cmake_record_cxx_compile_features()
-
- if(NOT _result EQUAL 0)
- message(STATUS "Detecting ${lang} compile features - failed")
- return()
- endif()
-
- if (CMAKE_CXX17_COMPILE_FEATURES AND CMAKE_CXX20_COMPILE_FEATURES)
- list(REMOVE_ITEM CMAKE_CXX20_COMPILE_FEATURES ${CMAKE_CXX17_COMPILE_FEATURES})
- endif()
- if (CMAKE_CXX14_COMPILE_FEATURES AND CMAKE_CXX17_COMPILE_FEATURES)
- list(REMOVE_ITEM CMAKE_CXX17_COMPILE_FEATURES ${CMAKE_CXX14_COMPILE_FEATURES})
- endif()
- if (CMAKE_CXX11_COMPILE_FEATURES AND CMAKE_CXX14_COMPILE_FEATURES)
- list(REMOVE_ITEM CMAKE_CXX14_COMPILE_FEATURES ${CMAKE_CXX11_COMPILE_FEATURES})
- endif()
- if (CMAKE_CXX98_COMPILE_FEATURES AND CMAKE_CXX11_COMPILE_FEATURES)
- list(REMOVE_ITEM CMAKE_CXX11_COMPILE_FEATURES ${CMAKE_CXX98_COMPILE_FEATURES})
- endif()
-
- if(NOT CMAKE_CXX_COMPILE_FEATURES)
- set(CMAKE_CXX_COMPILE_FEATURES
- ${CMAKE_CXX98_COMPILE_FEATURES}
- ${CMAKE_CXX11_COMPILE_FEATURES}
- ${CMAKE_CXX14_COMPILE_FEATURES}
- ${CMAKE_CXX17_COMPILE_FEATURES}
- ${CMAKE_CXX20_COMPILE_FEATURES}
- )
- endif()
-
- set(CMAKE_CXX_COMPILE_FEATURES ${CMAKE_CXX_COMPILE_FEATURES} PARENT_SCOPE)
- set(CMAKE_CXX98_COMPILE_FEATURES ${CMAKE_CXX98_COMPILE_FEATURES} PARENT_SCOPE)
- set(CMAKE_CXX11_COMPILE_FEATURES ${CMAKE_CXX11_COMPILE_FEATURES} PARENT_SCOPE)
- set(CMAKE_CXX14_COMPILE_FEATURES ${CMAKE_CXX14_COMPILE_FEATURES} PARENT_SCOPE)
- set(CMAKE_CXX17_COMPILE_FEATURES ${CMAKE_CXX17_COMPILE_FEATURES} PARENT_SCOPE)
- set(CMAKE_CXX20_COMPILE_FEATURES ${CMAKE_CXX20_COMPILE_FEATURES} PARENT_SCOPE)
-
- message(STATUS "Detecting ${lang} compile features - done")
- endif()
-
-endfunction()
diff --git a/share/cmake-3.16/Modules/CMakeDetermineCompilerABI.cmake b/share/cmake-3.16/Modules/CMakeDetermineCompilerABI.cmake
deleted file mode 100644
index 06f3ba2..0000000
--- a/share/cmake-3.16/Modules/CMakeDetermineCompilerABI.cmake
+++ /dev/null
@@ -1,174 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# Function to compile a source file to identify the compiler ABI.
-# This is used internally by CMake and should not be included by user
-# code.
-
-include(${CMAKE_ROOT}/Modules/CMakeParseImplicitIncludeInfo.cmake)
-include(${CMAKE_ROOT}/Modules/CMakeParseImplicitLinkInfo.cmake)
-include(CMakeTestCompilerCommon)
-
-function(CMAKE_DETERMINE_COMPILER_ABI lang src)
- if(NOT DEFINED CMAKE_${lang}_ABI_COMPILED)
- message(STATUS "Detecting ${lang} compiler ABI info")
-
- # Compile the ABI identification source.
- set(BIN "${CMAKE_PLATFORM_INFO_DIR}/CMakeDetermineCompilerABI_${lang}.bin")
- set(CMAKE_FLAGS )
- set(COMPILE_DEFINITIONS )
- if(DEFINED CMAKE_${lang}_VERBOSE_FLAG)
- set(CMAKE_FLAGS "-DEXE_LINKER_FLAGS=${CMAKE_${lang}_VERBOSE_FLAG}")
- set(COMPILE_DEFINITIONS "${CMAKE_${lang}_VERBOSE_FLAG}")
- endif()
- if(DEFINED CMAKE_${lang}_VERBOSE_COMPILE_FLAG)
- set(COMPILE_DEFINITIONS "${CMAKE_${lang}_VERBOSE_COMPILE_FLAG}")
- endif()
- if(NOT "x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xMSVC")
- # Avoid adding our own platform standard libraries for compilers
- # from which we might detect implicit link libraries.
- list(APPEND CMAKE_FLAGS "-DCMAKE_${lang}_STANDARD_LIBRARIES=")
- endif()
- __TestCompiler_setTryCompileTargetType()
-
- # Save the current LC_ALL, LC_MESSAGES, and LANG environment variables
- # and set them to "C" that way GCC's "search starts here" text is in
- # English and we can grok it.
- set(_orig_lc_all $ENV{LC_ALL})
- set(_orig_lc_messages $ENV{LC_MESSAGES})
- set(_orig_lang $ENV{LANG})
- set(ENV{LC_ALL} C)
- set(ENV{LC_MESSAGES} C)
- set(ENV{LANG} C)
-
- try_compile(CMAKE_${lang}_ABI_COMPILED
- ${CMAKE_BINARY_DIR} ${src}
- CMAKE_FLAGS ${CMAKE_FLAGS}
- # Ignore unused flags when we are just determining the ABI.
- "--no-warn-unused-cli"
- COMPILE_DEFINITIONS ${COMPILE_DEFINITIONS}
- OUTPUT_VARIABLE OUTPUT
- COPY_FILE "${BIN}"
- COPY_FILE_ERROR _copy_error
- __CMAKE_INTERNAL ABI
- )
-
- # Restore original LC_ALL, LC_MESSAGES, and LANG
- set(ENV{LC_ALL} ${_orig_lc_all})
- set(ENV{LC_MESSAGES} ${_orig_lc_messages})
- set(ENV{LANG} ${_orig_lang})
-
- # Move result from cache to normal variable.
- set(CMAKE_${lang}_ABI_COMPILED ${CMAKE_${lang}_ABI_COMPILED})
- unset(CMAKE_${lang}_ABI_COMPILED CACHE)
- set(CMAKE_${lang}_ABI_COMPILED ${CMAKE_${lang}_ABI_COMPILED} PARENT_SCOPE)
-
- # Load the resulting information strings.
- if(CMAKE_${lang}_ABI_COMPILED AND NOT _copy_error)
- message(STATUS "Detecting ${lang} compiler ABI info - done")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Detecting ${lang} compiler ABI info compiled with the following output:\n${OUTPUT}\n\n")
- file(STRINGS "${BIN}" ABI_STRINGS LIMIT_COUNT 2 REGEX "INFO:[A-Za-z0-9_]+\\[[^]]*\\]")
- foreach(info ${ABI_STRINGS})
- if("${info}" MATCHES "INFO:sizeof_dptr\\[0*([^]]*)\\]")
- set(ABI_SIZEOF_DPTR "${CMAKE_MATCH_1}")
- endif()
- if("${info}" MATCHES "INFO:abi\\[([^]]*)\\]")
- set(ABI_NAME "${CMAKE_MATCH_1}")
- endif()
- endforeach()
-
- if(ABI_SIZEOF_DPTR)
- set(CMAKE_${lang}_SIZEOF_DATA_PTR "${ABI_SIZEOF_DPTR}" PARENT_SCOPE)
- elseif(CMAKE_${lang}_SIZEOF_DATA_PTR_DEFAULT)
- set(CMAKE_${lang}_SIZEOF_DATA_PTR "${CMAKE_${lang}_SIZEOF_DATA_PTR_DEFAULT}" PARENT_SCOPE)
- endif()
-
- if(ABI_NAME)
- set(CMAKE_${lang}_COMPILER_ABI "${ABI_NAME}" PARENT_SCOPE)
- endif()
-
- # Parse implicit include directory for this language, if available.
- if(CMAKE_${lang}_VERBOSE_FLAG)
- set (implicit_incdirs "")
- cmake_parse_implicit_include_info("${OUTPUT}" "${lang}"
- implicit_incdirs log rv)
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Parsed ${lang} implicit include dir info from above output: rv=${rv}\n${log}\n\n")
- if("${rv}" STREQUAL "done")
- # Entries that we have been told to explicitly pass as standard include
- # directories will not be implicitly added by the compiler.
- if(CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES)
- list(REMOVE_ITEM implicit_incdirs ${CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES})
- endif()
-
- # We parsed implicit include directories, so override the default initializer.
- set(_CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT "${implicit_incdirs}")
- endif()
- endif()
- set(CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES "${_CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT}" PARENT_SCOPE)
-
- # Parse implicit linker information for this language, if available.
- set(implicit_dirs "")
- set(implicit_libs "")
- set(implicit_fwks "")
- if(CMAKE_${lang}_VERBOSE_FLAG)
- CMAKE_PARSE_IMPLICIT_LINK_INFO("${OUTPUT}" implicit_libs implicit_dirs implicit_fwks log
- "${CMAKE_${lang}_IMPLICIT_OBJECT_REGEX}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Parsed ${lang} implicit link information from above output:\n${log}\n\n")
- endif()
- # for VS IDE Intel Fortran we have to figure out the
- # implicit link path for the fortran run time using
- # a try-compile
- if("${lang}" MATCHES "Fortran"
- AND "${CMAKE_GENERATOR}" MATCHES "Visual Studio")
- set(_desc "Determine Intel Fortran Compiler Implicit Link Path")
- message(STATUS "${_desc}")
- # Build a sample project which reports symbols.
- try_compile(IFORT_LIB_PATH_COMPILED
- ${CMAKE_BINARY_DIR}/CMakeFiles/IntelVSImplicitPath
- ${CMAKE_ROOT}/Modules/IntelVSImplicitPath
- IntelFortranImplicit
- CMAKE_FLAGS
- "-DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}"
- OUTPUT_VARIABLE _output)
- file(WRITE
- "${CMAKE_BINARY_DIR}/CMakeFiles/IntelVSImplicitPath/output.txt"
- "${_output}")
- include(${CMAKE_BINARY_DIR}/CMakeFiles/IntelVSImplicitPath/output.cmake OPTIONAL)
- set(_desc "Determine Intel Fortran Compiler Implicit Link Path -- done")
- message(STATUS "${_desc}")
- endif()
-
- # Implicit link libraries cannot be used explicitly for multiple
- # OS X architectures, so we skip it.
- if(DEFINED CMAKE_OSX_ARCHITECTURES)
- if("${CMAKE_OSX_ARCHITECTURES}" MATCHES ";")
- set(implicit_libs "")
- endif()
- endif()
-
- set(CMAKE_${lang}_IMPLICIT_LINK_LIBRARIES "${implicit_libs}" PARENT_SCOPE)
- set(CMAKE_${lang}_IMPLICIT_LINK_DIRECTORIES "${implicit_dirs}" PARENT_SCOPE)
- set(CMAKE_${lang}_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "${implicit_fwks}" PARENT_SCOPE)
-
- # Detect library architecture directory name.
- if(CMAKE_LIBRARY_ARCHITECTURE_REGEX)
- foreach(dir ${implicit_dirs})
- if("${dir}" MATCHES "/lib/${CMAKE_LIBRARY_ARCHITECTURE_REGEX}$")
- get_filename_component(arch "${dir}" NAME)
- set(CMAKE_${lang}_LIBRARY_ARCHITECTURE "${arch}" PARENT_SCOPE)
- break()
- endif()
- endforeach()
- endif()
-
- else()
- message(STATUS "Detecting ${lang} compiler ABI info - failed")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Detecting ${lang} compiler ABI info failed to compile with the following output:\n${OUTPUT}\n${_copy_error}\n\n")
- endif()
- endif()
-endfunction()
diff --git a/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake b/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake
deleted file mode 100644
index 7b571c3..0000000
--- a/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake
+++ /dev/null
@@ -1,910 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# Function to compile a source file to identify the compiler. This is
-# used internally by CMake and should not be included by user code.
-# If successful, sets CMAKE_<lang>_COMPILER_ID and CMAKE_<lang>_PLATFORM_ID
-
-function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
- # Make sure the compiler arguments are clean.
- string(STRIP "${CMAKE_${lang}_COMPILER_ARG1}" CMAKE_${lang}_COMPILER_ID_ARG1)
- string(REGEX REPLACE " +" ";" CMAKE_${lang}_COMPILER_ID_ARG1 "${CMAKE_${lang}_COMPILER_ID_ARG1}")
-
- # Make sure user-specified compiler flags are used.
- if(CMAKE_${lang}_FLAGS)
- set(CMAKE_${lang}_COMPILER_ID_FLAGS ${CMAKE_${lang}_FLAGS})
- else()
- set(CMAKE_${lang}_COMPILER_ID_FLAGS $ENV{${flagvar}})
- endif()
- string(REPLACE " " ";" CMAKE_${lang}_COMPILER_ID_FLAGS_LIST "${CMAKE_${lang}_COMPILER_ID_FLAGS}")
-
- # Compute the directory in which to run the test.
- set(CMAKE_${lang}_COMPILER_ID_DIR ${CMAKE_PLATFORM_INFO_DIR}/CompilerId${lang})
-
- # Try building with no extra flags and then try each set
- # of helper flags. Stop when the compiler is identified.
- foreach(userflags "${CMAKE_${lang}_COMPILER_ID_FLAGS_LIST}" "")
- foreach(testflags ${CMAKE_${lang}_COMPILER_ID_TEST_FLAGS_FIRST}
- ""
- ${CMAKE_${lang}_COMPILER_ID_TEST_FLAGS})
- separate_arguments(testflags UNIX_COMMAND "${testflags}")
- CMAKE_DETERMINE_COMPILER_ID_BUILD("${lang}" "${testflags}" "${userflags}" "${src}")
- CMAKE_DETERMINE_COMPILER_ID_MATCH_VENDOR("${lang}" "${COMPILER_${lang}_PRODUCED_OUTPUT}")
- if(CMAKE_${lang}_COMPILER_ID)
- break()
- endif()
- foreach(file ${COMPILER_${lang}_PRODUCED_FILES})
- CMAKE_DETERMINE_COMPILER_ID_CHECK("${lang}" "${CMAKE_${lang}_COMPILER_ID_DIR}/${file}" "${src}")
- endforeach()
- if(CMAKE_${lang}_COMPILER_ID)
- break()
- endif()
- endforeach()
- if(CMAKE_${lang}_COMPILER_ID)
- break()
- endif()
- endforeach()
-
- # Check if compiler id detection gave us the compiler tool.
- if(CMAKE_${lang}_COMPILER_ID_TOOL)
- set(CMAKE_${lang}_COMPILER "${CMAKE_${lang}_COMPILER_ID_TOOL}")
- set(CMAKE_${lang}_COMPILER "${CMAKE_${lang}_COMPILER_ID_TOOL}" PARENT_SCOPE)
- elseif(NOT CMAKE_${lang}_COMPILER)
- set(CMAKE_${lang}_COMPILER "CMAKE_${lang}_COMPILER-NOTFOUND" PARENT_SCOPE)
- endif()
-
- # If the compiler is still unknown, try to query its vendor.
- if(CMAKE_${lang}_COMPILER AND NOT CMAKE_${lang}_COMPILER_ID)
- foreach(userflags "${CMAKE_${lang}_COMPILER_ID_FLAGS_LIST}" "")
- CMAKE_DETERMINE_COMPILER_ID_VENDOR(${lang} "${userflags}")
- endforeach()
- endif()
-
- # If the compiler is still unknown, fallback to GHS
- if(NOT CMAKE_${lang}_COMPILER_ID AND "${CMAKE_GENERATOR}" MATCHES "Green Hills MULTI")
- set(CMAKE_${lang}_COMPILER_ID GHS)
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "The ${lang} compiler identification is falling back to GHS.\n\n")
- endif()
-
- # CUDA < 7.5 is missing version macros
- if(lang STREQUAL "CUDA"
- AND CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA"
- AND NOT CMAKE_${lang}_COMPILER_VERSION)
- execute_process(
- COMMAND "${CMAKE_${lang}_COMPILER}"
- --version
- OUTPUT_VARIABLE output ERROR_VARIABLE output
- RESULT_VARIABLE result
- TIMEOUT 10
- )
- if(output MATCHES [=[ V([0-9]+)\.([0-9]+)\.([0-9]+)]=])
- set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
- endif()
- endif()
-
- # For Swift we need to explicitly query the version.
- if(lang STREQUAL "Swift"
- AND CMAKE_${lang}_COMPILER
- AND NOT CMAKE_${lang}_COMPILER_VERSION)
- execute_process(
- COMMAND "${CMAKE_${lang}_COMPILER}"
- -version
- OUTPUT_VARIABLE output ERROR_VARIABLE output
- RESULT_VARIABLE result
- TIMEOUT 10
- )
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Running the ${lang} compiler: \"${CMAKE_${lang}_COMPILER}\" -version\n"
- "${output}\n"
- )
-
- if(output MATCHES [[Swift version ([0-9]+\.[0-9]+(\.[0-9]+)?)]])
- set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_MATCH_1}")
- if(NOT CMAKE_${lang}_COMPILER_ID)
- set(CMAKE_Swift_COMPILER_ID "Apple")
- endif()
- endif()
- endif()
-
- if (COMPILER_QNXNTO AND CMAKE_${lang}_COMPILER_ID STREQUAL "GNU")
- execute_process(
- COMMAND "${CMAKE_${lang}_COMPILER}"
- -V
- OUTPUT_VARIABLE output ERROR_VARIABLE output
- RESULT_VARIABLE result
- TIMEOUT 10
- )
- if (output MATCHES "targets available")
- set(CMAKE_${lang}_COMPILER_ID QCC)
- # http://community.qnx.com/sf/discussion/do/listPosts/projects.community/discussion.qnx_momentics_community_support.topc3555?_pagenum=2
- # The qcc driver does not itself have a version.
- endif()
- endif()
-
- # if the format is unknown after all files have been checked, put "Unknown" in the cache
- if(NOT CMAKE_EXECUTABLE_FORMAT)
- set(CMAKE_EXECUTABLE_FORMAT "Unknown" CACHE INTERNAL "Executable file format")
- endif()
-
- if(CMAKE_GENERATOR STREQUAL "Ninja" AND MSVC_${lang}_ARCHITECTURE_ID)
- foreach(userflags "${CMAKE_${lang}_COMPILER_ID_FLAGS_LIST}" "")
- CMAKE_DETERMINE_MSVC_SHOWINCLUDES_PREFIX(${lang} "${userflags}")
- endforeach()
- else()
- set(CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX "")
- endif()
-
- set(_variant "")
- if("x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xClang")
- if("x${CMAKE_${lang}_SIMULATE_ID}" STREQUAL "xMSVC")
- if(CMAKE_GENERATOR MATCHES "Visual Studio")
- set(CMAKE_${lang}_COMPILER_FRONTEND_VARIANT "MSVC")
- else()
- # Test whether an MSVC-like command-line option works.
- execute_process(COMMAND "${CMAKE_${lang}_COMPILER}" -?
- RESULT_VARIABLE _clang_result
- OUTPUT_VARIABLE _clang_stdout
- ERROR_VARIABLE _clang_stderr)
- if(_clang_result EQUAL 0)
- set(CMAKE_${lang}_COMPILER_FRONTEND_VARIANT "MSVC")
- else()
- set(CMAKE_${lang}_COMPILER_FRONTEND_VARIANT "GNU")
- endif()
- endif()
- set(_variant " with ${CMAKE_${lang}_COMPILER_FRONTEND_VARIANT}-like command-line")
- else()
- set(CMAKE_${lang}_COMPILER_FRONTEND_VARIANT "GNU")
- endif()
- else()
- set(CMAKE_${lang}_COMPILER_FRONTEND_VARIANT "")
- endif()
-
- # Display the final identification result.
- if(CMAKE_${lang}_COMPILER_ID)
- if(CMAKE_${lang}_COMPILER_VERSION)
- set(_version " ${CMAKE_${lang}_COMPILER_VERSION}")
- else()
- set(_version "")
- endif()
- if(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID AND "x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xIAR")
- set(_archid " ${CMAKE_${lang}_COMPILER_ARCHITECTURE_ID}")
- else()
- set(_archid "")
- endif()
- message(STATUS "The ${lang} compiler identification is "
- "${CMAKE_${lang}_COMPILER_ID}${_archid}${_version}${_variant}")
- unset(_archid)
- unset(_version)
- unset(_variant)
- else()
- message(STATUS "The ${lang} compiler identification is unknown")
- endif()
-
- set(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE)
- set(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE)
- set(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID "${CMAKE_${lang}_COMPILER_ARCHITECTURE_ID}" PARENT_SCOPE)
- set(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}"
- PARENT_SCOPE)
- set(CMAKE_${lang}_XCODE_ARCHS "${CMAKE_${lang}_XCODE_ARCHS}" PARENT_SCOPE)
- set(CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX "${CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX}" PARENT_SCOPE)
- set(CMAKE_${lang}_COMPILER_FRONTEND_VARIANT "${CMAKE_${lang}_COMPILER_FRONTEND_VARIANT}" PARENT_SCOPE)
- set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_${lang}_COMPILER_VERSION}" PARENT_SCOPE)
- set(CMAKE_${lang}_COMPILER_VERSION_INTERNAL "${CMAKE_${lang}_COMPILER_VERSION_INTERNAL}" PARENT_SCOPE)
- set(CMAKE_${lang}_COMPILER_WRAPPER "${CMAKE_${lang}_COMPILER_WRAPPER}" PARENT_SCOPE)
- set(CMAKE_${lang}_SIMULATE_ID "${CMAKE_${lang}_SIMULATE_ID}" PARENT_SCOPE)
- set(CMAKE_${lang}_SIMULATE_VERSION "${CMAKE_${lang}_SIMULATE_VERSION}" PARENT_SCOPE)
- set(CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT "${CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT}" PARENT_SCOPE)
- set(CMAKE_${lang}_COMPILER_PRODUCED_OUTPUT "${COMPILER_${lang}_PRODUCED_OUTPUT}" PARENT_SCOPE)
- set(CMAKE_${lang}_COMPILER_PRODUCED_FILES "${COMPILER_${lang}_PRODUCED_FILES}" PARENT_SCOPE)
-endfunction()
-
-include(CMakeCompilerIdDetection)
-
-#-----------------------------------------------------------------------------
-# Function to write the compiler id source file.
-function(CMAKE_DETERMINE_COMPILER_ID_WRITE lang src)
- find_file(src_in ${src}.in PATHS ${CMAKE_ROOT}/Modules ${CMAKE_MODULE_PATH} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
- file(READ ${src_in} ID_CONTENT_IN)
-
- compiler_id_detection(CMAKE_${lang}_COMPILER_ID_CONTENT ${lang}
- ID_STRING
- VERSION_STRINGS
- PLATFORM_DEFAULT_COMPILER
- )
-
- unset(src_in CACHE)
- string(CONFIGURE "${ID_CONTENT_IN}" ID_CONTENT_OUT @ONLY)
- file(WRITE ${CMAKE_${lang}_COMPILER_ID_DIR}/${src} "${ID_CONTENT_OUT}")
-endfunction()
-
-#-----------------------------------------------------------------------------
-# Function to build the compiler id source file and look for output
-# files.
-function(CMAKE_DETERMINE_COMPILER_ID_BUILD lang testflags userflags src)
- # Create a clean working directory.
- file(REMOVE_RECURSE ${CMAKE_${lang}_COMPILER_ID_DIR})
- file(MAKE_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR})
- file(MAKE_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}/tmp)
- CMAKE_DETERMINE_COMPILER_ID_WRITE("${lang}" "${src}")
-
- # Construct a description of this test case.
- set(COMPILER_DESCRIPTION
- "Compiler: ${CMAKE_${lang}_COMPILER} ${CMAKE_${lang}_COMPILER_ID_ARG1}
-Build flags: ${userflags}
-Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS}
-")
-
- # Compile the compiler identification source.
- if("${CMAKE_GENERATOR}" MATCHES "Visual Studio ([0-9]+)")
- set(vs_version ${CMAKE_MATCH_1})
- set(id_platform ${CMAKE_VS_PLATFORM_NAME})
- set(id_lang "${lang}")
- set(id_PostBuildEvent_Command "")
- if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "^[Ll][Ll][Vv][Mm](_v[0-9]+(_xp)?)?$")
- set(id_cl_var "ClangClExecutable")
- elseif(CMAKE_VS_PLATFORM_TOOLSET MATCHES "v[0-9]+_clang_.*")
- set(id_cl clang.exe)
- else()
- set(id_cl cl.exe)
- endif()
- if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
- set(v NsightTegra)
- set(ext vcxproj)
- if(lang STREQUAL CXX)
- set(id_gcc g++)
- set(id_clang clang++)
- else()
- set(id_gcc gcc)
- set(id_clang clang)
- endif()
- elseif(lang STREQUAL Fortran)
- set(v Intel)
- set(ext vfproj)
- set(id_cl ifort.exe)
- elseif(lang STREQUAL CSharp)
- set(v 10)
- set(ext csproj)
- set(id_cl csc.exe)
- elseif(NOT "${vs_version}" VERSION_LESS 10)
- set(v 10)
- set(ext vcxproj)
- else()
- set(id_version ${vs_version}.00)
- set(v 7)
- set(ext vcproj)
- endif()
- if(CMAKE_VS_PLATFORM_TOOLSET)
- if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
- set(id_toolset "<NdkToolchainVersion>${CMAKE_VS_PLATFORM_TOOLSET}</NdkToolchainVersion>")
- else()
- set(id_toolset "<PlatformToolset>${CMAKE_VS_PLATFORM_TOOLSET}</PlatformToolset>")
- if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "Intel")
- set(id_cl icl.exe)
- endif()
- if(CMAKE_VS_PLATFORM_TOOLSET_VERSION)
- set(id_sep "\\")
- if(CMAKE_VS_PLATFORM_TOOLSET_VERSION VERSION_GREATER_EQUAL "14.20")
- if(EXISTS "${CMAKE_GENERATOR_INSTANCE}/VC/Auxiliary/Build.${CMAKE_VS_PLATFORM_TOOLSET_VERSION}/Microsoft.VCToolsVersion.${CMAKE_VS_PLATFORM_TOOLSET_VERSION}.props")
- set(id_sep ".")
- endif()
- endif()
- set(id_toolset_version_props "<Import Project=\"${CMAKE_GENERATOR_INSTANCE}\\VC\\Auxiliary\\Build${id_sep}${CMAKE_VS_PLATFORM_TOOLSET_VERSION}\\Microsoft.VCToolsVersion.${CMAKE_VS_PLATFORM_TOOLSET_VERSION}.props\" />")
- unset(id_sep)
- endif()
- endif()
- else()
- set(id_toolset "")
- set(id_toolset_version_props "")
- endif()
- if(CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE)
- set(id_PreferredToolArchitecture "<PreferredToolArchitecture>${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE}</PreferredToolArchitecture>")
- else()
- set(id_PreferredToolArchitecture "")
- endif()
- if(CMAKE_SYSTEM_NAME STREQUAL "WindowsPhone")
- set(id_system "<ApplicationType>Windows Phone</ApplicationType>")
- elseif(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
- set(id_system "<ApplicationType>Windows Store</ApplicationType>")
- else()
- set(id_system "")
- endif()
- if(id_system AND CMAKE_SYSTEM_VERSION MATCHES "^([0-9]+\\.[0-9]+)")
- set(id_system_version "<ApplicationTypeRevision>${CMAKE_MATCH_1}</ApplicationTypeRevision>")
- else()
- set(id_system_version "")
- endif()
- if(CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION)
- set(id_WindowsTargetPlatformVersion "<WindowsTargetPlatformVersion>${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}</WindowsTargetPlatformVersion>")
- endif()
- if(id_platform STREQUAL ARM64)
- set(id_WindowsSDKDesktopARMSupport "<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>")
- elseif(id_platform STREQUAL ARM)
- set(id_WindowsSDKDesktopARMSupport "<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>")
- else()
- set(id_WindowsSDKDesktopARMSupport "")
- endif()
- if(CMAKE_VS_WINCE_VERSION)
- set(id_entrypoint "mainACRTStartup")
- if("${vs_version}" VERSION_LESS 9)
- set(id_subsystem 9)
- else()
- set(id_subsystem 8)
- endif()
- else()
- set(id_subsystem 1)
- endif()
- set(id_dir ${CMAKE_${lang}_COMPILER_ID_DIR})
- set(id_src "${src}")
- set(id_compile "ClCompile")
- if(id_cl_var)
- set(id_PostBuildEvent_Command "echo CMAKE_${lang}_COMPILER=$(${id_cl_var})")
- else()
- set(id_PostBuildEvent_Command "for %%i in (${id_cl}) do %40echo CMAKE_${lang}_COMPILER=%%~$PATH:i")
- endif()
- set(id_Import_props "")
- set(id_Import_targets "")
- set(id_ItemDefinitionGroup_entry "")
- set(id_Link_AdditionalDependencies "")
- if(lang STREQUAL CUDA)
- if(NOT CMAKE_VS_PLATFORM_TOOLSET_CUDA)
- message(FATAL_ERROR "No CUDA toolset found.")
- endif()
- set(cuda_tools "CUDA ${CMAKE_VS_PLATFORM_TOOLSET_CUDA}")
- set(id_compile "CudaCompile")
- set(id_PostBuildEvent_Command [[echo CMAKE_CUDA_COMPILER=$(CudaToolkitBinDir)\nvcc.exe]])
- if(CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR)
- set(id_CudaToolkitCustomDir "<CudaToolkitCustomDir>${CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR}nvcc</CudaToolkitCustomDir>")
- string(CONCAT id_Import_props "<Import Project=\"${CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR}\\CUDAVisualStudioIntegration\\extras\\visual_studio_integration\\MSBuildExtensions\\${cuda_tools}.props\" />")
- string(CONCAT id_Import_targets "<Import Project=\"${CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR}\\CUDAVisualStudioIntegration\\extras\\visual_studio_integration\\MSBuildExtensions\\${cuda_tools}.targets\" />")
- else()
- string(CONCAT id_Import_props [[<Import Project="$(VCTargetsPath)\BuildCustomizations\]] "${cuda_tools}" [[.props" />]])
- string(CONCAT id_Import_targets [[<Import Project="$(VCTargetsPath)\BuildCustomizations\]] "${cuda_tools}" [[.targets" />]])
- endif()
- if(CMAKE_VS_PLATFORM_NAME STREQUAL x64)
- set(id_ItemDefinitionGroup_entry "<CudaCompile><TargetMachinePlatform>64</TargetMachinePlatform></CudaCompile>")
- endif()
- set(id_Link_AdditionalDependencies "<AdditionalDependencies>cudart.lib</AdditionalDependencies>")
- endif()
- configure_file(${CMAKE_ROOT}/Modules/CompilerId/VS-${v}.${ext}.in
- ${id_dir}/CompilerId${lang}.${ext} @ONLY)
- if(CMAKE_VS_MSBUILD_COMMAND AND NOT lang STREQUAL "Fortran")
- set(command "${CMAKE_VS_MSBUILD_COMMAND}" "CompilerId${lang}.${ext}"
- "/p:Configuration=Debug" "/p:Platform=${id_platform}" "/p:VisualStudioVersion=${vs_version}.0"
- )
- elseif(CMAKE_VS_DEVENV_COMMAND)
- set(command "${CMAKE_VS_DEVENV_COMMAND}" "CompilerId${lang}.${ext}" "/build" "Debug")
- else()
- set(command "")
- endif()
- if(command)
- execute_process(
- COMMAND ${command}
- WORKING_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}
- OUTPUT_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
- ERROR_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
- RESULT_VARIABLE CMAKE_${lang}_COMPILER_ID_RESULT
- )
- else()
- set(CMAKE_${lang}_COMPILER_ID_RESULT 1)
- set(CMAKE_${lang}_COMPILER_ID_OUTPUT "VS environment not known to support ${lang}")
- endif()
- # Match the compiler location line printed out.
- if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "CMAKE_${lang}_COMPILER=([^%\r\n]+)[\r\n]")
- # Strip VS diagnostic output from the end of the line.
- string(REGEX REPLACE " \\(TaskId:[0-9]*\\)$" "" _comp "${CMAKE_MATCH_1}")
- if(EXISTS "${_comp}")
- file(TO_CMAKE_PATH "${_comp}" _comp)
- set(CMAKE_${lang}_COMPILER_ID_TOOL "${_comp}" PARENT_SCOPE)
- endif()
- endif()
- elseif("${CMAKE_GENERATOR}" MATCHES "Xcode")
- set(id_lang "${lang}")
- set(id_type ${CMAKE_${lang}_COMPILER_XCODE_TYPE})
- set(id_dir ${CMAKE_${lang}_COMPILER_ID_DIR})
- set(id_src "${src}")
- if(CMAKE_XCODE_PLATFORM_TOOLSET)
- set(id_toolset "GCC_VERSION = ${CMAKE_XCODE_PLATFORM_TOOLSET};")
- else()
- set(id_toolset "")
- endif()
- if("${lang}" STREQUAL "Swift")
- if(CMAKE_Swift_LANGUAGE_VERSION)
- set(id_lang_version "SWIFT_VERSION = ${CMAKE_Swift_LANGUAGE_VERSION};")
- elseif(XCODE_VERSION VERSION_GREATER_EQUAL 10.2)
- set(id_lang_version "SWIFT_VERSION = 4.0;")
- elseif(XCODE_VERSION VERSION_GREATER_EQUAL 8.3)
- set(id_lang_version "SWIFT_VERSION = 3.0;")
- else()
- set(id_lang_version "SWIFT_VERSION = 2.3;")
- endif()
- else()
- set(id_lang_version "")
- endif()
- if(CMAKE_OSX_DEPLOYMENT_TARGET)
- set(id_deployment_target
- "MACOSX_DEPLOYMENT_TARGET = \"${CMAKE_OSX_DEPLOYMENT_TARGET}\";")
- else()
- set(id_deployment_target "")
- endif()
- set(id_product_type "com.apple.product-type.tool")
- if(CMAKE_OSX_SYSROOT)
- set(id_sdkroot "SDKROOT = \"${CMAKE_OSX_SYSROOT}\";")
- if(CMAKE_OSX_SYSROOT MATCHES "(^|/)[Ii][Pp][Hh][Oo][Nn][Ee]" OR
- CMAKE_OSX_SYSROOT MATCHES "(^|/)[Aa][Pp][Pp][Ll][Ee][Tt][Vv]")
- set(id_product_type "com.apple.product-type.bundle.unit-test")
- elseif(CMAKE_OSX_SYSROOT MATCHES "(^|/)[Ww][Aa][Tt][Cc][Hh]")
- set(id_product_type "com.apple.product-type.framework")
- endif()
- else()
- set(id_sdkroot "")
- endif()
- set(id_clang_cxx_library "")
- set(stdlib_regex "(^| )(-stdlib=)([^ ]+)( |$)")
- string(REGEX MATCHALL "${stdlib_regex}" all_stdlib_matches "${CMAKE_CXX_FLAGS}")
- if(all_stdlib_matches)
- list(GET all_stdlib_matches "-1" last_stdlib_match)
- if(last_stdlib_match MATCHES "${stdlib_regex}")
- set(id_clang_cxx_library "CLANG_CXX_LIBRARY = \"${CMAKE_MATCH_3}\";")
- endif()
- endif()
- configure_file(${CMAKE_ROOT}/Modules/CompilerId/Xcode-3.pbxproj.in
- ${id_dir}/CompilerId${lang}.xcodeproj/project.pbxproj @ONLY)
- unset(_ENV_MACOSX_DEPLOYMENT_TARGET)
- if(DEFINED ENV{MACOSX_DEPLOYMENT_TARGET})
- set(_ENV_MACOSX_DEPLOYMENT_TARGET "$ENV{MACOSX_DEPLOYMENT_TARGET}")
- set(ENV{MACOSX_DEPLOYMENT_TARGET} "")
- endif()
- execute_process(COMMAND xcodebuild
- WORKING_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}
- OUTPUT_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
- ERROR_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
- RESULT_VARIABLE CMAKE_${lang}_COMPILER_ID_RESULT
- )
- if(DEFINED _ENV_MACOSX_DEPLOYMENT_TARGET)
- set(ENV{MACOSX_DEPLOYMENT_TARGET} "${_ENV_MACOSX_DEPLOYMENT_TARGET}")
- endif()
-
- if(DEFINED CMAKE_${lang}_COMPILER_ID_TOOL_MATCH_REGEX)
- if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "${CMAKE_${lang}_COMPILER_ID_TOOL_MATCH_REGEX}")
- set(_comp "${CMAKE_MATCH_${CMAKE_${lang}_COMPILER_ID_TOOL_MATCH_INDEX}}")
- if(EXISTS "${_comp}")
- set(CMAKE_${lang}_COMPILER_ID_TOOL "${_comp}" PARENT_SCOPE)
- endif()
- endif()
- endif()
- if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "ARCHS=([^%\r\n]+)[\r\n]")
- set(CMAKE_${lang}_XCODE_ARCHS "${CMAKE_MATCH_1}")
- separate_arguments(CMAKE_${lang}_XCODE_ARCHS)
- set(CMAKE_${lang}_XCODE_ARCHS "${CMAKE_${lang}_XCODE_ARCHS}" PARENT_SCOPE)
- endif()
- elseif("${CMAKE_GENERATOR}" MATCHES "Green Hills MULTI")
- set(id_dir ${CMAKE_${lang}_COMPILER_ID_DIR})
- set(id_src "${src}")
- if (GHS_PRIMARY_TARGET)
- set(ghs_primary_target "${GHS_PRIMARY_TARGET}")
- else()
- set(ghs_primary_target "${CMAKE_GENERATOR_PLATFORM}_${GHS_TARGET_PLATFORM}.tgt")
- endif()
- if ("${GHS_TARGET_PLATFORM}" MATCHES "integrity")
- set(bsp_name "macro GHS_BSP=${GHS_BSP_NAME}")
- set(os_dir "macro GHS_OS=${GHS_OS_DIR}")
- endif()
- set(command "${CMAKE_MAKE_PROGRAM}" "-commands" "-top" "GHS_default.gpj")
- configure_file(${CMAKE_ROOT}/Modules/CompilerId/GHS_default.gpj.in
- ${id_dir}/GHS_default.gpj @ONLY)
- configure_file(${CMAKE_ROOT}/Modules/CompilerId/GHS_lib.gpj.in
- ${id_dir}/GHS_lib.gpj @ONLY)
- execute_process(COMMAND ${command}
- WORKING_DIRECTORY ${id_dir}
- OUTPUT_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
- ERROR_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
- RESULT_VARIABLE CMAKE_${lang}_COMPILER_ID_RESULT
- )
- # Match the compiler location line printed out.
- set(ghs_toolpath "${CMAKE_MAKE_PROGRAM}")
- if(CMAKE_HOST_UNIX)
- string(REPLACE "/gbuild" "/" ghs_toolpath ${ghs_toolpath})
- else()
- string(REPLACE "/gbuild.exe" "/" ghs_toolpath ${ghs_toolpath})
- string(REPLACE / "\\\\" ghs_toolpath ${ghs_toolpath})
- endif()
- if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "(${ghs_toolpath}[^ ]*)")
- if(CMAKE_HOST_UNIX)
- set(_comp "${CMAKE_MATCH_1}")
- else()
- set(_comp "${CMAKE_MATCH_1}.exe")
- endif()
- if(EXISTS "${_comp}")
- file(TO_CMAKE_PATH "${_comp}" _comp)
- set(CMAKE_${lang}_COMPILER_ID_TOOL "${_comp}" PARENT_SCOPE)
- endif()
- endif()
- else()
- execute_process(
- COMMAND "${CMAKE_${lang}_COMPILER}"
- ${CMAKE_${lang}_COMPILER_ID_ARG1}
- ${userflags}
- ${testflags}
- ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS}
- "${src}"
- WORKING_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}
- OUTPUT_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
- ERROR_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
- RESULT_VARIABLE CMAKE_${lang}_COMPILER_ID_RESULT
- )
- endif()
-
- # Check the result of compilation.
- if(CMAKE_${lang}_COMPILER_ID_RESULT
- # Intel Fortran warns and ignores preprocessor lines without /fpp
- OR CMAKE_${lang}_COMPILER_ID_OUTPUT MATCHES "Bad # preprocessor line"
- )
- # Compilation failed.
- set(MSG
- "Compiling the ${lang} compiler identification source file \"${src}\" failed.
-${COMPILER_DESCRIPTION}
-The output was:
-${CMAKE_${lang}_COMPILER_ID_RESULT}
-${CMAKE_${lang}_COMPILER_ID_OUTPUT}
-
-")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log "${MSG}")
- #if(NOT CMAKE_${lang}_COMPILER_ID_ALLOW_FAIL)
- # message(FATAL_ERROR "${MSG}")
- #endif()
-
- # No output files should be inspected.
- set(COMPILER_${lang}_PRODUCED_FILES)
- set(COMPILER_${lang}_PRODUCED_OUTPUT)
- else()
- # Compilation succeeded.
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Compiling the ${lang} compiler identification source file \"${src}\" succeeded.
-${COMPILER_DESCRIPTION}
-The output was:
-${CMAKE_${lang}_COMPILER_ID_RESULT}
-${CMAKE_${lang}_COMPILER_ID_OUTPUT}
-
-")
-
- # Find the executable produced by the compiler, try all files in the
- # binary dir.
- string(REGEX REPLACE "([][])" "[\\1]" _glob_id_dir "${CMAKE_${lang}_COMPILER_ID_DIR}")
- file(GLOB files
- RELATIVE ${CMAKE_${lang}_COMPILER_ID_DIR}
-
- # normal case
- ${_glob_id_dir}/*
-
- # com.apple.package-type.bundle.unit-test
- ${_glob_id_dir}/*.xctest/*
-
- # com.apple.product-type.framework
- ${_glob_id_dir}/*.framework/*
- )
- list(REMOVE_ITEM files "${src}")
- set(COMPILER_${lang}_PRODUCED_FILES "")
- foreach(file ${files})
- if(NOT IS_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}/${file})
- list(APPEND COMPILER_${lang}_PRODUCED_FILES ${file})
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Compilation of the ${lang} compiler identification source \""
- "${src}\" produced \"${file}\"\n\n")
- endif()
- endforeach()
-
- if(NOT COMPILER_${lang}_PRODUCED_FILES)
- # No executable was found.
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Compilation of the ${lang} compiler identification source \""
- "${src}\" did not produce an executable in \""
- "${CMAKE_${lang}_COMPILER_ID_DIR}\".\n\n")
- endif()
-
- set(COMPILER_${lang}_PRODUCED_OUTPUT "${CMAKE_${lang}_COMPILER_ID_OUTPUT}")
- endif()
-
- # Return the files produced by the compilation.
- set(COMPILER_${lang}_PRODUCED_FILES "${COMPILER_${lang}_PRODUCED_FILES}" PARENT_SCOPE)
- set(COMPILER_${lang}_PRODUCED_OUTPUT "${COMPILER_${lang}_PRODUCED_OUTPUT}" PARENT_SCOPE)
-
-endfunction()
-
-#-----------------------------------------------------------------------------
-# Function to extract the compiler id from compiler output.
-function(CMAKE_DETERMINE_COMPILER_ID_MATCH_VENDOR lang output)
- foreach(vendor ${CMAKE_${lang}_COMPILER_ID_MATCH_VENDORS})
- if(output MATCHES "${CMAKE_${lang}_COMPILER_ID_MATCH_VENDOR_REGEX_${vendor}}")
- set(CMAKE_${lang}_COMPILER_ID "${vendor}")
- endif()
- endforeach()
- set(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE)
-endfunction()
-
-#-----------------------------------------------------------------------------
-# Function to extract the compiler id from an executable.
-function(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file)
- # Look for a compiler id if not yet known.
- if(NOT CMAKE_${lang}_COMPILER_ID)
- # Read the compiler identification string from the executable file.
- set(COMPILER_ID)
- set(COMPILER_VERSION)
- set(COMPILER_VERSION_MAJOR 0)
- set(COMPILER_VERSION_MINOR 0)
- set(COMPILER_VERSION_PATCH 0)
- set(COMPILER_VERSION_TWEAK 0)
- set(COMPILER_VERSION_INTERNAL "")
- set(HAVE_COMPILER_VERSION_MAJOR 0)
- set(HAVE_COMPILER_VERSION_MINOR 0)
- set(HAVE_COMPILER_VERSION_PATCH 0)
- set(HAVE_COMPILER_VERSION_TWEAK 0)
- set(COMPILER_WRAPPER)
- set(DIGIT_VALUE_1 1)
- set(DIGIT_VALUE_2 10)
- set(DIGIT_VALUE_3 100)
- set(DIGIT_VALUE_4 1000)
- set(DIGIT_VALUE_5 10000)
- set(DIGIT_VALUE_6 100000)
- set(DIGIT_VALUE_7 1000000)
- set(DIGIT_VALUE_8 10000000)
- set(PLATFORM_ID)
- set(ARCHITECTURE_ID)
- set(SIMULATE_ID)
- set(SIMULATE_VERSION)
- foreach(encoding "" "ENCODING;UTF-16LE" "ENCODING;UTF-16BE")
- file(STRINGS "${file}" CMAKE_${lang}_COMPILER_ID_STRINGS
- LIMIT_COUNT 38 ${encoding}
- REGEX ".?I.?N.?F.?O.?:.?[A-Za-z0-9_]+\\[[^]]*\\]")
- if(NOT CMAKE_${lang}_COMPILER_ID_STRINGS STREQUAL "")
- break()
- endif()
- endforeach()
- set(COMPILER_ID_TWICE)
- # With the IAR Compiler, some strings are found twice, first time as incomplete
- # list like "?<Constant "INFO:compiler[IAR]">". Remove the incomplete copies.
- list(FILTER CMAKE_${lang}_COMPILER_ID_STRINGS EXCLUDE REGEX "\\?<Constant \\\"")
- # In C# binaries, some strings are found more than once.
- list(REMOVE_DUPLICATES CMAKE_${lang}_COMPILER_ID_STRINGS)
- foreach(info ${CMAKE_${lang}_COMPILER_ID_STRINGS})
- # The IAR-AVR compiler uses a binary format that places a '6'
- # character (0x34) before each character in the string. Strip
- # out these characters without removing any legitamate characters.
- if("${info}" MATCHES "(.)I.N.F.O.:.")
- string(REGEX REPLACE "${CMAKE_MATCH_1}(.)" "\\1" info "${info}")
- endif()
- if("${info}" MATCHES "INFO:compiler\\[([^]\"]*)\\]")
- if(COMPILER_ID)
- set(COMPILER_ID_TWICE 1)
- endif()
- set(COMPILER_ID "${CMAKE_MATCH_1}")
- endif()
- if("${info}" MATCHES "INFO:platform\\[([^]\"]*)\\]")
- set(PLATFORM_ID "${CMAKE_MATCH_1}")
- endif()
- if("${info}" MATCHES "INFO:arch\\[([^]\"]*)\\]")
- set(ARCHITECTURE_ID "${CMAKE_MATCH_1}")
- endif()
- if("${info}" MATCHES "INFO:compiler_version\\[([^]\"]*)\\]")
- string(REGEX REPLACE "^0+([0-9]+)" "\\1" COMPILER_VERSION "${CMAKE_MATCH_1}")
- string(REGEX REPLACE "\\.0+([0-9])" ".\\1" COMPILER_VERSION "${COMPILER_VERSION}")
- endif()
- if("${info}" MATCHES "INFO:compiler_version_internal\\[([^]\"]*)\\]")
- string(REGEX REPLACE "^0+([0-9])" "\\1" COMPILER_VERSION_INTERNAL "${CMAKE_MATCH_1}")
- string(REGEX REPLACE "\\.0+([0-9])" ".\\1" COMPILER_VERSION_INTERNAL "${COMPILER_VERSION_INTERNAL}")
- endif()
- foreach(comp MAJOR MINOR PATCH TWEAK)
- foreach(digit 1 2 3 4 5 6 7 8 9)
- if("${info}" MATCHES "INFO:compiler_version_${comp}_digit_${digit}\\[([0-9])\\]")
- set(value ${CMAKE_MATCH_1})
- math(EXPR COMPILER_VERSION_${comp} "${COMPILER_VERSION_${comp}} + ${value} * ${DIGIT_VALUE_${digit}}")
- set(HAVE_COMPILER_VERSION_${comp} 1)
- endif()
- endforeach()
- endforeach()
- if("${info}" MATCHES "INFO:compiler_wrapper\\[([^]\"]*)\\]")
- set(COMPILER_WRAPPER "${CMAKE_MATCH_1}")
- endif()
- if("${info}" MATCHES "INFO:simulate\\[([^]\"]*)\\]")
- set(SIMULATE_ID "${CMAKE_MATCH_1}")
- endif()
- if("${info}" MATCHES "INFO:simulate_version\\[([^]\"]*)\\]")
- string(REGEX REPLACE "^0+([0-9])" "\\1" SIMULATE_VERSION "${CMAKE_MATCH_1}")
- string(REGEX REPLACE "\\.0+([0-9])" ".\\1" SIMULATE_VERSION "${SIMULATE_VERSION}")
- endif()
- if("${info}" MATCHES "INFO:qnxnto\\[\\]")
- set(COMPILER_QNXNTO 1)
- endif()
- if("${info}" MATCHES "INFO:dialect_default\\[([^]\"]*)\\]")
- set(CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT "${CMAKE_MATCH_1}")
- endif()
- endforeach()
-
- # Construct compiler version from components if needed.
- if(NOT DEFINED COMPILER_VERSION AND HAVE_COMPILER_VERSION_MAJOR)
- set(COMPILER_VERSION "${COMPILER_VERSION_MAJOR}")
- if(HAVE_COMPILER_VERSION_MINOR)
- string(APPEND COMPILER_VERSION ".${COMPILER_VERSION_MINOR}")
- if(HAVE_COMPILER_VERSION_PATCH)
- string(APPEND COMPILER_VERSION ".${COMPILER_VERSION_PATCH}")
- if(HAVE_COMPILER_VERSION_TWEAK)
- string(APPEND COMPILER_VERSION ".${COMPILER_VERSION_TWEAK}")
- endif()
- endif()
- endif()
- endif()
-
- # Detect the exact architecture from the PE header.
- if(WIN32)
- # The offset to the PE signature is stored at 0x3c.
- file(READ ${file} peoffsethex LIMIT 1 OFFSET 60 HEX)
- if(NOT peoffsethex STREQUAL "")
- string(SUBSTRING "${peoffsethex}" 0 1 peoffsethex1)
- string(SUBSTRING "${peoffsethex}" 1 1 peoffsethex2)
- set(peoffsetexpression "${peoffsethex1} * 16 + ${peoffsethex2}")
- string(REPLACE "a" "10" peoffsetexpression "${peoffsetexpression}")
- string(REPLACE "b" "11" peoffsetexpression "${peoffsetexpression}")
- string(REPLACE "c" "12" peoffsetexpression "${peoffsetexpression}")
- string(REPLACE "d" "13" peoffsetexpression "${peoffsetexpression}")
- string(REPLACE "e" "14" peoffsetexpression "${peoffsetexpression}")
- string(REPLACE "f" "15" peoffsetexpression "${peoffsetexpression}")
- math(EXPR peoffset "${peoffsetexpression}")
-
- file(READ ${file} peheader LIMIT 6 OFFSET ${peoffset} HEX)
- if(peheader STREQUAL "50450000a201")
- set(ARCHITECTURE_ID "SH3")
- elseif(peheader STREQUAL "50450000a301")
- set(ARCHITECTURE_ID "SH3DSP")
- elseif(peheader STREQUAL "50450000a601")
- set(ARCHITECTURE_ID "SH4")
- elseif(peheader STREQUAL "50450000a801")
- set(ARCHITECTURE_ID "SH5")
- endif()
- endif()
- endif()
-
- # Check if a valid compiler and platform were found.
- if(COMPILER_ID AND NOT COMPILER_ID_TWICE)
- set(CMAKE_${lang}_COMPILER_ID "${COMPILER_ID}")
- set(CMAKE_${lang}_PLATFORM_ID "${PLATFORM_ID}")
- set(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID "${ARCHITECTURE_ID}")
- set(MSVC_${lang}_ARCHITECTURE_ID "${ARCHITECTURE_ID}")
- set(CMAKE_${lang}_COMPILER_VERSION "${COMPILER_VERSION}")
- set(CMAKE_${lang}_COMPILER_VERSION_INTERNAL "${COMPILER_VERSION_INTERNAL}")
- set(CMAKE_${lang}_SIMULATE_ID "${SIMULATE_ID}")
- set(CMAKE_${lang}_SIMULATE_VERSION "${SIMULATE_VERSION}")
- endif()
-
- # Check the compiler identification string.
- if(CMAKE_${lang}_COMPILER_ID)
- # The compiler identification was found.
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "The ${lang} compiler identification is ${CMAKE_${lang}_COMPILER_ID}, found in \""
- "${file}\"\n\n")
- else()
- # The compiler identification could not be found.
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "The ${lang} compiler identification could not be found in \""
- "${file}\"\n\n")
- endif()
- endif()
-
- # try to figure out the executable format: ELF, COFF, Mach-O
- if(NOT CMAKE_EXECUTABLE_FORMAT)
- file(READ ${file} CMAKE_EXECUTABLE_MAGIC LIMIT 4 HEX)
-
- # ELF files start with 0x7f"ELF"
- if("${CMAKE_EXECUTABLE_MAGIC}" STREQUAL "7f454c46")
- set(CMAKE_EXECUTABLE_FORMAT "ELF" CACHE INTERNAL "Executable file format")
- endif()
-
-# # COFF (.exe) files start with "MZ"
-# if("${CMAKE_EXECUTABLE_MAGIC}" MATCHES "4d5a....")
-# set(CMAKE_EXECUTABLE_FORMAT "COFF" CACHE STRING "Executable file format")
-# endif()
-#
- # Mach-O files start with MH_MAGIC or MH_CIGAM
- if("${CMAKE_EXECUTABLE_MAGIC}" MATCHES "feedface|cefaedfe|feedfacf|cffaedfe")
- set(CMAKE_EXECUTABLE_FORMAT "MACHO" CACHE STRING "Executable file format")
- endif()
-
- endif()
- if(NOT DEFINED CMAKE_EXECUTABLE_FORMAT)
- set(CMAKE_EXECUTABLE_FORMAT)
- endif()
- # Return the information extracted.
- set(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE)
- set(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE)
- set(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID "${CMAKE_${lang}_COMPILER_ARCHITECTURE_ID}" PARENT_SCOPE)
- set(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}"
- PARENT_SCOPE)
- set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_${lang}_COMPILER_VERSION}" PARENT_SCOPE)
- set(CMAKE_${lang}_COMPILER_VERSION_INTERNAL "${CMAKE_${lang}_COMPILER_VERSION_INTERNAL}" PARENT_SCOPE)
- set(CMAKE_${lang}_COMPILER_WRAPPER "${COMPILER_WRAPPER}" PARENT_SCOPE)
- set(CMAKE_${lang}_SIMULATE_ID "${CMAKE_${lang}_SIMULATE_ID}" PARENT_SCOPE)
- set(CMAKE_${lang}_SIMULATE_VERSION "${CMAKE_${lang}_SIMULATE_VERSION}" PARENT_SCOPE)
- set(CMAKE_EXECUTABLE_FORMAT "${CMAKE_EXECUTABLE_FORMAT}" PARENT_SCOPE)
- set(COMPILER_QNXNTO "${COMPILER_QNXNTO}" PARENT_SCOPE)
- set(CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT "${CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT}" PARENT_SCOPE)
-endfunction()
-
-#-----------------------------------------------------------------------------
-# Function to query the compiler vendor.
-# This uses a table with entries of the form
-# list(APPEND CMAKE_${lang}_COMPILER_ID_VENDORS ${vendor})
-# set(CMAKE_${lang}_COMPILER_ID_VENDOR_FLAGS_${vendor} -some-vendor-flag)
-# set(CMAKE_${lang}_COMPILER_ID_VENDOR_REGEX_${vendor} "Some Vendor Output")
-# We try running the compiler with the flag for each vendor and
-# matching its regular expression in the output.
-function(CMAKE_DETERMINE_COMPILER_ID_VENDOR lang userflags)
-
- if(NOT CMAKE_${lang}_COMPILER_ID_DIR)
- # We get here when this function is called not from within CMAKE_DETERMINE_COMPILER_ID()
- # This is done e.g. for detecting the compiler ID for assemblers.
- # Compute the directory in which to run the test and Create a clean working directory.
- set(CMAKE_${lang}_COMPILER_ID_DIR ${CMAKE_PLATFORM_INFO_DIR}/CompilerId${lang})
- file(REMOVE_RECURSE ${CMAKE_${lang}_COMPILER_ID_DIR})
- file(MAKE_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR})
- endif()
-
-
- foreach(vendor ${CMAKE_${lang}_COMPILER_ID_VENDORS})
- set(flags ${CMAKE_${lang}_COMPILER_ID_VENDOR_FLAGS_${vendor}})
- set(regex ${CMAKE_${lang}_COMPILER_ID_VENDOR_REGEX_${vendor}})
- execute_process(
- COMMAND "${CMAKE_${lang}_COMPILER}"
- ${CMAKE_${lang}_COMPILER_ID_ARG1}
- ${userflags}
- ${flags}
- WORKING_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}
- OUTPUT_VARIABLE output ERROR_VARIABLE output
- RESULT_VARIABLE result
- TIMEOUT 10
- )
-
- if("${output}" MATCHES "${regex}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
- "matched \"${regex}\":\n${output}")
- set(CMAKE_${lang}_COMPILER_ID "${vendor}" PARENT_SCOPE)
- set(CMAKE_${lang}_COMPILER_ID_OUTPUT "${output}" PARENT_SCOPE)
- break()
- else()
- if("${result}" MATCHES "timeout")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
- "terminated after 10 s due to timeout.")
- else()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
- "did not match \"${regex}\":\n${output}")
- endif()
- endif()
- endforeach()
-endfunction()
-
-function(CMAKE_DETERMINE_MSVC_SHOWINCLUDES_PREFIX lang userflags)
- # Run this MSVC-compatible compiler to detect what the /showIncludes
- # option displays. We can use a C source even with the C++ compiler
- # because MSVC-compatible compilers handle both and show the same output.
- set(showdir ${CMAKE_BINARY_DIR}/CMakeFiles/ShowIncludes)
- file(WRITE ${showdir}/foo.h "\n")
- file(WRITE ${showdir}/main.c "#include \"foo.h\" \nint main(){}\n")
- execute_process(
- COMMAND "${CMAKE_${lang}_COMPILER}"
- ${CMAKE_${lang}_COMPILER_ID_ARG1}
- ${userflags}
- /nologo /showIncludes /c main.c
- WORKING_DIRECTORY ${showdir}
- OUTPUT_VARIABLE out
- ERROR_VARIABLE err
- RESULT_VARIABLE res
- ENCODING AUTO # cl prints in current code page
- )
- if(res EQUAL 0 AND "${out}" MATCHES "(^|\n)([^:\n]*:[^:\n]*:[ \t]*)")
- set(CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX "${CMAKE_MATCH_2}" PARENT_SCOPE)
- else()
- set(CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX "" PARENT_SCOPE)
- endif()
-endfunction()
diff --git a/share/cmake-3.16/Modules/CMakeDetermineFortranCompiler.cmake b/share/cmake-3.16/Modules/CMakeDetermineFortranCompiler.cmake
deleted file mode 100644
index 5ddd64f..0000000
--- a/share/cmake-3.16/Modules/CMakeDetermineFortranCompiler.cmake
+++ /dev/null
@@ -1,290 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# determine the compiler to use for Fortran programs
-# NOTE, a generator may set CMAKE_Fortran_COMPILER before
-# loading this file to force a compiler.
-# use environment variable FC first if defined by user, next use
-# the cmake variable CMAKE_GENERATOR_FC which can be defined by a generator
-# as a default compiler
-
-include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
-include(Platform/${CMAKE_SYSTEM_NAME}-Determine-Fortran OPTIONAL)
-include(Platform/${CMAKE_SYSTEM_NAME}-Fortran OPTIONAL)
-if(NOT CMAKE_Fortran_COMPILER_NAMES)
- set(CMAKE_Fortran_COMPILER_NAMES f95)
-endif()
-
-if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
-elseif("${CMAKE_GENERATOR}" MATCHES "Xcode")
- set(CMAKE_Fortran_COMPILER_XCODE_TYPE sourcecode.fortran.f90)
- _cmake_find_compiler_path(Fortran)
-else()
- if(NOT CMAKE_Fortran_COMPILER)
- # prefer the environment variable CC
- if(NOT $ENV{FC} STREQUAL "")
- get_filename_component(CMAKE_Fortran_COMPILER_INIT $ENV{FC} PROGRAM PROGRAM_ARGS CMAKE_Fortran_FLAGS_ENV_INIT)
- if(CMAKE_Fortran_FLAGS_ENV_INIT)
- set(CMAKE_Fortran_COMPILER_ARG1 "${CMAKE_Fortran_FLAGS_ENV_INIT}" CACHE STRING "First argument to Fortran compiler")
- endif()
- if(EXISTS ${CMAKE_Fortran_COMPILER_INIT})
- else()
- message(FATAL_ERROR "Could not find compiler set in environment variable FC:\n$ENV{FC}.")
- endif()
- endif()
-
- # next try prefer the compiler specified by the generator
- if(CMAKE_GENERATOR_FC)
- if(NOT CMAKE_Fortran_COMPILER_INIT)
- set(CMAKE_Fortran_COMPILER_INIT ${CMAKE_GENERATOR_FC})
- endif()
- endif()
-
- # finally list compilers to try
- if(NOT CMAKE_Fortran_COMPILER_INIT)
- # Known compilers:
- # f77/f90/f95: generic compiler names
- # ftn: Cray fortran compiler wrapper
- # g77: GNU Fortran 77 compiler
- # gfortran: putative GNU Fortran 95+ compiler (in progress)
- # fort77: native F77 compiler under HP-UX (and some older Crays)
- # frt: Fujitsu F77 compiler
- # pathf90/pathf95/pathf2003: PathScale Fortran compiler
- # pgf77/pgf90/pgf95/pgfortran: Portland Group F77/F90/F95 compilers
- # flang: Flang Fortran compiler
- # xlf/xlf90/xlf95: IBM (AIX) F77/F90/F95 compilers
- # lf95: Lahey-Fujitsu F95 compiler
- # fl32: Microsoft Fortran 77 "PowerStation" compiler
- # af77: Apogee F77 compiler for Intergraph hardware running CLIX
- # epcf90: "Edinburgh Portable Compiler" F90
- # fort: Compaq (now HP) Fortran 90/95 compiler for Tru64 and Linux/Alpha
- # ifc: Intel Fortran 95 compiler for Linux/x86
- # efc: Intel Fortran 95 compiler for IA64
- # nagfor: NAG Fortran compiler
- #
- # The order is 95 or newer compilers first, then 90,
- # then 77 or older compilers, gnu is always last in the group,
- # so if you paid for a compiler it is picked by default.
- if(CMAKE_HOST_WIN32)
- set(CMAKE_Fortran_COMPILER_LIST
- ifort pgf95 pgfortran lf95 fort
- flang gfortran gfortran-4 g95 f90 pgf90
- pgf77 g77 f77 nag
- )
- else()
- set(CMAKE_Fortran_COMPILER_LIST
- ftn
- ifort ifc efc pgf95 pgfortran lf95 xlf95 fort
- flang gfortran gfortran-4 g95 f90 pgf90
- frt pgf77 xlf g77 f77 nag
- )
- endif()
-
- # Vendor-specific compiler names.
- set(_Fortran_COMPILER_NAMES_GNU gfortran gfortran-4 g95 g77)
- set(_Fortran_COMPILER_NAMES_Intel ifort ifc efc)
- set(_Fortran_COMPILER_NAMES_Absoft af95 af90 af77)
- set(_Fortran_COMPILER_NAMES_PGI pgf95 pgfortran pgf90 pgf77)
- set(_Fortran_COMPILER_NAMES_Flang flang)
- set(_Fortran_COMPILER_NAMES_PathScale pathf2003 pathf95 pathf90)
- set(_Fortran_COMPILER_NAMES_XL xlf)
- set(_Fortran_COMPILER_NAMES_VisualAge xlf95 xlf90 xlf)
- set(_Fortran_COMPILER_NAMES_NAG nagfor)
- endif()
-
- _cmake_find_compiler(Fortran)
-
- else()
- _cmake_find_compiler_path(Fortran)
- endif()
- mark_as_advanced(CMAKE_Fortran_COMPILER)
-
- # Each entry in this list is a set of extra flags to try
- # adding to the compile line to see if it helps produce
- # a valid identification executable.
- set(CMAKE_Fortran_COMPILER_ID_TEST_FLAGS_FIRST
- # Get verbose output to help distinguish compilers.
- "-v"
- )
- set(CMAKE_Fortran_COMPILER_ID_TEST_FLAGS
- # Try compiling to an object file only.
- "-c"
-
- # Intel on windows does not preprocess by default.
- "-fpp"
- )
-endif()
-
-# Build a small source file to identify the compiler.
-if(NOT CMAKE_Fortran_COMPILER_ID_RUN)
- set(CMAKE_Fortran_COMPILER_ID_RUN 1)
-
- # Table of per-vendor compiler output regular expressions.
- list(APPEND CMAKE_Fortran_COMPILER_ID_MATCH_VENDORS CCur)
- set(CMAKE_Fortran_COMPILER_ID_MATCH_VENDOR_REGEX_CCur "Concurrent Fortran [0-9]+ Compiler")
-
- # Table of per-vendor compiler id flags with expected output.
- list(APPEND CMAKE_Fortran_COMPILER_ID_VENDORS Compaq)
- set(CMAKE_Fortran_COMPILER_ID_VENDOR_FLAGS_Compaq "-what")
- set(CMAKE_Fortran_COMPILER_ID_VENDOR_REGEX_Compaq "Compaq Visual Fortran")
- list(APPEND CMAKE_Fortran_COMPILER_ID_VENDORS NAG) # Numerical Algorithms Group
- set(CMAKE_Fortran_COMPILER_ID_VENDOR_FLAGS_NAG "-V")
- set(CMAKE_Fortran_COMPILER_ID_VENDOR_REGEX_NAG "NAG Fortran Compiler")
-
- # Match the link line from xcodebuild output of the form
- # Ld ...
- # ...
- # /path/to/cc ...CompilerIdFortran/...
- # to extract the compiler front-end for the language.
- set(CMAKE_Fortran_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdFortran/(\\./)?(CompilerIdFortran.xctest/)?CompilerIdFortran[ \t\n\\\"]")
- set(CMAKE_Fortran_COMPILER_ID_TOOL_MATCH_INDEX 2)
-
- set(_version_info "")
- foreach(m MAJOR MINOR PATCH TWEAK)
- set(_COMP "_${m}")
- string(APPEND _version_info "
-#if defined(COMPILER_VERSION${_COMP})")
- foreach(d 1 2 3 4 5 6 7 8)
- string(APPEND _version_info "
-# undef DEC
-# undef HEX
-# define DEC(n) DEC_${d}(n)
-# define HEX(n) HEX_${d}(n)
-# if COMPILER_VERSION${_COMP} == 0
- PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[0]'
-# elif COMPILER_VERSION${_COMP} == 1
- PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[1]'
-# elif COMPILER_VERSION${_COMP} == 2
- PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[2]'
-# elif COMPILER_VERSION${_COMP} == 3
- PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[3]'
-# elif COMPILER_VERSION${_COMP} == 4
- PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[4]'
-# elif COMPILER_VERSION${_COMP} == 5
- PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[5]'
-# elif COMPILER_VERSION${_COMP} == 6
- PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[6]'
-# elif COMPILER_VERSION${_COMP} == 7
- PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[7]'
-# elif COMPILER_VERSION${_COMP} == 8
- PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[8]'
-# elif COMPILER_VERSION${_COMP} == 9
- PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[9]'
-# endif
-")
- endforeach()
- string(APPEND _version_info "
-#endif")
- endforeach()
- set(CMAKE_Fortran_COMPILER_ID_VERSION_INFO "${_version_info}")
- unset(_version_info)
- unset(_COMP)
-
- # Try to identify the compiler.
- set(CMAKE_Fortran_COMPILER_ID)
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
- CMAKE_DETERMINE_COMPILER_ID(Fortran FFLAGS CMakeFortranCompilerId.F)
-
- # Fall back to old is-GNU test.
- if(NOT CMAKE_Fortran_COMPILER_ID)
- execute_process(COMMAND ${CMAKE_Fortran_COMPILER} ${CMAKE_Fortran_COMPILER_ID_FLAGS_LIST} -E "${CMAKE_ROOT}/Modules/CMakeTestGNU.c"
- OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT RESULT_VARIABLE CMAKE_COMPILER_RETURN)
- if(NOT CMAKE_COMPILER_RETURN)
- if(CMAKE_COMPILER_OUTPUT MATCHES "THIS_IS_GNU")
- set(CMAKE_Fortran_COMPILER_ID "GNU")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the Fortran compiler is GNU succeeded with "
- "the following output:\n${CMAKE_COMPILER_OUTPUT}\n\n")
- else()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the Fortran compiler is GNU failed with "
- "the following output:\n${CMAKE_COMPILER_OUTPUT}\n\n")
- endif()
- if(NOT CMAKE_Fortran_PLATFORM_ID)
- if(CMAKE_COMPILER_OUTPUT MATCHES "THIS_IS_MINGW")
- set(CMAKE_Fortran_PLATFORM_ID "MinGW")
- endif()
- if(CMAKE_COMPILER_OUTPUT MATCHES "THIS_IS_CYGWIN")
- set(CMAKE_Fortran_PLATFORM_ID "Cygwin")
- endif()
- endif()
- endif()
- endif()
-
- # Fall back for GNU MINGW, which is not always detected correctly
- # (__MINGW32__ is defined for the C language, but perhaps not for Fortran!)
- if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU" AND NOT CMAKE_Fortran_PLATFORM_ID)
- execute_process(COMMAND ${CMAKE_Fortran_COMPILER} ${CMAKE_Fortran_COMPILER_ID_FLAGS_LIST} -E "${CMAKE_ROOT}/Modules/CMakeTestGNU.c"
- OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT RESULT_VARIABLE CMAKE_COMPILER_RETURN)
- if(NOT CMAKE_COMPILER_RETURN)
- if(CMAKE_COMPILER_OUTPUT MATCHES "THIS_IS_MINGW")
- set(CMAKE_Fortran_PLATFORM_ID "MinGW")
- endif()
- if(CMAKE_COMPILER_OUTPUT MATCHES "THIS_IS_CYGWIN")
- set(CMAKE_Fortran_PLATFORM_ID "Cygwin")
- endif()
- endif()
- endif()
-
- # Set old compiler and platform id variables.
- if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
- set(CMAKE_COMPILER_IS_GNUG77 1)
- endif()
- if(CMAKE_Fortran_PLATFORM_ID MATCHES "MinGW")
- set(CMAKE_COMPILER_IS_MINGW 1)
- elseif(CMAKE_Fortran_PLATFORM_ID MATCHES "Cygwin")
- set(CMAKE_COMPILER_IS_CYGWIN 1)
- endif()
-endif()
-
-if (NOT _CMAKE_TOOLCHAIN_LOCATION)
- get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_Fortran_COMPILER}" PATH)
-endif ()
-
-# if we have a fortran cross compiler, they have usually some prefix, like
-# e.g. powerpc-linux-gfortran, arm-elf-gfortran or i586-mingw32msvc-gfortran , optionally
-# with a 3-component version number at the end (e.g. arm-eabi-gcc-4.5.2).
-# The other tools of the toolchain usually have the same prefix
-# NAME_WE cannot be used since then this test will fail for names like
-# "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be
-# "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
-if (CMAKE_CROSSCOMPILING AND NOT _CMAKE_TOOLCHAIN_PREFIX)
-
- if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
- get_filename_component(COMPILER_BASENAME "${CMAKE_Fortran_COMPILER}" NAME)
- if (COMPILER_BASENAME MATCHES "^(.+-)g?fortran(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
- set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
- endif ()
-
- # if "llvm-" is part of the prefix, remove it, since llvm doesn't have its own binutils
- # but uses the regular ar, objcopy, etc. (instead of llvm-objcopy etc.)
- if ("${_CMAKE_TOOLCHAIN_PREFIX}" MATCHES "(.+-)?llvm-$")
- set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
- endif ()
- endif()
-
-endif ()
-
-set(_CMAKE_PROCESSING_LANGUAGE "Fortran")
-include(CMakeFindBinUtils)
-include(Compiler/${CMAKE_Fortran_COMPILER_ID}-FindBinUtils OPTIONAL)
-unset(_CMAKE_PROCESSING_LANGUAGE)
-
-if(CMAKE_Fortran_COMPILER_ARCHITECTURE_ID)
- set(_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID
- "set(CMAKE_Fortran_COMPILER_ARCHITECTURE_ID ${CMAKE_Fortran_COMPILER_ARCHITECTURE_ID})")
-else()
- set(_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID "")
-endif()
-
-if(MSVC_Fortran_ARCHITECTURE_ID)
- set(SET_MSVC_Fortran_ARCHITECTURE_ID
- "set(MSVC_Fortran_ARCHITECTURE_ID ${MSVC_Fortran_ARCHITECTURE_ID})")
-endif()
-# configure variables set in this file for fast reload later on
-configure_file(${CMAKE_ROOT}/Modules/CMakeFortranCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeFortranCompiler.cmake
- @ONLY
- )
-set(CMAKE_Fortran_COMPILER_ENV_VAR "FC")
diff --git a/share/cmake-3.16/Modules/CMakeDetermineSwiftCompiler.cmake b/share/cmake-3.16/Modules/CMakeDetermineSwiftCompiler.cmake
deleted file mode 100644
index 9aafe48..0000000
--- a/share/cmake-3.16/Modules/CMakeDetermineSwiftCompiler.cmake
+++ /dev/null
@@ -1,78 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
-
-# Local system-specific compiler preferences for this language.
-include(Platform/${CMAKE_SYSTEM_NAME}-Determine-Swift OPTIONAL)
-include(Platform/${CMAKE_SYSTEM_NAME}-Swift OPTIONAL)
-if(NOT CMAKE_Swift_COMPILER_NAMES)
- set(CMAKE_Swift_COMPILER_NAMES swiftc)
-endif()
-
-if("${CMAKE_GENERATOR}" STREQUAL "Xcode")
- if(XCODE_VERSION VERSION_LESS 6.1)
- message(FATAL_ERROR "Swift language not supported by Xcode ${XCODE_VERSION}")
- endif()
- set(CMAKE_Swift_COMPILER_XCODE_TYPE sourcecode.swift)
- _cmake_find_compiler_path(Swift)
-elseif("${CMAKE_GENERATOR}" STREQUAL "Ninja")
- if(CMAKE_Swift_COMPILER)
- _cmake_find_compiler_path(Swift)
- else()
- set(CMAKE_Swift_COMPILER_INIT NOTFOUND)
-
- if(NOT $ENV{SWIFTC} STREQUAL "")
- get_filename_component(CMAKE_Swift_COMPILER_INIT $ENV{SWIFTC} PROGRAM
- PROGRAM_ARGS CMAKE_Swift_FLAGS_ENV_INIT)
- if(CMAKE_Swift_FLAGS_ENV_INIT)
- set(CMAKE_Swift_COMPILER_ARG1 "${CMAKE_Swift_FLAGS_ENV_INIT}" CACHE
- STRING "First argument to the Swift compiler")
- endif()
- if(NOT EXISTS ${CMAKE_Swift_COMPILER_INIT})
- message(FATAL_ERROR "Could not find compiler set in environment variable SWIFTC\n$ENV{SWIFTC}.\n${CMAKE_Swift_COMPILER_INIT}")
- endif()
- endif()
-
- if(NOT CMAKE_Swift_COMPILER_INIT)
- set(CMAKE_Swift_COMPILER_LIST swiftc ${_CMAKE_TOOLCHAIN_PREFIX}swiftc)
- endif()
-
- _cmake_find_compiler(Swift)
- endif()
- mark_as_advanced(CMAKE_Swift_COMPILER)
-else()
- message(FATAL_ERROR "Swift language not supported by \"${CMAKE_GENERATOR}\" generator")
-endif()
-
-# Build a small source file to identify the compiler.
-if(NOT CMAKE_Swift_COMPILER_ID_RUN)
- set(CMAKE_Swift_COMPILER_ID_RUN 1)
-
- if("${CMAKE_GENERATOR}" STREQUAL "Xcode")
- list(APPEND CMAKE_Swift_COMPILER_ID_MATCH_VENDORS Apple)
- set(CMAKE_Swift_COMPILER_ID_MATCH_VENDOR_REGEX_Apple "com.apple.xcode.tools.swift.compiler")
-
- set(CMAKE_Swift_COMPILER_ID_TOOL_MATCH_REGEX "\nCompileSwift[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]* -c[^\r\n]*CompilerIdSwift/CompilerId/main.swift")
- set(CMAKE_Swift_COMPILER_ID_TOOL_MATCH_INDEX 2)
- endif()
-
- # Try to identify the compiler.
- set(CMAKE_Swift_COMPILER_ID)
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
- CMAKE_DETERMINE_COMPILER_ID(Swift "" CompilerId/main.swift)
-endif()
-
-if (NOT _CMAKE_TOOLCHAIN_LOCATION)
- get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_Swift_COMPILER}" PATH)
-endif ()
-
-set(_CMAKE_PROCESSING_LANGUAGE "Swift")
-include(CMakeFindBinUtils)
-unset(_CMAKE_PROCESSING_LANGUAGE)
-
-# configure variables set in this file for fast reload later on
-configure_file(${CMAKE_ROOT}/Modules/CMakeSwiftCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeSwiftCompiler.cmake @ONLY)
-
-set(CMAKE_Swift_COMPILER_ENV_VAR "SWIFTC")
diff --git a/share/cmake-3.16/Modules/CMakeDetermineSystem.cmake b/share/cmake-3.16/Modules/CMakeDetermineSystem.cmake
deleted file mode 100644
index dc208c6..0000000
--- a/share/cmake-3.16/Modules/CMakeDetermineSystem.cmake
+++ /dev/null
@@ -1,189 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This module is used by the Makefile generator to determine the following variables:
-# CMAKE_SYSTEM_NAME - on unix this is uname -s, for windows it is Windows
-# CMAKE_SYSTEM_VERSION - on unix this is uname -r, for windows it is empty
-# CMAKE_SYSTEM - ${CMAKE_SYSTEM}-${CMAKE_SYSTEM_VERSION}, for windows: ${CMAKE_SYSTEM}
-#
-# Expected uname -s output:
-#
-# AIX AIX
-# BSD/OS BSD/OS
-# FreeBSD FreeBSD
-# HP-UX HP-UX
-# Linux Linux
-# GNU/kFreeBSD GNU/kFreeBSD
-# NetBSD NetBSD
-# OpenBSD OpenBSD
-# OFS/1 (Digital Unix) OSF1
-# SCO OpenServer 5 SCO_SV
-# SCO UnixWare 7 UnixWare
-# SCO UnixWare (pre release 7) UNIX_SV
-# SCO XENIX Xenix
-# Solaris SunOS
-# SunOS SunOS
-# Tru64 Tru64
-# Ultrix ULTRIX
-# cygwin CYGWIN_NT-5.1
-# MacOSX Darwin
-
-
-# find out on which system cmake runs
-if(CMAKE_HOST_UNIX)
- find_program(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin )
- if(CMAKE_UNAME)
- if(CMAKE_HOST_SYSTEM_NAME STREQUAL "AIX")
- exec_program(${CMAKE_UNAME} ARGS -v OUTPUT_VARIABLE _CMAKE_HOST_SYSTEM_MAJOR_VERSION)
- exec_program(${CMAKE_UNAME} ARGS -r OUTPUT_VARIABLE _CMAKE_HOST_SYSTEM_MINOR_VERSION)
- set(CMAKE_HOST_SYSTEM_VERSION "${_CMAKE_HOST_SYSTEM_MAJOR_VERSION}.${_CMAKE_HOST_SYSTEM_MINOR_VERSION}")
- unset(_CMAKE_HOST_SYSTEM_MAJOR_VERSION)
- unset(_CMAKE_HOST_SYSTEM_MINOR_VERSION)
- else()
- exec_program(${CMAKE_UNAME} ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION)
- endif()
- if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|CYGWIN.*|Darwin|^GNU$")
- exec_program(${CMAKE_UNAME} ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
- RETURN_VALUE val)
- if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin" AND
- CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "Power Macintosh")
- # OS X ppc 'uname -m' may report 'Power Macintosh' instead of 'powerpc'
- set(CMAKE_HOST_SYSTEM_PROCESSOR "powerpc")
- endif()
- elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "OpenBSD")
- exec_program(arch ARGS -s OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
- RETURN_VALUE val)
- else()
- exec_program(${CMAKE_UNAME} ARGS -p OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
- RETURN_VALUE val)
- if("${val}" GREATER 0)
- exec_program(${CMAKE_UNAME} ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
- RETURN_VALUE val)
- endif()
- endif()
- # check the return of the last uname -m or -p
- if("${val}" GREATER 0)
- set(CMAKE_HOST_SYSTEM_PROCESSOR "unknown")
- endif()
- set(CMAKE_UNAME ${CMAKE_UNAME} CACHE INTERNAL "uname command")
- # processor may have double quote in the name, and that needs to be removed
- string(REPLACE "\"" "" CMAKE_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}")
- string(REPLACE "/" "_" CMAKE_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}")
- endif()
-else()
- if(CMAKE_HOST_WIN32)
- if (DEFINED ENV{PROCESSOR_ARCHITEW6432})
- set (CMAKE_HOST_SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITEW6432}")
- else()
- set (CMAKE_HOST_SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITECTURE}")
- endif()
- endif()
-endif()
-
-# if a toolchain file is used, the user wants to cross compile.
-# in this case read the toolchain file and keep the CMAKE_HOST_SYSTEM_*
-# variables around so they can be used in CMakeLists.txt.
-# In all other cases, the host and target platform are the same.
-if(CMAKE_TOOLCHAIN_FILE)
- # at first try to load it as path relative to the directory from which cmake has been run
- include("${CMAKE_BINARY_DIR}/${CMAKE_TOOLCHAIN_FILE}" OPTIONAL RESULT_VARIABLE _INCLUDED_TOOLCHAIN_FILE)
- if(NOT _INCLUDED_TOOLCHAIN_FILE)
- # if the file isn't found there, check the default locations
- include("${CMAKE_TOOLCHAIN_FILE}" OPTIONAL RESULT_VARIABLE _INCLUDED_TOOLCHAIN_FILE)
- endif()
-
- if(_INCLUDED_TOOLCHAIN_FILE)
- set(CMAKE_TOOLCHAIN_FILE "${_INCLUDED_TOOLCHAIN_FILE}" CACHE FILEPATH "The CMake toolchain file" FORCE)
- else()
- message(FATAL_ERROR "Could not find toolchain file: ${CMAKE_TOOLCHAIN_FILE}")
- set(CMAKE_TOOLCHAIN_FILE "NOTFOUND" CACHE FILEPATH "The CMake toolchain file" FORCE)
- endif()
-endif()
-
-
-# if CMAKE_SYSTEM_NAME is here already set, either it comes from a toolchain file
-# or it was set via -DCMAKE_SYSTEM_NAME=...
-# if that's the case, assume we are crosscompiling
-if(CMAKE_SYSTEM_NAME)
- if(NOT DEFINED CMAKE_CROSSCOMPILING)
- set(CMAKE_CROSSCOMPILING TRUE)
- endif()
- set(PRESET_CMAKE_SYSTEM_NAME TRUE)
-elseif(CMAKE_VS_WINCE_VERSION)
- set(CMAKE_SYSTEM_NAME "WindowsCE")
- set(CMAKE_SYSTEM_VERSION "${CMAKE_VS_WINCE_VERSION}")
- set(CMAKE_SYSTEM_PROCESSOR "${MSVC_C_ARCHITECTURE_ID}")
- set(CMAKE_CROSSCOMPILING TRUE)
- set(PRESET_CMAKE_SYSTEM_NAME TRUE)
-else()
- set(CMAKE_SYSTEM_NAME "${CMAKE_HOST_SYSTEM_NAME}")
- if(NOT DEFINED CMAKE_SYSTEM_VERSION)
- set(CMAKE_SYSTEM_VERSION "${CMAKE_HOST_SYSTEM_VERSION}")
- endif()
- set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}")
- set(CMAKE_CROSSCOMPILING FALSE)
- set(PRESET_CMAKE_SYSTEM_NAME FALSE)
-endif()
-
-include(Platform/${CMAKE_SYSTEM_NAME}-Determine OPTIONAL)
-
-macro(ADJUST_CMAKE_SYSTEM_VARIABLES _PREFIX)
- if(NOT ${_PREFIX}_NAME)
- set(${_PREFIX}_NAME "UnknownOS")
- endif()
-
- # fix for BSD/OS , remove the /
- if(${_PREFIX}_NAME MATCHES BSD.OS)
- set(${_PREFIX}_NAME BSDOS)
- endif()
-
- # fix for GNU/kFreeBSD, remove the GNU/
- if(${_PREFIX}_NAME MATCHES kFreeBSD)
- set(${_PREFIX}_NAME kFreeBSD)
- endif()
-
- # fix for CYGWIN which has windows version in it
- if(${_PREFIX}_NAME MATCHES CYGWIN)
- set(${_PREFIX}_NAME CYGWIN)
- endif()
-
- # set CMAKE_SYSTEM to the CMAKE_SYSTEM_NAME
- set(${_PREFIX} ${${_PREFIX}_NAME})
- # if there is a CMAKE_SYSTEM_VERSION then add a -${CMAKE_SYSTEM_VERSION}
- if(${_PREFIX}_VERSION)
- set(${_PREFIX} ${${_PREFIX}}-${${_PREFIX}_VERSION})
- endif()
-
-endmacro()
-
-ADJUST_CMAKE_SYSTEM_VARIABLES(CMAKE_SYSTEM)
-ADJUST_CMAKE_SYSTEM_VARIABLES(CMAKE_HOST_SYSTEM)
-
-# this file is also executed from cpack, then we don't need to generate these files
-# in this case there is no CMAKE_BINARY_DIR
-if(CMAKE_BINARY_DIR)
- # write entry to the log file
- if(PRESET_CMAKE_SYSTEM_NAME)
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "The target system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "The host system is: ${CMAKE_HOST_SYSTEM_NAME} - ${CMAKE_HOST_SYSTEM_VERSION} - ${CMAKE_HOST_SYSTEM_PROCESSOR}\n")
- else()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "The system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n")
- endif()
-
- # if a toolchain file is used, it needs to be included in the configured file,
- # so settings done there are also available if they don't go in the cache and in try_compile()
- set(INCLUDE_CMAKE_TOOLCHAIN_FILE_IF_REQUIRED)
- if(CMAKE_TOOLCHAIN_FILE)
- set(INCLUDE_CMAKE_TOOLCHAIN_FILE_IF_REQUIRED "include(\"${CMAKE_TOOLCHAIN_FILE}\")")
- endif()
-
- # configure variables set in this file for fast reload, the template file is defined at the top of this file
- configure_file(${CMAKE_ROOT}/Modules/CMakeSystem.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeSystem.cmake
- @ONLY)
-
-endif()
diff --git a/share/cmake-3.16/Modules/CMakeFortranCompiler.cmake.in b/share/cmake-3.16/Modules/CMakeFortranCompiler.cmake.in
deleted file mode 100644
index ae7b73a..0000000
--- a/share/cmake-3.16/Modules/CMakeFortranCompiler.cmake.in
+++ /dev/null
@@ -1,67 +0,0 @@
-set(CMAKE_Fortran_COMPILER "@CMAKE_Fortran_COMPILER@")
-set(CMAKE_Fortran_COMPILER_ARG1 "@CMAKE_Fortran_COMPILER_ARG1@")
-set(CMAKE_Fortran_COMPILER_ID "@CMAKE_Fortran_COMPILER_ID@")
-set(CMAKE_Fortran_COMPILER_VERSION "@CMAKE_Fortran_COMPILER_VERSION@")
-set(CMAKE_Fortran_COMPILER_WRAPPER "@CMAKE_Fortran_COMPILER_WRAPPER@")
-set(CMAKE_Fortran_PLATFORM_ID "@CMAKE_Fortran_PLATFORM_ID@")
-set(CMAKE_Fortran_SIMULATE_ID "@CMAKE_Fortran_SIMULATE_ID@")
-set(CMAKE_Fortran_SIMULATE_VERSION "@CMAKE_Fortran_SIMULATE_VERSION@")
-@_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID@
-@SET_MSVC_Fortran_ARCHITECTURE_ID@
-set(CMAKE_AR "@CMAKE_AR@")
-set(CMAKE_Fortran_COMPILER_AR "@CMAKE_Fortran_COMPILER_AR@")
-set(CMAKE_RANLIB "@CMAKE_RANLIB@")
-set(CMAKE_Fortran_COMPILER_RANLIB "@CMAKE_Fortran_COMPILER_RANLIB@")
-set(CMAKE_COMPILER_IS_GNUG77 @CMAKE_COMPILER_IS_GNUG77@)
-set(CMAKE_Fortran_COMPILER_LOADED 1)
-set(CMAKE_Fortran_COMPILER_WORKS @CMAKE_Fortran_COMPILER_WORKS@)
-set(CMAKE_Fortran_ABI_COMPILED @CMAKE_Fortran_ABI_COMPILED@)
-set(CMAKE_COMPILER_IS_MINGW @CMAKE_COMPILER_IS_MINGW@)
-set(CMAKE_COMPILER_IS_CYGWIN @CMAKE_COMPILER_IS_CYGWIN@)
-if(CMAKE_COMPILER_IS_CYGWIN)
- set(CYGWIN 1)
- set(UNIX 1)
-endif()
-
-set(CMAKE_Fortran_COMPILER_ENV_VAR "FC")
-
-set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 @CMAKE_Fortran_COMPILER_SUPPORTS_F90@)
-
-if(CMAKE_COMPILER_IS_MINGW)
- set(MINGW 1)
-endif()
-set(CMAKE_Fortran_COMPILER_ID_RUN 1)
-set(CMAKE_Fortran_SOURCE_FILE_EXTENSIONS f;F;fpp;FPP;f77;F77;f90;F90;for;For;FOR;f95;F95)
-set(CMAKE_Fortran_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
-set(CMAKE_Fortran_LINKER_PREFERENCE 20)
-if(UNIX)
- set(CMAKE_Fortran_OUTPUT_EXTENSION .o)
-else()
- set(CMAKE_Fortran_OUTPUT_EXTENSION .obj)
-endif()
-
-# Save compiler ABI information.
-set(CMAKE_Fortran_SIZEOF_DATA_PTR "@CMAKE_Fortran_SIZEOF_DATA_PTR@")
-set(CMAKE_Fortran_COMPILER_ABI "@CMAKE_Fortran_COMPILER_ABI@")
-set(CMAKE_Fortran_LIBRARY_ARCHITECTURE "@CMAKE_Fortran_LIBRARY_ARCHITECTURE@")
-
-if(CMAKE_Fortran_SIZEOF_DATA_PTR AND NOT CMAKE_SIZEOF_VOID_P)
- set(CMAKE_SIZEOF_VOID_P "${CMAKE_Fortran_SIZEOF_DATA_PTR}")
-endif()
-
-if(CMAKE_Fortran_COMPILER_ABI)
- set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_Fortran_COMPILER_ABI}")
-endif()
-
-if(CMAKE_Fortran_LIBRARY_ARCHITECTURE)
- set(CMAKE_LIBRARY_ARCHITECTURE "@CMAKE_Fortran_LIBRARY_ARCHITECTURE@")
-endif()
-
-@CMAKE_Fortran_COMPILER_CUSTOM_CODE@
-@CMAKE_Fortran_SYSROOT_FLAG_CODE@
-@CMAKE_Fortran_OSX_DEPLOYMENT_TARGET_FLAG_CODE@
-
-set(CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES "@CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES@")
-set(CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES "@CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES@")
-set(CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES "@CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES@")
-set(CMAKE_Fortran_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "@CMAKE_Fortran_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES@")
diff --git a/share/cmake-3.16/Modules/CMakeFortranInformation.cmake b/share/cmake-3.16/Modules/CMakeFortranInformation.cmake
deleted file mode 100644
index ffa6a24..0000000
--- a/share/cmake-3.16/Modules/CMakeFortranInformation.cmake
+++ /dev/null
@@ -1,217 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-include(CMakeLanguageInformation)
-
-# This file sets the basic flags for the Fortran language in CMake.
-# It also loads the available platform file for the system-compiler
-# if it exists.
-
-set(_INCLUDED_FILE 0)
-
-# Load compiler-specific information.
-if(CMAKE_Fortran_COMPILER_ID)
- include(Compiler/${CMAKE_Fortran_COMPILER_ID}-Fortran OPTIONAL)
-endif()
-
-set(CMAKE_BASE_NAME)
-get_filename_component(CMAKE_BASE_NAME "${CMAKE_Fortran_COMPILER}" NAME_WE)
-# since the gnu compiler has several names force g++
-if(CMAKE_COMPILER_IS_GNUG77)
- set(CMAKE_BASE_NAME g77)
-endif()
-if(CMAKE_Fortran_COMPILER_ID)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_Fortran_COMPILER_ID}-Fortran OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
-endif()
-if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL
- RESULT_VARIABLE _INCLUDED_FILE)
-endif ()
-
-# load any compiler-wrapper specific information
-if (CMAKE_Fortran_COMPILER_WRAPPER)
- __cmake_include_compiler_wrapper(Fortran)
-endif ()
-
-# We specify the compiler information in the system file for some
-# platforms, but this language may not have been enabled when the file
-# was first included. Include it again to get the language info.
-# Remove this when all compiler info is removed from system files.
-if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_SYSTEM_NAME} OPTIONAL)
-endif ()
-
-if(CMAKE_Fortran_SIZEOF_DATA_PTR)
- foreach(f ${CMAKE_Fortran_ABI_FILES})
- include(${f})
- endforeach()
- unset(CMAKE_Fortran_ABI_FILES)
-endif()
-
-# This should be included before the _INIT variables are
-# used to initialize the cache. Since the rule variables
-# have if blocks on them, users can still define them here.
-# But, it should still be after the platform file so changes can
-# be made to those values.
-
-if(CMAKE_USER_MAKE_RULES_OVERRIDE)
- # Save the full path of the file so try_compile can use it.
- include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
- set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
-endif()
-
-if(CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran)
- # Save the full path of the file so try_compile can use it.
- include(${CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran} RESULT_VARIABLE _override)
- set(CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran "${_override}")
-endif()
-
-if(NOT CMAKE_Fortran_COMPILE_OPTIONS_PIC)
- set(CMAKE_Fortran_COMPILE_OPTIONS_PIC ${CMAKE_C_COMPILE_OPTIONS_PIC})
-endif()
-
-if(NOT CMAKE_Fortran_COMPILE_OPTIONS_PIE)
- set(CMAKE_Fortran_COMPILE_OPTIONS_PIE ${CMAKE_C_COMPILE_OPTIONS_PIE})
-endif()
-if(NOT CMAKE_Fortran_LINK_OPTIONS_PIE)
- set(CMAKE_Fortran_LINK_OPTIONS_PIE ${CMAKE_C_LINK_OPTIONS_PIE})
-endif()
-if(NOT CMAKE_Fortran_LINK_OPTIONS_NO_PIE)
- set(CMAKE_Fortran_LINK_OPTIONS_NO_PIE ${CMAKE_C_LINK_OPTIONS_NO_PIE})
-endif()
-
-if(NOT CMAKE_Fortran_COMPILE_OPTIONS_DLL)
- set(CMAKE_Fortran_COMPILE_OPTIONS_DLL ${CMAKE_C_COMPILE_OPTIONS_DLL})
-endif()
-
-# Create a set of shared library variable specific to Fortran
-# For 90% of the systems, these are the same flags as the C versions
-# so if these are not set just copy the flags from the c version
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS)
- set(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_Fortran_FLAGS)
- set(CMAKE_SHARED_LIBRARY_Fortran_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS)
- set(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG)
- set(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP)
- set(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_RPATH_LINK_Fortran_FLAG)
- set(CMAKE_SHARED_LIBRARY_RPATH_LINK_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_EXE_EXPORTS_Fortran_FLAG)
- set(CMAKE_EXE_EXPORTS_Fortran_FLAG ${CMAKE_EXE_EXPORTS_C_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG)
- set(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_SONAME_C_FLAG})
-endif()
-
-# for most systems a module is the same as a shared library
-# so unless the variable CMAKE_MODULE_EXISTS is set just
-# copy the values from the LIBRARY variables
-if(NOT CMAKE_MODULE_EXISTS)
- set(CMAKE_SHARED_MODULE_Fortran_FLAGS ${CMAKE_SHARED_LIBRARY_Fortran_FLAGS})
- set(CMAKE_SHARED_MODULE_CREATE_Fortran_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS})
-endif()
-
-# repeat for modules
-if(NOT DEFINED CMAKE_SHARED_MODULE_CREATE_Fortran_FLAGS)
- set(CMAKE_SHARED_MODULE_CREATE_Fortran_FLAGS ${CMAKE_SHARED_MODULE_CREATE_C_FLAGS})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_MODULE_Fortran_FLAGS)
- set(CMAKE_SHARED_MODULE_Fortran_FLAGS ${CMAKE_SHARED_MODULE_C_FLAGS})
-endif()
-
-if(NOT DEFINED CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG)
- set(CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG_SEP)
- set(CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP})
-endif()
-
-if(NOT DEFINED CMAKE_EXECUTABLE_RPATH_LINK_Fortran_FLAG)
- set(CMAKE_EXECUTABLE_RPATH_LINK_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_Fortran_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_Fortran_WITH_RUNTIME_PATH)
- set(CMAKE_SHARED_LIBRARY_LINK_Fortran_WITH_RUNTIME_PATH ${CMAKE_SHARED_LIBRARY_LINK_C_WITH_RUNTIME_PATH})
-endif()
-
-if(NOT CMAKE_INCLUDE_FLAG_Fortran)
- set(CMAKE_INCLUDE_FLAG_Fortran ${CMAKE_INCLUDE_FLAG_C})
-endif()
-
-set(CMAKE_VERBOSE_MAKEFILE FALSE CACHE BOOL "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo.")
-
-set(CMAKE_Fortran_FLAGS_INIT "$ENV{FFLAGS} ${CMAKE_Fortran_FLAGS_INIT}")
-
-cmake_initialize_per_config_variable(CMAKE_Fortran_FLAGS "Flags used by the Fortran compiler")
-
-include(CMakeCommonLanguageInclude)
-
-# now define the following rule variables
-# CMAKE_Fortran_CREATE_SHARED_LIBRARY
-# CMAKE_Fortran_CREATE_SHARED_MODULE
-# CMAKE_Fortran_COMPILE_OBJECT
-# CMAKE_Fortran_LINK_EXECUTABLE
-
-# create a Fortran shared library
-if(NOT CMAKE_Fortran_CREATE_SHARED_LIBRARY)
- set(CMAKE_Fortran_CREATE_SHARED_LIBRARY
- "<CMAKE_Fortran_COMPILER> <CMAKE_SHARED_LIBRARY_Fortran_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
-endif()
-
-# create a Fortran shared module just copy the shared library rule
-if(NOT CMAKE_Fortran_CREATE_SHARED_MODULE)
- set(CMAKE_Fortran_CREATE_SHARED_MODULE ${CMAKE_Fortran_CREATE_SHARED_LIBRARY})
-endif()
-
-# Create a static archive incrementally for large object file counts.
-# If CMAKE_Fortran_CREATE_STATIC_LIBRARY is set it will override these.
-if(NOT DEFINED CMAKE_Fortran_ARCHIVE_CREATE)
- set(CMAKE_Fortran_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
-endif()
-if(NOT DEFINED CMAKE_Fortran_ARCHIVE_APPEND)
- set(CMAKE_Fortran_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
-endif()
-if(NOT DEFINED CMAKE_Fortran_ARCHIVE_FINISH)
- set(CMAKE_Fortran_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
-endif()
-
-# compile a Fortran file into an object file
-# (put -o after -c to workaround bug in at least one mpif77 wrapper)
-if(NOT CMAKE_Fortran_COMPILE_OBJECT)
- set(CMAKE_Fortran_COMPILE_OBJECT
- "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -c <SOURCE> -o <OBJECT>")
-endif()
-
-# link a fortran program
-if(NOT CMAKE_Fortran_LINK_EXECUTABLE)
- set(CMAKE_Fortran_LINK_EXECUTABLE
- "<CMAKE_Fortran_COMPILER> <CMAKE_Fortran_LINK_FLAGS> <LINK_FLAGS> <FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-endif()
-
-if(CMAKE_Fortran_STANDARD_LIBRARIES_INIT)
- set(CMAKE_Fortran_STANDARD_LIBRARIES "${CMAKE_Fortran_STANDARD_LIBRARIES_INIT}"
- CACHE STRING "Libraries linked by default with all Fortran applications.")
- mark_as_advanced(CMAKE_Fortran_STANDARD_LIBRARIES)
-endif()
-
-# set this variable so we can avoid loading this more than once.
-set(CMAKE_Fortran_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.16/Modules/CMakeGenericSystem.cmake b/share/cmake-3.16/Modules/CMakeGenericSystem.cmake
deleted file mode 100644
index 77d8cfd..0000000
--- a/share/cmake-3.16/Modules/CMakeGenericSystem.cmake
+++ /dev/null
@@ -1,187 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-include(CMakeInitializeConfigs)
-
-set(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic
-set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared
-set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib
-set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath
-set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty
-set(CMAKE_INCLUDE_FLAG_C "-I") # -I
-set(CMAKE_LIBRARY_PATH_FLAG "-L")
-set(CMAKE_LIBRARY_PATH_TERMINATOR "") # for the Digital Mars D compiler the link paths have to be terminated with a "/"
-set(CMAKE_LINK_LIBRARY_FLAG "-l")
-
-set(CMAKE_LINK_LIBRARY_SUFFIX "")
-set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
-set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
-set(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib
-set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") # .so
-set(CMAKE_EXECUTABLE_SUFFIX "") # .exe
-set(CMAKE_DL_LIBS "dl")
-
-set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
-set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a")
-
-set(CMAKE_AUTOGEN_ORIGIN_DEPENDS ON)
-set(CMAKE_AUTOMOC_COMPILER_PREDEFINES ON)
-set(CMAKE_AUTOMOC_PATH_PREFIX ON)
-set(CMAKE_AUTOMOC_MACRO_NAMES "Q_OBJECT" "Q_GADGET" "Q_NAMESPACE")
-
-# basically all general purpose OSs support shared libs
-set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)
-
-set (CMAKE_SKIP_RPATH "NO" CACHE BOOL
- "If set, runtime paths are not added when using shared libraries.")
-set (CMAKE_SKIP_INSTALL_RPATH "NO" CACHE BOOL
- "If set, runtime paths are not added when installing shared libraries, but are added when building.")
-
-set(CMAKE_VERBOSE_MAKEFILE FALSE CACHE BOOL "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo.")
-
-if(CMAKE_GENERATOR MATCHES "Make")
- set(CMAKE_COLOR_MAKEFILE ON CACHE BOOL
- "Enable/Disable color output during build."
- )
- mark_as_advanced(CMAKE_COLOR_MAKEFILE)
- if(DEFINED CMAKE_RULE_MESSAGES)
- set_property(GLOBAL PROPERTY RULE_MESSAGES ${CMAKE_RULE_MESSAGES})
- endif()
- if(DEFINED CMAKE_TARGET_MESSAGES)
- set_property(GLOBAL PROPERTY TARGET_MESSAGES ${CMAKE_TARGET_MESSAGES})
- endif()
- if(CMAKE_GENERATOR MATCHES "Unix Makefiles")
- set(CMAKE_EXPORT_COMPILE_COMMANDS OFF CACHE BOOL
- "Enable/Disable output of compile commands during generation."
- )
- mark_as_advanced(CMAKE_EXPORT_COMPILE_COMMANDS)
- endif()
-endif()
-
-if(CMAKE_GENERATOR MATCHES "Ninja")
- set(CMAKE_EXPORT_COMPILE_COMMANDS OFF CACHE BOOL
- "Enable/Disable output of compile commands during generation."
- )
- mark_as_advanced(CMAKE_EXPORT_COMPILE_COMMANDS)
-endif()
-
-# GetDefaultWindowsPrefixBase
-#
-# Compute the base directory for CMAKE_INSTALL_PREFIX based on:
-# - is this 32-bit or 64-bit Windows
-# - is this 32-bit or 64-bit CMake running
-# - what architecture targets will be built
-#
-function(GetDefaultWindowsPrefixBase var)
-
- # Try to guess what architecture targets will end up being built as,
- # even if CMAKE_SIZEOF_VOID_P is not computed yet... We need to know
- # the architecture of the targets being built to choose the right
- # default value for CMAKE_INSTALL_PREFIX.
- #
- if("${CMAKE_GENERATOR}" MATCHES "(Win64|IA64)")
- set(arch_hint "x64")
- elseif("${CMAKE_GENERATOR_PLATFORM}" MATCHES "ARM64")
- set(arch_hint "ARM64")
- elseif("${CMAKE_GENERATOR}" MATCHES "ARM")
- set(arch_hint "ARM")
- elseif("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
- set(arch_hint "x64")
- elseif("$ENV{LIB}" MATCHES "(amd64|ia64)")
- set(arch_hint "x64")
- endif()
-
- if(NOT arch_hint)
- set(arch_hint "x86")
- endif()
-
- # default env in a 64-bit app on Win64:
- # ProgramFiles=C:\Program Files
- # ProgramFiles(x86)=C:\Program Files (x86)
- # ProgramW6432=C:\Program Files
- #
- # default env in a 32-bit app on Win64:
- # ProgramFiles=C:\Program Files (x86)
- # ProgramFiles(x86)=C:\Program Files (x86)
- # ProgramW6432=C:\Program Files
- #
- # default env in a 32-bit app on Win32:
- # ProgramFiles=C:\Program Files
- # ProgramFiles(x86) NOT DEFINED
- # ProgramW6432 NOT DEFINED
-
- # By default, use the ProgramFiles env var as the base value of
- # CMAKE_INSTALL_PREFIX:
- #
- set(_PREFIX_ENV_VAR "ProgramFiles")
-
- if ("$ENV{ProgramW6432}" STREQUAL "")
- # running on 32-bit Windows
- # must be a 32-bit CMake, too...
- #message("guess: this is a 32-bit CMake running on 32-bit Windows")
- else()
- # running on 64-bit Windows
- if ("$ENV{ProgramW6432}" STREQUAL "$ENV{ProgramFiles}")
- # 64-bit CMake
- #message("guess: this is a 64-bit CMake running on 64-bit Windows")
- if(NOT "${arch_hint}" STREQUAL "x64")
- # building 32-bit targets
- set(_PREFIX_ENV_VAR "ProgramFiles(x86)")
- endif()
- else()
- # 32-bit CMake
- #message("guess: this is a 32-bit CMake running on 64-bit Windows")
- if("${arch_hint}" STREQUAL "x64")
- # building 64-bit targets
- set(_PREFIX_ENV_VAR "ProgramW6432")
- endif()
- endif()
- endif()
-
- #if("${arch_hint}" STREQUAL "x64")
- # message("guess: you are building a 64-bit app")
- #else()
- # message("guess: you are building a 32-bit app")
- #endif()
-
- if(NOT "$ENV{${_PREFIX_ENV_VAR}}" STREQUAL "")
- file(TO_CMAKE_PATH "$ENV{${_PREFIX_ENV_VAR}}" _base)
- elseif(NOT "$ENV{SystemDrive}" STREQUAL "")
- set(_base "$ENV{SystemDrive}/Program Files")
- else()
- set(_base "C:/Program Files")
- endif()
-
- set(${var} "${_base}" PARENT_SCOPE)
-endfunction()
-
-
-# Set a variable to indicate whether the value of CMAKE_INSTALL_PREFIX
-# was initialized by the block below. This is useful for user
-# projects to change the default prefix while still allowing the
-# command line to override it.
-if(NOT DEFINED CMAKE_INSTALL_PREFIX)
- set(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT 1)
-endif()
-
-# Choose a default install prefix for this platform.
-if(CMAKE_HOST_UNIX)
- set(CMAKE_INSTALL_PREFIX "/usr/local"
- CACHE PATH "Install path prefix, prepended onto install directories.")
-else()
- GetDefaultWindowsPrefixBase(CMAKE_GENERIC_PROGRAM_FILES)
- set(CMAKE_INSTALL_PREFIX
- "${CMAKE_GENERIC_PROGRAM_FILES}/${PROJECT_NAME}"
- CACHE PATH "Install path prefix, prepended onto install directories.")
- set(CMAKE_GENERIC_PROGRAM_FILES)
-endif()
-
-# Set a variable which will be used as component name in install() commands
-# where no COMPONENT has been given:
-set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "Unspecified")
-
-mark_as_advanced(
- CMAKE_SKIP_RPATH
- CMAKE_SKIP_INSTALL_RPATH
- CMAKE_VERBOSE_MAKEFILE
-)
diff --git a/share/cmake-3.16/Modules/CMakeGraphVizOptions.cmake b/share/cmake-3.16/Modules/CMakeGraphVizOptions.cmake
deleted file mode 100644
index 1911e73..0000000
--- a/share/cmake-3.16/Modules/CMakeGraphVizOptions.cmake
+++ /dev/null
@@ -1,123 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CMakeGraphVizOptions
---------------------
-
-The builtin graphviz support of CMake.
-
-Variables specific to the graphviz support
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-CMake
-can generate `graphviz <http://www.graphviz.org/>`_ files, showing the dependencies between the
-targets in a project and also external libraries which are linked
-against. When CMake is run with the ``--graphviz=foo.dot`` option, it will
-produce:
-
-* a ``foo.dot`` file showing all dependencies in the project
-* a ``foo.dot.<target>`` file for each target, file showing on which other targets the respective target depends
-* a ``foo.dot.<target>.dependers`` file, showing which other targets depend on the respective target
-
-The different dependency types ``PUBLIC``, ``PRIVATE`` and ``INTERFACE``
-are represented as solid, dashed and dotted edges.
-
-This can result in huge graphs. Using the file
-``CMakeGraphVizOptions.cmake`` the look and content of the generated
-graphs can be influenced. This file is searched first in
-:variable:`CMAKE_BINARY_DIR` and then in :variable:`CMAKE_SOURCE_DIR`. If found, it is
-read and the variables set in it are used to adjust options for the
-generated graphviz files.
-
-.. variable:: GRAPHVIZ_GRAPH_TYPE
-
- The graph type.
-
- * Mandatory : NO
- * Default : "digraph"
-
- Valid graph types are:
-
- * "graph" : Nodes are joined with lines
- * "digraph" : Nodes are joined with arrows showing direction
- * "strict graph" : Like "graph" but max one line between each node
- * "strict digraph" : Like "graph" but max one line between each node in each direction
-
-.. variable:: GRAPHVIZ_GRAPH_NAME
-
- The graph name.
-
- * Mandatory : NO
- * Default : "GG"
-
-.. variable:: GRAPHVIZ_GRAPH_HEADER
-
- The header written at the top of the graphviz file.
-
- * Mandatory : NO
- * Default : "node [n fontsize = "12"];"
-
-.. variable:: GRAPHVIZ_NODE_PREFIX
-
- The prefix for each node in the graphviz file.
-
- * Mandatory : NO
- * Default : "node"
-
-.. variable:: GRAPHVIZ_EXECUTABLES
-
- Set this to FALSE to exclude executables from the generated graphs.
-
- * Mandatory : NO
- * Default : TRUE
-
-.. variable:: GRAPHVIZ_STATIC_LIBS
-
- Set this to FALSE to exclude static libraries from the generated graphs.
-
- * Mandatory : NO
- * Default : TRUE
-
-.. variable:: GRAPHVIZ_SHARED_LIBS
-
- Set this to FALSE to exclude shared libraries from the generated graphs.
-
- * Mandatory : NO
- * Default : TRUE
-
-.. variable:: GRAPHVIZ_MODULE_LIBS
-
- Set this to FALSE to exclude module libraries from the generated graphs.
-
- * Mandatory : NO
- * Default : TRUE
-
-.. variable:: GRAPHVIZ_EXTERNAL_LIBS
-
- Set this to FALSE to exclude external libraries from the generated graphs.
-
- * Mandatory : NO
- * Default : TRUE
-
-.. variable:: GRAPHVIZ_IGNORE_TARGETS
-
- A list of regular expressions for ignoring targets.
-
- * Mandatory : NO
- * Default : empty
-
-.. variable:: GRAPHVIZ_GENERATE_PER_TARGET
-
- Set this to FALSE to exclude per target graphs ``foo.dot.<target>``.
-
- * Mandatory : NO
- * Default : TRUE
-
-.. variable:: GRAPHVIZ_GENERATE_DEPENDERS
-
- Set this to FALSE to exclude depender graphs ``foo.dot.<target>.dependers``.
-
- * Mandatory : NO
- * Default : TRUE
-#]=======================================================================]
diff --git a/share/cmake-3.16/Modules/CMakeMinGWFindMake.cmake b/share/cmake-3.16/Modules/CMakeMinGWFindMake.cmake
deleted file mode 100644
index 523f00c..0000000
--- a/share/cmake-3.16/Modules/CMakeMinGWFindMake.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-find_program(CMAKE_MAKE_PROGRAM mingw32-make.exe PATHS
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\MinGW;InstallLocation]/bin"
- c:/MinGW/bin /MinGW/bin
- "[HKEY_CURRENT_USER\\Software\\CodeBlocks;Path]/MinGW/bin"
- )
-find_program(CMAKE_SH sh.exe )
-if(CMAKE_SH)
- message(FATAL_ERROR "sh.exe was found in your PATH, here:\n${CMAKE_SH}\nFor MinGW make to work correctly sh.exe must NOT be in your path.\nRun cmake from a shell that does not have sh.exe in your PATH.\nIf you want to use a UNIX shell, then use MSYS Makefiles.\n")
- set(CMAKE_MAKE_PROGRAM NOTFOUND)
-endif()
-
-mark_as_advanced(CMAKE_MAKE_PROGRAM CMAKE_SH)
diff --git a/share/cmake-3.16/Modules/CMakeNinjaFindMake.cmake b/share/cmake-3.16/Modules/CMakeNinjaFindMake.cmake
deleted file mode 100644
index 702af13..0000000
--- a/share/cmake-3.16/Modules/CMakeNinjaFindMake.cmake
+++ /dev/null
@@ -1,8 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-find_program(CMAKE_MAKE_PROGRAM
- NAMES ninja-build ninja samu
- DOC "Program used to build from build.ninja files.")
-mark_as_advanced(CMAKE_MAKE_PROGRAM)
diff --git a/share/cmake-3.16/Modules/CMakeOBJCInformation.cmake b/share/cmake-3.16/Modules/CMakeOBJCInformation.cmake
deleted file mode 100644
index cb61cb8..0000000
--- a/share/cmake-3.16/Modules/CMakeOBJCInformation.cmake
+++ /dev/null
@@ -1,188 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This file sets the basic flags for the Objective-C language in CMake.
-# It also loads the available platform file for the system-compiler
-# if it exists.
-# It also loads a system - compiler - processor (or target hardware)
-# specific file, which is mainly useful for crosscompiling and embedded systems.
-
-include(CMakeLanguageInformation)
-
-# some compilers use different extensions (e.g. sdcc uses .rel)
-# so set the extension here first so it can be overridden by the compiler specific file
-set(CMAKE_OBJC_OUTPUT_EXTENSION .o)
-
-if(NOT CMAKE_INCLUDE_FLAG_OBJC)
- set(CMAKE_INCLUDE_FLAG_OBJC ${CMAKE_INCLUDE_FLAG_C})
-endif()
-
-set(_INCLUDED_FILE 0)
-
-# Load compiler-specific information.
-if(CMAKE_OBJC_COMPILER_ID)
- include(Compiler/${CMAKE_OBJC_COMPILER_ID}-OBJC OPTIONAL)
-endif()
-
-set(CMAKE_BASE_NAME)
-get_filename_component(CMAKE_BASE_NAME "${CMAKE_OBJC_COMPILER}" NAME_WE)
-if(CMAKE_COMPILER_IS_GNUOBJC)
- set(CMAKE_BASE_NAME gcc)
-endif()
-
-
-# load a hardware specific file, mostly useful for embedded compilers
-if(CMAKE_SYSTEM_PROCESSOR)
- if(CMAKE_OBJC_COMPILER_ID)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_OBJC_COMPILER_ID}-OBJC-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
- endif()
- if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
- endif ()
-endif()
-
-
-# load the system- and compiler specific files
-if(CMAKE_OBJC_COMPILER_ID)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_OBJC_COMPILER_ID}-OBJC
- OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
-endif()
-if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}
- OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
-endif ()
-
-# load any compiler-wrapper specific information
-if (CMAKE_OBJC_COMPILER_WRAPPER)
- __cmake_include_compiler_wrapper(OBJC)
-endif ()
-
-# We specify the compiler information in the system file for some
-# platforms, but this language may not have been enabled when the file
-# was first included. Include it again to get the language info.
-# Remove this when all compiler info is removed from system files.
-if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_SYSTEM_NAME} OPTIONAL)
-endif ()
-
-if(CMAKE_OBJC_SIZEOF_DATA_PTR)
- foreach(f ${CMAKE_OBJC_ABI_FILES})
- include(${f})
- endforeach()
- unset(CMAKE_OBJC_ABI_FILES)
-endif()
-
-# This should be included before the _INIT variables are
-# used to initialize the cache. Since the rule variables
-# have if blocks on them, users can still define them here.
-# But, it should still be after the platform file so changes can
-# be made to those values.
-
-if(CMAKE_USER_MAKE_RULES_OVERRIDE)
- # Save the full path of the file so try_compile can use it.
- include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
- set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
-endif()
-
-if(CMAKE_USER_MAKE_RULES_OVERRIDE_OBJC)
- # Save the full path of the file so try_compile can use it.
- include(${CMAKE_USER_MAKE_RULES_OVERRIDE_OBJC} RESULT_VARIABLE _override)
- set(CMAKE_USER_MAKE_RULES_OVERRIDE_OBJC "${_override}")
-endif()
-
-
-# for most systems a module is the same as a shared library
-# so unless the variable CMAKE_MODULE_EXISTS is set just
-# copy the values from the LIBRARY variables
-if(NOT CMAKE_MODULE_EXISTS)
- set(CMAKE_SHARED_MODULE_OBJC_FLAGS ${CMAKE_SHARED_LIBRARY_OBJC_FLAGS})
- set(CMAKE_SHARED_MODULE_CREATE_OBJC_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_OBJC_FLAGS})
-endif()
-
-set(CMAKE_OBJC_FLAGS_INIT "$ENV{OBJCFLAGS} ${CMAKE_OBJC_FLAGS_INIT}")
-
-cmake_initialize_per_config_variable(CMAKE_OBJC_FLAGS "Flags used by the Objective-C compiler")
-
-if(CMAKE_OBJC_STANDARD_LIBRARIES_INIT)
- set(CMAKE_OBJC_STANDARD_LIBRARIES "${CMAKE_OBJC_STANDARD_LIBRARIES_INIT}"
- CACHE STRING "Libraries linked by default with all Objective-C applications.")
- mark_as_advanced(CMAKE_OBJC_STANDARD_LIBRARIES)
-endif()
-
-include(CMakeCommonLanguageInclude)
-
-# now define the following rule variables
-
-# CMAKE_OBJC_CREATE_SHARED_LIBRARY
-# CMAKE_OBJC_CREATE_SHARED_MODULE
-# CMAKE_OBJC_COMPILE_OBJECT
-# CMAKE_OBJC_LINK_EXECUTABLE
-
-# variables supplied by the generator at use time
-# <TARGET>
-# <TARGET_BASE> the target without the suffix
-# <OBJECTS>
-# <OBJECT>
-# <LINK_LIBRARIES>
-# <FLAGS>
-# <LINK_FLAGS>
-
-# Objective-C compiler information
-# <CMAKE_OBJC_COMPILER>
-# <CMAKE_SHARED_LIBRARY_CREATE_OBJC_FLAGS>
-# <CMAKE_SHARED_MODULE_CREATE_OBJC_FLAGS>
-# <CMAKE_OBJC_LINK_FLAGS>
-
-# Static library tools
-# <CMAKE_AR>
-# <CMAKE_RANLIB>
-
-
-# create an Objective-C shared library
-if(NOT CMAKE_OBJC_CREATE_SHARED_LIBRARY)
- set(CMAKE_OBJC_CREATE_SHARED_LIBRARY
- "<CMAKE_OBJC_COMPILER> <CMAKE_SHARED_LIBRARY_OBJC_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_OBJC_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
-endif()
-
-# create an Objective-C shared module just copy the shared library rule
-if(NOT CMAKE_OBJC_CREATE_SHARED_MODULE)
- set(CMAKE_OBJC_CREATE_SHARED_MODULE ${CMAKE_OBJC_CREATE_SHARED_LIBRARY})
-endif()
-
-# Create an static archive incrementally for large object file counts.
-# If CMAKE_OBJC_CREATE_STATIC_LIBRARY is set it will override these.
-if(NOT DEFINED CMAKE_OBJC_ARCHIVE_CREATE)
- set(CMAKE_OBJC_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
-endif()
-if(NOT DEFINED CMAKE_OBJC_ARCHIVE_APPEND)
- set(CMAKE_OBJC_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
-endif()
-if(NOT DEFINED CMAKE_OBJC_ARCHIVE_FINISH)
- set(CMAKE_OBJC_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
-endif()
-
-# compile an Objective-C file into an object file
-if(NOT CMAKE_OBJC_COMPILE_OBJECT)
- set(CMAKE_OBJC_COMPILE_OBJECT
- "<CMAKE_OBJC_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -x objective-c -o <OBJECT> -c <SOURCE>")
-endif()
-
-if(NOT CMAKE_OBJC_LINK_EXECUTABLE)
- set(CMAKE_OBJC_LINK_EXECUTABLE
- "<CMAKE_OBJC_COMPILER> <FLAGS> <CMAKE_OBJC_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RUNTIME_OBJC_FLAG)
- set(CMAKE_EXECUTABLE_RUNTIME_OBJC_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_OBJC_FLAG})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RUNTIME_OBJC_FLAG_SEP)
- set(CMAKE_EXECUTABLE_RUNTIME_OBJC_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_OBJC_FLAG_SEP})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RPATH_LINK_OBJC_FLAG)
- set(CMAKE_EXECUTABLE_RPATH_LINK_OBJC_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_OBJC_FLAG})
-endif()
-
-set(CMAKE_OBJC_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.16/Modules/CMakeOBJCXXInformation.cmake b/share/cmake-3.16/Modules/CMakeOBJCXXInformation.cmake
deleted file mode 100644
index 71ac26a..0000000
--- a/share/cmake-3.16/Modules/CMakeOBJCXXInformation.cmake
+++ /dev/null
@@ -1,273 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This file sets the basic flags for the Objective-C++ language in CMake.
-# It also loads the available platform file for the system-compiler
-# if it exists.
-# It also loads a system - compiler - processor (or target hardware)
-# specific file, which is mainly useful for crosscompiling and embedded systems.
-
-include(CMakeLanguageInformation)
-
-# some compilers use different extensions (e.g. sdcc uses .rel)
-# so set the extension here first so it can be overridden by the compiler specific file
-set(CMAKE_OBJCXX_OUTPUT_EXTENSION .o)
-
-set(_INCLUDED_FILE 0)
-
-# Load compiler-specific information.
-if(CMAKE_OBJCXX_COMPILER_ID)
- include(Compiler/${CMAKE_OBJCXX_COMPILER_ID}-OBJCXX OPTIONAL)
-endif()
-
-set(CMAKE_BASE_NAME)
-get_filename_component(CMAKE_BASE_NAME "${CMAKE_OBJCXX_COMPILER}" NAME_WE)
-# since the gnu compiler has several names force g++
-if(CMAKE_COMPILER_IS_GNUOBJCXX)
- set(CMAKE_BASE_NAME g++)
-endif()
-
-
-# load a hardware specific file, mostly useful for embedded compilers
-if(CMAKE_SYSTEM_PROCESSOR)
- if(CMAKE_OBJCXX_COMPILER_ID)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_OBJCXX_COMPILER_ID}-OBJCXX-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
- endif()
- if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
- endif ()
-endif()
-
-# load the system- and compiler specific files
-if(CMAKE_OBJCXX_COMPILER_ID)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_OBJCXX_COMPILER_ID}-OBJCXX OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
-endif()
-if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL
- RESULT_VARIABLE _INCLUDED_FILE)
-endif ()
-
-# load any compiler-wrapper specific information
-if (CMAKE_OBJCXX_COMPILER_WRAPPER)
- __cmake_include_compiler_wrapper(OBJCXX)
-endif ()
-
-# We specify the compiler information in the system file for some
-# platforms, but this language may not have been enabled when the file
-# was first included. Include it again to get the language info.
-# Remove this when all compiler info is removed from system files.
-if (NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_SYSTEM_NAME} OPTIONAL)
-endif ()
-
-if(CMAKE_OBJCXX_SIZEOF_DATA_PTR)
- foreach(f ${CMAKE_OBJCXX_ABI_FILES})
- include(${f})
- endforeach()
- unset(CMAKE_OBJCXX_ABI_FILES)
-endif()
-
-# This should be included before the _INIT variables are
-# used to initialize the cache. Since the rule variables
-# have if blocks on them, users can still define them here.
-# But, it should still be after the platform file so changes can
-# be made to those values.
-
-if(CMAKE_USER_MAKE_RULES_OVERRIDE)
- # Save the full path of the file so try_compile can use it.
- include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
- set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
-endif()
-
-if(CMAKE_USER_MAKE_RULES_OVERRIDE_OBJCXX)
- # Save the full path of the file so try_compile can use it.
- include(${CMAKE_USER_MAKE_RULES_OVERRIDE_OBJCXX} RESULT_VARIABLE _override)
- set(CMAKE_USER_MAKE_RULES_OVERRIDE_OBJCXX "${_override}")
-endif()
-
-
-# Create a set of shared library variable specific to Objective-C++
-# For 90% of the systems, these are the same flags as the Objective-C versions
-# so if these are not set just copy the flags from the Objective-C version
-if(NOT CMAKE_SHARED_LIBRARY_CREATE_OBJCXX_FLAGS)
- set(CMAKE_SHARED_LIBRARY_CREATE_OBJCXX_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_OBJC_FLAGS})
-endif()
-
-if(NOT CMAKE_OBJCXX_COMPILE_OPTIONS_PIC)
- set(CMAKE_OBJCXX_COMPILE_OPTIONS_PIC ${CMAKE_OBJC_COMPILE_OPTIONS_PIC})
-endif()
-
-if(NOT CMAKE_OBJCXX_COMPILE_OPTIONS_PIE)
- set(CMAKE_OBJCXX_COMPILE_OPTIONS_PIE ${CMAKE_OBJC_COMPILE_OPTIONS_PIE})
-endif()
-if(NOT CMAKE_OBJCXX_LINK_OPTIONS_PIE)
- set(CMAKE_OBJCXX_LINK_OPTIONS_PIE ${CMAKE_OBJC_LINK_OPTIONS_PIE})
-endif()
-if(NOT CMAKE_OBJCXX_LINK_OPTIONS_NO_PIE)
- set(CMAKE_OBJCXX_LINK_OPTIONS_NO_PIE ${CMAKE_OBJC_LINK_OPTIONS_NO_PIE})
-endif()
-
-if(NOT CMAKE_OBJCXX_COMPILE_OPTIONS_DLL)
- set(CMAKE_OBJCXX_COMPILE_OPTIONS_DLL ${CMAKE_OBJC_COMPILE_OPTIONS_DLL})
-endif()
-
-if(NOT CMAKE_SHARED_LIBRARY_OBJCXX_FLAGS)
- set(CMAKE_SHARED_LIBRARY_OBJCXX_FLAGS ${CMAKE_SHARED_LIBRARY_OBJC_FLAGS})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_OBJCXX_FLAGS)
- set(CMAKE_SHARED_LIBRARY_LINK_OBJCXX_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_OBJC_FLAGS})
-endif()
-
-if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_OBJCXX_FLAG)
- set(CMAKE_SHARED_LIBRARY_RUNTIME_OBJCXX_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_OBJC_FLAG})
-endif()
-
-if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_OBJCXX_FLAG_SEP)
- set(CMAKE_SHARED_LIBRARY_RUNTIME_OBJCXX_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_OBJC_FLAG_SEP})
-endif()
-
-if(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_OBJCXX_FLAG)
- set(CMAKE_SHARED_LIBRARY_RPATH_LINK_OBJCXX_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_OBJC_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_EXE_EXPORTS_OBJCXX_FLAG)
- set(CMAKE_EXE_EXPORTS_OBJCXX_FLAG ${CMAKE_EXE_EXPORTS_OBJC_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_SONAME_OBJCXX_FLAG)
- set(CMAKE_SHARED_LIBRARY_SONAME_OBJCXX_FLAG ${CMAKE_SHARED_LIBRARY_SONAME_OBJC_FLAG})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RUNTIME_OBJCXX_FLAG)
- set(CMAKE_EXECUTABLE_RUNTIME_OBJCXX_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_OBJCXX_FLAG})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RUNTIME_OBJCXX_FLAG_SEP)
- set(CMAKE_EXECUTABLE_RUNTIME_OBJCXX_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_OBJCXX_FLAG_SEP})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RPATH_LINK_OBJCXX_FLAG)
- set(CMAKE_EXECUTABLE_RPATH_LINK_OBJCXX_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_OBJCXX_FLAG})
-endif()
-
-if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_OBJCXX_WITH_RUNTIME_PATH)
- set(CMAKE_SHARED_LIBRARY_LINK_OBJCXX_WITH_RUNTIME_PATH ${CMAKE_SHARED_LIBRARY_LINK_OBJC_WITH_RUNTIME_PATH})
-endif()
-
-if(NOT CMAKE_INCLUDE_FLAG_OBJCXX)
- set(CMAKE_INCLUDE_FLAG_OBJCXX ${CMAKE_INCLUDE_FLAG_C})
-endif()
-
-# for most systems a module is the same as a shared library
-# so unless the variable CMAKE_MODULE_EXISTS is set just
-# copy the values from the LIBRARY variables
-if(NOT CMAKE_MODULE_EXISTS)
- set(CMAKE_SHARED_MODULE_OBJCXX_FLAGS ${CMAKE_SHARED_LIBRARY_OBJCXX_FLAGS})
- set(CMAKE_SHARED_MODULE_CREATE_OBJCXX_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_OBJCXX_FLAGS})
-endif()
-
-# repeat for modules
-if(NOT CMAKE_SHARED_MODULE_CREATE_OBJCXX_FLAGS)
- set(CMAKE_SHARED_MODULE_CREATE_OBJCXX_FLAGS ${CMAKE_SHARED_MODULE_CREATE_OBJC_FLAGS})
-endif()
-
-if(NOT CMAKE_SHARED_MODULE_OBJCXX_FLAGS)
- set(CMAKE_SHARED_MODULE_OBJCXX_FLAGS ${CMAKE_SHARED_MODULE_OBJC_FLAGS})
-endif()
-
-# Initialize OBJCXX link type selection flags from OBJC versions.
-foreach(type SHARED_LIBRARY SHARED_MODULE EXE)
- if(NOT CMAKE_${type}_LINK_STATIC_OBJCXX_FLAGS)
- set(CMAKE_${type}_LINK_STATIC_OBJCXX_FLAGS
- ${CMAKE_${type}_LINK_STATIC_OBJC_FLAGS})
- endif()
- if(NOT CMAKE_${type}_LINK_DYNAMIC_OBJCXX_FLAGS)
- set(CMAKE_${type}_LINK_DYNAMIC_OBJCXX_FLAGS
- ${CMAKE_${type}_LINK_DYNAMIC_OBJC_FLAGS})
- endif()
-endforeach()
-
-# add the flags to the cache based
-# on the initial values computed in the platform/*.cmake files
-# use _INIT variables so that this only happens the first time
-# and you can set these flags in the cmake cache
-set(CMAKE_OBJCXX_FLAGS_INIT "$ENV{OBJCXXFLAGS} ${CMAKE_OBJCXX_FLAGS_INIT}")
-
-cmake_initialize_per_config_variable(CMAKE_OBJCXX_FLAGS "Flags used by the Objective-C++ compiler")
-
-if(CMAKE_OBJCXX_STANDARD_LIBRARIES_INIT)
- set(CMAKE_OBJCXX_STANDARD_LIBRARIES "${CMAKE_OBJCXX_STANDARD_LIBRARIES_INIT}"
- CACHE STRING "Libraries linked by default with all Objective-C++ applications.")
- mark_as_advanced(CMAKE_OBJCXX_STANDARD_LIBRARIES)
-endif()
-
-include(CMakeCommonLanguageInclude)
-
-# now define the following rules:
-# CMAKE_OBJCXX_CREATE_SHARED_LIBRARY
-# CMAKE_OBJCXX_CREATE_SHARED_MODULE
-# CMAKE_OBJCXX_COMPILE_OBJECT
-# CMAKE_OBJCXX_LINK_EXECUTABLE
-
-# variables supplied by the generator at use time
-# <TARGET>
-# <TARGET_BASE> the target without the suffix
-# <OBJECTS>
-# <OBJECT>
-# <LINK_LIBRARIES>
-# <FLAGS>
-# <LINK_FLAGS>
-
-# Objective-C++ compiler information
-# <CMAKE_OBJCXX_COMPILER>
-# <CMAKE_SHARED_LIBRARY_CREATE_OBJCXX_FLAGS>
-# <CMAKE_OBJCXX_SHARED_MODULE_CREATE_FLAGS>
-# <CMAKE_OBJCXX_LINK_FLAGS>
-
-# Static library tools
-# <CMAKE_AR>
-# <CMAKE_RANLIB>
-
-
-# create a shared Objective-C++ library
-if(NOT CMAKE_OBJCXX_CREATE_SHARED_LIBRARY)
- set(CMAKE_OBJCXX_CREATE_SHARED_LIBRARY
- "<CMAKE_OBJCXX_COMPILER> <CMAKE_SHARED_LIBRARY_OBJCXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_OBJCXX_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
-endif()
-
-# create an Objective-C++ shared module copy the shared library rule by default
-if(NOT CMAKE_OBJCXX_CREATE_SHARED_MODULE)
- set(CMAKE_OBJCXX_CREATE_SHARED_MODULE ${CMAKE_OBJCXX_CREATE_SHARED_LIBRARY})
-endif()
-
-
-# Create a static archive incrementally for large object file counts.
-# If CMAKE_OBJCXX_CREATE_STATIC_LIBRARY is set it will override these.
-if(NOT DEFINED CMAKE_OBJCXX_ARCHIVE_CREATE)
- set(CMAKE_OBJCXX_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
-endif()
-if(NOT DEFINED CMAKE_OBJCXX_ARCHIVE_APPEND)
- set(CMAKE_OBJCXX_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
-endif()
-if(NOT DEFINED CMAKE_OBJCXX_ARCHIVE_FINISH)
- set(CMAKE_OBJCXX_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
-endif()
-
-# compile an Objective-C++ file into an object file
-if(NOT CMAKE_OBJCXX_COMPILE_OBJECT)
- set(CMAKE_OBJCXX_COMPILE_OBJECT
- "<CMAKE_OBJCXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -x objective-c++ -o <OBJECT> -c <SOURCE>")
-endif()
-
-if(NOT CMAKE_OBJCXX_LINK_EXECUTABLE)
- set(CMAKE_OBJCXX_LINK_EXECUTABLE
- "<CMAKE_OBJCXX_COMPILER> <FLAGS> <CMAKE_OBJCXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-endif()
-
-mark_as_advanced(
-CMAKE_VERBOSE_MAKEFILE
-)
-
-set(CMAKE_OBJCXX_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.16/Modules/CMakePrintSystemInformation.cmake b/share/cmake-3.16/Modules/CMakePrintSystemInformation.cmake
deleted file mode 100644
index f873a4d..0000000
--- a/share/cmake-3.16/Modules/CMakePrintSystemInformation.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CMakePrintSystemInformation
----------------------------
-
-print system information
-
-This file can be used for diagnostic purposes just include it in a
-project to see various internal CMake variables.
-#]=======================================================================]
-
-message("CMAKE_SYSTEM is ${CMAKE_SYSTEM} ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION}")
-message("CMAKE_SYSTEM file is ${CMAKE_SYSTEM_INFO_FILE}")
-message("CMAKE_C_COMPILER is ${CMAKE_C_COMPILER}")
-message("CMAKE_CXX_COMPILER is ${CMAKE_CXX_COMPILER}")
-
-
-message("CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS is ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}")
-message("CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS is ${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS}")
-message("CMAKE_DL_LIBS is ${CMAKE_DL_LIBS}")
-message("CMAKE_SHARED_LIBRARY_PREFIX is ${CMAKE_SHARED_LIBRARY_PREFIX}")
-message("CMAKE_SHARED_LIBRARY_SUFFIX is ${CMAKE_SHARED_LIBRARY_SUFFIX}")
-message("CMAKE_COMPILER_IS_GNUCC = ${CMAKE_COMPILER_IS_GNUCC}")
-message("CMAKE_COMPILER_IS_GNUCXX = ${CMAKE_COMPILER_IS_GNUCXX}")
-
-message("CMAKE_CXX_CREATE_SHARED_LIBRARY is ${CMAKE_CXX_CREATE_SHARED_LIBRARY}")
-message("CMAKE_CXX_CREATE_SHARED_MODULE is ${CMAKE_CXX_CREATE_SHARED_MODULE}")
-message("CMAKE_CXX_CREATE_STATIC_LIBRARY is ${CMAKE_CXX_CREATE_STATIC_LIBRARY}")
-message("CMAKE_CXX_COMPILE_OBJECT is ${CMAKE_CXX_COMPILE_OBJECT}")
-message("CMAKE_CXX_LINK_EXECUTABLE ${CMAKE_CXX_LINK_EXECUTABLE}")
-
-message("CMAKE_C_CREATE_SHARED_LIBRARY is ${CMAKE_C_CREATE_SHARED_LIBRARY}")
-message("CMAKE_C_CREATE_SHARED_MODULE is ${CMAKE_C_CREATE_SHARED_MODULE}")
-message("CMAKE_C_CREATE_STATIC_LIBRARY is ${CMAKE_C_CREATE_STATIC_LIBRARY}")
-message("CMAKE_C_COMPILE_OBJECT is ${CMAKE_C_COMPILE_OBJECT}")
-message("CMAKE_C_LINK_EXECUTABLE ${CMAKE_C_LINK_EXECUTABLE}")
-
-message("CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE ${CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE}")
-message("CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE ${CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE}")
diff --git a/share/cmake-3.16/Modules/CMakeSwiftCompiler.cmake.in b/share/cmake-3.16/Modules/CMakeSwiftCompiler.cmake.in
deleted file mode 100644
index 7c8d1c1..0000000
--- a/share/cmake-3.16/Modules/CMakeSwiftCompiler.cmake.in
+++ /dev/null
@@ -1,14 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-set(CMAKE_Swift_COMPILER "@CMAKE_Swift_COMPILER@")
-set(CMAKE_Swift_COMPILER_ID "@CMAKE_Swift_COMPILER_ID@")
-set(CMAKE_Swift_COMPILER_VERSION "@CMAKE_Swift_COMPILER_VERSION@")
-
-set(CMAKE_Swift_COMPILER_LOADED 1)
-set(CMAKE_Swift_COMPILER_WORKS "@CMAKE_Swift_COMPILER_WORKS@")
-
-set(CMAKE_Swift_COMPILER_ENV_VAR "SWIFTC")
-
-set(CMAKE_Swift_COMPILER_ID_RUN 1)
-set(CMAKE_Swift_SOURCE_FILE_EXTENSIONS swift)
diff --git a/share/cmake-3.16/Modules/CMakeSwiftInformation.cmake b/share/cmake-3.16/Modules/CMakeSwiftInformation.cmake
deleted file mode 100644
index 2c54da0..0000000
--- a/share/cmake-3.16/Modules/CMakeSwiftInformation.cmake
+++ /dev/null
@@ -1,98 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-if(UNIX)
- set(CMAKE_Swift_OUTPUT_EXTENSION .o)
-else()
- set(CMAKE_Swift_OUTPUT_EXTENSION .obj)
-endif()
-
-# Load compiler-specific information.
-if(CMAKE_Swift_COMPILER_ID)
- include(Compiler/${CMAKE_Swift_COMPILER_ID}-Swift OPTIONAL)
-
- if(CMAKE_SYSTEM_PROCESSOR)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_Swift_COMPILER_ID}-Swift-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
- endif()
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_Swift_COMPILER_ID}-Swift OPTIONAL)
-endif()
-
-set(CMAKE_INCLUDE_FLAG_Swift "-I ")
-if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
- set(CMAKE_SHARED_LIBRARY_SONAME_Swift_FLAG "-Xlinker -install_name -Xlinker ")
-elseif(NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
- set(CMAKE_SHARED_LIBRARY_SONAME_Swift_FLAG "-Xlinker -soname -Xlinker ")
-endif()
-
-if(NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
- set(CMAKE_SHARED_LIBRARY_RUNTIME_Swift_FLAG "-Xlinker -rpath -Xlinker ")
- set(CMAKE_SHARED_LIBRARY_RUNTIME_Swift_FLAG_SEP ":")
-endif()
-
-set(CMAKE_Swift_COMPILE_OPTIONS_TARGET "-target ")
-set(CMAKE_Swift_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "-tools-directory ")
-# NOTE(compnerd) the `-sdk` support is not yet ready in the compiler; when that
-# is fully working, we should be able to enable this.
-# set(CMAKE_Swift_COMPILE_OPTIONS_SYSROOT "-sdk ")
-# NOTE(compnerd) do not setup `-frontend` as we use the compiler as the driver
-# during the link phase and use that to drive the compilation
-set(CMAKE_Swift_COMPILER_ARG1 "")
-set(CMAKE_Swift_DEFINE_FLAG -D)
-set(CMAKE_Swift_FRAMEWORK_SEARCH_FLAG "-F ")
-set(CMAKE_Swift_LIBRARY_PATH_FLAG "-L ")
-set(CMAKE_Swift_LIBRARY_PATH_TERMINATOR "")
-set(CMAKE_Swift_LINK_LIBRARY_FLAG "-l")
-set(CMAKE_Swift_LINKER_WRAPPER_FLAG "-Xlinker" " ")
-set(CMAKE_Swift_RESPONSE_FILE_LINK_FLAG @)
-
-set(CMAKE_Swift_LINKER_PREFERENCE 50)
-set(CMAKE_Swift_LINKER_PREFERENCE_PROPAGATES 1)
-
-# NOTE(compnerd) use the short form for convenience and ease of search. They
-# are treated equivalent to their long form names as well as custom Swift
-# specific names.
-set(CMAKE_Swift_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded -libc MT)
-set(CMAKE_Swift_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL -libc MD)
-set(CMAKE_Swift_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug -libc MTd)
-set(CMAKE_Swift_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL -libc MDd)
-
-set(CMAKE_Swift_FLAGS_DEBUG_INIT "-g")
-set(CMAKE_Swift_FLAGS_RELEASE_INIT "-O")
-set(CMAKE_Swift_FLAGS_RELWITHDEBINFO_INIT "-O -g")
-set(CMAKE_Swift_FLAGS_MINSIZEREL_INIT "-Osize")
-
-cmake_initialize_per_config_variable(CMAKE_Swift_FLAGS "Swift Compiler Flags")
-
-# NOTE(compnerd) we do not have an object compile rule since we build the objects as part of the link step
-if(NOT CMAKE_Swift_COMPILE_OBJECT)
- set(CMAKE_Swift_COMPILE_OBJECT ":")
-endif()
-
-if(NOT CMAKE_Swift_NUM_THREADS MATCHES "^[0-9]+$")
- cmake_host_system_information(RESULT CMAKE_Swift_NUM_THREADS QUERY NUMBER_OF_LOGICAL_CORES)
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL Windows)
- set(CMAKE_Swift_IMPLIB_LINKER_FLAGS "-Xlinker -implib:<TARGET_IMPLIB>")
-endif()
-
-if(NOT CMAKE_Swift_CREATE_SHARED_LIBRARY)
- set(CMAKE_Swift_CREATE_SHARED_LIBRARY "<CMAKE_Swift_COMPILER> -output-file-map <SWIFT_OUTPUT_FILE_MAP> -incremental -j ${CMAKE_Swift_NUM_THREADS} -emit-library -o <TARGET> -module-name <SWIFT_MODULE_NAME> -module-link-name <SWIFT_LIBRARY_NAME> -emit-module -emit-module-path <SWIFT_MODULE> -emit-dependencies <DEFINES> <FLAGS> <INCLUDES> <SWIFT_SOURCES> <LINK_FLAGS> <SONAME_FLAG> <TARGET_INSTALLNAME_DIR><TARGET_SONAME> ${CMAKE_Swift_IMPLIB_LINKER_FLAGS} <LINK_LIBRARIES>")
-endif()
-
-if(NOT CMAKE_Swift_CREATE_SHARED_MODULE)
- set(CMAKE_Swift_CREATE_SHARED_MODULE ${CMAKE_Swift_CREATE_SHARED_LIBRARY})
-endif()
-
-if(NOT CMAKE_Swift_LINK_EXECUTABLE)
- set(CMAKE_Swift_LINK_EXECUTABLE "<CMAKE_Swift_COMPILER> -output-file-map <SWIFT_OUTPUT_FILE_MAP> -incremental -j ${CMAKE_Swift_NUM_THREADS} -emit-executable -o <TARGET> -emit-module -emit-module-path <SWIFT_MODULE> -emit-dependencies <DEFINES> <FLAGS> <INCLUDES> <SWIFT_SOURCES> <LINK_FLAGS> ${CMAKE_Swift_IMPLIB_LINKER_FLAGS} <LINK_LIBRARIES>")
-endif()
-
-if(NOT CMAKE_Swift_CREATE_STATIC_LIBRARY)
- set(CMAKE_Swift_CREATE_STATIC_LIBRARY "<CMAKE_Swift_COMPILER> -output-file-map <SWIFT_OUTPUT_FILE_MAP> -incremental -j ${CMAKE_Swift_NUM_THREADS} -emit-library -static -o <TARGET> -module-name <SWIFT_MODULE_NAME> -module-link-name <SWIFT_LIBRARY_NAME> -emit-module -emit-module-path <SWIFT_MODULE> -emit-dependencies <DEFINES> <FLAGS> <INCLUDES> <SWIFT_SOURCES> <LINK_FLAGS> <LINK_LIBRARIES>")
-
- set(CMAKE_Swift_ARCHIVE_CREATE "<CMAKE_AR> crs <TARGET> <OBJECTS>")
- set(CMAKE_Swift_ARCHIVE_FINISH "")
-endif()
-
-set(CMAKE_Swift_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake b/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake
deleted file mode 100644
index 7bf6fde..0000000
--- a/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake
+++ /dev/null
@@ -1,97 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-if(CMAKE_C_COMPILER_FORCED)
- # The compiler configuration was forced by the user.
- # Assume the user has configured all compiler information.
- set(CMAKE_C_COMPILER_WORKS TRUE)
- return()
-endif()
-
-include(CMakeTestCompilerCommon)
-
-# work around enforced code signing and / or missing exectuable target type
-set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
-if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
- set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
-endif()
-
-# Remove any cached result from an older CMake version.
-# We now store this in CMakeCCompiler.cmake.
-unset(CMAKE_C_COMPILER_WORKS CACHE)
-
-# This file is used by EnableLanguage in cmGlobalGenerator to
-# determine that that selected C compiler can actually compile
-# and link the most basic of programs. If not, a fatal error
-# is set and cmake stops processing commands and will not generate
-# any makefiles or projects.
-if(NOT CMAKE_C_COMPILER_WORKS)
- PrintTestCompilerStatus("C" "")
- __TestCompiler_setTryCompileTargetType()
- file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCCompiler.c
- "#ifdef __cplusplus\n"
- "# error \"The CMAKE_C_COMPILER is set to a C++ compiler\"\n"
- "#endif\n"
- "#if defined(__CLASSIC_C__)\n"
- "int main(argc, argv)\n"
- " int argc;\n"
- " char* argv[];\n"
- "#else\n"
- "int main(int argc, char* argv[])\n"
- "#endif\n"
- "{ (void)argv; return argc-1;}\n")
- try_compile(CMAKE_C_COMPILER_WORKS ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCCompiler.c
- OUTPUT_VARIABLE __CMAKE_C_COMPILER_OUTPUT)
- # Move result from cache to normal variable.
- set(CMAKE_C_COMPILER_WORKS ${CMAKE_C_COMPILER_WORKS})
- unset(CMAKE_C_COMPILER_WORKS CACHE)
- set(C_TEST_WAS_RUN 1)
- __TestCompiler_restoreTryCompileTargetType()
-endif()
-
-if(NOT CMAKE_C_COMPILER_WORKS)
- PrintTestCompilerStatus("C" " -- broken")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the C compiler works failed with "
- "the following output:\n${__CMAKE_C_COMPILER_OUTPUT}\n\n")
- string(REPLACE "\n" "\n " _output "${__CMAKE_C_COMPILER_OUTPUT}")
- message(FATAL_ERROR "The C compiler\n \"${CMAKE_C_COMPILER}\"\n"
- "is not able to compile a simple test program.\nIt fails "
- "with the following output:\n ${_output}\n\n"
- "CMake will not be able to correctly generate this project.")
-else()
- if(C_TEST_WAS_RUN)
- PrintTestCompilerStatus("C" " -- works")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the C compiler works passed with "
- "the following output:\n${__CMAKE_C_COMPILER_OUTPUT}\n\n")
- endif()
-
- # Try to identify the ABI and configure it into CMakeCCompiler.cmake
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
- CMAKE_DETERMINE_COMPILER_ABI(C ${CMAKE_ROOT}/Modules/CMakeCCompilerABI.c)
- # Try to identify the compiler features
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
- CMAKE_DETERMINE_COMPILE_FEATURES(C)
-
- # Re-configure to save learned information.
- configure_file(
- ${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeCCompiler.cmake
- @ONLY
- )
- include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCCompiler.cmake)
-
- if(CMAKE_C_SIZEOF_DATA_PTR)
- foreach(f ${CMAKE_C_ABI_FILES})
- include(${f})
- endforeach()
- unset(CMAKE_C_ABI_FILES)
- endif()
-endif()
-
-set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
-unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
-unset(__CMAKE_C_COMPILER_OUTPUT)
diff --git a/share/cmake-3.16/Modules/CMakeTestCSharpCompiler.cmake b/share/cmake-3.16/Modules/CMakeTestCSharpCompiler.cmake
deleted file mode 100644
index 6715c30..0000000
--- a/share/cmake-3.16/Modules/CMakeTestCSharpCompiler.cmake
+++ /dev/null
@@ -1,65 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-if(CMAKE_CSharp_COMPILER_FORCED)
- # The compiler configuration was forced by the user.
- # Assume the user has configured all compiler information.
- set(CMAKE_CSharp_COMPILER_WORKS TRUE)
- return()
-endif()
-
-include(CMakeTestCompilerCommon)
-
-unset(CMAKE_CSharp_COMPILER_WORKS CACHE)
-
-set(test_compile_file "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCSharpCompiler.cs")
-
-# This file is used by EnableLanguage in cmGlobalGenerator to
-# determine that the selected C# compiler can actually compile
-# and link the most basic of programs. If not, a fatal error
-# is set and cmake stops processing commands and will not generate
-# any makefiles or projects.
-if(NOT CMAKE_CSharp_COMPILER_WORKS)
- PrintTestCompilerStatus("C#" "${CMAKE_CSharp_COMPILER}")
- file(WRITE "${test_compile_file}"
- "namespace Test {"
- " public class CSharp {"
- " static void Main(string[] args) {}"
- " }"
- "}"
- )
- try_compile(CMAKE_CSharp_COMPILER_WORKS ${CMAKE_BINARY_DIR} "${test_compile_file}"
- OUTPUT_VARIABLE __CMAKE_CSharp_COMPILER_OUTPUT
- )
- # Move result from cache to normal variable.
- set(CMAKE_CSharp_COMPILER_WORKS ${CMAKE_CSharp_COMPILER_WORKS})
- unset(CMAKE_CSharp_COMPILER_WORKS CACHE)
- set(CSharp_TEST_WAS_RUN 1)
-endif()
-
-if(NOT CMAKE_CSharp_COMPILER_WORKS)
- PrintTestCompilerStatus("C#" "${CMAKE_CSharp_COMPILER} -- broken")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the C# compiler works failed with "
- "the following output:\n${__CMAKE_CSharp_COMPILER_OUTPUT}\n\n")
- string(REPLACE "\n" "\n " _output "${__CMAKE_CSharp_COMPILER_OUTPUT}")
- message(FATAL_ERROR "The C# compiler\n \"${CMAKE_CSharp_COMPILER}\"\n"
- "is not able to compile a simple test program.\nIt fails "
- "with the following output:\n ${_output}\n\n"
- "CMake will not be able to correctly generate this project.")
-else()
- if(CSharp_TEST_WAS_RUN)
- PrintTestCompilerStatus("C#" "${CMAKE_CSharp_COMPILER} -- works")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the C# compiler works passed with "
- "the following output:\n${__CMAKE_CSharp_COMPILER_OUTPUT}\n\n")
- endif()
-
- # Re-configure to save learned information.
- configure_file(
- ${CMAKE_ROOT}/Modules/CMakeCSharpCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeCSharpCompiler.cmake
- @ONLY
- )
- include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCSharpCompiler.cmake)
-endif()
diff --git a/share/cmake-3.16/Modules/CMakeTestCUDACompiler.cmake b/share/cmake-3.16/Modules/CMakeTestCUDACompiler.cmake
deleted file mode 100644
index f0454da..0000000
--- a/share/cmake-3.16/Modules/CMakeTestCUDACompiler.cmake
+++ /dev/null
@@ -1,77 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-if(CMAKE_CUDA_COMPILER_FORCED)
- # The compiler configuration was forced by the user.
- # Assume the user has configured all compiler information.
- set(CMAKE_CUDA_COMPILER_WORKS TRUE)
- return()
-endif()
-
-include(CMakeTestCompilerCommon)
-
-# Remove any cached result from an older CMake version.
-# We now store this in CMakeCUDACompiler.cmake.
-unset(CMAKE_CUDA_COMPILER_WORKS CACHE)
-
-# This file is used by EnableLanguage in cmGlobalGenerator to
-# determine that the selected cuda compiler can actually compile
-# and link the most basic of programs. If not, a fatal error
-# is set and cmake stops processing commands and will not generate
-# any makefiles or projects.
-if(NOT CMAKE_CUDA_COMPILER_WORKS)
- PrintTestCompilerStatus("CUDA" "")
- file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.cu
- "#ifndef __CUDACC__\n"
- "# error \"The CMAKE_CUDA_COMPILER is set to an invalid CUDA compiler\"\n"
- "#endif\n"
- "int main(){return 0;}\n")
-
- try_compile(CMAKE_CUDA_COMPILER_WORKS ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.cu
- OUTPUT_VARIABLE __CMAKE_CUDA_COMPILER_OUTPUT)
-
- # Move result from cache to normal variable.
- set(CMAKE_CUDA_COMPILER_WORKS ${CMAKE_CUDA_COMPILER_WORKS})
- unset(CMAKE_CUDA_COMPILER_WORKS CACHE)
- set(CUDA_TEST_WAS_RUN 1)
-endif()
-
-if(NOT CMAKE_CUDA_COMPILER_WORKS)
- PrintTestCompilerStatus("CUDA" " -- broken")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the CUDA compiler works failed with "
- "the following output:\n${__CMAKE_CUDA_COMPILER_OUTPUT}\n\n")
- string(REPLACE "\n" "\n " _output "${__CMAKE_CUDA_COMPILER_OUTPUT}")
- message(FATAL_ERROR "The CUDA compiler\n \"${CMAKE_CUDA_COMPILER}\"\n"
- "is not able to compile a simple test program.\nIt fails "
- "with the following output:\n ${_output}\n\n"
- "CMake will not be able to correctly generate this project.")
-else()
- if(CUDA_TEST_WAS_RUN)
- PrintTestCompilerStatus("CUDA" " -- works")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the CUDA compiler works passed with "
- "the following output:\n${__CMAKE_CUDA_COMPILER_OUTPUT}\n\n")
- endif()
-
- # Try to identify the ABI and configure it into CMakeCUDACompiler.cmake
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
- CMAKE_DETERMINE_COMPILER_ABI(CUDA ${CMAKE_ROOT}/Modules/CMakeCUDACompilerABI.cu)
-
- if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
- set(CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES "${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES}")
- set(CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES "${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES}")
- endif()
-
- # Re-configure to save learned information.
- configure_file(
- ${CMAKE_ROOT}/Modules/CMakeCUDACompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeCUDACompiler.cmake
- @ONLY
- )
- include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCUDACompiler.cmake)
-endif()
-
-
-unset(__CMAKE_CUDA_COMPILER_OUTPUT)
diff --git a/share/cmake-3.16/Modules/CMakeTestCXXCompiler.cmake b/share/cmake-3.16/Modules/CMakeTestCXXCompiler.cmake
deleted file mode 100644
index 7e595b7..0000000
--- a/share/cmake-3.16/Modules/CMakeTestCXXCompiler.cmake
+++ /dev/null
@@ -1,90 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-if(CMAKE_CXX_COMPILER_FORCED)
- # The compiler configuration was forced by the user.
- # Assume the user has configured all compiler information.
- set(CMAKE_CXX_COMPILER_WORKS TRUE)
- return()
-endif()
-
-include(CMakeTestCompilerCommon)
-
-# work around enforced code signing and / or missing exectuable target type
-set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
-if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
- set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
-endif()
-
-# Remove any cached result from an older CMake version.
-# We now store this in CMakeCXXCompiler.cmake.
-unset(CMAKE_CXX_COMPILER_WORKS CACHE)
-
-# This file is used by EnableLanguage in cmGlobalGenerator to
-# determine that the selected C++ compiler can actually compile
-# and link the most basic of programs. If not, a fatal error
-# is set and cmake stops processing commands and will not generate
-# any makefiles or projects.
-if(NOT CMAKE_CXX_COMPILER_WORKS)
- PrintTestCompilerStatus("CXX" "")
- __TestCompiler_setTryCompileTargetType()
- file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCXXCompiler.cxx
- "#ifndef __cplusplus\n"
- "# error \"The CMAKE_CXX_COMPILER is set to a C compiler\"\n"
- "#endif\n"
- "int main(){return 0;}\n")
- try_compile(CMAKE_CXX_COMPILER_WORKS ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCXXCompiler.cxx
- OUTPUT_VARIABLE __CMAKE_CXX_COMPILER_OUTPUT)
- # Move result from cache to normal variable.
- set(CMAKE_CXX_COMPILER_WORKS ${CMAKE_CXX_COMPILER_WORKS})
- unset(CMAKE_CXX_COMPILER_WORKS CACHE)
- set(CXX_TEST_WAS_RUN 1)
- __TestCompiler_restoreTryCompileTargetType()
-endif()
-
-if(NOT CMAKE_CXX_COMPILER_WORKS)
- PrintTestCompilerStatus("CXX" " -- broken")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the CXX compiler works failed with "
- "the following output:\n${__CMAKE_CXX_COMPILER_OUTPUT}\n\n")
- string(REPLACE "\n" "\n " _output "${__CMAKE_CXX_COMPILER_OUTPUT}")
- message(FATAL_ERROR "The C++ compiler\n \"${CMAKE_CXX_COMPILER}\"\n"
- "is not able to compile a simple test program.\nIt fails "
- "with the following output:\n ${_output}\n\n"
- "CMake will not be able to correctly generate this project.")
-else()
- if(CXX_TEST_WAS_RUN)
- PrintTestCompilerStatus("CXX" " -- works")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the CXX compiler works passed with "
- "the following output:\n${__CMAKE_CXX_COMPILER_OUTPUT}\n\n")
- endif()
-
- # Try to identify the ABI and configure it into CMakeCXXCompiler.cmake
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
- CMAKE_DETERMINE_COMPILER_ABI(CXX ${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp)
- # Try to identify the compiler features
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
- CMAKE_DETERMINE_COMPILE_FEATURES(CXX)
-
- # Re-configure to save learned information.
- configure_file(
- ${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeCXXCompiler.cmake
- @ONLY
- )
- include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCXXCompiler.cmake)
-
- if(CMAKE_CXX_SIZEOF_DATA_PTR)
- foreach(f ${CMAKE_CXX_ABI_FILES})
- include(${f})
- endforeach()
- unset(CMAKE_CXX_ABI_FILES)
- endif()
-endif()
-
-set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
-unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
-unset(__CMAKE_CXX_COMPILER_OUTPUT)
diff --git a/share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake b/share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake
deleted file mode 100644
index 6ee5175..0000000
--- a/share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake
+++ /dev/null
@@ -1,27 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-function(PrintTestCompilerStatus LANG MSG)
- message(STATUS "Check for working ${LANG} compiler: ${CMAKE_${LANG}_COMPILER}${MSG}")
-endfunction()
-
-# if required set the target type if not already explicitly set
-macro(__TestCompiler_setTryCompileTargetType)
- if(NOT CMAKE_TRY_COMPILE_TARGET_TYPE)
- if("${CMAKE_GENERATOR}" MATCHES "Green Hills MULTI")
- #prefer static libraries to avoid linking issues
- set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
- set(__CMAKE_TEST_COMPILER_TARGET_TYPE_RESTORE 1)
- endif()
- endif()
-endmacro()
-
-# restore the original value
-# -- not necessary if __TestCompiler_setTryCompileTargetType() was used in function scope
-macro(__TestCompiler_restoreTryCompileTargetType)
- if(__CMAKE_TEST_COMPILER_TARGET_TYPE_RESTORE)
- unset(CMAKE_TRY_COMPILE_TARGET_TYPE)
- unset(__CMAKE_TEST_COMPILER_TARGET_TYPE_RESTORE)
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CMakeTestFortranCompiler.cmake b/share/cmake-3.16/Modules/CMakeTestFortranCompiler.cmake
deleted file mode 100644
index e9860e9..0000000
--- a/share/cmake-3.16/Modules/CMakeTestFortranCompiler.cmake
+++ /dev/null
@@ -1,102 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-if(CMAKE_Fortran_COMPILER_FORCED)
- # The compiler configuration was forced by the user.
- # Assume the user has configured all compiler information.
- set(CMAKE_Fortran_COMPILER_WORKS TRUE)
- return()
-endif()
-
-include(CMakeTestCompilerCommon)
-
-# Remove any cached result from an older CMake version.
-# We now store this in CMakeFortranCompiler.cmake.
-unset(CMAKE_Fortran_COMPILER_WORKS CACHE)
-
-# This file is used by EnableLanguage in cmGlobalGenerator to
-# determine that the selected Fortran compiler can actually compile
-# and link the most basic of programs. If not, a fatal error
-# is set and cmake stops processing commands and will not generate
-# any makefiles or projects.
-if(NOT CMAKE_Fortran_COMPILER_WORKS)
- PrintTestCompilerStatus("Fortran" "")
- file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f "
- PROGRAM TESTFortran
- PRINT *, 'Hello'
- END
- ")
- try_compile(CMAKE_Fortran_COMPILER_WORKS ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f
- OUTPUT_VARIABLE OUTPUT)
- # Move result from cache to normal variable.
- set(CMAKE_Fortran_COMPILER_WORKS ${CMAKE_Fortran_COMPILER_WORKS})
- unset(CMAKE_Fortran_COMPILER_WORKS CACHE)
- set(FORTRAN_TEST_WAS_RUN 1)
-endif()
-
-if(NOT CMAKE_Fortran_COMPILER_WORKS)
- PrintTestCompilerStatus("Fortran" " -- broken")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the Fortran compiler works failed with "
- "the following output:\n${OUTPUT}\n\n")
- string(REPLACE "\n" "\n " _output "${OUTPUT}")
- message(FATAL_ERROR "The Fortran compiler\n \"${CMAKE_Fortran_COMPILER}\"\n"
- "is not able to compile a simple test program.\nIt fails "
- "with the following output:\n ${_output}\n\n"
- "CMake will not be able to correctly generate this project.")
-else()
- if(FORTRAN_TEST_WAS_RUN)
- PrintTestCompilerStatus("Fortran" " -- works")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the Fortran compiler works passed with "
- "the following output:\n${OUTPUT}\n\n")
- endif()
-
- # Try to identify the ABI and configure it into CMakeFortranCompiler.cmake
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
- CMAKE_DETERMINE_COMPILER_ABI(Fortran ${CMAKE_ROOT}/Modules/CMakeFortranCompilerABI.F)
-
- # Test for Fortran 90 support by using an f90-specific construct.
- if(NOT DEFINED CMAKE_Fortran_COMPILER_SUPPORTS_F90)
- message(STATUS "Checking whether ${CMAKE_Fortran_COMPILER} supports Fortran 90")
- file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompilerF90.f90 "
- PROGRAM TESTFortran90
- integer stop ; stop = 1 ; do while ( stop .eq. 0 ) ; end do
- END PROGRAM TESTFortran90
-")
- try_compile(CMAKE_Fortran_COMPILER_SUPPORTS_F90 ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompilerF90.f90
- OUTPUT_VARIABLE OUTPUT)
- if(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
- message(STATUS "Checking whether ${CMAKE_Fortran_COMPILER} supports Fortran 90 -- yes")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the Fortran compiler supports Fortran 90 passed with "
- "the following output:\n${OUTPUT}\n\n")
- set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 1)
- else()
- message(STATUS "Checking whether ${CMAKE_Fortran_COMPILER} supports Fortran 90 -- no")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the Fortran compiler supports Fortran 90 failed with "
- "the following output:\n${OUTPUT}\n\n")
- set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 0)
- endif()
- unset(CMAKE_Fortran_COMPILER_SUPPORTS_F90 CACHE)
- endif()
-
- # Re-configure to save learned information.
- configure_file(
- ${CMAKE_ROOT}/Modules/CMakeFortranCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeFortranCompiler.cmake
- @ONLY
- )
- include(${CMAKE_PLATFORM_INFO_DIR}/CMakeFortranCompiler.cmake)
-
- if(CMAKE_Fortran_SIZEOF_DATA_PTR)
- foreach(f ${CMAKE_Fortran_ABI_FILES})
- include(${f})
- endforeach()
- unset(CMAKE_Fortran_ABI_FILES)
- endif()
-endif()
diff --git a/share/cmake-3.16/Modules/CMakeTestOBJCCompiler.cmake b/share/cmake-3.16/Modules/CMakeTestOBJCCompiler.cmake
deleted file mode 100644
index 0030683..0000000
--- a/share/cmake-3.16/Modules/CMakeTestOBJCCompiler.cmake
+++ /dev/null
@@ -1,94 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-if(CMAKE_OBJC_COMPILER_FORCED)
- # The compiler configuration was forced by the user.
- # Assume the user has configured all compiler information.
- set(CMAKE_OBJC_COMPILER_WORKS TRUE)
- return()
-endif()
-
-include(CMakeTestCompilerCommon)
-
-# work around enforced code signing and / or missing exectuable target type
-set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
-if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
- set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
-endif()
-
-# Remove any cached result from an older CMake version.
-# We now store this in CMakeCCompiler.cmake.
-unset(CMAKE_OBJC_COMPILER_WORKS CACHE)
-
-# This file is used by EnableLanguage in cmGlobalGenerator to
-# determine that that selected Objective-C compiler can actually compile
-# and link the most basic of programs. If not, a fatal error
-# is set and cmake stops processing commands and will not generate
-# any makefiles or projects.
-if(NOT CMAKE_OBJC_COMPILER_WORKS)
- PrintTestCompilerStatus("OBJC" "")
- __TestCompiler_setTryCompileTargetType()
- file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCCompiler.m
- "#ifdef __cplusplus\n"
- "# error \"The CMAKE_OBJC_COMPILER is set to a C++ compiler\"\n"
- "#endif\n"
- "#ifndef __OBJC__\n"
- "# error \"The CMAKE_OBJC_COMPILER is not an Objective-C compiler\"\n"
- "#endif\n"
- "int main(int argc, char* argv[])\n"
- "{ (void)argv; return argc-1;}\n")
- try_compile(CMAKE_OBJC_COMPILER_WORKS ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCCompiler.m
- OUTPUT_VARIABLE __CMAKE_OBJC_COMPILER_OUTPUT)
- # Move result from cache to normal variable.
- set(CMAKE_OBJC_COMPILER_WORKS ${CMAKE_OBJC_COMPILER_WORKS})
- unset(CMAKE_OBJC_COMPILER_WORKS CACHE)
- set(OBJC_TEST_WAS_RUN 1)
- __TestCompiler_restoreTryCompileTargetType()
-endif()
-
-if(NOT CMAKE_OBJC_COMPILER_WORKS)
- PrintTestCompilerStatus("OBJC" " -- broken")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the Objective-C compiler works failed with "
- "the following output:\n${__CMAKE_OBJC_COMPILER_OUTPUT}\n\n")
- string(REPLACE "\n" "\n " _output "${__CMAKE_OBJC_COMPILER_OUTPUT}")
- message(FATAL_ERROR "The Objective-C compiler\n \"${CMAKE_OBJC_COMPILER}\"\n"
- "is not able to compile a simple test program.\nIt fails "
- "with the following output:\n ${_output}\n\n"
- "CMake will not be able to correctly generate this project.")
-else()
- if(OBJC_TEST_WAS_RUN)
- PrintTestCompilerStatus("OBJC" " -- works")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the Objective-C compiler works passed with "
- "the following output:\n${__CMAKE_OBJC_COMPILER_OUTPUT}\n\n")
- endif()
-
- # Try to identify the ABI and configure it into CMakeOBJCCompiler.cmake
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
- CMAKE_DETERMINE_COMPILER_ABI(OBJC ${CMAKE_ROOT}/Modules/CMakeOBJCCompilerABI.m)
- # Try to identify the compiler features
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
- CMAKE_DETERMINE_COMPILE_FEATURES(OBJC)
-
- # Re-configure to save learned information.
- configure_file(
- ${CMAKE_ROOT}/Modules/CMakeOBJCCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake
- @ONLY
- )
- include(${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake)
-
- if(CMAKE_OBJC_SIZEOF_DATA_PTR)
- foreach(f ${CMAKE_OBJC_ABI_FILES})
- include(${f})
- endforeach()
- unset(CMAKE_OBJC_ABI_FILES)
- endif()
-endif()
-
-set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
-unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
-unset(__CMAKE_OBJC_COMPILER_OUTPUT)
diff --git a/share/cmake-3.16/Modules/CMakeTestOBJCXXCompiler.cmake b/share/cmake-3.16/Modules/CMakeTestOBJCXXCompiler.cmake
deleted file mode 100644
index bcce2f1..0000000
--- a/share/cmake-3.16/Modules/CMakeTestOBJCXXCompiler.cmake
+++ /dev/null
@@ -1,93 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-if(CMAKE_OBJCXX_COMPILER_FORCED)
- # The compiler configuration was forced by the user.
- # Assume the user has configured all compiler information.
- set(CMAKE_OBJCXX_COMPILER_WORKS TRUE)
- return()
-endif()
-
-include(CMakeTestCompilerCommon)
-
-# work around enforced code signing and / or missing exectuable target type
-set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
-if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
- set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
-endif()
-
-# Remove any cached result from an older CMake version.
-# We now store this in CMakeOBJCXXCompiler.cmake.
-unset(CMAKE_OBJCXX_COMPILER_WORKS CACHE)
-
-# This file is used by EnableLanguage in cmGlobalGenerator to
-# determine that the selected Objective-C++ compiler can actually compile
-# and link the most basic of programs. If not, a fatal error
-# is set and cmake stops processing commands and will not generate
-# any makefiles or projects.
-if(NOT CMAKE_OBJCXX_COMPILER_WORKS)
- PrintTestCompilerStatus("OBJCXX" "")
- __TestCompiler_setTryCompileTargetType()
- file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCXXCompiler.mm
- "#ifndef __cplusplus\n"
- "# error \"The CMAKE_OBJCXX_COMPILER is set to a C compiler\"\n"
- "#endif\n"
- "#ifndef __OBJC__\n"
- "# error \"The CMAKE_OBJCXX_COMPILER is not an Objective-C++ compiler\"\n"
- "#endif\n"
- "int main(){return 0;}\n")
- try_compile(CMAKE_OBJCXX_COMPILER_WORKS ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCXXCompiler.mm
- OUTPUT_VARIABLE __CMAKE_OBJCXX_COMPILER_OUTPUT)
- # Move result from cache to normal variable.
- set(CMAKE_OBJCXX_COMPILER_WORKS ${CMAKE_OBJCXX_COMPILER_WORKS})
- unset(CMAKE_OBJCXX_COMPILER_WORKS CACHE)
- set(OBJCXX_TEST_WAS_RUN 1)
- __TestCompiler_restoreTryCompileTargetType()
-endif()
-
-if(NOT CMAKE_OBJCXX_COMPILER_WORKS)
- PrintTestCompilerStatus("OBJCXX" " -- broken")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the Objective-C++ compiler works failed with "
- "the following output:\n${__CMAKE_OBJCXX_COMPILER_OUTPUT}\n\n")
- string(REPLACE "\n" "\n " _output "${__CMAKE_OBJCXX_COMPILER_OUTPUT}")
- message(FATAL_ERROR "The Objective-C++ compiler\n \"${CMAKE_OBJCXX_COMPILER}\"\n"
- "is not able to compile a simple test program.\nIt fails "
- "with the following output:\n ${_output}\n\n"
- "CMake will not be able to correctly generate this project.")
-else()
- if(OBJCXX_TEST_WAS_RUN)
- PrintTestCompilerStatus("OBJCXX" " -- works")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the Objective-C++ compiler works passed with "
- "the following output:\n${__CMAKE_OBJCXX_COMPILER_OUTPUT}\n\n")
- endif()
-
- # Try to identify the ABI and configure it into CMakeOBJCXXCompiler.cmake
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
- CMAKE_DETERMINE_COMPILER_ABI(OBJCXX ${CMAKE_ROOT}/Modules/CMakeOBJCXXCompilerABI.mm)
- # Try to identify the compiler features
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
- CMAKE_DETERMINE_COMPILE_FEATURES(OBJCXX)
-
- # Re-configure to save learned information.
- configure_file(
- ${CMAKE_ROOT}/Modules/CMakeOBJCXXCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCXXCompiler.cmake
- @ONLY
- )
- include(${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCXXCompiler.cmake)
-
- if(CMAKE_OBJCXX_SIZEOF_DATA_PTR)
- foreach(f ${CMAKE_OBJCXX_ABI_FILES})
- include(${f})
- endforeach()
- unset(CMAKE_OBJCXX_ABI_FILES)
- endif()
-endif()
-
-set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
-unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
-unset(__CMAKE_OBJCXX_COMPILER_OUTPUT)
diff --git a/share/cmake-3.16/Modules/CMakeTestSwiftCompiler.cmake b/share/cmake-3.16/Modules/CMakeTestSwiftCompiler.cmake
deleted file mode 100644
index 841aee6..0000000
--- a/share/cmake-3.16/Modules/CMakeTestSwiftCompiler.cmake
+++ /dev/null
@@ -1,59 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-if(CMAKE_Swift_COMPILER_FORCED)
- # The compiler configuration was forced by the user.
- # Assume the user has configured all compiler information.
- set(CMAKE_Swift_COMPILER_WORKS TRUE)
- return()
-endif()
-
-include(CMakeTestCompilerCommon)
-
-# Remove any cached result from an older CMake version.
-# We now store this in CMakeSwiftCompiler.cmake.
-unset(CMAKE_Swift_COMPILER_WORKS CACHE)
-
-# This file is used by EnableLanguage in cmGlobalGenerator to
-# determine that the selected C++ compiler can actually compile
-# and link the most basic of programs. If not, a fatal error
-# is set and cmake stops processing commands and will not generate
-# any makefiles or projects.
-if(NOT CMAKE_Swift_COMPILER_WORKS)
- PrintTestCompilerStatus("Swift" "")
- file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.swift
- "print(\"CMake\")\n")
- try_compile(CMAKE_Swift_COMPILER_WORKS ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.swift
- OUTPUT_VARIABLE __CMAKE_Swift_COMPILER_OUTPUT)
- # Move result from cache to normal variable.
- set(CMAKE_Swift_COMPILER_WORKS ${CMAKE_Swift_COMPILER_WORKS})
- unset(CMAKE_Swift_COMPILER_WORKS CACHE)
- set(Swift_TEST_WAS_RUN 1)
-endif()
-
-if(NOT CMAKE_Swift_COMPILER_WORKS)
- PrintTestCompilerStatus("Swift" " -- broken")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the Swift compiler works failed with "
- "the following output:\n${__CMAKE_Swift_COMPILER_OUTPUT}\n\n")
- string(REPLACE "\n" "\n " _output "${__CMAKE_Swift_COMPILER_OUTPUT}")
- message(FATAL_ERROR "The Swift compiler\n \"${CMAKE_Swift_COMPILER}\"\n"
- "is not able to compile a simple test program.\nIt fails "
- "with the following output:\n ${_output}\n\n"
- "CMake will not be able to correctly generate this project.")
-else()
- if(Swift_TEST_WAS_RUN)
- PrintTestCompilerStatus("Swift" " -- works")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the Swift compiler works passed with "
- "the following output:\n${__CMAKE_Swift_COMPILER_OUTPUT}\n\n")
- endif()
-
- # Re-configure to save learned information.
- configure_file(${CMAKE_ROOT}/Modules/CMakeSwiftCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeSwiftCompiler.cmake @ONLY)
- include(${CMAKE_PLATFORM_INFO_DIR}/CMakeSwiftCompiler.cmake)
-endif()
-
-unset(__CMAKE_Swift_COMPILER_OUTPUT)
diff --git a/share/cmake-3.16/Modules/CPack.cmake b/share/cmake-3.16/Modules/CPack.cmake
deleted file mode 100644
index c2ed3de..0000000
--- a/share/cmake-3.16/Modules/CPack.cmake
+++ /dev/null
@@ -1,779 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CPack
------
-
-Build binary and source package installers.
-
-Introduction
-^^^^^^^^^^^^
-
-The CPack module generates a file ``CPackConfig.cmake`` intended for
-use in a subsequent run of the :manual:`cpack <cpack(1)>` program
-where it steers the generation of installers or/and source packages.
-
-Inclusion of the CPack module adds two new build targets, ``package``
-and ``package_source``, which build the binary and source installers
-respectively. The generated binary installers contain everything
-installed via CMake's :command:`install` command (and the deprecated
-commands :command:`install_files`, :command:`install_programs`, and
-:command:`install_targets`).
-
-For certain kinds of binary installers (including the graphical
-installers on macOS and Windows), CPack generates installers that
-allow users to select individual application components to install.
-See :module:`CPackComponent` module for further details.
-
-CPack Generators
-^^^^^^^^^^^^^^^^
-
-The :variable:`CPACK_GENERATOR` variable has different meanings in different
-contexts. In a ``CMakeLists.txt`` file, :variable:`CPACK_GENERATOR` is a
-*list of generators*: and when :manual:`cpack <cpack(1)>` is run with no other
-arguments, it will iterate over that list and produce one package for each
-generator. In a :variable:`CPACK_PROJECT_CONFIG_FILE`,
-:variable:`CPACK_GENERATOR` is a *string naming a single generator*. If you
-need per-cpack-generator logic to control *other* cpack settings, then you
-need a :variable:`CPACK_PROJECT_CONFIG_FILE`.
-
-The CMake source tree itself contains a :variable:`CPACK_PROJECT_CONFIG_FILE`.
-See the top level file ``CMakeCPackOptions.cmake.in`` for an example.
-
-If set, the :variable:`CPACK_PROJECT_CONFIG_FILE` is included automatically
-on a per-generator basis. It only need contain overrides.
-
-Here's how it works:
-
-* :manual:`cpack <cpack(1)>` runs
-* it includes ``CPackConfig.cmake``
-* it iterates over the generators given by the ``-G`` command line option,
- or if no such option was specified, over the list of generators given by
- the :variable:`CPACK_GENERATOR` variable set in the ``CPackConfig.cmake``
- input file.
-* foreach generator, it then
-
- - sets :variable:`CPACK_GENERATOR` to the one currently being iterated
- - includes the :variable:`CPACK_PROJECT_CONFIG_FILE`
- - produces the package for that generator
-
-This is the key: For each generator listed in :variable:`CPACK_GENERATOR` in
-``CPackConfig.cmake``, cpack will *reset* :variable:`CPACK_GENERATOR`
-internally to *the one currently being used* and then include the
-:variable:`CPACK_PROJECT_CONFIG_FILE`.
-
-Variables common to all CPack Generators
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Before including this CPack module in your ``CMakeLists.txt`` file, there
-are a variety of variables that can be set to customize the resulting
-installers. The most commonly-used variables are:
-
-.. variable:: CPACK_PACKAGE_NAME
-
- The name of the package (or application). If not specified, it defaults to
- the project name.
-
-.. variable:: CPACK_PACKAGE_VENDOR
-
- The name of the package vendor. (e.g., "Kitware"). The default is "Humanity".
-
-.. variable:: CPACK_PACKAGE_DIRECTORY
-
- The directory in which CPack is doing its packaging. If it is not set
- then this will default (internally) to the build dir. This variable may
- be defined in a CPack config file or from the :manual:`cpack <cpack(1)>`
- command line option ``-B``. If set, the command line option overrides the
- value found in the config file.
-
-.. variable:: CPACK_PACKAGE_VERSION_MAJOR
-
- Package major version. This variable will always be set, but its default
- value depends on whether or not version details were given to the
- :command:`project` command in the top level CMakeLists.txt file. If version
- details were given, the default value will be
- :variable:`CMAKE_PROJECT_VERSION_MAJOR`. If no version details were given,
- a default version of 0.1.1 will be assumed, leading to
- ``CPACK_PACKAGE_VERSION_MAJOR`` having a default value of 0.
-
-.. variable:: CPACK_PACKAGE_VERSION_MINOR
-
- Package minor version. The default value is determined based on whether or
- not version details were given to the :command:`project` command in the top
- level CMakeLists.txt file. If version details were given, the default
- value will be :variable:`CMAKE_PROJECT_VERSION_MINOR`, but if no minor
- version component was specified then ``CPACK_PACKAGE_VERSION_MINOR`` will be
- left unset. If no project version was given at all, a default version of
- 0.1.1 will be assumed, leading to ``CPACK_PACKAGE_VERSION_MINOR`` having a
- default value of 1.
-
-.. variable:: CPACK_PACKAGE_VERSION_PATCH
-
- Package patch version. The default value is determined based on whether or
- not version details were given to the :command:`project` command in the top
- level CMakeLists.txt file. If version details were given, the default
- value will be :variable:`CMAKE_PROJECT_VERSION_PATCH`, but if no patch
- version component was specified then ``CPACK_PACKAGE_VERSION_PATCH`` will be
- left unset. If no project version was given at all, a default version of
- 0.1.1 will be assumed, leading to ``CPACK_PACKAGE_VERSION_PATCH`` having a
- default value of 1.
-
-.. variable:: CPACK_PACKAGE_DESCRIPTION
-
- A description of the project, used in places such as the introduction
- screen of CPack-generated Windows installers. If not set, the value of
- this variable is populated from the file named by
- :variable:`CPACK_PACKAGE_DESCRIPTION_FILE`.
-
-.. variable:: CPACK_PACKAGE_DESCRIPTION_FILE
-
- A text file used to describe the project when
- :variable:`CPACK_PACKAGE_DESCRIPTION` is not explicitly set. The default
- value for ``CPACK_PACKAGE_DESCRIPTION_FILE`` points to a built-in template
- file ``Templates/CPack.GenericDescription.txt``.
-
-.. variable:: CPACK_PACKAGE_DESCRIPTION_SUMMARY
-
- Short description of the project (only a few words). If the
- :variable:`CMAKE_PROJECT_DESCRIPTION` variable is set, it is used as the
- default value, otherwise the default will be a string generated by CMake
- based on :variable:`CMAKE_PROJECT_NAME`.
-
-.. variable:: CPACK_PACKAGE_HOMEPAGE_URL
-
- Project homepage URL. The default value is taken from the
- :variable:`CMAKE_PROJECT_HOMEPAGE_URL` variable, which is set by the top
- level :command:`project` command, or else the default will be empty if no
- URL was provided to :command:`project`.
-
-.. variable:: CPACK_PACKAGE_FILE_NAME
-
- The name of the package file to generate, not including the
- extension. For example, ``cmake-2.6.1-Linux-i686``. The default value
- is::
-
- ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}
-
-.. variable:: CPACK_PACKAGE_INSTALL_DIRECTORY
-
- Installation directory on the target system. This may be used by some
- CPack generators like NSIS to create an installation directory e.g.,
- "CMake 2.5" below the installation prefix. All installed elements will be
- put inside this directory.
-
-.. variable:: CPACK_PACKAGE_ICON
-
- A branding image that will be displayed inside the installer (used by GUI
- installers).
-
-.. variable:: CPACK_PACKAGE_CHECKSUM
-
- An algorithm that will be used to generate an additional file with the
- checksum of the package. The output file name will be::
-
- ${CPACK_PACKAGE_FILE_NAME}.${CPACK_PACKAGE_CHECKSUM}
-
- Supported algorithms are those listed by the
- :ref:`string(\<HASH\>) <Supported Hash Algorithms>` command.
-
-.. variable:: CPACK_PROJECT_CONFIG_FILE
-
- CPack-time project CPack configuration file. This file is included at cpack
- time, once per generator after CPack has set :variable:`CPACK_GENERATOR`
- to the actual generator being used. It allows per-generator setting of
- ``CPACK_*`` variables at cpack time.
-
-.. variable:: CPACK_RESOURCE_FILE_LICENSE
-
- License to be embedded in the installer. It will typically be displayed
- to the user by the produced installer (often with an explicit "Accept"
- button, for graphical installers) prior to installation. This license
- file is NOT added to the installed files but is used by some CPack generators
- like NSIS. If you want to install a license file (may be the same as this
- one) along with your project, you must add an appropriate CMake
- :command:`install` command in your ``CMakeLists.txt``.
-
-.. variable:: CPACK_RESOURCE_FILE_README
-
- ReadMe file to be embedded in the installer. It typically describes in
- some detail the purpose of the project during the installation. Not all
- CPack generators use this file.
-
-.. variable:: CPACK_RESOURCE_FILE_WELCOME
-
- Welcome file to be embedded in the installer. It welcomes users to this
- installer. Typically used in the graphical installers on Windows and Mac
- OS X.
-
-.. variable:: CPACK_MONOLITHIC_INSTALL
-
- Disables the component-based installation mechanism. When set, the
- component specification is ignored and all installed items are put in a
- single "MONOLITHIC" package. Some CPack generators do monolithic
- packaging by default and may be asked to do component packaging by
- setting ``CPACK_<GENNAME>_COMPONENT_INSTALL`` to ``TRUE``.
-
-.. variable:: CPACK_GENERATOR
-
- List of CPack generators to use. If not specified, CPack will create a
- set of options following the naming pattern
- :variable:`CPACK_BINARY_<GENNAME>` (e.g. ``CPACK_BINARY_NSIS``) allowing
- the user to enable/disable individual generators. If the ``-G`` option is
- given on the :manual:`cpack <cpack(1)>` command line, it will override this
- variable and any ``CPACK_BINARY_<GENNAME>`` options.
-
-.. variable:: CPACK_OUTPUT_CONFIG_FILE
-
- The name of the CPack binary configuration file. This file is the CPack
- configuration generated by the CPack module for binary installers.
- Defaults to ``CPackConfig.cmake``.
-
-.. variable:: CPACK_PACKAGE_EXECUTABLES
-
- Lists each of the executables and associated text label to be used to
- create Start Menu shortcuts. For example, setting this to the list
- ``ccmake;CMake`` will create a shortcut named "CMake" that will execute the
- installed executable ``ccmake``. Not all CPack generators use it (at least
- NSIS, WIX and OSXX11 do).
-
-.. variable:: CPACK_STRIP_FILES
-
- List of files to be stripped. Starting with CMake 2.6.0,
- ``CPACK_STRIP_FILES`` will be a boolean variable which enables
- stripping of all files (a list of files evaluates to ``TRUE`` in CMake,
- so this change is compatible).
-
-.. variable:: CPACK_VERBATIM_VARIABLES
-
- If set to ``TRUE``, values of variables prefixed with ``CPACK_`` will be
- escaped before being written to the configuration files, so that the cpack
- program receives them exactly as they were specified. If not, characters
- like quotes and backslashes can cause parsing errors or alter the value
- received by the cpack program. Defaults to ``FALSE`` for backwards
- compatibility.
-
-Variables for Source Package Generators
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The following CPack variables are specific to source packages, and
-will not affect binary packages:
-
-.. variable:: CPACK_SOURCE_PACKAGE_FILE_NAME
-
- The name of the source package. For example ``cmake-2.6.1``.
-
-.. variable:: CPACK_SOURCE_STRIP_FILES
-
- List of files in the source tree that will be stripped. Starting with
- CMake 2.6.0, ``CPACK_SOURCE_STRIP_FILES`` will be a boolean
- variable which enables stripping of all files (a list of files evaluates
- to ``TRUE`` in CMake, so this change is compatible).
-
-.. variable:: CPACK_SOURCE_GENERATOR
-
- List of generators used for the source packages. As with
- :variable:`CPACK_GENERATOR`, if this is not specified then CPack will
- create a set of options (e.g. ``CPACK_SOURCE_ZIP``) allowing
- users to select which packages will be generated.
-
-.. variable:: CPACK_SOURCE_OUTPUT_CONFIG_FILE
-
- The name of the CPack source configuration file. This file is the CPack
- configuration generated by the CPack module for source installers.
- Defaults to ``CPackSourceConfig.cmake``.
-
-.. variable:: CPACK_SOURCE_IGNORE_FILES
-
- Pattern of files in the source tree that won't be packaged when building
- a source package. This is a list of regular expression patterns (that
- must be properly escaped), e.g.,
- ``/CVS/;/\\.svn/;\\.swp$;\\.#;/#;.*~;cscope.*``
-
-Variables for Advanced Use
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The following variables are for advanced uses of CPack:
-
-.. variable:: CPACK_CMAKE_GENERATOR
-
- What CMake generator should be used if the project is a CMake
- project. Defaults to the value of :variable:`CMAKE_GENERATOR`. Few users
- will want to change this setting.
-
-.. variable:: CPACK_INSTALL_CMAKE_PROJECTS
-
- List of four values that specify what project to install. The four values
- are: Build directory, Project Name, Project Component, Directory. If
- omitted, CPack will build an installer that installs everything.
-
-.. variable:: CPACK_SYSTEM_NAME
-
- System name, defaults to the value of :variable:`CMAKE_SYSTEM_NAME`,
- except on Windows where it will be ``win32`` or ``win64``.
-
-.. variable:: CPACK_PACKAGE_VERSION
-
- Package full version, used internally. By default, this is built from
- :variable:`CPACK_PACKAGE_VERSION_MAJOR`,
- :variable:`CPACK_PACKAGE_VERSION_MINOR`, and
- :variable:`CPACK_PACKAGE_VERSION_PATCH`.
-
-.. variable:: CPACK_TOPLEVEL_TAG
-
- Directory for the installed files.
-
-.. variable:: CPACK_INSTALL_COMMANDS
-
- Extra commands to install components. The environment variable
- ``CMAKE_INSTALL_PREFIX`` is set to the temporary install directory
- during execution.
-
-.. variable:: CPACK_INSTALL_SCRIPTS
-
- Extra CMake scripts executed by CPack during its local staging
- installation, which is done right before packaging the files.
- The scripts are not called by a standalone install (e.g.: ``make install``).
- For every script, the following variables will be set:
- :variable:`CMAKE_CURRENT_SOURCE_DIR`, :variable:`CMAKE_CURRENT_BINARY_DIR`
- and :variable:`CMAKE_INSTALL_PREFIX` (which is set to the staging install
- directory). The singular form ``CMAKE_INSTALL_SCRIPT`` is supported as
- an alternative variable for historical reasons, but its value is ignored if
- ``CMAKE_INSTALL_SCRIPTS`` is set and a warning will be issued.
-
-.. variable:: CPACK_INSTALLED_DIRECTORIES
-
- Extra directories to install.
-
-.. variable:: CPACK_PACKAGE_INSTALL_REGISTRY_KEY
-
- Registry key used when installing this project. This is only used by
- installers for Windows. The default value is based on the installation
- directory.
-
-.. variable:: CPACK_CREATE_DESKTOP_LINKS
-
- List of desktop links to create. Each desktop link requires a
- corresponding start menu shortcut as created by
- :variable:`CPACK_PACKAGE_EXECUTABLES`.
-
-.. variable:: CPACK_BINARY_<GENNAME>
-
- CPack generated options for binary generators. The ``CPack.cmake`` module
- generates (when :variable:`CPACK_GENERATOR` is not set) a set of CMake
- options (see CMake :command:`option` command) which may then be used to
- select the CPack generator(s) to be used when building the ``package``
- target or when running :manual:`cpack <cpack(1)>` without the ``-G`` option.
-
-#]=======================================================================]
-
-# Define this var in order to avoid (or warn) concerning multiple inclusion
-if(CPack_CMake_INCLUDED)
- message(WARNING "CPack.cmake has already been included!!")
-else()
- set(CPack_CMake_INCLUDED 1)
-endif()
-
-# Pick a configuration file
-set(cpack_input_file "${CMAKE_ROOT}/Templates/CPackConfig.cmake.in")
-if(EXISTS "${CMAKE_SOURCE_DIR}/CPackConfig.cmake.in")
- set(cpack_input_file "${CMAKE_SOURCE_DIR}/CPackConfig.cmake.in")
-endif()
-set(cpack_source_input_file "${CMAKE_ROOT}/Templates/CPackConfig.cmake.in")
-if(EXISTS "${CMAKE_SOURCE_DIR}/CPackSourceConfig.cmake.in")
- set(cpack_source_input_file "${CMAKE_SOURCE_DIR}/CPackSourceConfig.cmake.in")
-endif()
-
-# Backward compatibility
-# Include CPackComponent macros if it has not already been included before.
-include(CPackComponent)
-
-# Macro for setting values if a user did not overwrite them
-# Mangles CMake-special characters. Only kept for backwards compatibility.
-macro(cpack_set_if_not_set name value)
- message(DEPRECATION "cpack_set_if_not_set is obsolete; do not use.")
- _cpack_set_default("${name}" "${value}")
-endmacro()
-
-# cpack_encode_variables - Function to encode variables for the configuration file
-# find any variable that starts with CPACK and create a variable
-# _CPACK_OTHER_VARIABLES_ that contains SET commands for
-# each cpack variable. _CPACK_OTHER_VARIABLES_ is then
-# used as an @ replacment in configure_file for the CPackConfig.
-function(cpack_encode_variables)
- set(commands "")
- get_cmake_property(res VARIABLES)
- foreach(var ${res})
- if(var MATCHES "^CPACK")
- if(CPACK_VERBATIM_VARIABLES)
- _cpack_escape_for_cmake(value "${${var}}")
- else()
- set(value "${${var}}")
- endif()
-
- string(APPEND commands "\nset(${var} \"${value}\")")
- endif()
- endforeach()
-
- set(_CPACK_OTHER_VARIABLES_ "${commands}" PARENT_SCOPE)
-endfunction()
-
-# Internal use functions
-function(_cpack_set_default name value)
- if(NOT DEFINED "${name}")
- set("${name}" "${value}" PARENT_SCOPE)
- endif()
-endfunction()
-
-function(_cpack_escape_for_cmake var value)
- string(REGEX REPLACE "([\\\$\"])" "\\\\\\1" escaped "${value}")
- set("${var}" "${escaped}" PARENT_SCOPE)
-endfunction()
-
-# Set the package name
-_cpack_set_default(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
-
-# Set the package version
-if(CMAKE_PROJECT_VERSION_MAJOR GREATER_EQUAL 0)
- _cpack_set_default(CPACK_PACKAGE_VERSION_MAJOR "${CMAKE_PROJECT_VERSION_MAJOR}")
- if(CMAKE_PROJECT_VERSION_MINOR GREATER_EQUAL 0)
- _cpack_set_default(CPACK_PACKAGE_VERSION_MINOR "${CMAKE_PROJECT_VERSION_MINOR}")
- if(CMAKE_PROJECT_VERSION_PATCH GREATER_EQUAL 0)
- _cpack_set_default(CPACK_PACKAGE_VERSION_PATCH "${CMAKE_PROJECT_VERSION_PATCH}")
- endif()
- endif()
-else()
- _cpack_set_default(CPACK_PACKAGE_VERSION_MAJOR "0")
- _cpack_set_default(CPACK_PACKAGE_VERSION_MINOR "1")
- _cpack_set_default(CPACK_PACKAGE_VERSION_PATCH "1")
-endif()
-if(NOT DEFINED CPACK_PACKAGE_VERSION)
- set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}")
- if(CPACK_PACKAGE_VERSION_MINOR GREATER_EQUAL 0)
- string(APPEND CPACK_PACKAGE_VERSION ".${CPACK_PACKAGE_VERSION_MINOR}")
- if(CPACK_PACKAGE_VERSION_PATCH GREATER_EQUAL 0)
- string(APPEND CPACK_PACKAGE_VERSION ".${CPACK_PACKAGE_VERSION_PATCH}")
- endif()
- endif()
-endif()
-
-_cpack_set_default(CPACK_PACKAGE_VENDOR "Humanity")
-set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "${CMAKE_PROJECT_NAME} built using CMake")
-if(CMAKE_PROJECT_DESCRIPTION)
- _cpack_set_default(CPACK_PACKAGE_DESCRIPTION_SUMMARY
- "${CMAKE_PROJECT_DESCRIPTION}")
-else()
- _cpack_set_default(CPACK_PACKAGE_DESCRIPTION_SUMMARY
- "${CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY}")
-endif()
-if(CMAKE_PROJECT_HOMEPAGE_URL)
- _cpack_set_default(CPACK_PACKAGE_HOMEPAGE_URL
- "${CMAKE_PROJECT_HOMEPAGE_URL}")
-endif()
-
-set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE
- "${CMAKE_ROOT}/Templates/CPack.GenericDescription.txt")
-_cpack_set_default(CPACK_PACKAGE_DESCRIPTION_FILE
- "${CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE}")
-_cpack_set_default(CPACK_RESOURCE_FILE_LICENSE
- "${CMAKE_ROOT}/Templates/CPack.GenericLicense.txt")
-_cpack_set_default(CPACK_RESOURCE_FILE_README
- "${CMAKE_ROOT}/Templates/CPack.GenericDescription.txt")
-_cpack_set_default(CPACK_RESOURCE_FILE_WELCOME
- "${CMAKE_ROOT}/Templates/CPack.GenericWelcome.txt")
-
-_cpack_set_default(CPACK_MODULE_PATH "${CMAKE_MODULE_PATH}")
-
-# Set default directory creation permissions mode
-if(CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS)
- _cpack_set_default(CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
- "${CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS}")
-endif()
-
-if(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL)
- set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
-endif()
-
-if(CPACK_NSIS_MODIFY_PATH)
- set(CPACK_NSIS_MODIFY_PATH ON)
-endif()
-
-set(__cpack_system_name ${CMAKE_SYSTEM_NAME})
-if(__cpack_system_name MATCHES "Windows")
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(__cpack_system_name win64)
- else()
- set(__cpack_system_name win32)
- endif()
-endif()
-_cpack_set_default(CPACK_SYSTEM_NAME "${__cpack_system_name}")
-
-# Root dir: default value should be the string literal "$PROGRAMFILES"
-# for backwards compatibility. Projects may set this value to anything.
-# When creating 64 bit binaries we set the default value to "$PROGRAMFILES64"
-if("x${__cpack_system_name}" STREQUAL "xwin64")
- set(__cpack_root_default "$PROGRAMFILES64")
-else()
- set(__cpack_root_default "$PROGRAMFILES")
-endif()
-_cpack_set_default(CPACK_NSIS_INSTALL_ROOT "${__cpack_root_default}")
-
-# <project>-<major>.<minor>.<patch>-<release>-<platform>.<pkgtype>
-_cpack_set_default(CPACK_PACKAGE_FILE_NAME
- "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}")
-_cpack_set_default(CPACK_PACKAGE_INSTALL_DIRECTORY
- "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}")
-_cpack_set_default(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
- "${CPACK_PACKAGE_INSTALL_DIRECTORY}")
-_cpack_set_default(CPACK_PACKAGE_DEFAULT_LOCATION "/")
-_cpack_set_default(CPACK_PACKAGE_RELOCATABLE "true")
-
-# always force to exactly "true" or "false" for CPack.Info.plist.in:
-if(CPACK_PACKAGE_RELOCATABLE)
- set(CPACK_PACKAGE_RELOCATABLE "true")
-else()
- set(CPACK_PACKAGE_RELOCATABLE "false")
-endif()
-
-macro(cpack_check_file_exists file description)
- if(NOT EXISTS "${file}")
- message(SEND_ERROR "CPack ${description} file: \"${file}\" could not be found.")
- endif()
-endmacro()
-
-cpack_check_file_exists("${CPACK_PACKAGE_DESCRIPTION_FILE}" "package description")
-cpack_check_file_exists("${CPACK_RESOURCE_FILE_LICENSE}" "license resource")
-cpack_check_file_exists("${CPACK_RESOURCE_FILE_README}" "readme resource")
-cpack_check_file_exists("${CPACK_RESOURCE_FILE_WELCOME}" "welcome resource")
-
-macro(cpack_optional_append _list _cond _item)
- if(${_cond})
- set(${_list} ${${_list}} ${_item})
- endif()
-endmacro()
-
-# Provide options to choose generators we might check here if the required
-# tools for the generators exist and set the defaults according to the
-# results.
-if(NOT CPACK_GENERATOR)
- if(UNIX)
- if(CYGWIN)
- option(CPACK_BINARY_CYGWIN "Enable to build Cygwin binary packages" ON)
- else()
- if(APPLE)
- option(CPACK_BINARY_BUNDLE "Enable to build OSX bundles" OFF)
- option(CPACK_BINARY_DRAGNDROP "Enable to build OSX Drag And Drop package" OFF)
- option(CPACK_BINARY_OSXX11 "Enable to build OSX X11 packages" OFF)
- option(CPACK_BINARY_PACKAGEMAKER "Enable to build PackageMaker packages" OFF)
- option(CPACK_BINARY_PRODUCTBUILD "Enable to build productbuild packages" OFF)
- else()
- option(CPACK_BINARY_TZ "Enable to build TZ packages" ON)
- endif()
- option(CPACK_BINARY_DEB "Enable to build Debian packages" OFF)
- option(CPACK_BINARY_FREEBSD "Enable to build FreeBSD packages" OFF)
- option(CPACK_BINARY_NSIS "Enable to build NSIS packages" OFF)
- option(CPACK_BINARY_RPM "Enable to build RPM packages" OFF)
- option(CPACK_BINARY_STGZ "Enable to build STGZ packages" ON)
- option(CPACK_BINARY_TBZ2 "Enable to build TBZ2 packages" OFF)
- option(CPACK_BINARY_TGZ "Enable to build TGZ packages" ON)
- option(CPACK_BINARY_TXZ "Enable to build TXZ packages" OFF)
- endif()
- else()
- option(CPACK_BINARY_7Z "Enable to build 7-Zip packages" OFF)
- option(CPACK_BINARY_NSIS "Enable to build NSIS packages" ON)
- option(CPACK_BINARY_NUGET "Enable to build NuGet packages" OFF)
- option(CPACK_BINARY_WIX "Enable to build WiX packages" OFF)
- option(CPACK_BINARY_ZIP "Enable to build ZIP packages" OFF)
- endif()
- option(CPACK_BINARY_IFW "Enable to build IFW packages" OFF)
-
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_7Z 7Z)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_BUNDLE Bundle)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_CYGWIN CygwinBinary)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_DEB DEB)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_DRAGNDROP DragNDrop)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_FREEBSD FREEBSD)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_IFW IFW)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_NSIS NSIS)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_NUGET NuGet)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_OSXX11 OSXX11)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_PACKAGEMAKER PackageMaker)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_PRODUCTBUILD productbuild)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_RPM RPM)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_STGZ STGZ)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_TBZ2 TBZ2)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_TGZ TGZ)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_TXZ TXZ)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_TZ TZ)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_WIX WIX)
- cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_ZIP ZIP)
-
-endif()
-
-# Provide options to choose source generators
-if(NOT CPACK_SOURCE_GENERATOR)
- if(UNIX)
- if(CYGWIN)
- option(CPACK_SOURCE_CYGWIN "Enable to build Cygwin source packages" ON)
- else()
- option(CPACK_SOURCE_RPM "Enable to build RPM source packages" OFF)
- option(CPACK_SOURCE_TBZ2 "Enable to build TBZ2 source packages" ON)
- option(CPACK_SOURCE_TGZ "Enable to build TGZ source packages" ON)
- option(CPACK_SOURCE_TXZ "Enable to build TXZ source packages" ON)
- option(CPACK_SOURCE_TZ "Enable to build TZ source packages" ON)
- option(CPACK_SOURCE_ZIP "Enable to build ZIP source packages" OFF)
- endif()
- else()
- option(CPACK_SOURCE_7Z "Enable to build 7-Zip source packages" ON)
- option(CPACK_SOURCE_ZIP "Enable to build ZIP source packages" ON)
- endif()
-
- cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_7Z 7Z)
- cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_CYGWIN CygwinSource)
- cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_RPM RPM)
- cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TBZ2 TBZ2)
- cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TGZ TGZ)
- cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TXZ TXZ)
- cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TZ TZ)
- cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_ZIP ZIP)
-endif()
-
-# mark the above options as advanced
-mark_as_advanced(
- CPACK_BINARY_7Z
- CPACK_BINARY_BUNDLE
- CPACK_BINARY_CYGWIN
- CPACK_BINARY_DEB
- CPACK_BINARY_DRAGNDROP
- CPACK_BINARY_FREEBSD
- CPACK_BINARY_IFW
- CPACK_BINARY_NSIS
- CPACK_BINARY_NUGET
- CPACK_BINARY_OSXX11
- CPACK_BINARY_PACKAGEMAKER
- CPACK_BINARY_PRODUCTBUILD
- CPACK_BINARY_RPM
- CPACK_BINARY_STGZ
- CPACK_BINARY_TBZ2
- CPACK_BINARY_TGZ
- CPACK_BINARY_TXZ
- CPACK_BINARY_TZ
- CPACK_BINARY_WIX
- CPACK_BINARY_ZIP
- CPACK_SOURCE_7Z
- CPACK_SOURCE_CYGWIN
- CPACK_SOURCE_RPM
- CPACK_SOURCE_TBZ2
- CPACK_SOURCE_TGZ
- CPACK_SOURCE_TXZ
- CPACK_SOURCE_TZ
- CPACK_SOURCE_ZIP
- )
-
-# Set some other variables
-_cpack_set_default(CPACK_INSTALL_CMAKE_PROJECTS
- "${CMAKE_BINARY_DIR};${CMAKE_PROJECT_NAME};ALL;/")
-_cpack_set_default(CPACK_CMAKE_GENERATOR "${CMAKE_GENERATOR}")
-_cpack_set_default(CPACK_TOPLEVEL_TAG "${CPACK_SYSTEM_NAME}")
-# if the user has set CPACK_NSIS_DISPLAY_NAME remember it
-if(DEFINED CPACK_NSIS_DISPLAY_NAME)
- set(CPACK_NSIS_DISPLAY_NAME_SET TRUE)
-endif()
-# if the user has set CPACK_NSIS_DISPLAY
-# explicitly, then use that as the default
-# value of CPACK_NSIS_PACKAGE_NAME instead
-# of CPACK_PACKAGE_INSTALL_DIRECTORY
-_cpack_set_default(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}")
-
-if(CPACK_NSIS_DISPLAY_NAME_SET)
- _cpack_set_default(CPACK_NSIS_PACKAGE_NAME "${CPACK_NSIS_DISPLAY_NAME}")
-else()
- _cpack_set_default(CPACK_NSIS_PACKAGE_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}")
-endif()
-
-_cpack_set_default(CPACK_OUTPUT_CONFIG_FILE
- "${CMAKE_BINARY_DIR}/CPackConfig.cmake")
-
-_cpack_set_default(CPACK_SOURCE_OUTPUT_CONFIG_FILE
- "${CMAKE_BINARY_DIR}/CPackSourceConfig.cmake")
-
-_cpack_set_default(CPACK_SET_DESTDIR OFF)
-_cpack_set_default(CPACK_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-
-_cpack_set_default(CPACK_NSIS_INSTALLER_ICON_CODE "")
-_cpack_set_default(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
-
-# WiX specific variables
-_cpack_set_default(CPACK_WIX_SIZEOF_VOID_P "${CMAKE_SIZEOF_VOID_P}")
-
-# set sysroot so SDK tools can be used
-if(CMAKE_OSX_SYSROOT)
- _cpack_set_default(CPACK_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_PATH}")
-endif()
-
-_cpack_set_default(CPACK_BUILD_SOURCE_DIRS "${CMAKE_SOURCE_DIR};${CMAKE_BINARY_DIR}")
-
-if(DEFINED CPACK_COMPONENTS_ALL)
- if(CPACK_MONOLITHIC_INSTALL)
- message("CPack warning: both CPACK_COMPONENTS_ALL and CPACK_MONOLITHIC_INSTALL have been set.\nDefaulting to a monolithic installation.")
- set(CPACK_COMPONENTS_ALL)
- else()
- # The user has provided the set of components to be installed as
- # part of a component-based installation; trust her.
- set(CPACK_COMPONENTS_ALL_SET_BY_USER TRUE)
- endif()
-else()
- # If the user has not specifically requested a monolithic installer
- # but has specified components in various "install" commands, tell
- # CPack about those components.
- if(NOT CPACK_MONOLITHIC_INSTALL)
- get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS)
- list(LENGTH CPACK_COMPONENTS_ALL CPACK_COMPONENTS_LEN)
- if(CPACK_COMPONENTS_LEN EQUAL 1)
- # Only one component: this is not a component-based installation
- # (at least, it isn't a component-based installation, but may
- # become one later if the user uses the cpack_add_* commands).
- set(CPACK_COMPONENTS_ALL)
- endif()
- set(CPACK_COMPONENTS_LEN)
- endif()
-endif()
-
-# CMake always generates a component named "Unspecified", which is
-# used to install everything that doesn't have an explicitly-provided
-# component. Since these files should always be installed, we'll make
-# them hidden and required.
-set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN TRUE)
-set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED TRUE)
-
-cpack_encode_variables()
-configure_file("${cpack_input_file}" "${CPACK_OUTPUT_CONFIG_FILE}" @ONLY)
-
-# Generate source file
-_cpack_set_default(CPACK_SOURCE_INSTALLED_DIRECTORIES
- "${CMAKE_SOURCE_DIR};/")
-_cpack_set_default(CPACK_SOURCE_TOPLEVEL_TAG "${CPACK_SYSTEM_NAME}-Source")
-_cpack_set_default(CPACK_SOURCE_PACKAGE_FILE_NAME
- "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Source")
-
-set(__cpack_source_ignore_files_default
- "/CVS/;/\\.svn/;/\\.bzr/;/\\.hg/;/\\.git/;\\.swp$;\\.#;/#")
-if(NOT CPACK_VERBATIM_VARIABLES)
- _cpack_escape_for_cmake(__cpack_source_ignore_files_default
- "${__cpack_source_ignore_files_default}")
-endif()
-_cpack_set_default(CPACK_SOURCE_IGNORE_FILES "${__cpack_source_ignore_files_default}")
-
-set(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_SOURCE_INSTALL_CMAKE_PROJECTS}")
-set(CPACK_INSTALLED_DIRECTORIES "${CPACK_SOURCE_INSTALLED_DIRECTORIES}")
-set(CPACK_GENERATOR "${CPACK_SOURCE_GENERATOR}")
-set(CPACK_TOPLEVEL_TAG "${CPACK_SOURCE_TOPLEVEL_TAG}")
-set(CPACK_PACKAGE_FILE_NAME "${CPACK_SOURCE_PACKAGE_FILE_NAME}")
-set(CPACK_IGNORE_FILES "${CPACK_SOURCE_IGNORE_FILES}")
-set(CPACK_STRIP_FILES "${CPACK_SOURCE_STRIP_FILES}")
-
-set(CPACK_RPM_PACKAGE_SOURCES "ON")
-
-cpack_encode_variables()
-configure_file("${cpack_source_input_file}"
- "${CPACK_SOURCE_OUTPUT_CONFIG_FILE}" @ONLY)
diff --git a/share/cmake-3.16/Modules/CPackIFW.cmake b/share/cmake-3.16/Modules/CPackIFW.cmake
deleted file mode 100644
index 42ef8c7..0000000
--- a/share/cmake-3.16/Modules/CPackIFW.cmake
+++ /dev/null
@@ -1,740 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CPackIFW
---------
-
-The documentation for the CPack IFW generator has moved here: :cpack_gen:`CPack IFW Generator`
-
-.. _QtIFW: http://doc.qt.io/qtinstallerframework/index.html
-
-This module looks for the location of the command line utilities supplied
-with the Qt Installer Framework (QtIFW_).
-
-The module also defines several commands to control the behavior of the
-CPack ``IFW`` generator.
-
-Commands
-^^^^^^^^
-
-The module defines the following commands:
-
-.. command:: cpack_ifw_configure_component
-
- Sets the arguments specific to the CPack IFW generator.
-
- ::
-
- cpack_ifw_configure_component(<compname> [COMMON] [ESSENTIAL] [VIRTUAL]
- [FORCED_INSTALLATION] [REQUIRES_ADMIN_RIGHTS]
- [NAME <name>]
- [DISPLAY_NAME <display_name>] # Note: Internationalization supported
- [DESCRIPTION <description>] # Note: Internationalization supported
- [UPDATE_TEXT <update_text>]
- [VERSION <version>]
- [RELEASE_DATE <release_date>]
- [SCRIPT <script>]
- [PRIORITY|SORTING_PRIORITY <sorting_priority>] # Note: PRIORITY is deprecated
- [DEPENDS|DEPENDENCIES <com_id> ...]
- [AUTO_DEPEND_ON <comp_id> ...]
- [LICENSES <display_name> <file_path> ...]
- [DEFAULT <value>]
- [USER_INTERFACES <file_path> <file_path> ...]
- [TRANSLATIONS <file_path> <file_path> ...]
- [REPLACES <comp_id> ...]
- [CHECKABLE <value>])
-
- This command should be called after :command:`cpack_add_component` command.
-
- ``COMMON``
- if set, then the component will be packaged and installed as part
- of a group to which it belongs.
-
- ``ESSENTIAL``
- if set, then the package manager stays disabled until that
- component is updated.
-
- ``VIRTUAL``
- if set, then the component will be hidden from the installer.
- It is a equivalent of the ``HIDDEN`` option from the
- :command:`cpack_add_component` command.
-
- ``FORCED_INSTALLATION``
- if set, then the component must always be installed.
- It is a equivalent of the ``REQUARED`` option from the
- :command:`cpack_add_component` command.
-
- ``REQUIRES_ADMIN_RIGHTS``
- set it if the component needs to be installed with elevated permissions.
-
- ``NAME``
- is used to create domain-like identification for this component.
- By default used origin component name.
-
- ``DISPLAY_NAME``
- set to rewrite original name configured by
- :command:`cpack_add_component` command.
-
- ``DESCRIPTION``
- set to rewrite original description configured by
- :command:`cpack_add_component` command.
-
- ``UPDATE_TEXT``
- will be added to the component description if this is an update to
- the component.
-
- ``VERSION``
- is version of component.
- By default used :variable:`CPACK_PACKAGE_VERSION`.
-
- ``RELEASE_DATE``
- keep empty to auto generate.
-
- ``SCRIPT``
- is a relative or absolute path to operations script
- for this component.
-
- ``PRIORITY`` | ``SORTING_PRIORITY``
- is priority of the component in the tree.
- The ``PRIORITY`` option is deprecated and will be removed in a future
- version of CMake. Please use ``SORTING_PRIORITY`` option instead.
-
- ``DEPENDS`` | ``DEPENDENCIES``
- list of dependency component or component group identifiers in
- QtIFW_ style.
-
- ``AUTO_DEPEND_ON``
- list of identifiers of component or component group in QtIFW_ style
- that this component has an automatic dependency on.
-
- ``LICENSES``
- pair of <display_name> and <file_path> of license text for this
- component. You can specify more then one license.
-
- ``DEFAULT``
- Possible values are: TRUE, FALSE, and SCRIPT.
- Set to FALSE to disable the component in the installer or to SCRIPT
- to resolved during runtime (don't forget add the file of the script
- as a value of the ``SCRIPT`` option).
-
- ``USER_INTERFACES``
- is a list of <file_path> ('.ui' files) representing pages to load.
-
- ``TRANSLATIONS``
- is a list of <file_path> ('.qm' files) representing translations to load.
-
- ``REPLACES``
- list of identifiers of component or component group to replace.
-
- ``CHECKABLE``
- Possible values are: TRUE, FALSE.
- Set to FALSE if you want to hide the checkbox for an item.
- This is useful when only a few subcomponents should be selected
- instead of all.
-
-
-.. command:: cpack_ifw_configure_component_group
-
- Sets the arguments specific to the CPack IFW generator.
-
- ::
-
- cpack_ifw_configure_component_group(<groupname> [VIRTUAL]
- [FORCED_INSTALLATION] [REQUIRES_ADMIN_RIGHTS]
- [NAME <name>]
- [DISPLAY_NAME <display_name>] # Note: Internationalization supported
- [DESCRIPTION <description>] # Note: Internationalization supported
- [UPDATE_TEXT <update_text>]
- [VERSION <version>]
- [RELEASE_DATE <release_date>]
- [SCRIPT <script>]
- [PRIORITY|SORTING_PRIORITY <sorting_priority>] # Note: PRIORITY is deprecated
- [DEPENDS|DEPENDENCIES <com_id> ...]
- [AUTO_DEPEND_ON <comp_id> ...]
- [LICENSES <display_name> <file_path> ...]
- [DEFAULT <value>]
- [USER_INTERFACES <file_path> <file_path> ...]
- [TRANSLATIONS <file_path> <file_path> ...]
- [REPLACES <comp_id> ...]
- [CHECKABLE <value>])
-
- This command should be called after :command:`cpack_add_component_group`
- command.
-
- ``VIRTUAL``
- if set, then the group will be hidden from the installer.
- Note that setting this on a root component does not work.
-
- ``FORCED_INSTALLATION``
- if set, then the group must always be installed.
-
- ``REQUIRES_ADMIN_RIGHTS``
- set it if the component group needs to be installed with elevated
- permissions.
-
- ``NAME``
- is used to create domain-like identification for this component group.
- By default used origin component group name.
-
- ``DISPLAY_NAME``
- set to rewrite original name configured by
- :command:`cpack_add_component_group` command.
-
- ``DESCRIPTION``
- set to rewrite original description configured by
- :command:`cpack_add_component_group` command.
-
- ``UPDATE_TEXT``
- will be added to the component group description if this is an update to
- the component group.
-
- ``VERSION``
- is version of component group.
- By default used :variable:`CPACK_PACKAGE_VERSION`.
-
- ``RELEASE_DATE``
- keep empty to auto generate.
-
- ``SCRIPT``
- is a relative or absolute path to operations script
- for this component group.
-
- ``PRIORITY`` | ``SORTING_PRIORITY``
- is priority of the component group in the tree.
- The ``PRIORITY`` option is deprecated and will be removed in a future
- version of CMake. Please use ``SORTING_PRIORITY`` option instead.
-
- ``DEPENDS`` | ``DEPENDENCIES``
- list of dependency component or component group identifiers in
- QtIFW_ style.
-
- ``AUTO_DEPEND_ON``
- list of identifiers of component or component group in QtIFW_ style
- that this component group has an automatic dependency on.
-
- ``LICENSES``
- pair of <display_name> and <file_path> of license text for this
- component group. You can specify more then one license.
-
- ``DEFAULT``
- Possible values are: TRUE, FALSE, and SCRIPT.
- Set to TRUE to preselect the group in the installer
- (this takes effect only on groups that have no visible child components)
- or to SCRIPT to resolved during runtime (don't forget add the file of
- the script as a value of the ``SCRIPT`` option).
-
- ``USER_INTERFACES``
- is a list of <file_path> ('.ui' files) representing pages to load.
-
- ``TRANSLATIONS``
- is a list of <file_path> ('.qm' files) representing translations to load.
-
- ``REPLACES``
- list of identifiers of component or component group to replace.
-
- ``CHECKABLE``
- Possible values are: TRUE, FALSE.
- Set to FALSE if you want to hide the checkbox for an item.
- This is useful when only a few subcomponents should be selected
- instead of all.
-
-
-.. command:: cpack_ifw_add_repository
-
- Add QtIFW_ specific remote repository to binary installer.
-
- ::
-
- cpack_ifw_add_repository(<reponame> [DISABLED]
- URL <url>
- [USERNAME <username>]
- [PASSWORD <password>]
- [DISPLAY_NAME <display_name>])
-
- This command will also add the <reponame> repository
- to a variable :variable:`CPACK_IFW_REPOSITORIES_ALL`.
-
- ``DISABLED``
- if set, then the repository will be disabled by default.
-
- ``URL``
- is points to a list of available components.
-
- ``USERNAME``
- is used as user on a protected repository.
-
- ``PASSWORD``
- is password to use on a protected repository.
-
- ``DISPLAY_NAME``
- is string to display instead of the URL.
-
-
-.. command:: cpack_ifw_update_repository
-
- Update QtIFW_ specific repository from remote repository.
-
- ::
-
- cpack_ifw_update_repository(<reponame>
- [[ADD|REMOVE] URL <url>]|
- [REPLACE OLD_URL <old_url> NEW_URL <new_url>]]
- [USERNAME <username>]
- [PASSWORD <password>]
- [DISPLAY_NAME <display_name>])
-
- This command will also add the <reponame> repository
- to a variable :variable:`CPACK_IFW_REPOSITORIES_ALL`.
-
- ``URL``
- is points to a list of available components.
-
- ``OLD_URL``
- is points to a list that will replaced.
-
- ``NEW_URL``
- is points to a list that will replace to.
-
- ``USERNAME``
- is used as user on a protected repository.
-
- ``PASSWORD``
- is password to use on a protected repository.
-
- ``DISPLAY_NAME``
- is string to display instead of the URL.
-
-
-.. command:: cpack_ifw_add_package_resources
-
- Add additional resources in the installer binary.
-
- ::
-
- cpack_ifw_add_package_resources(<file_path> <file_path> ...)
-
- This command will also add the specified files
- to a variable :variable:`CPACK_IFW_PACKAGE_RESOURCES`.
-
-#]=======================================================================]
-
-# TODO:
-# All of the internal implementation CMake modules for other CPack generators
-# have been moved into the Internal/CPack directory. This one has not, because
-# it contains user-facing macros which would be lost if it were moved. At some
-# point, this module should be split into user-facing macros (which would live
-# in this module) and internal implementation details (which would live in
-# Internal/CPack/CPackIFW.cmake).
-
-#=============================================================================
-# Search Qt Installer Framework tools
-#=============================================================================
-
-# Default path
-
-foreach(_CPACK_IFW_PATH_VAR "CPACK_IFW_ROOT" "QTIFWDIR" "QTDIR")
- if(DEFINED ${_CPACK_IFW_PATH_VAR}
- AND NOT "${${_CPACK_IFW_PATH_VAR}}" STREQUAL "")
- list(APPEND _CPACK_IFW_PATHS "${${_CPACK_IFW_PATH_VAR}}")
- endif()
- if(NOT "$ENV{${_CPACK_IFW_PATH_VAR}}" STREQUAL "")
- list(APPEND _CPACK_IFW_PATHS "$ENV{${_CPACK_IFW_PATH_VAR}}")
- endif()
-endforeach()
-if(WIN32)
- list(APPEND _CPACK_IFW_PATHS
- "$ENV{HOMEDRIVE}/Qt"
- "C:/Qt")
-else()
- list(APPEND _CPACK_IFW_PATHS
- "$ENV{HOME}/Qt"
- "/opt/Qt")
-endif()
-list(REMOVE_DUPLICATES _CPACK_IFW_PATHS)
-
-set(_CPACK_IFW_PREFIXES
- # QtSDK
- "Tools/QtInstallerFramework/"
- # Second branch
- "QtIFW"
- # First branch
- "QtIFW-")
-
-set(_CPACK_IFW_VERSIONS
- "3.1"
- "3.1.0"
- "3.0"
- "3.0.0"
- "2.3"
- "2.3.0"
- "2.2"
- "2.2.0"
- "2.1"
- "2.1.0"
- "2.0"
- "2.0.5"
- "2.0.3"
- "2.0.2"
- "2.0.1"
- "2.0.0"
- "1.6"
- "1.6.0"
- "1.5"
- "1.5.0"
- "1.4"
- "1.4.0"
- "1.3"
- "1.3.0")
-
-set(_CPACK_IFW_SUFFIXES "bin")
-foreach(_CPACK_IFW_PREFIX ${_CPACK_IFW_PREFIXES})
- foreach(_CPACK_IFW_VERSION ${_CPACK_IFW_VERSIONS})
- list(APPEND
- _CPACK_IFW_SUFFIXES "${_CPACK_IFW_PREFIX}${_CPACK_IFW_VERSION}/bin")
- endforeach()
-endforeach()
-
-# Look for 'binarycreator'
-
-find_program(CPACK_IFW_BINARYCREATOR_EXECUTABLE
- NAMES binarycreator
- PATHS ${_CPACK_IFW_PATHS}
- PATH_SUFFIXES ${_CPACK_IFW_SUFFIXES}
- DOC "QtIFW binarycreator command line client")
-
-mark_as_advanced(CPACK_IFW_BINARYCREATOR_EXECUTABLE)
-
-# Look for 'repogen'
-
-find_program(CPACK_IFW_REPOGEN_EXECUTABLE
- NAMES repogen
- PATHS ${_CPACK_IFW_PATHS}
- PATH_SUFFIXES ${_CPACK_IFW_SUFFIXES}
- DOC "QtIFW repogen command line client"
- )
-mark_as_advanced(CPACK_IFW_REPOGEN_EXECUTABLE)
-
-# Look for 'installerbase'
-
-find_program(CPACK_IFW_INSTALLERBASE_EXECUTABLE
- NAMES installerbase
- PATHS ${_CPACK_IFW_PATHS}
- PATH_SUFFIXES ${_CPACK_IFW_SUFFIXES}
- DOC "QtIFW installer executable base"
- )
-mark_as_advanced(CPACK_IFW_INSTALLERBASE_EXECUTABLE)
-
-# Look for 'devtool' (appeared in the second branch)
-
-find_program(CPACK_IFW_DEVTOOL_EXECUTABLE
- NAMES devtool
- PATHS ${_CPACK_IFW_PATHS}
- PATH_SUFFIXES ${_CPACK_IFW_SUFFIXES}
- DOC "QtIFW devtool command line client"
- )
-mark_as_advanced(CPACK_IFW_DEVTOOL_EXECUTABLE)
-
-#
-## Next code is included only once
-#
-
-if(NOT CPackIFW_CMake_INCLUDED)
-set(CPackIFW_CMake_INCLUDED 1)
-
-#=============================================================================
-# Framework version
-#=============================================================================
-
-set(CPACK_IFW_FRAMEWORK_VERSION_FORCED ""
- CACHE STRING "The forced version of used QtIFW tools")
-mark_as_advanced(CPACK_IFW_FRAMEWORK_VERSION_FORCED)
-set(CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT 1
- CACHE STRING "The timeout to return QtIFW framework version string from \"installerbase\" executable")
-mark_as_advanced(CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT)
-if(CPACK_IFW_INSTALLERBASE_EXECUTABLE AND NOT CPACK_IFW_FRAMEWORK_VERSION_FORCED)
- set(CPACK_IFW_FRAMEWORK_VERSION)
- # Invoke version from "installerbase" executable
- foreach(_ifw_version_argument --framework-version --version)
- if(NOT CPACK_IFW_FRAMEWORK_VERSION)
- execute_process(COMMAND
- "${CPACK_IFW_INSTALLERBASE_EXECUTABLE}" ${_ifw_version_argument}
- TIMEOUT ${CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT}
- RESULT_VARIABLE CPACK_IFW_FRAMEWORK_VERSION_RESULT
- OUTPUT_VARIABLE CPACK_IFW_FRAMEWORK_VERSION_OUTPUT
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ENCODING UTF8)
- if(NOT CPACK_IFW_FRAMEWORK_VERSION_RESULT AND CPACK_IFW_FRAMEWORK_VERSION_OUTPUT)
- string(REGEX MATCH "[0-9]+(\\.[0-9]+)*"
- CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_FRAMEWORK_VERSION_OUTPUT}")
- if(CPACK_IFW_FRAMEWORK_VERSION)
- if("${_ifw_version_argument}" STREQUAL "--framework-version")
- set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "INSTALLERBASE_FRAMEWORK_VERSION")
- elseif("${_ifw_version_argument}" STREQUAL "--version")
- set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "INSTALLERBASE_FRAMEWORK_VERSION")
- endif()
- endif()
- endif()
- endif()
- endforeach()
- # Finally try to get version from executable path
- if(NOT CPACK_IFW_FRAMEWORK_VERSION)
- string(REGEX MATCH "[0-9]+(\\.[0-9]+)*"
- CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_INSTALLERBASE_EXECUTABLE}")
- if(CPACK_IFW_FRAMEWORK_VERSION)
- set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "INSTALLERBASE_PATH")
- endif()
- endif()
-elseif(CPACK_IFW_FRAMEWORK_VERSION_FORCED)
- set(CPACK_IFW_FRAMEWORK_VERSION ${CPACK_IFW_FRAMEWORK_VERSION_FORCED})
- set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "FORCED")
-endif()
-if(CPACK_IFW_VERBOSE)
- if(CPACK_IFW_FRAMEWORK_VERSION AND CPACK_IFW_FRAMEWORK_VERSION_FORCED)
- message(STATUS "Found QtIFW ${CPACK_IFW_FRAMEWORK_VERSION} (forced) version")
- elseif(CPACK_IFW_FRAMEWORK_VERSION)
- message(STATUS "Found QtIFW ${CPACK_IFW_FRAMEWORK_VERSION} version")
- endif()
-endif()
-if(CPACK_IFW_INSTALLERBASE_EXECUTABLE AND NOT CPACK_IFW_FRAMEWORK_VERSION)
- message(WARNING "Could not detect QtIFW tools version. Set used version to variable \"CPACK_IFW_FRAMEWORK_VERSION_FORCED\" manually.")
-endif()
-
-#=============================================================================
-# Macro definition
-#=============================================================================
-
-# Macro definition based on CPackComponent
-
-if(NOT CPackComponent_CMake_INCLUDED)
- include(CPackComponent)
-endif()
-
-# Resolve full filename for script file
-macro(_cpack_ifw_resolve_script _variable)
- set(_ifw_script_macro ${_variable})
- set(_ifw_script_file ${${_ifw_script_macro}})
- if(DEFINED ${_ifw_script_macro})
- get_filename_component(${_ifw_script_macro} ${_ifw_script_file} ABSOLUTE)
- set(_ifw_script_file ${${_ifw_script_macro}})
- if(NOT EXISTS ${_ifw_script_file})
- message(WARNING "CPack IFW: script file \"${_ifw_script_file}\" does not exist")
- set(${_ifw_script_macro})
- endif()
- endif()
-endmacro()
-
-# Resolve full path to license file
-macro(_cpack_ifw_resolve_lisenses _variable)
- if(${_variable})
- set(_ifw_license_file FALSE)
- set(_ifw_licenses_fix)
- foreach(_ifw_licenses_arg ${${_variable}})
- if(_ifw_license_file)
- get_filename_component(_ifw_licenses_arg "${_ifw_licenses_arg}" ABSOLUTE)
- set(_ifw_license_file FALSE)
- else()
- set(_ifw_license_file TRUE)
- endif()
- list(APPEND _ifw_licenses_fix "${_ifw_licenses_arg}")
- endforeach(_ifw_licenses_arg)
- set(${_variable} "${_ifw_licenses_fix}")
- endif()
-endmacro()
-
-# Resolve full path to a list of provided files
-macro(_cpack_ifw_resolve_file_list _variable)
- if(${_variable})
- set(_ifw_list_fix)
- foreach(_ifw_file_arg ${${_variable}})
- get_filename_component(_ifw_file_arg "${_ifw_file_arg}" ABSOLUTE)
- if(EXISTS ${_ifw_file_arg})
- list(APPEND _ifw_list_fix "${_ifw_file_arg}")
- else()
- message(WARNING "CPack IFW: page file \"${_ifw_file_arg}\" does not exist. Skipping")
- endif()
- endforeach(_ifw_file_arg)
- set(${_variable} "${_ifw_list_fix}")
- endif()
-endmacro()
-
-# Macro for configure component
-macro(cpack_ifw_configure_component compname)
-
- string(TOUPPER ${compname} _CPACK_IFWCOMP_UNAME)
-
- set(_IFW_OPT COMMON ESSENTIAL VIRTUAL FORCED_INSTALLATION REQUIRES_ADMIN_RIGHTS)
- set(_IFW_ARGS NAME VERSION RELEASE_DATE SCRIPT PRIORITY SORTING_PRIORITY UPDATE_TEXT DEFAULT CHECKABLE)
- set(_IFW_MULTI_ARGS DISPLAY_NAME DESCRIPTION DEPENDS DEPENDENCIES AUTO_DEPEND_ON LICENSES USER_INTERFACES TRANSLATIONS REPLACES)
- cmake_parse_arguments(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
-
- _cpack_ifw_resolve_script(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_SCRIPT)
- _cpack_ifw_resolve_lisenses(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_LICENSES)
- _cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_USER_INTERFACES)
- _cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_TRANSLATIONS)
-
- set(_CPACK_IFWCOMP_STR "\n# Configuration for IFW component \"${compname}\"\n")
-
- foreach(_IFW_ARG_NAME ${_IFW_OPT})
- cpack_append_option_set_command(
- CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_${_IFW_ARG_NAME}
- _CPACK_IFWCOMP_STR)
- endforeach()
-
- foreach(_IFW_ARG_NAME ${_IFW_ARGS})
- cpack_append_string_variable_set_command(
- CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_${_IFW_ARG_NAME}
- _CPACK_IFWCOMP_STR)
- endforeach()
-
- foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
- cpack_append_list_variable_set_command(
- CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_${_IFW_ARG_NAME}
- _CPACK_IFWCOMP_STR)
- endforeach()
-
- if(CPack_CMake_INCLUDED)
- file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWCOMP_STR}")
- endif()
-
-endmacro()
-
-# Macro for configure group
-macro(cpack_ifw_configure_component_group grpname)
-
- string(TOUPPER ${grpname} _CPACK_IFWGRP_UNAME)
-
- set(_IFW_OPT VIRTUAL FORCED_INSTALLATION REQUIRES_ADMIN_RIGHTS)
- set(_IFW_ARGS NAME VERSION RELEASE_DATE SCRIPT PRIORITY SORTING_PRIORITY UPDATE_TEXT DEFAULT CHECKABLE)
- set(_IFW_MULTI_ARGS DISPLAY_NAME DESCRIPTION DEPENDS DEPENDENCIES AUTO_DEPEND_ON LICENSES USER_INTERFACES TRANSLATIONS REPLACES)
- cmake_parse_arguments(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
-
- _cpack_ifw_resolve_script(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_SCRIPT)
- _cpack_ifw_resolve_lisenses(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_LICENSES)
- _cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_USER_INTERFACES)
- _cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_TRANSLATIONS)
-
- set(_CPACK_IFWGRP_STR "\n# Configuration for IFW component group \"${grpname}\"\n")
-
- foreach(_IFW_ARG_NAME ${_IFW_OPT})
- cpack_append_option_set_command(
- CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_${_IFW_ARG_NAME}
- _CPACK_IFWGRP_STR)
- endforeach()
-
- foreach(_IFW_ARG_NAME ${_IFW_ARGS})
- cpack_append_string_variable_set_command(
- CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_${_IFW_ARG_NAME}
- _CPACK_IFWGRP_STR)
- endforeach()
-
- foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
- cpack_append_list_variable_set_command(
- CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_${_IFW_ARG_NAME}
- _CPACK_IFWGRP_STR)
- endforeach()
-
- if(CPack_CMake_INCLUDED)
- file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWGRP_STR}")
- endif()
-endmacro()
-
-# Macro for adding repository
-macro(cpack_ifw_add_repository reponame)
-
- string(TOUPPER ${reponame} _CPACK_IFWREPO_UNAME)
-
- set(_IFW_OPT DISABLED)
- set(_IFW_ARGS URL USERNAME PASSWORD DISPLAY_NAME)
- set(_IFW_MULTI_ARGS)
- cmake_parse_arguments(CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
-
- set(_CPACK_IFWREPO_STR "\n# Configuration for IFW repository \"${reponame}\"\n")
-
- foreach(_IFW_ARG_NAME ${_IFW_OPT})
- cpack_append_option_set_command(
- CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
- _CPACK_IFWREPO_STR)
- endforeach()
-
- foreach(_IFW_ARG_NAME ${_IFW_ARGS})
- cpack_append_string_variable_set_command(
- CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
- _CPACK_IFWREPO_STR)
- endforeach()
-
- foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
- cpack_append_variable_set_command(
- CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
- _CPACK_IFWREPO_STR)
- endforeach()
-
- list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})
- string(APPEND _CPACK_IFWREPO_STR "list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})\n")
-
- if(CPack_CMake_INCLUDED)
- file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWREPO_STR}")
- endif()
-
-endmacro()
-
-# Macro for updating repository
-macro(cpack_ifw_update_repository reponame)
-
- string(TOUPPER ${reponame} _CPACK_IFWREPO_UNAME)
-
- set(_IFW_OPT ADD REMOVE REPLACE DISABLED)
- set(_IFW_ARGS URL OLD_URL NEW_URL USERNAME PASSWORD DISPLAY_NAME)
- set(_IFW_MULTI_ARGS)
- cmake_parse_arguments(CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
-
- set(_CPACK_IFWREPO_STR "\n# Configuration for IFW repository \"${reponame}\" update\n")
-
- foreach(_IFW_ARG_NAME ${_IFW_OPT})
- cpack_append_option_set_command(
- CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
- _CPACK_IFWREPO_STR)
- endforeach()
-
- foreach(_IFW_ARG_NAME ${_IFW_ARGS})
- cpack_append_string_variable_set_command(
- CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
- _CPACK_IFWREPO_STR)
- endforeach()
-
- foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
- cpack_append_variable_set_command(
- CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
- _CPACK_IFWREPO_STR)
- endforeach()
-
- if(CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_ADD
- OR CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_REMOVE
- OR CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_REPLACE)
- list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})
- string(APPEND _CPACK_IFWREPO_STR "list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})\n")
- else()
- set(_CPACK_IFWREPO_STR)
- endif()
-
- if(CPack_CMake_INCLUDED AND _CPACK_IFWREPO_STR)
- file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWREPO_STR}")
- endif()
-
-endmacro()
-
-# Macro for adding resources
-macro(cpack_ifw_add_package_resources)
- set(_CPACK_IFW_PACKAGE_RESOURCES ${ARGV})
- _cpack_ifw_resolve_file_list(_CPACK_IFW_PACKAGE_RESOURCES)
- list(APPEND CPACK_IFW_PACKAGE_RESOURCES ${_CPACK_IFW_PACKAGE_RESOURCES})
- set(_CPACK_IFWQRC_STR "list(APPEND CPACK_IFW_PACKAGE_RESOURCES \"${_CPACK_IFW_PACKAGE_RESOURCES}\")\n")
- if(CPack_CMake_INCLUDED)
- file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWQRC_STR}")
- endif()
-endmacro()
-
-# Resolve package control script
-_cpack_ifw_resolve_script(CPACK_IFW_PACKAGE_CONTROL_SCRIPT)
-
-endif() # NOT CPackIFW_CMake_INCLUDED
diff --git a/share/cmake-3.16/Modules/CTest.cmake b/share/cmake-3.16/Modules/CTest.cmake
deleted file mode 100644
index 3a111ca..0000000
--- a/share/cmake-3.16/Modules/CTest.cmake
+++ /dev/null
@@ -1,273 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CTest
------
-
-Configure a project for testing with CTest/CDash
-
-Include this module in the top CMakeLists.txt file of a project to
-enable testing with CTest and dashboard submissions to CDash::
-
- project(MyProject)
- ...
- include(CTest)
-
-The module automatically creates a ``BUILD_TESTING`` option that selects
-whether to enable testing support (``ON`` by default). After including
-the module, use code like::
-
- if(BUILD_TESTING)
- # ... CMake code to create tests ...
- endif()
-
-to creating tests when testing is enabled.
-
-To enable submissions to a CDash server, create a ``CTestConfig.cmake``
-file at the top of the project with content such as::
-
- set(CTEST_NIGHTLY_START_TIME "01:00:00 UTC")
- set(CTEST_SUBMIT_URL "http://my.cdash.org/submit.php?project=MyProject")
-
-(the CDash server can provide the file to a project administrator who
-configures ``MyProject``). Settings in the config file are shared by
-both this ``CTest`` module and the :manual:`ctest(1)` command-line
-:ref:`Dashboard Client` mode (``ctest -S``).
-
-While building a project for submission to CDash, CTest scans the
-build output for errors and warnings and reports them with surrounding
-context from the build log. This generic approach works for all build
-tools, but does not give details about the command invocation that
-produced a given problem. One may get more detailed reports by setting
-the :variable:`CTEST_USE_LAUNCHERS` variable::
-
- set(CTEST_USE_LAUNCHERS 1)
-
-in the ``CTestConfig.cmake`` file.
-#]=======================================================================]
-
-option(BUILD_TESTING "Build the testing tree." ON)
-
-# function to turn generator name into a version string
-# like vs9 or vs10
-function(GET_VS_VERSION_STRING generator var)
- string(REGEX REPLACE "Visual Studio ([0-9][0-9]?)($|.*)" "\\1"
- NUMBER "${generator}")
- set(ver_string "vs${NUMBER}")
- set(${var} ${ver_string} PARENT_SCOPE)
-endfunction()
-
-include(CTestUseLaunchers)
-
-if(BUILD_TESTING)
- # Setup some auxiliary macros
- macro(SET_IF_NOT_SET var val)
- if(NOT DEFINED "${var}")
- set("${var}" "${val}")
- endif()
- endmacro()
-
- macro(SET_IF_SET var val)
- if(NOT "${val}" STREQUAL "")
- set("${var}" "${val}")
- endif()
- endmacro()
-
- macro(SET_IF_SET_AND_NOT_SET var val)
- if(NOT "${val}" STREQUAL "")
- SET_IF_NOT_SET("${var}" "${val}")
- endif()
- endmacro()
-
- # Make sure testing is enabled
- enable_testing()
-
- if(EXISTS "${PROJECT_SOURCE_DIR}/CTestConfig.cmake")
- include("${PROJECT_SOURCE_DIR}/CTestConfig.cmake")
- SET_IF_SET_AND_NOT_SET(NIGHTLY_START_TIME "${CTEST_NIGHTLY_START_TIME}")
- SET_IF_SET_AND_NOT_SET(SUBMIT_URL "${CTEST_SUBMIT_URL}")
- SET_IF_SET_AND_NOT_SET(DROP_METHOD "${CTEST_DROP_METHOD}")
- SET_IF_SET_AND_NOT_SET(DROP_SITE "${CTEST_DROP_SITE}")
- SET_IF_SET_AND_NOT_SET(DROP_SITE_USER "${CTEST_DROP_SITE_USER}")
- SET_IF_SET_AND_NOT_SET(DROP_SITE_PASSWORD "${CTEST_DROP_SITE_PASWORD}")
- SET_IF_SET_AND_NOT_SET(DROP_SITE_MODE "${CTEST_DROP_SITE_MODE}")
- SET_IF_SET_AND_NOT_SET(DROP_LOCATION "${CTEST_DROP_LOCATION}")
- SET_IF_SET_AND_NOT_SET(TRIGGER_SITE "${CTEST_TRIGGER_SITE}")
- SET_IF_SET_AND_NOT_SET(UPDATE_TYPE "${CTEST_UPDATE_TYPE}")
- endif()
-
- # the project can have a DartConfig.cmake file
- if(EXISTS "${PROJECT_SOURCE_DIR}/DartConfig.cmake")
- include("${PROJECT_SOURCE_DIR}/DartConfig.cmake")
- else()
- # Dashboard is opened for submissions for a 24 hour period starting at
- # the specified NIGHTLY_START_TIME. Time is specified in 24 hour format.
- SET_IF_NOT_SET (NIGHTLY_START_TIME "00:00:00 EDT")
- SET_IF_NOT_SET(DROP_METHOD "http")
- SET_IF_NOT_SET (COMPRESS_SUBMISSION ON)
- endif()
- SET_IF_NOT_SET (NIGHTLY_START_TIME "00:00:00 EDT")
-
- if(NOT SUBMIT_URL)
- set(SUBMIT_URL "${DROP_METHOD}://")
- if(DROP_SITE_USER)
- string(APPEND SUBMIT_URL "${DROP_SITE_USER}")
- if(DROP_SITE_PASSWORD)
- string(APPEND SUBMIT_URL ":${DROP_SITE_PASSWORD}")
- endif()
- string(APPEND SUBMIT_URL "@")
- endif()
- string(APPEND SUBMIT_URL "${DROP_SITE}${DROP_LOCATION}")
- endif()
-
- find_program(CVSCOMMAND cvs )
- set(CVS_UPDATE_OPTIONS "-d -A -P" CACHE STRING
- "Options passed to the cvs update command.")
- find_program(SVNCOMMAND svn)
- find_program(BZRCOMMAND bzr)
- find_program(HGCOMMAND hg)
- find_program(GITCOMMAND git)
- find_program(P4COMMAND p4)
-
- if(NOT UPDATE_TYPE)
- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CVS")
- set(UPDATE_TYPE cvs)
- elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.svn")
- set(UPDATE_TYPE svn)
- elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.bzr")
- set(UPDATE_TYPE bzr)
- elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.hg")
- set(UPDATE_TYPE hg)
- elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
- set(UPDATE_TYPE git)
- endif()
- endif()
-
- string(TOLOWER "${UPDATE_TYPE}" _update_type)
- if("${_update_type}" STREQUAL "cvs")
- set(UPDATE_COMMAND "${CVSCOMMAND}")
- set(UPDATE_OPTIONS "${CVS_UPDATE_OPTIONS}")
- elseif("${_update_type}" STREQUAL "svn")
- set(UPDATE_COMMAND "${SVNCOMMAND}")
- set(UPDATE_OPTIONS "${SVN_UPDATE_OPTIONS}")
- elseif("${_update_type}" STREQUAL "bzr")
- set(UPDATE_COMMAND "${BZRCOMMAND}")
- set(UPDATE_OPTIONS "${BZR_UPDATE_OPTIONS}")
- elseif("${_update_type}" STREQUAL "hg")
- set(UPDATE_COMMAND "${HGCOMMAND}")
- set(UPDATE_OPTIONS "${HG_UPDATE_OPTIONS}")
- elseif("${_update_type}" STREQUAL "git")
- set(UPDATE_COMMAND "${GITCOMMAND}")
- set(UPDATE_OPTIONS "${GIT_UPDATE_OPTIONS}")
- elseif("${_update_type}" STREQUAL "p4")
- set(UPDATE_COMMAND "${P4COMMAND}")
- set(UPDATE_OPTIONS "${P4_UPDATE_OPTIONS}")
- endif()
-
- set(DART_TESTING_TIMEOUT 1500 CACHE STRING
- "Maximum time allowed before CTest will kill the test.")
-
- set(CTEST_SUBMIT_RETRY_DELAY 5 CACHE STRING
- "How long to wait between timed-out CTest submissions.")
- set(CTEST_SUBMIT_RETRY_COUNT 3 CACHE STRING
- "How many times to retry timed-out CTest submissions.")
-
- find_program(MEMORYCHECK_COMMAND
- NAMES purify valgrind boundscheck
- PATHS
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Purify\\Setup;InstallFolder]"
- DOC "Path to the memory checking command, used for memory error detection."
- )
- find_program(SLURM_SBATCH_COMMAND sbatch DOC
- "Path to the SLURM sbatch executable"
- )
- find_program(SLURM_SRUN_COMMAND srun DOC
- "Path to the SLURM srun executable"
- )
- set(MEMORYCHECK_SUPPRESSIONS_FILE "" CACHE FILEPATH
- "File that contains suppressions for the memory checker")
- find_program(COVERAGE_COMMAND gcov DOC
- "Path to the coverage program that CTest uses for performing coverage inspection"
- )
- set(COVERAGE_EXTRA_FLAGS "-l" CACHE STRING
- "Extra command line flags to pass to the coverage tool")
-
- # set the site name
- site_name(SITE)
- # set the build name
- if(NOT BUILDNAME)
- set(DART_COMPILER "${CMAKE_CXX_COMPILER}")
- if(NOT DART_COMPILER)
- set(DART_COMPILER "${CMAKE_C_COMPILER}")
- endif()
- if(NOT DART_COMPILER)
- set(DART_COMPILER "unknown")
- endif()
- if(WIN32)
- set(DART_NAME_COMPONENT "NAME_WE")
- else()
- set(DART_NAME_COMPONENT "NAME")
- endif()
- if(NOT BUILD_NAME_SYSTEM_NAME)
- set(BUILD_NAME_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}")
- endif()
- if(WIN32)
- set(BUILD_NAME_SYSTEM_NAME "Win32")
- endif()
- if(UNIX OR BORLAND)
- get_filename_component(DART_COMPILER_NAME
- "${DART_COMPILER}" ${DART_NAME_COMPONENT})
- else()
- get_filename_component(DART_COMPILER_NAME
- "${CMAKE_MAKE_PROGRAM}" ${DART_NAME_COMPONENT})
- endif()
- if(DART_COMPILER_NAME MATCHES "devenv")
- GET_VS_VERSION_STRING("${CMAKE_GENERATOR}" DART_COMPILER_NAME)
- endif()
- set(BUILDNAME "${BUILD_NAME_SYSTEM_NAME}-${DART_COMPILER_NAME}")
- endif()
-
- # the build command
- build_command(MAKECOMMAND_DEFAULT_VALUE
- CONFIGURATION "\${CTEST_CONFIGURATION_TYPE}")
- set(MAKECOMMAND ${MAKECOMMAND_DEFAULT_VALUE}
- CACHE STRING "Command to build the project")
-
- # the default build configuration the ctest build handler will use
- # if there is no -C arg given to ctest:
- set(DEFAULT_CTEST_CONFIGURATION_TYPE "$ENV{CMAKE_CONFIG_TYPE}")
- if(DEFAULT_CTEST_CONFIGURATION_TYPE STREQUAL "")
- set(DEFAULT_CTEST_CONFIGURATION_TYPE "Release")
- endif()
-
- mark_as_advanced(
- BZRCOMMAND
- BZR_UPDATE_OPTIONS
- COVERAGE_COMMAND
- COVERAGE_EXTRA_FLAGS
- CTEST_SUBMIT_RETRY_DELAY
- CTEST_SUBMIT_RETRY_COUNT
- CVSCOMMAND
- CVS_UPDATE_OPTIONS
- DART_TESTING_TIMEOUT
- GITCOMMAND
- P4COMMAND
- HGCOMMAND
- MAKECOMMAND
- MEMORYCHECK_COMMAND
- MEMORYCHECK_SUPPRESSIONS_FILE
- PURIFYCOMMAND
- SCPCOMMAND
- SLURM_SBATCH_COMMAND
- SLURM_SRUN_COMMAND
- SITE
- SVNCOMMAND
- SVN_UPDATE_OPTIONS
- )
- if(NOT RUN_FROM_DART)
- set(RUN_FROM_CTEST_OR_DART 1)
- include(CTestTargets)
- set(RUN_FROM_CTEST_OR_DART)
- endif()
-endif()
diff --git a/share/cmake-3.16/Modules/CheckCCompilerFlag.cmake b/share/cmake-3.16/Modules/CheckCCompilerFlag.cmake
deleted file mode 100644
index a3e2da3..0000000
--- a/share/cmake-3.16/Modules/CheckCCompilerFlag.cmake
+++ /dev/null
@@ -1,63 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckCCompilerFlag
-------------------
-
-Check whether the C compiler supports a given flag.
-
-.. command:: check_c_compiler_flag
-
- .. code-block:: cmake
-
- check_c_compiler_flag(<flag> <var>)
-
- Check that the ``<flag>`` is accepted by the compiler without
- a diagnostic. Stores the result in an internal cache entry
- named ``<var>``.
-
-This command temporarily sets the ``CMAKE_REQUIRED_DEFINITIONS`` variable
-and calls the ``check_c_source_compiles`` macro from the
-:module:`CheckCSourceCompiles` module. See documentation of that
-module for a listing of variables that can otherwise modify the build.
-
-A positive result from this check indicates only that the compiler did not
-issue a diagnostic message when given the flag. Whether the flag has any
-effect or even a specific one is beyond the scope of this module.
-
-.. note::
- Since the :command:`try_compile` command forwards flags from variables
- like :variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>`, unknown flags
- in such variables may cause a false negative for this check.
-#]=======================================================================]
-
-include_guard(GLOBAL)
-include(CheckCSourceCompiles)
-include(CMakeCheckCompilerFlagCommonPatterns)
-
-macro (CHECK_C_COMPILER_FLAG _FLAG _RESULT)
- set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
- set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
-
- # Normalize locale during test compilation.
- set(_CheckCCompilerFlag_LOCALE_VARS LC_ALL LC_MESSAGES LANG)
- foreach(v ${_CheckCCompilerFlag_LOCALE_VARS})
- set(_CheckCCompilerFlag_SAVED_${v} "$ENV{${v}}")
- set(ENV{${v}} C)
- endforeach()
- CHECK_COMPILER_FLAG_COMMON_PATTERNS(_CheckCCompilerFlag_COMMON_PATTERNS)
- CHECK_C_SOURCE_COMPILES("int main(void) { return 0; }" ${_RESULT}
- # Some compilers do not fail with a bad flag
- FAIL_REGEX "command line option .* is valid for .* but not for C" # GNU
- ${_CheckCCompilerFlag_COMMON_PATTERNS}
- )
- foreach(v ${_CheckCCompilerFlag_LOCALE_VARS})
- set(ENV{${v}} ${_CheckCCompilerFlag_SAVED_${v}})
- unset(_CheckCCompilerFlag_SAVED_${v})
- endforeach()
- unset(_CheckCCompilerFlag_LOCALE_VARS)
- unset(_CheckCCompilerFlag_COMMON_PATTERNS)
-
- set (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
-endmacro ()
diff --git a/share/cmake-3.16/Modules/CheckCSourceCompiles.cmake b/share/cmake-3.16/Modules/CheckCSourceCompiles.cmake
deleted file mode 100644
index 77ba0cc..0000000
--- a/share/cmake-3.16/Modules/CheckCSourceCompiles.cmake
+++ /dev/null
@@ -1,145 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckCSourceCompiles
---------------------
-
-Check if given C source compiles and links into an executable.
-
-.. command:: check_c_source_compiles
-
- .. code-block:: cmake
-
- check_c_source_compiles(<code> <resultVar>
- [FAIL_REGEX <regex1> [<regex2>...]])
-
- Check that the source supplied in ``<code>`` can be compiled as a C source
- file and linked as an executable (so it must contain at least a ``main()``
- function). The result will be stored in the internal cache variable specified
- by ``<resultVar>``, with a boolean true value for success and boolean false
- for failure. If ``FAIL_REGEX`` is provided, then failure is determined by
- checking if anything in the output matches any of the specified regular
- expressions.
-
- The underlying check is performed by the :command:`try_compile` command. The
- compile and link commands can be influenced by setting any of the following
- variables prior to calling ``check_c_source_compiles()``:
-
- ``CMAKE_REQUIRED_FLAGS``
- Additional flags to pass to the compiler. Note that the contents of
- :variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
- configuration-specific variable are automatically added to the compiler
- command before the contents of ``CMAKE_REQUIRED_FLAGS``.
-
- ``CMAKE_REQUIRED_DEFINITIONS``
- A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
- ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
- ``<resultVar>`` will also be added automatically.
-
- ``CMAKE_REQUIRED_INCLUDES``
- A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler. These will be the only header search paths used by
- ``try_compile()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
- directory property will be ignored.
-
- ``CMAKE_REQUIRED_LINK_OPTIONS``
- A :ref:`;-list <CMake Language Lists>` of options to add to the link
- command (see :command:`try_compile` for further details).
-
- ``CMAKE_REQUIRED_LIBRARIES``
- A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. These can be the name of system libraries or they can be
- :ref:`Imported Targets <Imported Targets>` (see :command:`try_compile` for
- further details).
-
- ``CMAKE_REQUIRED_QUIET``
- If this variable evaluates to a boolean true value, all status messages
- associated with the check will be suppressed.
-
- The check is only performed once, with the result cached in the variable
- named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
- value rather than performing the check again, even if the ``<code>`` changes.
- In order to force the check to be re-evaluated, the variable named by
- ``<resultVar>`` must be manually removed from the cache.
-
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_C_SOURCE_COMPILES SOURCE VAR)
- if(NOT DEFINED "${VAR}")
- set(_FAIL_REGEX)
- set(_key)
- foreach(arg ${ARGN})
- if("${arg}" MATCHES "^(FAIL_REGEX)$")
- set(_key "${arg}")
- elseif(_key)
- list(APPEND _${_key} "${arg}")
- else()
- message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
- endif()
- endforeach()
- set(MACRO_CHECK_FUNCTION_DEFINITIONS
- "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_C_SOURCE_COMPILES_ADD_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_C_SOURCE_COMPILES_ADD_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES)
- endif()
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES)
- endif()
- file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c"
- "${SOURCE}\n")
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR}")
- endif()
- try_compile(${VAR}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_C_SOURCE_COMPILES_ADD_LINK_OPTIONS}
- ${CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
- "${CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}"
- OUTPUT_VARIABLE OUTPUT)
-
- foreach(_regex ${_FAIL_REGEX})
- if("${OUTPUT}" MATCHES "${_regex}")
- set(${VAR} 0)
- endif()
- endforeach()
-
- if(${VAR})
- set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Success")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Performing C SOURCE FILE Test ${VAR} succeeded with the following output:\n"
- "${OUTPUT}\n"
- "Source file was:\n${SOURCE}\n")
- else()
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Failed")
- endif()
- set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Performing C SOURCE FILE Test ${VAR} failed with the following output:\n"
- "${OUTPUT}\n"
- "Source file was:\n${SOURCE}\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckCSourceRuns.cmake b/share/cmake-3.16/Modules/CheckCSourceRuns.cmake
deleted file mode 100644
index eba70f2..0000000
--- a/share/cmake-3.16/Modules/CheckCSourceRuns.cmake
+++ /dev/null
@@ -1,145 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckCSourceRuns
-----------------
-
-Check if given C source compiles and links into an executable and can
-subsequently be run.
-
-.. command:: check_c_source_runs
-
- .. code-block:: cmake
-
- check_c_source_runs(<code> <resultVar>)
-
- Check that the source supplied in ``<code>`` can be compiled as a C source
- file, linked as an executable and then run. The ``<code>`` must contain at
- least a ``main()`` function. If the ``<code>`` could be built and run
- successfully, the internal cache variable specified by ``<resultVar>`` will
- be set to 1, otherwise it will be set to an value that evaluates to boolean
- false (e.g. an empty string or an error message).
-
- The underlying check is performed by the :command:`try_run` command. The
- compile and link commands can be influenced by setting any of the following
- variables prior to calling ``check_c_source_runs()``:
-
- ``CMAKE_REQUIRED_FLAGS``
- Additional flags to pass to the compiler. Note that the contents of
- :variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
- configuration-specific variable are automatically added to the compiler
- command before the contents of ``CMAKE_REQUIRED_FLAGS``.
-
- ``CMAKE_REQUIRED_DEFINITIONS``
- A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
- ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
- ``<resultVar>`` will also be added automatically.
-
- ``CMAKE_REQUIRED_INCLUDES``
- A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler. These will be the only header search paths used by
- ``try_run()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
- directory property will be ignored.
-
- ``CMAKE_REQUIRED_LINK_OPTIONS``
- A :ref:`;-list <CMake Language Lists>` of options to add to the link
- command (see :command:`try_run` for further details).
-
- ``CMAKE_REQUIRED_LIBRARIES``
- A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. These can be the name of system libraries or they can be
- :ref:`Imported Targets <Imported Targets>` (see :command:`try_run` for
- further details).
-
- ``CMAKE_REQUIRED_QUIET``
- If this variable evaluates to a boolean true value, all status messages
- associated with the check will be suppressed.
-
- The check is only performed once, with the result cached in the variable
- named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
- value rather than performing the check again, even if the ``<code>`` changes.
- In order to force the check to be re-evaluated, the variable named by
- ``<resultVar>`` must be manually removed from the cache.
-
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_C_SOURCE_RUNS SOURCE VAR)
- if(NOT DEFINED "${VAR}")
- set(MACRO_CHECK_FUNCTION_DEFINITIONS
- "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_C_SOURCE_COMPILES_ADD_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_C_SOURCE_COMPILES_ADD_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES)
- endif()
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES)
- endif()
- file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c"
- "${SOURCE}\n")
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR}")
- endif()
- try_run(${VAR}_EXITCODE ${VAR}_COMPILED
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_C_SOURCE_COMPILES_ADD_LINK_OPTIONS}
- ${CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
- -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
- "${CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}"
- COMPILE_OUTPUT_VARIABLE OUTPUT
- RUN_OUTPUT_VARIABLE RUN_OUTPUT)
- # if it did not compile make the return value fail code of 1
- if(NOT ${VAR}_COMPILED)
- set(${VAR}_EXITCODE 1)
- endif()
- # if the return value was 0 then it worked
- if("${${VAR}_EXITCODE}" EQUAL 0)
- set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Success")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Performing C SOURCE FILE Test ${VAR} succeeded with the following compile output:\n"
- "${OUTPUT}\n"
- "...and run output:\n"
- "${RUN_OUTPUT}\n"
- "Return value: ${${VAR}}\n"
- "Source file was:\n${SOURCE}\n")
- else()
- if(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
- set(${VAR} "${${VAR}_EXITCODE}")
- else()
- set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
- endif()
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Failed")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Performing C SOURCE FILE Test ${VAR} failed with the following compile output:\n"
- "${OUTPUT}\n"
- "...and run output:\n"
- "${RUN_OUTPUT}\n"
- "Return value: ${${VAR}_EXITCODE}\n"
- "Source file was:\n${SOURCE}\n")
-
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckCXXCompilerFlag.cmake b/share/cmake-3.16/Modules/CheckCXXCompilerFlag.cmake
deleted file mode 100644
index 5729843..0000000
--- a/share/cmake-3.16/Modules/CheckCXXCompilerFlag.cmake
+++ /dev/null
@@ -1,63 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckCXXCompilerFlag
-------------------------
-
-Check whether the CXX compiler supports a given flag.
-
-.. command:: check_cxx_compiler_flag
-
- .. code-block:: cmake
-
- check_cxx_compiler_flag(<flag> <var>)
-
- Check that the ``<flag>`` is accepted by the compiler without
- a diagnostic. Stores the result in an internal cache entry
- named ``<var>``.
-
-This command temporarily sets the ``CMAKE_REQUIRED_DEFINITIONS`` variable
-and calls the ``check_cxx_source_compiles`` macro from the
-:module:`CheckCXXSourceCompiles` module. See documentation of that
-module for a listing of variables that can otherwise modify the build.
-
-A positive result from this check indicates only that the compiler did not
-issue a diagnostic message when given the flag. Whether the flag has any
-effect or even a specific one is beyond the scope of this module.
-
-.. note::
- Since the :command:`try_compile` command forwards flags from variables
- like :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>`, unknown flags
- in such variables may cause a false negative for this check.
-#]=======================================================================]
-
-include_guard(GLOBAL)
-include(CheckCXXSourceCompiles)
-include(CMakeCheckCompilerFlagCommonPatterns)
-
-macro (CHECK_CXX_COMPILER_FLAG _FLAG _RESULT)
- set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
- set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
-
- # Normalize locale during test compilation.
- set(_CheckCXXCompilerFlag_LOCALE_VARS LC_ALL LC_MESSAGES LANG)
- foreach(v ${_CheckCXXCompilerFlag_LOCALE_VARS})
- set(_CheckCXXCompilerFlag_SAVED_${v} "$ENV{${v}}")
- set(ENV{${v}} C)
- endforeach()
- CHECK_COMPILER_FLAG_COMMON_PATTERNS(_CheckCXXCompilerFlag_COMMON_PATTERNS)
- CHECK_CXX_SOURCE_COMPILES("int main() { return 0; }" ${_RESULT}
- # Some compilers do not fail with a bad flag
- FAIL_REGEX "command line option .* is valid for .* but not for C\\\\+\\\\+" # GNU
- ${_CheckCXXCompilerFlag_COMMON_PATTERNS}
- )
- foreach(v ${_CheckCXXCompilerFlag_LOCALE_VARS})
- set(ENV{${v}} ${_CheckCXXCompilerFlag_SAVED_${v}})
- unset(_CheckCXXCompilerFlag_SAVED_${v})
- endforeach()
- unset(_CheckCXXCompilerFlag_LOCALE_VARS)
- unset(_CheckCXXCompilerFlag_COMMON_PATTERNS)
-
- set (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
-endmacro ()
diff --git a/share/cmake-3.16/Modules/CheckCXXSourceCompiles.cmake b/share/cmake-3.16/Modules/CheckCXXSourceCompiles.cmake
deleted file mode 100644
index cc457a5..0000000
--- a/share/cmake-3.16/Modules/CheckCXXSourceCompiles.cmake
+++ /dev/null
@@ -1,146 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckCXXSourceCompiles
-----------------------
-
-Check if given C++ source compiles and links into an executable.
-
-.. command:: check_cxx_source_compiles
-
- .. code-block:: cmake
-
- check_cxx_source_compiles(<code> <resultVar>
- [FAIL_REGEX <regex1> [<regex2>...]])
-
- Check that the source supplied in ``<code>`` can be compiled as a C++ source
- file and linked as an executable (so it must contain at least a ``main()``
- function). The result will be stored in the internal cache variable specified
- by ``<resultVar>``, with a boolean true value for success and boolean false
- for failure. If ``FAIL_REGEX`` is provided, then failure is determined by
- checking if anything in the output matches any of the specified regular
- expressions.
-
- The underlying check is performed by the :command:`try_compile` command. The
- compile and link commands can be influenced by setting any of the following
- variables prior to calling ``check_cxx_source_compiles()``:
-
- ``CMAKE_REQUIRED_FLAGS``
- Additional flags to pass to the compiler. Note that the contents of
- :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
- configuration-specific variable are automatically added to the compiler
- command before the contents of ``CMAKE_REQUIRED_FLAGS``.
-
- ``CMAKE_REQUIRED_DEFINITIONS``
- A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
- ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
- ``<resultVar>`` will also be added automatically.
-
- ``CMAKE_REQUIRED_INCLUDES``
- A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler. These will be the only header search paths used by
- ``try_compile()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
- directory property will be ignored.
-
- ``CMAKE_REQUIRED_LINK_OPTIONS``
- A :ref:`;-list <CMake Language Lists>` of options to add to the link
- command (see :command:`try_compile` for further details).
-
- ``CMAKE_REQUIRED_LIBRARIES``
- A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. These can be the name of system libraries or they can be
- :ref:`Imported Targets <Imported Targets>` (see :command:`try_compile` for
- further details).
-
- ``CMAKE_REQUIRED_QUIET``
- If this variable evaluates to a boolean true value, all status messages
- associated with the check will be suppressed.
-
- The check is only performed once, with the result cached in the variable
- named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
- value rather than performing the check again, even if the ``<code>`` changes.
- In order to force the check to be re-evaluated, the variable named by
- ``<resultVar>`` must be manually removed from the cache.
-
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_CXX_SOURCE_COMPILES SOURCE VAR)
- if(NOT DEFINED "${VAR}")
- set(_FAIL_REGEX)
- set(_key)
- foreach(arg ${ARGN})
- if("${arg}" MATCHES "^(FAIL_REGEX)$")
- set(_key "${arg}")
- elseif(_key)
- list(APPEND _${_key} "${arg}")
- else()
- message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
- endif()
- endforeach()
-
- set(MACRO_CHECK_FUNCTION_DEFINITIONS
- "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES)
- endif()
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES)
- endif()
- file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx"
- "${SOURCE}\n")
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR}")
- endif()
- try_compile(${VAR}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS}
- ${CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
- "${CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES}"
- OUTPUT_VARIABLE OUTPUT)
-
- foreach(_regex ${_FAIL_REGEX})
- if("${OUTPUT}" MATCHES "${_regex}")
- set(${VAR} 0)
- endif()
- endforeach()
-
- if(${VAR})
- set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Success")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Performing C++ SOURCE FILE Test ${VAR} succeeded with the following output:\n"
- "${OUTPUT}\n"
- "Source file was:\n${SOURCE}\n")
- else()
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Failed")
- endif()
- set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Performing C++ SOURCE FILE Test ${VAR} failed with the following output:\n"
- "${OUTPUT}\n"
- "Source file was:\n${SOURCE}\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckCXXSourceRuns.cmake b/share/cmake-3.16/Modules/CheckCXXSourceRuns.cmake
deleted file mode 100644
index 5e3f195..0000000
--- a/share/cmake-3.16/Modules/CheckCXXSourceRuns.cmake
+++ /dev/null
@@ -1,145 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckCXXSourceRuns
-------------------
-
-Check if given C++ source compiles and links into an executable and can
-subsequently be run.
-
-.. command:: check_cxx_source_runs
-
- .. code-block:: cmake
-
- check_cxx_source_runs(<code> <resultVar>)
-
- Check that the source supplied in ``<code>`` can be compiled as a C++ source
- file, linked as an executable and then run. The ``<code>`` must contain at
- least a ``main()`` function. If the ``<code>`` could be built and run
- successfully, the internal cache variable specified by ``<resultVar>`` will
- be set to 1, otherwise it will be set to an value that evaluates to boolean
- false (e.g. an empty string or an error message).
-
- The underlying check is performed by the :command:`try_run` command. The
- compile and link commands can be influenced by setting any of the following
- variables prior to calling ``check_cxx_source_runs()``:
-
- ``CMAKE_REQUIRED_FLAGS``
- Additional flags to pass to the compiler. Note that the contents of
- :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
- configuration-specific variable are automatically added to the compiler
- command before the contents of ``CMAKE_REQUIRED_FLAGS``.
-
- ``CMAKE_REQUIRED_DEFINITIONS``
- A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
- ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
- ``<resultVar>`` will also be added automatically.
-
- ``CMAKE_REQUIRED_INCLUDES``
- A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler. These will be the only header search paths used by
- ``try_run()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
- directory property will be ignored.
-
- ``CMAKE_REQUIRED_LINK_OPTIONS``
- A :ref:`;-list <CMake Language Lists>` of options to add to the link
- command (see :command:`try_run` for further details).
-
- ``CMAKE_REQUIRED_LIBRARIES``
- A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. These can be the name of system libraries or they can be
- :ref:`Imported Targets <Imported Targets>` (see :command:`try_run` for
- further details).
-
- ``CMAKE_REQUIRED_QUIET``
- If this variable evaluates to a boolean true value, all status messages
- associated with the check will be suppressed.
-
- The check is only performed once, with the result cached in the variable
- named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
- value rather than performing the check again, even if the ``<code>`` changes.
- In order to force the check to be re-evaluated, the variable named by
- ``<resultVar>`` must be manually removed from the cache.
-
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_CXX_SOURCE_RUNS SOURCE VAR)
- if(NOT DEFINED "${VAR}")
- set(MACRO_CHECK_FUNCTION_DEFINITIONS
- "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES)
- endif()
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES)
- endif()
- file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx"
- "${SOURCE}\n")
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR}")
- endif()
- try_run(${VAR}_EXITCODE ${VAR}_COMPILED
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS}
- ${CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
- -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
- "${CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES}"
- COMPILE_OUTPUT_VARIABLE OUTPUT
- RUN_OUTPUT_VARIABLE RUN_OUTPUT)
-
- # if it did not compile make the return value fail code of 1
- if(NOT ${VAR}_COMPILED)
- set(${VAR}_EXITCODE 1)
- endif()
- # if the return value was 0 then it worked
- if("${${VAR}_EXITCODE}" EQUAL 0)
- set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Success")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Performing C++ SOURCE FILE Test ${VAR} succeeded with the following output:\n"
- "${OUTPUT}\n"
- "...and run output:\n"
- "${RUN_OUTPUT}\n"
- "Return value: ${${VAR}}\n"
- "Source file was:\n${SOURCE}\n")
- else()
- if(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
- set(${VAR} "${${VAR}_EXITCODE}")
- else()
- set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
- endif()
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Failed")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Performing C++ SOURCE FILE Test ${VAR} failed with the following output:\n"
- "${OUTPUT}\n"
- "...and run output:\n"
- "${RUN_OUTPUT}\n"
- "Return value: ${${VAR}_EXITCODE}\n"
- "Source file was:\n${SOURCE}\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckFortranFunctionExists.cmake b/share/cmake-3.16/Modules/CheckFortranFunctionExists.cmake
deleted file mode 100644
index 7ca205a..0000000
--- a/share/cmake-3.16/Modules/CheckFortranFunctionExists.cmake
+++ /dev/null
@@ -1,85 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckFortranFunctionExists
---------------------------
-
-Check if a Fortran function exists.
-
-.. command:: CHECK_FORTRAN_FUNCTION_EXISTS
-
- .. code-block:: cmake
-
- CHECK_FORTRAN_FUNCTION_EXISTS(<function> <result>)
-
- where
-
- ``<function>``
- the name of the Fortran function
- ``<result>``
- variable to store the result; will be created as an internal cache variable.
-
-The following variables may be set before calling this macro to modify
-the way the check is run:
-
-``CMAKE_REQUIRED_LINK_OPTIONS``
- A :ref:`;-list <CMake Language Lists>` of options to add to the link
- command (see :command:`try_compile` for further details).
-
-``CMAKE_REQUIRED_LIBRARIES``
- A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. These can be the name of system libraries or they can be
- :ref:`Imported Targets <Imported Targets>` (see :command:`try_compile` for
- further details).
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_FORTRAN_FUNCTION_EXISTS FUNCTION VARIABLE)
- if(NOT DEFINED ${VARIABLE})
- message(STATUS "Looking for Fortran ${FUNCTION}")
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES)
- endif()
- file(WRITE
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f
- "
- program TESTFortran
- external ${FUNCTION}
- call ${FUNCTION}()
- end program TESTFortran
- "
- )
- try_compile(${VARIABLE}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f
- ${CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS}
- ${CHECK_FUNCTION_EXISTS_ADD_LIBRARIES}
- OUTPUT_VARIABLE OUTPUT
- )
-# message(STATUS "${OUTPUT}")
- if(${VARIABLE})
- set(${VARIABLE} 1 CACHE INTERNAL "Have Fortran function ${FUNCTION}")
- message(STATUS "Looking for Fortran ${FUNCTION} - found")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the Fortran ${FUNCTION} exists passed with the following output:\n"
- "${OUTPUT}\n\n")
- else()
- message(STATUS "Looking for Fortran ${FUNCTION} - not found")
- set(${VARIABLE} "" CACHE INTERNAL "Have Fortran function ${FUNCTION}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the Fortran ${FUNCTION} exists failed with the following output:\n"
- "${OUTPUT}\n\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckFortranSourceCompiles.cmake b/share/cmake-3.16/Modules/CheckFortranSourceCompiles.cmake
deleted file mode 100644
index f94b254..0000000
--- a/share/cmake-3.16/Modules/CheckFortranSourceCompiles.cmake
+++ /dev/null
@@ -1,168 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckFortranSourceCompiles
---------------------------
-
-Check if given Fortran source compiles and links into an executable.
-
-.. command:: check_fortran_source_compiles
-
- .. code-block:: cmake
-
- check_fortran_source_compiles(<code> <resultVar>
- [FAIL_REGEX <regex>...]
- [SRC_EXT <extension>]
- )
-
- Checks that the source supplied in ``<code>`` can be compiled as a Fortran
- source file and linked as an executable. The ``<code>`` must be a Fortran program
- containing at least an ``end`` statement--for example:
-
- .. code-block:: cmake
-
- check_fortran_source_compiles("character :: b; error stop b; end" F2018ESTOPOK SRC_EXT F90)
-
- This command can help avoid costly build processes when a compiler lacks support
- for a necessary feature, or a particular vendor library is not compatible with
- the Fortran compiler version being used. This generate-time check may advise the
- user of such before the main build process. See also the
- :command:`check_fortran_source_runs` command to actually run the compiled code.
-
- The result will be stored in the internal cache
- variable ``<resultVar>``, with a boolean true value for success and boolean
- false for failure.
-
- If ``FAIL_REGEX`` is provided, then failure is determined by checking
- if anything in the output matches any of the specified regular expressions.
-
- By default, the test source file will be given a ``.F`` file extension. The
- ``SRC_EXT`` option can be used to override this with ``.<extension>`` instead--
- ``.F90`` is a typical choice.
-
- The underlying check is performed by the :command:`try_compile` command. The
- compile and link commands can be influenced by setting any of the following
- variables prior to calling ``check_fortran_source_compiles()``:
-
- ``CMAKE_REQUIRED_FLAGS``
- Additional flags to pass to the compiler. Note that the contents of
- :variable:`CMAKE_Fortran_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
- configuration-specific variable are automatically added to the compiler
- command before the contents of ``CMAKE_REQUIRED_FLAGS``.
-
- ``CMAKE_REQUIRED_DEFINITIONS``
- A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
- ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
- ``<resultVar>`` will also be added automatically.
-
- ``CMAKE_REQUIRED_INCLUDES``
- A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler. These will be the only header search paths used by
- ``try_compile()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
- directory property will be ignored.
-
- ``CMAKE_REQUIRED_LINK_OPTIONS``
- A :ref:`;-list <CMake Language Lists>` of options to add to the link
- command (see :command:`try_compile` for further details).
-
- ``CMAKE_REQUIRED_LIBRARIES``
- A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. These can be the name of system libraries or they can be
- :ref:`Imported Targets <Imported Targets>` (see :command:`try_compile` for
- further details).
-
- ``CMAKE_REQUIRED_QUIET``
- If this variable evaluates to a boolean true value, all status messages
- associated with the check will be suppressed.
-
- The check is only performed once, with the result cached in the variable
- named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
- value rather than performing the check again, even if the ``<code>`` changes.
- In order to force the check to be re-evaluated, the variable named by
- ``<resultVar>`` must be manually removed from the cache.
-
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_Fortran_SOURCE_COMPILES SOURCE VAR)
- if(NOT DEFINED "${VAR}")
- set(_FAIL_REGEX)
- set(_SRC_EXT)
- set(_key)
- foreach(arg ${ARGN})
- if("${arg}" MATCHES "^(FAIL_REGEX|SRC_EXT)$")
- set(_key "${arg}")
- elseif(_key)
- list(APPEND _${_key} "${arg}")
- else()
- message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
- endif()
- endforeach()
- if(NOT _SRC_EXT)
- set(_SRC_EXT F)
- endif()
- set(MACRO_CHECK_FUNCTION_DEFINITIONS
- "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES)
- endif()
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES)
- endif()
- file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.${_SRC_EXT}"
- "${SOURCE}\n")
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR}")
- endif()
- try_compile(${VAR}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.${_SRC_EXT}
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS}
- ${CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
- "${CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES}"
- OUTPUT_VARIABLE OUTPUT)
-
- foreach(_regex ${_FAIL_REGEX})
- if("${OUTPUT}" MATCHES "${_regex}")
- set(${VAR} 0)
- endif()
- endforeach()
-
- if(${VAR})
- set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Success")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Performing Fortran SOURCE FILE Test ${VAR} succeeded with the following output:\n"
- "${OUTPUT}\n"
- "Source file was:\n${SOURCE}\n")
- else()
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Failed")
- endif()
- set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Performing Fortran SOURCE FILE Test ${VAR} failed with the following output:\n"
- "${OUTPUT}\n"
- "Source file was:\n${SOURCE}\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckFortranSourceRuns.cmake b/share/cmake-3.16/Modules/CheckFortranSourceRuns.cmake
deleted file mode 100644
index a80c13d..0000000
--- a/share/cmake-3.16/Modules/CheckFortranSourceRuns.cmake
+++ /dev/null
@@ -1,175 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckFortranSourceRuns
-----------------------
-
-Check if given Fortran source compiles and links into an executable and can
-subsequently be run.
-
-.. command:: check_fortran_source_runs
-
- .. code-block:: cmake
-
- check_fortran_source_runs(<code> <resultVar>
- [SRC_EXT <extension>])
-
- Check that the source supplied in ``<code>`` can be compiled as a Fortran source
- file, linked as an executable and then run. The ``<code>`` must be a Fortran program
- containing at least an ``end`` statement--for example:
-
- .. code-block:: cmake
-
- check_fortran_source_runs("real :: x[*]; call co_sum(x); end" F2018coarrayOK)
-
- This command can help avoid costly build processes when a compiler lacks support
- for a necessary feature, or a particular vendor library is not compatible with
- the Fortran compiler version being used. Some of these failures only occur at runtime
- instead of linktime, and a trivial runtime example can catch the issue before the
- main build process.
-
- If the ``<code>`` could be built and run
- successfully, the internal cache variable specified by ``<resultVar>`` will
- be set to 1, otherwise it will be set to an value that evaluates to boolean
- false (e.g. an empty string or an error message).
-
- By default, the test source file will be given a ``.F90`` file extension. The
- ``SRC_EXT`` option can be used to override this with ``.<extension>`` instead.
-
- The underlying check is performed by the :command:`try_run` command. The
- compile and link commands can be influenced by setting any of the following
- variables prior to calling ``check_fortran_source_runs()``:
-
- ``CMAKE_REQUIRED_FLAGS``
- Additional flags to pass to the compiler. Note that the contents of
- :variable:`CMAKE_Fortran_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
- configuration-specific variable are automatically added to the compiler
- command before the contents of ``CMAKE_REQUIRED_FLAGS``.
-
- ``CMAKE_REQUIRED_DEFINITIONS``
- A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
- ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
- ``<resultVar>`` will also be added automatically.
-
- ``CMAKE_REQUIRED_INCLUDES``
- A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler. These will be the only header search paths used by
- ``try_run()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
- directory property will be ignored.
-
- ``CMAKE_REQUIRED_LINK_OPTIONS``
- A :ref:`;-list <CMake Language Lists>` of options to add to the link
- command (see :command:`try_run` for further details).
-
- ``CMAKE_REQUIRED_LIBRARIES``
- A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. These can be the name of system libraries or they can be
- :ref:`Imported Targets <Imported Targets>` (see :command:`try_run` for
- further details).
-
- ``CMAKE_REQUIRED_QUIET``
- If this variable evaluates to a boolean true value, all status messages
- associated with the check will be suppressed.
-
- The check is only performed once, with the result cached in the variable
- named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
- value rather than performing the check again, even if the ``<code>`` changes.
- In order to force the check to be re-evaluated, the variable named by
- ``<resultVar>`` must be manually removed from the cache.
-
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_Fortran_SOURCE_RUNS SOURCE VAR)
- if(NOT DEFINED "${VAR}")
- set(_SRC_EXT)
- set(_key)
- foreach(arg ${ARGN})
- if("${arg}" MATCHES "^(SRC_EXT)$")
- set(_key "${arg}")
- elseif(_key)
- list(APPEND _${_key} "${arg}")
- else()
- message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
- endif()
- endforeach()
- if(NOT _SRC_EXT)
- set(_SRC_EXT F90)
- endif()
- set(MACRO_CHECK_FUNCTION_DEFINITIONS
- "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES)
- endif()
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES)
- endif()
- file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.${_SRC_EXT}"
- "${SOURCE}\n")
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR}")
- endif()
- try_run(${VAR}_EXITCODE ${VAR}_COMPILED
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.${_SRC_EXT}
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS}
- ${CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
- -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
- "${CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES}"
- COMPILE_OUTPUT_VARIABLE OUTPUT
- RUN_OUTPUT_VARIABLE RUN_OUTPUT)
-
- # if it did not compile make the return value fail code of 1
- if(NOT ${VAR}_COMPILED)
- set(${VAR}_EXITCODE 1)
- endif()
- # if the return value was 0 then it worked
- if("${${VAR}_EXITCODE}" EQUAL 0)
- set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Success")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Performing Fortran SOURCE FILE Test ${VAR} succeeded with the following output:\n"
- "${OUTPUT}\n"
- "...and run output:\n"
- "${RUN_OUTPUT}\n"
- "Return value: ${${VAR}}\n"
- "Source file was:\n${SOURCE}\n")
- else()
- if(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
- set(${VAR} "${${VAR}_EXITCODE}")
- else()
- set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
- endif()
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Failed")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Performing Fortran SOURCE FILE Test ${VAR} failed with the following output:\n"
- "${OUTPUT}\n"
- "...and run output:\n"
- "${RUN_OUTPUT}\n"
- "Return value: ${${VAR}_EXITCODE}\n"
- "Source file was:\n${SOURCE}\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckFunctionExists.cmake b/share/cmake-3.16/Modules/CheckFunctionExists.cmake
deleted file mode 100644
index c39144f..0000000
--- a/share/cmake-3.16/Modules/CheckFunctionExists.cmake
+++ /dev/null
@@ -1,119 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckFunctionExists
--------------------
-
-Check if a C function can be linked
-
-.. command:: check_function_exists
-
- .. code-block:: cmake
-
- check_function_exists(<function> <variable>)
-
- Checks that the ``<function>`` is provided by libraries on the system and store
- the result in a ``<variable>``, which will be created as an internal
- cache variable.
-
-The following variables may be set before calling this macro to modify the
-way the check is run:
-
-``CMAKE_REQUIRED_FLAGS``
- string of compile command line flags.
-``CMAKE_REQUIRED_DEFINITIONS``
- a :ref:`;-list <CMake Language Lists>` of macros to define (-DFOO=bar).
-``CMAKE_REQUIRED_INCLUDES``
- a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler.
-``CMAKE_REQUIRED_LINK_OPTIONS``
- a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
-``CMAKE_REQUIRED_LIBRARIES``
- a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. See policy :policy:`CMP0075`.
-``CMAKE_REQUIRED_QUIET``
- execute quietly without messages.
-
-.. note::
-
- Prefer using :Module:`CheckSymbolExists` instead of this module,
- for the following reasons:
-
- * ``check_function_exists()`` can't detect functions that are inlined
- in headers or specified as a macro.
-
- * ``check_function_exists()`` can't detect anything in the 32-bit
- versions of the Win32 API, because of a mismatch in calling conventions.
-
- * ``check_function_exists()`` only verifies linking, it does not verify
- that the function is declared in system headers.
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_FUNCTION_EXISTS FUNCTION VARIABLE)
- if(NOT DEFINED "${VARIABLE}" OR "x${${VARIABLE}}" STREQUAL "x${VARIABLE}")
- set(MACRO_CHECK_FUNCTION_DEFINITIONS
- "-DCHECK_FUNCTION_EXISTS=${FUNCTION} ${CMAKE_REQUIRED_FLAGS}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${FUNCTION}")
- endif()
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES)
- endif()
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_FUNCTION_EXISTS_ADD_INCLUDES
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_FUNCTION_EXISTS_ADD_INCLUDES)
- endif()
-
- if(CMAKE_C_COMPILER_LOADED)
- set(_cfe_source ${CMAKE_ROOT}/Modules/CheckFunctionExists.c)
- elseif(CMAKE_CXX_COMPILER_LOADED)
- set(_cfe_source ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckFunctionExists/CheckFunctionExists.cxx)
- configure_file(${CMAKE_ROOT}/Modules/CheckFunctionExists.c "${_cfe_source}" COPYONLY)
- else()
- message(FATAL_ERROR "CHECK_FUNCTION_EXISTS needs either C or CXX language enabled")
- endif()
-
- try_compile(${VARIABLE}
- ${CMAKE_BINARY_DIR}
- ${_cfe_source}
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS}
- ${CHECK_FUNCTION_EXISTS_ADD_LIBRARIES}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
- "${CHECK_FUNCTION_EXISTS_ADD_INCLUDES}"
- OUTPUT_VARIABLE OUTPUT)
- unset(_cfe_source)
-
- if(${VARIABLE})
- set(${VARIABLE} 1 CACHE INTERNAL "Have function ${FUNCTION}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${FUNCTION} - found")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the function ${FUNCTION} exists passed with the following output:\n"
- "${OUTPUT}\n\n")
- else()
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${FUNCTION} - not found")
- endif()
- set(${VARIABLE} "" CACHE INTERNAL "Have function ${FUNCTION}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the function ${FUNCTION} exists failed with the following output:\n"
- "${OUTPUT}\n\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckIncludeFile.cmake b/share/cmake-3.16/Modules/CheckIncludeFile.cmake
deleted file mode 100644
index d7b9481..0000000
--- a/share/cmake-3.16/Modules/CheckIncludeFile.cmake
+++ /dev/null
@@ -1,130 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckIncludeFile
-----------------
-
-Provides a macro to check if a header file can be included in ``C``.
-
-.. command:: CHECK_INCLUDE_FILE
-
- .. code-block:: cmake
-
- CHECK_INCLUDE_FILE(<include> <variable> [<flags>])
-
- Check if the given ``<include>`` file may be included in a ``C``
- source file and store the result in an internal cache entry named
- ``<variable>``. The optional third argument may be used to add
- compilation flags to the check (or use ``CMAKE_REQUIRED_FLAGS`` below).
-
-The following variables may be set before calling this macro to modify
-the way the check is run:
-
-``CMAKE_REQUIRED_FLAGS``
- string of compile command line flags.
-``CMAKE_REQUIRED_DEFINITIONS``
- a :ref:`;-list <CMake Language Lists>` of macros to define (-DFOO=bar).
-``CMAKE_REQUIRED_INCLUDES``
- a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler.
-``CMAKE_REQUIRED_LINK_OPTIONS``
- a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
-``CMAKE_REQUIRED_LIBRARIES``
- a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. See policy :policy:`CMP0075`.
-``CMAKE_REQUIRED_QUIET``
- execute quietly without messages.
-
-See the :module:`CheckIncludeFiles` module to check for multiple headers
-at once. See the :module:`CheckIncludeFileCXX` module to check for headers
-using the ``CXX`` language.
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_INCLUDE_FILE INCLUDE VARIABLE)
- if(NOT DEFINED "${VARIABLE}")
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_INCLUDE_FILE_C_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_INCLUDE_FILE_C_INCLUDE_DIRS)
- endif()
- set(MACRO_CHECK_INCLUDE_FILE_FLAGS ${CMAKE_REQUIRED_FLAGS})
- set(CHECK_INCLUDE_FILE_VAR ${INCLUDE})
- configure_file(${CMAKE_ROOT}/Modules/CheckIncludeFile.c.in
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.c)
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${INCLUDE}")
- endif()
- if(${ARGC} EQUAL 3)
- set(CMAKE_C_FLAGS_SAVE ${CMAKE_C_FLAGS})
- string(APPEND CMAKE_C_FLAGS " ${ARGV2}")
- endif()
-
- set(_CIF_LINK_OPTIONS)
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(_CIF_LINK_OPTIONS LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- endif()
-
- set(_CIF_LINK_LIBRARIES "")
- if(CMAKE_REQUIRED_LIBRARIES)
- cmake_policy(GET CMP0075 _CIF_CMP0075
- PARENT_SCOPE # undocumented, do not use outside of CMake
- )
- if("x${_CIF_CMP0075}x" STREQUAL "xNEWx")
- set(_CIF_LINK_LIBRARIES LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- elseif("x${_CIF_CMP0075}x" STREQUAL "xOLDx")
- elseif(NOT _CIF_CMP0075_WARNED)
- set(_CIF_CMP0075_WARNED 1)
- message(AUTHOR_WARNING
- "Policy CMP0075 is not set: Include file check macros honor CMAKE_REQUIRED_LIBRARIES. "
- "Run \"cmake --help-policy CMP0075\" for policy details. "
- "Use the cmake_policy command to set the policy and suppress this warning."
- "\n"
- "CMAKE_REQUIRED_LIBRARIES is set to:\n"
- " ${CMAKE_REQUIRED_LIBRARIES}\n"
- "For compatibility with CMake 3.11 and below this check is ignoring it."
- )
- endif()
- unset(_CIF_CMP0075)
- endif()
-
- try_compile(${VARIABLE}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.c
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${_CIF_LINK_OPTIONS}
- ${_CIF_LINK_LIBRARIES}
- CMAKE_FLAGS
- -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILE_FLAGS}
- "${CHECK_INCLUDE_FILE_C_INCLUDE_DIRS}"
- OUTPUT_VARIABLE OUTPUT)
- unset(_CIF_LINK_OPTIONS)
- unset(_CIF_LINK_LIBRARIES)
-
- if(${ARGC} EQUAL 3)
- set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS_SAVE})
- endif()
-
- if(${VARIABLE})
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${INCLUDE} - found")
- endif()
- set(${VARIABLE} 1 CACHE INTERNAL "Have include ${INCLUDE}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the include file ${INCLUDE} "
- "exists passed with the following output:\n"
- "${OUTPUT}\n\n")
- else()
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${INCLUDE} - not found")
- endif()
- set(${VARIABLE} "" CACHE INTERNAL "Have include ${INCLUDE}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the include file ${INCLUDE} "
- "exists failed with the following output:\n"
- "${OUTPUT}\n\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckIncludeFileCXX.cmake b/share/cmake-3.16/Modules/CheckIncludeFileCXX.cmake
deleted file mode 100644
index de5a83b..0000000
--- a/share/cmake-3.16/Modules/CheckIncludeFileCXX.cmake
+++ /dev/null
@@ -1,129 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckIncludeFileCXX
--------------------
-
-Provides a macro to check if a header file can be included in ``CXX``.
-
-.. command:: CHECK_INCLUDE_FILE_CXX
-
- .. code-block:: cmake
-
- CHECK_INCLUDE_FILE_CXX(<include> <variable> [<flags>])
-
- Check if the given ``<include>`` file may be included in a ``CXX``
- source file and store the result in an internal cache entry named
- ``<variable>``. The optional third argument may be used to add
- compilation flags to the check (or use ``CMAKE_REQUIRED_FLAGS`` below).
-
-The following variables may be set before calling this macro to modify
-the way the check is run:
-
-``CMAKE_REQUIRED_FLAGS``
- string of compile command line flags.
-``CMAKE_REQUIRED_DEFINITIONS``
- a :ref:`;-list <CMake Language Lists>` of macros to define (-DFOO=bar).
-``CMAKE_REQUIRED_INCLUDES``
- a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler.
-``CMAKE_REQUIRED_LINK_OPTIONS``
- a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
-``CMAKE_REQUIRED_LIBRARIES``
- a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. See policy :policy:`CMP0075`.
-``CMAKE_REQUIRED_QUIET``
- execute quietly without messages.
-
-See modules :module:`CheckIncludeFile` and :module:`CheckIncludeFiles`
-to check for one or more ``C`` headers.
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_INCLUDE_FILE_CXX INCLUDE VARIABLE)
- if(NOT DEFINED "${VARIABLE}" OR "x${${VARIABLE}}" STREQUAL "x${VARIABLE}")
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS)
- endif()
- set(MACRO_CHECK_INCLUDE_FILE_FLAGS ${CMAKE_REQUIRED_FLAGS})
- set(CHECK_INCLUDE_FILE_VAR ${INCLUDE})
- configure_file(${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx)
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for C++ include ${INCLUDE}")
- endif()
- if(${ARGC} EQUAL 3)
- set(CMAKE_CXX_FLAGS_SAVE ${CMAKE_CXX_FLAGS})
- string(APPEND CMAKE_CXX_FLAGS " ${ARGV2}")
- endif()
-
- set(_CIF_LINK_OPTIONS)
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(_CIF_LINK_OPTIONS LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- endif()
-
- set(_CIF_LINK_LIBRARIES "")
- if(CMAKE_REQUIRED_LIBRARIES)
- cmake_policy(GET CMP0075 _CIF_CMP0075
- PARENT_SCOPE # undocumented, do not use outside of CMake
- )
- if("x${_CIF_CMP0075}x" STREQUAL "xNEWx")
- set(_CIF_LINK_LIBRARIES LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- elseif("x${_CIF_CMP0075}x" STREQUAL "xOLDx")
- elseif(NOT _CIF_CMP0075_WARNED)
- set(_CIF_CMP0075_WARNED 1)
- message(AUTHOR_WARNING
- "Policy CMP0075 is not set: Include file check macros honor CMAKE_REQUIRED_LIBRARIES. "
- "Run \"cmake --help-policy CMP0075\" for policy details. "
- "Use the cmake_policy command to set the policy and suppress this warning."
- "\n"
- "CMAKE_REQUIRED_LIBRARIES is set to:\n"
- " ${CMAKE_REQUIRED_LIBRARIES}\n"
- "For compatibility with CMake 3.11 and below this check is ignoring it."
- )
- endif()
- unset(_CIF_CMP0075)
- endif()
-
- try_compile(${VARIABLE}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${_CIF_LINK_OPTIONS}
- ${_CIF_LINK_LIBRARIES}
- CMAKE_FLAGS
- -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILE_FLAGS}
- "${CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS}"
- OUTPUT_VARIABLE OUTPUT)
- unset(_CIF_LINK_OPTIONS)
- unset(_CIF_LINK_LIBRARIES)
-
- if(${ARGC} EQUAL 3)
- set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS_SAVE})
- endif()
-
- if(${VARIABLE})
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for C++ include ${INCLUDE} - found")
- endif()
- set(${VARIABLE} 1 CACHE INTERNAL "Have include ${INCLUDE}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the include file ${INCLUDE} "
- "exists passed with the following output:\n"
- "${OUTPUT}\n\n")
- else()
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for C++ include ${INCLUDE} - not found")
- endif()
- set(${VARIABLE} "" CACHE INTERNAL "Have include ${INCLUDE}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the include file ${INCLUDE} "
- "exists failed with the following output:\n"
- "${OUTPUT}\n\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckIncludeFiles.cmake b/share/cmake-3.16/Modules/CheckIncludeFiles.cmake
deleted file mode 100644
index f52ab55..0000000
--- a/share/cmake-3.16/Modules/CheckIncludeFiles.cmake
+++ /dev/null
@@ -1,168 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckIncludeFiles
------------------
-
-Provides a macro to check if a list of one or more header files can
-be included together.
-
-.. command:: CHECK_INCLUDE_FILES
-
- .. code-block:: cmake
-
- CHECK_INCLUDE_FILES("<includes>" <variable> [LANGUAGE <language>])
-
- Check if the given ``<includes>`` list may be included together
- in a source file and store the result in an internal cache
- entry named ``<variable>``. Specify the ``<includes>`` argument
- as a :ref:`;-list <CMake Language Lists>` of header file names.
-
- If ``LANGUAGE`` is set, the specified compiler will be used to perform the
- check. Acceptable values are ``C`` and ``CXX``. If not set, the C compiler
- will be used if enabled. If the C compiler is not enabled, the C++
- compiler will be used if enabled.
-
-The following variables may be set before calling this macro to modify
-the way the check is run:
-
-``CMAKE_REQUIRED_FLAGS``
- string of compile command line flags.
-``CMAKE_REQUIRED_DEFINITIONS``
- a :ref:`;-list <CMake Language Lists>` of macros to define (-DFOO=bar).
-``CMAKE_REQUIRED_INCLUDES``
- a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler.
-``CMAKE_REQUIRED_LINK_OPTIONS``
- a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
-``CMAKE_REQUIRED_LIBRARIES``
- a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. See policy :policy:`CMP0075`.
-``CMAKE_REQUIRED_QUIET``
- execute quietly without messages.
-
-See modules :module:`CheckIncludeFile` and :module:`CheckIncludeFileCXX`
-to check for a single header file in ``C`` or ``CXX`` languages.
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_INCLUDE_FILES INCLUDE VARIABLE)
- if(NOT DEFINED "${VARIABLE}")
- set(CMAKE_CONFIGURABLE_FILE_CONTENT "/* */\n")
-
- if("x${ARGN}" STREQUAL "x")
- if(CMAKE_C_COMPILER_LOADED)
- set(_lang C)
- elseif(CMAKE_CXX_COMPILER_LOADED)
- set(_lang CXX)
- else()
- message(FATAL_ERROR "CHECK_INCLUDE_FILES needs either C or CXX language enabled.\n")
- endif()
- elseif("x${ARGN}" MATCHES "^xLANGUAGE;([a-zA-Z]+)$")
- set(_lang "${CMAKE_MATCH_1}")
- elseif("x${ARGN}" MATCHES "^xLANGUAGE$")
- message(FATAL_ERROR "No languages listed for LANGUAGE option.\nSupported languages: C, CXX.\n")
- else()
- message(FATAL_ERROR "Unknown arguments:\n ${ARGN}\n")
- endif()
-
- if(_lang STREQUAL "C")
- set(src ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckIncludeFiles/${VARIABLE}.c)
- elseif(_lang STREQUAL "CXX")
- set(src ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckIncludeFiles/${VARIABLE}.cpp)
- else()
- message(FATAL_ERROR "Unknown language:\n ${_lang}\nSupported languages: C, CXX.\n")
- endif()
-
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_INCLUDE_FILES_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_INCLUDE_FILES_INCLUDE_DIRS)
- endif()
- set(CHECK_INCLUDE_FILES_CONTENT "/* */\n")
- set(MACRO_CHECK_INCLUDE_FILES_FLAGS ${CMAKE_REQUIRED_FLAGS})
- foreach(FILE ${INCLUDE})
- string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT
- "#include <${FILE}>\n")
- endforeach()
- string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT
- "\n\nint main(void){return 0;}\n")
- configure_file("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
- "${src}" @ONLY)
-
- set(_INCLUDE ${INCLUDE}) # remove empty elements
- if("${_INCLUDE}" MATCHES "^([^;]+);.+;([^;]+)$")
- list(LENGTH _INCLUDE _INCLUDE_LEN)
- set(_description "${_INCLUDE_LEN} include files ${CMAKE_MATCH_1}, ..., ${CMAKE_MATCH_2}")
- elseif("${_INCLUDE}" MATCHES "^([^;]+);([^;]+)$")
- set(_description "include files ${CMAKE_MATCH_1}, ${CMAKE_MATCH_2}")
- else()
- set(_description "include file ${_INCLUDE}")
- endif()
-
- set(_CIF_LINK_OPTIONS)
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(_CIF_LINK_OPTIONS LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- endif()
-
- set(_CIF_LINK_LIBRARIES "")
- if(CMAKE_REQUIRED_LIBRARIES)
- cmake_policy(GET CMP0075 _CIF_CMP0075
- PARENT_SCOPE # undocumented, do not use outside of CMake
- )
- if("x${_CIF_CMP0075}x" STREQUAL "xNEWx")
- set(_CIF_LINK_LIBRARIES LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- elseif("x${_CIF_CMP0075}x" STREQUAL "xOLDx")
- elseif(NOT _CIF_CMP0075_WARNED)
- set(_CIF_CMP0075_WARNED 1)
- message(AUTHOR_WARNING
- "Policy CMP0075 is not set: Include file check macros honor CMAKE_REQUIRED_LIBRARIES. "
- "Run \"cmake --help-policy CMP0075\" for policy details. "
- "Use the cmake_policy command to set the policy and suppress this warning."
- "\n"
- "CMAKE_REQUIRED_LIBRARIES is set to:\n"
- " ${CMAKE_REQUIRED_LIBRARIES}\n"
- "For compatibility with CMake 3.11 and below this check is ignoring it."
- )
- endif()
- unset(_CIF_CMP0075)
- endif()
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${_description}")
- endif()
- try_compile(${VARIABLE}
- ${CMAKE_BINARY_DIR}
- ${src}
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${_CIF_LINK_OPTIONS}
- ${_CIF_LINK_LIBRARIES}
- CMAKE_FLAGS
- -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILES_FLAGS}
- "${CHECK_INCLUDE_FILES_INCLUDE_DIRS}"
- OUTPUT_VARIABLE OUTPUT)
- unset(_CIF_LINK_OPTIONS)
- unset(_CIF_LINK_LIBRARIES)
- if(${VARIABLE})
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${_description} - found")
- endif()
- set(${VARIABLE} 1 CACHE INTERNAL "Have include ${INCLUDE}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if files ${INCLUDE} "
- "exist passed with the following output:\n"
- "${OUTPUT}\n\n")
- else()
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${_description} - not found")
- endif()
- set(${VARIABLE} "" CACHE INTERNAL "Have includes ${INCLUDE}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if files ${INCLUDE} "
- "exist failed with the following output:\n"
- "${OUTPUT}\nSource:\n${CMAKE_CONFIGURABLE_FILE_CONTENT}\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckLanguage.cmake b/share/cmake-3.16/Modules/CheckLanguage.cmake
deleted file mode 100644
index a1a3a7a..0000000
--- a/share/cmake-3.16/Modules/CheckLanguage.cmake
+++ /dev/null
@@ -1,98 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckLanguage
--------------
-
-Check if a language can be enabled
-
-Usage:
-
-::
-
- check_language(<lang>)
-
-where ``<lang>`` is a language that may be passed to :command:`enable_language`
-such as ``Fortran``. If :variable:`CMAKE_<LANG>_COMPILER` is already defined
-the check does nothing. Otherwise it tries enabling the language in a
-test project. The result is cached in :variable:`CMAKE_<LANG>_COMPILER`
-as the compiler that was found, or ``NOTFOUND`` if the language cannot be
-enabled. For CUDA which can have an explicit host compiler, the cache
-:variable:`CMAKE_CUDA_HOST_COMPILER` variable will be set if it was required
-for compilation.
-
-Example:
-
-::
-
- check_language(Fortran)
- if(CMAKE_Fortran_COMPILER)
- enable_language(Fortran)
- else()
- message(STATUS "No Fortran support")
- endif()
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(check_language lang)
- if(NOT DEFINED CMAKE_${lang}_COMPILER)
- set(_desc "Looking for a ${lang} compiler")
- message(STATUS ${_desc})
- file(REMOVE_RECURSE ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang})
-
- set(extra_compiler_variables)
- if(lang STREQUAL CUDA)
- set(extra_compiler_variables "set(CMAKE_CUDA_HOST_COMPILER \\\"\${CMAKE_CUDA_HOST_COMPILER}\\\")")
- endif()
-
- set(content
- "cmake_minimum_required(VERSION ${CMAKE_VERSION})
-project(Check${lang} ${lang})
-file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\"
- \"set(CMAKE_${lang}_COMPILER \\\"\${CMAKE_${lang}_COMPILER}\\\")\\n\"
- \"${extra_compiler_variables}\\n\"
- )"
- )
-
- file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}/CMakeLists.txt"
- "${content}")
- if(CMAKE_GENERATOR_INSTANCE)
- set(_D_CMAKE_GENERATOR_INSTANCE "-DCMAKE_GENERATOR_INSTANCE:INTERNAL=${CMAKE_GENERATOR_INSTANCE}")
- else()
- set(_D_CMAKE_GENERATOR_INSTANCE "")
- endif()
- execute_process(
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}
- COMMAND ${CMAKE_COMMAND} . -G ${CMAKE_GENERATOR}
- -A "${CMAKE_GENERATOR_PLATFORM}"
- -T "${CMAKE_GENERATOR_TOOLSET}"
- ${_D_CMAKE_GENERATOR_INSTANCE}
- OUTPUT_VARIABLE output
- ERROR_VARIABLE output
- RESULT_VARIABLE result
- )
- include(${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}/result.cmake OPTIONAL)
- if(CMAKE_${lang}_COMPILER AND "${result}" STREQUAL "0")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "${_desc} passed with the following output:\n"
- "${output}\n")
- else()
- set(CMAKE_${lang}_COMPILER NOTFOUND)
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "${_desc} failed with the following output:\n"
- "${output}\n")
- endif()
- message(STATUS "${_desc} - ${CMAKE_${lang}_COMPILER}")
- set(CMAKE_${lang}_COMPILER "${CMAKE_${lang}_COMPILER}" CACHE FILEPATH "${lang} compiler")
- mark_as_advanced(CMAKE_${lang}_COMPILER)
-
- if(CMAKE_${lang}_HOST_COMPILER)
- message(STATUS "Looking for a ${lang} host compiler - ${CMAKE_${lang}_HOST_COMPILER}")
- set(CMAKE_${lang}_HOST_COMPILER "${CMAKE_${lang}_HOST_COMPILER}" CACHE FILEPATH "${lang} host compiler")
- mark_as_advanced(CMAKE_${lang}_HOST_COMPILER)
- endif()
-
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckLibraryExists.cmake b/share/cmake-3.16/Modules/CheckLibraryExists.cmake
deleted file mode 100644
index 6504df5..0000000
--- a/share/cmake-3.16/Modules/CheckLibraryExists.cmake
+++ /dev/null
@@ -1,99 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckLibraryExists
-------------------
-
-Check if the function exists.
-
-.. command:: CHECK_LIBRARY_EXISTS
-
- .. code-block:: cmake
-
- CHECK_LIBRARY_EXISTS(LIBRARY FUNCTION LOCATION VARIABLE)
-
- ::
-
- LIBRARY - the name of the library you are looking for
- FUNCTION - the name of the function
- LOCATION - location where the library should be found
- VARIABLE - variable to store the result
- Will be created as an internal cache variable.
-
-
-
-The following variables may be set before calling this macro to modify
-the way the check is run:
-
-::
-
- CMAKE_REQUIRED_FLAGS = string of compile command line flags
- CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
- CMAKE_REQUIRED_LINK_OPTIONS = list of options to pass to link command
- CMAKE_REQUIRED_LIBRARIES = list of libraries to link
- CMAKE_REQUIRED_QUIET = execute quietly without messages
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_LIBRARY_EXISTS LIBRARY FUNCTION LOCATION VARIABLE)
- if(NOT DEFINED "${VARIABLE}")
- set(MACRO_CHECK_LIBRARY_EXISTS_DEFINITION
- "-DCHECK_FUNCTION_EXISTS=${FUNCTION} ${CMAKE_REQUIRED_FLAGS}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${FUNCTION} in ${LIBRARY}")
- endif()
- set(CHECK_LIBRARY_EXISTS_LINK_OPTIONS)
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_LIBRARY_EXISTS_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- endif()
- set(CHECK_LIBRARY_EXISTS_LIBRARIES ${LIBRARY})
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_LIBRARY_EXISTS_LIBRARIES
- ${CHECK_LIBRARY_EXISTS_LIBRARIES} ${CMAKE_REQUIRED_LIBRARIES})
- endif()
-
- if(CMAKE_C_COMPILER_LOADED)
- set(_cle_source ${CMAKE_ROOT}/Modules/CheckFunctionExists.c)
- elseif(CMAKE_CXX_COMPILER_LOADED)
- set(_cle_source ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckLibraryExists/CheckFunctionExists.cxx)
- configure_file(${CMAKE_ROOT}/Modules/CheckFunctionExists.c "${_cle_source}" COPYONLY)
- else()
- message(FATAL_ERROR "CHECK_FUNCTION_EXISTS needs either C or CXX language enabled")
- endif()
-
- try_compile(${VARIABLE}
- ${CMAKE_BINARY_DIR}
- ${_cle_source}
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_LIBRARY_EXISTS_LINK_OPTIONS}
- LINK_LIBRARIES ${CHECK_LIBRARY_EXISTS_LIBRARIES}
- CMAKE_FLAGS
- -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_LIBRARY_EXISTS_DEFINITION}
- -DLINK_DIRECTORIES:STRING=${LOCATION}
- OUTPUT_VARIABLE OUTPUT)
- unset(_cle_source)
-
- if(${VARIABLE})
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${FUNCTION} in ${LIBRARY} - found")
- endif()
- set(${VARIABLE} 1 CACHE INTERNAL "Have library ${LIBRARY}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the function ${FUNCTION} exists in the ${LIBRARY} "
- "passed with the following output:\n"
- "${OUTPUT}\n\n")
- else()
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${FUNCTION} in ${LIBRARY} - not found")
- endif()
- set(${VARIABLE} "" CACHE INTERNAL "Have library ${LIBRARY}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the function ${FUNCTION} exists in the ${LIBRARY} "
- "failed with the following output:\n"
- "${OUTPUT}\n\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckOBJCSourceCompiles.cmake b/share/cmake-3.16/Modules/CheckOBJCSourceCompiles.cmake
deleted file mode 100644
index a4676ad..0000000
--- a/share/cmake-3.16/Modules/CheckOBJCSourceCompiles.cmake
+++ /dev/null
@@ -1,145 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckOBJCSourceCompiles
------------------------
-
-Check if given Objective-C source compiles and links into an executable.
-
-.. command:: check_objc_source_compiles
-
- .. code-block:: cmake
-
- check_objc_source_compiles(<code> <resultVar>
- [FAIL_REGEX <regex1> [<regex2>...]])
-
- Check that the source supplied in ``<code>`` can be compiled as a Objectie-C source
- file and linked as an executable (so it must contain at least a ``main()``
- function). The result will be stored in the internal cache variable specified
- by ``<resultVar>``, with a boolean true value for success and boolean false
- for failure. If ``FAIL_REGEX`` is provided, then failure is determined by
- checking if anything in the output matches any of the specified regular
- expressions.
-
- The underlying check is performed by the :command:`try_compile` command. The
- compile and link commands can be influenced by setting any of the following
- variables prior to calling ``check_objc_source_compiles()``:
-
- ``CMAKE_REQUIRED_FLAGS``
- Additional flags to pass to the compiler. Note that the contents of
- :variable:`CMAKE_OBJC_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
- configuration-specific variable are automatically added to the compiler
- command before the contents of ``CMAKE_REQUIRED_FLAGS``.
-
- ``CMAKE_REQUIRED_DEFINITIONS``
- A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
- ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
- ``<resultVar>`` will also be added automatically.
-
- ``CMAKE_REQUIRED_INCLUDES``
- A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler. These will be the only header search paths used by
- ``try_compile()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
- directory property will be ignored.
-
- ``CMAKE_REQUIRED_LINK_OPTIONS``
- A :ref:`;-list <CMake Language Lists>` of options to add to the link
- command (see :command:`try_compile` for further details).
-
- ``CMAKE_REQUIRED_LIBRARIES``
- A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. These can be the name of system libraries or they can be
- :ref:`Imported Targets <Imported Targets>` (see :command:`try_compile` for
- further details).
-
- ``CMAKE_REQUIRED_QUIET``
- If this variable evaluates to a boolean true value, all status messages
- associated with the check will be suppressed.
-
- The check is only performed once, with the result cached in the variable
- named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
- value rather than performing the check again, even if the ``<code>`` changes.
- In order to force the check to be re-evaluated, the variable named by
- ``<resultVar>`` must be manually removed from the cache.
-
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_OBJC_SOURCE_COMPILES SOURCE VAR)
- if(NOT DEFINED "${VAR}")
- set(_FAIL_REGEX)
- set(_key)
- foreach(arg ${ARGN})
- if("${arg}" MATCHES "^(FAIL_REGEX)$")
- set(_key "${arg}")
- elseif(_key)
- list(APPEND _${_key} "${arg}")
- else()
- message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
- endif()
- endforeach()
- set(MACRO_CHECK_FUNCTION_DEFINITIONS
- "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_OBJC_SOURCE_COMPILES_ADD_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_OBJC_SOURCE_COMPILES_ADD_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_OBJC_SOURCE_COMPILES_ADD_LIBRARIES
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_OBJC_SOURCE_COMPILES_ADD_LIBRARIES)
- endif()
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_OBJC_SOURCE_COMPILES_ADD_INCLUDES
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_OBJC_SOURCE_COMPILES_ADD_INCLUDES)
- endif()
- file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.m"
- "${SOURCE}\n")
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR}")
- endif()
- try_compile(${VAR}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.m
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_OBJC_SOURCE_COMPILES_ADD_LINK_OPTIONS}
- ${CHECK_OBJC_SOURCE_COMPILES_ADD_LIBRARIES}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
- "${CHECK_OBJC_SOURCE_COMPILES_ADD_INCLUDES}"
- OUTPUT_VARIABLE OUTPUT)
-
- foreach(_regex ${_FAIL_REGEX})
- if("${OUTPUT}" MATCHES "${_regex}")
- set(${VAR} 0)
- endif()
- endforeach()
-
- if(${VAR})
- set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Success")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Performing Objective-C SOURCE FILE Test ${VAR} succeeded with the following output:\n"
- "${OUTPUT}\n"
- "Source file was:\n${SOURCE}\n")
- else()
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Failed")
- endif()
- set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Performing Objective-C SOURCE FILE Test ${VAR} failed with the following output:\n"
- "${OUTPUT}\n"
- "Source file was:\n${SOURCE}\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckOBJCSourceRuns.cmake b/share/cmake-3.16/Modules/CheckOBJCSourceRuns.cmake
deleted file mode 100644
index 00a1ebd..0000000
--- a/share/cmake-3.16/Modules/CheckOBJCSourceRuns.cmake
+++ /dev/null
@@ -1,145 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckOBJCSourceRuns
--------------------
-
-Check if given Objective-C source compiles and links into an executable and can
-subsequently be run.
-
-.. command:: check_objc_source_runs
-
- .. code-block:: cmake
-
- check_objc_source_runs(<code> <resultVar>)
-
- Check that the source supplied in ``<code>`` can be compiled as a Objective-C source
- file, linked as an executable and then run. The ``<code>`` must contain at
- least a ``main()`` function. If the ``<code>`` could be built and run
- successfully, the internal cache variable specified by ``<resultVar>`` will
- be set to 1, otherwise it will be set to an value that evaluates to boolean
- false (e.g. an empty string or an error message).
-
- The underlying check is performed by the :command:`try_run` command. The
- compile and link commands can be influenced by setting any of the following
- variables prior to calling ``check_objc_source_runs()``:
-
- ``CMAKE_REQUIRED_FLAGS``
- Additional flags to pass to the compiler. Note that the contents of
- :variable:`CMAKE_OBJC_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
- configuration-specific variable are automatically added to the compiler
- command before the contents of ``CMAKE_REQUIRED_FLAGS``.
-
- ``CMAKE_REQUIRED_DEFINITIONS``
- A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
- ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
- ``<resultVar>`` will also be added automatically.
-
- ``CMAKE_REQUIRED_INCLUDES``
- A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler. These will be the only header search paths used by
- ``try_run()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
- directory property will be ignored.
-
- ``CMAKE_REQUIRED_LINK_OPTIONS``
- A :ref:`;-list <CMake Language Lists>` of options to add to the link
- command (see :command:`try_run` for further details).
-
- ``CMAKE_REQUIRED_LIBRARIES``
- A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. These can be the name of system libraries or they can be
- :ref:`Imported Targets <Imported Targets>` (see :command:`try_run` for
- further details).
-
- ``CMAKE_REQUIRED_QUIET``
- If this variable evaluates to a boolean true value, all status messages
- associated with the check will be suppressed.
-
- The check is only performed once, with the result cached in the variable
- named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
- value rather than performing the check again, even if the ``<code>`` changes.
- In order to force the check to be re-evaluated, the variable named by
- ``<resultVar>`` must be manually removed from the cache.
-
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_OBJC_SOURCE_RUNS SOURCE VAR)
- if(NOT DEFINED "${VAR}")
- set(MACRO_CHECK_FUNCTION_DEFINITIONS
- "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_OBJC_SOURCE_COMPILES_ADD_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_OBJC_SOURCE_COMPILES_ADD_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_OBJC_SOURCE_COMPILES_ADD_LIBRARIES
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_OBJC_SOURCE_COMPILES_ADD_LIBRARIES)
- endif()
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_OBJC_SOURCE_COMPILES_ADD_INCLUDES
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_OBJC_SOURCE_COMPILES_ADD_INCLUDES)
- endif()
- file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.m"
- "${SOURCE}\n")
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR}")
- endif()
- try_run(${VAR}_EXITCODE ${VAR}_COMPILED
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.m
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_OBJC_SOURCE_COMPILES_ADD_LINK_OPTIONS}
- ${CHECK_OBJC_SOURCE_COMPILES_ADD_LIBRARIES}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
- -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
- "${CHECK_OBJC_SOURCE_COMPILES_ADD_INCLUDES}"
- COMPILE_OUTPUT_VARIABLE OUTPUT
- RUN_OUTPUT_VARIABLE RUN_OUTPUT)
- # if it did not compile make the return value fail code of 1
- if(NOT ${VAR}_COMPILED)
- set(${VAR}_EXITCODE 1)
- endif()
- # if the return value was 0 then it worked
- if("${${VAR}_EXITCODE}" EQUAL 0)
- set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Success")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Performing Objective-C SOURCE FILE Test ${VAR} succeeded with the following compile output:\n"
- "${OUTPUT}\n"
- "...and run output:\n"
- "${RUN_OUTPUT}\n"
- "Return value: ${${VAR}}\n"
- "Source file was:\n${SOURCE}\n")
- else()
- if(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
- set(${VAR} "${${VAR}_EXITCODE}")
- else()
- set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
- endif()
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Failed")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Performing Objective-C SOURCE FILE Test ${VAR} failed with the following compile output:\n"
- "${OUTPUT}\n"
- "...and run output:\n"
- "${RUN_OUTPUT}\n"
- "Return value: ${${VAR}_EXITCODE}\n"
- "Source file was:\n${SOURCE}\n")
-
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckOBJCXXSourceCompiles.cmake b/share/cmake-3.16/Modules/CheckOBJCXXSourceCompiles.cmake
deleted file mode 100644
index 4c0fdd0..0000000
--- a/share/cmake-3.16/Modules/CheckOBJCXXSourceCompiles.cmake
+++ /dev/null
@@ -1,146 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckOBJCXXSourceCompiles
--------------------------
-
-Check if given Objective-C++ source compiles and links into an executable.
-
-.. command:: check_objcxx_source_compiles
-
- .. code-block:: cmake
-
- check_objcxx_source_compiles(<code> <resultVar>
- [FAIL_REGEX <regex1> [<regex2>...]])
-
- Check that the source supplied in ``<code>`` can be compiled as a Objective-C++ source
- file and linked as an executable (so it must contain at least a ``main()``
- function). The result will be stored in the internal cache variable specified
- by ``<resultVar>``, with a boolean true value for success and boolean false
- for failure. If ``FAIL_REGEX`` is provided, then failure is determined by
- checking if anything in the output matches any of the specified regular
- expressions.
-
- The underlying check is performed by the :command:`try_compile` command. The
- compile and link commands can be influenced by setting any of the following
- variables prior to calling ``check_objcxx_source_compiles()``:
-
- ``CMAKE_REQUIRED_FLAGS``
- Additional flags to pass to the compiler. Note that the contents of
- :variable:`CMAKE_OBJCXX_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
- configuration-specific variable are automatically added to the compiler
- command before the contents of ``CMAKE_REQUIRED_FLAGS``.
-
- ``CMAKE_REQUIRED_DEFINITIONS``
- A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
- ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
- ``<resultVar>`` will also be added automatically.
-
- ``CMAKE_REQUIRED_INCLUDES``
- A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler. These will be the only header search paths used by
- ``try_compile()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
- directory property will be ignored.
-
- ``CMAKE_REQUIRED_LINK_OPTIONS``
- A :ref:`;-list <CMake Language Lists>` of options to add to the link
- command (see :command:`try_compile` for further details).
-
- ``CMAKE_REQUIRED_LIBRARIES``
- A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. These can be the name of system libraries or they can be
- :ref:`Imported Targets <Imported Targets>` (see :command:`try_compile` for
- further details).
-
- ``CMAKE_REQUIRED_QUIET``
- If this variable evaluates to a boolean true value, all status messages
- associated with the check will be suppressed.
-
- The check is only performed once, with the result cached in the variable
- named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
- value rather than performing the check again, even if the ``<code>`` changes.
- In order to force the check to be re-evaluated, the variable named by
- ``<resultVar>`` must be manually removed from the cache.
-
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_OBJCXX_SOURCE_COMPILES SOURCE VAR)
- if(NOT DEFINED "${VAR}")
- set(_FAIL_REGEX)
- set(_key)
- foreach(arg ${ARGN})
- if("${arg}" MATCHES "^(FAIL_REGEX)$")
- set(_key "${arg}")
- elseif(_key)
- list(APPEND _${_key} "${arg}")
- else()
- message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
- endif()
- endforeach()
-
- set(MACRO_CHECK_FUNCTION_DEFINITIONS
- "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LIBRARIES
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LIBRARIES)
- endif()
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_INCLUDES
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_INCLUDES)
- endif()
- file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.mm"
- "${SOURCE}\n")
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR}")
- endif()
- try_compile(${VAR}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.mm
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_OBJCXX_SOURCE_COMPILES_ADD_LINK_OPTIONS}
- ${CHECK_OBJCXX_SOURCE_COMPILES_ADD_LIBRARIES}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
- "${CHECK_OBJCXX_SOURCE_COMPILES_ADD_INCLUDES}"
- OUTPUT_VARIABLE OUTPUT)
-
- foreach(_regex ${_FAIL_REGEX})
- if("${OUTPUT}" MATCHES "${_regex}")
- set(${VAR} 0)
- endif()
- endforeach()
-
- if(${VAR})
- set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Success")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Performing Objective-C++ SOURCE FILE Test ${VAR} succeeded with the following output:\n"
- "${OUTPUT}\n"
- "Source file was:\n${SOURCE}\n")
- else()
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Failed")
- endif()
- set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Performing Objective-C++ SOURCE FILE Test ${VAR} failed with the following output:\n"
- "${OUTPUT}\n"
- "Source file was:\n${SOURCE}\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckOBJCXXSourceRuns.cmake b/share/cmake-3.16/Modules/CheckOBJCXXSourceRuns.cmake
deleted file mode 100644
index a3d5923..0000000
--- a/share/cmake-3.16/Modules/CheckOBJCXXSourceRuns.cmake
+++ /dev/null
@@ -1,145 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckOBJCXXSourceRuns
----------------------
-
-Check if given Objective-C++ source compiles and links into an executable and can
-subsequently be run.
-
-.. command:: check_objcxx_source_runs
-
- .. code-block:: cmake
-
- check_objcxx_source_runs(<code> <resultVar>)
-
- Check that the source supplied in ``<code>`` can be compiled as a Objective-C++ source
- file, linked as an executable and then run. The ``<code>`` must contain at
- least a ``main()`` function. If the ``<code>`` could be built and run
- successfully, the internal cache variable specified by ``<resultVar>`` will
- be set to 1, otherwise it will be set to an value that evaluates to boolean
- false (e.g. an empty string or an error message).
-
- The underlying check is performed by the :command:`try_run` command. The
- compile and link commands can be influenced by setting any of the following
- variables prior to calling ``check_objcxx_source_runs()``:
-
- ``CMAKE_REQUIRED_FLAGS``
- Additional flags to pass to the compiler. Note that the contents of
- :variable:`CMAKE_OBJCXX_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
- configuration-specific variable are automatically added to the compiler
- command before the contents of ``CMAKE_REQUIRED_FLAGS``.
-
- ``CMAKE_REQUIRED_DEFINITIONS``
- A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
- ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
- ``<resultVar>`` will also be added automatically.
-
- ``CMAKE_REQUIRED_INCLUDES``
- A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler. These will be the only header search paths used by
- ``try_run()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
- directory property will be ignored.
-
- ``CMAKE_REQUIRED_LINK_OPTIONS``
- A :ref:`;-list <CMake Language Lists>` of options to add to the link
- command (see :command:`try_run` for further details).
-
- ``CMAKE_REQUIRED_LIBRARIES``
- A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. These can be the name of system libraries or they can be
- :ref:`Imported Targets <Imported Targets>` (see :command:`try_run` for
- further details).
-
- ``CMAKE_REQUIRED_QUIET``
- If this variable evaluates to a boolean true value, all status messages
- associated with the check will be suppressed.
-
- The check is only performed once, with the result cached in the variable
- named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
- value rather than performing the check again, even if the ``<code>`` changes.
- In order to force the check to be re-evaluated, the variable named by
- ``<resultVar>`` must be manually removed from the cache.
-
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_OBJCXX_SOURCE_RUNS SOURCE VAR)
- if(NOT DEFINED "${VAR}")
- set(MACRO_CHECK_FUNCTION_DEFINITIONS
- "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LIBRARIES
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LIBRARIES)
- endif()
- if(CMAKE_REQUIRED_INCLUDES)
- set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_INCLUDES
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_INCLUDES)
- endif()
- file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.mm"
- "${SOURCE}\n")
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR}")
- endif()
- try_run(${VAR}_EXITCODE ${VAR}_COMPILED
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.mm
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_OBJCXX_SOURCE_COMPILES_ADD_LINK_OPTIONS}
- ${CHECK_OBJCXX_SOURCE_COMPILES_ADD_LIBRARIES}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
- -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
- "${CHECK_OBJCXX_SOURCE_COMPILES_ADD_INCLUDES}"
- COMPILE_OUTPUT_VARIABLE OUTPUT
- RUN_OUTPUT_VARIABLE RUN_OUTPUT)
-
- # if it did not compile make the return value fail code of 1
- if(NOT ${VAR}_COMPILED)
- set(${VAR}_EXITCODE 1)
- endif()
- # if the return value was 0 then it worked
- if("${${VAR}_EXITCODE}" EQUAL 0)
- set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Success")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Performing Objective-C++ SOURCE FILE Test ${VAR} succeeded with the following output:\n"
- "${OUTPUT}\n"
- "...and run output:\n"
- "${RUN_OUTPUT}\n"
- "Return value: ${${VAR}}\n"
- "Source file was:\n${SOURCE}\n")
- else()
- if(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
- set(${VAR} "${${VAR}_EXITCODE}")
- else()
- set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
- endif()
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Performing Test ${VAR} - Failed")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Performing Objective-C++ SOURCE FILE Test ${VAR} failed with the following output:\n"
- "${OUTPUT}\n"
- "...and run output:\n"
- "${RUN_OUTPUT}\n"
- "Return value: ${${VAR}_EXITCODE}\n"
- "Source file was:\n${SOURCE}\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/CheckPrototypeDefinition.cmake b/share/cmake-3.16/Modules/CheckPrototypeDefinition.cmake
deleted file mode 100644
index a7b020c..0000000
--- a/share/cmake-3.16/Modules/CheckPrototypeDefinition.cmake
+++ /dev/null
@@ -1,122 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckPrototypeDefinition
-------------------------
-
-Check if the prototype we expect is correct.
-
-.. command:: check_prototype_definition
-
- .. code-block:: cmake
-
- check_prototype_definition(FUNCTION PROTOTYPE RETURN HEADER VARIABLE)
-
- ::
-
- FUNCTION - The name of the function (used to check if prototype exists)
- PROTOTYPE- The prototype to check.
- RETURN - The return value of the function.
- HEADER - The header files required.
- VARIABLE - The variable to store the result.
- Will be created as an internal cache variable.
-
- Example:
-
- .. code-block:: cmake
-
- check_prototype_definition(getpwent_r
- "struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen)"
- "NULL"
- "unistd.h;pwd.h"
- SOLARIS_GETPWENT_R)
-
-The following variables may be set before calling this function to modify
-the way the check is run:
-
-::
-
- CMAKE_REQUIRED_FLAGS = string of compile command line flags
- CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
- CMAKE_REQUIRED_INCLUDES = list of include directories
- CMAKE_REQUIRED_LINK_OPTIONS = list of options to pass to link command
- CMAKE_REQUIRED_LIBRARIES = list of libraries to link
- CMAKE_REQUIRED_QUIET = execute quietly without messages
-#]=======================================================================]
-
-#
-
-get_filename_component(__check_proto_def_dir "${CMAKE_CURRENT_LIST_FILE}" PATH)
-
-include_guard(GLOBAL)
-
-function(check_prototype_definition _FUNCTION _PROTOTYPE _RETURN _HEADER _VARIABLE)
-
- if (NOT DEFINED ${_VARIABLE})
- set(CHECK_PROTOTYPE_DEFINITION_CONTENT "/* */\n")
-
- set(CHECK_PROTOTYPE_DEFINITION_FLAGS ${CMAKE_REQUIRED_FLAGS})
- if (CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_PROTOTYPE_DEFINITION_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_PROTOTYPE_DEFINITION_LINK_OPTIONS)
- endif()
- if (CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_PROTOTYPE_DEFINITION_LIBS
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_PROTOTYPE_DEFINITION_LIBS)
- endif()
- if (CMAKE_REQUIRED_INCLUDES)
- set(CMAKE_SYMBOL_EXISTS_INCLUDES
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CMAKE_SYMBOL_EXISTS_INCLUDES)
- endif()
-
- foreach(_FILE ${_HEADER})
- string(APPEND CHECK_PROTOTYPE_DEFINITION_HEADER
- "#include <${_FILE}>\n")
- endforeach()
-
- set(CHECK_PROTOTYPE_DEFINITION_SYMBOL ${_FUNCTION})
- set(CHECK_PROTOTYPE_DEFINITION_PROTO ${_PROTOTYPE})
- set(CHECK_PROTOTYPE_DEFINITION_RETURN ${_RETURN})
-
- configure_file("${__check_proto_def_dir}/CheckPrototypeDefinition.c.in"
- "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckPrototypeDefinition.c" @ONLY)
-
- file(READ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckPrototypeDefinition.c _SOURCE)
-
- try_compile(${_VARIABLE}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckPrototypeDefinition.c
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_PROTOTYPE_DEFINITION_LINK_OPTIONS}
- ${CHECK_PROTOTYPE_DEFINITION_LIBS}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CHECK_PROTOTYPE_DEFINITION_FLAGS}
- "${CMAKE_SYMBOL_EXISTS_INCLUDES}"
- OUTPUT_VARIABLE OUTPUT)
-
- if (${_VARIABLE})
- set(${_VARIABLE} 1 CACHE INTERNAL "Have correct prototype for ${_FUNCTION}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Checking prototype ${_FUNCTION} for ${_VARIABLE} - True")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the prototype ${_FUNCTION} exists for ${_VARIABLE} passed with the following output:\n"
- "${OUTPUT}\n\n")
- else ()
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Checking prototype ${_FUNCTION} for ${_VARIABLE} - False")
- endif()
- set(${_VARIABLE} 0 CACHE INTERNAL "Have correct prototype for ${_FUNCTION}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the prototype ${_FUNCTION} exists for ${_VARIABLE} failed with the following output:\n"
- "${OUTPUT}\n\n${_SOURCE}\n\n")
- endif ()
- endif()
-
-endfunction()
diff --git a/share/cmake-3.16/Modules/CheckSymbolExists.cmake b/share/cmake-3.16/Modules/CheckSymbolExists.cmake
deleted file mode 100644
index 1053383..0000000
--- a/share/cmake-3.16/Modules/CheckSymbolExists.cmake
+++ /dev/null
@@ -1,166 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckSymbolExists
------------------
-
-Provides a macro to check if a symbol exists as a function, variable,
-or macro in ``C``.
-
-.. command:: check_symbol_exists
-
- .. code-block:: cmake
-
- check_symbol_exists(<symbol> <files> <variable>)
-
- Check that the ``<symbol>`` is available after including given header
- ``<files>`` and store the result in a ``<variable>``. Specify the list
- of files in one argument as a semicolon-separated list.
- ``<variable>`` will be created as an internal cache variable.
-
-If the header files define the symbol as a macro it is considered
-available and assumed to work. If the header files declare the symbol
-as a function or variable then the symbol must also be available for
-linking (so intrinsics may not be detected).
-If the symbol is a type, enum value, or intrinsic it will not be recognized
-(consider using :module:`CheckTypeSize` or :module:`CheckCSourceCompiles`).
-If the check needs to be done in C++, consider using
-:module:`CheckCXXSymbolExists` instead.
-
-The following variables may be set before calling this macro to modify
-the way the check is run:
-
-``CMAKE_REQUIRED_FLAGS``
- string of compile command line flags.
-``CMAKE_REQUIRED_DEFINITIONS``
- a :ref:`;-list <CMake Language Lists>` of macros to define (-DFOO=bar).
-``CMAKE_REQUIRED_INCLUDES``
- a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
- the compiler.
-``CMAKE_REQUIRED_LINK_OPTIONS``
- a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
-``CMAKE_REQUIRED_LIBRARIES``
- a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
- command. See policy :policy:`CMP0075`.
-``CMAKE_REQUIRED_QUIET``
- execute quietly without messages.
-
-For example:
-
-.. code-block:: cmake
-
- include(CheckSymbolExists)
-
- # Check for macro SEEK_SET
- check_symbol_exists(SEEK_SET "stdio.h" HAVE_SEEK_SET)
- # Check for function fopen
- check_symbol_exists(fopen "stdio.h" HAVE_FOPEN)
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
-
-macro(CHECK_SYMBOL_EXISTS SYMBOL FILES VARIABLE)
- if(CMAKE_C_COMPILER_LOADED)
- __CHECK_SYMBOL_EXISTS_IMPL("${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.c" "${SYMBOL}" "${FILES}" "${VARIABLE}" )
- elseif(CMAKE_CXX_COMPILER_LOADED)
- __CHECK_SYMBOL_EXISTS_IMPL("${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.cxx" "${SYMBOL}" "${FILES}" "${VARIABLE}" )
- else()
- message(FATAL_ERROR "CHECK_SYMBOL_EXISTS needs either C or CXX language enabled")
- endif()
-endmacro()
-
-macro(__CHECK_SYMBOL_EXISTS_IMPL SOURCEFILE SYMBOL FILES VARIABLE)
- if(NOT DEFINED "${VARIABLE}" OR "x${${VARIABLE}}" STREQUAL "x${VARIABLE}")
- set(CMAKE_CONFIGURABLE_FILE_CONTENT "/* */\n")
- set(MACRO_CHECK_SYMBOL_EXISTS_FLAGS ${CMAKE_REQUIRED_FLAGS})
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_SYMBOL_EXISTS_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_SYMBOL_EXISTS_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_SYMBOL_EXISTS_LIBS
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_SYMBOL_EXISTS_LIBS)
- endif()
- if(CMAKE_REQUIRED_INCLUDES)
- set(CMAKE_SYMBOL_EXISTS_INCLUDES
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
- else()
- set(CMAKE_SYMBOL_EXISTS_INCLUDES)
- endif()
- foreach(FILE ${FILES})
- string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT
- "#include <${FILE}>\n")
- endforeach()
- string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT "
-int main(int argc, char** argv)
-{
- (void)argv;")
- set(_CSE_CHECK_NON_MACRO "return ((int*)(&${SYMBOL}))[argc];")
- if("${SYMBOL}" MATCHES "^[a-zA-Z_][a-zA-Z0-9_]*$")
- # The SYMBOL has a legal macro name. Test whether it exists as a macro.
- string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT "
-#ifndef ${SYMBOL}
- ${_CSE_CHECK_NON_MACRO}
-#else
- (void)argc;
- return 0;
-#endif")
- else()
- # The SYMBOL cannot be a macro (e.g., a template function).
- string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT "
- ${_CSE_CHECK_NON_MACRO}")
- endif()
- string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT "
-}")
- unset(_CSE_CHECK_NON_MACRO)
-
- configure_file("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
- "${SOURCEFILE}" @ONLY)
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${SYMBOL}")
- endif()
- try_compile(${VARIABLE}
- ${CMAKE_BINARY_DIR}
- "${SOURCEFILE}"
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_SYMBOL_EXISTS_LINK_OPTIONS}
- ${CHECK_SYMBOL_EXISTS_LIBS}
- CMAKE_FLAGS
- -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_SYMBOL_EXISTS_FLAGS}
- "${CMAKE_SYMBOL_EXISTS_INCLUDES}"
- OUTPUT_VARIABLE OUTPUT)
- if(${VARIABLE})
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${SYMBOL} - found")
- endif()
- set(${VARIABLE} 1 CACHE INTERNAL "Have symbol ${SYMBOL}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the ${SYMBOL} "
- "exist passed with the following output:\n"
- "${OUTPUT}\nFile ${SOURCEFILE}:\n"
- "${CMAKE_CONFIGURABLE_FILE_CONTENT}\n")
- else()
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${SYMBOL} - not found")
- endif()
- set(${VARIABLE} "" CACHE INTERNAL "Have symbol ${SYMBOL}")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the ${SYMBOL} "
- "exist failed with the following output:\n"
- "${OUTPUT}\nFile ${SOURCEFILE}:\n"
- "${CMAKE_CONFIGURABLE_FILE_CONTENT}\n")
- endif()
- unset(CMAKE_CONFIGURABLE_FILE_CONTENT)
- endif()
-endmacro()
-
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/CheckTypeSize.cmake b/share/cmake-3.16/Modules/CheckTypeSize.cmake
deleted file mode 100644
index 3727373..0000000
--- a/share/cmake-3.16/Modules/CheckTypeSize.cmake
+++ /dev/null
@@ -1,270 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckTypeSize
--------------
-
-Check sizeof a type
-
-.. command:: CHECK_TYPE_SIZE
-
- .. code-block:: cmake
-
- CHECK_TYPE_SIZE(TYPE VARIABLE [BUILTIN_TYPES_ONLY]
- [LANGUAGE <language>])
-
- Check if the type exists and determine its size. On return,
- ``HAVE_${VARIABLE}`` holds the existence of the type, and ``${VARIABLE}``
- holds one of the following:
-
- ::
-
- <size> = type has non-zero size <size>
- "0" = type has arch-dependent size (see below)
- "" = type does not exist
-
- Both ``HAVE_${VARIABLE}`` and ``${VARIABLE}`` will be created as internal
- cache variables.
-
- Furthermore, the variable ``${VARIABLE}_CODE`` holds C preprocessor code
- to define the macro ``${VARIABLE}`` to the size of the type, or leave
- the macro undefined if the type does not exist.
-
- The variable ``${VARIABLE}`` may be ``0`` when
- :variable:`CMAKE_OSX_ARCHITECTURES` has multiple architectures for building
- OS X universal binaries. This indicates that the type size varies across
- architectures. In this case ``${VARIABLE}_CODE`` contains C preprocessor
- tests mapping from each architecture macro to the corresponding type size.
- The list of architecture macros is stored in ``${VARIABLE}_KEYS``, and the
- value for each key is stored in ``${VARIABLE}-${KEY}``.
-
- If the ``BUILTIN_TYPES_ONLY`` option is not given, the macro checks for
- headers ``<sys/types.h>``, ``<stdint.h>``, and ``<stddef.h>``, and saves
- results in ``HAVE_SYS_TYPES_H``, ``HAVE_STDINT_H``, and ``HAVE_STDDEF_H``.
- The type size check automatically includes the available headers, thus
- supporting checks of types defined in the headers.
-
- If ``LANGUAGE`` is set, the specified compiler will be used to perform the
- check. Acceptable values are ``C`` and ``CXX``.
-
-Despite the name of the macro you may use it to check the size of more
-complex expressions, too. To check e.g. for the size of a struct
-member you can do something like this:
-
-.. code-block:: cmake
-
- check_type_size("((struct something*)0)->member" SIZEOF_MEMBER)
-
-
-
-The following variables may be set before calling this macro to modify
-the way the check is run:
-
-::
-
- CMAKE_REQUIRED_FLAGS = string of compile command line flags
- CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
- CMAKE_REQUIRED_INCLUDES = list of include directories
- CMAKE_REQUIRED_LINK_OPTIONS = list of options to pass to link command
- CMAKE_REQUIRED_LIBRARIES = list of libraries to link
- CMAKE_REQUIRED_QUIET = execute quietly without messages
- CMAKE_EXTRA_INCLUDE_FILES = list of extra headers to include
-#]=======================================================================]
-
-include(CheckIncludeFile)
-include(CheckIncludeFileCXX)
-
-get_filename_component(__check_type_size_dir "${CMAKE_CURRENT_LIST_FILE}" PATH)
-
-include_guard(GLOBAL)
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0054 NEW)
-
-#-----------------------------------------------------------------------------
-# Helper function. DO NOT CALL DIRECTLY.
-function(__check_type_size_impl type var map builtin language)
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Check size of ${type}")
- endif()
-
- # Include header files.
- set(headers)
- if(builtin)
- if(HAVE_SYS_TYPES_H)
- string(APPEND headers "#include <sys/types.h>\n")
- endif()
- if(HAVE_STDINT_H)
- string(APPEND headers "#include <stdint.h>\n")
- endif()
- if(HAVE_STDDEF_H)
- string(APPEND headers "#include <stddef.h>\n")
- endif()
- endif()
- foreach(h ${CMAKE_EXTRA_INCLUDE_FILES})
- string(APPEND headers "#include \"${h}\"\n")
- endforeach()
-
- # Perform the check.
-
- if(language STREQUAL "C")
- set(src ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckTypeSize/${var}.c)
- elseif(language STREQUAL "CXX")
- set(src ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckTypeSize/${var}.cpp)
- else()
- message(FATAL_ERROR "Unknown language:\n ${language}\nSupported languages: C, CXX.\n")
- endif()
- set(bin ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckTypeSize/${var}.bin)
- configure_file(${__check_type_size_dir}/CheckTypeSize.c.in ${src} @ONLY)
- try_compile(HAVE_${var} ${CMAKE_BINARY_DIR} ${src}
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS}
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}
- CMAKE_FLAGS
- "-DCOMPILE_DEFINITIONS:STRING=${CMAKE_REQUIRED_FLAGS}"
- "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}"
- OUTPUT_VARIABLE output
- COPY_FILE ${bin}
- )
-
- if(HAVE_${var})
- # The check compiled. Load information from the binary.
- file(STRINGS ${bin} strings LIMIT_COUNT 10 REGEX "INFO:size")
-
- # Parse the information strings.
- set(regex_size ".*INFO:size\\[0*([^]]*)\\].*")
- set(regex_key " key\\[([^]]*)\\]")
- set(keys)
- set(code)
- set(mismatch)
- set(first 1)
- foreach(info ${strings})
- if("${info}" MATCHES "${regex_size}")
- # Get the type size.
- set(size "${CMAKE_MATCH_1}")
- if(first)
- set(${var} ${size})
- elseif(NOT "${size}" STREQUAL "${${var}}")
- set(mismatch 1)
- endif()
- set(first 0)
-
- # Get the architecture map key.
- string(REGEX MATCH "${regex_key}" key "${info}")
- string(REGEX REPLACE "${regex_key}" "\\1" key "${key}")
- if(key)
- string(APPEND code "\nset(${var}-${key} \"${size}\")")
- list(APPEND keys ${key})
- endif()
- endif()
- endforeach()
-
- # Update the architecture-to-size map.
- if(mismatch AND keys)
- configure_file(${__check_type_size_dir}/CheckTypeSizeMap.cmake.in ${map} @ONLY)
- set(${var} 0)
- else()
- file(REMOVE ${map})
- endif()
-
- if(mismatch AND NOT keys)
- message(SEND_ERROR "CHECK_TYPE_SIZE found different results, consider setting CMAKE_OSX_ARCHITECTURES or CMAKE_TRY_COMPILE_OSX_ARCHITECTURES to one or no architecture !")
- endif()
-
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Check size of ${type} - done")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining size of ${type} passed with the following output:\n${output}\n\n")
- set(${var} "${${var}}" CACHE INTERNAL "CHECK_TYPE_SIZE: sizeof(${type})")
- else()
- # The check failed to compile.
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Check size of ${type} - failed")
- endif()
- file(READ ${src} content)
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining size of ${type} failed with the following output:\n${output}\n${src}:\n${content}\n\n")
- set(${var} "" CACHE INTERNAL "CHECK_TYPE_SIZE: ${type} unknown")
- file(REMOVE ${map})
- endif()
-endfunction()
-
-#-----------------------------------------------------------------------------
-macro(CHECK_TYPE_SIZE TYPE VARIABLE)
- # parse arguments
- unset(doing)
- foreach(arg ${ARGN})
- if("x${arg}" STREQUAL "xBUILTIN_TYPES_ONLY")
- set(_CHECK_TYPE_SIZE_${arg} 1)
- unset(doing)
- elseif("x${arg}" STREQUAL "xLANGUAGE") # change to MATCHES for more keys
- set(doing "${arg}")
- set(_CHECK_TYPE_SIZE_${doing} "")
- elseif("x${doing}" STREQUAL "xLANGUAGE")
- set(_CHECK_TYPE_SIZE_${doing} "${arg}")
- unset(doing)
- else()
- message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
- endif()
- endforeach()
- if("x${doing}" MATCHES "^x(LANGUAGE)$")
- message(FATAL_ERROR "Missing argument:\n ${doing} arguments requires a value\n")
- endif()
- if(DEFINED _CHECK_TYPE_SIZE_LANGUAGE)
- if(NOT "x${_CHECK_TYPE_SIZE_LANGUAGE}" MATCHES "^x(C|CXX)$")
- message(FATAL_ERROR "Unknown language:\n ${_CHECK_TYPE_SIZE_LANGUAGE}.\nSupported languages: C, CXX.\n")
- endif()
- set(_language ${_CHECK_TYPE_SIZE_LANGUAGE})
- else()
- set(_language C)
- endif()
-
- # Optionally check for standard headers.
- if(_CHECK_TYPE_SIZE_BUILTIN_TYPES_ONLY)
- set(_builtin 0)
- else()
- set(_builtin 1)
- if(_language STREQUAL "C")
- check_include_file(sys/types.h HAVE_SYS_TYPES_H)
- check_include_file(stdint.h HAVE_STDINT_H)
- check_include_file(stddef.h HAVE_STDDEF_H)
- elseif(_language STREQUAL "CXX")
- check_include_file_cxx(sys/types.h HAVE_SYS_TYPES_H)
- check_include_file_cxx(stdint.h HAVE_STDINT_H)
- check_include_file_cxx(stddef.h HAVE_STDDEF_H)
- endif()
- endif()
- unset(_CHECK_TYPE_SIZE_BUILTIN_TYPES_ONLY)
- unset(_CHECK_TYPE_SIZE_LANGUAGE)
-
- # Compute or load the size or size map.
- set(${VARIABLE}_KEYS)
- set(_map_file ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/CheckTypeSize/${VARIABLE}.cmake)
- if(NOT DEFINED HAVE_${VARIABLE})
- __check_type_size_impl(${TYPE} ${VARIABLE} ${_map_file} ${_builtin} ${_language})
- endif()
- include(${_map_file} OPTIONAL)
- set(_map_file)
- set(_builtin)
-
- # Create preprocessor code.
- if(${VARIABLE}_KEYS)
- set(${VARIABLE}_CODE)
- set(_if if)
- foreach(key ${${VARIABLE}_KEYS})
- string(APPEND ${VARIABLE}_CODE "#${_if} defined(${key})\n# define ${VARIABLE} ${${VARIABLE}-${key}}\n")
- set(_if elif)
- endforeach()
- string(APPEND ${VARIABLE}_CODE "#else\n# error ${VARIABLE} unknown\n#endif")
- set(_if)
- elseif(${VARIABLE})
- set(${VARIABLE}_CODE "#define ${VARIABLE} ${${VARIABLE}}")
- else()
- set(${VARIABLE}_CODE "/* #undef ${VARIABLE} */")
- endif()
-endmacro()
-
-#-----------------------------------------------------------------------------
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/CheckVariableExists.cmake b/share/cmake-3.16/Modules/CheckVariableExists.cmake
deleted file mode 100644
index f4953a3..0000000
--- a/share/cmake-3.16/Modules/CheckVariableExists.cmake
+++ /dev/null
@@ -1,85 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CheckVariableExists
--------------------
-
-Check if the variable exists.
-
-.. command:: CHECK_VARIABLE_EXISTS
-
- .. code-block:: cmake
-
- CHECK_VARIABLE_EXISTS(VAR VARIABLE)
-
-
- ::
-
- VAR - the name of the variable
- VARIABLE - variable to store the result
- Will be created as an internal cache variable.
-
-
- This macro is only for ``C`` variables.
-
-The following variables may be set before calling this macro to modify
-the way the check is run:
-
-::
-
- CMAKE_REQUIRED_FLAGS = string of compile command line flags
- CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
- CMAKE_REQUIRED_LINK_OPTIONS = list of options to pass to link command
- CMAKE_REQUIRED_LIBRARIES = list of libraries to link
- CMAKE_REQUIRED_QUIET = execute quietly without messages
-#]=======================================================================]
-
-include_guard(GLOBAL)
-
-macro(CHECK_VARIABLE_EXISTS VAR VARIABLE)
- if(NOT DEFINED "${VARIABLE}")
- set(MACRO_CHECK_VARIABLE_DEFINITIONS
- "-DCHECK_VARIABLE_EXISTS=${VAR} ${CMAKE_REQUIRED_FLAGS}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${VAR}")
- endif()
- if(CMAKE_REQUIRED_LINK_OPTIONS)
- set(CHECK_VARIABLE_EXISTS_ADD_LINK_OPTIONS
- LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
- else()
- set(CHECK_VARIABLE_EXISTS_ADD_LINK_OPTIONS)
- endif()
- if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_VARIABLE_EXISTS_ADD_LIBRARIES
- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- else()
- set(CHECK_VARIABLE_EXISTS_ADD_LIBRARIES)
- endif()
- try_compile(${VARIABLE}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_ROOT}/Modules/CheckVariableExists.c
- COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- ${CHECK_VARIABLE_EXISTS_ADD_LINK_OPTIONS}
- ${CHECK_VARIABLE_EXISTS_ADD_LIBRARIES}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_VARIABLE_DEFINITIONS}
- OUTPUT_VARIABLE OUTPUT)
- if(${VARIABLE})
- set(${VARIABLE} 1 CACHE INTERNAL "Have variable ${VAR}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${VAR} - found")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the variable ${VAR} exists passed with the following output:\n"
- "${OUTPUT}\n\n")
- else()
- set(${VARIABLE} "" CACHE INTERNAL "Have variable ${VAR}")
- if(NOT CMAKE_REQUIRED_QUIET)
- message(STATUS "Looking for ${VAR} - not found")
- endif()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the variable ${VAR} exists failed with the following output:\n"
- "${OUTPUT}\n\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/Compiler/AppleClang-CXX.cmake b/share/cmake-3.16/Modules/Compiler/AppleClang-CXX.cmake
deleted file mode 100644
index 3fa6990..0000000
--- a/share/cmake-3.16/Modules/Compiler/AppleClang-CXX.cmake
+++ /dev/null
@@ -1,42 +0,0 @@
-include(Compiler/Clang)
-__compiler_clang(CXX)
-
-if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
- set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
-endif()
-
-if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0)
- set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
- set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
- set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
-
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
-endif()
-
-if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.1)
- set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
- set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
- set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
-elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.1)
- # AppleClang 5.0 knows this flag, but does not set a __cplusplus macro greater than 201103L
- set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
- set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
- set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
-endif()
-
-if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.1)
- set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++1z")
- set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z")
-endif()
-
-if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0)
- set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
-endif()
-
-if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10.0)
- set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++2a")
- set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++2a")
-endif()
-
-__compiler_check_default_language_standard(CXX 4.0 98)
diff --git a/share/cmake-3.16/Modules/Compiler/AppleClang-OBJCXX.cmake b/share/cmake-3.16/Modules/Compiler/AppleClang-OBJCXX.cmake
deleted file mode 100644
index 2c084af..0000000
--- a/share/cmake-3.16/Modules/Compiler/AppleClang-OBJCXX.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
-include(Compiler/Clang-OBJCXX)
-
-set(CMAKE_OBJCXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
-
-if(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 4.0)
- set(CMAKE_OBJCXX98_STANDARD_COMPILE_OPTION "-std=c++98")
- set(CMAKE_OBJCXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
- set(CMAKE_OBJCXX98_STANDARD__HAS_FULL_SUPPORT ON)
-
- set(CMAKE_OBJCXX11_STANDARD_COMPILE_OPTION "-std=c++11")
- set(CMAKE_OBJCXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
-endif()
-
-if(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 6.1)
- set(CMAKE_OBJCXX14_STANDARD_COMPILE_OPTION "-std=c++14")
- set(CMAKE_OBJCXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
- set(CMAKE_OBJCXX14_STANDARD__HAS_FULL_SUPPORT ON)
-elseif(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 5.1)
- # AppleClang 5.0 knows this flag, but does not set a __cplusplus macro greater than 201103L
- set(CMAKE_OBJCXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
- set(CMAKE_OBJCXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
- set(CMAKE_OBJCXX14_STANDARD__HAS_FULL_SUPPORT ON)
-endif()
-
-if (NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 6.1)
- set(CMAKE_OBJCXX17_STANDARD_COMPILE_OPTION "-std=c++1z")
- set(CMAKE_OBJCXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z")
-endif()
-
-if (NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 8.0)
- set(CMAKE_OBJCXX11_STANDARD__HAS_FULL_SUPPORT ON)
-endif()
-
-if (NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 10.0)
- set(CMAKE_OBJCXX20_STANDARD_COMPILE_OPTION "-std=c++2a")
- set(CMAKE_OBJCXX20_EXTENSION_COMPILE_OPTION "-std=gnu++2a")
-endif()
-
-__compiler_check_default_language_standard(OBJCXX 4.0 98)
diff --git a/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake b/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake
deleted file mode 100644
index 96537f8..0000000
--- a/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake
+++ /dev/null
@@ -1,136 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-# This module is shared by multiple languages and compilers; use include guard
-if (__COMPILER_CMAKE_COMMON_COMPILER_MACROS)
- return()
-endif ()
-set(__COMPILER_CMAKE_COMMON_COMPILER_MACROS 1)
-
-
-# Check that a compiler's language standard is properly detected
-# Parameters:
-# lang - Language to check
-# stdver1 - Minimum version to set a given default for
-# std1 - Default to use for compiler ver >= stdver1
-# stdverN - Minimum version to set a given default for
-# stdN - Default to use for compiler ver >= stdverN
-#
-# The order of stdverN stdN pairs passed as arguments is expected to be in
-# monotonically increasing version order.
-#
-# Note:
-# This macro can be called with multiple version / std pairs to convey that
-# newer compiler versions may use a newer standard default.
-#
-# Example:
-# To specify that compiler version 6.1 and newer defaults to C++11 while
-# 4.8 <= ver < 6.1 default to C++98, you would call:
-#
-# __compiler_check_default_language_standard(CXX 4.8 98 6.1 11)
-#
-macro(__compiler_check_default_language_standard lang stdver1 std1)
- set(__std_ver_pairs "${stdver1};${std1};${ARGN}")
- string(REGEX REPLACE " *; *" " " __std_ver_pairs "${__std_ver_pairs}")
- string(REGEX MATCHALL "[^ ]+ [^ ]+" __std_ver_pairs "${__std_ver_pairs}")
-
- # If the compiler version is below the threshold of even having CMake
- # support for language standards, then don't bother.
- if (CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL "${stdver1}")
- if (NOT CMAKE_${lang}_COMPILER_FORCED)
- if (NOT CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT)
- message(FATAL_ERROR "CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_${lang}_COMPILER_ID} (${CMAKE_${lang}_COMPILER}) version ${CMAKE_${lang}_COMPILER_VERSION}")
- endif ()
- set(CMAKE_${lang}_STANDARD_DEFAULT ${CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT})
- else ()
- list(REVERSE __std_ver_pairs)
- foreach (__std_ver_pair IN LISTS __std_ver_pairs)
- string(REGEX MATCH "([^ ]+) (.+)" __std_ver_pair "${__std_ver_pair}")
- set(__stdver ${CMAKE_MATCH_1})
- set(__std ${CMAKE_MATCH_2})
- if (CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL __stdver AND
- NOT DEFINED CMAKE_${lang}_STANDARD_DEFAULT)
- # Compiler id was forced so just guess the default standard level.
- set(CMAKE_${lang}_STANDARD_DEFAULT ${__std})
- endif ()
- unset(__std)
- unset(__stdver)
- endforeach ()
- endif ()
- endif ()
- unset(__std_ver_pairs)
-endmacro()
-
-# Define to allow compile features to be automatically determined
-macro(cmake_record_c_compile_features)
- set(_result 0)
- if(_result EQUAL 0 AND DEFINED CMAKE_C11_STANDARD_COMPILE_OPTION)
- if(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT)
- _has_compiler_features_c(11)
- else()
- _record_compiler_features_c(11)
- endif()
- unset(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT)
- endif()
- if(_result EQUAL 0 AND DEFINED CMAKE_C99_STANDARD_COMPILE_OPTION)
- if(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT)
- _has_compiler_features_c(99)
- else()
- _record_compiler_features_c(99)
- endif()
- unset(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT)
- endif()
- if(_result EQUAL 0 AND DEFINED CMAKE_C90_STANDARD_COMPILE_OPTION)
- if(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT)
- _has_compiler_features_c(90)
- else()
- _record_compiler_features_c(90)
- endif()
- unset(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT)
- endif()
-endmacro()
-
-# Define to allow compile features to be automatically determined
-macro(cmake_record_cxx_compile_features)
- set(_result 0)
- if(_result EQUAL 0 AND DEFINED CMAKE_CXX20_STANDARD_COMPILE_OPTION)
- if(CMAKE_CXX20_STANDARD__HAS_FULL_SUPPORT)
- _has_compiler_features_cxx(20)
- else()
- _record_compiler_features_cxx(20)
- endif()
- unset(CMAKE_CXX20_STANDARD__HAS_FULL_SUPPORT)
- endif()
- if(_result EQUAL 0 AND DEFINED CMAKE_CXX17_STANDARD_COMPILE_OPTION)
- if(CMAKE_CXX17_STANDARD__HAS_FULL_SUPPORT)
- _has_compiler_features_cxx(17)
- else()
- _record_compiler_features_cxx(17)
- endif()
- unset(CMAKE_CXX17_STANDARD__HAS_FULL_SUPPORT)
- endif()
- if(_result EQUAL 0 AND DEFINED CMAKE_CXX14_STANDARD_COMPILE_OPTION)
- if(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT)
- _has_compiler_features_cxx(14)
- else()
- _record_compiler_features_cxx(14)
- endif()
- unset(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT)
- endif()
- if(_result EQUAL 0 AND DEFINED CMAKE_CXX11_STANDARD_COMPILE_OPTION)
- if(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT)
- _has_compiler_features_cxx(11)
- else()
- _record_compiler_features_cxx(11)
- endif()
- unset(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT)
- endif()
- if(_result EQUAL 0 AND DEFINED CMAKE_CXX98_STANDARD_COMPILE_OPTION)
- if(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT)
- _has_compiler_features_cxx(98)
- else()
- _record_compiler_features_cxx(98)
- endif()
- unset(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT)
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/Compiler/Clang-C.cmake b/share/cmake-3.16/Modules/Compiler/Clang-C.cmake
deleted file mode 100644
index 0448965..0000000
--- a/share/cmake-3.16/Modules/Compiler/Clang-C.cmake
+++ /dev/null
@@ -1,42 +0,0 @@
-include(Compiler/Clang)
-__compiler_clang(C)
-
-cmake_policy(GET CMP0025 appleClangPolicy)
-if(APPLE AND NOT appleClangPolicy STREQUAL NEW)
- return()
-endif()
-
-if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
- if(NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
- set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90")
- set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu90")
- set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
-
- set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99")
- set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99")
- set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
-
- set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
- set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
- set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
- else()
- # clang-cl doesn't have any of these
- set(CMAKE_C90_STANDARD_COMPILE_OPTION "")
- set(CMAKE_C90_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
-
- set(CMAKE_C99_STANDARD_COMPILE_OPTION "")
- set(CMAKE_C99_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
-
- set(CMAKE_C11_STANDARD_COMPILE_OPTION "")
- set(CMAKE_C11_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
- endif()
-endif()
-
-if(NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
- __compiler_check_default_language_standard(C 3.4 99 3.6 11)
-else()
- set(CMAKE_C_STANDARD_DEFAULT "")
-endif()
diff --git a/share/cmake-3.16/Modules/Compiler/Clang-CXX.cmake b/share/cmake-3.16/Modules/Compiler/Clang-CXX.cmake
deleted file mode 100644
index 61709f8..0000000
--- a/share/cmake-3.16/Modules/Compiler/Clang-CXX.cmake
+++ /dev/null
@@ -1,130 +0,0 @@
-include(Compiler/Clang)
-__compiler_clang(CXX)
-
-if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
- set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
-endif()
-
-cmake_policy(GET CMP0025 appleClangPolicy)
-if(APPLE AND NOT appleClangPolicy STREQUAL NEW)
- return()
-endif()
-
-
-if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
- if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
- set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
- set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
- endif()
-
- if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.1)
- set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
- set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
- endif()
-
- if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
- set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
- set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
- set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4)
- set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
- set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
- set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
- endif()
-
- set(_clang_version_std17 5.0)
- if(CMAKE_SYSTEM_NAME STREQUAL "Android")
- set(_clang_version_std17 6.0)
- endif()
-
- if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}")
- set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++17")
- set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
- elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
- set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++1z")
- set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z")
- endif()
-
- if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}")
- set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++2a")
- set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++2a")
- endif()
-
- unset(_clang_version_std17)
-
- if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
- # The MSVC standard library requires C++14, and MSVC itself has no
- # notion of operating in a mode not aware of at least that standard.
- set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++14")
- set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++14")
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++14")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++14")
-
- # This clang++ is missing some features because of MSVC compatibility.
- unset(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT)
- unset(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT)
- unset(CMAKE_CXX17_STANDARD__HAS_FULL_SUPPORT)
- unset(CMAKE_CXX20_STANDARD__HAS_FULL_SUPPORT)
- endif()
-
- __compiler_check_default_language_standard(CXX 2.1 98)
-elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 3.9
- AND CMAKE_CXX_SIMULATE_VERSION VERSION_GREATER_EQUAL 19.0)
- # This version of clang-cl and the MSVC version it simulates have
- # support for -std: flags.
- set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std:c++14")
- set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std:c++14")
- if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 6.0)
- set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std:c++17")
- set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std:c++17")
- set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std:c++latest")
- set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std:c++latest")
- else()
- set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std:c++latest")
- set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std:c++latest")
- endif()
-
- __compiler_check_default_language_standard(CXX 3.9 14)
-else()
- # This version of clang-cl, or the MSVC version it simulates, does not have
- # language standards. Set these options as empty strings so the feature
- # test infrastructure can at least check to see if they are defined.
- set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "")
-
- # There is no meaningful default for this
- set(CMAKE_CXX_STANDARD_DEFAULT "")
-
- # There are no compiler modes so we only need to test features once.
- # Override the default macro for this special case. Pretend that
- # all language standards are available so that at least compilation
- # can be attempted.
- macro(cmake_record_cxx_compile_features)
- list(APPEND CMAKE_CXX_COMPILE_FEATURES
- cxx_std_98
- cxx_std_11
- cxx_std_14
- cxx_std_17
- cxx_std_20
- )
- _record_compiler_features(CXX "" CMAKE_CXX_COMPILE_FEATURES)
- endmacro()
-endif()
diff --git a/share/cmake-3.16/Modules/Compiler/Clang.cmake b/share/cmake-3.16/Modules/Compiler/Clang.cmake
deleted file mode 100644
index 5cc9328..0000000
--- a/share/cmake-3.16/Modules/Compiler/Clang.cmake
+++ /dev/null
@@ -1,107 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This module is shared by multiple languages; use include blocker.
-if(__COMPILER_CLANG)
- return()
-endif()
-set(__COMPILER_CLANG 1)
-
-include(Compiler/CMakeCommonCompilerMacros)
-
-if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC"
- OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC"
- OR "x${CMAKE_Fortran_SIMULATE_ID}" STREQUAL "xMSVC")
- macro(__compiler_clang lang)
- endmacro()
-else()
- include(Compiler/GNU)
-
- macro(__compiler_clang lang)
- __compiler_gnu(${lang})
- set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
- # Link options for PIE are already set in 'Compiler/GNU.cmake'
- # but clang may require alternate syntax on some platforms
- if (APPLE)
- set(CMAKE_${lang}_LINK_OPTIONS_PIE ${CMAKE_${lang}_COMPILE_OPTIONS_PIE} -Xlinker -pie)
- set(CMAKE_${lang}_LINK_OPTIONS_NO_PIE -Xlinker -no_pie)
- endif()
- set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
- set(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY "-fvisibility=")
- if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.4.0)
- set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "-target ")
- set(CMAKE_${lang}_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "-gcc-toolchain ")
- else()
- set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "--target=")
- set(CMAKE_${lang}_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "--gcc-toolchain=")
- endif()
- 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)
-
- string(COMPARE EQUAL "${CMAKE_${lang}_COMPILER_ID}" "AppleClang" __is_apple_clang)
-
- # '-flto=thin' available since Clang 3.9 and Xcode 8
- # * http://clang.llvm.org/docs/ThinLTO.html#clang-llvm
- # * https://trac.macports.org/wiki/XcodeVersionInfo
- set(_CMAKE_LTO_THIN TRUE)
- if(__is_apple_clang)
- if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 8.0)
- set(_CMAKE_LTO_THIN FALSE)
- endif()
- else()
- if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.9)
- set(_CMAKE_LTO_THIN FALSE)
- endif()
- endif()
-
- if(_CMAKE_LTO_THIN)
- set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto=thin")
- else()
- set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto")
- endif()
-
- if(ANDROID)
- # https://github.com/android-ndk/ndk/issues/242
- set(CMAKE_${lang}_LINK_OPTIONS_IPO "-fuse-ld=gold")
- endif()
-
- if(ANDROID OR __is_apple_clang)
- set(__ar "${CMAKE_AR}")
- set(__ranlib "${CMAKE_RANLIB}")
- else()
- set(__ar "${CMAKE_${lang}_COMPILER_AR}")
- set(__ranlib "${CMAKE_${lang}_COMPILER_RANLIB}")
- endif()
-
- set(CMAKE_${lang}_ARCHIVE_CREATE_IPO
- "\"${__ar}\" cr <TARGET> <LINK_FLAGS> <OBJECTS>"
- )
-
- set(CMAKE_${lang}_ARCHIVE_APPEND_IPO
- "\"${__ar}\" r <TARGET> <LINK_FLAGS> <OBJECTS>"
- )
-
- set(CMAKE_${lang}_ARCHIVE_FINISH_IPO
- "\"${__ranlib}\" <TARGET>"
- )
-
- set(CMAKE_PCH_EXTENSION .pch)
- if (NOT CMAKE_GENERATOR MATCHES "Xcode")
- set(CMAKE_PCH_PROLOGUE "#pragma clang system_header")
- endif()
- set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Xclang -include-pch -Xclang <PCH_FILE>)
- set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Xclang -emit-pch -Xclang -include -Xclang <PCH_HEADER>)
- endmacro()
-endif()
diff --git a/share/cmake-3.16/Modules/Compiler/Intel-C.cmake b/share/cmake-3.16/Modules/Compiler/Intel-C.cmake
deleted file mode 100644
index e9e59a2..0000000
--- a/share/cmake-3.16/Modules/Compiler/Intel-C.cmake
+++ /dev/null
@@ -1,49 +0,0 @@
-include(Compiler/Intel)
-__compiler_intel(C)
-
-string(APPEND CMAKE_C_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
-string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " -DNDEBUG")
-string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO_INIT " -DNDEBUG")
-
-set(CMAKE_DEPFILE_FLAGS_C "-MD -MT <OBJECT> -MF <DEPFILE>")
-
-if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
-
- if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 16.0.0)
- set(CMAKE_C11_STANDARD_COMPILE_OPTION "-Qstd=c11")
- set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-Qstd=c11")
- set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
- endif()
-
- if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.0)
- set(CMAKE_C90_STANDARD_COMPILE_OPTION "-Qstd=c89")
- set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-Qstd=c89")
- set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
- set(CMAKE_C99_STANDARD_COMPILE_OPTION "-Qstd=c99")
- set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-Qstd=c99")
- set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
- endif()
-
-else()
-
- if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0.0)
- set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
- set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
- set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
- endif()
-
- if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.0)
- set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c89")
- set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu89")
- set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
- set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99")
- set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99")
- set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
- endif()
-
-endif()
-
-__compiler_check_default_language_standard(C 12.0 90 15.0.0 11)
-
-set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
-set(CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
diff --git a/share/cmake-3.16/Modules/Compiler/Intel-CXX.cmake b/share/cmake-3.16/Modules/Compiler/Intel-CXX.cmake
deleted file mode 100644
index b630a6b..0000000
--- a/share/cmake-3.16/Modules/Compiler/Intel-CXX.cmake
+++ /dev/null
@@ -1,84 +0,0 @@
-include(Compiler/Intel)
-__compiler_intel(CXX)
-
-string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
-string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " -DNDEBUG")
-string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT " -DNDEBUG")
-
-set(CMAKE_DEPFILE_FLAGS_CXX "-MD -MT <OBJECT> -MF <DEPFILE>")
-
-if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
-
- if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0.0)
- set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-Qstd=c++17")
- set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-Qstd=c++17")
- endif()
-
- if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0)
- set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-Qstd=c++14")
- set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-Qstd=c++14")
- endif()
-
- if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0)
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-Qstd=c++11")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-Qstd=c++11")
- elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-Qstd=c++0x")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-Qstd=c++0x")
- endif()
-
- if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
- set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
- endif()
-
-else()
-
- if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0.0)
- set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++17")
- set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
- endif()
-
- if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 17.0)
- set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
- endif()
-
- if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.2)
- set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
- elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.0)
- set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
- endif()
-
- # Intel 15.0.2 accepts c++14 instead of c++1y, but not gnu++14
- # instead of gnu++1y. Intel 17.0.0 accepts gnu++14 too.
- if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 17.0)
- set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
- elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.0)
- set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
- endif()
-
- if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0)
- set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
- endif()
-
- if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0)
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
- elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
- endif()
-
- if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
- set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
- set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
- set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
- endif()
-
-endif()
-
-__compiler_check_default_language_standard(CXX 12.1 98)
-
-set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
-set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
diff --git a/share/cmake-3.16/Modules/Compiler/MSVC-C.cmake b/share/cmake-3.16/Modules/Compiler/MSVC-C.cmake
deleted file mode 100644
index 20787a3..0000000
--- a/share/cmake-3.16/Modules/Compiler/MSVC-C.cmake
+++ /dev/null
@@ -1,38 +0,0 @@
-# MSVC has no specific options to set C language standards, but set them as
-# empty strings anyways so the feature test infrastructure can at least check
-# to see if they are defined.
-set(CMAKE_C90_STANDARD_COMPILE_OPTION "")
-set(CMAKE_C90_EXTENSION_COMPILE_OPTION "")
-set(CMAKE_C99_STANDARD_COMPILE_OPTION "")
-set(CMAKE_C99_EXTENSION_COMPILE_OPTION "")
-set(CMAKE_C11_STANDARD_COMPILE_OPTION "")
-set(CMAKE_C11_EXTENSION_COMPILE_OPTION "")
-
-# There is no meaningful default for this
-set(CMAKE_C_STANDARD_DEFAULT "")
-
-# There are no C compiler modes so we hard-code the known compiler supported
-# features. Override the default macro for this special case. Pretend that
-# all language standards are available so that at least compilation
-# can be attempted.
-macro(cmake_record_c_compile_features)
- list(APPEND CMAKE_C_COMPILE_FEATURES
- c_std_90
- c_std_99
- c_std_11
- c_function_prototypes
- )
- list(APPEND CMAKE_C90_COMPILE_FEATURES c_std_90 c_function_prototypes)
- list(APPEND CMAKE_C99_COMPILE_FEATURES c_std_99)
- list(APPEND CMAKE_C11_COMPILE_FEATURES c_std_11)
- if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 14.0)
- list(APPEND CMAKE_C_COMPILE_FEATURES c_variadic_macros)
- list(APPEND CMAKE_C99_COMPILE_FEATURES c_variadic_macros)
- endif()
- set(_result 0) # expected by cmake_determine_compile_features
-endmacro()
-
-# /JMC "Just My Code" is only supported by MSVC 19.05 onward.
-if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 19.05)
- set(CMAKE_C_COMPILE_OPTIONS_JMC "-JMC")
-endif()
diff --git a/share/cmake-3.16/Modules/Compiler/MSVC-CXX.cmake b/share/cmake-3.16/Modules/Compiler/MSVC-CXX.cmake
deleted file mode 100644
index 915295d..0000000
--- a/share/cmake-3.16/Modules/Compiler/MSVC-CXX.cmake
+++ /dev/null
@@ -1,72 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-include(Compiler/CMakeCommonCompilerMacros)
-
-if ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0.24215.1 AND
- CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.10) OR
- CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.10.25017)
-
- # VS 2015 Update 3 and above support language standard level flags,
- # with the default and minimum level being C++14.
- set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std:c++14")
- set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std:c++14")
- if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.11.25505)
- set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
- set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
- set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std:c++17")
- set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std:c++17")
- else()
- set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std:c++latest")
- set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std:c++latest")
- endif()
- if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.12.25835)
- set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std:c++latest")
- set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std:c++latest")
- endif()
-
- __compiler_check_default_language_standard(CXX 19.0 14)
-
-elseif (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)
- # MSVC has no specific options to set language standards, but set them as
- # empty strings anyways so the feature test infrastructure can at least check
- # to see if they are defined.
- set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "")
-
- # There is no meaningful default for this
- set(CMAKE_CXX_STANDARD_DEFAULT "")
-
- # There are no compiler modes so we only need to test features once.
- # Override the default macro for this special case. Pretend that
- # all language standards are available so that at least compilation
- # can be attempted.
- macro(cmake_record_cxx_compile_features)
- list(APPEND CMAKE_CXX_COMPILE_FEATURES
- cxx_std_98
- cxx_std_11
- cxx_std_14
- cxx_std_17
- cxx_std_20
- )
- _record_compiler_features(CXX "" CMAKE_CXX_COMPILE_FEATURES)
- endmacro()
-endif()
-
-# /JMC "Just My Code" is only supported by MSVC 19.05 onward.
-if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.05)
- set(CMAKE_CXX_COMPILE_OPTIONS_JMC "-JMC")
-endif()
diff --git a/share/cmake-3.16/Modules/Compiler/NAG-Fortran.cmake b/share/cmake-3.16/Modules/Compiler/NAG-Fortran.cmake
deleted file mode 100644
index edc56fd..0000000
--- a/share/cmake-3.16/Modules/Compiler/NAG-Fortran.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
-# Help CMAKE_PARSE_IMPLICIT_LINK_INFO detect NAG Fortran object files.
-if(NOT CMAKE_Fortran_COMPILER_WORKS AND NOT CMAKE_Fortran_COMPILER_FORCED)
- message(STATUS "Detecting NAG Fortran directory")
- # Run with -dryrun to see sample "link" line.
- execute_process(
- COMMAND ${CMAKE_Fortran_COMPILER} dummy.o -dryrun
- OUTPUT_VARIABLE _dryrun
- ERROR_VARIABLE _dryrun
- )
- # Match an object file.
- string(REGEX MATCH "/[^ ]*/[^ /][^ /]*\\.o" _nag_obj "${_dryrun}")
- if(_nag_obj)
- # Parse object directory and convert to a regex.
- string(REGEX REPLACE "/[^/]*$" "" _nag_dir "${_nag_obj}")
- string(REGEX REPLACE "([][+.*()^])" "\\\\\\1" _nag_regex "${_nag_dir}")
- set(CMAKE_Fortran_IMPLICIT_OBJECT_REGEX "^${_nag_regex}/")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Detecting NAG Fortran directory with -dryrun found\n"
- " object: ${_nag_obj}\n"
- " directory: ${_nag_dir}\n"
- " regex: ${CMAKE_Fortran_IMPLICIT_OBJECT_REGEX}\n"
- "from output:\n${_dryrun}\n\n")
- message(STATUS "Detecting NAG Fortran directory - ${_nag_dir}")
- else()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Detecting NAG Fortran directory with -dryrun failed:\n${_dryrun}\n\n")
- message(STATUS "Detecting NAG Fortran directory - failed")
- endif()
-endif()
-
-set(CMAKE_Fortran_SUBMODULE_SEP ".")
-set(CMAKE_Fortran_SUBMODULE_EXT ".sub")
-set(CMAKE_Fortran_MODDIR_FLAG "-mdir ")
-set(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-PIC")
-set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixed")
-set(CMAKE_Fortran_FORMAT_FREE_FLAG "-free")
-set(CMAKE_Fortran_COMPILE_OPTIONS_PIC "-PIC")
-set(CMAKE_Fortran_COMPILE_OPTIONS_PIE "-PIC")
-set(CMAKE_Fortran_RESPONSE_FILE_LINK_FLAG "-Wl,@")
diff --git a/share/cmake-3.16/Modules/Compiler/NVIDIA-CUDA.cmake b/share/cmake-3.16/Modules/Compiler/NVIDIA-CUDA.cmake
deleted file mode 100644
index b59deda..0000000
--- a/share/cmake-3.16/Modules/Compiler/NVIDIA-CUDA.cmake
+++ /dev/null
@@ -1,48 +0,0 @@
-set(CMAKE_CUDA_COMPILER_HAS_DEVICE_LINK_PHASE True)
-set(CMAKE_CUDA_VERBOSE_FLAG "-v")
-set(CMAKE_CUDA_VERBOSE_COMPILE_FLAG "-Xcompiler=-v")
-
-if(NOT "x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
- set(CMAKE_CUDA_COMPILE_OPTIONS_PIE -Xcompiler=-fPIE)
- set(CMAKE_CUDA_COMPILE_OPTIONS_PIC -Xcompiler=-fPIC)
- set(CMAKE_CUDA_COMPILE_OPTIONS_VISIBILITY -Xcompiler=-fvisibility=)
- # CMAKE_SHARED_LIBRARY_CUDA_FLAGS is sent to the host linker so we
- # don't need to forward it through nvcc.
- set(CMAKE_SHARED_LIBRARY_CUDA_FLAGS -fPIC)
- string(APPEND CMAKE_CUDA_FLAGS_INIT " ")
- string(APPEND CMAKE_CUDA_FLAGS_DEBUG_INIT " -g")
- string(APPEND CMAKE_CUDA_FLAGS_RELEASE_INIT " -O3 -DNDEBUG")
- string(APPEND CMAKE_CUDA_FLAGS_MINSIZEREL_INIT " -O1 -DNDEBUG")
- string(APPEND CMAKE_CUDA_FLAGS_RELWITHDEBINFO_INIT " -O2 -g -DNDEBUG")
-endif()
-set(CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS -shared)
-set(CMAKE_INCLUDE_SYSTEM_FLAG_CUDA -isystem=)
-
-if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
- set(CMAKE_CUDA_STANDARD_DEFAULT "")
-else()
- set(CMAKE_CUDA_STANDARD_DEFAULT 98)
- set(CMAKE_CUDA98_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CUDA98_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CUDA11_STANDARD_COMPILE_OPTION "-std=c++11")
- set(CMAKE_CUDA11_EXTENSION_COMPILE_OPTION "-std=c++11")
-
- if (NOT CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 9.0)
- set(CMAKE_CUDA98_STANDARD_COMPILE_OPTION "-std=c++03")
- set(CMAKE_CUDA98_EXTENSION_COMPILE_OPTION "-std=c++03")
- set(CMAKE_CUDA14_STANDARD_COMPILE_OPTION "-std=c++14")
- set(CMAKE_CUDA14_EXTENSION_COMPILE_OPTION "-std=c++14")
- endif()
-
-endif()
-
-# FIXME: investigate use of --options-file.
-# Tell Makefile generator that nvcc does not support @<rspfile> syntax.
-set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_INCLUDES 0)
-set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES 0)
-set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_OBJECTS 0)
-
-if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "9.0")
- set(CMAKE_CUDA_RESPONSE_FILE_LINK_FLAG "--options-file ")
- set(CMAKE_CUDA_RESPONSE_FILE_FLAG "--options-file ")
-endif()
diff --git a/share/cmake-3.16/Modules/Compiler/QCC.cmake b/share/cmake-3.16/Modules/Compiler/QCC.cmake
deleted file mode 100644
index 9df8269..0000000
--- a/share/cmake-3.16/Modules/Compiler/QCC.cmake
+++ /dev/null
@@ -1,34 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-include(Compiler/GNU)
-
-macro(__compiler_qcc lang)
- __compiler_gnu(${lang})
-
- # http://www.qnx.com/developers/docs/6.4.0/neutrino/utilities/q/qcc.html#examples
- set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "-V")
-
- set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-Wp,-isystem,")
- set(CMAKE_DEPFILE_FLAGS_${lang} "-Wp,-MD,<DEPFILE> -Wp,-MT,<OBJECT> -Wp,-MF,<DEPFILE>")
-
- set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl,")
- set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",")
-
- set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE NO)
- set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO)
-
- set(CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "${CMAKE_${lang}_COMPILER}")
- if(CMAKE_${lang}_COMPILER_ARG1)
- separate_arguments(_COMPILER_ARGS NATIVE_COMMAND "${CMAKE_${lang}_COMPILER_ARG1}")
- list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND ${_COMPILER_ARGS})
- unset(_COMPILER_ARGS)
- endif()
- list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "-Wp,-dM" "-E" "-c" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
-
- unset(CMAKE_${lang}_COMPILE_OPTIONS_IPO)
- unset(CMAKE_${lang}_ARCHIVE_CREATE_IPO)
- unset(CMAKE_${lang}_ARCHIVE_APPEND_IPO)
- unset(CMAKE_${lang}_ARCHIVE_FINISH_IPO)
-endmacro()
diff --git a/share/cmake-3.16/Modules/Compiler/XL-Fortran.cmake b/share/cmake-3.16/Modules/Compiler/XL-Fortran.cmake
deleted file mode 100644
index c4fb097..0000000
--- a/share/cmake-3.16/Modules/Compiler/XL-Fortran.cmake
+++ /dev/null
@@ -1,20 +0,0 @@
-include(Compiler/XL)
-__compiler_xl(Fortran)
-
-set(CMAKE_Fortran_SUBMODULE_SEP "_")
-set(CMAKE_Fortran_SUBMODULE_EXT ".smod")
-
-set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-qfixed") # [=<right_margin>]
-set(CMAKE_Fortran_FORMAT_FREE_FLAG "-qfree") # [=f90|ibm]
-
-set(CMAKE_Fortran_MODDIR_FLAG "-qmoddir=")
-
-set(CMAKE_Fortran_DEFINE_FLAG "-WF,-D")
-
-# -qthreaded = Ensures that all optimizations will be thread-safe
-# -qhalt=e = Halt on error messages (rather than just severe errors)
-string(APPEND CMAKE_Fortran_FLAGS_INIT " -qthreaded -qhalt=e")
-
-# xlf: 1501-214 (W) command option E reserved for future use - ignored
-set(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE)
-set(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE)
diff --git a/share/cmake-3.16/Modules/CompilerId/VS-10.vcxproj.in b/share/cmake-3.16/Modules/CompilerId/VS-10.vcxproj.in
deleted file mode 100644
index d742274..0000000
--- a/share/cmake-3.16/Modules/CompilerId/VS-10.vcxproj.in
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|@id_platform@">
- <Configuration>Debug</Configuration>
- <Platform>@id_platform@</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{CAE07175-D007-4FC3-BFE8-47B392814159}</ProjectGuid>
- <RootNamespace>CompilerId@id_lang@</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- @id_system@
- @id_system_version@
- @id_WindowsTargetPlatformVersion@
- @id_WindowsSDKDesktopARMSupport@
- @id_CudaToolkitCustomDir@
- </PropertyGroup>
- @id_toolset_version_props@
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup>
- @id_PreferredToolArchitecture@
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- @id_toolset@
- <CharacterSet>MultiByte</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- @id_Import_props@
- </ImportGroup>
- <PropertyGroup>
- <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'">.\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'">$(Configuration)\</IntDir>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'">false</LinkIncremental>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>false</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>TurnOffAllWarnings</WarningLevel>
- <DebugInformationFormat>
- </DebugInformationFormat>
- </ClCompile>
- @id_ItemDefinitionGroup_entry@
- <Link>
- <GenerateDebugInformation>false</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- @id_Link_AdditionalDependencies@
- </Link>
- <PostBuildEvent>
- <Command>@id_PostBuildEvent_Command@</Command>
- </PostBuildEvent>
- </ItemDefinitionGroup>
- <ItemGroup>
- <@id_compile@ Include="@id_src@" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- @id_Import_targets@
- </ImportGroup>
-</Project>
diff --git a/share/cmake-3.16/Modules/DartConfiguration.tcl.in b/share/cmake-3.16/Modules/DartConfiguration.tcl.in
deleted file mode 100644
index e4513b3..0000000
--- a/share/cmake-3.16/Modules/DartConfiguration.tcl.in
+++ /dev/null
@@ -1,105 +0,0 @@
-# This file is configured by CMake automatically as DartConfiguration.tcl
-# If you choose not to use CMake, this file may be hand configured, by
-# filling in the required variables.
-
-
-# Configuration directories and files
-SourceDirectory: @PROJECT_SOURCE_DIR@
-BuildDirectory: @PROJECT_BINARY_DIR@
-
-# Where to place the cost data store
-CostDataFile: @CTEST_COST_DATA_FILE@
-
-# Site is something like machine.domain, i.e. pragmatic.crd
-Site: @SITE@
-
-# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++
-BuildName: @BUILDNAME@
-
-# Subprojects
-LabelsForSubprojects: @CTEST_LABELS_FOR_SUBPROJECTS@
-
-# Submission information
-SubmitURL: @SUBMIT_URL@
-
-# Dashboard start time
-NightlyStartTime: @NIGHTLY_START_TIME@
-
-# Commands for the build/test/submit cycle
-ConfigureCommand: "@CMAKE_COMMAND@" "@PROJECT_SOURCE_DIR@"
-MakeCommand: @MAKECOMMAND@
-DefaultCTestConfigurationType: @DEFAULT_CTEST_CONFIGURATION_TYPE@
-
-# version control
-UpdateVersionOnly: @CTEST_UPDATE_VERSION_ONLY@
-
-# CVS options
-# Default is "-d -P -A"
-CVSCommand: @CVSCOMMAND@
-CVSUpdateOptions: @CVS_UPDATE_OPTIONS@
-
-# Subversion options
-SVNCommand: @SVNCOMMAND@
-SVNOptions: @CTEST_SVN_OPTIONS@
-SVNUpdateOptions: @SVN_UPDATE_OPTIONS@
-
-# Git options
-GITCommand: @GITCOMMAND@
-GITInitSubmodules: @CTEST_GIT_INIT_SUBMODULES@
-GITUpdateOptions: @GIT_UPDATE_OPTIONS@
-GITUpdateCustom: @CTEST_GIT_UPDATE_CUSTOM@
-
-# Perforce options
-P4Command: @P4COMMAND@
-P4Client: @CTEST_P4_CLIENT@
-P4Options: @CTEST_P4_OPTIONS@
-P4UpdateOptions: @CTEST_P4_UPDATE_OPTIONS@
-P4UpdateCustom: @CTEST_P4_UPDATE_CUSTOM@
-
-# Generic update command
-UpdateCommand: @UPDATE_COMMAND@
-UpdateOptions: @UPDATE_OPTIONS@
-UpdateType: @UPDATE_TYPE@
-
-# Compiler info
-Compiler: @CMAKE_CXX_COMPILER@
-CompilerVersion: @CMAKE_CXX_COMPILER_VERSION@
-
-# Dynamic analysis (MemCheck)
-PurifyCommand: @PURIFYCOMMAND@
-ValgrindCommand: @VALGRIND_COMMAND@
-ValgrindCommandOptions: @VALGRIND_COMMAND_OPTIONS@
-MemoryCheckType: @MEMORYCHECK_TYPE@
-MemoryCheckSanitizerOptions: @MEMORYCHECK_SANITIZER_OPTIONS@
-MemoryCheckCommand: @MEMORYCHECK_COMMAND@
-MemoryCheckCommandOptions: @MEMORYCHECK_COMMAND_OPTIONS@
-MemoryCheckSuppressionFile: @MEMORYCHECK_SUPPRESSIONS_FILE@
-
-# Coverage
-CoverageCommand: @COVERAGE_COMMAND@
-CoverageExtraFlags: @COVERAGE_EXTRA_FLAGS@
-
-# Cluster commands
-SlurmBatchCommand: @SLURM_SBATCH_COMMAND@
-SlurmRunCommand: @SLURM_SRUN_COMMAND@
-
-# Testing options
-# TimeOut is the amount of time in seconds to wait for processes
-# to complete during testing. After TimeOut seconds, the
-# process will be summarily terminated.
-# Currently set to 25 minutes
-TimeOut: @DART_TESTING_TIMEOUT@
-
-# During parallel testing CTest will not start a new test if doing
-# so would cause the system load to exceed this value.
-TestLoad: @CTEST_TEST_LOAD@
-
-UseLaunchers: @CTEST_USE_LAUNCHERS@
-CurlOptions: @CTEST_CURL_OPTIONS@
-# warning, if you add new options here that have to do with submit,
-# you have to update cmCTestSubmitCommand.cxx
-
-# For CTest submissions that timeout, these options
-# specify behavior for retrying the submission
-CTestSubmitRetryDelay: @CTEST_SUBMIT_RETRY_DELAY@
-CTestSubmitRetryCount: @CTEST_SUBMIT_RETRY_COUNT@
diff --git a/share/cmake-3.16/Modules/DeployQt4.cmake b/share/cmake-3.16/Modules/DeployQt4.cmake
deleted file mode 100644
index 4a18927..0000000
--- a/share/cmake-3.16/Modules/DeployQt4.cmake
+++ /dev/null
@@ -1,400 +0,0 @@
-# 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.
-#]=======================================================================]
-
-# The functions defined in this file depend on the fixup_bundle function
-# (and others) found in 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}")
-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()
-
-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(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()
-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)
-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}
- )
-endfunction()
diff --git a/share/cmake-3.16/Modules/ExternalProject.cmake b/share/cmake-3.16/Modules/ExternalProject.cmake
deleted file mode 100644
index 66061a1..0000000
--- a/share/cmake-3.16/Modules/ExternalProject.cmake
+++ /dev/null
@@ -1,3249 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-ExternalProject
----------------
-
-.. only:: html
-
- .. contents::
-
-External Project Definition
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. command:: ExternalProject_Add
-
- The ``ExternalProject_Add()`` function creates a custom target to drive
- download, update/patch, configure, build, install and test steps of an
- external project:
-
- .. code-block:: cmake
-
- ExternalProject_Add(<name> [<option>...])
-
- The individual steps within the process can be driven independently if
- required (e.g. for CDash submission) and extra custom steps can be defined,
- along with the ability to control the step dependencies. The directory
- structure used for the management of the external project can also be
- customized. The function supports a large number of options which can be used
- to tailor the external project behavior.
-
- **Directory Options:**
- Most of the time, the default directory layout is sufficient. It is largely
- an implementation detail that the main project usually doesn't need to
- change. In some circumstances, however, control over the directory layout
- can be useful or necessary. The directory options are potentially more
- useful from the point of view that the main build can use the
- :command:`ExternalProject_Get_Property` command to retrieve their values,
- thereby allowing the main project to refer to build artifacts of the
- external project.
-
- ``PREFIX <dir>``
- Root directory for the external project. Unless otherwise noted below,
- all other directories associated with the external project will be
- created under here.
-
- ``TMP_DIR <dir>``
- Directory in which to store temporary files.
-
- ``STAMP_DIR <dir>``
- Directory in which to store the timestamps of each step. Log files from
- individual steps are also created in here unless overridden by LOG_DIR
- (see *Logging Options* below).
-
- ``LOG_DIR <dir>``
- Directory in which to store the logs of each step.
-
- ``DOWNLOAD_DIR <dir>``
- Directory in which to store downloaded files before unpacking them. This
- directory is only used by the URL download method, all other download
- methods use ``SOURCE_DIR`` directly instead.
-
- ``SOURCE_DIR <dir>``
- Source directory into which downloaded contents will be unpacked, or for
- non-URL download methods, the directory in which the repository should be
- checked out, cloned, etc. If no download method is specified, this must
- point to an existing directory where the external project has already
- been unpacked or cloned/checked out.
-
- .. note::
- If a download method is specified, any existing contents of the source
- directory may be deleted. Only the URL download method checks whether
- this directory is either missing or empty before initiating the
- download, stopping with an error if it is not empty. All other
- download methods silently discard any previous contents of the source
- directory.
-
- ``BINARY_DIR <dir>``
- Specify the build directory location. This option is ignored if
- ``BUILD_IN_SOURCE`` is enabled.
-
- ``INSTALL_DIR <dir>``
- Installation prefix to be placed in the ``<INSTALL_DIR>`` placeholder.
- This does not actually configure the external project to install to
- the given prefix. That must be done by passing appropriate arguments
- to the external project configuration step, e.g. using ``<INSTALL_DIR>``.
-
- If any of the above ``..._DIR`` options are not specified, their defaults
- are computed as follows. If the ``PREFIX`` option is given or the
- ``EP_PREFIX`` directory property is set, then an external project is built
- and installed under the specified prefix::
-
- TMP_DIR = <prefix>/tmp
- STAMP_DIR = <prefix>/src/<name>-stamp
- DOWNLOAD_DIR = <prefix>/src
- SOURCE_DIR = <prefix>/src/<name>
- BINARY_DIR = <prefix>/src/<name>-build
- INSTALL_DIR = <prefix>
- LOG_DIR = <STAMP_DIR>
-
- Otherwise, if the ``EP_BASE`` directory property is set then components
- of an external project are stored under the specified base::
-
- TMP_DIR = <base>/tmp/<name>
- STAMP_DIR = <base>/Stamp/<name>
- DOWNLOAD_DIR = <base>/Download/<name>
- SOURCE_DIR = <base>/Source/<name>
- BINARY_DIR = <base>/Build/<name>
- INSTALL_DIR = <base>/Install/<name>
- LOG_DIR = <STAMP_DIR>
-
- If no ``PREFIX``, ``EP_PREFIX``, or ``EP_BASE`` is specified, then the
- default is to set ``PREFIX`` to ``<name>-prefix``. Relative paths are
- interpreted with respect to :variable:`CMAKE_CURRENT_BINARY_DIR` at the
- point where ``ExternalProject_Add()`` is called.
-
- **Download Step Options:**
- A download method can be omitted if the ``SOURCE_DIR`` option is used to
- point to an existing non-empty directory. Otherwise, one of the download
- methods below must be specified (multiple download methods should not be
- given) or a custom ``DOWNLOAD_COMMAND`` provided.
-
- ``DOWNLOAD_COMMAND <cmd>...``
- Overrides the command used for the download step
- (:manual:`generator expressions <cmake-generator-expressions(7)>` are
- supported). If this option is specified, all other download options will
- be ignored. Providing an empty string for ``<cmd>`` effectively disables
- the download step.
-
- *URL Download*
- ``URL <url1> [<url2>...]``
- List of paths and/or URL(s) of the external project's source. When more
- than one URL is given, they are tried in turn until one succeeds. A URL
- may be an ordinary path in the local file system (in which case it
- must be the only URL provided) or any downloadable URL supported by the
- :command:`file(DOWNLOAD)` command. A local filesystem path may refer to
- either an existing directory or to an archive file, whereas a URL is
- expected to point to a file which can be treated as an archive. When an
- archive is used, it will be unpacked automatically unless the
- ``DOWNLOAD_NO_EXTRACT`` option is set to prevent it. The archive type
- is determined by inspecting the actual content rather than using logic
- based on the file extension.
-
- ``URL_HASH <algo>=<hashValue>``
- Hash of the archive file to be downloaded. The argument should be of
- the form ``<algo>=<hashValue>`` where ``algo`` can be any of the hashing
- algorithms supported by the :command:`file()` command. Specifying this
- option is strongly recommended for URL downloads, as it ensures the
- integrity of the downloaded content. It is also used as a check for a
- previously downloaded file, allowing connection to the remote location
- to be avoided altogether if the local directory already has a file from
- an earlier download that matches the specified hash.
-
- ``URL_MD5 <md5>``
- Equivalent to ``URL_HASH MD5=<md5>``.
-
- ``DOWNLOAD_NAME <fname>``
- File name to use for the downloaded file. If not given, the end of the
- URL is used to determine the file name. This option is rarely needed,
- the default name is generally suitable and is not normally used outside
- of code internal to the ``ExternalProject`` module.
-
- ``DOWNLOAD_NO_EXTRACT <bool>``
- Allows the extraction part of the download step to be disabled by
- passing a boolean true value for this option. If this option is not
- given, the downloaded contents will be unpacked automatically if
- required. If extraction has been disabled, the full path to the
- downloaded file is available as ``<DOWNLOADED_FILE>`` in subsequent
- steps or as the property ``DOWNLOADED_FILE`` with the
- :command:`ExternalProject_Get_Property` command.
-
- ``DOWNLOAD_NO_PROGRESS <bool>``
- Can be used to disable logging the download progress. If this option is
- not given, download progress messages will be logged.
-
- ``TIMEOUT <seconds>``
- Maximum time allowed for file download operations.
-
- ``HTTP_USERNAME <username>``
- Username for the download operation if authentication is required.
-
- ``HTTP_PASSWORD <password>``
- Password for the download operation if authentication is required.
-
- ``HTTP_HEADER <header1> [<header2>...]``
- Provides an arbitrary list of HTTP headers for the download operation.
- This can be useful for accessing content in systems like AWS, etc.
-
- ``TLS_VERIFY <bool>``
- Specifies whether certificate verification should be performed for
- https URLs. If this option is not provided, the default behavior is
- determined by the ``CMAKE_TLS_VERIFY`` variable (see
- :command:`file(DOWNLOAD)`). If that is also not set, certificate
- verification will not be performed. In situations where ``URL_HASH``
- cannot be provided, this option can be an alternative verification
- measure.
-
- ``TLS_CAINFO <file>``
- Specify a custom certificate authority file to use if ``TLS_VERIFY``
- is enabled. If this option is not specified, the value of the
- ``CMAKE_TLS_CAINFO`` variable will be used instead (see
- :command:`file(DOWNLOAD)`)
-
- ``NETRC <level>``
- Specify whether the ``.netrc`` file is to be used for operation.
- If this option is not specified, the value of the ``CMAKE_NETRC``
- variable will be used instead (see :command:`file(DOWNLOAD)`)
- Valid levels are:
-
- ``IGNORED``
- The ``.netrc`` file is ignored.
- This is the default.
- ``OPTIONAL``
- The ``.netrc`` file is optional, and information in the URL
- is preferred. The file will be scanned to find which ever
- information is not specified in the URL.
- ``REQUIRED``
- The ``.netrc`` file is required, and information in the URL
- is ignored.
-
- ``NETRC_FILE <file>``
- Specify an alternative ``.netrc`` file to the one in your home directory
- if the ``NETRC`` level is ``OPTIONAL`` or ``REQUIRED``. If this option
- is not specified, the value of the ``CMAKE_NETRC_FILE`` variable will
- be used instead (see :command:`file(DOWNLOAD)`)
-
- *Git*
- NOTE: A git version of 1.6.5 or later is required if this download method
- is used.
-
- ``GIT_REPOSITORY <url>``
- URL of the git repository. Any URL understood by the ``git`` command
- may be used.
-
- ``GIT_TAG <tag>``
- Git branch name, tag or commit hash. Note that branch names and tags
- should generally be specified as remote names (i.e. ``origin/myBranch``
- rather than simply ``myBranch``). This ensures that if the remote end
- has its tag moved or branch rebased or history rewritten, the local
- clone will still be updated correctly. In general, however, specifying
- a commit hash should be preferred for a number of reasons:
-
- - If the local clone already has the commit corresponding to the hash,
- no ``git fetch`` needs to be performed to check for changes each time
- CMake is re-run. This can result in a significant speed up if many
- external projects are being used.
- - Using a specific git hash ensures that the main project's own history
- is fully traceable to a specific point in the external project's
- evolution. If a branch or tag name is used instead, then checking out
- a specific commit of the main project doesn't necessarily pin the
- whole build to a specific point in the life of the external project.
- The lack of such deterministic behavior makes the main project lose
- traceability and repeatability.
-
- If ``GIT_SHALLOW`` is enabled then ``GIT_TAG`` works only with
- branch names and tags. A commit hash is not allowed.
-
- ``GIT_REMOTE_NAME <name>``
- The optional name of the remote. If this option is not specified, it
- defaults to ``origin``.
-
- ``GIT_SUBMODULES <module>...``
- Specific git submodules that should also be updated. If this option is
- not provided, all git submodules will be updated. When :policy:`CMP0097`
- is set to ``NEW`` if this value is set to an empty string then no submodules
- are initialized or updated.
-
- ``GIT_SHALLOW <bool>``
- When this option is enabled, the ``git clone`` operation will be given
- the ``--depth 1`` option. This performs a shallow clone, which avoids
- downloading the whole history and instead retrieves just the commit
- denoted by the ``GIT_TAG`` option.
-
- ``GIT_PROGRESS <bool>``
- When enabled, this option instructs the ``git clone`` operation to
- report its progress by passing it the ``--progress`` option. Without
- this option, the clone step for large projects may appear to make the
- build stall, since nothing will be logged until the clone operation
- finishes. While this option can be used to provide progress to prevent
- the appearance of the build having stalled, it may also make the build
- overly noisy if lots of external projects are used.
-
- ``GIT_CONFIG <option1> [<option2>...]``
- Specify a list of config options to pass to ``git clone``. Each option
- listed will be transformed into its own ``--config <option>`` on the
- ``git clone`` command line, with each option required to be in the
- form ``key=value``.
-
- *Subversion*
- ``SVN_REPOSITORY <url>``
- URL of the Subversion repository.
-
- ``SVN_REVISION -r<rev>``
- Revision to checkout from the Subversion repository.
-
- ``SVN_USERNAME <username>``
- Username for the Subversion checkout and update.
-
- ``SVN_PASSWORD <password>``
- Password for the Subversion checkout and update.
-
- ``SVN_TRUST_CERT <bool>``
- Specifies whether to trust the Subversion server site certificate. If
- enabled, the ``--trust-server-cert`` option is passed to the ``svn``
- checkout and update commands.
-
- *Mercurial*
- ``HG_REPOSITORY <url>``
- URL of the mercurial repository.
-
- ``HG_TAG <tag>``
- Mercurial branch name, tag or commit id.
-
- *CVS*
- ``CVS_REPOSITORY <cvsroot>``
- CVSROOT of the CVS repository.
-
- ``CVS_MODULE <mod>``
- Module to checkout from the CVS repository.
-
- ``CVS_TAG <tag>``
- Tag to checkout from the CVS repository.
-
- **Update/Patch Step Options:**
- Whenever CMake is re-run, by default the external project's sources will be
- updated if the download method supports updates (e.g. a git repository
- would be checked if the ``GIT_TAG`` does not refer to a specific commit).
-
- ``UPDATE_COMMAND <cmd>...``
- Overrides the download method's update step with a custom command.
- The command may use
- :manual:`generator expressions <cmake-generator-expressions(7)>`.
-
- ``UPDATE_DISCONNECTED <bool>``
- When enabled, this option causes the update step to be skipped. It does
- not, however, prevent the download step. The update step can still be
- added as a step target (see :command:`ExternalProject_Add_StepTargets`)
- and called manually. This is useful if you want to allow developers to
- build the project when disconnected from the network (the network may
- still be needed for the download step though).
-
- When this option is present, it is generally advisable to make the value
- a cache variable under the developer's control rather than hard-coding
- it. If this option is not present, the default value is taken from the
- ``EP_UPDATE_DISCONNECTED`` directory property. If that is also not
- defined, updates are performed as normal. The ``EP_UPDATE_DISCONNECTED``
- directory property is intended as a convenience for controlling the
- ``UPDATE_DISCONNECTED`` behavior for an entire section of a project's
- directory hierarchy and may be a more convenient method of giving
- developers control over whether or not to perform updates (assuming the
- project also provides a cache variable or some other convenient method
- for setting the directory property).
-
- ``PATCH_COMMAND <cmd>...``
- Specifies a custom command to patch the sources after an update. By
- default, no patch command is defined. Note that it can be quite difficult
- to define an appropriate patch command that performs robustly, especially
- for download methods such as git where changing the ``GIT_TAG`` will not
- discard changes from a previous patch, but the patch command will be
- called again after updating to the new tag.
-
- **Configure Step Options:**
- The configure step is run after the download and update steps. By default,
- the external project is assumed to be a CMake project, but this can be
- overridden if required.
-
- ``CONFIGURE_COMMAND <cmd>...``
- The default configure command runs CMake with options based on the main
- project. For non-CMake external projects, the ``CONFIGURE_COMMAND``
- option must be used to override this behavior
- (:manual:`generator expressions <cmake-generator-expressions(7)>` are
- supported). For projects that require no configure step, specify this
- option with an empty string as the command to execute.
-
- ``CMAKE_COMMAND /.../cmake``
- Specify an alternative cmake executable for the configure step (use an
- absolute path). This is generally not recommended, since it is
- usually desirable to use the same CMake version throughout the whole
- build. This option is ignored if a custom configure command has been
- specified with ``CONFIGURE_COMMAND``.
-
- ``CMAKE_GENERATOR <gen>``
- Override the CMake generator used for the configure step. Without this
- option, the same generator as the main build will be used. This option is
- ignored if a custom configure command has been specified with the
- ``CONFIGURE_COMMAND`` option.
-
- ``CMAKE_GENERATOR_PLATFORM <platform>``
- Pass a generator-specific platform name to the CMake command (see
- :variable:`CMAKE_GENERATOR_PLATFORM`). It is an error to provide this
- option without the ``CMAKE_GENERATOR`` option.
-
- ``CMAKE_GENERATOR_TOOLSET <toolset>``
- Pass a generator-specific toolset name to the CMake command (see
- :variable:`CMAKE_GENERATOR_TOOLSET`). It is an error to provide this
- option without the ``CMAKE_GENERATOR`` option.
-
- ``CMAKE_GENERATOR_INSTANCE <instance>``
- Pass a generator-specific instance selection to the CMake command (see
- :variable:`CMAKE_GENERATOR_INSTANCE`). It is an error to provide this
- option without the ``CMAKE_GENERATOR`` option.
-
- ``CMAKE_ARGS <arg>...``
- The specified arguments are passed to the ``cmake`` command line. They
- can be any argument the ``cmake`` command understands, not just cache
- values defined by ``-D...`` arguments (see also
- :manual:`CMake Options <cmake(1)>`). In addition, arguments may use
- :manual:`generator expressions <cmake-generator-expressions(7)>`.
-
- ``CMAKE_CACHE_ARGS <arg>...``
- This is an alternate way of specifying cache variables where command line
- length issues may become a problem. The arguments are expected to be in
- the form ``-Dvar:STRING=value``, which are then transformed into
- CMake :command:`set` commands with the ``FORCE`` option used. These
- ``set()`` commands are written to a pre-load script which is then applied
- using the :manual:`cmake -C <cmake(1)>` command line option. Arguments
- may use :manual:`generator expressions <cmake-generator-expressions(7)>`.
-
- ``CMAKE_CACHE_DEFAULT_ARGS <arg>...``
- This is the same as the ``CMAKE_CACHE_ARGS`` option except the ``set()``
- commands do not include the ``FORCE`` keyword. This means the values act
- as initial defaults only and will not override any variables already set
- from a previous run. Use this option with care, as it can lead to
- different behavior depending on whether the build starts from a fresh
- build directory or re-uses previous build contents.
-
- If the CMake generator is the ``Green Hills MULTI`` and not overridden then
- the original project's settings for the GHS toolset and target system
- customization cache variables are propagated into the external project.
-
- ``SOURCE_SUBDIR <dir>``
- When no ``CONFIGURE_COMMAND`` option is specified, the configure step
- assumes the external project has a ``CMakeLists.txt`` file at the top of
- its source tree (i.e. in ``SOURCE_DIR``). The ``SOURCE_SUBDIR`` option
- can be used to point to an alternative directory within the source tree
- to use as the top of the CMake source tree instead. This must be a
- relative path and it will be interpreted as being relative to
- ``SOURCE_DIR``. When ``BUILD_IN_SOURCE 1`` is specified, the
- ``BUILD_COMMAND`` is used to point to an alternative directory within the
- source tree.
-
- **Build Step Options:**
- If the configure step assumed the external project uses CMake as its build
- system, the build step will also. Otherwise, the build step will assume a
- Makefile-based build and simply run ``make`` with no arguments as the
- default build step. This can be overridden with custom build commands if
- required.
-
- ``BUILD_COMMAND <cmd>...``
- Overrides the default build command
- (:manual:`generator expressions <cmake-generator-expressions(7)>` are
- supported). If this option is not given, the default build command will
- be chosen to integrate with the main build in the most appropriate way
- (e.g. using recursive ``make`` for Makefile generators or
- ``cmake --build`` if the project uses a CMake build). This option can be
- specified with an empty string as the command to make the build step do
- nothing.
-
- ``BUILD_IN_SOURCE <bool>``
- When this option is enabled, the build will be done directly within the
- external project's source tree. This should generally be avoided, the use
- of a separate build directory is usually preferred, but it can be useful
- when the external project assumes an in-source build. The ``BINARY_DIR``
- option should not be specified if building in-source.
-
- ``BUILD_ALWAYS <bool>``
- Enabling this option forces the build step to always be run. This can be
- the easiest way to robustly ensure that the external project's own build
- dependencies are evaluated rather than relying on the default
- success timestamp-based method. This option is not normally needed unless
- developers are expected to modify something the external project's build
- depends on in a way that is not detectable via the step target
- dependencies (e.g. ``SOURCE_DIR`` is used without a download method and
- developers might modify the sources in ``SOURCE_DIR``).
-
- ``BUILD_BYPRODUCTS <file>...``
- Specifies files that will be generated by the build command but which
- might or might not have their modification time updated by subsequent
- builds. These ultimately get passed through as ``BYPRODUCTS`` to the
- build step's own underlying call to :command:`add_custom_command`.
-
- **Install Step Options:**
- If the configure step assumed the external project uses CMake as its build
- system, the install step will also. Otherwise, the install step will assume
- a Makefile-based build and simply run ``make install`` as the default build
- step. This can be overridden with custom install commands if required.
-
- ``INSTALL_COMMAND <cmd>...``
- The external project's own install step is invoked as part of the main
- project's *build*. It is done after the external project's build step
- and may be before or after the external project's test step (see the
- ``TEST_BEFORE_INSTALL`` option below). The external project's install
- rules are not part of the main project's install rules, so if anything
- from the external project should be installed as part of the main build,
- these need to be specified in the main build as additional
- :command:`install` commands. The default install step builds the
- ``install`` target of the external project, but this can be overridden
- with a custom command using this option
- (:manual:`generator expressions <cmake-generator-expressions(7)>` are
- supported). Passing an empty string as the ``<cmd>`` makes the install
- step do nothing.
-
- **Test Step Options:**
- The test step is only defined if at least one of the following ``TEST_...``
- options are provided.
-
- ``TEST_COMMAND <cmd>...``
- Overrides the default test command
- (:manual:`generator expressions <cmake-generator-expressions(7)>` are
- supported). If this option is not given, the default behavior of the test
- step is to build the external project's own ``test`` target. This option
- can be specified with ``<cmd>`` as an empty string, which allows the test
- step to still be defined, but it will do nothing. Do not specify any of
- the other ``TEST_...`` options if providing an empty string as the test
- command, but prefer to omit all ``TEST_...`` options altogether if the
- test step target is not needed.
-
- ``TEST_BEFORE_INSTALL <bool>``
- When this option is enabled, the test step will be executed before the
- install step. The default behavior is for the test step to run after the
- install step.
-
- ``TEST_AFTER_INSTALL <bool>``
- This option is mainly useful as a way to indicate that the test step is
- desired but all default behavior is sufficient. Specifying this option
- with a boolean true value ensures the test step is defined and that it
- comes after the install step. If both ``TEST_BEFORE_INSTALL`` and
- ``TEST_AFTER_INSTALL`` are enabled, the latter is silently ignored.
-
- ``TEST_EXCLUDE_FROM_MAIN <bool>``
- If enabled, the main build's default ALL target will not depend on the
- test step. This can be a useful way of ensuring the test step is defined
- but only gets invoked when manually requested.
-
- **Output Logging Options:**
- Each of the following ``LOG_...`` options can be used to wrap the relevant
- step in a script to capture its output to files. The log files will be
- created in ``LOG_DIR`` if supplied or otherwise the ``STAMP_DIR``
- directory with step-specific file names.
-
- ``LOG_DOWNLOAD <bool>``
- When enabled, the output of the download step is logged to files.
-
- ``LOG_UPDATE <bool>``
- When enabled, the output of the update step is logged to files.
-
- ``LOG_PATCH <bool>``
- When enabled, the output of the patch step is logged to files.
-
- ``LOG_CONFIGURE <bool>``
- When enabled, the output of the configure step is logged to files.
-
- ``LOG_BUILD <bool>``
- When enabled, the output of the build step is logged to files.
-
- ``LOG_INSTALL <bool>``
- When enabled, the output of the install step is logged to files.
-
- ``LOG_TEST <bool>``
- When enabled, the output of the test step is logged to files.
-
- ``LOG_MERGED_STDOUTERR <bool>``
- When enabled, stdout and stderr will be merged for any step whose
- output is being logged to files.
-
- ``LOG_OUTPUT_ON_FAILURE <bool>``
- This option only has an effect if at least one of the other ``LOG_<step>``
- options is enabled. If an error occurs for a step which has logging to
- file enabled, that step's output will be printed to the console if
- ``LOG_OUTPUT_ON_FAILURE`` is set to true. For cases where a large amount
- of output is recorded, just the end of that output may be printed to the
- console.
-
- **Terminal Access Options:**
- Steps can be given direct access to the terminal in some cases. Giving a
- step access to the terminal may allow it to receive terminal input if
- required, such as for authentication details not provided by other options.
- With the :generator:`Ninja` generator, these options place the steps in the
- ``console`` :prop_gbl:`job pool <JOB_POOLS>`. Each step can be given access
- to the terminal individually via the following options:
-
- ``USES_TERMINAL_DOWNLOAD <bool>``
- Give the download step access to the terminal.
-
- ``USES_TERMINAL_UPDATE <bool>``
- Give the update step access to the terminal.
-
- ``USES_TERMINAL_CONFIGURE <bool>``
- Give the configure step access to the terminal.
-
- ``USES_TERMINAL_BUILD <bool>``
- Give the build step access to the terminal.
-
- ``USES_TERMINAL_INSTALL <bool>``
- Give the install step access to the terminal.
-
- ``USES_TERMINAL_TEST <bool>``
- Give the test step access to the terminal.
-
- **Target Options:**
- ``DEPENDS <targets>...``
- Specify other targets on which the external project depends. The other
- targets will be brought up to date before any of the external project's
- steps are executed. Because the external project uses additional custom
- targets internally for each step, the ``DEPENDS`` option is the most
- convenient way to ensure all of those steps depend on the other targets.
- Simply doing
- :command:`add_dependencies(\<name\> \<targets\>) <add_dependencies>` will
- not make any of the steps dependent on ``<targets>``.
-
- ``EXCLUDE_FROM_ALL <bool>``
- When enabled, this option excludes the external project from the default
- ALL target of the main build.
-
- ``STEP_TARGETS <step-target>...``
- Generate custom targets for the specified steps. This is required if the
- steps need to be triggered manually or if they need to be used as
- dependencies of other targets. If this option is not specified, the
- default value is taken from the ``EP_STEP_TARGETS`` directory property.
- See :command:`ExternalProject_Add_Step` below for further discussion of
- the effects of this option.
-
- ``INDEPENDENT_STEP_TARGETS <step-target>...``
- Generate custom targets for the specified steps and prevent these targets
- from having the usual dependencies applied to them. If this option is not
- specified, the default value is taken from the
- ``EP_INDEPENDENT_STEP_TARGETS`` directory property. This option is mostly
- useful for allowing individual steps to be driven independently, such as
- for a CDash setup where each step should be initiated and reported
- individually rather than as one whole build. See
- :command:`ExternalProject_Add_Step` below for further discussion of the
- effects of this option.
-
- **Miscellaneous Options:**
- ``LIST_SEPARATOR <sep>``
- For any of the various ``..._COMMAND`` options, replace ``;`` with
- ``<sep>`` in the specified command lines. This can be useful where list
- variables may be given in commands where they should end up as
- space-separated arguments (``<sep>`` would be a single space character
- string in this case).
-
- ``COMMAND <cmd>...``
- Any of the other ``..._COMMAND`` options can have additional commands
- appended to them by following them with as many ``COMMAND ...`` options
- as needed
- (:manual:`generator expressions <cmake-generator-expressions(7)>` are
- supported). For example:
-
- .. code-block:: cmake
-
- ExternalProject_Add(example
- ... # Download options, etc.
- BUILD_COMMAND ${CMAKE_COMMAND} -E echo "Starting $<CONFIG> build"
- COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG>
- COMMAND ${CMAKE_COMMAND} -E echo "$<CONFIG> build complete"
- )
-
- It should also be noted that each build step is created via a call to
- :command:`ExternalProject_Add_Step`. See that command's documentation for the
- automatic substitutions that are supported for some options.
-
-Obtaining Project Properties
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. command:: ExternalProject_Get_Property
-
- The ``ExternalProject_Get_Property()`` function retrieves external project
- target properties:
-
- .. code-block:: cmake
-
- ExternalProject_Get_Property(<name> <prop1> [<prop2>...])
-
- The function stores property values in variables of the same name. Property
- names correspond to the keyword argument names of ``ExternalProject_Add()``.
- For example, the source directory might be retrieved like so:
-
- .. code-block:: cmake
-
- ExternalProject_Get_property(myExtProj SOURCE_DIR)
- message("Source dir of myExtProj = ${SOURCE_DIR}")
-
-Explicit Step Management
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-The ``ExternalProject_Add()`` function on its own is often sufficient for
-incorporating an external project into the main build. Certain scenarios
-require additional work to implement desired behavior, such as adding in a
-custom step or making steps available as manually triggerable targets. The
-``ExternalProject_Add_Step()``, ``ExternalProject_Add_StepTargets()`` and
-``ExternalProject_Add_StepDependencies`` functions provide the lower level
-control needed to implement such step-level capabilities.
-
-.. command:: ExternalProject_Add_Step
-
- The ``ExternalProject_Add_Step()`` function specifies an additional custom
- step for an external project defined by an earlier call to
- :command:`ExternalProject_Add`:
-
- .. code-block:: cmake
-
- ExternalProject_Add_Step(<name> <step> [<option>...])
-
- ``<name>`` is the same as the name passed to the original call to
- :command:`ExternalProject_Add`. The specified ``<step>`` must not be one of
- the pre-defined steps (``mkdir``, ``download``, ``update``, ``skip-update``,
- ``patch``, ``configure``, ``build``, ``install`` or ``test``). The supported
- options are:
-
- ``COMMAND <cmd>...``
- The command line to be executed by this custom step
- (:manual:`generator expressions <cmake-generator-expressions(7)>` are
- supported). This option can be repeated multiple times to specify multiple
- commands to be executed in order.
-
- ``COMMENT "<text>..."``
- Text to be printed when the custom step executes.
-
- ``DEPENDEES <step>...``
- Other steps (custom or pre-defined) on which this step depends.
-
- ``DEPENDERS <step>...``
- Other steps (custom or pre-defined) that depend on this new custom step.
-
- ``DEPENDS <file>...``
- Files on which this custom step depends.
-
- ``BYPRODUCTS <file>...``
- Files that will be generated by this custom step but which might or might
- not have their modification time updated by subsequent builds. This list of
- files will ultimately be passed through as the ``BYPRODUCTS`` option to the
- :command:`add_custom_command` used to implement the custom step internally.
-
- ``ALWAYS <bool>``
- When enabled, this option specifies that the custom step should always be
- run (i.e. that it is always considered out of date).
-
- ``EXCLUDE_FROM_MAIN <bool>``
- When enabled, this option specifies that the external project's main target
- does not depend on the custom step.
-
- ``WORKING_DIRECTORY <dir>``
- Specifies the working directory to set before running the custom step's
- command. If this option is not specified, the directory will be the value
- of the :variable:`CMAKE_CURRENT_BINARY_DIR` at the point where
- ``ExternalProject_Add_Step()`` was called.
-
- ``LOG <bool>``
- If set, this causes the output from the custom step to be captured to files
- in the external project's ``LOG_DIR`` if supplied or ``STAMP_DIR``.
-
- ``USES_TERMINAL <bool>``
- If enabled, this gives the custom step direct access to the terminal if
- possible.
-
- The command line, comment, working directory and byproducts of every
- standard and custom step are processed to replace the tokens
- ``<SOURCE_DIR>``, ``<SOURCE_SUBDIR>``, ``<BINARY_DIR>``, ``<INSTALL_DIR>``
- ``<TMP_DIR>``, ``<DOWNLOAD_DIR>`` and ``<DOWNLOADED_FILE>`` with their
- corresponding property values defined in the original call to
- :command:`ExternalProject_Add`.
-
-.. command:: ExternalProject_Add_StepTargets
-
- The ``ExternalProject_Add_StepTargets()`` function generates targets for the
- steps listed. The name of each created target will be of the form
- ``<name>-<step>``:
-
- .. code-block:: cmake
-
- ExternalProject_Add_StepTargets(<name> [NO_DEPENDS] <step1> [<step2>...])
-
- Creating a target for a step allows it to be used as a dependency of another
- target or to be triggered manually. Having targets for specific steps also
- allows them to be driven independently of each other by specifying targets on
- build command lines. For example, you may be submitting to a sub-project
- based dashboard where you want to drive the configure portion of the build,
- then submit to the dashboard, followed by the build portion, followed
- by tests. If you invoke a custom target that depends on a step halfway
- through the step dependency chain, then all the previous steps will also run
- to ensure everything is up to date.
-
- If the ``NO_DEPENDS`` option is specified, the step target will not depend on
- the dependencies of the external project (i.e. on any dependencies of the
- ``<name>`` custom target created by :command:`ExternalProject_Add`). This is
- usually safe for the ``download``, ``update`` and ``patch`` steps, since they
- do not typically require that the dependencies are updated and built. Using
- ``NO_DEPENDS`` for any of the other pre-defined steps, however, may break
- parallel builds. Only use ``NO_DEPENDS`` where it is certain that the named
- steps genuinely do not have dependencies. For custom steps, consider whether
- or not the custom commands require the dependencies to be configured, built
- and installed.
-
- Internally, :command:`ExternalProject_Add` calls
- :command:`ExternalProject_Add_Step` to create each step. If any
- ``STEP_TARGETS`` or ``INDEPENDENT_STEP_TARGETS`` were specified, then
- ``ExternalProject_Add_StepTargets()`` will also be called after
- :command:`ExternalProject_Add_Step`. ``INDEPENDENT_STEP_TARGETS`` have the
- ``NO_DEPENDS`` option set, whereas ``STEP_TARGETS`` do not. Other than that,
- the two options result in ``ExternalProject_Add_StepTargets()`` being called
- in the same way. Even if a step is not mentioned in either of those two
- options, ``ExternalProject_Add_StepTargets()`` can still be called later to
- manually define a target for the step.
-
- The ``STEP_TARGETS`` and ``INDEPENDENT_STEP_TARGETS`` options for
- :command:`ExternalProject_Add` are generally the easiest way to ensure
- targets are created for specific steps of interest. For custom steps,
- ``ExternalProject_Add_StepTargets()`` must be called explicitly if a target
- should also be created for that custom step. An alternative to these two
- options is to populate the ``EP_STEP_TARGETS`` and
- ``EP_INDEPENDENT_STEP_TARGETS`` directory properties. These act as defaults
- for the step target options and can save having to repeatedly specify the
- same set of step targets when multiple external projects are being defined.
-
-.. command:: ExternalProject_Add_StepDependencies
-
- The ``ExternalProject_Add_StepDependencies()`` function can be used to add
- dependencies to a step. The dependencies added must be targets CMake already
- knows about (these can be ordinary executable or library targets, custom
- targets or even step targets of another external project):
-
- .. code-block:: cmake
-
- ExternalProject_Add_StepDependencies(<name> <step> <target1> [<target2>...])
-
- This function takes care to set both target and file level dependencies and
- will ensure that parallel builds will not break. It should be used instead of
- :command:`add_dependencies` whenever adding a dependency for some of the step
- targets generated by the ``ExternalProject`` module.
-
-Examples
-^^^^^^^^
-
-The following example shows how to download and build a hypothetical project
-called *FooBar* from github:
-
-.. code-block:: cmake
-
- include(ExternalProject)
- ExternalProject_Add(foobar
- GIT_REPOSITORY git@github.com:FooCo/FooBar.git
- GIT_TAG origin/release/1.2.3
- )
-
-For the sake of the example, also define a second hypothetical external project
-called *SecretSauce*, which is downloaded from a web server. Two URLs are given
-to take advantage of a faster internal network if available, with a fallback to
-a slower external server. The project is a typical ``Makefile`` project with no
-configure step, so some of the default commands are overridden. The build is
-only required to build the *sauce* target:
-
-.. code-block:: cmake
-
- find_program(MAKE_EXE NAMES gmake nmake make)
- ExternalProject_Add(secretsauce
- URL http://intranet.somecompany.com/artifacts/sauce-2.7.tgz
- https://www.somecompany.com/downloads/sauce-2.7.zip
- URL_HASH MD5=d41d8cd98f00b204e9800998ecf8427e
- CONFIGURE_COMMAND ""
- BUILD_COMMAND ${MAKE_EXE} sauce
- )
-
-Suppose the build step of ``secretsauce`` requires that ``foobar`` must already
-be built. This could be enforced like so:
-
-.. code-block:: cmake
-
- ExternalProject_Add_StepDependencies(secretsauce build foobar)
-
-Another alternative would be to create a custom target for ``foobar``'s build
-step and make ``secretsauce`` depend on that rather than the whole ``foobar``
-project. This would mean ``foobar`` only needs to be built, it doesn't need to
-run its install or test steps before ``secretsauce`` can be built. The
-dependency can also be defined along with the ``secretsauce`` project:
-
-.. code-block:: cmake
-
- ExternalProject_Add_StepTargets(foobar build)
- ExternalProject_Add(secretsauce
- URL http://intranet.somecompany.com/artifacts/sauce-2.7.tgz
- https://www.somecompany.com/downloads/sauce-2.7.zip
- URL_HASH MD5=d41d8cd98f00b204e9800998ecf8427e
- CONFIGURE_COMMAND ""
- BUILD_COMMAND ${MAKE_EXE} sauce
- DEPENDS foobar-build
- )
-
-Instead of calling :command:`ExternalProject_Add_StepTargets`, the target could
-be defined along with the ``foobar`` project itself:
-
-.. code-block:: cmake
-
- ExternalProject_Add(foobar
- GIT_REPOSITORY git@github.com:FooCo/FooBar.git
- GIT_TAG origin/release/1.2.3
- STEP_TARGETS build
- )
-
-If many external projects should have the same set of step targets, setting a
-directory property may be more convenient. The ``build`` step target could be
-created automatically by setting the ``EP_STEP_TARGETS`` directory property
-before creating the external projects with :command:`ExternalProject_Add`:
-
-.. code-block:: cmake
-
- set_property(DIRECTORY PROPERTY EP_STEP_TARGETS build)
-
-Lastly, suppose that ``secretsauce`` provides a script called ``makedoc`` which
-can be used to generate its own documentation. Further suppose that the script
-expects the output directory to be provided as the only parameter and that it
-should be run from the ``secretsauce`` source directory. A custom step and a
-custom target to trigger the script can be defined like so:
-
-.. code-block:: cmake
-
- ExternalProject_Add_Step(secretsauce docs
- COMMAND <SOURCE_DIR>/makedoc <BINARY_DIR>
- WORKING_DIRECTORY <SOURCE_DIR>
- COMMENT "Building secretsauce docs"
- ALWAYS TRUE
- EXCLUDE_FROM_MAIN TRUE
- )
- ExternalProject_Add_StepTargets(secretsauce docs)
-
-The custom step could then be triggered from the main build like so::
-
- cmake --build . --target secretsauce-docs
-
-#]=======================================================================]
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
-
-# Pre-compute a regex to match documented keywords for each command.
-math(EXPR _ep_documentation_line_count "${CMAKE_CURRENT_LIST_LINE} - 4")
-file(STRINGS "${CMAKE_CURRENT_LIST_FILE}" lines
- LIMIT_COUNT ${_ep_documentation_line_count}
- REGEX "^\\.\\. command:: [A-Za-z0-9_]+|^ +``[A-Z0-9_]+ [^`]*``$")
-foreach(line IN LISTS lines)
- if("${line}" MATCHES "^\\.\\. command:: ([A-Za-z0-9_]+)")
- if(_ep_func)
- string(APPEND _ep_keywords_${_ep_func} ")$")
- endif()
- set(_ep_func "${CMAKE_MATCH_1}")
- #message("function [${_ep_func}]")
- set(_ep_keywords_${_ep_func} "^(")
- set(_ep_keyword_sep)
- elseif("${line}" MATCHES "^ +``([A-Z0-9_]+) [^`]*``$")
- set(_ep_key "${CMAKE_MATCH_1}")
- # COMMAND should never be included as a keyword,
- # for ExternalProject_Add(), as it is treated as a
- # special case by argument parsing as an extension
- # of a previous ..._COMMAND
- if("x${_ep_key}x" STREQUAL "xCOMMANDx" AND
- "x${_ep_func}x" STREQUAL "xExternalProject_Addx")
- continue()
- endif()
- #message(" keyword [${_ep_key}]")
- string(APPEND _ep_keywords_${_ep_func}
- "${_ep_keyword_sep}${_ep_key}")
- set(_ep_keyword_sep "|")
- endif()
-endforeach()
-if(_ep_func)
- string(APPEND _ep_keywords_${_ep_func} ")$")
-endif()
-
-# Save regex matching supported hash algorithm names.
-set(_ep_hash_algos "MD5|SHA1|SHA224|SHA256|SHA384|SHA512|SHA3_224|SHA3_256|SHA3_384|SHA3_512")
-set(_ep_hash_regex "^(${_ep_hash_algos})=([0-9A-Fa-f]+)$")
-
-set(_ExternalProject_SELF "${CMAKE_CURRENT_LIST_FILE}")
-get_filename_component(_ExternalProject_SELF_DIR "${_ExternalProject_SELF}" PATH)
-
-function(_ep_parse_arguments f name ns args)
- # Transfer the arguments to this function into target properties for the
- # new custom target we just added so that we can set up all the build steps
- # correctly based on target properties.
- #
- # We loop through ARGN and consider the namespace starting with an
- # upper-case letter followed by at least two more upper-case letters,
- # numbers or underscores to be keywords.
-
- if(NOT DEFINED _ExternalProject_SELF)
- message(FATAL_ERROR "error: ExternalProject module must be explicitly included before using ${f} function")
- endif()
-
- set(key)
-
- foreach(arg IN LISTS args)
- set(is_value 1)
-
- if(arg MATCHES "^[A-Z][A-Z0-9_][A-Z0-9_]+$" AND
- NOT (("x${arg}x" STREQUAL "x${key}x") AND ("x${key}x" STREQUAL "xCOMMANDx")) AND
- NOT arg MATCHES "^(TRUE|FALSE)$")
- if(_ep_keywords_${f} AND arg MATCHES "${_ep_keywords_${f}}")
- set(is_value 0)
- endif()
- endif()
-
- if(is_value)
- if(key)
- # Value
- if(NOT arg STREQUAL "")
- set_property(TARGET ${name} APPEND PROPERTY ${ns}${key} "${arg}")
- else()
- get_property(have_key TARGET ${name} PROPERTY ${ns}${key} SET)
- if(have_key)
- get_property(value TARGET ${name} PROPERTY ${ns}${key})
- set_property(TARGET ${name} PROPERTY ${ns}${key} "${value};${arg}")
- else()
- set_property(TARGET ${name} PROPERTY ${ns}${key} "${arg}")
- endif()
- endif()
- else()
- # Missing Keyword
- message(AUTHOR_WARNING "value '${arg}' with no previous keyword in ${f}")
- endif()
- else()
- set(key "${arg}")
- if(key MATCHES GIT)
- get_property(have_key TARGET ${name} PROPERTY ${ns}${key} SET)
- endif()
- endif()
- endforeach()
-endfunction()
-
-
-define_property(DIRECTORY PROPERTY "EP_BASE" INHERITED
- BRIEF_DOCS "Base directory for External Project storage."
- FULL_DOCS
- "See documentation of the ExternalProject_Add() function in the "
- "ExternalProject module."
- )
-
-define_property(DIRECTORY PROPERTY "EP_PREFIX" INHERITED
- BRIEF_DOCS "Top prefix for External Project storage."
- FULL_DOCS
- "See documentation of the ExternalProject_Add() function in the "
- "ExternalProject module."
- )
-
-define_property(DIRECTORY PROPERTY "EP_STEP_TARGETS" INHERITED
- BRIEF_DOCS
- "List of ExternalProject steps that automatically get corresponding targets"
- FULL_DOCS
- "These targets will be dependent on the main target dependencies. "
- "See documentation of the ExternalProject_Add_StepTargets() function in the "
- "ExternalProject module."
- )
-
-define_property(DIRECTORY PROPERTY "EP_INDEPENDENT_STEP_TARGETS" INHERITED
- BRIEF_DOCS
- "List of ExternalProject steps that automatically get corresponding targets"
- FULL_DOCS
- "These targets will not be dependent on the main target dependencies. "
- "See documentation of the ExternalProject_Add_StepTargets() function in the "
- "ExternalProject module."
- )
-
-define_property(DIRECTORY PROPERTY "EP_UPDATE_DISCONNECTED" INHERITED
- BRIEF_DOCS "Never update automatically from the remote repo."
- FULL_DOCS
- "See documentation of the ExternalProject_Add() function in the "
- "ExternalProject module."
- )
-
-function(_ep_write_gitclone_script script_filename source_dir git_EXECUTABLE git_repository git_tag git_remote_name init_submodules git_submodules git_shallow git_progress git_config src_name work_dir gitclone_infofile gitclone_stampfile tls_verify)
- if(NOT GIT_VERSION_STRING VERSION_LESS 1.8.5)
- # Use `git checkout <tree-ish> --` to avoid ambiguity with a local path.
- set(git_checkout_explicit-- "--")
- else()
- # Use `git checkout <branch>` even though this risks ambiguity with a
- # local path. Unfortunately we cannot use `git checkout <tree-ish> --`
- # because that will not search for remote branch names, a common use case.
- set(git_checkout_explicit-- "")
- endif()
- if("${git_tag}" STREQUAL "")
- message(FATAL_ERROR "Tag for git checkout should not be empty.")
- endif()
-
- set(git_clone_options "--no-checkout")
- if(git_shallow)
- if(NOT GIT_VERSION_STRING VERSION_LESS 1.7.10)
- list(APPEND git_clone_options "--depth 1 --no-single-branch")
- else()
- list(APPEND git_clone_options "--depth 1")
- endif()
- endif()
- if(git_progress)
- list(APPEND git_clone_options --progress)
- endif()
- foreach(config IN LISTS git_config)
- list(APPEND git_clone_options --config ${config})
- endforeach()
- if(NOT ${git_remote_name} STREQUAL "origin")
- list(APPEND git_clone_options --origin \"${git_remote_name}\")
- endif()
-
- string (REPLACE ";" " " git_clone_options "${git_clone_options}")
-
- set(git_options)
- # disable cert checking if explicitly told not to do it
- if(NOT "x${tls_verify}" STREQUAL "x" AND NOT tls_verify)
- set(git_options
- -c http.sslVerify=false)
- endif()
- string (REPLACE ";" " " git_options "${git_options}")
-
- file(WRITE ${script_filename}
-"
-if(NOT \"${gitclone_infofile}\" IS_NEWER_THAN \"${gitclone_stampfile}\")
- message(STATUS \"Avoiding repeated git clone, stamp file is up to date: '${gitclone_stampfile}'\")
- return()
-endif()
-
-execute_process(
- COMMAND \${CMAKE_COMMAND} -E remove_directory \"${source_dir}\"
- RESULT_VARIABLE error_code
- )
-if(error_code)
- message(FATAL_ERROR \"Failed to remove directory: '${source_dir}'\")
-endif()
-
-# try the clone 3 times in case there is an odd git clone issue
-set(error_code 1)
-set(number_of_tries 0)
-while(error_code AND number_of_tries LESS 3)
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" ${git_options} clone ${git_clone_options} \"${git_repository}\" \"${src_name}\"
- WORKING_DIRECTORY \"${work_dir}\"
- RESULT_VARIABLE error_code
- )
- math(EXPR number_of_tries \"\${number_of_tries} + 1\")
-endwhile()
-if(number_of_tries GREATER 1)
- message(STATUS \"Had to git clone more than once:
- \${number_of_tries} times.\")
-endif()
-if(error_code)
- message(FATAL_ERROR \"Failed to clone repository: '${git_repository}'\")
-endif()
-
-execute_process(
- COMMAND \"${git_EXECUTABLE}\" ${git_options} checkout ${git_tag} ${git_checkout_explicit--}
- WORKING_DIRECTORY \"${work_dir}/${src_name}\"
- RESULT_VARIABLE error_code
- )
-if(error_code)
- message(FATAL_ERROR \"Failed to checkout tag: '${git_tag}'\")
-endif()
-
-set(init_submodules ${init_submodules})
-if(init_submodules)
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" ${git_options} submodule update --recursive --init ${git_submodules}
- WORKING_DIRECTORY \"${work_dir}/${src_name}\"
- RESULT_VARIABLE error_code
- )
-endif()
-if(error_code)
- message(FATAL_ERROR \"Failed to update submodules in: '${work_dir}/${src_name}'\")
-endif()
-
-# Complete success, update the script-last-run stamp file:
-#
-execute_process(
- COMMAND \${CMAKE_COMMAND} -E copy
- \"${gitclone_infofile}\"
- \"${gitclone_stampfile}\"
- RESULT_VARIABLE error_code
- )
-if(error_code)
- message(FATAL_ERROR \"Failed to copy script-last-run stamp file: '${gitclone_stampfile}'\")
-endif()
-
-"
-)
-
-endfunction()
-
-function(_ep_write_hgclone_script script_filename source_dir hg_EXECUTABLE hg_repository hg_tag src_name work_dir hgclone_infofile hgclone_stampfile)
- if("${hg_tag}" STREQUAL "")
- message(FATAL_ERROR "Tag for hg checkout should not be empty.")
- endif()
- file(WRITE ${script_filename}
-"
-if(NOT \"${hgclone_infofile}\" IS_NEWER_THAN \"${hgclone_stampfile}\")
- message(STATUS \"Avoiding repeated hg clone, stamp file is up to date: '${hgclone_stampfile}'\")
- return()
-endif()
-
-execute_process(
- COMMAND \${CMAKE_COMMAND} -E remove_directory \"${source_dir}\"
- RESULT_VARIABLE error_code
- )
-if(error_code)
- message(FATAL_ERROR \"Failed to remove directory: '${source_dir}'\")
-endif()
-
-execute_process(
- COMMAND \"${hg_EXECUTABLE}\" clone -U \"${hg_repository}\" \"${src_name}\"
- WORKING_DIRECTORY \"${work_dir}\"
- RESULT_VARIABLE error_code
- )
-if(error_code)
- message(FATAL_ERROR \"Failed to clone repository: '${hg_repository}'\")
-endif()
-
-execute_process(
- COMMAND \"${hg_EXECUTABLE}\" update ${hg_tag}
- WORKING_DIRECTORY \"${work_dir}/${src_name}\"
- RESULT_VARIABLE error_code
- )
-if(error_code)
- message(FATAL_ERROR \"Failed to checkout tag: '${hg_tag}'\")
-endif()
-
-# Complete success, update the script-last-run stamp file:
-#
-execute_process(
- COMMAND \${CMAKE_COMMAND} -E copy
- \"${hgclone_infofile}\"
- \"${hgclone_stampfile}\"
- RESULT_VARIABLE error_code
- )
-if(error_code)
- message(FATAL_ERROR \"Failed to copy script-last-run stamp file: '${hgclone_stampfile}'\")
-endif()
-
-"
-)
-
-endfunction()
-
-
-function(_ep_write_gitupdate_script script_filename git_EXECUTABLE git_tag git_remote_name init_submodules git_submodules git_repository work_dir)
- if("${git_tag}" STREQUAL "")
- message(FATAL_ERROR "Tag for git checkout should not be empty.")
- endif()
- if(NOT GIT_VERSION_STRING VERSION_LESS 1.7.6)
- set(git_stash_save_options --all --quiet)
- else()
- set(git_stash_save_options --quiet)
- endif()
- file(WRITE ${script_filename}
-"
-execute_process(
- COMMAND \"${git_EXECUTABLE}\" rev-list --max-count=1 HEAD
- WORKING_DIRECTORY \"${work_dir}\"
- RESULT_VARIABLE error_code
- OUTPUT_VARIABLE head_sha
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
-if(error_code)
- message(FATAL_ERROR \"Failed to get the hash for HEAD\")
-endif()
-
-execute_process(
- COMMAND \"${git_EXECUTABLE}\" show-ref ${git_tag}
- WORKING_DIRECTORY \"${work_dir}\"
- OUTPUT_VARIABLE show_ref_output
- )
-# If a remote ref is asked for, which can possibly move around,
-# we must always do a fetch and checkout.
-if(\"\${show_ref_output}\" MATCHES \"remotes\")
- set(is_remote_ref 1)
-else()
- set(is_remote_ref 0)
-endif()
-
-# Tag is in the form <remote>/<tag> (i.e. origin/master) we must strip
-# the remote from the tag.
-if(\"\${show_ref_output}\" MATCHES \"refs/remotes/${git_tag}\")
- string(REGEX MATCH \"^([^/]+)/(.+)$\" _unused \"${git_tag}\")
- set(git_remote \"\${CMAKE_MATCH_1}\")
- set(git_tag \"\${CMAKE_MATCH_2}\")
-else()
- set(git_remote \"${git_remote_name}\")
- set(git_tag \"${git_tag}\")
-endif()
-
-# This will fail if the tag does not exist (it probably has not been fetched
-# yet).
-execute_process(
- COMMAND \"${git_EXECUTABLE}\" rev-list --max-count=1 ${git_tag}
- WORKING_DIRECTORY \"${work_dir}\"
- RESULT_VARIABLE error_code
- OUTPUT_VARIABLE tag_sha
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
-
-# Is the hash checkout out that we want?
-if(error_code OR is_remote_ref OR NOT (\"\${tag_sha}\" STREQUAL \"\${head_sha}\"))
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" fetch
- WORKING_DIRECTORY \"${work_dir}\"
- RESULT_VARIABLE error_code
- )
- if(error_code)
- message(FATAL_ERROR \"Failed to fetch repository '${git_repository}'\")
- endif()
-
- if(is_remote_ref)
- # Check if stash is needed
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" status --porcelain
- WORKING_DIRECTORY \"${work_dir}\"
- RESULT_VARIABLE error_code
- OUTPUT_VARIABLE repo_status
- )
- if(error_code)
- message(FATAL_ERROR \"Failed to get the status\")
- endif()
- string(LENGTH \"\${repo_status}\" need_stash)
-
- # If not in clean state, stash changes in order to be able to be able to
- # perform git pull --rebase
- if(need_stash)
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" stash save ${git_stash_save_options}
- WORKING_DIRECTORY \"${work_dir}\"
- RESULT_VARIABLE error_code
- )
- if(error_code)
- message(FATAL_ERROR \"Failed to stash changes\")
- endif()
- endif()
-
- # Pull changes from the remote branch
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" rebase \${git_remote}/\${git_tag}
- WORKING_DIRECTORY \"${work_dir}\"
- RESULT_VARIABLE error_code
- )
- if(error_code)
- # Rebase failed: Restore previous state.
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" rebase --abort
- WORKING_DIRECTORY \"${work_dir}\"
- )
- if(need_stash)
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" stash pop --index --quiet
- WORKING_DIRECTORY \"${work_dir}\"
- )
- endif()
- message(FATAL_ERROR \"\\nFailed to rebase in: '${work_dir}/${src_name}'.\\nYou will have to resolve the conflicts manually\")
- endif()
-
- if(need_stash)
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" stash pop --index --quiet
- WORKING_DIRECTORY \"${work_dir}\"
- RESULT_VARIABLE error_code
- )
- if(error_code)
- # Stash pop --index failed: Try again dropping the index
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" reset --hard --quiet
- WORKING_DIRECTORY \"${work_dir}\"
- RESULT_VARIABLE error_code
- )
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" stash pop --quiet
- WORKING_DIRECTORY \"${work_dir}\"
- RESULT_VARIABLE error_code
- )
- if(error_code)
- # Stash pop failed: Restore previous state.
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" reset --hard --quiet \${head_sha}
- WORKING_DIRECTORY \"${work_dir}\"
- )
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" stash pop --index --quiet
- WORKING_DIRECTORY \"${work_dir}\"
- )
- message(FATAL_ERROR \"\\nFailed to unstash changes in: '${work_dir}/${src_name}'.\\nYou will have to resolve the conflicts manually\")
- endif()
- endif()
- endif()
- else()
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" checkout ${git_tag}
- WORKING_DIRECTORY \"${work_dir}\"
- RESULT_VARIABLE error_code
- )
- if(error_code)
- message(FATAL_ERROR \"Failed to checkout tag: '${git_tag}'\")
- endif()
- endif()
-
- set(init_submodules ${init_submodules})
- if(init_submodules)
- execute_process(
- COMMAND \"${git_EXECUTABLE}\" submodule update --recursive --init ${git_submodules}
- WORKING_DIRECTORY \"${work_dir}/${src_name}\"
- RESULT_VARIABLE error_code
- )
- endif()
- if(error_code)
- message(FATAL_ERROR \"Failed to update submodules in: '${work_dir}/${src_name}'\")
- endif()
-endif()
-
-"
-)
-
-endfunction(_ep_write_gitupdate_script)
-
-function(_ep_write_downloadfile_script script_filename REMOTE LOCAL timeout no_progress hash tls_verify tls_cainfo userpwd http_headers netrc netrc_file)
- if(timeout)
- set(TIMEOUT_ARGS TIMEOUT ${timeout})
- set(TIMEOUT_MSG "${timeout} seconds")
- else()
- set(TIMEOUT_ARGS "# no TIMEOUT")
- set(TIMEOUT_MSG "none")
- endif()
-
- if(no_progress)
- set(SHOW_PROGRESS "")
- else()
- set(SHOW_PROGRESS "SHOW_PROGRESS")
- endif()
-
- if("${hash}" MATCHES "${_ep_hash_regex}")
- set(ALGO "${CMAKE_MATCH_1}")
- string(TOLOWER "${CMAKE_MATCH_2}" EXPECT_VALUE)
- else()
- set(ALGO "")
- set(EXPECT_VALUE "")
- endif()
-
- set(TLS_VERIFY_CODE "")
- set(TLS_CAINFO_CODE "")
- set(NETRC_CODE "")
- set(NETRC_FILE_CODE "")
-
- # check for curl globals in the project
- if(DEFINED CMAKE_TLS_VERIFY)
- set(TLS_VERIFY_CODE "set(CMAKE_TLS_VERIFY ${CMAKE_TLS_VERIFY})")
- endif()
- if(DEFINED CMAKE_TLS_CAINFO)
- set(TLS_CAINFO_CODE "set(CMAKE_TLS_CAINFO \"${CMAKE_TLS_CAINFO}\")")
- endif()
- if(DEFINED CMAKE_NETRC)
- set(NETRC_CODE "set(CMAKE_NETRC \"${CMAKE_NETRC}\")")
- endif()
- if(DEFINED CMAKE_NETRC_FILE)
- set(NETRC_FILE_CODE "set(CMAKE_NETRC_FILE \"${CMAKE_NETRC_FILE}\")")
- endif()
-
- # now check for curl locals so that the local values
- # will override the globals
-
- # check for tls_verify argument
- string(LENGTH "${tls_verify}" tls_verify_len)
- if(tls_verify_len GREATER 0)
- set(TLS_VERIFY_CODE "set(CMAKE_TLS_VERIFY ${tls_verify})")
- endif()
- # check for tls_cainfo argument
- string(LENGTH "${tls_cainfo}" tls_cainfo_len)
- if(tls_cainfo_len GREATER 0)
- set(TLS_CAINFO_CODE "set(CMAKE_TLS_CAINFO \"${tls_cainfo}\")")
- endif()
- # check for netrc argument
- string(LENGTH "${netrc}" netrc_len)
- if(netrc_len GREATER 0)
- set(NETRC_CODE "set(CMAKE_NETRC \"${netrc}\")")
- endif()
- # check for netrc_file argument
- string(LENGTH "${netrc_file}" netrc_file_len)
- if(netrc_file_len GREATER 0)
- set(NETRC_FILE_CODE "set(CMAKE_NETRC_FILE \"${netrc_file}\")")
- endif()
-
- if(userpwd STREQUAL ":")
- set(USERPWD_ARGS)
- else()
- set(USERPWD_ARGS USERPWD "${userpwd}")
- endif()
-
- set(HTTP_HEADERS_ARGS "")
- if(NOT http_headers STREQUAL "")
- foreach(header ${http_headers})
- set(
- HTTP_HEADERS_ARGS
- "HTTPHEADER \"${header}\"\n ${HTTP_HEADERS_ARGS}"
- )
- endforeach()
- endif()
-
- # Used variables:
- # * TLS_VERIFY_CODE
- # * TLS_CAINFO_CODE
- # * ALGO
- # * EXPECT_VALUE
- # * REMOTE
- # * LOCAL
- # * SHOW_PROGRESS
- # * TIMEOUT_ARGS
- # * TIMEOUT_MSG
- # * USERPWD_ARGS
- # * HTTP_HEADERS_ARGS
- configure_file(
- "${_ExternalProject_SELF_DIR}/ExternalProject-download.cmake.in"
- "${script_filename}"
- @ONLY
- )
-endfunction()
-
-function(_ep_write_verifyfile_script script_filename LOCAL hash)
- if("${hash}" MATCHES "${_ep_hash_regex}")
- set(ALGO "${CMAKE_MATCH_1}")
- string(TOLOWER "${CMAKE_MATCH_2}" EXPECT_VALUE)
- else()
- set(ALGO "")
- set(EXPECT_VALUE "")
- endif()
-
- # Used variables:
- # * ALGO
- # * EXPECT_VALUE
- # * LOCAL
- configure_file(
- "${_ExternalProject_SELF_DIR}/ExternalProject-verify.cmake.in"
- "${script_filename}"
- @ONLY
- )
-endfunction()
-
-
-function(_ep_write_extractfile_script script_filename name filename directory)
- set(args "")
-
- if(filename MATCHES "(\\.|=)(7z|tar\\.bz2|tar\\.gz|tar\\.xz|tbz2|tgz|txz|zip)$")
- set(args xfz)
- endif()
-
- if(filename MATCHES "(\\.|=)tar$")
- set(args xf)
- endif()
-
- if(args STREQUAL "")
- message(SEND_ERROR "error: do not know how to extract '${filename}' -- known types are .7z, .tar, .tar.bz2, .tar.gz, .tar.xz, .tbz2, .tgz, .txz and .zip")
- return()
- endif()
-
- file(WRITE ${script_filename}
-"# Make file names absolute:
-#
-get_filename_component(filename \"${filename}\" ABSOLUTE)
-get_filename_component(directory \"${directory}\" ABSOLUTE)
-
-message(STATUS \"extracting...
- src='\${filename}'
- dst='\${directory}'\")
-
-if(NOT EXISTS \"\${filename}\")
- message(FATAL_ERROR \"error: file to extract does not exist: '\${filename}'\")
-endif()
-
-# Prepare a space for extracting:
-#
-set(i 1234)
-while(EXISTS \"\${directory}/../ex-${name}\${i}\")
- math(EXPR i \"\${i} + 1\")
-endwhile()
-set(ut_dir \"\${directory}/../ex-${name}\${i}\")
-file(MAKE_DIRECTORY \"\${ut_dir}\")
-
-# Extract it:
-#
-message(STATUS \"extracting... [tar ${args}]\")
-execute_process(COMMAND \${CMAKE_COMMAND} -E tar ${args} \${filename}
- WORKING_DIRECTORY \${ut_dir}
- RESULT_VARIABLE rv)
-
-if(NOT rv EQUAL 0)
- message(STATUS \"extracting... [error clean up]\")
- file(REMOVE_RECURSE \"\${ut_dir}\")
- message(FATAL_ERROR \"error: extract of '\${filename}' failed\")
-endif()
-
-# Analyze what came out of the tar file:
-#
-message(STATUS \"extracting... [analysis]\")
-file(GLOB contents \"\${ut_dir}/*\")
-list(REMOVE_ITEM contents \"\${ut_dir}/.DS_Store\")
-list(LENGTH contents n)
-if(NOT n EQUAL 1 OR NOT IS_DIRECTORY \"\${contents}\")
- set(contents \"\${ut_dir}\")
-endif()
-
-# Move \"the one\" directory to the final directory:
-#
-message(STATUS \"extracting... [rename]\")
-file(REMOVE_RECURSE \${directory})
-get_filename_component(contents \${contents} ABSOLUTE)
-file(RENAME \${contents} \${directory})
-
-# Clean up:
-#
-message(STATUS \"extracting... [clean up]\")
-file(REMOVE_RECURSE \"\${ut_dir}\")
-
-message(STATUS \"extracting... done\")
-"
-)
-
-endfunction()
-
-
-function(_ep_set_directories name)
- get_property(prefix TARGET ${name} PROPERTY _EP_PREFIX)
- if(NOT prefix)
- get_property(prefix DIRECTORY PROPERTY EP_PREFIX)
- if(NOT prefix)
- get_property(base DIRECTORY PROPERTY EP_BASE)
- if(NOT base)
- set(prefix "${name}-prefix")
- endif()
- endif()
- endif()
- if(prefix)
- set(tmp_default "${prefix}/tmp")
- set(download_default "${prefix}/src")
- set(source_default "${prefix}/src/${name}")
- set(binary_default "${prefix}/src/${name}-build")
- set(stamp_default "${prefix}/src/${name}-stamp")
- set(install_default "${prefix}")
- else()
- set(tmp_default "${base}/tmp/${name}")
- set(download_default "${base}/Download/${name}")
- set(source_default "${base}/Source/${name}")
- set(binary_default "${base}/Build/${name}")
- set(stamp_default "${base}/Stamp/${name}")
- set(install_default "${base}/Install/${name}")
- endif()
- get_property(build_in_source TARGET ${name} PROPERTY _EP_BUILD_IN_SOURCE)
- if(build_in_source)
- get_property(have_binary_dir TARGET ${name} PROPERTY _EP_BINARY_DIR SET)
- if(have_binary_dir)
- message(FATAL_ERROR
- "External project ${name} has both BINARY_DIR and BUILD_IN_SOURCE!")
- endif()
- endif()
- set(top "${CMAKE_CURRENT_BINARY_DIR}")
-
- # Apply defaults and convert to absolute paths.
- set(places stamp download source binary install tmp)
- foreach(var ${places})
- string(TOUPPER "${var}" VAR)
- get_property(${var}_dir TARGET ${name} PROPERTY _EP_${VAR}_DIR)
- if(NOT ${var}_dir)
- set(${var}_dir "${${var}_default}")
- endif()
- if(NOT IS_ABSOLUTE "${${var}_dir}")
- get_filename_component(${var}_dir "${top}/${${var}_dir}" ABSOLUTE)
- endif()
- set_property(TARGET ${name} PROPERTY _EP_${VAR}_DIR "${${var}_dir}")
- endforeach()
-
- # Special case for default log directory based on stamp directory.
- get_property(log_dir TARGET ${name} PROPERTY _EP_LOG_DIR)
- if(NOT log_dir)
- get_property(log_dir TARGET ${name} PROPERTY _EP_STAMP_DIR)
- endif()
- if(NOT IS_ABSOLUTE "${log_dir}")
- get_filename_component(log_dir "${top}/${log_dir}" ABSOLUTE)
- endif()
- set_property(TARGET ${name} PROPERTY _EP_LOG_DIR "${log_dir}")
-
- get_property(source_subdir TARGET ${name} PROPERTY _EP_SOURCE_SUBDIR)
- if(NOT source_subdir)
- set_property(TARGET ${name} PROPERTY _EP_SOURCE_SUBDIR "")
- elseif(IS_ABSOLUTE "${source_subdir}")
- message(FATAL_ERROR
- "External project ${name} has non-relative SOURCE_SUBDIR!")
- else()
- # Prefix with a slash so that when appended to the source directory, it
- # behaves as expected.
- set_property(TARGET ${name} PROPERTY _EP_SOURCE_SUBDIR "/${source_subdir}")
- endif()
- if(build_in_source)
- get_property(source_dir TARGET ${name} PROPERTY _EP_SOURCE_DIR)
- if(source_subdir)
- set_property(TARGET ${name} PROPERTY _EP_BINARY_DIR "${source_dir}/${source_subdir}")
- else()
- set_property(TARGET ${name} PROPERTY _EP_BINARY_DIR "${source_dir}")
- endif()
- endif()
-
- # Make the directories at CMake configure time *and* add a custom command
- # to make them at build time. They need to exist at makefile generation
- # time for Borland make and wmake so that CMake may generate makefiles
- # with "cd C:\short\paths\with\no\spaces" commands in them.
- #
- # Additionally, the add_custom_command is still used in case somebody
- # removes one of the necessary directories and tries to rebuild without
- # re-running cmake.
- foreach(var ${places})
- string(TOUPPER "${var}" VAR)
- get_property(dir TARGET ${name} PROPERTY _EP_${VAR}_DIR)
- file(MAKE_DIRECTORY "${dir}")
- if(NOT EXISTS "${dir}")
- message(FATAL_ERROR "dir '${dir}' does not exist after file(MAKE_DIRECTORY)")
- endif()
- endforeach()
-endfunction()
-
-
-# IMPORTANT: this MUST be a macro and not a function because of the
-# in-place replacements that occur in each ${var}
-#
-macro(_ep_replace_location_tags target_name)
- set(vars ${ARGN})
- foreach(var ${vars})
- if(${var})
- foreach(dir SOURCE_DIR SOURCE_SUBDIR BINARY_DIR INSTALL_DIR TMP_DIR DOWNLOAD_DIR DOWNLOADED_FILE LOG_DIR)
- get_property(val TARGET ${target_name} PROPERTY _EP_${dir})
- string(REPLACE "<${dir}>" "${val}" ${var} "${${var}}")
- endforeach()
- endif()
- endforeach()
-endmacro()
-
-
-function(_ep_command_line_to_initial_cache var args force)
- set(script_initial_cache "")
- set(regex "^([^:]+):([^=]+)=(.*)$")
- set(setArg "")
- set(forceArg "")
- if(force)
- set(forceArg "FORCE")
- endif()
- foreach(line ${args})
- if("${line}" MATCHES "^-D(.*)")
- set(line "${CMAKE_MATCH_1}")
- if(NOT "${setArg}" STREQUAL "")
- # This is required to build up lists in variables, or complete an entry
- string(APPEND setArg "${accumulator}\" CACHE ${type} \"Initial cache\" ${forceArg})")
- string(APPEND script_initial_cache "\n${setArg}")
- set(accumulator "")
- set(setArg "")
- endif()
- if("${line}" MATCHES "${regex}")
- set(name "${CMAKE_MATCH_1}")
- set(type "${CMAKE_MATCH_2}")
- set(value "${CMAKE_MATCH_3}")
- set(setArg "set(${name} \"${value}")
- else()
- message(WARNING "Line '${line}' does not match regex. Ignoring.")
- endif()
- else()
- # Assume this is a list to append to the last var
- string(APPEND accumulator ";${line}")
- endif()
- endforeach()
- # Catch the final line of the args
- if(NOT "${setArg}" STREQUAL "")
- string(APPEND setArg "${accumulator}\" CACHE ${type} \"Initial cache\" ${forceArg})")
- string(APPEND script_initial_cache "\n${setArg}")
- endif()
- set(${var} ${script_initial_cache} PARENT_SCOPE)
-endfunction()
-
-
-function(_ep_write_initial_cache target_name script_filename script_initial_cache)
- # Write out values into an initial cache, that will be passed to CMake with -C
- # Replace location tags.
- _ep_replace_location_tags(${target_name} script_initial_cache)
- _ep_replace_location_tags(${target_name} script_filename)
- # Write out the initial cache file to the location specified.
- file(GENERATE OUTPUT "${script_filename}" CONTENT "${script_initial_cache}")
-endfunction()
-
-
-function(ExternalProject_Get_Property name)
- foreach(var ${ARGN})
- string(TOUPPER "${var}" VAR)
- get_property(is_set TARGET ${name} PROPERTY _EP_${VAR} SET)
- if(NOT is_set)
- message(FATAL_ERROR "External project \"${name}\" has no ${var}")
- endif()
- get_property(${var} TARGET ${name} PROPERTY _EP_${VAR})
- set(${var} "${${var}}" PARENT_SCOPE)
- endforeach()
-endfunction()
-
-
-function(_ep_get_configure_command_id name cfg_cmd_id_var)
- get_target_property(cmd ${name} _EP_CONFIGURE_COMMAND)
-
- if(cmd STREQUAL "")
- # Explicit empty string means no configure step for this project
- set(${cfg_cmd_id_var} "none" PARENT_SCOPE)
- else()
- if(NOT cmd)
- # Default is "use cmake":
- set(${cfg_cmd_id_var} "cmake" PARENT_SCOPE)
- else()
- # Otherwise we have to analyze the value:
- if(cmd MATCHES "^[^;]*/configure")
- set(${cfg_cmd_id_var} "configure" PARENT_SCOPE)
- elseif(cmd MATCHES "^[^;]*/cmake" AND NOT cmd MATCHES ";-[PE];")
- set(${cfg_cmd_id_var} "cmake" PARENT_SCOPE)
- elseif(cmd MATCHES "config")
- set(${cfg_cmd_id_var} "configure" PARENT_SCOPE)
- else()
- set(${cfg_cmd_id_var} "unknown:${cmd}" PARENT_SCOPE)
- endif()
- endif()
- endif()
-endfunction()
-
-
-function(_ep_get_build_command name step cmd_var)
- set(cmd "")
- set(args)
- _ep_get_configure_command_id(${name} cfg_cmd_id)
- if(cfg_cmd_id STREQUAL "cmake")
- # CMake project. Select build command based on generator.
- get_target_property(cmake_generator ${name} _EP_CMAKE_GENERATOR)
- if("${CMAKE_GENERATOR}" MATCHES "Make" AND
- ("${cmake_generator}" MATCHES "Make" OR NOT cmake_generator))
- # The project uses the same Makefile generator. Use recursive make.
- set(cmd "$(MAKE)")
- if(step STREQUAL "INSTALL")
- set(args install)
- endif()
- if("x${step}x" STREQUAL "xTESTx")
- set(args test)
- endif()
- else()
- # Drive the project with "cmake --build".
- get_target_property(cmake_command ${name} _EP_CMAKE_COMMAND)
- if(cmake_command)
- set(cmd "${cmake_command}")
- else()
- set(cmd "${CMAKE_COMMAND}")
- endif()
- set(args --build ".")
- get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
- if(_isMultiConfig)
- if (CMAKE_CFG_INTDIR AND
- NOT CMAKE_CFG_INTDIR STREQUAL "." AND
- NOT CMAKE_CFG_INTDIR MATCHES "\\$")
- # CMake 3.4 and below used the CMAKE_CFG_INTDIR placeholder value
- # provided by multi-configuration generators. Some projects were
- # taking advantage of that undocumented implementation detail to
- # specify a specific configuration here. They should use
- # BUILD_COMMAND to change the default command instead, but for
- # compatibility honor the value.
- set(config ${CMAKE_CFG_INTDIR})
- message(AUTHOR_WARNING "CMAKE_CFG_INTDIR should not be set by project code.\n"
- "To get a non-default build command, use the BUILD_COMMAND option.")
- else()
- set(config $<CONFIG>)
- endif()
- list(APPEND args --config ${config})
- endif()
- if(step STREQUAL "INSTALL")
- list(APPEND args --target install)
- endif()
- # But for "TEST" drive the project with corresponding "ctest".
- if("x${step}x" STREQUAL "xTESTx")
- string(REGEX REPLACE "^(.*/)cmake([^/]*)$" "\\1ctest\\2" cmd "${cmd}")
- set(args "")
- if(_isMultiConfig)
- list(APPEND args -C ${config})
- endif()
- endif()
- endif()
- else()
- # Non-CMake project. Guess "make" and "make install" and "make test".
- if("${CMAKE_GENERATOR}" MATCHES "Makefiles")
- # Try to get the parallel arguments
- set(cmd "$(MAKE)")
- else()
- set(cmd "make")
- endif()
- if(step STREQUAL "INSTALL")
- set(args install)
- endif()
- if("x${step}x" STREQUAL "xTESTx")
- set(args test)
- endif()
- endif()
-
- # Use user-specified arguments instead of default arguments, if any.
- get_property(have_args TARGET ${name} PROPERTY _EP_${step}_ARGS SET)
- if(have_args)
- get_target_property(args ${name} _EP_${step}_ARGS)
- endif()
-
- list(APPEND cmd ${args})
- set(${cmd_var} "${cmd}" PARENT_SCOPE)
-endfunction()
-
-function(_ep_write_log_script name step cmd_var)
- ExternalProject_Get_Property(${name} log_dir)
- ExternalProject_Get_Property(${name} stamp_dir)
- set(command "${${cmd_var}}")
-
- set(make "")
- set(code_cygpath_make "")
- if(command MATCHES "^\\$\\(MAKE\\)")
- # GNU make recognizes the string "$(MAKE)" as recursive make, so
- # ensure that it appears directly in the makefile.
- string(REGEX REPLACE "^\\$\\(MAKE\\)" "\${make}" command "${command}")
- set(make "-Dmake=$(MAKE)")
-
- if(WIN32 AND NOT CYGWIN)
- set(code_cygpath_make "
-if(\${make} MATCHES \"^/\")
- execute_process(
- COMMAND cygpath -w \${make}
- OUTPUT_VARIABLE cygpath_make
- ERROR_VARIABLE cygpath_make
- RESULT_VARIABLE cygpath_error
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- if(NOT cygpath_error)
- set(make \${cygpath_make})
- endif()
-endif()
-")
- endif()
- endif()
-
- set(config "")
- if("${CMAKE_CFG_INTDIR}" MATCHES "^\\$")
- string(REPLACE "${CMAKE_CFG_INTDIR}" "\${config}" command "${command}")
- set(config "-Dconfig=${CMAKE_CFG_INTDIR}")
- endif()
-
- # Wrap multiple 'COMMAND' lines up into a second-level wrapper
- # script so all output can be sent to one log file.
- if(command MATCHES "(^|;)COMMAND;")
- set(code_execute_process "
-${code_cygpath_make}
-execute_process(COMMAND \${command} RESULT_VARIABLE result)
-if(result)
- set(msg \"Command failed (\${result}):\\n\")
- foreach(arg IN LISTS command)
- set(msg \"\${msg} '\${arg}'\")
- endforeach()
- message(FATAL_ERROR \"\${msg}\")
-endif()
-")
- set(code "")
- set(cmd "")
- set(sep "")
- foreach(arg IN LISTS command)
- if("x${arg}" STREQUAL "xCOMMAND")
- if(NOT "x${cmd}" STREQUAL "x")
- string(APPEND code "set(command \"${cmd}\")${code_execute_process}")
- endif()
- set(cmd "")
- set(sep "")
- else()
- string(APPEND cmd "${sep}${arg}")
- set(sep ";")
- endif()
- endforeach()
- string(APPEND code "set(command \"${cmd}\")${code_execute_process}")
- file(GENERATE OUTPUT "${stamp_dir}/${name}-${step}-$<CONFIG>-impl.cmake" CONTENT "${code}")
- set(command ${CMAKE_COMMAND} "-Dmake=\${make}" "-Dconfig=\${config}" -P ${stamp_dir}/${name}-${step}-$<CONFIG>-impl.cmake)
- endif()
-
- # Wrap the command in a script to log output to files.
- set(script ${stamp_dir}/${name}-${step}-$<CONFIG>.cmake)
- set(logbase ${log_dir}/${name}-${step})
- get_property(log_merged TARGET ${name} PROPERTY _EP_LOG_MERGED_STDOUTERR)
- get_property(log_output_on_failure TARGET ${name} PROPERTY _EP_LOG_OUTPUT_ON_FAILURE)
- if (log_merged)
- set(stdout_log "${logbase}.log")
- set(stderr_log "${logbase}.log")
- else()
- set(stdout_log "${logbase}-out.log")
- set(stderr_log "${logbase}-err.log")
- endif()
- set(code "
-cmake_minimum_required(VERSION 3.15)
-${code_cygpath_make}
-set(command \"${command}\")
-set(log_merged \"${log_merged}\")
-set(log_output_on_failure \"${log_output_on_failure}\")
-set(stdout_log \"${stdout_log}\")
-set(stderr_log \"${stderr_log}\")
-execute_process(
- COMMAND \${command}
- RESULT_VARIABLE result
- OUTPUT_FILE \"\${stdout_log}\"
- ERROR_FILE \"\${stderr_log}\"
- )
-macro(read_up_to_max_size log_file output_var)
- file(SIZE \${log_file} determined_size)
- set(max_size 10240)
- if (determined_size GREATER max_size)
- math(EXPR seek_position \"\${determined_size} - \${max_size}\")
- file(READ \${log_file} \${output_var} OFFSET \${seek_position})
- set(\${output_var} \"...skipping to end...\\n\${\${output_var}}\")
- else()
- file(READ \${log_file} \${output_var})
- endif()
-endmacro()
-if(result)
- set(msg \"Command failed: \${result}\\n\")
- foreach(arg IN LISTS command)
- set(msg \"\${msg} '\${arg}'\")
- endforeach()
- if (\${log_merged})
- set(msg \"\${msg}\\nSee also\\n \${stderr_log}\")
- else()
- set(msg \"\${msg}\\nSee also\\n ${logbase}-*.log\")
- endif()
- if (\${log_output_on_failure})
- message(SEND_ERROR \"\${msg}\")
- if (\${log_merged})
- read_up_to_max_size(\"\${stderr_log}\" error_log_contents)
- message(STATUS \"Log output is:\\n\${error_log_contents}\")
- else()
- read_up_to_max_size(\"\${stdout_log}\" out_log_contents)
- read_up_to_max_size(\"\${stderr_log}\" err_log_contents)
- message(STATUS \"stdout output is:\\n\${out_log_contents}\")
- message(STATUS \"stderr output is:\\n\${err_log_contents}\")
- endif()
- message(FATAL_ERROR \"Stopping after outputting logs.\")
- else()
- message(FATAL_ERROR \"\${msg}\")
- endif()
-else()
- set(msg \"${name} ${step} command succeeded. See also ${logbase}-*.log\")
- message(STATUS \"\${msg}\")
-endif()
-")
- file(GENERATE OUTPUT "${script}" CONTENT "${code}")
- set(command ${CMAKE_COMMAND} ${make} ${config} -P ${script})
- set(${cmd_var} "${command}" PARENT_SCOPE)
-endfunction()
-
-# This module used to use "/${CMAKE_CFG_INTDIR}" directly and produced
-# makefiles with "/./" in paths for custom command dependencies. Which
-# resulted in problems with parallel make -j invocations.
-#
-# This function was added so that the suffix (search below for ${cfgdir}) is
-# only set to "/${CMAKE_CFG_INTDIR}" when ${CMAKE_CFG_INTDIR} is not going to
-# be "." (multi-configuration build systems like Visual Studio and Xcode...)
-#
-function(_ep_get_configuration_subdir_suffix suffix_var)
- set(suffix "")
- get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
- if(_isMultiConfig)
- set(suffix "/${CMAKE_CFG_INTDIR}")
- endif()
- set(${suffix_var} "${suffix}" PARENT_SCOPE)
-endfunction()
-
-
-function(_ep_get_step_stampfile name step stampfile_var)
- ExternalProject_Get_Property(${name} stamp_dir)
-
- _ep_get_configuration_subdir_suffix(cfgdir)
- set(stampfile "${stamp_dir}${cfgdir}/${name}-${step}")
-
- set(${stampfile_var} "${stampfile}" PARENT_SCOPE)
-endfunction()
-
-
-function(_ep_get_complete_stampfile name stampfile_var)
- set(cmf_dir ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles)
- _ep_get_configuration_subdir_suffix(cfgdir)
- set(stampfile "${cmf_dir}${cfgdir}/${name}-complete")
-
- set(${stampfile_var} ${stampfile} PARENT_SCOPE)
-endfunction()
-
-
-function(ExternalProject_Add_StepTargets name)
- set(steps ${ARGN})
- if(ARGC GREATER 1 AND "${ARGV1}" STREQUAL "NO_DEPENDS")
- set(no_deps 1)
- list(REMOVE_AT steps 0)
- endif()
- foreach(step ${steps})
- if(no_deps AND "${step}" MATCHES "^(configure|build|install|test)$")
- message(AUTHOR_WARNING "Using NO_DEPENDS for \"${step}\" step might break parallel builds")
- endif()
- _ep_get_step_stampfile(${name} ${step} stamp_file)
- add_custom_target(${name}-${step}
- DEPENDS ${stamp_file})
- set_property(TARGET ${name}-${step} PROPERTY _EP_IS_EXTERNAL_PROJECT_STEP 1)
- set_property(TARGET ${name}-${step} PROPERTY LABELS ${name})
- set_property(TARGET ${name}-${step} PROPERTY FOLDER "ExternalProjectTargets/${name}")
-
- # Depend on other external projects (target-level).
- if(NOT no_deps)
- get_property(deps TARGET ${name} PROPERTY _EP_DEPENDS)
- foreach(arg IN LISTS deps)
- add_dependencies(${name}-${step} ${arg})
- endforeach()
- endif()
- endforeach()
-endfunction()
-
-
-function(ExternalProject_Add_Step name step)
- _ep_get_complete_stampfile(${name} complete_stamp_file)
- _ep_get_step_stampfile(${name} ${step} stamp_file)
-
- _ep_parse_arguments(ExternalProject_Add_Step
- ${name} _EP_${step}_ "${ARGN}")
-
- get_property(exclude_from_main TARGET ${name} PROPERTY _EP_${step}_EXCLUDE_FROM_MAIN)
- if(NOT exclude_from_main)
- add_custom_command(APPEND
- OUTPUT ${complete_stamp_file}
- DEPENDS ${stamp_file}
- )
- endif()
-
- # Steps depending on this step.
- get_property(dependers TARGET ${name} PROPERTY _EP_${step}_DEPENDERS)
- foreach(depender IN LISTS dependers)
- _ep_get_step_stampfile(${name} ${depender} depender_stamp_file)
- add_custom_command(APPEND
- OUTPUT ${depender_stamp_file}
- DEPENDS ${stamp_file}
- )
- endforeach()
-
- # Dependencies on files.
- get_property(depends TARGET ${name} PROPERTY _EP_${step}_DEPENDS)
-
- # Byproducts of the step.
- get_property(byproducts TARGET ${name} PROPERTY _EP_${step}_BYPRODUCTS)
-
- # Dependencies on steps.
- get_property(dependees TARGET ${name} PROPERTY _EP_${step}_DEPENDEES)
- foreach(dependee IN LISTS dependees)
- _ep_get_step_stampfile(${name} ${dependee} dependee_stamp_file)
- list(APPEND depends ${dependee_stamp_file})
- endforeach()
-
- # The command to run.
- get_property(command TARGET ${name} PROPERTY _EP_${step}_COMMAND)
- if(command)
- set(comment "Performing ${step} step for '${name}'")
- else()
- set(comment "No ${step} step for '${name}'")
- endif()
- get_property(work_dir TARGET ${name} PROPERTY _EP_${step}_WORKING_DIRECTORY)
-
- # Replace list separators.
- get_property(sep TARGET ${name} PROPERTY _EP_LIST_SEPARATOR)
- if(sep AND command)
- string(REPLACE "${sep}" "\\;" command "${command}")
- endif()
-
- # Replace location tags.
- _ep_replace_location_tags(${name} comment command work_dir byproducts)
-
- # Custom comment?
- get_property(comment_set TARGET ${name} PROPERTY _EP_${step}_COMMENT SET)
- if(comment_set)
- get_property(comment TARGET ${name} PROPERTY _EP_${step}_COMMENT)
- endif()
-
- # Uses terminal?
- get_property(uses_terminal TARGET ${name} PROPERTY _EP_${step}_USES_TERMINAL)
- if(uses_terminal)
- set(uses_terminal USES_TERMINAL)
- else()
- set(uses_terminal "")
- endif()
-
- # Run every time?
- get_property(always TARGET ${name} PROPERTY _EP_${step}_ALWAYS)
- if(always)
- set_property(SOURCE ${stamp_file} PROPERTY SYMBOLIC 1)
- set(touch)
- # Remove any existing stamp in case the option changed in an existing tree.
- get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
- if(_isMultiConfig)
- foreach(cfg ${CMAKE_CONFIGURATION_TYPES})
- string(REPLACE "/${CMAKE_CFG_INTDIR}" "/${cfg}" stamp_file_config "${stamp_file}")
- file(REMOVE ${stamp_file_config})
- endforeach()
- else()
- file(REMOVE ${stamp_file})
- endif()
- else()
- set(touch ${CMAKE_COMMAND} -E touch ${stamp_file})
- endif()
-
- # Wrap with log script?
- get_property(log TARGET ${name} PROPERTY _EP_${step}_LOG)
- if(command AND log)
- _ep_write_log_script(${name} ${step} command)
- endif()
-
- if("${command}" STREQUAL "")
- # Some generators (i.e. Xcode) will not generate a file level target
- # if no command is set, and therefore the dependencies on this
- # target will be broken.
- # The empty command is replaced by an echo command here in order to
- # avoid this issue.
- set(command ${CMAKE_COMMAND} -E echo_append)
- endif()
-
- add_custom_command(
- OUTPUT ${stamp_file}
- BYPRODUCTS ${byproducts}
- COMMENT ${comment}
- COMMAND ${command}
- COMMAND ${touch}
- DEPENDS ${depends}
- WORKING_DIRECTORY ${work_dir}
- VERBATIM
- ${uses_terminal}
- )
- set_property(TARGET ${name} APPEND PROPERTY _EP_STEPS ${step})
-
- # Add custom "step target"?
- get_property(step_targets TARGET ${name} PROPERTY _EP_STEP_TARGETS)
- if(NOT step_targets)
- get_property(step_targets DIRECTORY PROPERTY EP_STEP_TARGETS)
- endif()
- foreach(st ${step_targets})
- if("${st}" STREQUAL "${step}")
- ExternalProject_Add_StepTargets(${name} ${step})
- break()
- endif()
- endforeach()
-
- get_property(independent_step_targets TARGET ${name} PROPERTY _EP_INDEPENDENT_STEP_TARGETS)
- if(NOT independent_step_targets)
- get_property(independent_step_targets DIRECTORY PROPERTY EP_INDEPENDENT_STEP_TARGETS)
- endif()
- foreach(st ${independent_step_targets})
- if("${st}" STREQUAL "${step}")
- ExternalProject_Add_StepTargets(${name} NO_DEPENDS ${step})
- break()
- endif()
- endforeach()
-endfunction()
-
-
-function(ExternalProject_Add_StepDependencies name step)
- set(dependencies ${ARGN})
-
- # Sanity checks on "name" and "step".
- if(NOT TARGET ${name})
- message(FATAL_ERROR "Cannot find target \"${name}\". Perhaps it has not yet been created using ExternalProject_Add.")
- endif()
-
- get_property(type TARGET ${name} PROPERTY TYPE)
- if(NOT type STREQUAL "UTILITY")
- message(FATAL_ERROR "Target \"${name}\" was not generated by ExternalProject_Add.")
- endif()
-
- get_property(is_ep TARGET ${name} PROPERTY _EP_IS_EXTERNAL_PROJECT)
- if(NOT is_ep)
- message(FATAL_ERROR "Target \"${name}\" was not generated by ExternalProject_Add.")
- endif()
-
- get_property(steps TARGET ${name} PROPERTY _EP_STEPS)
- list(FIND steps ${step} is_step)
- if(NOT is_step)
- message(FATAL_ERROR "External project \"${name}\" does not have a step \"${step}\".")
- endif()
-
- if(TARGET ${name}-${step})
- get_property(type TARGET ${name}-${step} PROPERTY TYPE)
- if(NOT type STREQUAL "UTILITY")
- message(FATAL_ERROR "Target \"${name}-${step}\" was not generated by ExternalProject_Add_StepTargets.")
- endif()
- get_property(is_ep_step TARGET ${name}-${step} PROPERTY _EP_IS_EXTERNAL_PROJECT_STEP)
- if(NOT is_ep_step)
- message(FATAL_ERROR "Target \"${name}-${step}\" was not generated by ExternalProject_Add_StepTargets.")
- endif()
- endif()
-
- # Always add file-level dependency, but add target-level dependency
- # only if the target exists for that step.
- _ep_get_step_stampfile(${name} ${step} stamp_file)
- foreach(dep ${dependencies})
- add_custom_command(APPEND
- OUTPUT ${stamp_file}
- DEPENDS ${dep})
- if(TARGET ${name}-${step})
- foreach(dep ${dependencies})
- add_dependencies(${name}-${step} ${dep})
- endforeach()
- endif()
- endforeach()
-
-endfunction()
-
-
-function(_ep_add_mkdir_command name)
- ExternalProject_Get_Property(${name}
- source_dir binary_dir install_dir stamp_dir download_dir tmp_dir log_dir)
-
- _ep_get_configuration_subdir_suffix(cfgdir)
-
- ExternalProject_Add_Step(${name} mkdir
- COMMENT "Creating directories for '${name}'"
- COMMAND ${CMAKE_COMMAND} -E make_directory ${source_dir}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${binary_dir}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${install_dir}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${tmp_dir}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${stamp_dir}${cfgdir}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${download_dir}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${log_dir}
- )
-endfunction()
-
-
-function(_ep_is_dir_empty dir empty_var)
- file(GLOB gr "${dir}/*")
- if("${gr}" STREQUAL "")
- set(${empty_var} 1 PARENT_SCOPE)
- else()
- set(${empty_var} 0 PARENT_SCOPE)
- endif()
-endfunction()
-
-
-function(_ep_add_download_command name)
- ExternalProject_Get_Property(${name} source_dir stamp_dir download_dir tmp_dir)
-
- get_property(cmd_set TARGET ${name} PROPERTY _EP_DOWNLOAD_COMMAND SET)
- get_property(cmd TARGET ${name} PROPERTY _EP_DOWNLOAD_COMMAND)
- get_property(cvs_repository TARGET ${name} PROPERTY _EP_CVS_REPOSITORY)
- get_property(svn_repository TARGET ${name} PROPERTY _EP_SVN_REPOSITORY)
- get_property(git_repository TARGET ${name} PROPERTY _EP_GIT_REPOSITORY)
- get_property(hg_repository TARGET ${name} PROPERTY _EP_HG_REPOSITORY )
- get_property(url TARGET ${name} PROPERTY _EP_URL)
- get_property(fname TARGET ${name} PROPERTY _EP_DOWNLOAD_NAME)
-
- # TODO: Perhaps file:// should be copied to download dir before extraction.
- string(REGEX REPLACE "file://" "" url "${url}")
-
- set(depends)
- set(comment)
- set(work_dir)
-
- if(cmd_set)
- set(work_dir ${download_dir})
- elseif(cvs_repository)
- find_package(CVS QUIET)
- if(NOT CVS_EXECUTABLE)
- message(FATAL_ERROR "error: could not find cvs for checkout of ${name}")
- endif()
-
- get_target_property(cvs_module ${name} _EP_CVS_MODULE)
- if(NOT cvs_module)
- message(FATAL_ERROR "error: no CVS_MODULE")
- endif()
-
- get_property(cvs_tag TARGET ${name} PROPERTY _EP_CVS_TAG)
-
- set(repository ${cvs_repository})
- set(module ${cvs_module})
- set(tag ${cvs_tag})
- configure_file(
- "${CMAKE_ROOT}/Modules/RepositoryInfo.txt.in"
- "${stamp_dir}/${name}-cvsinfo.txt"
- @ONLY
- )
-
- get_filename_component(src_name "${source_dir}" NAME)
- get_filename_component(work_dir "${source_dir}" PATH)
- set(comment "Performing download step (CVS checkout) for '${name}'")
- set(cmd ${CVS_EXECUTABLE} -d ${cvs_repository} -q co ${cvs_tag} -d ${src_name} ${cvs_module})
- list(APPEND depends ${stamp_dir}/${name}-cvsinfo.txt)
- elseif(svn_repository)
- find_package(Subversion QUIET)
- if(NOT Subversion_SVN_EXECUTABLE)
- message(FATAL_ERROR "error: could not find svn for checkout of ${name}")
- endif()
-
- get_property(svn_revision TARGET ${name} PROPERTY _EP_SVN_REVISION)
- get_property(svn_username TARGET ${name} PROPERTY _EP_SVN_USERNAME)
- get_property(svn_password TARGET ${name} PROPERTY _EP_SVN_PASSWORD)
- get_property(svn_trust_cert TARGET ${name} PROPERTY _EP_SVN_TRUST_CERT)
-
- set(repository "${svn_repository} user=${svn_username} password=${svn_password}")
- set(module)
- set(tag ${svn_revision})
- configure_file(
- "${CMAKE_ROOT}/Modules/RepositoryInfo.txt.in"
- "${stamp_dir}/${name}-svninfo.txt"
- @ONLY
- )
-
- get_filename_component(src_name "${source_dir}" NAME)
- get_filename_component(work_dir "${source_dir}" PATH)
- set(comment "Performing download step (SVN checkout) for '${name}'")
- set(svn_user_pw_args "")
- if(DEFINED svn_username)
- set(svn_user_pw_args ${svn_user_pw_args} "--username=${svn_username}")
- endif()
- if(DEFINED svn_password)
- set(svn_user_pw_args ${svn_user_pw_args} "--password=${svn_password}")
- endif()
- if(svn_trust_cert)
- set(svn_trust_cert_args --trust-server-cert)
- endif()
- set(cmd ${Subversion_SVN_EXECUTABLE} co ${svn_repository} ${svn_revision}
- --non-interactive ${svn_trust_cert_args} ${svn_user_pw_args} ${src_name})
- list(APPEND depends ${stamp_dir}/${name}-svninfo.txt)
- elseif(git_repository)
- unset(CMAKE_MODULE_PATH) # Use CMake builtin find module
- find_package(Git QUIET)
- if(NOT GIT_EXECUTABLE)
- message(FATAL_ERROR "error: could not find git for clone of ${name}")
- endif()
-
- # The git submodule update '--recursive' flag requires git >= v1.6.5
- #
- if(GIT_VERSION_STRING VERSION_LESS 1.6.5)
- message(FATAL_ERROR "error: git version 1.6.5 or later required for 'git submodule update --recursive': GIT_VERSION_STRING='${GIT_VERSION_STRING}'")
- endif()
-
- get_property(git_tag TARGET ${name} PROPERTY _EP_GIT_TAG)
- if(NOT git_tag)
- set(git_tag "master")
- endif()
-
- set(git_init_submodules TRUE)
- get_property(git_submodules_set TARGET ${name} PROPERTY _EP_GIT_SUBMODULES SET)
- if(git_submodules_set)
- get_property(git_submodules TARGET ${name} PROPERTY _EP_GIT_SUBMODULES)
- if(git_submodules STREQUAL "" AND _EP_CMP0097 STREQUAL "NEW")
- set(git_init_submodules FALSE)
- endif()
- endif()
-
- get_property(git_remote_name TARGET ${name} PROPERTY _EP_GIT_REMOTE_NAME)
- if(NOT git_remote_name)
- set(git_remote_name "origin")
- endif()
-
- get_property(tls_verify TARGET ${name} PROPERTY _EP_TLS_VERIFY)
- if("x${tls_verify}" STREQUAL "x" AND DEFINED CMAKE_TLS_VERIFY)
- set(tls_verify "${CMAKE_TLS_VERIFY}")
- endif()
- get_property(git_shallow TARGET ${name} PROPERTY _EP_GIT_SHALLOW)
- get_property(git_progress TARGET ${name} PROPERTY _EP_GIT_PROGRESS)
- get_property(git_config TARGET ${name} PROPERTY _EP_GIT_CONFIG)
-
- # For the download step, and the git clone operation, only the repository
- # should be recorded in a configured RepositoryInfo file. If the repo
- # changes, the clone script should be run again. But if only the tag
- # changes, avoid running the clone script again. Let the 'always' running
- # update step checkout the new tag.
- #
- set(repository ${git_repository})
- set(module)
- set(tag ${git_remote_name})
- configure_file(
- "${CMAKE_ROOT}/Modules/RepositoryInfo.txt.in"
- "${stamp_dir}/${name}-gitinfo.txt"
- @ONLY
- )
-
- get_filename_component(src_name "${source_dir}" NAME)
- get_filename_component(work_dir "${source_dir}" PATH)
-
- # Since git clone doesn't succeed if the non-empty source_dir exists,
- # create a cmake script to invoke as download command.
- # The script will delete the source directory and then call git clone.
- #
- _ep_write_gitclone_script(${tmp_dir}/${name}-gitclone.cmake ${source_dir}
- ${GIT_EXECUTABLE} ${git_repository} ${git_tag} ${git_remote_name} ${git_init_submodules} "${git_submodules}" "${git_shallow}" "${git_progress}" "${git_config}" ${src_name} ${work_dir}
- ${stamp_dir}/${name}-gitinfo.txt ${stamp_dir}/${name}-gitclone-lastrun.txt "${tls_verify}"
- )
- set(comment "Performing download step (git clone) for '${name}'")
- set(cmd ${CMAKE_COMMAND} -P ${tmp_dir}/${name}-gitclone.cmake)
- list(APPEND depends ${stamp_dir}/${name}-gitinfo.txt)
- elseif(hg_repository)
- find_package(Hg QUIET)
- if(NOT HG_EXECUTABLE)
- message(FATAL_ERROR "error: could not find hg for clone of ${name}")
- endif()
-
- get_property(hg_tag TARGET ${name} PROPERTY _EP_HG_TAG)
- if(NOT hg_tag)
- set(hg_tag "tip")
- endif()
-
- # For the download step, and the hg clone operation, only the repository
- # should be recorded in a configured RepositoryInfo file. If the repo
- # changes, the clone script should be run again. But if only the tag
- # changes, avoid running the clone script again. Let the 'always' running
- # update step checkout the new tag.
- #
- set(repository ${hg_repository})
- set(module)
- set(tag)
- configure_file(
- "${CMAKE_ROOT}/Modules/RepositoryInfo.txt.in"
- "${stamp_dir}/${name}-hginfo.txt"
- @ONLY
- )
-
- get_filename_component(src_name "${source_dir}" NAME)
- get_filename_component(work_dir "${source_dir}" PATH)
-
- # Since hg clone doesn't succeed if the non-empty source_dir exists,
- # create a cmake script to invoke as download command.
- # The script will delete the source directory and then call hg clone.
- #
- _ep_write_hgclone_script(${tmp_dir}/${name}-hgclone.cmake ${source_dir}
- ${HG_EXECUTABLE} ${hg_repository} ${hg_tag} ${src_name} ${work_dir}
- ${stamp_dir}/${name}-hginfo.txt ${stamp_dir}/${name}-hgclone-lastrun.txt
- )
- set(comment "Performing download step (hg clone) for '${name}'")
- set(cmd ${CMAKE_COMMAND} -P ${tmp_dir}/${name}-hgclone.cmake)
- list(APPEND depends ${stamp_dir}/${name}-hginfo.txt)
- elseif(url)
- get_filename_component(work_dir "${source_dir}" PATH)
- get_property(hash TARGET ${name} PROPERTY _EP_URL_HASH)
- if(hash AND NOT "${hash}" MATCHES "${_ep_hash_regex}")
- message(FATAL_ERROR "URL_HASH is set to\n ${hash}\n"
- "but must be ALGO=value where ALGO is\n ${_ep_hash_algos}\n"
- "and value is a hex string.")
- endif()
- get_property(md5 TARGET ${name} PROPERTY _EP_URL_MD5)
- if(md5 AND NOT "MD5=${md5}" MATCHES "${_ep_hash_regex}")
- message(FATAL_ERROR "URL_MD5 is set to\n ${md5}\nbut must be a hex string.")
- endif()
- if(md5 AND NOT hash)
- set(hash "MD5=${md5}")
- endif()
- set(repository "external project URL")
- set(module "${url}")
- set(tag "${hash}")
- configure_file(
- "${CMAKE_ROOT}/Modules/RepositoryInfo.txt.in"
- "${stamp_dir}/${name}-urlinfo.txt"
- @ONLY
- )
- list(APPEND depends ${stamp_dir}/${name}-urlinfo.txt)
-
- list(LENGTH url url_list_length)
- if(NOT "${url_list_length}" STREQUAL "1")
- foreach(entry ${url})
- if(NOT "${entry}" MATCHES "^[a-z]+://")
- message(FATAL_ERROR "At least one entry of URL is a path (invalid in a list)")
- endif()
- endforeach()
- if("x${fname}" STREQUAL "x")
- list(GET url 0 fname)
- endif()
- endif()
-
- if(IS_DIRECTORY "${url}")
- get_filename_component(abs_dir "${url}" ABSOLUTE)
- set(comment "Performing download step (DIR copy) for '${name}'")
- set(cmd ${CMAKE_COMMAND} -E remove_directory ${source_dir}
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${abs_dir} ${source_dir})
- else()
- get_property(no_extract TARGET "${name}" PROPERTY _EP_DOWNLOAD_NO_EXTRACT SET)
- if("${url}" MATCHES "^[a-z]+://")
- # TODO: Should download and extraction be different steps?
- if("x${fname}" STREQUAL "x")
- set(fname "${url}")
- endif()
- if("${fname}" MATCHES [[([^/\?#]+(\.|=)(7z|tar|tar\.bz2|tar\.gz|tar\.xz|tbz2|tgz|txz|zip))([/?#].*)?$]])
- set(fname "${CMAKE_MATCH_1}")
- elseif(no_extract)
- get_filename_component(fname "${fname}" NAME)
- else()
- # Fall back to a default file name. The actual file name does not
- # matter because it is used only internally and our extraction tool
- # inspects the file content directly. If it turns out the wrong URL
- # was given that will be revealed during the build which is an easier
- # place for users to diagnose than an error here anyway.
- set(fname "archive.tar")
- endif()
- string(REPLACE ";" "-" fname "${fname}")
- set(file ${download_dir}/${fname})
- get_property(timeout TARGET ${name} PROPERTY _EP_TIMEOUT)
- get_property(no_progress TARGET ${name} PROPERTY _EP_DOWNLOAD_NO_PROGRESS)
- get_property(tls_verify TARGET ${name} PROPERTY _EP_TLS_VERIFY)
- get_property(tls_cainfo TARGET ${name} PROPERTY _EP_TLS_CAINFO)
- get_property(netrc TARGET ${name} PROPERTY _EP_NETRC)
- get_property(netrc_file TARGET ${name} PROPERTY _EP_NETRC_FILE)
- get_property(http_username TARGET ${name} PROPERTY _EP_HTTP_USERNAME)
- get_property(http_password TARGET ${name} PROPERTY _EP_HTTP_PASSWORD)
- get_property(http_headers TARGET ${name} PROPERTY _EP_HTTP_HEADER)
- set(download_script "${stamp_dir}/download-${name}.cmake")
- _ep_write_downloadfile_script("${download_script}" "${url}" "${file}" "${timeout}" "${no_progress}" "${hash}" "${tls_verify}" "${tls_cainfo}" "${http_username}:${http_password}" "${http_headers}" "${netrc}" "${netrc_file}")
- set(cmd ${CMAKE_COMMAND} -P "${download_script}"
- COMMAND)
- if (no_extract)
- set(steps "download and verify")
- else ()
- set(steps "download, verify and extract")
- endif ()
- set(comment "Performing download step (${steps}) for '${name}'")
- file(WRITE "${stamp_dir}/verify-${name}.cmake" "") # already verified by 'download_script'
- else()
- set(file "${url}")
- if (no_extract)
- set(steps "verify")
- else ()
- set(steps "verify and extract")
- endif ()
- set(comment "Performing download step (${steps}) for '${name}'")
- _ep_write_verifyfile_script("${stamp_dir}/verify-${name}.cmake" "${file}" "${hash}")
- endif()
- list(APPEND cmd ${CMAKE_COMMAND} -P ${stamp_dir}/verify-${name}.cmake)
- if (NOT no_extract)
- _ep_write_extractfile_script("${stamp_dir}/extract-${name}.cmake" "${name}" "${file}" "${source_dir}")
- list(APPEND cmd COMMAND ${CMAKE_COMMAND} -P ${stamp_dir}/extract-${name}.cmake)
- else ()
- set_property(TARGET ${name} PROPERTY _EP_DOWNLOADED_FILE ${file})
- endif ()
- endif()
- else()
- _ep_is_dir_empty("${source_dir}" empty)
- if(${empty})
- message(SEND_ERROR
- "No download info given for '${name}' and its source directory:\n"
- " ${source_dir}\n"
- "is not an existing non-empty directory. Please specify one of:\n"
- " * SOURCE_DIR with an existing non-empty directory\n"
- " * DOWNLOAD_COMMAND\n"
- " * URL\n"
- " * GIT_REPOSITORY\n"
- " * SVN_REPOSITORY\n"
- " * HG_REPOSITORY\n"
- " * CVS_REPOSITORY and CVS_MODULE"
- )
- endif()
- endif()
-
- get_property(log TARGET ${name} PROPERTY _EP_LOG_DOWNLOAD)
- if(log)
- set(log LOG 1)
- else()
- set(log "")
- endif()
-
- get_property(uses_terminal TARGET ${name} PROPERTY
- _EP_USES_TERMINAL_DOWNLOAD)
- if(uses_terminal)
- set(uses_terminal USES_TERMINAL 1)
- else()
- set(uses_terminal "")
- endif()
-
- ExternalProject_Add_Step(${name} download
- COMMENT ${comment}
- COMMAND ${cmd}
- WORKING_DIRECTORY ${work_dir}
- DEPENDS ${depends}
- DEPENDEES mkdir
- ${log}
- ${uses_terminal}
- )
-endfunction()
-
-
-function(_ep_add_update_command name)
- ExternalProject_Get_Property(${name} source_dir tmp_dir)
-
- get_property(cmd_set TARGET ${name} PROPERTY _EP_UPDATE_COMMAND SET)
- get_property(cmd TARGET ${name} PROPERTY _EP_UPDATE_COMMAND)
- get_property(cvs_repository TARGET ${name} PROPERTY _EP_CVS_REPOSITORY)
- get_property(svn_repository TARGET ${name} PROPERTY _EP_SVN_REPOSITORY)
- get_property(git_repository TARGET ${name} PROPERTY _EP_GIT_REPOSITORY)
- get_property(hg_repository TARGET ${name} PROPERTY _EP_HG_REPOSITORY )
- get_property(update_disconnected_set TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED SET)
- if(update_disconnected_set)
- get_property(update_disconnected TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED)
- else()
- get_property(update_disconnected DIRECTORY PROPERTY EP_UPDATE_DISCONNECTED)
- endif()
-
- set(work_dir)
- set(comment)
- set(always)
-
- if(cmd_set)
- set(work_dir ${source_dir})
- if(NOT "x${cmd}" STREQUAL "x")
- set(always 1)
- endif()
- elseif(cvs_repository)
- if(NOT CVS_EXECUTABLE)
- message(FATAL_ERROR "error: could not find cvs for update of ${name}")
- endif()
- set(work_dir ${source_dir})
- set(comment "Performing update step (CVS update) for '${name}'")
- get_property(cvs_tag TARGET ${name} PROPERTY _EP_CVS_TAG)
- set(cmd ${CVS_EXECUTABLE} -d ${cvs_repository} -q up -dP ${cvs_tag})
- set(always 1)
- elseif(svn_repository)
- if(NOT Subversion_SVN_EXECUTABLE)
- message(FATAL_ERROR "error: could not find svn for update of ${name}")
- endif()
- set(work_dir ${source_dir})
- set(comment "Performing update step (SVN update) for '${name}'")
- get_property(svn_revision TARGET ${name} PROPERTY _EP_SVN_REVISION)
- get_property(svn_username TARGET ${name} PROPERTY _EP_SVN_USERNAME)
- get_property(svn_password TARGET ${name} PROPERTY _EP_SVN_PASSWORD)
- get_property(svn_trust_cert TARGET ${name} PROPERTY _EP_SVN_TRUST_CERT)
- set(svn_user_pw_args "")
- if(DEFINED svn_username)
- set(svn_user_pw_args ${svn_user_pw_args} "--username=${svn_username}")
- endif()
- if(DEFINED svn_password)
- set(svn_user_pw_args ${svn_user_pw_args} "--password=${svn_password}")
- endif()
- if(svn_trust_cert)
- set(svn_trust_cert_args --trust-server-cert)
- endif()
- set(cmd ${Subversion_SVN_EXECUTABLE} up ${svn_revision}
- --non-interactive ${svn_trust_cert_args} ${svn_user_pw_args})
- set(always 1)
- elseif(git_repository)
- unset(CMAKE_MODULE_PATH) # Use CMake builtin find module
- find_package(Git QUIET)
- if(NOT GIT_EXECUTABLE)
- message(FATAL_ERROR "error: could not find git for fetch of ${name}")
- endif()
- set(work_dir ${source_dir})
- set(comment "Performing update step for '${name}'")
- get_property(git_tag TARGET ${name} PROPERTY _EP_GIT_TAG)
- if(NOT git_tag)
- set(git_tag "master")
- endif()
- get_property(git_remote_name TARGET ${name} PROPERTY _EP_GIT_REMOTE_NAME)
- if(NOT git_remote_name)
- set(git_remote_name "origin")
- endif()
-
- set(git_init_submodules TRUE)
- get_property(git_submodules_set TARGET ${name} PROPERTY _EP_GIT_SUBMODULES SET)
- if(git_submodules_set)
- get_property(git_submodules TARGET ${name} PROPERTY _EP_GIT_SUBMODULES)
- if(git_submodules STREQUAL "" AND _EP_CMP0097 STREQUAL "NEW")
- set(git_init_submodules FALSE)
- endif()
- endif()
-
- _ep_write_gitupdate_script(${tmp_dir}/${name}-gitupdate.cmake
- ${GIT_EXECUTABLE} ${git_tag} ${git_remote_name} ${git_init_submodules} "${git_submodules}" ${git_repository} ${work_dir}
- )
- set(cmd ${CMAKE_COMMAND} -P ${tmp_dir}/${name}-gitupdate.cmake)
- set(always 1)
- elseif(hg_repository)
- if(NOT HG_EXECUTABLE)
- message(FATAL_ERROR "error: could not find hg for pull of ${name}")
- endif()
- set(work_dir ${source_dir})
- set(comment "Performing update step (hg pull) for '${name}'")
- get_property(hg_tag TARGET ${name} PROPERTY _EP_HG_TAG)
- if(NOT hg_tag)
- set(hg_tag "tip")
- endif()
- if("${HG_VERSION_STRING}" STREQUAL "2.1")
- message(WARNING "Mercurial 2.1 does not distinguish an empty pull from a failed pull:
- http://mercurial.selenic.com/wiki/UpgradeNotes#A2.1.1:_revert_pull_return_code_change.2C_compile_issue_on_OS_X
- http://thread.gmane.org/gmane.comp.version-control.mercurial.devel/47656
-Update to Mercurial >= 2.1.1.
-")
- endif()
- set(cmd ${HG_EXECUTABLE} pull
- COMMAND ${HG_EXECUTABLE} update ${hg_tag}
- )
- set(always 1)
- endif()
-
- get_property(log TARGET ${name} PROPERTY _EP_LOG_UPDATE)
- if(log)
- set(log LOG 1)
- else()
- set(log "")
- endif()
-
- get_property(uses_terminal TARGET ${name} PROPERTY
- _EP_USES_TERMINAL_UPDATE)
- if(uses_terminal)
- set(uses_terminal USES_TERMINAL 1)
- else()
- set(uses_terminal "")
- endif()
-
- ExternalProject_Add_Step(${name} update
- COMMENT ${comment}
- COMMAND ${cmd}
- ALWAYS ${always}
- EXCLUDE_FROM_MAIN ${update_disconnected}
- WORKING_DIRECTORY ${work_dir}
- DEPENDEES download
- ${log}
- ${uses_terminal}
- )
-
- if(update_disconnected)
- _ep_get_step_stampfile(${name} skip-update skip-update_stamp_file)
- string(REPLACE "Performing" "Skipping" comment "${comment}")
- ExternalProject_Add_Step(${name} skip-update
- COMMENT ${comment}
- ALWAYS ${always}
- EXCLUDE_FROM_MAIN 1
- WORKING_DIRECTORY ${work_dir}
- DEPENDEES download
- ${log}
- ${uses_terminal}
- )
- set_property(SOURCE ${skip-update_stamp_file} PROPERTY SYMBOLIC 1)
- endif()
-
-endfunction()
-
-
-function(_ep_add_patch_command name)
- ExternalProject_Get_Property(${name} source_dir)
-
- get_property(cmd_set TARGET ${name} PROPERTY _EP_PATCH_COMMAND SET)
- get_property(cmd TARGET ${name} PROPERTY _EP_PATCH_COMMAND)
-
- set(work_dir)
-
- if(cmd_set)
- set(work_dir ${source_dir})
- endif()
-
- get_property(log TARGET ${name} PROPERTY _EP_LOG_PATCH)
- if(log)
- set(log LOG 1)
- else()
- set(log "")
- endif()
-
- ExternalProject_Add_Step(${name} patch
- COMMAND ${cmd}
- WORKING_DIRECTORY ${work_dir}
- DEPENDEES download
- ${log}
- )
-endfunction()
-
-
-function(_ep_extract_configure_command var name)
- get_property(cmd_set TARGET ${name} PROPERTY _EP_CONFIGURE_COMMAND SET)
- if(cmd_set)
- get_property(cmd TARGET ${name} PROPERTY _EP_CONFIGURE_COMMAND)
- else()
- get_target_property(cmake_command ${name} _EP_CMAKE_COMMAND)
- if(cmake_command)
- set(cmd "${cmake_command}")
- else()
- set(cmd "${CMAKE_COMMAND}")
- endif()
-
- get_property(cmake_args TARGET ${name} PROPERTY _EP_CMAKE_ARGS)
- list(APPEND cmd ${cmake_args})
-
- # If there are any CMAKE_CACHE_ARGS or CMAKE_CACHE_DEFAULT_ARGS,
- # write an initial cache and use it
- get_property(cmake_cache_args TARGET ${name} PROPERTY _EP_CMAKE_CACHE_ARGS)
- get_property(cmake_cache_default_args TARGET ${name} PROPERTY _EP_CMAKE_CACHE_DEFAULT_ARGS)
-
- set(has_cmake_cache_args 0)
- if(NOT "${cmake_cache_args}" STREQUAL "")
- set(has_cmake_cache_args 1)
- endif()
-
- set(has_cmake_cache_default_args 0)
- if(NOT "${cmake_cache_default_args}" STREQUAL "")
- set(has_cmake_cache_default_args 1)
- endif()
-
- get_target_property(cmake_generator ${name} _EP_CMAKE_GENERATOR)
- get_target_property(cmake_generator_instance ${name} _EP_CMAKE_GENERATOR_INSTANCE)
- get_target_property(cmake_generator_platform ${name} _EP_CMAKE_GENERATOR_PLATFORM)
- get_target_property(cmake_generator_toolset ${name} _EP_CMAKE_GENERATOR_TOOLSET)
- if(cmake_generator)
- list(APPEND cmd "-G${cmake_generator}")
- if(cmake_generator_platform)
- list(APPEND cmd "-A${cmake_generator_platform}")
- endif()
- if(cmake_generator_toolset)
- list(APPEND cmd "-T${cmake_generator_toolset}")
- endif()
- if(cmake_generator_instance)
- list(APPEND cmd "-DCMAKE_GENERATOR_INSTANCE:INTERNAL=${cmake_generator_instance}")
- endif()
- else()
- if(CMAKE_EXTRA_GENERATOR)
- list(APPEND cmd "-G${CMAKE_EXTRA_GENERATOR} - ${CMAKE_GENERATOR}")
- else()
- list(APPEND cmd "-G${CMAKE_GENERATOR}")
- if("${CMAKE_GENERATOR}" MATCHES "Green Hills MULTI")
- set(has_cmake_cache_default_args 1)
- set(cmake_cache_default_args ${cmake_cache_default_args}
- "-DGHS_TARGET_PLATFORM:STRING=${GHS_TARGET_PLATFORM}"
- "-DGHS_PRIMARY_TARGET:STRING=${GHS_PRIMARY_TARGET}"
- "-DGHS_TOOLSET_ROOT:STRING=${GHS_TOOLSET_ROOT}"
- "-DGHS_OS_ROOT:STRING=${GHS_OS_ROOT}"
- "-DGHS_OS_DIR:STRING=${GHS_OS_DIR}"
- "-DGHS_BSP_NAME:STRING=${GHS_BSP_NAME}")
- endif()
- endif()
- if(cmake_generator_platform)
- message(FATAL_ERROR "Option CMAKE_GENERATOR_PLATFORM not allowed without CMAKE_GENERATOR.")
- endif()
- if(CMAKE_GENERATOR_PLATFORM)
- list(APPEND cmd "-A${CMAKE_GENERATOR_PLATFORM}")
- endif()
- if(cmake_generator_toolset)
- message(FATAL_ERROR "Option CMAKE_GENERATOR_TOOLSET not allowed without CMAKE_GENERATOR.")
- endif()
- if(CMAKE_GENERATOR_TOOLSET)
- list(APPEND cmd "-T${CMAKE_GENERATOR_TOOLSET}")
- endif()
- if(cmake_generator_instance)
- message(FATAL_ERROR "Option CMAKE_GENERATOR_INSTANCE not allowed without CMAKE_GENERATOR.")
- endif()
- if(CMAKE_GENERATOR_INSTANCE)
- list(APPEND cmd "-DCMAKE_GENERATOR_INSTANCE:INTERNAL=${CMAKE_GENERATOR_INSTANCE}")
- endif()
- endif()
-
- if(has_cmake_cache_args OR has_cmake_cache_default_args)
- set(_ep_cache_args_script "<TMP_DIR>/${name}-cache-$<CONFIG>.cmake")
- if(has_cmake_cache_args)
- _ep_command_line_to_initial_cache(script_initial_cache_force "${cmake_cache_args}" 1)
- endif()
- if(has_cmake_cache_default_args)
- _ep_command_line_to_initial_cache(script_initial_cache_default "${cmake_cache_default_args}" 0)
- endif()
- _ep_write_initial_cache(${name} "${_ep_cache_args_script}" "${script_initial_cache_force}${script_initial_cache_default}")
- list(APPEND cmd "-C${_ep_cache_args_script}")
- endif()
-
- list(APPEND cmd "<SOURCE_DIR><SOURCE_SUBDIR>")
- endif()
-
- set("${var}" "${cmd}" PARENT_SCOPE)
-endfunction()
-
-# TODO: Make sure external projects use the proper compiler
-function(_ep_add_configure_command name)
- ExternalProject_Get_Property(${name} binary_dir tmp_dir)
-
- # Depend on other external projects (file-level).
- set(file_deps)
- get_property(deps TARGET ${name} PROPERTY _EP_DEPENDS)
- foreach(dep IN LISTS deps)
- get_property(dep_type TARGET ${dep} PROPERTY TYPE)
- if(dep_type STREQUAL "UTILITY")
- get_property(is_ep TARGET ${dep} PROPERTY _EP_IS_EXTERNAL_PROJECT)
- if(is_ep)
- _ep_get_step_stampfile(${dep} "done" done_stamp_file)
- list(APPEND file_deps ${done_stamp_file})
- endif()
- endif()
- endforeach()
-
- _ep_extract_configure_command(cmd ${name})
-
- # If anything about the configure command changes, (command itself, cmake
- # used, cmake args or cmake generator) then re-run the configure step.
- # Fixes issue https://gitlab.kitware.com/cmake/cmake/issues/10258
- #
- if(NOT EXISTS ${tmp_dir}/${name}-cfgcmd.txt.in)
- file(WRITE ${tmp_dir}/${name}-cfgcmd.txt.in "cmd='\@cmd\@'\n")
- endif()
- configure_file(${tmp_dir}/${name}-cfgcmd.txt.in ${tmp_dir}/${name}-cfgcmd.txt)
- list(APPEND file_deps ${tmp_dir}/${name}-cfgcmd.txt)
- list(APPEND file_deps ${_ep_cache_args_script})
-
- get_property(log TARGET ${name} PROPERTY _EP_LOG_CONFIGURE)
- if(log)
- set(log LOG 1)
- else()
- set(log "")
- endif()
-
- get_property(uses_terminal TARGET ${name} PROPERTY
- _EP_USES_TERMINAL_CONFIGURE)
- if(uses_terminal)
- set(uses_terminal USES_TERMINAL 1)
- else()
- set(uses_terminal "")
- endif()
-
- get_property(update_disconnected_set TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED SET)
- if(update_disconnected_set)
- get_property(update_disconnected TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED)
- else()
- get_property(update_disconnected DIRECTORY PROPERTY EP_UPDATE_DISCONNECTED)
- endif()
- if(update_disconnected)
- set(update_dep skip-update)
- else()
- set(update_dep update)
- endif()
-
- ExternalProject_Add_Step(${name} configure
- COMMAND ${cmd}
- WORKING_DIRECTORY ${binary_dir}
- DEPENDEES ${update_dep} patch
- DEPENDS ${file_deps}
- ${log}
- ${uses_terminal}
- )
-endfunction()
-
-
-function(_ep_add_build_command name)
- ExternalProject_Get_Property(${name} binary_dir)
-
- get_property(cmd_set TARGET ${name} PROPERTY _EP_BUILD_COMMAND SET)
- if(cmd_set)
- get_property(cmd TARGET ${name} PROPERTY _EP_BUILD_COMMAND)
- else()
- _ep_get_build_command(${name} BUILD cmd)
- endif()
-
- get_property(log TARGET ${name} PROPERTY _EP_LOG_BUILD)
- if(log)
- set(log LOG 1)
- else()
- set(log "")
- endif()
-
- get_property(uses_terminal TARGET ${name} PROPERTY
- _EP_USES_TERMINAL_BUILD)
- if(uses_terminal)
- set(uses_terminal USES_TERMINAL 1)
- else()
- set(uses_terminal "")
- endif()
-
- get_property(build_always TARGET ${name} PROPERTY _EP_BUILD_ALWAYS)
- if(build_always)
- set(always 1)
- else()
- set(always 0)
- endif()
-
- get_property(build_byproducts TARGET ${name} PROPERTY _EP_BUILD_BYPRODUCTS)
-
- ExternalProject_Add_Step(${name} build
- COMMAND ${cmd}
- BYPRODUCTS ${build_byproducts}
- WORKING_DIRECTORY ${binary_dir}
- DEPENDEES configure
- ALWAYS ${always}
- ${log}
- ${uses_terminal}
- )
-endfunction()
-
-
-function(_ep_add_install_command name)
- ExternalProject_Get_Property(${name} binary_dir)
-
- get_property(cmd_set TARGET ${name} PROPERTY _EP_INSTALL_COMMAND SET)
- if(cmd_set)
- get_property(cmd TARGET ${name} PROPERTY _EP_INSTALL_COMMAND)
- else()
- _ep_get_build_command(${name} INSTALL cmd)
- endif()
-
- get_property(log TARGET ${name} PROPERTY _EP_LOG_INSTALL)
- if(log)
- set(log LOG 1)
- else()
- set(log "")
- endif()
-
- get_property(uses_terminal TARGET ${name} PROPERTY
- _EP_USES_TERMINAL_INSTALL)
- if(uses_terminal)
- set(uses_terminal USES_TERMINAL 1)
- else()
- set(uses_terminal "")
- endif()
-
- ExternalProject_Add_Step(${name} install
- COMMAND ${cmd}
- WORKING_DIRECTORY ${binary_dir}
- DEPENDEES build
- ${log}
- ${uses_terminal}
- )
-endfunction()
-
-
-function(_ep_add_test_command name)
- ExternalProject_Get_Property(${name} binary_dir)
-
- get_property(before TARGET ${name} PROPERTY _EP_TEST_BEFORE_INSTALL)
- get_property(after TARGET ${name} PROPERTY _EP_TEST_AFTER_INSTALL)
- get_property(exclude TARGET ${name} PROPERTY _EP_TEST_EXCLUDE_FROM_MAIN)
- get_property(cmd_set TARGET ${name} PROPERTY _EP_TEST_COMMAND SET)
-
- # Only actually add the test step if one of the test related properties is
- # explicitly set. (i.e. the test step is omitted unless requested...)
- #
- if(cmd_set OR before OR after OR exclude)
- if(cmd_set)
- get_property(cmd TARGET ${name} PROPERTY _EP_TEST_COMMAND)
- else()
- _ep_get_build_command(${name} TEST cmd)
- endif()
-
- if(before)
- set(dependees_args DEPENDEES build)
- else()
- set(dependees_args DEPENDEES install)
- endif()
-
- if(exclude)
- set(dependers_args "")
- set(exclude_args EXCLUDE_FROM_MAIN 1)
- else()
- if(before)
- set(dependers_args DEPENDERS install)
- else()
- set(dependers_args "")
- endif()
- set(exclude_args "")
- endif()
-
- get_property(log TARGET ${name} PROPERTY _EP_LOG_TEST)
- if(log)
- set(log LOG 1)
- else()
- set(log "")
- endif()
-
- get_property(uses_terminal TARGET ${name} PROPERTY
- _EP_USES_TERMINAL_TEST)
- if(uses_terminal)
- set(uses_terminal USES_TERMINAL 1)
- else()
- set(uses_terminal "")
- endif()
-
- ExternalProject_Add_Step(${name} test
- COMMAND ${cmd}
- WORKING_DIRECTORY ${binary_dir}
- ${dependees_args}
- ${dependers_args}
- ${exclude_args}
- ${log}
- ${uses_terminal}
- )
- endif()
-endfunction()
-
-
-function(ExternalProject_Add name)
- cmake_policy(GET CMP0097 _EP_CMP0097
- PARENT_SCOPE # undocumented, do not use outside of CMake
- )
-
- _ep_get_configuration_subdir_suffix(cfgdir)
-
- # Add a custom target for the external project.
- set(cmf_dir ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles)
- _ep_get_complete_stampfile(${name} complete_stamp_file)
-
- # The "ALL" option to add_custom_target just tells it to not set the
- # EXCLUDE_FROM_ALL target property. Later, if the EXCLUDE_FROM_ALL
- # argument was passed, we explicitly set it for the target.
- add_custom_target(${name} ALL DEPENDS ${complete_stamp_file})
- set_property(TARGET ${name} PROPERTY _EP_IS_EXTERNAL_PROJECT 1)
- set_property(TARGET ${name} PROPERTY LABELS ${name})
- set_property(TARGET ${name} PROPERTY FOLDER "ExternalProjectTargets/${name}")
-
- _ep_parse_arguments(ExternalProject_Add ${name} _EP_ "${ARGN}")
- _ep_set_directories(${name})
- _ep_get_step_stampfile(${name} "done" done_stamp_file)
- _ep_get_step_stampfile(${name} "install" install_stamp_file)
-
- # Set the EXCLUDE_FROM_ALL target property if required.
- get_property(exclude_from_all TARGET ${name} PROPERTY _EP_EXCLUDE_FROM_ALL)
- if(exclude_from_all)
- set_property(TARGET ${name} PROPERTY EXCLUDE_FROM_ALL TRUE)
- endif()
-
- # The 'complete' step depends on all other steps and creates a
- # 'done' mark. A dependent external project's 'configure' step
- # depends on the 'done' mark so that it rebuilds when this project
- # rebuilds. It is important that 'done' is not the output of any
- # custom command so that CMake does not propagate build rules to
- # other external project targets, which may cause problems during
- # parallel builds. However, the Ninja generator needs to see the entire
- # dependency graph, and can cope with custom commands belonging to
- # multiple targets, so we add the 'done' mark as an output for Ninja only.
- set(complete_outputs ${complete_stamp_file})
- if(${CMAKE_GENERATOR} MATCHES "Ninja")
- set(complete_outputs ${complete_outputs} ${done_stamp_file})
- endif()
-
- add_custom_command(
- OUTPUT ${complete_outputs}
- COMMENT "Completed '${name}'"
- COMMAND ${CMAKE_COMMAND} -E make_directory ${cmf_dir}${cfgdir}
- COMMAND ${CMAKE_COMMAND} -E touch ${complete_stamp_file}
- COMMAND ${CMAKE_COMMAND} -E touch ${done_stamp_file}
- DEPENDS ${install_stamp_file}
- VERBATIM
- )
-
-
- # Depend on other external projects (target-level).
- get_property(deps TARGET ${name} PROPERTY _EP_DEPENDS)
- foreach(arg IN LISTS deps)
- add_dependencies(${name} ${arg})
- endforeach()
-
- # Set up custom build steps based on the target properties.
- # Each step depends on the previous one.
- #
- # The target depends on the output of the final step.
- # (Already set up above in the DEPENDS of the add_custom_target command.)
- #
- _ep_add_mkdir_command(${name})
- _ep_add_download_command(${name})
- _ep_add_update_command(${name})
- _ep_add_patch_command(${name})
- _ep_add_configure_command(${name})
- _ep_add_build_command(${name})
- _ep_add_install_command(${name})
-
- # Test is special in that it might depend on build, or it might depend
- # on install.
- #
- _ep_add_test_command(${name})
-endfunction()
-
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FetchContent.cmake b/share/cmake-3.16/Modules/FetchContent.cmake
deleted file mode 100644
index 5716b01..0000000
--- a/share/cmake-3.16/Modules/FetchContent.cmake
+++ /dev/null
@@ -1,1061 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FetchContent
-------------------
-
-.. only:: html
-
- .. contents::
-
-Overview
-^^^^^^^^
-
-This module enables populating content at configure time via any method
-supported by the :module:`ExternalProject` module. Whereas
-:command:`ExternalProject_Add` downloads at build time, the
-``FetchContent`` module makes content available immediately, allowing the
-configure step to use the content in commands like :command:`add_subdirectory`,
-:command:`include` or :command:`file` operations.
-
-Content population details would normally be defined separately from the
-command that performs the actual population. This separation ensures that
-all of the dependency details are defined before anything may try to use those
-details to populate content. This is particularly important in more complex
-project hierarchies where dependencies may be shared between multiple projects.
-
-The following shows a typical example of declaring content details:
-
-.. code-block:: cmake
-
- FetchContent_Declare(
- googletest
- GIT_REPOSITORY https://github.com/google/googletest.git
- GIT_TAG release-1.8.0
- )
-
-For most typical cases, populating the content can then be done with a single
-command like so:
-
-.. code-block:: cmake
-
- FetchContent_MakeAvailable(googletest)
-
-The above command not only populates the content, it also adds it to the main
-build (if possible) so that the main build can use the populated project's
-targets, etc. In some cases, the main project may need to have more precise
-control over the population or may be required to explicitly define the
-population steps (e.g. if CMake versions earlier than 3.14 need to be
-supported). The typical pattern of such custom steps looks like this:
-
-.. code-block:: cmake
-
- FetchContent_GetProperties(googletest)
- if(NOT googletest_POPULATED)
- FetchContent_Populate(googletest)
- add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR})
- endif()
-
-Regardless of which population method is used, when using the
-declare-populate pattern with a hierarchical project arrangement, projects at
-higher levels in the hierarchy are able to override the population details of
-content specified anywhere lower in the project hierarchy. The ability to
-detect whether content has already been populated ensures that even if
-multiple child projects want certain content to be available, the first one
-to populate it wins. The other child project can simply make use of the
-already available content instead of repeating the population for itself.
-See the :ref:`Examples <fetch-content-examples>` section which demonstrates
-this scenario.
-
-The ``FetchContent`` module also supports defining and populating
-content in a single call, with no check for whether the content has been
-populated elsewhere in the project already. This is a more low level
-operation and would not normally be the way the module is used, but it is
-sometimes useful as part of implementing some higher level feature or to
-populate some content in CMake's script mode.
-
-
-Declaring Content Details
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. command:: FetchContent_Declare
-
- .. code-block:: cmake
-
- FetchContent_Declare(<name> <contentOptions>...)
-
- The ``FetchContent_Declare()`` function records the options that describe
- how to populate the specified content, but if such details have already
- been recorded earlier in this project (regardless of where in the project
- hierarchy), this and all later calls for the same content ``<name>`` are
- ignored. This "first to record, wins" approach is what allows hierarchical
- projects to have parent projects override content details of child projects.
-
- The content ``<name>`` can be any string without spaces, but good practice
- would be to use only letters, numbers and underscores. The name will be
- treated case-insensitively and it should be obvious for the content it
- represents, often being the name of the child project or the value given
- to its top level :command:`project` command (if it is a CMake project).
- For well-known public projects, the name should generally be the official
- name of the project. Choosing an unusual name makes it unlikely that other
- projects needing that same content will use the same name, leading to
- the content being populated multiple times.
-
- The ``<contentOptions>`` can be any of the download or update/patch options
- that the :command:`ExternalProject_Add` command understands. The configure,
- build, install and test steps are explicitly disabled and therefore options
- related to them will be ignored. In most cases, ``<contentOptions>`` will
- just be a couple of options defining the download method and method-specific
- details like a commit tag or archive hash. For example:
-
- .. code-block:: cmake
-
- FetchContent_Declare(
- googletest
- GIT_REPOSITORY https://github.com/google/googletest.git
- GIT_TAG release-1.8.0
- )
-
- FetchContent_Declare(
- myCompanyIcons
- URL https://intranet.mycompany.com/assets/iconset_1.12.tar.gz
- URL_HASH 5588a7b18261c20068beabfb4f530b87
- )
-
- FetchContent_Declare(
- myCompanyCertificates
- SVN_REPOSITORY svn+ssh://svn.mycompany.com/srv/svn/trunk/certs
- SVN_REVISION -r12345
- )
-
-Populating The Content
-^^^^^^^^^^^^^^^^^^^^^^
-
-For most common scenarios, population means making content available to the
-main build according to previously declared details for that dependency.
-There are two main patterns for populating content, one based on calling
-:command:`FetchContent_GetProperties` and
-:command:`FetchContent_Populate` for more precise control and the other on
-calling :command:`FetchContent_MakeAvailable` for a simpler, more automated
-approach. The former generally follows this canonical pattern:
-
-.. _`fetch-content-canonical-pattern`:
-
-.. code-block:: cmake
-
- # Check if population has already been performed
- FetchContent_GetProperties(<name>)
- string(TOLOWER "<name>" lcName)
- if(NOT ${lcName}_POPULATED)
- # Fetch the content using previously declared details
- FetchContent_Populate(<name>)
-
- # Set custom variables, policies, etc.
- # ...
-
- # Bring the populated content into the build
- add_subdirectory(${${lcName}_SOURCE_DIR} ${${lcName}_BINARY_DIR})
- endif()
-
-The above is such a common pattern that, where no custom steps are needed
-between the calls to :command:`FetchContent_Populate` and
-:command:`add_subdirectory`, equivalent logic can be obtained by calling
-:command:`FetchContent_MakeAvailable` instead (and should be preferred where
-it meets the needs of the project).
-
-.. command:: FetchContent_Populate
-
- .. code-block:: cmake
-
- FetchContent_Populate( <name> )
-
- In most cases, the only argument given to ``FetchContent_Populate()`` is the
- ``<name>``. When used this way, the command assumes the content details have
- been recorded by an earlier call to :command:`FetchContent_Declare`. The
- details are stored in a global property, so they are unaffected by things
- like variable or directory scope. Therefore, it doesn't matter where in the
- project the details were previously declared, as long as they have been
- declared before the call to ``FetchContent_Populate()``. Those saved details
- are then used to construct a call to :command:`ExternalProject_Add` in a
- private sub-build to perform the content population immediately. The
- implementation of ``ExternalProject_Add()`` ensures that if the content has
- already been populated in a previous CMake run, that content will be reused
- rather than repopulating them again. For the common case where population
- involves downloading content, the cost of the download is only paid once.
-
- An internal global property records when a particular content population
- request has been processed. If ``FetchContent_Populate()`` is called more
- than once for the same content name within a configure run, the second call
- will halt with an error. Projects can and should check whether content
- population has already been processed with the
- :command:`FetchContent_GetProperties` command before calling
- ``FetchContent_Populate()``.
-
- ``FetchContent_Populate()`` will set three variables in the scope of the
- caller; ``<lcName>_POPULATED``, ``<lcName>_SOURCE_DIR`` and
- ``<lcName>_BINARY_DIR``, where ``<lcName>`` is the lowercased ``<name>``.
- ``<lcName>_POPULATED`` will always be set to ``True`` by the call.
- ``<lcName>_SOURCE_DIR`` is the location where the
- content can be found upon return (it will have already been populated), while
- ``<lcName>_BINARY_DIR`` is a directory intended for use as a corresponding
- build directory. The main use case for the two directory variables is to
- call :command:`add_subdirectory` immediately after population, i.e.:
-
- .. code-block:: cmake
-
- FetchContent_Populate(FooBar ...)
- add_subdirectory(${foobar_SOURCE_DIR} ${foobar_BINARY_DIR})
-
- The values of the three variables can also be retrieved from anywhere in the
- project hierarchy using the :command:`FetchContent_GetProperties` command.
-
- A number of cache variables influence the behavior of all content population
- performed using details saved from a :command:`FetchContent_Declare` call:
-
- ``FETCHCONTENT_BASE_DIR``
- In most cases, the saved details do not specify any options relating to the
- directories to use for the internal sub-build, final source and build areas.
- It is generally best to leave these decisions up to the ``FetchContent``
- module to handle on the project's behalf. The ``FETCHCONTENT_BASE_DIR``
- cache variable controls the point under which all content population
- directories are collected, but in most cases developers would not need to
- change this. The default location is ``${CMAKE_BINARY_DIR}/_deps``, but if
- developers change this value, they should aim to keep the path short and
- just below the top level of the build tree to avoid running into path
- length problems on Windows.
-
- ``FETCHCONTENT_QUIET``
- The logging output during population can be quite verbose, making the
- configure stage quite noisy. This cache option (``ON`` by default) hides
- all population output unless an error is encountered. If experiencing
- problems with hung downloads, temporarily switching this option off may
- help diagnose which content population is causing the issue.
-
- ``FETCHCONTENT_FULLY_DISCONNECTED``
- When this option is enabled, no attempt is made to download or update
- any content. It is assumed that all content has already been populated in
- a previous run or the source directories have been pointed at existing
- contents the developer has provided manually (using options described
- further below). When the developer knows that no changes have been made to
- any content details, turning this option ``ON`` can significantly speed up
- the configure stage. It is ``OFF`` by default.
-
- ``FETCHCONTENT_UPDATES_DISCONNECTED``
- This is a less severe download/update control compared to
- ``FETCHCONTENT_FULLY_DISCONNECTED``. Instead of bypassing all download and
- update logic, the ``FETCHCONTENT_UPDATES_DISCONNECTED`` only disables the
- update stage. Therefore, if content has not been downloaded previously,
- it will still be downloaded when this option is enabled. This can speed up
- the configure stage, but not as much as
- ``FETCHCONTENT_FULLY_DISCONNECTED``. It is ``OFF`` by default.
-
- In addition to the above cache variables, the following cache variables are
- also defined for each content name (``<ucName>`` is the uppercased value of
- ``<name>``):
-
- ``FETCHCONTENT_SOURCE_DIR_<ucName>``
- If this is set, no download or update steps are performed for the specified
- content and the ``<lcName>_SOURCE_DIR`` variable returned to the caller is
- pointed at this location. This gives developers a way to have a separate
- checkout of the content that they can modify freely without interference
- from the build. The build simply uses that existing source, but it still
- defines ``<lcName>_BINARY_DIR`` to point inside its own build area.
- Developers are strongly encouraged to use this mechanism rather than
- editing the sources populated in the default location, as changes to
- sources in the default location can be lost when content population details
- are changed by the project.
-
- ``FETCHCONTENT_UPDATES_DISCONNECTED_<ucName>``
- This is the per-content equivalent of
- ``FETCHCONTENT_UPDATES_DISCONNECTED``. If the global option or this option
- is ``ON``, then updates will be disabled for the named content.
- Disabling updates for individual content can be useful for content whose
- details rarely change, while still leaving other frequently changing
- content with updates enabled.
-
-
- The ``FetchContent_Populate()`` command also supports a syntax allowing the
- content details to be specified directly rather than using any saved
- details. This is more low-level and use of this form is generally to be
- avoided in favour of using saved content details as outlined above.
- Nevertheless, in certain situations it can be useful to invoke the content
- population as an isolated operation (typically as part of implementing some
- other higher level feature or when using CMake in script mode):
-
- .. code-block:: cmake
-
- FetchContent_Populate( <name>
- [QUIET]
- [SUBBUILD_DIR <subBuildDir>]
- [SOURCE_DIR <srcDir>]
- [BINARY_DIR <binDir>]
- ...
- )
-
- This form has a number of key differences to that where only ``<name>`` is
- provided:
-
- - All required population details are assumed to have been provided directly
- in the call to ``FetchContent_Populate()``. Any saved details for
- ``<name>`` are ignored.
- - No check is made for whether content for ``<name>`` has already been
- populated.
- - No global property is set to record that the population has occurred.
- - No global properties record the source or binary directories used for the
- populated content.
- - The ``FETCHCONTENT_FULLY_DISCONNECTED`` and
- ``FETCHCONTENT_UPDATES_DISCONNECTED`` cache variables are ignored.
-
- The ``<lcName>_SOURCE_DIR`` and ``<lcName>_BINARY_DIR`` variables are still
- returned to the caller, but since these locations are not stored as global
- properties when this form is used, they are only available to the calling
- scope and below rather than the entire project hierarchy. No
- ``<lcName>_POPULATED`` variable is set in the caller's scope with this form.
-
- The supported options for ``FetchContent_Populate()`` are the same as those
- for :command:`FetchContent_Declare()`. Those few options shown just
- above are either specific to ``FetchContent_Populate()`` or their behavior is
- slightly modified from how :command:`ExternalProject_Add` treats them.
-
- ``QUIET``
- The ``QUIET`` option can be given to hide the output associated with
- populating the specified content. If the population fails, the output will
- be shown regardless of whether this option was given or not so that the
- cause of the failure can be diagnosed. The global ``FETCHCONTENT_QUIET``
- cache variable has no effect on ``FetchContent_Populate()`` calls where the
- content details are provided directly.
-
- ``SUBBUILD_DIR``
- The ``SUBBUILD_DIR`` argument can be provided to change the location of the
- sub-build created to perform the population. The default value is
- ``${CMAKE_CURRENT_BINARY_DIR}/<lcName>-subbuild`` and it would be unusual
- to need to override this default. If a relative path is specified, it will
- be interpreted as relative to :variable:`CMAKE_CURRENT_BINARY_DIR`.
-
- ``SOURCE_DIR``, ``BINARY_DIR``
- The ``SOURCE_DIR`` and ``BINARY_DIR`` arguments are supported by
- :command:`ExternalProject_Add`, but different default values are used by
- ``FetchContent_Populate()``. ``SOURCE_DIR`` defaults to
- ``${CMAKE_CURRENT_BINARY_DIR}/<lcName>-src`` and ``BINARY_DIR`` defaults to
- ``${CMAKE_CURRENT_BINARY_DIR}/<lcName>-build``. If a relative path is
- specified, it will be interpreted as relative to
- :variable:`CMAKE_CURRENT_BINARY_DIR`.
-
- In addition to the above explicit options, any other unrecognized options are
- passed through unmodified to :command:`ExternalProject_Add` to perform the
- download, patch and update steps. The following options are explicitly
- prohibited (they are disabled by the ``FetchContent_Populate()`` command):
-
- - ``CONFIGURE_COMMAND``
- - ``BUILD_COMMAND``
- - ``INSTALL_COMMAND``
- - ``TEST_COMMAND``
-
- If using ``FetchContent_Populate()`` within CMake's script mode, be aware
- that the implementation sets up a sub-build which therefore requires a CMake
- generator and build tool to be available. If these cannot be found by
- default, then the :variable:`CMAKE_GENERATOR` and/or
- :variable:`CMAKE_MAKE_PROGRAM` variables will need to be set appropriately
- on the command line invoking the script.
-
-
-.. command:: FetchContent_GetProperties
-
- When using saved content details, a call to :command:`FetchContent_Populate`
- records information in global properties which can be queried at any time.
- This information includes the source and binary directories associated with
- the content and also whether or not the content population has been processed
- during the current configure run.
-
- .. code-block:: cmake
-
- FetchContent_GetProperties( <name>
- [SOURCE_DIR <srcDirVar>]
- [BINARY_DIR <binDirVar>]
- [POPULATED <doneVar>]
- )
-
- The ``SOURCE_DIR``, ``BINARY_DIR`` and ``POPULATED`` options can be used to
- specify which properties should be retrieved. Each option accepts a value
- which is the name of the variable in which to store that property. Most of
- the time though, only ``<name>`` is given, in which case the call will then
- set the same variables as a call to
- :command:`FetchContent_Populate(name) <FetchContent_Populate>`. This allows
- the following canonical pattern to be used, which ensures that the relevant
- variables will always be defined regardless of whether or not the population
- has been performed elsewhere in the project already:
-
- .. code-block:: cmake
-
- FetchContent_GetProperties(foobar)
- if(NOT foobar_POPULATED)
- FetchContent_Populate(foobar)
- ...
- endif()
-
- The above pattern allows other parts of the overall project hierarchy to
- re-use the same content and ensure that it is only populated once.
-
-
-.. command:: FetchContent_MakeAvailable
-
- .. code-block:: cmake
-
- FetchContent_MakeAvailable( <name1> [<name2>...] )
-
- This command implements the common pattern typically needed for most
- dependencies. It iterates over each of the named dependencies in turn
- and for each one it loosely follows the same
- :ref:`canonical pattern <fetch-content-canonical-pattern>` as
- presented at the beginning of this section. One small difference to
- that pattern is that it will only call :command:`add_subdirectory` on the
- populated content if there is a ``CMakeLists.txt`` file in its top level
- source directory. This allows the command to be used for dependencies
- that make downloaded content available at a known location but which do
- not need or support being added directly to the build.
-
-
-.. _`fetch-content-examples`:
-
-Examples
-^^^^^^^^
-
-This first fairly straightforward example ensures that some popular testing
-frameworks are available to the main build:
-
-.. code-block:: cmake
-
- include(FetchContent)
- FetchContent_Declare(
- googletest
- GIT_REPOSITORY https://github.com/google/googletest.git
- GIT_TAG release-1.8.0
- )
- FetchContent_Declare(
- Catch2
- GIT_REPOSITORY https://github.com/catchorg/Catch2.git
- GIT_TAG v2.5.0
- )
-
- # After the following call, the CMake targets defined by googletest and
- # Catch2 will be defined and available to the rest of the build
- FetchContent_MakeAvailable(googletest Catch2)
-
-
-In more complex project hierarchies, the dependency relationships can be more
-complicated. Consider a hierarchy where ``projA`` is the top level project and
-it depends directly on projects ``projB`` and ``projC``. Both ``projB`` and
-``projC`` can be built standalone and they also both depend on another project
-``projD``. ``projB`` additionally depends on ``projE``. This example assumes
-that all five projects are available on a company git server. The
-``CMakeLists.txt`` of each project might have sections like the following:
-
-*projA*:
-
-.. code-block:: cmake
-
- include(FetchContent)
- FetchContent_Declare(
- projB
- GIT_REPOSITORY git@mycompany.com:git/projB.git
- GIT_TAG 4a89dc7e24ff212a7b5167bef7ab079d
- )
- FetchContent_Declare(
- projC
- GIT_REPOSITORY git@mycompany.com:git/projC.git
- GIT_TAG 4ad4016bd1d8d5412d135cf8ceea1bb9
- )
- FetchContent_Declare(
- projD
- GIT_REPOSITORY git@mycompany.com:git/projD.git
- GIT_TAG origin/integrationBranch
- )
- FetchContent_Declare(
- projE
- GIT_REPOSITORY git@mycompany.com:git/projE.git
- GIT_TAG origin/release/2.3-rc1
- )
-
- # Order is important, see notes in the discussion further below
- FetchContent_MakeAvailable(projD projB projC)
-
-*projB*:
-
-.. code-block:: cmake
-
- include(FetchContent)
- FetchContent_Declare(
- projD
- GIT_REPOSITORY git@mycompany.com:git/projD.git
- GIT_TAG 20b415f9034bbd2a2e8216e9a5c9e632
- )
- FetchContent_Declare(
- projE
- GIT_REPOSITORY git@mycompany.com:git/projE.git
- GIT_TAG 68e20f674a48be38d60e129f600faf7d
- )
-
- FetchContent_MakeAvailable(projD projE)
-
-*projC*:
-
-.. code-block:: cmake
-
- include(FetchContent)
- FetchContent_Declare(
- projD
- GIT_REPOSITORY git@mycompany.com:git/projD.git
- GIT_TAG 7d9a17ad2c962aa13e2fbb8043fb6b8a
- )
-
- # This particular version of projD requires workarounds
- FetchContent_GetProperties(projD)
- if(NOT projd_POPULATED)
- FetchContent_Populate(projD)
-
- # Copy an additional/replacement file into the populated source
- file(COPY someFile.c DESTINATION ${projd_SOURCE_DIR}/src)
-
- add_subdirectory(${projd_SOURCE_DIR} ${projd_BINARY_DIR})
- endif()
-
-A few key points should be noted in the above:
-
-- ``projB`` and ``projC`` define different content details for ``projD``,
- but ``projA`` also defines a set of content details for ``projD``.
- Because ``projA`` will define them first, the details from ``projB`` and
- ``projC`` will not be used. The override details defined by ``projA``
- are not required to match either of those from ``projB`` or ``projC``, but
- it is up to the higher level project to ensure that the details it does
- define still make sense for the child projects.
-- In the ``projA`` call to :command:`FetchContent_MakeAvailable`, ``projD``
- is listed ahead of ``projB`` and ``projC`` to ensure that ``projA`` is in
- control of how ``projD`` is populated.
-- While ``projA`` defines content details for ``projE``, it does not need
- to explicitly call ``FetchContent_MakeAvailable(projE)`` or
- ``FetchContent_Populate(projD)`` itself. Instead, it leaves that to the
- child ``projB``. For higher level projects, it is often enough to just
- define the override content details and leave the actual population to the
- child projects. This saves repeating the same thing at each level of the
- project hierarchy unnecessarily.
-
-
-Projects don't always need to add the populated content to the build.
-Sometimes the project just wants to make the downloaded content available at
-a predictable location. The next example ensures that a set of standard
-company toolchain files (and potentially even the toolchain binaries
-themselves) is available early enough to be used for that same build.
-
-.. code-block:: cmake
-
- cmake_minimum_required(VERSION 3.14)
-
- include(FetchContent)
- FetchContent_Declare(
- mycom_toolchains
- URL https://intranet.mycompany.com//toolchains_1.3.2.tar.gz
- )
- FetchContent_MakeAvailable(mycom_toolchains)
-
- project(CrossCompileExample)
-
-The project could be configured to use one of the downloaded toolchains like
-so:
-
-.. code-block:: shell
-
- cmake -DCMAKE_TOOLCHAIN_FILE=_deps/mycom_toolchains-src/toolchain_arm.cmake /path/to/src
-
-When CMake processes the ``CMakeLists.txt`` file, it will download and unpack
-the tarball into ``_deps/mycompany_toolchains-src`` relative to the build
-directory. The :variable:`CMAKE_TOOLCHAIN_FILE` variable is not used until
-the :command:`project` command is reached, at which point CMake looks for the
-named toolchain file relative to the build directory. Because the tarball has
-already been downloaded and unpacked by then, the toolchain file will be in
-place, even the very first time that ``cmake`` is run in the build directory.
-
-Lastly, the following example demonstrates how one might download and unpack a
-firmware tarball using CMake's :manual:`script mode <cmake(1)>`. The call to
-:command:`FetchContent_Populate` specifies all the content details and the
-unpacked firmware will be placed in a ``firmware`` directory below the
-current working directory.
-
-*getFirmware.cmake*:
-
-.. code-block:: cmake
-
- # NOTE: Intended to be run in script mode with cmake -P
- include(FetchContent)
- FetchContent_Populate(
- firmware
- URL https://mycompany.com/assets/firmware-1.23-arm.tar.gz
- URL_HASH MD5=68247684da89b608d466253762b0ff11
- SOURCE_DIR firmware
- )
-
-#]=======================================================================]
-
-
-set(__FetchContent_privateDir "${CMAKE_CURRENT_LIST_DIR}/FetchContent")
-
-#=======================================================================
-# Recording and retrieving content details for later population
-#=======================================================================
-
-# Internal use, projects must not call this directly. It is
-# intended for use by FetchContent_Declare() only.
-#
-# Sets a content-specific global property (not meant for use
-# outside of functions defined here in this file) which can later
-# be retrieved using __FetchContent_getSavedDetails() with just the
-# same content name. If there is already a value stored in the
-# property, it is left unchanged and this call has no effect.
-# This allows parent projects to define the content details,
-# overriding anything a child project may try to set (properties
-# are not cached between runs, so the first thing to set it in a
-# build will be in control).
-function(__FetchContent_declareDetails contentName)
-
- string(TOLOWER ${contentName} contentNameLower)
- set(propertyName "_FetchContent_${contentNameLower}_savedDetails")
- get_property(alreadyDefined GLOBAL PROPERTY ${propertyName} DEFINED)
- if(NOT alreadyDefined)
- define_property(GLOBAL PROPERTY ${propertyName}
- BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()"
- FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}"
- )
- set_property(GLOBAL PROPERTY ${propertyName} ${ARGN})
- endif()
-
-endfunction()
-
-
-# Internal use, projects must not call this directly. It is
-# intended for use by the FetchContent_Declare() function.
-#
-# Retrieves details saved for the specified content in an
-# earlier call to __FetchContent_declareDetails().
-function(__FetchContent_getSavedDetails contentName outVar)
-
- string(TOLOWER ${contentName} contentNameLower)
- set(propertyName "_FetchContent_${contentNameLower}_savedDetails")
- get_property(alreadyDefined GLOBAL PROPERTY ${propertyName} DEFINED)
- if(NOT alreadyDefined)
- message(FATAL_ERROR "No content details recorded for ${contentName}")
- endif()
- get_property(propertyValue GLOBAL PROPERTY ${propertyName})
- set(${outVar} "${propertyValue}" PARENT_SCOPE)
-
-endfunction()
-
-
-# Saves population details of the content, sets defaults for the
-# SOURCE_DIR and BUILD_DIR.
-function(FetchContent_Declare contentName)
-
- set(options "")
- set(oneValueArgs SVN_REPOSITORY)
- set(multiValueArgs "")
-
- cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
-
- unset(srcDirSuffix)
- unset(svnRepoArgs)
- if(ARG_SVN_REPOSITORY)
- # Add a hash of the svn repository URL to the source dir. This works
- # around the problem where if the URL changes, the download would
- # fail because it tries to checkout/update rather than switch the
- # old URL to the new one. We limit the hash to the first 7 characters
- # so that the source path doesn't get overly long (which can be a
- # problem on windows due to path length limits).
- string(SHA1 urlSHA ${ARG_SVN_REPOSITORY})
- string(SUBSTRING ${urlSHA} 0 7 urlSHA)
- set(srcDirSuffix "-${urlSHA}")
- set(svnRepoArgs SVN_REPOSITORY ${ARG_SVN_REPOSITORY})
- endif()
-
- string(TOLOWER ${contentName} contentNameLower)
- __FetchContent_declareDetails(
- ${contentNameLower}
- SOURCE_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-src${srcDirSuffix}"
- BINARY_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-build"
- ${svnRepoArgs}
- # List these last so they can override things we set above
- ${ARG_UNPARSED_ARGUMENTS}
- )
-
-endfunction()
-
-
-#=======================================================================
-# Set/get whether the specified content has been populated yet.
-# The setter also records the source and binary dirs used.
-#=======================================================================
-
-# Internal use, projects must not call this directly. It is
-# intended for use by the FetchContent_Populate() function to
-# record when FetchContent_Populate() is called for a particular
-# content name.
-function(__FetchContent_setPopulated contentName sourceDir binaryDir)
-
- string(TOLOWER ${contentName} contentNameLower)
- set(prefix "_FetchContent_${contentNameLower}")
-
- set(propertyName "${prefix}_sourceDir")
- define_property(GLOBAL PROPERTY ${propertyName}
- BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()"
- FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}"
- )
- set_property(GLOBAL PROPERTY ${propertyName} ${sourceDir})
-
- set(propertyName "${prefix}_binaryDir")
- define_property(GLOBAL PROPERTY ${propertyName}
- BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()"
- FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}"
- )
- set_property(GLOBAL PROPERTY ${propertyName} ${binaryDir})
-
- set(propertyName "${prefix}_populated")
- define_property(GLOBAL PROPERTY ${propertyName}
- BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()"
- FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}"
- )
- set_property(GLOBAL PROPERTY ${propertyName} True)
-
-endfunction()
-
-
-# Set variables in the calling scope for any of the retrievable
-# properties. If no specific properties are requested, variables
-# will be set for all retrievable properties.
-#
-# This function is intended to also be used by projects as the canonical
-# way to detect whether they should call FetchContent_Populate()
-# and pull the populated source into the build with add_subdirectory(),
-# if they are using the populated content in that way.
-function(FetchContent_GetProperties contentName)
-
- string(TOLOWER ${contentName} contentNameLower)
-
- set(options "")
- set(oneValueArgs SOURCE_DIR BINARY_DIR POPULATED)
- set(multiValueArgs "")
-
- cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
-
- if(NOT ARG_SOURCE_DIR AND
- NOT ARG_BINARY_DIR AND
- NOT ARG_POPULATED)
- # No specific properties requested, provide them all
- set(ARG_SOURCE_DIR ${contentNameLower}_SOURCE_DIR)
- set(ARG_BINARY_DIR ${contentNameLower}_BINARY_DIR)
- set(ARG_POPULATED ${contentNameLower}_POPULATED)
- endif()
-
- set(prefix "_FetchContent_${contentNameLower}")
-
- if(ARG_SOURCE_DIR)
- set(propertyName "${prefix}_sourceDir")
- get_property(value GLOBAL PROPERTY ${propertyName})
- if(value)
- set(${ARG_SOURCE_DIR} ${value} PARENT_SCOPE)
- endif()
- endif()
-
- if(ARG_BINARY_DIR)
- set(propertyName "${prefix}_binaryDir")
- get_property(value GLOBAL PROPERTY ${propertyName})
- if(value)
- set(${ARG_BINARY_DIR} ${value} PARENT_SCOPE)
- endif()
- endif()
-
- if(ARG_POPULATED)
- set(propertyName "${prefix}_populated")
- get_property(value GLOBAL PROPERTY ${propertyName} DEFINED)
- set(${ARG_POPULATED} ${value} PARENT_SCOPE)
- endif()
-
-endfunction()
-
-
-#=======================================================================
-# Performing the population
-#=======================================================================
-
-# The value of contentName will always have been lowercased by the caller.
-# All other arguments are assumed to be options that are understood by
-# ExternalProject_Add(), except for QUIET and SUBBUILD_DIR.
-function(__FetchContent_directPopulate contentName)
-
- set(options
- QUIET
- )
- set(oneValueArgs
- SUBBUILD_DIR
- SOURCE_DIR
- BINARY_DIR
- # Prevent the following from being passed through
- CONFIGURE_COMMAND
- BUILD_COMMAND
- INSTALL_COMMAND
- TEST_COMMAND
- # We force both of these to be ON since we are always executing serially
- # and we want all steps to have access to the terminal in case they
- # need input from the command line (e.g. ask for a private key password)
- # or they want to provide timely progress. We silently absorb and
- # discard these if they are set by the caller.
- USES_TERMINAL_DOWNLOAD
- USES_TERMINAL_UPDATE
- )
- set(multiValueArgs "")
-
- cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
-
- if(NOT ARG_SUBBUILD_DIR)
- message(FATAL_ERROR "Internal error: SUBBUILD_DIR not set")
- elseif(NOT IS_ABSOLUTE "${ARG_SUBBUILD_DIR}")
- set(ARG_SUBBUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/${ARG_SUBBUILD_DIR}")
- endif()
-
- if(NOT ARG_SOURCE_DIR)
- message(FATAL_ERROR "Internal error: SOURCE_DIR not set")
- elseif(NOT IS_ABSOLUTE "${ARG_SOURCE_DIR}")
- set(ARG_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/${ARG_SOURCE_DIR}")
- endif()
-
- if(NOT ARG_BINARY_DIR)
- message(FATAL_ERROR "Internal error: BINARY_DIR not set")
- elseif(NOT IS_ABSOLUTE "${ARG_BINARY_DIR}")
- set(ARG_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/${ARG_BINARY_DIR}")
- endif()
-
- # Ensure the caller can know where to find the source and build directories
- # with some convenient variables. Doing this here ensures the caller sees
- # the correct result in the case where the default values are overridden by
- # the content details set by the project.
- set(${contentName}_SOURCE_DIR "${ARG_SOURCE_DIR}" PARENT_SCOPE)
- set(${contentName}_BINARY_DIR "${ARG_BINARY_DIR}" PARENT_SCOPE)
-
- # The unparsed arguments may contain spaces, so build up ARG_EXTRA
- # in such a way that it correctly substitutes into the generated
- # CMakeLists.txt file with each argument quoted.
- unset(ARG_EXTRA)
- foreach(arg IN LISTS ARG_UNPARSED_ARGUMENTS)
- set(ARG_EXTRA "${ARG_EXTRA} \"${arg}\"")
- endforeach()
-
- # Hide output if requested, but save it to a variable in case there's an
- # error so we can show the output upon failure. When not quiet, don't
- # capture the output to a variable because the user may want to see the
- # output as it happens (e.g. progress during long downloads). Combine both
- # stdout and stderr in the one capture variable so the output stays in order.
- if (ARG_QUIET)
- set(outputOptions
- OUTPUT_VARIABLE capturedOutput
- ERROR_VARIABLE capturedOutput
- )
- else()
- set(capturedOutput)
- set(outputOptions)
- message(STATUS "Populating ${contentName}")
- endif()
-
- if(CMAKE_GENERATOR)
- set(generatorOpts "-G${CMAKE_GENERATOR}")
- if(CMAKE_GENERATOR_PLATFORM)
- list(APPEND generatorOpts "-A${CMAKE_GENERATOR_PLATFORM}")
- endif()
- if(CMAKE_GENERATOR_TOOLSET)
- list(APPEND generatorOpts "-T${CMAKE_GENERATOR_TOOLSET}")
- endif()
-
- if(CMAKE_MAKE_PROGRAM)
- list(APPEND generatorOpts "-DCMAKE_MAKE_PROGRAM:FILEPATH=${CMAKE_MAKE_PROGRAM}")
- endif()
-
- else()
- # Likely we've been invoked via CMake's script mode where no
- # generator is set (and hence CMAKE_MAKE_PROGRAM could not be
- # trusted even if provided). We will have to rely on being
- # able to find the default generator and build tool.
- unset(generatorOpts)
- endif()
-
- # Create and build a separate CMake project to carry out the population.
- # If we've already previously done these steps, they will not cause
- # anything to be updated, so extra rebuilds of the project won't occur.
- # Make sure to pass through CMAKE_MAKE_PROGRAM in case the main project
- # has this set to something not findable on the PATH.
- configure_file("${__FetchContent_privateDir}/CMakeLists.cmake.in"
- "${ARG_SUBBUILD_DIR}/CMakeLists.txt")
- execute_process(
- COMMAND ${CMAKE_COMMAND} ${generatorOpts} .
- RESULT_VARIABLE result
- ${outputOptions}
- WORKING_DIRECTORY "${ARG_SUBBUILD_DIR}"
- )
- if(result)
- if(capturedOutput)
- message("${capturedOutput}")
- endif()
- message(FATAL_ERROR "CMake step for ${contentName} failed: ${result}")
- endif()
- execute_process(
- COMMAND ${CMAKE_COMMAND} --build .
- RESULT_VARIABLE result
- ${outputOptions}
- WORKING_DIRECTORY "${ARG_SUBBUILD_DIR}"
- )
- if(result)
- if(capturedOutput)
- message("${capturedOutput}")
- endif()
- message(FATAL_ERROR "Build step for ${contentName} failed: ${result}")
- endif()
-
-endfunction()
-
-
-option(FETCHCONTENT_FULLY_DISCONNECTED "Disables all attempts to download or update content and assumes source dirs already exist")
-option(FETCHCONTENT_UPDATES_DISCONNECTED "Enables UPDATE_DISCONNECTED behavior for all content population")
-option(FETCHCONTENT_QUIET "Enables QUIET option for all content population" ON)
-set(FETCHCONTENT_BASE_DIR "${CMAKE_BINARY_DIR}/_deps" CACHE PATH "Directory under which to collect all populated content")
-
-# Populate the specified content using details stored from
-# an earlier call to FetchContent_Declare().
-function(FetchContent_Populate contentName)
-
- if(NOT contentName)
- message(FATAL_ERROR "Empty contentName not allowed for FetchContent_Populate()")
- endif()
-
- string(TOLOWER ${contentName} contentNameLower)
-
- if(ARGN)
- # This is the direct population form with details fully specified
- # as part of the call, so we already have everything we need
- __FetchContent_directPopulate(
- ${contentNameLower}
- SUBBUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/${contentNameLower}-subbuild"
- SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/${contentNameLower}-src"
- BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/${contentNameLower}-build"
- ${ARGN} # Could override any of the above ..._DIR variables
- )
-
- # Pass source and binary dir variables back to the caller
- set(${contentNameLower}_SOURCE_DIR "${${contentNameLower}_SOURCE_DIR}" PARENT_SCOPE)
- set(${contentNameLower}_BINARY_DIR "${${contentNameLower}_BINARY_DIR}" PARENT_SCOPE)
-
- # Don't set global properties, or record that we did this population, since
- # this was a direct call outside of the normal declared details form.
- # We only want to save values in the global properties for content that
- # honours the hierarchical details mechanism so that projects are not
- # robbed of the ability to override details set in nested projects.
- return()
- endif()
-
- # No details provided, so assume they were saved from an earlier call
- # to FetchContent_Declare(). Do a check that we haven't already
- # populated this content before in case the caller forgot to check.
- FetchContent_GetProperties(${contentName})
- if(${contentNameLower}_POPULATED)
- message(FATAL_ERROR "Content ${contentName} already populated in ${${contentNameLower}_SOURCE_DIR}")
- endif()
-
- string(TOUPPER ${contentName} contentNameUpper)
- set(FETCHCONTENT_SOURCE_DIR_${contentNameUpper}
- "${FETCHCONTENT_SOURCE_DIR_${contentNameUpper}}"
- CACHE PATH "When not empty, overrides where to find pre-populated content for ${contentName}")
-
- if(FETCHCONTENT_SOURCE_DIR_${contentNameUpper})
- # The source directory has been explicitly provided in the cache,
- # so no population is required
- set(${contentNameLower}_SOURCE_DIR "${FETCHCONTENT_SOURCE_DIR_${contentNameUpper}}")
- set(${contentNameLower}_BINARY_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-build")
-
- elseif(FETCHCONTENT_FULLY_DISCONNECTED)
- # Bypass population and assume source is already there from a previous run
- set(${contentNameLower}_SOURCE_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-src")
- set(${contentNameLower}_BINARY_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-build")
-
- else()
- # Support both a global "disconnect all updates" and a per-content
- # update test (either one being set disables updates for this content).
- option(FETCHCONTENT_UPDATES_DISCONNECTED_${contentNameUpper}
- "Enables UPDATE_DISCONNECTED behavior just for population of ${contentName}")
- if(FETCHCONTENT_UPDATES_DISCONNECTED OR
- FETCHCONTENT_UPDATES_DISCONNECTED_${contentNameUpper})
- set(disconnectUpdates True)
- else()
- set(disconnectUpdates False)
- endif()
-
- if(FETCHCONTENT_QUIET)
- set(quietFlag QUIET)
- else()
- unset(quietFlag)
- endif()
-
- __FetchContent_getSavedDetails(${contentName} contentDetails)
- if("${contentDetails}" STREQUAL "")
- message(FATAL_ERROR "No details have been set for content: ${contentName}")
- endif()
-
- __FetchContent_directPopulate(
- ${contentNameLower}
- ${quietFlag}
- UPDATE_DISCONNECTED ${disconnectUpdates}
- SUBBUILD_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-subbuild"
- SOURCE_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-src"
- BINARY_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-build"
- # Put the saved details last so they can override any of the
- # the options we set above (this can include SOURCE_DIR or
- # BUILD_DIR)
- ${contentDetails}
- )
- endif()
-
- __FetchContent_setPopulated(
- ${contentName}
- ${${contentNameLower}_SOURCE_DIR}
- ${${contentNameLower}_BINARY_DIR}
- )
-
- # Pass variables back to the caller. The variables passed back here
- # must match what FetchContent_GetProperties() sets when it is called
- # with just the content name.
- set(${contentNameLower}_SOURCE_DIR "${${contentNameLower}_SOURCE_DIR}" PARENT_SCOPE)
- set(${contentNameLower}_BINARY_DIR "${${contentNameLower}_BINARY_DIR}" PARENT_SCOPE)
- set(${contentNameLower}_POPULATED True PARENT_SCOPE)
-
-endfunction()
-
-# Arguments are assumed to be the names of dependencies that have been
-# declared previously and should be populated. It is not an error if
-# any of them have already been populated (they will just be skipped in
-# that case). The command is implemented as a macro so that the variables
-# defined by the FetchContent_GetProperties() and FetchContent_Populate()
-# calls will be available to the caller.
-macro(FetchContent_MakeAvailable)
-
- foreach(contentName IN ITEMS ${ARGV})
- string(TOLOWER ${contentName} contentNameLower)
- FetchContent_GetProperties(${contentName})
- if(NOT ${contentNameLower}_POPULATED)
- FetchContent_Populate(${contentName})
-
- # Only try to call add_subdirectory() if the populated content
- # can be treated that way. Protecting the call with the check
- # allows this function to be used for projects that just want
- # to ensure the content exists, such as to provide content at
- # a known location.
- if(EXISTS ${${contentNameLower}_SOURCE_DIR}/CMakeLists.txt)
- add_subdirectory(${${contentNameLower}_SOURCE_DIR}
- ${${contentNameLower}_BINARY_DIR})
- endif()
- endif()
- endforeach()
-
-endmacro()
diff --git a/share/cmake-3.16/Modules/FindBLAS.cmake b/share/cmake-3.16/Modules/FindBLAS.cmake
deleted file mode 100644
index d3acafc..0000000
--- a/share/cmake-3.16/Modules/FindBLAS.cmake
+++ /dev/null
@@ -1,820 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindBLAS
---------
-
-Find Basic Linear Algebra Subprograms (BLAS) library
-
-This module finds an installed Fortran library that implements the
-BLAS linear-algebra interface (see http://www.netlib.org/blas/). The
-list of libraries searched for is taken from the ``autoconf`` macro file,
-``acx_blas.m4`` (distributed at
-http://ac-archive.sourceforge.net/ac-archive/acx_blas.html).
-
-Input Variables
-^^^^^^^^^^^^^^^
-
-The following variables may be set to influence this module's behavior:
-
-``BLA_STATIC``
- if ``ON`` use static linkage
-
-``BLA_VENDOR``
- If set, checks only the specified vendor, if not set checks all the
- possibilities. List of vendors valid in this module:
-
- * Goto
- * OpenBLAS
- * FLAME
- * ATLAS PhiPACK
- * CXML
- * DXML
- * SunPerf
- * SCSL
- * SGIMATH
- * IBMESSL
- * Intel10_32 (intel mkl v10 32 bit)
- * 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 (obsolete versions of mkl 32 and 64 bit)
- * ACML
- * ACML_MP
- * ACML_GPU
- * Apple
- * NAS
- * Generic
-
-``BLA_F95``
- if ``ON`` tries to find the BLAS95 interfaces
-
-``BLA_PREFER_PKGCONFIG``
- if set ``pkg-config`` will be used to search for a BLAS library first
- and if one is found that is preferred
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module defines the following variables:
-
-``BLAS_FOUND``
- library implementing the BLAS interface is found
-``BLAS_LINKER_FLAGS``
- uncached list of required linker flags (excluding ``-l`` and ``-L``).
-``BLAS_LIBRARIES``
- uncached list of libraries (using full path name) to link against
- to use BLAS (may be empty if compiler implicitly links BLAS)
-``BLAS95_LIBRARIES``
- uncached list of libraries (using full path name) to link against
- to use BLAS95 interface
-``BLAS95_FOUND``
- library implementing the BLAS95 interface is found
-
-.. note::
-
- C or CXX must be enabled to use Intel Math Kernel Library (MKL)
-
- For example, to use Intel MKL libraries and/or Intel compiler:
-
- .. code-block:: cmake
-
- set(BLA_VENDOR Intel10_64lp)
- find_package(BLAS)
-
-Hints
-^^^^^
-
-Set ``MKLROOT`` environment variable to a directory that contains an MKL
-installation.
-
-#]=======================================================================]
-
-include(${CMAKE_CURRENT_LIST_DIR}/CheckFunctionExists.cmake)
-include(${CMAKE_CURRENT_LIST_DIR}/CheckFortranFunctionExists.cmake)
-include(${CMAKE_CURRENT_LIST_DIR}/CMakePushCheckState.cmake)
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-cmake_push_check_state()
-set(CMAKE_REQUIRED_QUIET ${BLAS_FIND_QUIETLY})
-
-set(_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
-
-# Check the language being used
-if( NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED) )
- if(BLAS_FIND_REQUIRED)
- message(FATAL_ERROR "FindBLAS requires Fortran, C, or C++ to be enabled.")
- else()
- message(STATUS "Looking for BLAS... - NOT found (Unsupported languages)")
- return()
- endif()
-endif()
-
-if(BLA_PREFER_PKGCONFIG)
- find_package(PkgConfig)
- pkg_check_modules(PKGC_BLAS blas)
- if(PKGC_BLAS_FOUND)
- set(BLAS_FOUND ${PKGC_BLAS_FOUND})
- set(BLAS_LIBRARIES "${PKGC_BLAS_LINK_LIBRARIES}")
- return()
- endif()
-endif()
-
-macro(Check_Fortran_Libraries LIBRARIES _prefix _name _flags _list _thread)
- # This macro checks for the existence of the combination of fortran libraries
- # given by _list. If the combination is found, this macro checks (using the
- # Check_Fortran_Function_Exists macro) whether can link against that library
- # combination using the name of a routine given by _name using the linker
- # flags given by _flags. If the combination of libraries is found and passes
- # the link test, LIBRARIES is set to the list of complete library paths that
- # have been found. Otherwise, LIBRARIES is set to FALSE.
-
- # N.B. _prefix is the prefix applied to the names of all cached variables that
- # are generated internally and marked advanced by this macro.
-
- set(_libdir ${ARGN})
-
- set(_libraries_work TRUE)
- set(${LIBRARIES})
- set(_combined_name)
- if (NOT _libdir)
- if (WIN32)
- set(_libdir ENV LIB)
- elseif (APPLE)
- set(_libdir ENV DYLD_LIBRARY_PATH)
- else ()
- set(_libdir ENV LD_LIBRARY_PATH)
- endif ()
- endif ()
-
- list(APPEND _libdir "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
-
- foreach(_library ${_list})
- set(_combined_name ${_combined_name}_${_library})
- if(NOT "${_thread}" STREQUAL "")
- set(_combined_name ${_combined_name}_thread)
- endif()
- if(_libraries_work)
- if (BLA_STATIC)
- if (WIN32)
- set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
- endif ()
- if (APPLE)
- set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
- else ()
- set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
- endif ()
- else ()
- if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
- # for ubuntu's libblas3gf and liblapack3gf packages
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
- endif ()
- endif ()
- find_library(${_prefix}_${_library}_LIBRARY
- NAMES ${_library}
- PATHS ${_libdir}
- )
- mark_as_advanced(${_prefix}_${_library}_LIBRARY)
- set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
- set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
- endif()
- endforeach()
- if(_libraries_work)
- # Test this combination of libraries.
- set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}} ${_thread})
- # message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}")
- if (CMAKE_Fortran_COMPILER_LOADED)
- check_fortran_function_exists("${_name}" ${_prefix}${_combined_name}_WORKS)
- else()
- check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS)
- endif()
- set(CMAKE_REQUIRED_LIBRARIES)
- set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
- endif()
- if(_libraries_work)
- if("${_list}" STREQUAL "")
- set(${LIBRARIES} "${LIBRARIES}-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
- else()
- set(${LIBRARIES} ${${LIBRARIES}} ${_thread}) # for static link
- endif()
- else()
- set(${LIBRARIES} FALSE)
- endif()
- #message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
-endmacro()
-
-set(BLAS_LINKER_FLAGS)
-set(BLAS_LIBRARIES)
-set(BLAS95_LIBRARIES)
-if (NOT $ENV{BLA_VENDOR} STREQUAL "")
- set(BLA_VENDOR $ENV{BLA_VENDOR})
-else ()
- if(NOT BLA_VENDOR)
- set(BLA_VENDOR "All")
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- # Implicitly linked BLAS libraries
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- ""
- ""
- )
- endif()
-endif ()
-
-#BLAS in intel mkl 10+ library? (em64t 64bit)
-if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
- if (NOT BLAS_LIBRARIES)
-
- # System-specific settings
- if (WIN32)
- if (BLA_STATIC)
- set(BLAS_mkl_DLL_SUFFIX "")
- else()
- set(BLAS_mkl_DLL_SUFFIX "_dll")
- endif()
- else()
- # Switch to GNU Fortran support layer if needed (but not on Apple, where MKL does not provide it)
- if(CMAKE_Fortran_COMPILER_LOADED AND CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND NOT APPLE)
- set(BLAS_mkl_INTFACE "gf")
- set(BLAS_mkl_THREADING "gnu")
- set(BLAS_mkl_OMP "gomp")
- else()
- set(BLAS_mkl_INTFACE "intel")
- set(BLAS_mkl_THREADING "intel")
- set(BLAS_mkl_OMP "iomp5")
- endif()
- set(BLAS_mkl_LM "-lm")
- set(BLAS_mkl_LDL "-ldl")
- endif()
-
- if (BLA_VENDOR MATCHES "_64ilp")
- set(BLAS_mkl_ILP_MODE "ilp64")
- else ()
- set(BLAS_mkl_ILP_MODE "lp64")
- endif ()
-
- if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
- if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
- find_package(Threads)
- else()
- find_package(Threads REQUIRED)
- endif()
-
- set(BLAS_SEARCH_LIBS "")
-
- if(BLA_F95)
- set(BLAS_mkl_SEARCH_SYMBOL sgemm_f95)
- set(_LIBRARIES BLAS95_LIBRARIES)
- if (WIN32)
- # Find the main file (32-bit or 64-bit)
- set(BLAS_SEARCH_LIBS_WIN_MAIN "")
- if (BLA_VENDOR STREQUAL "Intel10_32" 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_64i?lp" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
- "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
- set(BLAS_SEARCH_LIBS_WIN_THREAD "")
- if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
- "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
- endif()
- if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
- # old version
- list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
- "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
- # mkl >= 10.3
- list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
- "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
- endif()
-
- # Cartesian product of the above
- foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
- foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
- list(APPEND BLAS_SEARCH_LIBS
- "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
- endforeach()
- endforeach()
- else ()
- if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
- # old version
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_blas95 mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
-
- # mkl >= 10.3
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_blas95 mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
- endif ()
- if (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
- # old version
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_blas95 mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
-
- # mkl >= 10.3
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
- endif ()
- if (BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core")
- endif ()
- endif ()
- else ()
- set(BLAS_mkl_SEARCH_SYMBOL sgemm)
- set(_LIBRARIES BLAS_LIBRARIES)
- if (WIN32)
- # Find the main file (32-bit or 64-bit)
- set(BLAS_SEARCH_LIBS_WIN_MAIN "")
- if (BLA_VENDOR STREQUAL "Intel10_32" 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_64i?lp" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
- "mkl_intel_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX}")
- endif ()
-
- # Add threading/sequential libs
- set(BLAS_SEARCH_LIBS_WIN_THREAD "")
- if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
- # old version
- list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
- "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
- # mkl >= 10.3
- list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
- "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
- endif()
- if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
- "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
- endif()
-
- # Cartesian product of the above
- foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
- foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
- list(APPEND BLAS_SEARCH_LIBS
- "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
- endforeach()
- endforeach()
- else ()
- if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
- # old version
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
-
- # mkl >= 10.3
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
- endif ()
- if (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
- # old version
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
-
- # mkl >= 10.3
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
- endif ()
- if (BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core")
- endif ()
-
- #older vesions of intel mkl libs
- if (BLA_VENDOR STREQUAL "Intel" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS
- "mkl")
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_ia32")
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_em64t")
- endif ()
- endif ()
- endif ()
-
- if (DEFINED ENV{MKLROOT})
- if (BLA_VENDOR STREQUAL "Intel10_32")
- set(_BLAS_MKLROOT_LIB_DIR "$ENV{MKLROOT}/lib/ia32")
- elseif (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$")
- set(_BLAS_MKLROOT_LIB_DIR "$ENV{MKLROOT}/lib/intel64")
- endif ()
- endif ()
- if (_BLAS_MKLROOT_LIB_DIR)
- if (WIN32)
- string(APPEND _BLAS_MKLROOT_LIB_DIR "_win")
- elseif (APPLE)
- string(APPEND _BLAS_MKLROOT_LIB_DIR "_mac")
- else ()
- string(APPEND _BLAS_MKLROOT_LIB_DIR "_lin")
- endif ()
- endif ()
-
- foreach (IT ${BLAS_SEARCH_LIBS})
- string(REPLACE " " ";" SEARCH_LIBS ${IT})
- if (NOT ${_LIBRARIES})
- check_fortran_libraries(
- ${_LIBRARIES}
- BLAS
- ${BLAS_mkl_SEARCH_SYMBOL}
- ""
- "${SEARCH_LIBS}"
- "${CMAKE_THREAD_LIBS_INIT};${BLAS_mkl_LM};${BLAS_mkl_LDL}"
- "${_BLAS_MKLROOT_LIB_DIR}"
- )
- endif ()
- endforeach ()
-
- endif ()
- unset(BLAS_mkl_ILP_MODE)
- unset(BLAS_mkl_INTFACE)
- unset(BLAS_mkl_THREADING)
- unset(BLAS_mkl_OMP)
- unset(BLAS_mkl_DLL_SUFFIX)
- unset(BLAS_mkl_LM)
- unset(BLAS_mkl_LDL)
- endif ()
-endif ()
-
-if(BLA_F95)
- find_package_handle_standard_args(BLAS REQUIRED_VARS BLAS95_LIBRARIES)
- set(BLAS95_FOUND ${BLAS_FOUND})
- if(BLAS_FOUND)
- set(BLAS_LIBRARIES "${BLAS95_LIBRARIES}")
- endif()
-endif()
-
-if (BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- # gotoblas (http://www.tacc.utexas.edu/tacc-projects/gotoblas2)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "goto2"
- ""
- )
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- # OpenBLAS (http://www.openblas.net)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "openblas"
- ""
- )
- endif()
- if(NOT BLAS_LIBRARIES AND (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED))
- if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
- find_package(Threads)
- else()
- find_package(Threads REQUIRED)
- endif()
- # OpenBLAS (http://www.openblas.net)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "openblas"
- "${CMAKE_THREAD_LIBS_INIT}"
- )
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- # FLAME's blis library (https://github.com/flame/blis)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "blis"
- ""
- )
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "ATLAS" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- dgemm
- ""
- "f77blas;atlas"
- ""
- )
- endif()
-endif ()
-
-# BLAS in PhiPACK libraries? (requires generic BLAS lib, too)
-if (BLA_VENDOR STREQUAL "PhiPACK" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "sgemm;dgemm;blas"
- ""
- )
- endif()
-endif ()
-
-# BLAS in Alpha CXML library?
-if (BLA_VENDOR STREQUAL "CXML" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "cxml"
- ""
- )
- endif()
-endif ()
-
-# BLAS in Alpha DXML library? (now called CXML, see above)
-if (BLA_VENDOR STREQUAL "DXML" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "dxml"
- ""
- )
- endif()
-endif ()
-
-# BLAS in Sun Performance library?
-if (BLA_VENDOR STREQUAL "SunPerf" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- "-xlic_lib=sunperf"
- "sunperf;sunmath"
- ""
- )
- if(BLAS_LIBRARIES)
- set(BLAS_LINKER_FLAGS "-xlic_lib=sunperf")
- endif()
- endif()
-endif ()
-
-# BLAS in SCSL library? (SGI/Cray Scientific Library)
-if (BLA_VENDOR STREQUAL "SCSL" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "scsl"
- ""
- )
- endif()
-endif ()
-
-# BLAS in SGIMATH library?
-if (BLA_VENDOR STREQUAL "SGIMATH" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "complib.sgimath"
- ""
- )
- endif()
-endif ()
-
-# BLAS in IBM ESSL library? (requires generic BLAS lib, too)
-if (BLA_VENDOR STREQUAL "IBMESSL" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "essl;blas"
- ""
- )
- endif()
-endif ()
-
-#BLAS in acml library?
-if (BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All")
- if( ((BLA_VENDOR STREQUAL "ACML") AND (NOT BLAS_ACML_LIB_DIRS)) OR
- ((BLA_VENDOR STREQUAL "ACML_MP") AND (NOT BLAS_ACML_MP_LIB_DIRS)) OR
- ((BLA_VENDOR STREQUAL "ACML_GPU") AND (NOT BLAS_ACML_GPU_LIB_DIRS))
- )
- # try to find acml in "standard" paths
- if( WIN32 )
- file( GLOB _ACML_ROOT "C:/AMD/acml*/ACML-EULA.txt" )
- else()
- file( GLOB _ACML_ROOT "/opt/acml*/ACML-EULA.txt" )
- endif()
- if( WIN32 )
- file( GLOB _ACML_GPU_ROOT "C:/AMD/acml*/GPGPUexamples" )
- else()
- file( GLOB _ACML_GPU_ROOT "/opt/acml*/GPGPUexamples" )
- endif()
- list(GET _ACML_ROOT 0 _ACML_ROOT)
- list(GET _ACML_GPU_ROOT 0 _ACML_GPU_ROOT)
- if( _ACML_ROOT )
- get_filename_component( _ACML_ROOT ${_ACML_ROOT} PATH )
- if( SIZEOF_INTEGER EQUAL 8 )
- set( _ACML_PATH_SUFFIX "_int64" )
- else()
- set( _ACML_PATH_SUFFIX "" )
- endif()
- if( CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" )
- set( _ACML_COMPILER32 "ifort32" )
- set( _ACML_COMPILER64 "ifort64" )
- elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "SunPro" )
- set( _ACML_COMPILER32 "sun32" )
- set( _ACML_COMPILER64 "sun64" )
- elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "PGI" )
- set( _ACML_COMPILER32 "pgi32" )
- if( WIN32 )
- set( _ACML_COMPILER64 "win64" )
- else()
- set( _ACML_COMPILER64 "pgi64" )
- endif()
- elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "Open64" )
- # 32 bit builds not supported on Open64 but for code simplicity
- # We'll just use the same directory twice
- set( _ACML_COMPILER32 "open64_64" )
- set( _ACML_COMPILER64 "open64_64" )
- elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "NAG" )
- set( _ACML_COMPILER32 "nag32" )
- set( _ACML_COMPILER64 "nag64" )
- else()
- set( _ACML_COMPILER32 "gfortran32" )
- set( _ACML_COMPILER64 "gfortran64" )
- endif()
-
- if( BLA_VENDOR STREQUAL "ACML_MP" )
- set(_ACML_MP_LIB_DIRS
- "${_ACML_ROOT}/${_ACML_COMPILER32}_mp${_ACML_PATH_SUFFIX}/lib"
- "${_ACML_ROOT}/${_ACML_COMPILER64}_mp${_ACML_PATH_SUFFIX}/lib" )
- else()
- set(_ACML_LIB_DIRS
- "${_ACML_ROOT}/${_ACML_COMPILER32}${_ACML_PATH_SUFFIX}/lib"
- "${_ACML_ROOT}/${_ACML_COMPILER64}${_ACML_PATH_SUFFIX}/lib" )
- endif()
- endif()
-elseif(BLAS_${BLA_VENDOR}_LIB_DIRS)
- set(_${BLA_VENDOR}_LIB_DIRS ${BLAS_${BLA_VENDOR}_LIB_DIRS})
-endif()
-
-if( BLA_VENDOR STREQUAL "ACML_MP" )
- foreach( BLAS_ACML_MP_LIB_DIRS ${_ACML_MP_LIB_DIRS})
- check_fortran_libraries (
- BLAS_LIBRARIES
- BLAS
- sgemm
- "" "acml_mp;acml_mv" "" ${BLAS_ACML_MP_LIB_DIRS}
- )
- if( BLAS_LIBRARIES )
- break()
- endif()
- endforeach()
-elseif( BLA_VENDOR STREQUAL "ACML_GPU" )
- foreach( BLAS_ACML_GPU_LIB_DIRS ${_ACML_GPU_LIB_DIRS})
- check_fortran_libraries (
- BLAS_LIBRARIES
- BLAS
- sgemm
- "" "acml;acml_mv;CALBLAS" "" ${BLAS_ACML_GPU_LIB_DIRS}
- )
- if( BLAS_LIBRARIES )
- break()
- endif()
- endforeach()
-else()
- foreach( BLAS_ACML_LIB_DIRS ${_ACML_LIB_DIRS} )
- check_fortran_libraries (
- BLAS_LIBRARIES
- BLAS
- sgemm
- "" "acml;acml_mv" "" ${BLAS_ACML_LIB_DIRS}
- )
- if( BLAS_LIBRARIES )
- break()
- endif()
- endforeach()
-endif()
-
-# Either acml or acml_mp should be in LD_LIBRARY_PATH but not both
-if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "acml;acml_mv"
- ""
- )
-endif()
-if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "acml_mp;acml_mv"
- ""
- )
-endif()
-if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "acml;acml_mv;CALBLAS"
- ""
- )
-endif()
-endif () # ACML
-
-# Apple BLAS library?
-if (BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- dgemm
- ""
- "Accelerate"
- ""
- )
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All")
- if ( NOT BLAS_LIBRARIES )
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- dgemm
- ""
- "vecLib"
- ""
- )
- endif ()
-endif ()
-
-# Generic BLAS library?
-if (BLA_VENDOR STREQUAL "Generic" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "blas"
- ""
- )
- endif()
-endif ()
-
-if(NOT BLA_F95)
- find_package_handle_standard_args(BLAS REQUIRED_VARS BLAS_LIBRARIES)
-endif()
-
-# On compilers that implicitly link BLAS (such as ftn, cc, and CC on Cray HPC machines)
-# we used a placeholder for empty BLAS_LIBRARIES to get through our logic above.
-if (BLAS_LIBRARIES STREQUAL "BLAS_LIBRARIES-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
- set(BLAS_LIBRARIES "")
-endif()
-
-cmake_pop_check_state()
-set(CMAKE_FIND_LIBRARY_SUFFIXES ${_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
diff --git a/share/cmake-3.16/Modules/FindBoost.cmake b/share/cmake-3.16/Modules/FindBoost.cmake
deleted file mode 100644
index 0e84fab..0000000
--- a/share/cmake-3.16/Modules/FindBoost.cmake
+++ /dev/null
@@ -1,2355 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindBoost
----------
-
-Find Boost include dirs and libraries
-
-Use this module by invoking find_package with the form::
-
- find_package(Boost
- [version] [EXACT] # Minimum or EXACT version e.g. 1.67.0
- [REQUIRED] # Fail with error if Boost is not found
- [COMPONENTS <libs>...] # Boost libraries by their canonical name
- # e.g. "date_time" for "libboost_date_time"
- [OPTIONAL_COMPONENTS <libs>...]
- # Optional Boost libraries by their canonical name)
- ) # e.g. "date_time" for "libboost_date_time"
-
-This module finds headers and requested component libraries OR a CMake
-package configuration file provided by a "Boost CMake" build. For the
-latter case skip to the "Boost CMake" section below. For the former
-case results are reported in variables::
-
- Boost_FOUND - True if headers and requested libraries were found
- Boost_INCLUDE_DIRS - Boost include directories
- Boost_LIBRARY_DIRS - Link directories for Boost libraries
- Boost_LIBRARIES - Boost component libraries to be linked
- Boost_<C>_FOUND - True if component <C> was found (<C> is upper-case)
- Boost_<C>_LIBRARY - Libraries to link for component <C> (may include
- target_link_libraries debug/optimized keywords)
- Boost_VERSION_MACRO - BOOST_VERSION value from boost/version.hpp
- Boost_VERSION_STRING - Boost version number in x.y.z format
- Boost_VERSION - if CMP0093 NEW => same as Boost_VERSION_STRING
- if CMP0093 OLD or unset => same as Boost_VERSION_MACRO
- Boost_LIB_VERSION - Version string appended to library filenames
- Boost_VERSION_MAJOR - Boost major version number (X in X.y.z)
- alias: Boost_MAJOR_VERSION
- Boost_VERSION_MINOR - Boost minor version number (Y in x.Y.z)
- alias: Boost_MINOR_VERSION
- Boost_VERSION_PATCH - Boost subminor version number (Z in x.y.Z)
- alias: Boost_SUBMINOR_VERSION
- Boost_VERSION_COUNT - Amount of version components (3)
- Boost_LIB_DIAGNOSTIC_DEFINITIONS (Windows)
- - Pass to add_definitions() to have diagnostic
- information about Boost's automatic linking
- displayed during compilation
-
-Note that Boost Python components require a Python version suffix
-(Boost 1.67 and later), e.g. ``python36`` or ``python27`` for the
-versions built against Python 3.6 and 2.7, respectively. This also
-applies to additional components using Python including
-``mpi_python`` and ``numpy``. Earlier Boost releases may use
-distribution-specific suffixes such as ``2``, ``3`` or ``2.7``.
-These may also be used as suffixes, but note that they are not
-portable.
-
-This module reads hints about search locations from variables::
-
- BOOST_ROOT - Preferred installation prefix
- (or BOOSTROOT)
- BOOST_INCLUDEDIR - Preferred include directory e.g. <prefix>/include
- BOOST_LIBRARYDIR - Preferred library directory e.g. <prefix>/lib
- Boost_NO_SYSTEM_PATHS - Set to ON to disable searching in locations not
- specified by these hint variables. Default is OFF.
- Boost_ADDITIONAL_VERSIONS
- - List of Boost versions not known to this module
- (Boost install locations may contain the version)
-
-and saves search results persistently in CMake cache entries::
-
- Boost_INCLUDE_DIR - Directory containing Boost headers
- Boost_LIBRARY_DIR_RELEASE - Directory containing release Boost libraries
- Boost_LIBRARY_DIR_DEBUG - Directory containing debug Boost libraries
- Boost_<C>_LIBRARY_DEBUG - Component <C> library debug variant
- Boost_<C>_LIBRARY_RELEASE - Component <C> library release variant
-
-The following :prop_tgt:`IMPORTED` targets are also defined::
-
- Boost::headers - Target for header-only dependencies
- (Boost include directory)
- alias: Boost::boost
- Boost::<C> - Target for specific component dependency
- (shared or static library); <C> is lower-
- case
- Boost::diagnostic_definitions - interface target to enable diagnostic
- information about Boost's automatic linking
- during compilation (adds BOOST_LIB_DIAGNOSTIC)
- Boost::disable_autolinking - interface target to disable automatic
- linking with MSVC (adds BOOST_ALL_NO_LIB)
- Boost::dynamic_linking - interface target to enable dynamic linking
- linking with MSVC (adds BOOST_ALL_DYN_LINK)
-
-Implicit dependencies such as ``Boost::filesystem`` requiring
-``Boost::system`` will be automatically detected and satisfied, even
-if system is not specified when using :command:`find_package` and if
-``Boost::system`` is not added to :command:`target_link_libraries`. If using
-``Boost::thread``, then ``Threads::Threads`` will also be added automatically.
-
-It is important to note that the imported targets behave differently
-than variables created by this module: multiple calls to
-:command:`find_package(Boost)` in the same directory or sub-directories with
-different options (e.g. static or shared) will not override the
-values of the targets created by the first call.
-
-Users may set these hints or results as ``CACHE`` entries. Projects
-should not read these entries directly but instead use the above
-result variables. Note that some hint names start in upper-case
-"BOOST". One may specify these as environment variables if they are
-not specified as CMake variables or cache entries.
-
-This module first searches for the ``Boost`` header files using the above
-hint variables (excluding ``BOOST_LIBRARYDIR``) and saves the result in
-``Boost_INCLUDE_DIR``. Then it searches for requested component libraries
-using the above hints (excluding ``BOOST_INCLUDEDIR`` and
-``Boost_ADDITIONAL_VERSIONS``), "lib" directories near ``Boost_INCLUDE_DIR``,
-and the library name configuration settings below. It saves the
-library directories in ``Boost_LIBRARY_DIR_DEBUG`` and
-``Boost_LIBRARY_DIR_RELEASE`` and individual library
-locations in ``Boost_<C>_LIBRARY_DEBUG`` and ``Boost_<C>_LIBRARY_RELEASE``.
-When one changes settings used by previous searches in the same build
-tree (excluding environment variables) this module discards previous
-search results affected by the changes and searches again.
-
-Boost libraries come in many variants encoded in their file name.
-Users or projects may tell this module which variant to find by
-setting variables::
-
- Boost_USE_DEBUG_LIBS - Set to ON or OFF to specify whether to search
- and use the debug libraries. Default is ON.
- Boost_USE_RELEASE_LIBS - Set to ON or OFF to specify whether to search
- and use the release libraries. Default is ON.
- Boost_USE_MULTITHREADED - Set to OFF to use the non-multithreaded
- libraries ('mt' tag). Default is ON.
- Boost_USE_STATIC_LIBS - Set to ON to force the use of the static
- libraries. Default is OFF.
- Boost_USE_STATIC_RUNTIME - Set to ON or OFF to specify whether to use
- libraries linked statically to the C++ runtime
- ('s' tag). Default is platform dependent.
- Boost_USE_DEBUG_RUNTIME - Set to ON or OFF to specify whether to use
- libraries linked to the MS debug C++ runtime
- ('g' tag). Default is ON.
- Boost_USE_DEBUG_PYTHON - Set to ON to use libraries compiled with a
- debug Python build ('y' tag). Default is OFF.
- Boost_USE_STLPORT - Set to ON to use libraries compiled with
- STLPort ('p' tag). Default is OFF.
- Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS
- - Set to ON to use libraries compiled with
- STLPort deprecated "native iostreams"
- ('n' tag). Default is OFF.
- Boost_COMPILER - Set to the compiler-specific library suffix
- (e.g. "-gcc43"). Default is auto-computed
- for the C++ compiler in use. A list may be
- used if multiple compatible suffixes should
- be tested for, in decreasing order of
- preference.
- Boost_ARCHITECTURE - Set to the architecture-specific library suffix
- (e.g. "-x64"). Default is auto-computed for the
- C++ compiler in use.
- Boost_THREADAPI - Suffix for "thread" component library name,
- such as "pthread" or "win32". Names with
- and without this suffix will both be tried.
- Boost_NAMESPACE - Alternate namespace used to build boost with
- e.g. if set to "myboost", will search for
- myboost_thread instead of boost_thread.
-
-Other variables one may set to control this module are::
-
- Boost_DEBUG - Set to ON to enable debug output from FindBoost.
- Please enable this before filing any bug report.
- Boost_REALPATH - Set to ON to resolve symlinks for discovered
- libraries to assist with packaging. For example,
- the "system" component library may be resolved to
- "/usr/lib/libboost_system.so.1.67.0" instead of
- "/usr/lib/libboost_system.so". This does not
- affect linking and should not be enabled unless
- the user needs this information.
- Boost_LIBRARY_DIR - Default value for Boost_LIBRARY_DIR_RELEASE and
- Boost_LIBRARY_DIR_DEBUG.
-
-On Visual Studio and Borland compilers Boost headers request automatic
-linking to corresponding libraries. This requires matching libraries
-to be linked explicitly or available in the link library search path.
-In this case setting ``Boost_USE_STATIC_LIBS`` to ``OFF`` may not achieve
-dynamic linking. Boost automatic linking typically requests static
-libraries with a few exceptions (such as ``Boost.Python``). Use::
-
- add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS})
-
-to ask Boost to report information about automatic linking requests.
-
-Example to find Boost headers only::
-
- find_package(Boost 1.36.0)
- if(Boost_FOUND)
- include_directories(${Boost_INCLUDE_DIRS})
- add_executable(foo foo.cc)
- endif()
-
-Example to find Boost libraries and use imported targets::
-
- find_package(Boost 1.56 REQUIRED COMPONENTS
- date_time filesystem iostreams)
- add_executable(foo foo.cc)
- target_link_libraries(foo Boost::date_time Boost::filesystem
- Boost::iostreams)
-
-Example to find Boost Python 3.6 libraries and use imported targets::
-
- find_package(Boost 1.67 REQUIRED COMPONENTS
- python36 numpy36)
- add_executable(foo foo.cc)
- target_link_libraries(foo Boost::python36 Boost::numpy36)
-
-Example to find Boost headers and some *static* (release only) libraries::
-
- set(Boost_USE_STATIC_LIBS ON) # only find static libs
- set(Boost_USE_DEBUG_LIBS OFF) # ignore debug libs and
- set(Boost_USE_RELEASE_LIBS ON) # only find release libs
- set(Boost_USE_MULTITHREADED ON)
- set(Boost_USE_STATIC_RUNTIME OFF)
- find_package(Boost 1.66.0 COMPONENTS date_time filesystem system ...)
- if(Boost_FOUND)
- include_directories(${Boost_INCLUDE_DIRS})
- add_executable(foo foo.cc)
- target_link_libraries(foo ${Boost_LIBRARIES})
- endif()
-
-Boost CMake
-^^^^^^^^^^^
-
-If Boost was built using the boost-cmake project or from Boost 1.70.0 on
-it provides a package configuration file for use with find_package's config mode.
-This module looks for the package configuration file called
-``BoostConfig.cmake`` or ``boost-config.cmake`` and stores the result in
-``CACHE`` entry "Boost_DIR". If found, the package configuration file is loaded
-and this module returns with no further action. See documentation of
-the Boost CMake package configuration for details on what it provides.
-
-Set ``Boost_NO_BOOST_CMAKE`` to ``ON``, to disable the search for boost-cmake.
-#]=======================================================================]
-
-# The FPHSA helper provides standard way of reporting final search results to
-# the user including the version and component checks.
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-
-# Save project's policies
-cmake_policy(PUSH)
-cmake_policy(SET CMP0057 NEW) # if IN_LIST
-
-function(_boost_get_existing_target component target_var)
- set(names "${component}")
- if(component MATCHES "^([a-z_]*)(python|numpy)([1-9])\\.?([0-9])?$")
- # handle pythonXY and numpyXY versioned components and also python X.Y, mpi_python etc.
- list(APPEND names
- "${CMAKE_MATCH_1}${CMAKE_MATCH_2}" # python
- "${CMAKE_MATCH_1}${CMAKE_MATCH_2}${CMAKE_MATCH_3}" # pythonX
- "${CMAKE_MATCH_1}${CMAKE_MATCH_2}${CMAKE_MATCH_3}${CMAKE_MATCH_4}" #pythonXY
- )
- endif()
- # https://github.com/boost-cmake/boost-cmake uses boost::file_system etc.
- # So handle similar constructions of target names
- string(TOLOWER "${component}" lower_component)
- list(APPEND names "${lower_component}")
- foreach(prefix Boost boost)
- foreach(name IN LISTS names)
- if(TARGET "${prefix}::${name}")
- # The target may be an INTERFACE library that wraps around a single other
- # target for compatibility. Unwrap this layer so we can extract real info.
- if("${name}" MATCHES "^(python|numpy|mpi_python)([1-9])([0-9])$")
- set(name_nv "${CMAKE_MATCH_1}")
- if(TARGET "${prefix}::${name_nv}")
- get_property(type TARGET "${prefix}::${name}" PROPERTY TYPE)
- if(type STREQUAL "INTERFACE_LIBRARY")
- get_property(lib TARGET "${prefix}::${name}" PROPERTY INTERFACE_LINK_LIBRARIES)
- if("${lib}" STREQUAL "${prefix}::${name_nv}")
- set(${target_var} "${prefix}::${name_nv}" PARENT_SCOPE)
- return()
- endif()
- endif()
- endif()
- endif()
- set(${target_var} "${prefix}::${name}" PARENT_SCOPE)
- return()
- endif()
- endforeach()
- endforeach()
- set(${target_var} "" PARENT_SCOPE)
-endfunction()
-
-function(_boost_get_canonical_target_name component target_var)
- string(TOLOWER "${component}" component)
- if(component MATCHES "^([a-z_]*)(python|numpy)([1-9])\\.?([0-9])?$")
- # handle pythonXY and numpyXY versioned components and also python X.Y, mpi_python etc.
- set(${target_var} "Boost::${CMAKE_MATCH_1}${CMAKE_MATCH_2}" PARENT_SCOPE)
- else()
- set(${target_var} "Boost::${component}" PARENT_SCOPE)
- endif()
-endfunction()
-
-macro(_boost_set_in_parent_scope name value)
- # Set a variable in parent scope and make it visibile in current scope
- set(${name} "${value}" PARENT_SCOPE)
- set(${name} "${value}")
-endmacro()
-
-macro(_boost_set_if_unset name value)
- if(NOT ${name})
- _boost_set_in_parent_scope(${name} "${value}")
- endif()
-endmacro()
-
-macro(_boost_set_cache_if_unset name value)
- if(NOT ${name})
- set(${name} "${value}" CACHE STRING "" FORCE)
- endif()
-endmacro()
-
-macro(_boost_append_include_dir target)
- get_target_property(inc "${target}" INTERFACE_INCLUDE_DIRECTORIES)
- if(inc)
- list(APPEND include_dirs "${inc}")
- endif()
-endmacro()
-
-function(_boost_set_legacy_variables_from_config)
- # Set legacy variables for compatibility if not set
- set(include_dirs "")
- set(library_dirs "")
- set(libraries "")
- # Header targets Boost::headers or Boost::boost
- foreach(comp headers boost)
- _boost_get_existing_target(${comp} target)
- if(target)
- _boost_append_include_dir("${target}")
- endif()
- endforeach()
- # Library targets
- foreach(comp IN LISTS Boost_FIND_COMPONENTS)
- string(TOUPPER ${comp} uppercomp)
- # Overwrite if set
- _boost_set_in_parent_scope(Boost_${uppercomp}_FOUND "${Boost_${comp}_FOUND}")
- if(Boost_${comp}_FOUND)
- _boost_get_existing_target(${comp} target)
- if(NOT target)
- if(Boost_DEBUG OR Boost_VERBOSE)
- message(WARNING "Could not find imported target for required component '${comp}'. Legacy variables for this component might be missing. Refer to the documentation of your Boost installation for help on variables to use.")
- endif()
- continue()
- endif()
- _boost_append_include_dir("${target}")
- _boost_set_if_unset(Boost_${uppercomp}_LIBRARY "${target}")
- _boost_set_if_unset(Boost_${uppercomp}_LIBRARIES "${target}") # Very old legacy variable
- list(APPEND libraries "${target}")
- get_property(type TARGET "${target}" PROPERTY TYPE)
- if(NOT type STREQUAL "INTERFACE_LIBRARY")
- foreach(cfg RELEASE DEBUG)
- get_target_property(lib ${target} IMPORTED_LOCATION_${cfg})
- if(lib)
- get_filename_component(lib_dir "${lib}" DIRECTORY)
- list(APPEND library_dirs ${lib_dir})
- _boost_set_cache_if_unset(Boost_${uppercomp}_LIBRARY_${cfg} "${lib}")
- endif()
- endforeach()
- elseif(Boost_DEBUG OR Boost_VERBOSE)
- # For projects using only the Boost::* targets this warning can be safely ignored.
- message(WARNING "Imported target '${target}' for required component '${comp}' has no artifact. Legacy variables for this component might be missing. Refer to the documentation of your Boost installation for help on variables to use.")
- endif()
- _boost_get_canonical_target_name("${comp}" canonical_target)
- if(NOT TARGET "${canonical_target}")
- add_library("${canonical_target}" INTERFACE IMPORTED)
- target_link_libraries("${canonical_target}" INTERFACE "${target}")
- endif()
- endif()
- endforeach()
- list(REMOVE_DUPLICATES include_dirs)
- list(REMOVE_DUPLICATES library_dirs)
- _boost_set_if_unset(Boost_INCLUDE_DIRS "${include_dirs}")
- _boost_set_if_unset(Boost_LIBRARY_DIRS "${library_dirs}")
- _boost_set_if_unset(Boost_LIBRARIES "${libraries}")
- _boost_set_if_unset(Boost_VERSION_STRING "${Boost_VERSION_MAJOR}.${Boost_VERSION_MINOR}.${Boost_VERSION_PATCH}")
- find_path(Boost_INCLUDE_DIR
- NAMES boost/version.hpp boost/config.hpp
- HINTS ${Boost_INCLUDE_DIRS}
- NO_DEFAULT_PATH
- )
- if(NOT Boost_VERSION_MACRO OR NOT Boost_LIB_VERSION)
- set(version_file ${Boost_INCLUDE_DIR}/boost/version.hpp)
- if(EXISTS "${version_file}")
- file(STRINGS "${version_file}" contents REGEX "#define BOOST_(LIB_)?VERSION ")
- if(contents MATCHES "#define BOOST_VERSION ([0-9]+)")
- _boost_set_if_unset(Boost_VERSION_MACRO "${CMAKE_MATCH_1}")
- endif()
- if(contents MATCHES "#define BOOST_LIB_VERSION \"([0-9_]+)\"")
- _boost_set_if_unset(Boost_LIB_VERSION "${CMAKE_MATCH_1}")
- endif()
- endif()
- endif()
- _boost_set_if_unset(Boost_MAJOR_VERSION ${Boost_VERSION_MAJOR})
- _boost_set_if_unset(Boost_MINOR_VERSION ${Boost_VERSION_MINOR})
- _boost_set_if_unset(Boost_SUBMINOR_VERSION ${Boost_VERSION_PATCH})
- if(WIN32)
- _boost_set_if_unset(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC")
- endif()
- if(NOT TARGET Boost::headers)
- add_library(Boost::headers INTERFACE IMPORTED)
- target_include_directories(Boost::headers INTERFACE ${Boost_INCLUDE_DIRS})
- endif()
- # Legacy targets w/o functionality as all handled by defined targets
- foreach(lib diagnostic_definitions disable_autolinking dynamic_linking)
- if(NOT TARGET Boost::${lib})
- add_library(Boost::${lib} INTERFACE IMPORTED)
- endif()
- endforeach()
- if(NOT TARGET Boost::boost)
- add_library(Boost::boost INTERFACE IMPORTED)
- target_link_libraries(Boost::boost INTERFACE Boost::headers)
- endif()
-endfunction()
-
-#-------------------------------------------------------------------------------
-# Before we go searching, check whether a boost cmake package is available, unless
-# the user specifically asked NOT to search for one.
-#
-# If Boost_DIR is set, this behaves as any find_package call would. If not,
-# it looks at BOOST_ROOT and BOOSTROOT to find Boost.
-#
-if (NOT Boost_NO_BOOST_CMAKE)
- # If Boost_DIR is not set, look for BOOSTROOT and BOOST_ROOT as alternatives,
- # since these are more conventional for Boost.
- if ("$ENV{Boost_DIR}" STREQUAL "")
- if (NOT "$ENV{BOOST_ROOT}" STREQUAL "")
- set(ENV{Boost_DIR} $ENV{BOOST_ROOT})
- elseif (NOT "$ENV{BOOSTROOT}" STREQUAL "")
- set(ENV{Boost_DIR} $ENV{BOOSTROOT})
- endif()
- endif()
-
- # Do the same find_package call but look specifically for the CMake version.
- # Note that args are passed in the Boost_FIND_xxxxx variables, so there is no
- # need to delegate them to this find_package call.
- find_package(Boost QUIET NO_MODULE)
- mark_as_advanced(Boost_DIR)
-
- # If we found a boost cmake package, then we're done. Print out what we found.
- # Otherwise let the rest of the module try to find it.
- if(Boost_FOUND)
- # Convert component found variables to standard variables if required
- # Necessary for legacy boost-cmake and 1.70 builtin BoostConfig
- if(Boost_FIND_COMPONENTS)
- # Ignore the meta-component "ALL", introduced by Boost 1.73
- list(REMOVE_ITEM Boost_FIND_COMPONENTS "ALL")
-
- foreach(_comp IN LISTS Boost_FIND_COMPONENTS)
- if(DEFINED Boost_${_comp}_FOUND)
- continue()
- endif()
- string(TOUPPER ${_comp} _uppercomp)
- if(DEFINED Boost${_comp}_FOUND) # legacy boost-cmake project
- set(Boost_${_comp}_FOUND ${Boost${_comp}_FOUND})
- elseif(DEFINED Boost_${_uppercomp}_FOUND) # Boost 1.70
- set(Boost_${_comp}_FOUND ${Boost_${_uppercomp}_FOUND})
- endif()
- endforeach()
- endif()
-
- find_package_handle_standard_args(Boost HANDLE_COMPONENTS CONFIG_MODE)
- _boost_set_legacy_variables_from_config()
-
- # Restore project's policies
- cmake_policy(POP)
- return()
- endif()
-endif()
-
-
-#-------------------------------------------------------------------------------
-# FindBoost functions & macros
-#
-
-#
-# Print debug text if Boost_DEBUG is set.
-# Call example:
-# _Boost_DEBUG_PRINT("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "debug message")
-#
-function(_Boost_DEBUG_PRINT file line text)
- if(Boost_DEBUG)
- message(STATUS "[ ${file}:${line} ] ${text}")
- endif()
-endfunction()
-
-#
-# _Boost_DEBUG_PRINT_VAR(file line variable_name [ENVIRONMENT]
-# [SOURCE "short explanation of origin of var value"])
-#
-# ENVIRONMENT - look up environment variable instead of CMake variable
-#
-# Print variable name and its value if Boost_DEBUG is set.
-# Call example:
-# _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" BOOST_ROOT)
-#
-function(_Boost_DEBUG_PRINT_VAR file line name)
- if(Boost_DEBUG)
- cmake_parse_arguments(_args "ENVIRONMENT" "SOURCE" "" ${ARGN})
-
- unset(source)
- if(_args_SOURCE)
- set(source " (${_args_SOURCE})")
- endif()
-
- if(_args_ENVIRONMENT)
- if(DEFINED ENV{${name}})
- set(value "\"$ENV{${name}}\"")
- else()
- set(value "<unset>")
- endif()
- set(_name "ENV{${name}}")
- else()
- if(DEFINED "${name}")
- set(value "\"${${name}}\"")
- else()
- set(value "<unset>")
- endif()
- set(_name "${name}")
- endif()
-
- _Boost_DEBUG_PRINT("${file}" "${line}" "${_name} = ${value}${source}")
- endif()
-endfunction()
-
-############################################
-#
-# Check the existence of the libraries.
-#
-############################################
-# This macro was taken directly from the FindQt4.cmake file that is included
-# with the CMake distribution. This is NOT my work. All work was done by the
-# original authors of the FindQt4.cmake file. Only minor modifications were
-# made to remove references to Qt and make this file more generally applicable
-# And ELSE/ENDIF pairs were removed for readability.
-#########################################################################
-
-macro(_Boost_ADJUST_LIB_VARS basename)
- if(Boost_INCLUDE_DIR )
- if(Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE)
- # if the generator is multi-config or if CMAKE_BUILD_TYPE is set for
- # single-config generators, set optimized and debug libraries
- get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
- if(_isMultiConfig OR CMAKE_BUILD_TYPE)
- set(Boost_${basename}_LIBRARY optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG})
- else()
- # For single-config generators where CMAKE_BUILD_TYPE has no value,
- # just use the release libraries
- set(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE} )
- endif()
- # FIXME: This probably should be set for both cases
- set(Boost_${basename}_LIBRARIES optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG})
- endif()
-
- # if only the release version was found, set the debug variable also to the release version
- if(Boost_${basename}_LIBRARY_RELEASE AND NOT Boost_${basename}_LIBRARY_DEBUG)
- set(Boost_${basename}_LIBRARY_DEBUG ${Boost_${basename}_LIBRARY_RELEASE})
- set(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE})
- set(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_RELEASE})
- endif()
-
- # if only the debug version was found, set the release variable also to the debug version
- if(Boost_${basename}_LIBRARY_DEBUG AND NOT Boost_${basename}_LIBRARY_RELEASE)
- set(Boost_${basename}_LIBRARY_RELEASE ${Boost_${basename}_LIBRARY_DEBUG})
- set(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_DEBUG})
- set(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_DEBUG})
- endif()
-
- # If the debug & release library ends up being the same, omit the keywords
- if("${Boost_${basename}_LIBRARY_RELEASE}" STREQUAL "${Boost_${basename}_LIBRARY_DEBUG}")
- set(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE} )
- set(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_RELEASE} )
- endif()
-
- if(Boost_${basename}_LIBRARY AND Boost_${basename}_HEADER)
- set(Boost_${basename}_FOUND ON)
- if("x${basename}" STREQUAL "xTHREAD" AND NOT TARGET Threads::Threads)
- string(APPEND Boost_ERROR_REASON_THREAD " (missing dependency: Threads)")
- set(Boost_THREAD_FOUND OFF)
- endif()
- endif()
-
- endif()
- # Make variables changeable to the advanced user
- mark_as_advanced(
- Boost_${basename}_LIBRARY_RELEASE
- Boost_${basename}_LIBRARY_DEBUG
- )
-endmacro()
-
-# Detect changes in used variables.
-# Compares the current variable value with the last one.
-# In short form:
-# v != v_LAST -> CHANGED = 1
-# v is defined, v_LAST not -> CHANGED = 1
-# v is not defined, but v_LAST is -> CHANGED = 1
-# otherwise -> CHANGED = 0
-# CHANGED is returned in variable named ${changed_var}
-macro(_Boost_CHANGE_DETECT changed_var)
- set(${changed_var} 0)
- foreach(v ${ARGN})
- if(DEFINED _Boost_COMPONENTS_SEARCHED)
- if(${v})
- if(_${v}_LAST)
- string(COMPARE NOTEQUAL "${${v}}" "${_${v}_LAST}" _${v}_CHANGED)
- else()
- set(_${v}_CHANGED 1)
- endif()
- elseif(_${v}_LAST)
- set(_${v}_CHANGED 1)
- endif()
- if(_${v}_CHANGED)
- set(${changed_var} 1)
- endif()
- else()
- set(_${v}_CHANGED 0)
- endif()
- endforeach()
-endmacro()
-
-#
-# Find the given library (var).
-# Use 'build_type' to support different lib paths for RELEASE or DEBUG builds
-#
-macro(_Boost_FIND_LIBRARY var build_type)
-
- find_library(${var} ${ARGN})
-
- if(${var})
- # If this is the first library found then save Boost_LIBRARY_DIR_[RELEASE,DEBUG].
- if(NOT Boost_LIBRARY_DIR_${build_type})
- get_filename_component(_dir "${${var}}" PATH)
- set(Boost_LIBRARY_DIR_${build_type} "${_dir}" CACHE PATH "Boost library directory ${build_type}" FORCE)
- endif()
- elseif(_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT)
- # Try component-specific hints but do not save Boost_LIBRARY_DIR_[RELEASE,DEBUG].
- find_library(${var} HINTS ${_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT} ${ARGN})
- endif()
-
- # If Boost_LIBRARY_DIR_[RELEASE,DEBUG] is known then search only there.
- if(Boost_LIBRARY_DIR_${build_type})
- set(_boost_LIBRARY_SEARCH_DIRS_${build_type} ${Boost_LIBRARY_DIR_${build_type}} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
- "Boost_LIBRARY_DIR_${build_type}")
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
- "_boost_LIBRARY_SEARCH_DIRS_${build_type}")
- endif()
-endmacro()
-
-#-------------------------------------------------------------------------------
-
-# Convert CMAKE_CXX_COMPILER_VERSION to boost compiler suffix version.
-function(_Boost_COMPILER_DUMPVERSION _OUTPUT_VERSION _OUTPUT_VERSION_MAJOR _OUTPUT_VERSION_MINOR)
- string(REGEX REPLACE "([0-9]+)\\.([0-9]+)(\\.[0-9]+)?" "\\1"
- _boost_COMPILER_VERSION_MAJOR "${CMAKE_CXX_COMPILER_VERSION}")
- string(REGEX REPLACE "([0-9]+)\\.([0-9]+)(\\.[0-9]+)?" "\\2"
- _boost_COMPILER_VERSION_MINOR "${CMAKE_CXX_COMPILER_VERSION}")
-
- set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}${_boost_COMPILER_VERSION_MINOR}")
-
- set(${_OUTPUT_VERSION} ${_boost_COMPILER_VERSION} PARENT_SCOPE)
- set(${_OUTPUT_VERSION_MAJOR} ${_boost_COMPILER_VERSION_MAJOR} PARENT_SCOPE)
- set(${_OUTPUT_VERSION_MINOR} ${_boost_COMPILER_VERSION_MINOR} PARENT_SCOPE)
-endfunction()
-
-#
-# Take a list of libraries with "thread" in it
-# and prepend duplicates with "thread_${Boost_THREADAPI}"
-# at the front of the list
-#
-function(_Boost_PREPEND_LIST_WITH_THREADAPI _output)
- set(_orig_libnames ${ARGN})
- string(REPLACE "thread" "thread_${Boost_THREADAPI}" _threadapi_libnames "${_orig_libnames}")
- set(${_output} ${_threadapi_libnames} ${_orig_libnames} PARENT_SCOPE)
-endfunction()
-
-#
-# If a library is found, replace its cache entry with its REALPATH
-#
-function(_Boost_SWAP_WITH_REALPATH _library _docstring)
- if(${_library})
- get_filename_component(_boost_filepathreal ${${_library}} REALPATH)
- unset(${_library} CACHE)
- set(${_library} ${_boost_filepathreal} CACHE FILEPATH "${_docstring}")
- endif()
-endfunction()
-
-function(_Boost_CHECK_SPELLING _var)
- if(${_var})
- string(TOUPPER ${_var} _var_UC)
- message(FATAL_ERROR "ERROR: ${_var} is not the correct spelling. The proper spelling is ${_var_UC}.")
- endif()
-endfunction()
-
-# Guesses Boost's compiler prefix used in built library names
-# Returns the guess by setting the variable pointed to by _ret
-function(_Boost_GUESS_COMPILER_PREFIX _ret)
- if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xIntel")
- if(WIN32)
- set (_boost_COMPILER "-iw")
- else()
- set (_boost_COMPILER "-il")
- endif()
- elseif (GHSMULTI)
- set(_boost_COMPILER "-ghs")
- elseif("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC" OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
- if(MSVC_TOOLSET_VERSION GREATER_EQUAL 150)
- # Not yet known.
- set(_boost_COMPILER "")
- elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 140)
- # MSVC toolset 14.x versions are forward compatible.
- set(_boost_COMPILER "")
- foreach(v 9 8 7 6 5 4 3 2 1 0)
- if(MSVC_TOOLSET_VERSION GREATER_EQUAL 14${v})
- list(APPEND _boost_COMPILER "-vc14${v}")
- endif()
- endforeach()
- elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 80)
- set(_boost_COMPILER "-vc${MSVC_TOOLSET_VERSION}")
- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.10)
- set(_boost_COMPILER "-vc71")
- elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13) # Good luck!
- set(_boost_COMPILER "-vc7") # yes, this is correct
- else() # VS 6.0 Good luck!
- set(_boost_COMPILER "-vc6") # yes, this is correct
- endif()
-
- if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xClang")
- string(REPLACE "." ";" VERSION_LIST "${CMAKE_CXX_COMPILER_VERSION}")
- list(GET VERSION_LIST 0 CLANG_VERSION_MAJOR)
- set(_boost_COMPILER "-clangw${CLANG_VERSION_MAJOR};${_boost_COMPILER}")
- endif()
- elseif (BORLAND)
- set(_boost_COMPILER "-bcb")
- elseif(CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
- set(_boost_COMPILER "-sw")
- elseif(CMAKE_CXX_COMPILER_ID STREQUAL "XL")
- set(_boost_COMPILER "-xlc")
- elseif (MINGW)
- if(Boost_VERSION_STRING VERSION_LESS 1.34)
- set(_boost_COMPILER "-mgw") # no GCC version encoding prior to 1.34
- else()
- _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION _boost_COMPILER_VERSION_MAJOR _boost_COMPILER_VERSION_MINOR)
- set(_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}")
- endif()
- elseif (UNIX)
- _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION _boost_COMPILER_VERSION_MAJOR _boost_COMPILER_VERSION_MINOR)
- if(NOT Boost_VERSION_STRING VERSION_LESS 1.69.0)
- # From GCC 5 and clang 4, versioning changes and minor becomes patch.
- # For those compilers, patch is exclude from compiler tag in Boost 1.69+ library naming.
- if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND _boost_COMPILER_VERSION_MAJOR VERSION_GREATER 4)
- set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}")
- elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND _boost_COMPILER_VERSION_MAJOR VERSION_GREATER 3)
- set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}")
- endif()
- endif()
-
- if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- if(Boost_VERSION_STRING VERSION_LESS 1.34)
- set(_boost_COMPILER "-gcc") # no GCC version encoding prior to 1.34
- else()
- # Determine which version of GCC we have.
- if(APPLE)
- if(Boost_VERSION_STRING VERSION_LESS 1.36.0)
- # In Boost <= 1.35.0, there is no mangled compiler name for
- # the macOS/Darwin version of GCC.
- set(_boost_COMPILER "")
- else()
- # In Boost 1.36.0 and newer, the mangled compiler name used
- # on macOS/Darwin is "xgcc".
- set(_boost_COMPILER "-xgcc${_boost_COMPILER_VERSION}")
- endif()
- else()
- set(_boost_COMPILER "-gcc${_boost_COMPILER_VERSION}")
- endif()
- endif()
- elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- # TODO: Find out any Boost version constraints vs clang support.
- set(_boost_COMPILER "-clang${_boost_COMPILER_VERSION}")
- endif()
- else()
- set(_boost_COMPILER "")
- endif()
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
- "_boost_COMPILER" SOURCE "guessed")
- set(${_ret} ${_boost_COMPILER} PARENT_SCOPE)
-endfunction()
-
-#
-# Get component dependencies. Requires the dependencies to have been
-# defined for the Boost release version.
-#
-# component - the component to check
-# _ret - list of library dependencies
-#
-function(_Boost_COMPONENT_DEPENDENCIES component _ret)
- # Note: to add a new Boost release, run
- #
- # % cmake -DBOOST_DIR=/path/to/boost/source -P Utilities/Scripts/BoostScanDeps.cmake
- #
- # The output may be added in a new block below. If it's the same as
- # the previous release, simply update the version range of the block
- # for the previous release. Also check if any new components have
- # been added, and add any new components to
- # _Boost_COMPONENT_HEADERS.
- #
- # This information was originally generated by running
- # BoostScanDeps.cmake against every boost release to date supported
- # by FindBoost:
- #
- # % for version in /path/to/boost/sources/*
- # do
- # cmake -DBOOST_DIR=$version -P Utilities/Scripts/BoostScanDeps.cmake
- # done
- #
- # The output was then updated by search and replace with these regexes:
- #
- # - Strip message(STATUS) prefix dashes
- # s;^-- ;;
- # - Indent
- # s;^set(; set(;;
- # - Add conditionals
- # s;Scanning /path/to/boost/sources/boost_\(.*\)_\(.*\)_\(.*); elseif(NOT Boost_VERSION_STRING VERSION_LESS \1\.\2\.\3 AND Boost_VERSION_STRING VERSION_LESS xxxx);
- #
- # This results in the logic seen below, but will require the xxxx
- # replacing with the following Boost release version (or the next
- # minor version to be released, e.g. 1.59 was the latest at the time
- # of writing, making 1.60 the next. Identical consecutive releases
- # were then merged together by updating the end range of the first
- # block and removing the following redundant blocks.
- #
- # Running the script against all historical releases should be
- # required only if the BoostScanDeps.cmake script logic is changed.
- # The addition of a new release should only require it to be run
- # against the new release.
-
- # Handle Python version suffixes
- if(component MATCHES "^(python|mpi_python|numpy)([0-9][0-9]?|[0-9]\\.[0-9])\$")
- set(component "${CMAKE_MATCH_1}")
- set(component_python_version "${CMAKE_MATCH_2}")
- endif()
-
- set(_Boost_IMPORTED_TARGETS TRUE)
- if(Boost_VERSION_STRING AND Boost_VERSION_STRING VERSION_LESS 1.33.0)
- message(WARNING "Imported targets and dependency information not available for Boost version ${Boost_VERSION_STRING} (all versions older than 1.33)")
- set(_Boost_IMPORTED_TARGETS FALSE)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.33.0 AND Boost_VERSION_STRING VERSION_LESS 1.35.0)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex thread)
- set(_Boost_REGEX_DEPENDENCIES thread)
- set(_Boost_WAVE_DEPENDENCIES filesystem thread)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.35.0 AND Boost_VERSION_STRING VERSION_LESS 1.36.0)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_WAVE_DEPENDENCIES filesystem system thread)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.36.0 AND Boost_VERSION_STRING VERSION_LESS 1.38.0)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_WAVE_DEPENDENCIES filesystem system thread)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.38.0 AND Boost_VERSION_STRING VERSION_LESS 1.43.0)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_THREAD_DEPENDENCIES date_time)
- set(_Boost_WAVE_DEPENDENCIES filesystem system thread date_time)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.43.0 AND Boost_VERSION_STRING VERSION_LESS 1.44.0)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_THREAD_DEPENDENCIES date_time)
- set(_Boost_WAVE_DEPENDENCIES filesystem system thread date_time)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.44.0 AND Boost_VERSION_STRING VERSION_LESS 1.45.0)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random serialization)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_THREAD_DEPENDENCIES date_time)
- set(_Boost_WAVE_DEPENDENCIES serialization filesystem system thread date_time)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.45.0 AND Boost_VERSION_STRING VERSION_LESS 1.47.0)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_THREAD_DEPENDENCIES date_time)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread date_time)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.47.0 AND Boost_VERSION_STRING VERSION_LESS 1.48.0)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_THREAD_DEPENDENCIES date_time)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread date_time)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.48.0 AND Boost_VERSION_STRING VERSION_LESS 1.50.0)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_THREAD_DEPENDENCIES date_time)
- set(_Boost_TIMER_DEPENDENCIES chrono system)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread date_time)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.50.0 AND Boost_VERSION_STRING VERSION_LESS 1.53.0)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_THREAD_DEPENDENCIES chrono system date_time)
- set(_Boost_TIMER_DEPENDENCIES chrono system)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.53.0 AND Boost_VERSION_STRING VERSION_LESS 1.54.0)
- set(_Boost_ATOMIC_DEPENDENCIES thread chrono system date_time)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
- set(_Boost_TIMER_DEPENDENCIES chrono system)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.54.0 AND Boost_VERSION_STRING VERSION_LESS 1.55.0)
- set(_Boost_ATOMIC_DEPENDENCIES thread chrono system date_time)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
- set(_Boost_TIMER_DEPENDENCIES chrono system)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.55.0 AND Boost_VERSION_STRING VERSION_LESS 1.56.0)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_COROUTINE_DEPENDENCIES context system)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
- set(_Boost_TIMER_DEPENDENCIES chrono system)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.56.0 AND Boost_VERSION_STRING VERSION_LESS 1.59.0)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_COROUTINE_DEPENDENCIES context system)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_RANDOM_DEPENDENCIES system)
- set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
- set(_Boost_TIMER_DEPENDENCIES chrono system)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.59.0 AND Boost_VERSION_STRING VERSION_LESS 1.60.0)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_COROUTINE_DEPENDENCIES context system)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono atomic)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_RANDOM_DEPENDENCIES system)
- set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
- set(_Boost_TIMER_DEPENDENCIES chrono system)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.60.0 AND Boost_VERSION_STRING VERSION_LESS 1.61.0)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_COROUTINE_DEPENDENCIES context system)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_RANDOM_DEPENDENCIES system)
- set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
- set(_Boost_TIMER_DEPENDENCIES chrono system)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.61.0 AND Boost_VERSION_STRING VERSION_LESS 1.62.0)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
- set(_Boost_COROUTINE_DEPENDENCIES context system)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_RANDOM_DEPENDENCIES system)
- set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.62.0 AND Boost_VERSION_STRING VERSION_LESS 1.63.0)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
- set(_Boost_COROUTINE_DEPENDENCIES context system)
- set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_RANDOM_DEPENDENCIES system)
- set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.63.0 AND Boost_VERSION_STRING VERSION_LESS 1.65.0)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
- set(_Boost_COROUTINE_DEPENDENCIES context system)
- set(_Boost_COROUTINE2_DEPENDENCIES context fiber thread chrono system date_time)
- set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_RANDOM_DEPENDENCIES system)
- set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.65.0 AND Boost_VERSION_STRING VERSION_LESS 1.67.0)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
- set(_Boost_COROUTINE_DEPENDENCIES context system)
- set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
- set(_Boost_RANDOM_DEPENDENCIES system)
- set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
- set(_Boost_TIMER_DEPENDENCIES chrono system)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.67.0 AND Boost_VERSION_STRING VERSION_LESS 1.68.0)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
- set(_Boost_COROUTINE_DEPENDENCIES context system)
- set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
- set(_Boost_RANDOM_DEPENDENCIES system)
- set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
- set(_Boost_TIMER_DEPENDENCIES chrono system)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.68.0 AND Boost_VERSION_STRING VERSION_LESS 1.69.0)
- set(_Boost_CHRONO_DEPENDENCIES system)
- set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
- set(_Boost_CONTRACT_DEPENDENCIES thread chrono system date_time)
- set(_Boost_COROUTINE_DEPENDENCIES context system)
- set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
- set(_Boost_FILESYSTEM_DEPENDENCIES system)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
- set(_Boost_RANDOM_DEPENDENCIES system)
- set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
- set(_Boost_TIMER_DEPENDENCIES chrono system)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.69.0 AND Boost_VERSION_STRING VERSION_LESS 1.70.0)
- set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
- set(_Boost_COROUTINE_DEPENDENCIES context)
- set(_Boost_FIBER_DEPENDENCIES context)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
- set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
- set(_Boost_TIMER_DEPENDENCIES chrono system)
- set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.70.0 AND Boost_VERSION_STRING VERSION_LESS 1.72.0)
- set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
- set(_Boost_COROUTINE_DEPENDENCIES context)
- set(_Boost_FIBER_DEPENDENCIES context)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
- set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
- set(_Boost_TIMER_DEPENDENCIES chrono)
- set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.72.0)
- set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
- set(_Boost_COROUTINE_DEPENDENCIES context)
- set(_Boost_FIBER_DEPENDENCIES context)
- set(_Boost_IOSTREAMS_DEPENDENCIES regex)
- set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
- set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l chrono atomic)
- set(_Boost_MPI_DEPENDENCIES serialization)
- set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
- set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
- set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
- set(_Boost_TIMER_DEPENDENCIES chrono)
- set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- if(NOT Boost_VERSION_STRING VERSION_LESS 1.73.0)
- message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
- endif()
- endif()
-
- string(TOUPPER ${component} uppercomponent)
- set(${_ret} ${_Boost_${uppercomponent}_DEPENDENCIES} PARENT_SCOPE)
- set(_Boost_IMPORTED_TARGETS ${_Boost_IMPORTED_TARGETS} PARENT_SCOPE)
-
- string(REGEX REPLACE ";" " " _boost_DEPS_STRING "${_Boost_${uppercomponent}_DEPENDENCIES}")
- if (NOT _boost_DEPS_STRING)
- set(_boost_DEPS_STRING "(none)")
- endif()
- # message(STATUS "Dependencies for Boost::${component}: ${_boost_DEPS_STRING}")
-endfunction()
-
-#
-# Get component headers. This is the primary header (or headers) for
-# a given component, and is used to check that the headers are present
-# as well as the library itself as an extra sanity check of the build
-# environment.
-#
-# component - the component to check
-# _hdrs
-#
-function(_Boost_COMPONENT_HEADERS component _hdrs)
- # Handle Python version suffixes
- if(component MATCHES "^(python|mpi_python|numpy)([0-9][0-9]?|[0-9]\\.[0-9])\$")
- set(component "${CMAKE_MATCH_1}")
- set(component_python_version "${CMAKE_MATCH_2}")
- endif()
-
- # Note: new boost components will require adding here. The header
- # must be present in all versions of Boost providing a library.
- set(_Boost_ATOMIC_HEADERS "boost/atomic.hpp")
- set(_Boost_CHRONO_HEADERS "boost/chrono.hpp")
- set(_Boost_CONTAINER_HEADERS "boost/container/container_fwd.hpp")
- set(_Boost_CONTRACT_HEADERS "boost/contract.hpp")
- if(Boost_VERSION_STRING VERSION_LESS 1.61.0)
- set(_Boost_CONTEXT_HEADERS "boost/context/all.hpp")
- else()
- set(_Boost_CONTEXT_HEADERS "boost/context/detail/fcontext.hpp")
- endif()
- set(_Boost_COROUTINE_HEADERS "boost/coroutine/all.hpp")
- set(_Boost_DATE_TIME_HEADERS "boost/date_time/date.hpp")
- set(_Boost_EXCEPTION_HEADERS "boost/exception/exception.hpp")
- set(_Boost_FIBER_HEADERS "boost/fiber/all.hpp")
- set(_Boost_FILESYSTEM_HEADERS "boost/filesystem/path.hpp")
- set(_Boost_GRAPH_HEADERS "boost/graph/adjacency_list.hpp")
- set(_Boost_GRAPH_PARALLEL_HEADERS "boost/graph/adjacency_list.hpp")
- set(_Boost_IOSTREAMS_HEADERS "boost/iostreams/stream.hpp")
- set(_Boost_LOCALE_HEADERS "boost/locale.hpp")
- set(_Boost_LOG_HEADERS "boost/log/core.hpp")
- set(_Boost_LOG_SETUP_HEADERS "boost/log/detail/setup_config.hpp")
- set(_Boost_MATH_HEADERS "boost/math_fwd.hpp")
- set(_Boost_MATH_C99_HEADERS "boost/math/tr1.hpp")
- set(_Boost_MATH_C99F_HEADERS "boost/math/tr1.hpp")
- set(_Boost_MATH_C99L_HEADERS "boost/math/tr1.hpp")
- set(_Boost_MATH_TR1_HEADERS "boost/math/tr1.hpp")
- set(_Boost_MATH_TR1F_HEADERS "boost/math/tr1.hpp")
- set(_Boost_MATH_TR1L_HEADERS "boost/math/tr1.hpp")
- set(_Boost_MPI_HEADERS "boost/mpi.hpp")
- set(_Boost_MPI_PYTHON_HEADERS "boost/mpi/python/config.hpp")
- set(_Boost_NUMPY_HEADERS "boost/python/numpy.hpp")
- set(_Boost_PRG_EXEC_MONITOR_HEADERS "boost/test/prg_exec_monitor.hpp")
- set(_Boost_PROGRAM_OPTIONS_HEADERS "boost/program_options.hpp")
- set(_Boost_PYTHON_HEADERS "boost/python.hpp")
- set(_Boost_RANDOM_HEADERS "boost/random.hpp")
- set(_Boost_REGEX_HEADERS "boost/regex.hpp")
- set(_Boost_SERIALIZATION_HEADERS "boost/serialization/serialization.hpp")
- set(_Boost_SIGNALS_HEADERS "boost/signals.hpp")
- set(_Boost_STACKTRACE_ADDR2LINE_HEADERS "boost/stacktrace.hpp")
- set(_Boost_STACKTRACE_BACKTRACE_HEADERS "boost/stacktrace.hpp")
- set(_Boost_STACKTRACE_BASIC_HEADERS "boost/stacktrace.hpp")
- set(_Boost_STACKTRACE_NOOP_HEADERS "boost/stacktrace.hpp")
- set(_Boost_STACKTRACE_WINDBG_CACHED_HEADERS "boost/stacktrace.hpp")
- set(_Boost_STACKTRACE_WINDBG_HEADERS "boost/stacktrace.hpp")
- set(_Boost_SYSTEM_HEADERS "boost/system/config.hpp")
- set(_Boost_TEST_EXEC_MONITOR_HEADERS "boost/test/test_exec_monitor.hpp")
- set(_Boost_THREAD_HEADERS "boost/thread.hpp")
- set(_Boost_TIMER_HEADERS "boost/timer.hpp")
- set(_Boost_TYPE_ERASURE_HEADERS "boost/type_erasure/config.hpp")
- set(_Boost_UNIT_TEST_FRAMEWORK_HEADERS "boost/test/framework.hpp")
- set(_Boost_WAVE_HEADERS "boost/wave.hpp")
- set(_Boost_WSERIALIZATION_HEADERS "boost/archive/text_wiarchive.hpp")
- if(WIN32)
- set(_Boost_BZIP2_HEADERS "boost/iostreams/filter/bzip2.hpp")
- set(_Boost_ZLIB_HEADERS "boost/iostreams/filter/zlib.hpp")
- endif()
-
- string(TOUPPER ${component} uppercomponent)
- set(${_hdrs} ${_Boost_${uppercomponent}_HEADERS} PARENT_SCOPE)
-
- string(REGEX REPLACE ";" " " _boost_HDRS_STRING "${_Boost_${uppercomponent}_HEADERS}")
- if (NOT _boost_HDRS_STRING)
- set(_boost_HDRS_STRING "(none)")
- endif()
- # message(STATUS "Headers for Boost::${component}: ${_boost_HDRS_STRING}")
-endfunction()
-
-#
-# Determine if any missing dependencies require adding to the component list.
-#
-# Sets _Boost_${COMPONENT}_DEPENDENCIES for each required component,
-# plus _Boost_IMPORTED_TARGETS (TRUE if imported targets should be
-# defined; FALSE if dependency information is unavailable).
-#
-# componentvar - the component list variable name
-# extravar - the indirect dependency list variable name
-#
-#
-function(_Boost_MISSING_DEPENDENCIES componentvar extravar)
- # _boost_unprocessed_components - list of components requiring processing
- # _boost_processed_components - components already processed (or currently being processed)
- # _boost_new_components - new components discovered for future processing
- #
- list(APPEND _boost_unprocessed_components ${${componentvar}})
-
- while(_boost_unprocessed_components)
- list(APPEND _boost_processed_components ${_boost_unprocessed_components})
- foreach(component ${_boost_unprocessed_components})
- string(TOUPPER ${component} uppercomponent)
- set(${_ret} ${_Boost_${uppercomponent}_DEPENDENCIES} PARENT_SCOPE)
- _Boost_COMPONENT_DEPENDENCIES("${component}" _Boost_${uppercomponent}_DEPENDENCIES)
- set(_Boost_${uppercomponent}_DEPENDENCIES ${_Boost_${uppercomponent}_DEPENDENCIES} PARENT_SCOPE)
- set(_Boost_IMPORTED_TARGETS ${_Boost_IMPORTED_TARGETS} PARENT_SCOPE)
- foreach(componentdep ${_Boost_${uppercomponent}_DEPENDENCIES})
- if (NOT ("${componentdep}" IN_LIST _boost_processed_components OR "${componentdep}" IN_LIST _boost_new_components))
- list(APPEND _boost_new_components ${componentdep})
- endif()
- endforeach()
- endforeach()
- set(_boost_unprocessed_components ${_boost_new_components})
- unset(_boost_new_components)
- endwhile()
- set(_boost_extra_components ${_boost_processed_components})
- if(_boost_extra_components AND ${componentvar})
- list(REMOVE_ITEM _boost_extra_components ${${componentvar}})
- endif()
- set(${componentvar} ${_boost_processed_components} PARENT_SCOPE)
- set(${extravar} ${_boost_extra_components} PARENT_SCOPE)
-endfunction()
-
-#
-# Some boost libraries may require particular set of compler features.
-# The very first one was `boost::fiber` introduced in Boost 1.62.
-# One can check required compiler features of it in
-# - `${Boost_ROOT}/libs/fiber/build/Jamfile.v2`;
-# - `${Boost_ROOT}/libs/context/build/Jamfile.v2`.
-#
-# TODO (Re)Check compiler features on (every?) release ???
-# One may use the following command to get the files to check:
-#
-# $ find . -name Jamfile.v2 | grep build | xargs grep -l cxx1
-#
-function(_Boost_COMPILER_FEATURES component _ret)
- # Boost >= 1.62
- if(NOT Boost_VERSION_STRING VERSION_LESS 1.62.0)
- set(_Boost_FIBER_COMPILER_FEATURES
- cxx_alias_templates
- cxx_auto_type
- cxx_constexpr
- cxx_defaulted_functions
- cxx_final
- cxx_lambdas
- cxx_noexcept
- cxx_nullptr
- cxx_rvalue_references
- cxx_thread_local
- cxx_variadic_templates
- )
- # Compiler feature for `context` same as for `fiber`.
- set(_Boost_CONTEXT_COMPILER_FEATURES ${_Boost_FIBER_COMPILER_FEATURES})
- endif()
-
- # Boost Contract library available in >= 1.67
- if(NOT Boost_VERSION_STRING VERSION_LESS 1.67.0)
- # From `libs/contract/build/boost_contract_build.jam`
- set(_Boost_CONTRACT_COMPILER_FEATURES
- cxx_lambdas
- cxx_variadic_templates
- )
- endif()
-
- string(TOUPPER ${component} uppercomponent)
- set(${_ret} ${_Boost_${uppercomponent}_COMPILER_FEATURES} PARENT_SCOPE)
-endfunction()
-
-#
-# Update library search directory hint variable with paths used by prebuilt boost binaries.
-#
-# Prebuilt windows binaries (https://sourceforge.net/projects/boost/files/boost-binaries/)
-# have library directories named using MSVC compiler version and architecture.
-# This function would append corresponding directories if MSVC is a current compiler,
-# so having `BOOST_ROOT` would be enough to specify to find everything.
-#
-function(_Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS componentlibvar basedir)
- if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(_arch_suffix 64)
- else()
- set(_arch_suffix 32)
- endif()
- if(MSVC_TOOLSET_VERSION GREATER_EQUAL 150)
- # Not yet known.
- elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 140)
- # MSVC toolset 14.x versions are forward compatible.
- foreach(v 9 8 7 6 5 4 3 2 1 0)
- if(MSVC_TOOLSET_VERSION GREATER_EQUAL 14${v})
- list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-14.${v})
- endif()
- endforeach()
- elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 80)
- math(EXPR _toolset_major_version "${MSVC_TOOLSET_VERSION} / 10")
- list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-${_toolset_major_version}.0)
- endif()
- set(${componentlibvar} ${${componentlibvar}} PARENT_SCOPE)
- endif()
-endfunction()
-
-#
-# End functions/macros
-#
-#-------------------------------------------------------------------------------
-
-#-------------------------------------------------------------------------------
-# main.
-#-------------------------------------------------------------------------------
-
-
-# If the user sets Boost_LIBRARY_DIR, use it as the default for both
-# configurations.
-if(NOT Boost_LIBRARY_DIR_RELEASE AND Boost_LIBRARY_DIR)
- set(Boost_LIBRARY_DIR_RELEASE "${Boost_LIBRARY_DIR}")
-endif()
-if(NOT Boost_LIBRARY_DIR_DEBUG AND Boost_LIBRARY_DIR)
- set(Boost_LIBRARY_DIR_DEBUG "${Boost_LIBRARY_DIR}")
-endif()
-
-if(NOT DEFINED Boost_USE_DEBUG_LIBS)
- set(Boost_USE_DEBUG_LIBS TRUE)
-endif()
-if(NOT DEFINED Boost_USE_RELEASE_LIBS)
- set(Boost_USE_RELEASE_LIBS TRUE)
-endif()
-if(NOT DEFINED Boost_USE_MULTITHREADED)
- set(Boost_USE_MULTITHREADED TRUE)
-endif()
-if(NOT DEFINED Boost_USE_DEBUG_RUNTIME)
- set(Boost_USE_DEBUG_RUNTIME TRUE)
-endif()
-
-# Check the version of Boost against the requested version.
-if(Boost_FIND_VERSION AND NOT Boost_FIND_VERSION_MINOR)
- message(SEND_ERROR "When requesting a specific version of Boost, you must provide at least the major and minor version numbers, e.g., 1.34")
-endif()
-
-if(Boost_FIND_VERSION_EXACT)
- # The version may appear in a directory with or without the patch
- # level, even when the patch level is non-zero.
- set(_boost_TEST_VERSIONS
- "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}.${Boost_FIND_VERSION_PATCH}"
- "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}")
-else()
- # The user has not requested an exact version. Among known
- # versions, find those that are acceptable to the user request.
- #
- # Note: When adding a new Boost release, also update the dependency
- # information in _Boost_COMPONENT_DEPENDENCIES and
- # _Boost_COMPONENT_HEADERS. See the instructions at the top of
- # _Boost_COMPONENT_DEPENDENCIES.
- set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
- "1.72.0" "1.72" "1.71.0" "1.71" "1.70.0" "1.70" "1.69.0" "1.69"
- "1.68.0" "1.68" "1.67.0" "1.67" "1.66.0" "1.66" "1.65.1" "1.65.0" "1.65"
- "1.64.0" "1.64" "1.63.0" "1.63" "1.62.0" "1.62" "1.61.0" "1.61" "1.60.0" "1.60"
- "1.59.0" "1.59" "1.58.0" "1.58" "1.57.0" "1.57" "1.56.0" "1.56" "1.55.0" "1.55"
- "1.54.0" "1.54" "1.53.0" "1.53" "1.52.0" "1.52" "1.51.0" "1.51"
- "1.50.0" "1.50" "1.49.0" "1.49" "1.48.0" "1.48" "1.47.0" "1.47" "1.46.1"
- "1.46.0" "1.46" "1.45.0" "1.45" "1.44.0" "1.44" "1.43.0" "1.43" "1.42.0" "1.42"
- "1.41.0" "1.41" "1.40.0" "1.40" "1.39.0" "1.39" "1.38.0" "1.38" "1.37.0" "1.37"
- "1.36.1" "1.36.0" "1.36" "1.35.1" "1.35.0" "1.35" "1.34.1" "1.34.0"
- "1.34" "1.33.1" "1.33.0" "1.33")
-
- set(_boost_TEST_VERSIONS)
- if(Boost_FIND_VERSION)
- set(_Boost_FIND_VERSION_SHORT "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}")
- # Select acceptable versions.
- foreach(version ${_Boost_KNOWN_VERSIONS})
- if(NOT "${version}" VERSION_LESS "${Boost_FIND_VERSION}")
- # This version is high enough.
- list(APPEND _boost_TEST_VERSIONS "${version}")
- elseif("${version}.99" VERSION_EQUAL "${_Boost_FIND_VERSION_SHORT}.99")
- # This version is a short-form for the requested version with
- # the patch level dropped.
- list(APPEND _boost_TEST_VERSIONS "${version}")
- endif()
- endforeach()
- else()
- # Any version is acceptable.
- set(_boost_TEST_VERSIONS "${_Boost_KNOWN_VERSIONS}")
- endif()
-endif()
-
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_TEST_VERSIONS")
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_USE_MULTITHREADED")
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_USE_STATIC_LIBS")
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_USE_STATIC_RUNTIME")
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_ADDITIONAL_VERSIONS")
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_NO_SYSTEM_PATHS")
-
-# Supply Boost_LIB_DIAGNOSTIC_DEFINITIONS as a convenience target. It
-# will only contain any interface definitions on WIN32, but is created
-# on all platforms to keep end user code free from platform dependent
-# code. Also provide convenience targets to disable autolinking and
-# enable dynamic linking.
-if(NOT TARGET Boost::diagnostic_definitions)
- add_library(Boost::diagnostic_definitions INTERFACE IMPORTED)
- add_library(Boost::disable_autolinking INTERFACE IMPORTED)
- add_library(Boost::dynamic_linking INTERFACE IMPORTED)
- set_target_properties(Boost::dynamic_linking PROPERTIES
- INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_DYN_LINK")
-endif()
-if(WIN32)
- # In windows, automatic linking is performed, so you do not have
- # to specify the libraries. If you are linking to a dynamic
- # runtime, then you can choose to link to either a static or a
- # dynamic Boost library, the default is to do a static link. You
- # can alter this for a specific library "whatever" by defining
- # BOOST_WHATEVER_DYN_LINK to force Boost library "whatever" to be
- # linked dynamically. Alternatively you can force all Boost
- # libraries to dynamic link by defining BOOST_ALL_DYN_LINK.
-
- # This feature can be disabled for Boost library "whatever" by
- # defining BOOST_WHATEVER_NO_LIB, or for all of Boost by defining
- # BOOST_ALL_NO_LIB.
-
- # If you want to observe which libraries are being linked against
- # then defining BOOST_LIB_DIAGNOSTIC will cause the auto-linking
- # code to emit a #pragma message each time a library is selected
- # for linking.
- set(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC")
- set_target_properties(Boost::diagnostic_definitions PROPERTIES
- INTERFACE_COMPILE_DEFINITIONS "BOOST_LIB_DIAGNOSTIC")
- set_target_properties(Boost::disable_autolinking PROPERTIES
- INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB")
-endif()
-
-cmake_policy(GET CMP0074 _Boost_CMP0074)
-if(NOT "x${_Boost_CMP0074}x" STREQUAL "xNEWx")
- _Boost_CHECK_SPELLING(Boost_ROOT)
-endif()
-unset(_Boost_CMP0074)
-_Boost_CHECK_SPELLING(Boost_LIBRARYDIR)
-_Boost_CHECK_SPELLING(Boost_INCLUDEDIR)
-
-# Collect environment variable inputs as hints. Do not consider changes.
-foreach(v BOOSTROOT BOOST_ROOT BOOST_INCLUDEDIR BOOST_LIBRARYDIR)
- set(_env $ENV{${v}})
- if(_env)
- file(TO_CMAKE_PATH "${_env}" _ENV_${v})
- else()
- set(_ENV_${v} "")
- endif()
-endforeach()
-if(NOT _ENV_BOOST_ROOT AND _ENV_BOOSTROOT)
- set(_ENV_BOOST_ROOT "${_ENV_BOOSTROOT}")
-endif()
-
-# Collect inputs and cached results. Detect changes since the last run.
-if(NOT BOOST_ROOT AND BOOSTROOT)
- set(BOOST_ROOT "${BOOSTROOT}")
-endif()
-set(_Boost_VARS_DIR
- BOOST_ROOT
- Boost_NO_SYSTEM_PATHS
- )
-
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "BOOST_ROOT")
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "BOOST_ROOT" ENVIRONMENT)
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "BOOST_INCLUDEDIR")
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "BOOST_INCLUDEDIR" ENVIRONMENT)
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "BOOST_LIBRARYDIR")
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "BOOST_LIBRARYDIR" ENVIRONMENT)
-
-# ------------------------------------------------------------------------
-# Search for Boost include DIR
-# ------------------------------------------------------------------------
-
-set(_Boost_VARS_INC BOOST_INCLUDEDIR Boost_INCLUDE_DIR Boost_ADDITIONAL_VERSIONS)
-_Boost_CHANGE_DETECT(_Boost_CHANGE_INCDIR ${_Boost_VARS_DIR} ${_Boost_VARS_INC})
-# Clear Boost_INCLUDE_DIR if it did not change but other input affecting the
-# location did. We will find a new one based on the new inputs.
-if(_Boost_CHANGE_INCDIR AND NOT _Boost_INCLUDE_DIR_CHANGED)
- unset(Boost_INCLUDE_DIR CACHE)
-endif()
-
-if(NOT Boost_INCLUDE_DIR)
- set(_boost_INCLUDE_SEARCH_DIRS "")
- if(BOOST_INCLUDEDIR)
- list(APPEND _boost_INCLUDE_SEARCH_DIRS ${BOOST_INCLUDEDIR})
- elseif(_ENV_BOOST_INCLUDEDIR)
- list(APPEND _boost_INCLUDE_SEARCH_DIRS ${_ENV_BOOST_INCLUDEDIR})
- endif()
-
- if( BOOST_ROOT )
- list(APPEND _boost_INCLUDE_SEARCH_DIRS ${BOOST_ROOT}/include ${BOOST_ROOT})
- elseif( _ENV_BOOST_ROOT )
- list(APPEND _boost_INCLUDE_SEARCH_DIRS ${_ENV_BOOST_ROOT}/include ${_ENV_BOOST_ROOT})
- endif()
-
- if( Boost_NO_SYSTEM_PATHS)
- list(APPEND _boost_INCLUDE_SEARCH_DIRS NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH)
- else()
- if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
- foreach(ver ${_boost_TEST_VERSIONS})
- string(REPLACE "." "_" ver "${ver}")
- list(APPEND _boost_INCLUDE_SEARCH_DIRS PATHS "C:/local/boost_${ver}")
- endforeach()
- endif()
- list(APPEND _boost_INCLUDE_SEARCH_DIRS PATHS
- C:/boost/include
- C:/boost
- /sw/local/include
- )
- endif()
-
- # Try to find Boost by stepping backwards through the Boost versions
- # we know about.
- # Build a list of path suffixes for each version.
- set(_boost_PATH_SUFFIXES)
- foreach(_boost_VER ${_boost_TEST_VERSIONS})
- # Add in a path suffix, based on the required version, ideally
- # we could read this from version.hpp, but for that to work we'd
- # need to know the include dir already
- set(_boost_BOOSTIFIED_VERSION)
-
- # Transform 1.35 => 1_35 and 1.36.0 => 1_36_0
- if(_boost_VER MATCHES "([0-9]+)\\.([0-9]+)\\.([0-9]+)")
- set(_boost_BOOSTIFIED_VERSION
- "${CMAKE_MATCH_1}_${CMAKE_MATCH_2}_${CMAKE_MATCH_3}")
- elseif(_boost_VER MATCHES "([0-9]+)\\.([0-9]+)")
- set(_boost_BOOSTIFIED_VERSION
- "${CMAKE_MATCH_1}_${CMAKE_MATCH_2}")
- endif()
-
- list(APPEND _boost_PATH_SUFFIXES
- "boost-${_boost_BOOSTIFIED_VERSION}"
- "boost_${_boost_BOOSTIFIED_VERSION}"
- "boost/boost-${_boost_BOOSTIFIED_VERSION}"
- "boost/boost_${_boost_BOOSTIFIED_VERSION}"
- )
-
- endforeach()
-
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_INCLUDE_SEARCH_DIRS")
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_PATH_SUFFIXES")
-
- # Look for a standard boost header file.
- find_path(Boost_INCLUDE_DIR
- NAMES boost/config.hpp
- HINTS ${_boost_INCLUDE_SEARCH_DIRS}
- PATH_SUFFIXES ${_boost_PATH_SUFFIXES}
- )
-endif()
-
-# ------------------------------------------------------------------------
-# Extract version information from version.hpp
-# ------------------------------------------------------------------------
-
-if(Boost_INCLUDE_DIR)
- _Boost_DEBUG_PRINT("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
- "location of version.hpp: ${Boost_INCLUDE_DIR}/boost/version.hpp")
-
- # Extract Boost_VERSION_MACRO and Boost_LIB_VERSION from version.hpp
- set(Boost_VERSION_MACRO 0)
- set(Boost_LIB_VERSION "")
- file(STRINGS "${Boost_INCLUDE_DIR}/boost/version.hpp" _boost_VERSION_HPP_CONTENTS REGEX "#define BOOST_(LIB_)?VERSION ")
- if("${_boost_VERSION_HPP_CONTENTS}" MATCHES "#define BOOST_VERSION ([0-9]+)")
- set(Boost_VERSION_MACRO "${CMAKE_MATCH_1}")
- endif()
- if("${_boost_VERSION_HPP_CONTENTS}" MATCHES "#define BOOST_LIB_VERSION \"([0-9_]+)\"")
- set(Boost_LIB_VERSION "${CMAKE_MATCH_1}")
- endif()
- unset(_boost_VERSION_HPP_CONTENTS)
-
- # Calculate version components
- math(EXPR Boost_VERSION_MAJOR "${Boost_VERSION_MACRO} / 100000")
- math(EXPR Boost_VERSION_MINOR "${Boost_VERSION_MACRO} / 100 % 1000")
- math(EXPR Boost_VERSION_PATCH "${Boost_VERSION_MACRO} % 100")
- set(Boost_VERSION_COUNT 3)
-
- # Define alias variables for backwards compat.
- set(Boost_MAJOR_VERSION ${Boost_VERSION_MAJOR})
- set(Boost_MINOR_VERSION ${Boost_VERSION_MINOR})
- set(Boost_SUBMINOR_VERSION ${Boost_VERSION_PATCH})
-
- # Define Boost version in x.y.z format
- set(Boost_VERSION_STRING "${Boost_VERSION_MAJOR}.${Boost_VERSION_MINOR}.${Boost_VERSION_PATCH}")
-
- # Define final Boost_VERSION
- cmake_policy(GET CMP0093 _Boost_CMP0093
- PARENT_SCOPE # undocumented, do not use outside of CMake
- )
- if("x${_Boost_CMP0093}x" STREQUAL "xNEWx")
- set(Boost_VERSION ${Boost_VERSION_STRING})
- else()
- set(Boost_VERSION ${Boost_VERSION_MACRO})
- endif()
- unset(_Boost_CMP0093)
-
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION")
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION_STRING")
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION_MACRO")
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION_MAJOR")
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION_MINOR")
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION_PATCH")
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION_COUNT")
-endif()
-
-# ------------------------------------------------------------------------
-# Prefix initialization
-# ------------------------------------------------------------------------
-
-set(Boost_LIB_PREFIX "")
-if ( (GHSMULTI AND Boost_USE_STATIC_LIBS) OR
- (WIN32 AND Boost_USE_STATIC_LIBS AND NOT CYGWIN) )
- set(Boost_LIB_PREFIX "lib")
-endif()
-
-if ( NOT Boost_NAMESPACE )
- set(Boost_NAMESPACE "boost")
-endif()
-
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_LIB_PREFIX")
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_NAMESPACE")
-
-# ------------------------------------------------------------------------
-# Suffix initialization and compiler suffix detection.
-# ------------------------------------------------------------------------
-
-set(_Boost_VARS_NAME
- Boost_NAMESPACE
- Boost_COMPILER
- Boost_THREADAPI
- Boost_USE_DEBUG_PYTHON
- Boost_USE_MULTITHREADED
- Boost_USE_STATIC_LIBS
- Boost_USE_STATIC_RUNTIME
- Boost_USE_STLPORT
- Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS
- )
-_Boost_CHANGE_DETECT(_Boost_CHANGE_LIBNAME ${_Boost_VARS_NAME})
-
-# Setting some more suffixes for the library
-if (Boost_COMPILER)
- set(_boost_COMPILER ${Boost_COMPILER})
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
- "_boost_COMPILER" SOURCE "user-specified via Boost_COMPILER")
-else()
- # Attempt to guess the compiler suffix
- # NOTE: this is not perfect yet, if you experience any issues
- # please report them and use the Boost_COMPILER variable
- # to work around the problems.
- _Boost_GUESS_COMPILER_PREFIX(_boost_COMPILER)
-endif()
-
-set (_boost_MULTITHREADED "-mt")
-if( NOT Boost_USE_MULTITHREADED )
- set (_boost_MULTITHREADED "")
-endif()
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_MULTITHREADED")
-
-#======================
-# Systematically build up the Boost ABI tag for the 'tagged' and 'versioned' layouts
-# http://boost.org/doc/libs/1_66_0/more/getting_started/windows.html#library-naming
-# http://boost.org/doc/libs/1_66_0/boost/config/auto_link.hpp
-# http://boost.org/doc/libs/1_66_0/tools/build/src/tools/common.jam
-# http://boost.org/doc/libs/1_66_0/boostcpp.jam
-set( _boost_RELEASE_ABI_TAG "-")
-set( _boost_DEBUG_ABI_TAG "-")
-# Key Use this library when:
-# s linking statically to the C++ standard library and
-# compiler runtime support libraries.
-if(Boost_USE_STATIC_RUNTIME)
- set( _boost_RELEASE_ABI_TAG "${_boost_RELEASE_ABI_TAG}s")
- set( _boost_DEBUG_ABI_TAG "${_boost_DEBUG_ABI_TAG}s")
-endif()
-# g using debug versions of the standard and runtime
-# support libraries
-if(WIN32 AND Boost_USE_DEBUG_RUNTIME)
- if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC"
- OR "x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xClang"
- OR "x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xIntel")
- string(APPEND _boost_DEBUG_ABI_TAG "g")
- endif()
-endif()
-# y using special debug build of python
-if(Boost_USE_DEBUG_PYTHON)
- string(APPEND _boost_DEBUG_ABI_TAG "y")
-endif()
-# d using a debug version of your code
-string(APPEND _boost_DEBUG_ABI_TAG "d")
-# p using the STLport standard library rather than the
-# default one supplied with your compiler
-if(Boost_USE_STLPORT)
- string(APPEND _boost_RELEASE_ABI_TAG "p")
- string(APPEND _boost_DEBUG_ABI_TAG "p")
-endif()
-# n using the STLport deprecated "native iostreams" feature
-# removed from the documentation in 1.43.0 but still present in
-# boost/config/auto_link.hpp
-if(Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS)
- string(APPEND _boost_RELEASE_ABI_TAG "n")
- string(APPEND _boost_DEBUG_ABI_TAG "n")
-endif()
-
-# -x86 Architecture and address model tag
-# First character is the architecture, then word-size, either 32 or 64
-# Only used in 'versioned' layout, added in Boost 1.66.0
-if(DEFINED Boost_ARCHITECTURE)
- set(_boost_ARCHITECTURE_TAG "${Boost_ARCHITECTURE}")
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
- "_boost_ARCHITECTURE_TAG" SOURCE "user-specified via Boost_ARCHITECTURE")
-else()
- set(_boost_ARCHITECTURE_TAG "")
- # {CMAKE_CXX_COMPILER_ARCHITECTURE_ID} is not currently set for all compilers
- if(NOT "x${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "x" AND NOT Boost_VERSION_STRING VERSION_LESS 1.66.0)
- string(APPEND _boost_ARCHITECTURE_TAG "-")
- # This needs to be kept in-sync with the section of CMakePlatformId.h.in
- # inside 'defined(_WIN32) && defined(_MSC_VER)'
- if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "IA64")
- string(APPEND _boost_ARCHITECTURE_TAG "i")
- elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "X86"
- OR CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "x64")
- string(APPEND _boost_ARCHITECTURE_TAG "x")
- elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID MATCHES "^ARM")
- string(APPEND _boost_ARCHITECTURE_TAG "a")
- elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "MIPS")
- string(APPEND _boost_ARCHITECTURE_TAG "m")
- endif()
-
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- string(APPEND _boost_ARCHITECTURE_TAG "64")
- else()
- string(APPEND _boost_ARCHITECTURE_TAG "32")
- endif()
- endif()
- _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
- "_boost_ARCHITECTURE_TAG" SOURCE "detected")
-endif()
-
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_RELEASE_ABI_TAG")
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_DEBUG_ABI_TAG")
-
-# ------------------------------------------------------------------------
-# Begin finding boost libraries
-# ------------------------------------------------------------------------
-
-set(_Boost_VARS_LIB "")
-foreach(c DEBUG RELEASE)
- set(_Boost_VARS_LIB_${c} BOOST_LIBRARYDIR Boost_LIBRARY_DIR_${c})
- list(APPEND _Boost_VARS_LIB ${_Boost_VARS_LIB_${c}})
- _Boost_CHANGE_DETECT(_Boost_CHANGE_LIBDIR_${c} ${_Boost_VARS_DIR} ${_Boost_VARS_LIB_${c}} Boost_INCLUDE_DIR)
- # Clear Boost_LIBRARY_DIR_${c} if it did not change but other input affecting the
- # location did. We will find a new one based on the new inputs.
- if(_Boost_CHANGE_LIBDIR_${c} AND NOT _Boost_LIBRARY_DIR_${c}_CHANGED)
- unset(Boost_LIBRARY_DIR_${c} CACHE)
- endif()
-
- # If Boost_LIBRARY_DIR_[RELEASE,DEBUG] is set, prefer its value.
- if(Boost_LIBRARY_DIR_${c})
- set(_boost_LIBRARY_SEARCH_DIRS_${c} ${Boost_LIBRARY_DIR_${c}} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
- else()
- set(_boost_LIBRARY_SEARCH_DIRS_${c} "")
- if(BOOST_LIBRARYDIR)
- list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} ${BOOST_LIBRARYDIR})
- elseif(_ENV_BOOST_LIBRARYDIR)
- list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} ${_ENV_BOOST_LIBRARYDIR})
- endif()
-
- if(BOOST_ROOT)
- list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} ${BOOST_ROOT}/lib ${BOOST_ROOT}/stage/lib)
- _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "${BOOST_ROOT}")
- elseif(_ENV_BOOST_ROOT)
- list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} ${_ENV_BOOST_ROOT}/lib ${_ENV_BOOST_ROOT}/stage/lib)
- _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "${_ENV_BOOST_ROOT}")
- endif()
-
- list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c}
- ${Boost_INCLUDE_DIR}/lib
- ${Boost_INCLUDE_DIR}/../lib
- ${Boost_INCLUDE_DIR}/stage/lib
- )
- _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "${Boost_INCLUDE_DIR}/..")
- _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "${Boost_INCLUDE_DIR}")
- if( Boost_NO_SYSTEM_PATHS )
- list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH)
- else()
- foreach(ver ${_boost_TEST_VERSIONS})
- string(REPLACE "." "_" ver "${ver}")
- _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "C:/local/boost_${ver}")
- endforeach()
- _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "C:/boost")
- list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} PATHS
- C:/boost/lib
- C:/boost
- /sw/local/lib
- )
- endif()
- endif()
-endforeach()
-
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_LIBRARY_SEARCH_DIRS_RELEASE")
-_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_LIBRARY_SEARCH_DIRS_DEBUG")
-
-# Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
-if( Boost_USE_STATIC_LIBS )
- set( _boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
- if(WIN32)
- list(INSERT CMAKE_FIND_LIBRARY_SUFFIXES 0 .lib .a)
- else()
- set(CMAKE_FIND_LIBRARY_SUFFIXES .a)
- endif()
-endif()
-
-# We want to use the tag inline below without risking double dashes
-if(_boost_RELEASE_ABI_TAG)
- if(${_boost_RELEASE_ABI_TAG} STREQUAL "-")
- set(_boost_RELEASE_ABI_TAG "")
- endif()
-endif()
-if(_boost_DEBUG_ABI_TAG)
- if(${_boost_DEBUG_ABI_TAG} STREQUAL "-")
- set(_boost_DEBUG_ABI_TAG "")
- endif()
-endif()
-
-# The previous behavior of FindBoost when Boost_USE_STATIC_LIBS was enabled
-# on WIN32 was to:
-# 1. Search for static libs compiled against a SHARED C++ standard runtime library (use if found)
-# 2. Search for static libs compiled against a STATIC C++ standard runtime library (use if found)
-# We maintain this behavior since changing it could break people's builds.
-# To disable the ambiguous behavior, the user need only
-# set Boost_USE_STATIC_RUNTIME either ON or OFF.
-set(_boost_STATIC_RUNTIME_WORKAROUND false)
-if(WIN32 AND Boost_USE_STATIC_LIBS)
- if(NOT DEFINED Boost_USE_STATIC_RUNTIME)
- set(_boost_STATIC_RUNTIME_WORKAROUND TRUE)
- endif()
-endif()
-
-# On versions < 1.35, remove the System library from the considered list
-# since it wasn't added until 1.35.
-if(Boost_VERSION_STRING AND Boost_FIND_COMPONENTS)
- if(Boost_VERSION_STRING VERSION_LESS 1.35.0)
- list(REMOVE_ITEM Boost_FIND_COMPONENTS system)
- endif()
-endif()
-
-# Additional components may be required via component dependencies.
-# Add any missing components to the list.
-_Boost_MISSING_DEPENDENCIES(Boost_FIND_COMPONENTS _Boost_EXTRA_FIND_COMPONENTS)
-
-# If thread is required, get the thread libs as a dependency
-if("thread" IN_LIST Boost_FIND_COMPONENTS)
- if(Boost_FIND_QUIETLY)
- set(_Boost_find_quiet QUIET)
- else()
- set(_Boost_find_quiet "")
- endif()
- find_package(Threads ${_Boost_find_quiet})
- unset(_Boost_find_quiet)
-endif()
-
-# If the user changed any of our control inputs flush previous results.
-if(_Boost_CHANGE_LIBDIR_DEBUG OR _Boost_CHANGE_LIBDIR_RELEASE OR _Boost_CHANGE_LIBNAME)
- foreach(COMPONENT ${_Boost_COMPONENTS_SEARCHED})
- string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
- foreach(c DEBUG RELEASE)
- set(_var Boost_${UPPERCOMPONENT}_LIBRARY_${c})
- unset(${_var} CACHE)
- set(${_var} "${_var}-NOTFOUND")
- endforeach()
- endforeach()
- set(_Boost_COMPONENTS_SEARCHED "")
-endif()
-
-foreach(COMPONENT ${Boost_FIND_COMPONENTS})
- string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
-
- set( _boost_docstring_release "Boost ${COMPONENT} library (release)")
- set( _boost_docstring_debug "Boost ${COMPONENT} library (debug)")
-
- # Compute component-specific hints.
- set(_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT "")
- if(${COMPONENT} STREQUAL "mpi" OR ${COMPONENT} STREQUAL "mpi_python" OR
- ${COMPONENT} STREQUAL "graph_parallel")
- foreach(lib ${MPI_CXX_LIBRARIES} ${MPI_C_LIBRARIES})
- if(IS_ABSOLUTE "${lib}")
- get_filename_component(libdir "${lib}" PATH)
- string(REPLACE "\\" "/" libdir "${libdir}")
- list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT ${libdir})
- endif()
- endforeach()
- endif()
-
- # Handle Python version suffixes
- unset(COMPONENT_PYTHON_VERSION_MAJOR)
- unset(COMPONENT_PYTHON_VERSION_MINOR)
- if(${COMPONENT} MATCHES "^(python|mpi_python|numpy)([0-9])\$")
- set(COMPONENT_UNVERSIONED "${CMAKE_MATCH_1}")
- set(COMPONENT_PYTHON_VERSION_MAJOR "${CMAKE_MATCH_2}")
- elseif(${COMPONENT} MATCHES "^(python|mpi_python|numpy)([0-9])\\.?([0-9])\$")
- set(COMPONENT_UNVERSIONED "${CMAKE_MATCH_1}")
- set(COMPONENT_PYTHON_VERSION_MAJOR "${CMAKE_MATCH_2}")
- set(COMPONENT_PYTHON_VERSION_MINOR "${CMAKE_MATCH_3}")
- endif()
-
- unset(_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME)
- if (COMPONENT_PYTHON_VERSION_MINOR)
- # Boost >= 1.67
- list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}")
- # Debian/Ubuntu (Some versions omit the 2 and/or 3 from the suffix)
- list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}${COMPONENT_PYTHON_VERSION_MAJOR}-py${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}")
- list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-py${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}")
- # Gentoo
- list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-${COMPONENT_PYTHON_VERSION_MAJOR}.${COMPONENT_PYTHON_VERSION_MINOR}")
- # RPMs
- list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}")
- endif()
- if (COMPONENT_PYTHON_VERSION_MAJOR AND NOT COMPONENT_PYTHON_VERSION_MINOR)
- # Boost < 1.67
- list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}${COMPONENT_PYTHON_VERSION_MAJOR}")
- endif()
-
- # Consolidate and report component-specific hints.
- if(_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME)
- list(REMOVE_DUPLICATES _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME)
- _Boost_DEBUG_PRINT("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
- "Component-specific library search names for ${COMPONENT_NAME}: ${_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME}")
- endif()
- if(_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT)
- list(REMOVE_DUPLICATES _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT)
- _Boost_DEBUG_PRINT("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
- "Component-specific library search paths for ${COMPONENT}: ${_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT}")
- endif()
-
- #
- # Find headers
- #
- _Boost_COMPONENT_HEADERS("${COMPONENT}" Boost_${UPPERCOMPONENT}_HEADER_NAME)
- # Look for a standard boost header file.
- if(Boost_${UPPERCOMPONENT}_HEADER_NAME)
- if(EXISTS "${Boost_INCLUDE_DIR}/${Boost_${UPPERCOMPONENT}_HEADER_NAME}")
- set(Boost_${UPPERCOMPONENT}_HEADER ON)
- else()
- set(Boost_${UPPERCOMPONENT}_HEADER OFF)
- endif()
- else()
- set(Boost_${UPPERCOMPONENT}_HEADER ON)
- message(WARNING "No header defined for ${COMPONENT}; skipping header check "
- "(note: header-only libraries have no designated component)")
- endif()
-
- #
- # Find RELEASE libraries
- #
- unset(_boost_RELEASE_NAMES)
- foreach(component IN LISTS _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME COMPONENT)
- foreach(compiler IN LISTS _boost_COMPILER)
- list(APPEND _boost_RELEASE_NAMES
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG} )
- endforeach()
- 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_ARCHITECTURE_TAG}
- ${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}")
- foreach(compiler IN LISTS _boost_COMPILER)
- list(APPEND _boost_RELEASE_NAMES
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG} )
- endforeach()
- list(APPEND _boost_RELEASE_NAMES
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG} )
- endif()
- endforeach()
- if(Boost_THREADAPI AND ${COMPONENT} STREQUAL "thread")
- _Boost_PREPEND_LIST_WITH_THREADAPI(_boost_RELEASE_NAMES ${_boost_RELEASE_NAMES})
- endif()
- _Boost_DEBUG_PRINT("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
- "Searching for ${UPPERCOMPONENT}_LIBRARY_RELEASE: ${_boost_RELEASE_NAMES}")
-
- # if Boost_LIBRARY_DIR_RELEASE is not defined,
- # but Boost_LIBRARY_DIR_DEBUG is, look there first for RELEASE libs
- if(NOT Boost_LIBRARY_DIR_RELEASE AND Boost_LIBRARY_DIR_DEBUG)
- list(INSERT _boost_LIBRARY_SEARCH_DIRS_RELEASE 0 ${Boost_LIBRARY_DIR_DEBUG})
- endif()
-
- # Avoid passing backslashes to _Boost_FIND_LIBRARY due to macro re-parsing.
- string(REPLACE "\\" "/" _boost_LIBRARY_SEARCH_DIRS_tmp "${_boost_LIBRARY_SEARCH_DIRS_RELEASE}")
-
- if(Boost_USE_RELEASE_LIBS)
- _Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE RELEASE
- NAMES ${_boost_RELEASE_NAMES}
- HINTS ${_boost_LIBRARY_SEARCH_DIRS_tmp}
- NAMES_PER_DIR
- DOC "${_boost_docstring_release}"
- )
- endif()
-
- #
- # Find DEBUG libraries
- #
- unset(_boost_DEBUG_NAMES)
- foreach(component IN LISTS _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME COMPONENT)
- foreach(compiler IN LISTS _boost_COMPILER)
- list(APPEND _boost_DEBUG_NAMES
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG} )
- endforeach()
- list(APPEND _boost_DEBUG_NAMES
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component} )
- if(_boost_STATIC_RUNTIME_WORKAROUND)
- set(_boost_DEBUG_STATIC_ABI_TAG "-s${_boost_DEBUG_ABI_TAG}")
- foreach(compiler IN LISTS _boost_COMPILER)
- list(APPEND _boost_DEBUG_NAMES
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG} )
- endforeach()
- list(APPEND _boost_DEBUG_NAMES
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG} )
- endif()
- endforeach()
- if(Boost_THREADAPI AND ${COMPONENT} STREQUAL "thread")
- _Boost_PREPEND_LIST_WITH_THREADAPI(_boost_DEBUG_NAMES ${_boost_DEBUG_NAMES})
- endif()
- _Boost_DEBUG_PRINT("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
- "Searching for ${UPPERCOMPONENT}_LIBRARY_DEBUG: ${_boost_DEBUG_NAMES}")
-
- # if Boost_LIBRARY_DIR_DEBUG is not defined,
- # but Boost_LIBRARY_DIR_RELEASE is, look there first for DEBUG libs
- if(NOT Boost_LIBRARY_DIR_DEBUG AND Boost_LIBRARY_DIR_RELEASE)
- list(INSERT _boost_LIBRARY_SEARCH_DIRS_DEBUG 0 ${Boost_LIBRARY_DIR_RELEASE})
- endif()
-
- # Avoid passing backslashes to _Boost_FIND_LIBRARY due to macro re-parsing.
- string(REPLACE "\\" "/" _boost_LIBRARY_SEARCH_DIRS_tmp "${_boost_LIBRARY_SEARCH_DIRS_DEBUG}")
-
- if(Boost_USE_DEBUG_LIBS)
- _Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG DEBUG
- NAMES ${_boost_DEBUG_NAMES}
- HINTS ${_boost_LIBRARY_SEARCH_DIRS_tmp}
- NAMES_PER_DIR
- DOC "${_boost_docstring_debug}"
- )
- endif ()
-
- if(Boost_REALPATH)
- _Boost_SWAP_WITH_REALPATH(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE "${_boost_docstring_release}")
- _Boost_SWAP_WITH_REALPATH(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG "${_boost_docstring_debug}" )
- endif()
-
- _Boost_ADJUST_LIB_VARS(${UPPERCOMPONENT})
-
- # Check if component requires some compiler features
- _Boost_COMPILER_FEATURES(${COMPONENT} _Boost_${UPPERCOMPONENT}_COMPILER_FEATURES)
-
-endforeach()
-
-# Restore the original find library ordering
-if( Boost_USE_STATIC_LIBS )
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
-endif()
-
-# ------------------------------------------------------------------------
-# End finding boost libraries
-# ------------------------------------------------------------------------
-
-set(Boost_INCLUDE_DIRS ${Boost_INCLUDE_DIR})
-set(Boost_LIBRARY_DIRS)
-if(Boost_LIBRARY_DIR_RELEASE)
- list(APPEND Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIR_RELEASE})
-endif()
-if(Boost_LIBRARY_DIR_DEBUG)
- list(APPEND Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIR_DEBUG})
-endif()
-if(Boost_LIBRARY_DIRS)
- list(REMOVE_DUPLICATES Boost_LIBRARY_DIRS)
-endif()
-
-# ------------------------------------------------------------------------
-# Call FPHSA helper, see https://cmake.org/cmake/help/latest/module/FindPackageHandleStandardArgs.html
-# ------------------------------------------------------------------------
-
-# Define aliases as needed by the component handler in the FPHSA helper below
-foreach(_comp IN LISTS Boost_FIND_COMPONENTS)
- string(TOUPPER ${_comp} _uppercomp)
- if(DEFINED Boost_${_uppercomp}_FOUND)
- set(Boost_${_comp}_FOUND ${Boost_${_uppercomp}_FOUND})
- endif()
-endforeach()
-
-find_package_handle_standard_args(Boost
- REQUIRED_VARS Boost_INCLUDE_DIR
- VERSION_VAR Boost_VERSION_STRING
- HANDLE_COMPONENTS)
-
-if(Boost_FOUND)
- if( NOT Boost_LIBRARY_DIRS )
- # Compatibility Code for backwards compatibility with CMake
- # 2.4's FindBoost module.
-
- # Look for the boost library path.
- # Note that the user may not have installed any libraries
- # so it is quite possible the Boost_LIBRARY_DIRS may not exist.
- set(_boost_LIB_DIR ${Boost_INCLUDE_DIR})
-
- if("${_boost_LIB_DIR}" MATCHES "boost-[0-9]+")
- get_filename_component(_boost_LIB_DIR ${_boost_LIB_DIR} PATH)
- endif()
-
- if("${_boost_LIB_DIR}" MATCHES "/include$")
- # Strip off the trailing "/include" in the path.
- get_filename_component(_boost_LIB_DIR ${_boost_LIB_DIR} PATH)
- endif()
-
- if(EXISTS "${_boost_LIB_DIR}/lib")
- string(APPEND _boost_LIB_DIR /lib)
- elseif(EXISTS "${_boost_LIB_DIR}/stage/lib")
- string(APPEND _boost_LIB_DIR "/stage/lib")
- else()
- set(_boost_LIB_DIR "")
- endif()
-
- if(_boost_LIB_DIR AND EXISTS "${_boost_LIB_DIR}")
- set(Boost_LIBRARY_DIRS ${_boost_LIB_DIR})
- endif()
-
- endif()
-else()
- # Boost headers were not found so no components were found.
- foreach(COMPONENT ${Boost_FIND_COMPONENTS})
- string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
- set(Boost_${UPPERCOMPONENT}_FOUND 0)
- endforeach()
-endif()
-
-# ------------------------------------------------------------------------
-# Add imported targets
-# ------------------------------------------------------------------------
-
-if(Boost_FOUND)
- # The builtin CMake package in Boost 1.70+ introduces a new name
- # for the header-only lib, let's provide the same UI in module mode
- if(NOT TARGET Boost::headers)
- add_library(Boost::headers INTERFACE IMPORTED)
- if(Boost_INCLUDE_DIRS)
- set_target_properties(Boost::headers PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}")
- endif()
- endif()
-
- # Define the old target name for header-only libraries for backwards
- # compat.
- if(NOT TARGET Boost::boost)
- add_library(Boost::boost INTERFACE IMPORTED)
- set_target_properties(Boost::boost
- PROPERTIES INTERFACE_LINK_LIBRARIES Boost::headers)
- endif()
-
- foreach(COMPONENT ${Boost_FIND_COMPONENTS})
- if(_Boost_IMPORTED_TARGETS AND NOT TARGET Boost::${COMPONENT})
- string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
- if(Boost_${UPPERCOMPONENT}_FOUND)
- if(Boost_USE_STATIC_LIBS)
- add_library(Boost::${COMPONENT} STATIC IMPORTED)
- else()
- # Even if Boost_USE_STATIC_LIBS is OFF, we might have static
- # libraries as a result.
- add_library(Boost::${COMPONENT} UNKNOWN IMPORTED)
- endif()
- if(Boost_INCLUDE_DIRS)
- set_target_properties(Boost::${COMPONENT} PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}")
- endif()
- if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY}")
- set_target_properties(Boost::${COMPONENT} PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
- IMPORTED_LOCATION "${Boost_${UPPERCOMPONENT}_LIBRARY}")
- endif()
- if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE}")
- set_property(TARGET Boost::${COMPONENT} APPEND PROPERTY
- IMPORTED_CONFIGURATIONS RELEASE)
- set_target_properties(Boost::${COMPONENT} PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
- IMPORTED_LOCATION_RELEASE "${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE}")
- endif()
- if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG}")
- set_property(TARGET Boost::${COMPONENT} APPEND PROPERTY
- IMPORTED_CONFIGURATIONS DEBUG)
- set_target_properties(Boost::${COMPONENT} PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
- IMPORTED_LOCATION_DEBUG "${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG}")
- endif()
- if(_Boost_${UPPERCOMPONENT}_DEPENDENCIES)
- unset(_Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES)
- foreach(dep ${_Boost_${UPPERCOMPONENT}_DEPENDENCIES})
- list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES Boost::${dep})
- endforeach()
- if(COMPONENT STREQUAL "thread")
- list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES Threads::Threads)
- endif()
- set_target_properties(Boost::${COMPONENT} PROPERTIES
- INTERFACE_LINK_LIBRARIES "${_Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES}")
- endif()
- if(_Boost_${UPPERCOMPONENT}_COMPILER_FEATURES)
- set_target_properties(Boost::${COMPONENT} PROPERTIES
- INTERFACE_COMPILE_FEATURES "${_Boost_${UPPERCOMPONENT}_COMPILER_FEATURES}")
- endif()
- endif()
- endif()
- endforeach()
-endif()
-
-# ------------------------------------------------------------------------
-# Finalize
-# ------------------------------------------------------------------------
-
-# Report Boost_LIBRARIES
-set(Boost_LIBRARIES "")
-foreach(_comp IN LISTS Boost_FIND_COMPONENTS)
- string(TOUPPER ${_comp} _uppercomp)
- if(Boost_${_uppercomp}_FOUND)
- list(APPEND Boost_LIBRARIES ${Boost_${_uppercomp}_LIBRARY})
- if(_comp STREQUAL "thread")
- list(APPEND Boost_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
- endif()
- endif()
-endforeach()
-
-# Configure display of cache entries in GUI.
-foreach(v BOOSTROOT BOOST_ROOT ${_Boost_VARS_INC} ${_Boost_VARS_LIB})
- get_property(_type CACHE ${v} PROPERTY TYPE)
- if(_type)
- set_property(CACHE ${v} PROPERTY ADVANCED 1)
- if("x${_type}" STREQUAL "xUNINITIALIZED")
- if("x${v}" STREQUAL "xBoost_ADDITIONAL_VERSIONS")
- set_property(CACHE ${v} PROPERTY TYPE STRING)
- else()
- set_property(CACHE ${v} PROPERTY TYPE PATH)
- endif()
- endif()
- endif()
-endforeach()
-
-# Record last used values of input variables so we can
-# detect on the next run if the user changed them.
-foreach(v
- ${_Boost_VARS_INC} ${_Boost_VARS_LIB}
- ${_Boost_VARS_DIR} ${_Boost_VARS_NAME}
- )
- if(DEFINED ${v})
- set(_${v}_LAST "${${v}}" CACHE INTERNAL "Last used ${v} value.")
- else()
- unset(_${v}_LAST CACHE)
- endif()
-endforeach()
-
-# Maintain a persistent list of components requested anywhere since
-# the last flush.
-set(_Boost_COMPONENTS_SEARCHED "${_Boost_COMPONENTS_SEARCHED}")
-list(APPEND _Boost_COMPONENTS_SEARCHED ${Boost_FIND_COMPONENTS})
-list(REMOVE_DUPLICATES _Boost_COMPONENTS_SEARCHED)
-list(SORT _Boost_COMPONENTS_SEARCHED)
-set(_Boost_COMPONENTS_SEARCHED "${_Boost_COMPONENTS_SEARCHED}"
- CACHE INTERNAL "Components requested for this build tree.")
-
-# Restore project's policies
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FindCUDA.cmake b/share/cmake-3.16/Modules/FindCUDA.cmake
deleted file mode 100644
index b6859aa..0000000
--- a/share/cmake-3.16/Modules/FindCUDA.cmake
+++ /dev/null
@@ -1,2012 +0,0 @@
-#[=======================================================================[.rst:
-FindCUDA
---------
-
-.. deprecated:: 3.10
-
- Superseded by first-class support for the CUDA language in CMake.
-
-Replacement
-^^^^^^^^^^^
-
-It is no longer necessary to use this module or call ``find_package(CUDA)``.
-Instead, list ``CUDA`` among the languages named in the top-level
-call to the :command:`project` command, or call the
-:command:`enable_language` command with ``CUDA``.
-Then one can add CUDA (``.cu``) sources to programs directly
-in calls to :command:`add_library` and :command:`add_executable`.
-
-Documentation of Deprecated Usage
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Tools for building CUDA C files: libraries and build dependencies.
-
-This script locates the NVIDIA CUDA C tools. It should work on Linux,
-Windows, and macOS and should be reasonably up to date with CUDA C
-releases.
-
-This script makes use of the standard :command:`find_package` arguments of
-``<VERSION>``, ``REQUIRED`` and ``QUIET``. ``CUDA_FOUND`` will report if an
-acceptable version of CUDA was found.
-
-The script will prompt the user to specify ``CUDA_TOOLKIT_ROOT_DIR`` if
-the prefix cannot be determined by the location of nvcc in the system
-path and ``REQUIRED`` is specified to :command:`find_package`. To use
-a different installed version of the toolkit set the environment variable
-``CUDA_BIN_PATH`` before running cmake (e.g.
-``CUDA_BIN_PATH=/usr/local/cuda1.0`` instead of the default
-``/usr/local/cuda``) or set ``CUDA_TOOLKIT_ROOT_DIR`` after configuring. If
-you change the value of ``CUDA_TOOLKIT_ROOT_DIR``, various components that
-depend on the path will be relocated.
-
-It might be necessary to set ``CUDA_TOOLKIT_ROOT_DIR`` manually on certain
-platforms, or to use a CUDA runtime not installed in the default
-location. In newer versions of the toolkit the CUDA library is
-included with the graphics driver -- be sure that the driver version
-matches what is needed by the CUDA runtime version.
-
-The following variables affect the behavior of the macros in the
-script (in alphabetical order). Note that any of these flags can be
-changed multiple times in the same directory before calling
-``CUDA_ADD_EXECUTABLE``, ``CUDA_ADD_LIBRARY``, ``CUDA_COMPILE``,
-``CUDA_COMPILE_PTX``, ``CUDA_COMPILE_FATBIN``, ``CUDA_COMPILE_CUBIN``
-or ``CUDA_WRAP_SRCS``::
-
- CUDA_64_BIT_DEVICE_CODE (Default matches host bit size)
- -- Set to ON to compile for 64 bit device code, OFF for 32 bit device code.
- Note that making this different from the host code when generating object
- or C files from CUDA code just won't work, because size_t gets defined by
- nvcc in the generated source. If you compile to PTX and then load the
- file yourself, you can mix bit sizes between device and host.
-
- CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE (Default ON)
- -- Set to ON if you want the custom build rule to be attached to the source
- file in Visual Studio. Turn OFF if you add the same cuda file to multiple
- targets.
-
- This allows the user to build the target from the CUDA file; however, bad
- things can happen if the CUDA source file is added to multiple targets.
- When performing parallel builds it is possible for the custom build
- command to be run more than once and in parallel causing cryptic build
- errors. VS runs the rules for every source file in the target, and a
- source can have only one rule no matter how many projects it is added to.
- When the rule is run from multiple targets race conditions can occur on
- the generated file. Eventually everything will get built, but if the user
- is unaware of this behavior, there may be confusion. It would be nice if
- this script could detect the reuse of source files across multiple targets
- and turn the option off for the user, but no good solution could be found.
-
- CUDA_BUILD_CUBIN (Default OFF)
- -- Set to ON to enable and extra compilation pass with the -cubin option in
- Device mode. The output is parsed and register, shared memory usage is
- printed during build.
-
- CUDA_BUILD_EMULATION (Default OFF for device mode)
- -- Set to ON for Emulation mode. -D_DEVICEEMU is defined for CUDA C files
- when CUDA_BUILD_EMULATION is TRUE.
-
- CUDA_LINK_LIBRARIES_KEYWORD (Default "")
- -- The <PRIVATE|PUBLIC|INTERFACE> keyword to use for internal
- target_link_libraries calls. The default is to use no keyword which
- uses the old "plain" form of target_link_libraries. Note that is matters
- because whatever is used inside the FindCUDA module must also be used
- outside - the two forms of target_link_libraries cannot be mixed.
-
- CUDA_GENERATED_OUTPUT_DIR (Default CMAKE_CURRENT_BINARY_DIR)
- -- Set to the path you wish to have the generated files placed. If it is
- blank output files will be placed in CMAKE_CURRENT_BINARY_DIR.
- Intermediate files will always be placed in
- CMAKE_CURRENT_BINARY_DIR/CMakeFiles.
-
- CUDA_HOST_COMPILATION_CPP (Default ON)
- -- Set to OFF for C compilation of host code.
-
- CUDA_HOST_COMPILER (Default CMAKE_C_COMPILER)
- -- Set the host compiler to be used by nvcc. Ignored if -ccbin or
- --compiler-bindir is already present in the CUDA_NVCC_FLAGS or
- CUDA_NVCC_FLAGS_<CONFIG> variables. For Visual Studio targets,
- the host compiler is constructed with one or more visual studio macros
- such as $(VCInstallDir), that expands out to the path when
- the command is run from within VS.
- If the CUDAHOSTCXX environment variable is set it will
- be used as the default.
-
- CUDA_NVCC_FLAGS
- CUDA_NVCC_FLAGS_<CONFIG>
- -- Additional NVCC command line arguments. NOTE: multiple arguments must be
- semi-colon delimited (e.g. --compiler-options;-Wall)
-
- CUDA_PROPAGATE_HOST_FLAGS (Default ON)
- -- Set to ON to propagate CMAKE_{C,CXX}_FLAGS and their configuration
- dependent counterparts (e.g. CMAKE_C_FLAGS_DEBUG) automatically to the
- host compiler through nvcc's -Xcompiler flag. This helps make the
- generated host code match the rest of the system better. Sometimes
- certain flags give nvcc problems, and this will help you turn the flag
- propagation off. This does not affect the flags supplied directly to nvcc
- via CUDA_NVCC_FLAGS or through the OPTION flags specified through
- CUDA_ADD_LIBRARY, CUDA_ADD_EXECUTABLE, or CUDA_WRAP_SRCS. Flags used for
- shared library compilation are not affected by this flag.
-
- CUDA_SEPARABLE_COMPILATION (Default OFF)
- -- If set this will enable separable compilation for all CUDA runtime object
- files. If used outside of CUDA_ADD_EXECUTABLE and CUDA_ADD_LIBRARY
- (e.g. calling CUDA_WRAP_SRCS directly),
- CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME and
- CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS should be called.
-
- CUDA_SOURCE_PROPERTY_FORMAT
- -- If this source file property is set, it can override the format specified
- to CUDA_WRAP_SRCS (OBJ, PTX, CUBIN, or FATBIN). If an input source file
- is not a .cu file, setting this file will cause it to be treated as a .cu
- file. See documentation for set_source_files_properties on how to set
- this property.
-
- CUDA_USE_STATIC_CUDA_RUNTIME (Default ON)
- -- When enabled the static version of the CUDA runtime library will be used
- in CUDA_LIBRARIES. If the version of CUDA configured doesn't support
- this option, then it will be silently disabled.
-
- CUDA_VERBOSE_BUILD (Default OFF)
- -- Set to ON to see all the commands used when building the CUDA file. When
- using a Makefile generator the value defaults to VERBOSE (run make
- VERBOSE=1 to see output), although setting CUDA_VERBOSE_BUILD to ON will
- always print the output.
-
-The script creates the following macros (in alphabetical order)::
-
- CUDA_ADD_CUFFT_TO_TARGET( cuda_target )
- -- Adds the cufft library to the target (can be any target). Handles whether
- you are in emulation mode or not.
-
- CUDA_ADD_CUBLAS_TO_TARGET( cuda_target )
- -- Adds the cublas library to the target (can be any target). Handles
- whether you are in emulation mode or not.
-
- CUDA_ADD_EXECUTABLE( cuda_target file0 file1 ...
- [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] [OPTIONS ...] )
- -- Creates an executable "cuda_target" which is made up of the files
- specified. All of the non CUDA C files are compiled using the standard
- build rules specified by CMAKE and the cuda files are compiled to object
- files using nvcc and the host compiler. In addition CUDA_INCLUDE_DIRS is
- added automatically to include_directories(). Some standard CMake target
- calls can be used on the target after calling this macro
- (e.g. set_target_properties and target_link_libraries), but setting
- properties that adjust compilation flags will not affect code compiled by
- nvcc. Such flags should be modified before calling CUDA_ADD_EXECUTABLE,
- CUDA_ADD_LIBRARY or CUDA_WRAP_SRCS.
-
- CUDA_ADD_LIBRARY( cuda_target file0 file1 ...
- [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [OPTIONS ...] )
- -- Same as CUDA_ADD_EXECUTABLE except that a library is created.
-
- CUDA_BUILD_CLEAN_TARGET()
- -- Creates a convenience target that deletes all the dependency files
- generated. You should make clean after running this target to ensure the
- dependency files get regenerated.
-
- CUDA_COMPILE( generated_files file0 file1 ... [STATIC | SHARED | MODULE]
- [OPTIONS ...] )
- -- Returns a list of generated files from the input source files to be used
- with ADD_LIBRARY or ADD_EXECUTABLE.
-
- CUDA_COMPILE_PTX( generated_files file0 file1 ... [OPTIONS ...] )
- -- Returns a list of PTX files generated from the input source files.
-
- CUDA_COMPILE_FATBIN( generated_files file0 file1 ... [OPTIONS ...] )
- -- Returns a list of FATBIN files generated from the input source files.
-
- CUDA_COMPILE_CUBIN( generated_files file0 file1 ... [OPTIONS ...] )
- -- Returns a list of CUBIN files generated from the input source files.
-
- CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME( output_file_var
- cuda_target
- object_files )
- -- Compute the name of the intermediate link file used for separable
- compilation. This file name is typically passed into
- CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS. output_file_var is produced
- based on cuda_target the list of objects files that need separable
- compilation as specified by object_files. If the object_files list is
- empty, then output_file_var will be empty. This function is called
- automatically for CUDA_ADD_LIBRARY and CUDA_ADD_EXECUTABLE. Note that
- this is a function and not a macro.
-
- CUDA_INCLUDE_DIRECTORIES( path0 path1 ... )
- -- Sets the directories that should be passed to nvcc
- (e.g. nvcc -Ipath0 -Ipath1 ... ). These paths usually contain other .cu
- files.
-
-
- CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS( output_file_var cuda_target
- nvcc_flags object_files)
- -- Generates the link object required by separable compilation from the given
- object files. This is called automatically for CUDA_ADD_EXECUTABLE and
- CUDA_ADD_LIBRARY, but can be called manually when using CUDA_WRAP_SRCS
- directly. When called from CUDA_ADD_LIBRARY or CUDA_ADD_EXECUTABLE the
- nvcc_flags passed in are the same as the flags passed in via the OPTIONS
- argument. The only nvcc flag added automatically is the bitness flag as
- specified by CUDA_64_BIT_DEVICE_CODE. Note that this is a function
- instead of a macro.
-
- CUDA_SELECT_NVCC_ARCH_FLAGS(out_variable [target_CUDA_architectures])
- -- Selects GPU arch flags for nvcc based on target_CUDA_architectures
- target_CUDA_architectures : Auto | Common | All | LIST(ARCH_AND_PTX ...)
- - "Auto" detects local machine GPU compute arch at runtime.
- - "Common" and "All" cover common and entire subsets of architectures
- ARCH_AND_PTX : NAME | NUM.NUM | NUM.NUM(NUM.NUM) | NUM.NUM+PTX
- NAME: Fermi Kepler Maxwell Kepler+Tegra Kepler+Tesla Maxwell+Tegra Pascal
- NUM: Any number. Only those pairs are currently accepted by NVCC though:
- 2.0 2.1 3.0 3.2 3.5 3.7 5.0 5.2 5.3 6.0 6.2
- Returns LIST of flags to be added to CUDA_NVCC_FLAGS in ${out_variable}
- Additionally, sets ${out_variable}_readable to the resulting numeric list
- Example:
- CUDA_SELECT_NVCC_ARCH_FLAGS(ARCH_FLAGS 3.0 3.5+PTX 5.2(5.0) Maxwell)
- LIST(APPEND CUDA_NVCC_FLAGS ${ARCH_FLAGS})
-
- More info on CUDA architectures: https://en.wikipedia.org/wiki/CUDA
- Note that this is a function instead of a macro.
-
- CUDA_WRAP_SRCS ( cuda_target format generated_files file0 file1 ...
- [STATIC | SHARED | MODULE] [OPTIONS ...] )
- -- This is where all the magic happens. CUDA_ADD_EXECUTABLE,
- CUDA_ADD_LIBRARY, CUDA_COMPILE, and CUDA_COMPILE_PTX all call this
- function under the hood.
-
- Given the list of files (file0 file1 ... fileN) this macro generates
- custom commands that generate either PTX or linkable objects (use "PTX" or
- "OBJ" for the format argument to switch). Files that don't end with .cu
- or have the HEADER_FILE_ONLY property are ignored.
-
- The arguments passed in after OPTIONS are extra command line options to
- give to nvcc. You can also specify per configuration options by
- specifying the name of the configuration followed by the options. General
- options must precede configuration specific options. Not all
- configurations need to be specified, only the ones provided will be used.
-
- OPTIONS -DFLAG=2 "-DFLAG_OTHER=space in flag"
- DEBUG -g
- RELEASE --use_fast_math
- RELWITHDEBINFO --use_fast_math;-g
- MINSIZEREL --use_fast_math
-
- For certain configurations (namely VS generating object files with
- CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE set to ON), no generated file will
- be produced for the given cuda file. This is because when you add the
- cuda file to Visual Studio it knows that this file produces an object file
- and will link in the resulting object file automatically.
-
- This script will also generate a separate cmake script that is used at
- build time to invoke nvcc. This is for several reasons.
-
- 1. nvcc can return negative numbers as return values which confuses
- Visual Studio into thinking that the command succeeded. The script now
- checks the error codes and produces errors when there was a problem.
-
- 2. nvcc has been known to not delete incomplete results when it
- encounters problems. This confuses build systems into thinking the
- target was generated when in fact an unusable file exists. The script
- now deletes the output files if there was an error.
-
- 3. By putting all the options that affect the build into a file and then
- make the build rule dependent on the file, the output files will be
- regenerated when the options change.
-
- This script also looks at optional arguments STATIC, SHARED, or MODULE to
- determine when to target the object compilation for a shared library.
- BUILD_SHARED_LIBS is ignored in CUDA_WRAP_SRCS, but it is respected in
- CUDA_ADD_LIBRARY. On some systems special flags are added for building
- objects intended for shared libraries. A preprocessor macro,
- <target_name>_EXPORTS is defined when a shared library compilation is
- detected.
-
- Flags passed into add_definitions with -D or /D are passed along to nvcc.
-
-
-
-The script defines the following variables::
-
- CUDA_VERSION_MAJOR -- The major version of cuda as reported by nvcc.
- CUDA_VERSION_MINOR -- The minor version.
- CUDA_VERSION
- CUDA_VERSION_STRING -- CUDA_VERSION_MAJOR.CUDA_VERSION_MINOR
- CUDA_HAS_FP16 -- Whether a short float (float16,fp16) is supported.
-
- CUDA_TOOLKIT_ROOT_DIR -- Path to the CUDA Toolkit (defined if not set).
- CUDA_SDK_ROOT_DIR -- Path to the CUDA SDK. Use this to find files in the
- SDK. This script will not directly support finding
- specific libraries or headers, as that isn't
- supported by NVIDIA. If you want to change
- libraries when the path changes see the
- FindCUDA.cmake script for an example of how to clear
- these variables. There are also examples of how to
- use the CUDA_SDK_ROOT_DIR to locate headers or
- libraries, if you so choose (at your own risk).
- CUDA_INCLUDE_DIRS -- Include directory for cuda headers. Added automatically
- for CUDA_ADD_EXECUTABLE and CUDA_ADD_LIBRARY.
- CUDA_LIBRARIES -- Cuda RT library.
- CUDA_CUFFT_LIBRARIES -- Device or emulation library for the Cuda FFT
- implementation (alternative to:
- CUDA_ADD_CUFFT_TO_TARGET macro)
- CUDA_CUBLAS_LIBRARIES -- Device or emulation library for the Cuda BLAS
- implementation (alternative to:
- CUDA_ADD_CUBLAS_TO_TARGET macro).
- CUDA_cudart_static_LIBRARY -- Statically linkable cuda runtime library.
- Only available for CUDA version 5.5+
- CUDA_cudadevrt_LIBRARY -- Device runtime library.
- Required for separable compilation.
- CUDA_cupti_LIBRARY -- CUDA Profiling Tools Interface library.
- Only available for CUDA version 4.0+.
- CUDA_curand_LIBRARY -- CUDA Random Number Generation library.
- Only available for CUDA version 3.2+.
- CUDA_cusolver_LIBRARY -- CUDA Direct Solver library.
- Only available for CUDA version 7.0+.
- CUDA_cusparse_LIBRARY -- CUDA Sparse Matrix library.
- Only available for CUDA version 3.2+.
- CUDA_npp_LIBRARY -- NVIDIA Performance Primitives lib.
- Only available for CUDA version 4.0+.
- CUDA_nppc_LIBRARY -- NVIDIA Performance Primitives lib (core).
- Only available for CUDA version 5.5+.
- CUDA_nppi_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
- Only available for CUDA version 5.5 - 8.0.
- CUDA_nppial_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
- Only available for CUDA version 9.0.
- CUDA_nppicc_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
- Only available for CUDA version 9.0.
- CUDA_nppicom_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
- Only available for CUDA version 9.0.
- CUDA_nppidei_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
- Only available for CUDA version 9.0.
- CUDA_nppif_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
- Only available for CUDA version 9.0.
- CUDA_nppig_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
- Only available for CUDA version 9.0.
- CUDA_nppim_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
- Only available for CUDA version 9.0.
- CUDA_nppist_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
- Only available for CUDA version 9.0.
- CUDA_nppisu_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
- Only available for CUDA version 9.0.
- CUDA_nppitc_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
- Only available for CUDA version 9.0.
- CUDA_npps_LIBRARY -- NVIDIA Performance Primitives lib (signal processing).
- Only available for CUDA version 5.5+.
- CUDA_nvcuvenc_LIBRARY -- CUDA Video Encoder library.
- Only available for CUDA version 3.2+.
- Windows only.
- CUDA_nvcuvid_LIBRARY -- CUDA Video Decoder library.
- Only available for CUDA version 3.2+.
- Windows only.
- CUDA_nvToolsExt_LIBRARY
- -- NVIDA CUDA Tools Extension library.
- Available for CUDA version 5+.
- CUDA_OpenCL_LIBRARY -- NVIDA CUDA OpenCL library.
- Available for CUDA version 5+.
-
-#]=======================================================================]
-
-# James Bigler, NVIDIA Corp (nvidia.com - jbigler)
-# Abe Stephens, SCI Institute -- http://www.sci.utah.edu/~abe/FindCuda.html
-#
-# Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved.
-#
-# Copyright (c) 2007-2009
-# Scientific Computing and Imaging Institute, University of Utah
-#
-# This code is licensed under the MIT License. See the FindCUDA.cmake script
-# for the text of the license.
-
-# The MIT License
-#
-# License for the specific language governing rights and limitations under
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-# DEALINGS IN THE SOFTWARE.
-#
-###############################################################################
-
-# FindCUDA.cmake
-
-# This macro helps us find the location of helper files we will need the full path to
-macro(CUDA_FIND_HELPER_FILE _name _extension)
- set(_full_name "${_name}.${_extension}")
- # CMAKE_CURRENT_LIST_FILE contains the full path to the file currently being
- # processed. Using this variable, we can pull out the current path, and
- # provide a way to get access to the other files we need local to here.
- get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
- set(CUDA_${_name} "${CMAKE_CURRENT_LIST_DIR}/FindCUDA/${_full_name}")
- if(NOT EXISTS "${CUDA_${_name}}")
- set(error_message "${_full_name} not found in ${CMAKE_CURRENT_LIST_DIR}/FindCUDA")
- if(CUDA_FIND_REQUIRED)
- message(FATAL_ERROR "${error_message}")
- else()
- if(NOT CUDA_FIND_QUIETLY)
- message(STATUS "${error_message}")
- endif()
- endif()
- endif()
- # Set this variable as internal, so the user isn't bugged with it.
- set(CUDA_${_name} ${CUDA_${_name}} CACHE INTERNAL "Location of ${_full_name}" FORCE)
-endmacro()
-
-#####################################################################
-## CUDA_INCLUDE_NVCC_DEPENDENCIES
-##
-
-# So we want to try and include the dependency file if it exists. If
-# it doesn't exist then we need to create an empty one, so we can
-# include it.
-
-# If it does exist, then we need to check to see if all the files it
-# depends on exist. If they don't then we should clear the dependency
-# file and regenerate it later. This covers the case where a header
-# file has disappeared or moved.
-
-macro(CUDA_INCLUDE_NVCC_DEPENDENCIES dependency_file)
- set(CUDA_NVCC_DEPEND)
- set(CUDA_NVCC_DEPEND_REGENERATE FALSE)
-
-
- # Include the dependency file. Create it first if it doesn't exist . The
- # INCLUDE puts a dependency that will force CMake to rerun and bring in the
- # new info when it changes. DO NOT REMOVE THIS (as I did and spent a few
- # hours figuring out why it didn't work.
- if(NOT EXISTS ${dependency_file})
- file(WRITE ${dependency_file} "#FindCUDA.cmake generated file. Do not edit.\n")
- endif()
- # Always include this file to force CMake to run again next
- # invocation and rebuild the dependencies.
- #message("including dependency_file = ${dependency_file}")
- include(${dependency_file})
-
- # Now we need to verify the existence of all the included files
- # here. If they aren't there we need to just blank this variable and
- # make the file regenerate again.
-# if(DEFINED CUDA_NVCC_DEPEND)
-# message("CUDA_NVCC_DEPEND set")
-# else()
-# message("CUDA_NVCC_DEPEND NOT set")
-# endif()
- if(CUDA_NVCC_DEPEND)
- #message("CUDA_NVCC_DEPEND found")
- foreach(f ${CUDA_NVCC_DEPEND})
- # message("searching for ${f}")
- if(NOT EXISTS ${f})
- #message("file ${f} not found")
- set(CUDA_NVCC_DEPEND_REGENERATE TRUE)
- endif()
- endforeach()
- else()
- #message("CUDA_NVCC_DEPEND false")
- # No dependencies, so regenerate the file.
- set(CUDA_NVCC_DEPEND_REGENERATE TRUE)
- endif()
-
- #message("CUDA_NVCC_DEPEND_REGENERATE = ${CUDA_NVCC_DEPEND_REGENERATE}")
- # No incoming dependencies, so we need to generate them. Make the
- # output depend on the dependency file itself, which should cause the
- # rule to re-run.
- if(CUDA_NVCC_DEPEND_REGENERATE)
- set(CUDA_NVCC_DEPEND ${dependency_file})
- #message("Generating an empty dependency_file: ${dependency_file}")
- file(WRITE ${dependency_file} "#FindCUDA.cmake generated file. Do not edit.\n")
- endif()
-
-endmacro()
-
-###############################################################################
-###############################################################################
-# Setup variables' defaults
-###############################################################################
-###############################################################################
-
-# Allow the user to specify if the device code is supposed to be 32 or 64 bit.
-if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(CUDA_64_BIT_DEVICE_CODE_DEFAULT ON)
-else()
- set(CUDA_64_BIT_DEVICE_CODE_DEFAULT OFF)
-endif()
-option(CUDA_64_BIT_DEVICE_CODE "Compile device code in 64 bit mode" ${CUDA_64_BIT_DEVICE_CODE_DEFAULT})
-
-# Attach the build rule to the source file in VS. This option
-option(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE "Attach the build rule to the CUDA source file. Enable only when the CUDA source file is added to at most one target." ON)
-
-# Prints out extra information about the cuda file during compilation
-option(CUDA_BUILD_CUBIN "Generate and parse .cubin files in Device mode." OFF)
-
-# Set whether we are using emulation or device mode.
-option(CUDA_BUILD_EMULATION "Build in Emulation mode" OFF)
-
-# Where to put the generated output.
-set(CUDA_GENERATED_OUTPUT_DIR "" CACHE PATH "Directory to put all the output files. If blank it will default to the CMAKE_CURRENT_BINARY_DIR")
-
-# Parse HOST_COMPILATION mode.
-option(CUDA_HOST_COMPILATION_CPP "Generated file extension" ON)
-
-# Extra user settable flags
-cmake_initialize_per_config_variable(CUDA_NVCC_FLAGS "Semi-colon delimit multiple arguments.")
-
-if(DEFINED ENV{CUDAHOSTCXX})
- set(CUDA_HOST_COMPILER "$ENV{CUDAHOSTCXX}" CACHE FILEPATH "Host side compiler used by NVCC")
-elseif(CMAKE_GENERATOR MATCHES "Visual Studio")
- set(_CUDA_MSVC_HOST_COMPILER "$(VCInstallDir)Tools/MSVC/$(VCToolsVersion)/bin/Host$(Platform)/$(PlatformTarget)")
- if(MSVC_VERSION LESS 1910)
- set(_CUDA_MSVC_HOST_COMPILER "$(VCInstallDir)bin")
- endif()
-
- set(CUDA_HOST_COMPILER "${_CUDA_MSVC_HOST_COMPILER}" CACHE FILEPATH "Host side compiler used by NVCC")
-
-else()
- if(APPLE
- AND "${CMAKE_C_COMPILER_ID}" MATCHES "Clang"
- AND "${CMAKE_C_COMPILER}" MATCHES "/cc$")
- # Using cc which is symlink to clang may let NVCC think it is GCC and issue
- # unhandled -dumpspecs option to clang. Also in case neither
- # CMAKE_C_COMPILER is defined (project does not use C language) nor
- # CUDA_HOST_COMPILER is specified manually we should skip -ccbin and let
- # nvcc use its own default C compiler.
- # Only care about this on APPLE with clang to avoid
- # following symlinks to things like ccache
- if(DEFINED CMAKE_C_COMPILER AND NOT DEFINED CUDA_HOST_COMPILER)
- get_filename_component(c_compiler_realpath "${CMAKE_C_COMPILER}" REALPATH)
- # if the real path does not end up being clang then
- # go back to using CMAKE_C_COMPILER
- if(NOT "${c_compiler_realpath}" MATCHES "/clang$")
- set(c_compiler_realpath "${CMAKE_C_COMPILER}")
- endif()
- else()
- set(c_compiler_realpath "")
- endif()
- set(CUDA_HOST_COMPILER "${c_compiler_realpath}" CACHE FILEPATH "Host side compiler used by NVCC")
- elseif(MSVC AND "${CMAKE_C_COMPILER}" MATCHES "clcache|sccache")
- # NVCC does not think it will work if it is passed clcache.exe or sccache.exe
- # as the host compiler, which means that builds with CC=cl.exe won't work.
- # Best to just feed it whatever the actual cl.exe is as the host compiler.
- set(CUDA_HOST_COMPILER "cl.exe" CACHE FILEPATH "Host side compiler used by NVCC")
- else()
- set(CUDA_HOST_COMPILER "${CMAKE_C_COMPILER}"
- CACHE FILEPATH "Host side compiler used by NVCC")
- endif()
-endif()
-
-# Propagate the host flags to the host compiler via -Xcompiler
-option(CUDA_PROPAGATE_HOST_FLAGS "Propagate C/CXX_FLAGS and friends to the host compiler via -Xcompile" ON)
-
-# Enable CUDA_SEPARABLE_COMPILATION
-option(CUDA_SEPARABLE_COMPILATION "Compile CUDA objects with separable compilation enabled. Requires CUDA 5.0+" OFF)
-
-# Specifies whether the commands used when compiling the .cu file will be printed out.
-option(CUDA_VERBOSE_BUILD "Print out the commands run while compiling the CUDA source file. With the Makefile generator this defaults to VERBOSE variable specified on the command line, but can be forced on with this option." OFF)
-
-mark_as_advanced(
- CUDA_64_BIT_DEVICE_CODE
- CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE
- CUDA_GENERATED_OUTPUT_DIR
- CUDA_HOST_COMPILATION_CPP
- CUDA_NVCC_FLAGS
- CUDA_PROPAGATE_HOST_FLAGS
- CUDA_BUILD_CUBIN
- CUDA_BUILD_EMULATION
- CUDA_VERBOSE_BUILD
- CUDA_SEPARABLE_COMPILATION
- )
-
-# Single config generators like Makefiles or Ninja don't usually have
-# CMAKE_CONFIGURATION_TYPES defined (but note that it can be defined if set by
-# projects or developers). Even CMAKE_BUILD_TYPE might not be defined for
-# single config generators (and should not be defined for multi-config
-# generators). To ensure we get a complete superset of all possible
-# configurations, we combine CMAKE_CONFIGURATION_TYPES, CMAKE_BUILD_TYPE and
-# all of the standard configurations, then weed out duplicates with
-# list(REMOVE_DUPLICATES). Looping over the unique set then ensures we have
-# each configuration-specific set of nvcc flags defined and marked as advanced.
-set(CUDA_configuration_types ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE} Debug MinSizeRel Release RelWithDebInfo)
-list(REMOVE_DUPLICATES CUDA_configuration_types)
-
-###############################################################################
-###############################################################################
-# Locate CUDA, Set Build Type, etc.
-###############################################################################
-###############################################################################
-
-macro(cuda_unset_include_and_libraries)
- unset(CUDA_TOOLKIT_INCLUDE CACHE)
- unset(CUDA_CUDART_LIBRARY CACHE)
- unset(CUDA_CUDA_LIBRARY CACHE)
- # Make sure you run this before you unset CUDA_VERSION.
- if(CUDA_VERSION VERSION_EQUAL "3.0")
- # This only existed in the 3.0 version of the CUDA toolkit
- unset(CUDA_CUDARTEMU_LIBRARY CACHE)
- endif()
- unset(CUDA_cudart_static_LIBRARY CACHE)
- unset(CUDA_cudadevrt_LIBRARY CACHE)
- unset(CUDA_cublas_LIBRARY CACHE)
- unset(CUDA_cublas_device_LIBRARY CACHE)
- unset(CUDA_cublasemu_LIBRARY CACHE)
- unset(CUDA_cufft_LIBRARY CACHE)
- unset(CUDA_cufftemu_LIBRARY CACHE)
- unset(CUDA_cupti_LIBRARY CACHE)
- unset(CUDA_curand_LIBRARY CACHE)
- unset(CUDA_cusolver_LIBRARY CACHE)
- unset(CUDA_cusparse_LIBRARY CACHE)
- unset(CUDA_npp_LIBRARY CACHE)
- unset(CUDA_nppc_LIBRARY CACHE)
- unset(CUDA_nppi_LIBRARY CACHE)
- unset(CUDA_npps_LIBRARY CACHE)
- unset(CUDA_nvcuvenc_LIBRARY CACHE)
- unset(CUDA_nvcuvid_LIBRARY CACHE)
- unset(CUDA_nvToolsExt_LIBRARY CACHE)
- unset(CUDA_OpenCL_LIBRARY CACHE)
- unset(CUDA_GPU_DETECT_OUTPUT CACHE)
-endmacro()
-
-# Check to see if the CUDA_TOOLKIT_ROOT_DIR and CUDA_SDK_ROOT_DIR have changed,
-# if they have then clear the cache variables, so that will be detected again.
-if(NOT "${CUDA_TOOLKIT_ROOT_DIR}" STREQUAL "${CUDA_TOOLKIT_ROOT_DIR_INTERNAL}")
- unset(CUDA_TOOLKIT_TARGET_DIR CACHE)
- unset(CUDA_NVCC_EXECUTABLE CACHE)
- cuda_unset_include_and_libraries()
- unset(CUDA_VERSION CACHE)
-endif()
-
-if(NOT "${CUDA_TOOLKIT_TARGET_DIR}" STREQUAL "${CUDA_TOOLKIT_TARGET_DIR_INTERNAL}")
- cuda_unset_include_and_libraries()
-endif()
-
-#
-# End of unset()
-#
-
-#
-# Start looking for things
-#
-
-# Search for the cuda distribution.
-if(NOT CUDA_TOOLKIT_ROOT_DIR AND NOT CMAKE_CROSSCOMPILING)
- # Search in the CUDA_BIN_PATH first.
- find_path(CUDA_TOOLKIT_ROOT_DIR
- NAMES nvcc nvcc.exe
- PATHS
- ENV CUDA_TOOLKIT_ROOT
- ENV CUDA_PATH
- ENV CUDA_BIN_PATH
- PATH_SUFFIXES bin bin64
- DOC "Toolkit location."
- NO_DEFAULT_PATH
- )
-
- # Now search default paths
- find_path(CUDA_TOOLKIT_ROOT_DIR
- NAMES nvcc nvcc.exe
- PATHS /opt/cuda/bin
- PATH_SUFFIXES cuda/bin
- DOC "Toolkit location."
- )
-
- if (CUDA_TOOLKIT_ROOT_DIR)
- string(REGEX REPLACE "[/\\\\]?bin[64]*[/\\\\]?$" "" CUDA_TOOLKIT_ROOT_DIR ${CUDA_TOOLKIT_ROOT_DIR})
- # We need to force this back into the cache.
- set(CUDA_TOOLKIT_ROOT_DIR ${CUDA_TOOLKIT_ROOT_DIR} CACHE PATH "Toolkit location." FORCE)
- set(CUDA_TOOLKIT_TARGET_DIR ${CUDA_TOOLKIT_ROOT_DIR})
- endif()
-
- if (NOT EXISTS ${CUDA_TOOLKIT_ROOT_DIR})
- if(CUDA_FIND_REQUIRED)
- message(FATAL_ERROR "Specify CUDA_TOOLKIT_ROOT_DIR")
- elseif(NOT CUDA_FIND_QUIETLY)
- message("CUDA_TOOLKIT_ROOT_DIR not found or specified")
- endif()
- endif ()
-endif ()
-
-if(CMAKE_CROSSCOMPILING)
- SET (CUDA_TOOLKIT_ROOT $ENV{CUDA_TOOLKIT_ROOT})
- if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a")
- # Support for NVPACK
- set (CUDA_TOOLKIT_TARGET_NAME "armv7-linux-androideabi")
- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
- # Support for arm cross compilation
- set(CUDA_TOOLKIT_TARGET_NAME "armv7-linux-gnueabihf")
- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
- # Support for aarch64 cross compilation
- if (ANDROID_ARCH_NAME STREQUAL "arm64")
- set(CUDA_TOOLKIT_TARGET_NAME "aarch64-linux-androideabi")
- else()
- set(CUDA_TOOLKIT_TARGET_NAME "aarch64-linux")
- endif (ANDROID_ARCH_NAME STREQUAL "arm64")
- endif()
-
- if (EXISTS "${CUDA_TOOLKIT_ROOT}/targets/${CUDA_TOOLKIT_TARGET_NAME}")
- set(CUDA_TOOLKIT_TARGET_DIR "${CUDA_TOOLKIT_ROOT}/targets/${CUDA_TOOLKIT_TARGET_NAME}" CACHE PATH "CUDA Toolkit target location.")
- SET (CUDA_TOOLKIT_ROOT_DIR ${CUDA_TOOLKIT_ROOT})
- mark_as_advanced(CUDA_TOOLKIT_TARGET_DIR)
- endif()
-
- # add known CUDA targetr root path to the set of directories we search for programs, libraries and headers
- set( CMAKE_FIND_ROOT_PATH "${CUDA_TOOLKIT_TARGET_DIR};${CMAKE_FIND_ROOT_PATH}")
- macro( cuda_find_host_program )
- if (COMMAND find_host_program)
- find_host_program( ${ARGN} )
- else()
- find_program( ${ARGN} )
- endif()
- endmacro()
-else()
- # for non-cross-compile, find_host_program == find_program and CUDA_TOOLKIT_TARGET_DIR == CUDA_TOOLKIT_ROOT_DIR
- macro( cuda_find_host_program )
- find_program( ${ARGN} )
- endmacro()
- SET (CUDA_TOOLKIT_TARGET_DIR ${CUDA_TOOLKIT_ROOT_DIR})
-endif()
-
-
-# CUDA_NVCC_EXECUTABLE
-if(DEFINED ENV{CUDA_NVCC_EXECUTABLE})
- set(CUDA_NVCC_EXECUTABLE "$ENV{CUDA_NVCC_EXECUTABLE}" CACHE FILEPATH "The CUDA compiler")
-else()
- cuda_find_host_program(CUDA_NVCC_EXECUTABLE
- NAMES nvcc
- PATHS "${CUDA_TOOLKIT_ROOT_DIR}"
- ENV CUDA_PATH
- ENV CUDA_BIN_PATH
- PATH_SUFFIXES bin bin64
- NO_DEFAULT_PATH
- )
- # Search default search paths, after we search our own set of paths.
- cuda_find_host_program(CUDA_NVCC_EXECUTABLE nvcc)
-endif()
-mark_as_advanced(CUDA_NVCC_EXECUTABLE)
-
-if(CUDA_NVCC_EXECUTABLE AND NOT CUDA_VERSION)
- # Compute the version.
- execute_process (COMMAND ${CUDA_NVCC_EXECUTABLE} "--version" OUTPUT_VARIABLE NVCC_OUT)
- string(REGEX REPLACE ".*release ([0-9]+)\\.([0-9]+).*" "\\1" CUDA_VERSION_MAJOR ${NVCC_OUT})
- string(REGEX REPLACE ".*release ([0-9]+)\\.([0-9]+).*" "\\2" CUDA_VERSION_MINOR ${NVCC_OUT})
- set(CUDA_VERSION "${CUDA_VERSION_MAJOR}.${CUDA_VERSION_MINOR}" CACHE STRING "Version of CUDA as computed from nvcc.")
- mark_as_advanced(CUDA_VERSION)
-else()
- # Need to set these based off of the cached value
- string(REGEX REPLACE "([0-9]+)\\.([0-9]+).*" "\\1" CUDA_VERSION_MAJOR "${CUDA_VERSION}")
- string(REGEX REPLACE "([0-9]+)\\.([0-9]+).*" "\\2" CUDA_VERSION_MINOR "${CUDA_VERSION}")
-endif()
-
-
-# Always set this convenience variable
-set(CUDA_VERSION_STRING "${CUDA_VERSION}")
-
-# CUDA_TOOLKIT_INCLUDE
-find_path(CUDA_TOOLKIT_INCLUDE
- device_functions.h # Header included in toolkit
- PATHS ${CUDA_TOOLKIT_TARGET_DIR}
- ENV CUDA_PATH
- ENV CUDA_INC_PATH
- PATH_SUFFIXES include
- NO_DEFAULT_PATH
- )
-# Search default search paths, after we search our own set of paths.
-find_path(CUDA_TOOLKIT_INCLUDE device_functions.h)
-mark_as_advanced(CUDA_TOOLKIT_INCLUDE)
-
-if (CUDA_VERSION VERSION_GREATER "7.0" OR EXISTS "${CUDA_TOOLKIT_INCLUDE}/cuda_fp16.h")
- set(CUDA_HAS_FP16 TRUE)
-else()
- set(CUDA_HAS_FP16 FALSE)
-endif()
-
-# Set the user list of include dir to nothing to initialize it.
-set (CUDA_NVCC_INCLUDE_DIRS_USER "")
-set (CUDA_INCLUDE_DIRS ${CUDA_TOOLKIT_INCLUDE})
-
-macro(cuda_find_library_local_first_with_path_ext _var _names _doc _path_ext )
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- # CUDA 3.2+ on Windows moved the library directories, so we need the new
- # and old paths.
- set(_cuda_64bit_lib_dir "${_path_ext}lib/x64" "${_path_ext}lib64" "${_path_ext}libx64" )
- endif()
- # CUDA 3.2+ on Windows moved the library directories, so we need to new
- # (lib/Win32) and the old path (lib).
- find_library(${_var}
- NAMES ${_names}
- PATHS "${CUDA_TOOLKIT_TARGET_DIR}"
- ENV CUDA_PATH
- ENV CUDA_LIB_PATH
- PATH_SUFFIXES ${_cuda_64bit_lib_dir} "${_path_ext}lib/Win32" "${_path_ext}lib" "${_path_ext}libWin32"
- DOC ${_doc}
- NO_DEFAULT_PATH
- )
- if (NOT CMAKE_CROSSCOMPILING)
- # Search default search paths, after we search our own set of paths.
- find_library(${_var}
- NAMES ${_names}
- PATHS "/usr/lib/nvidia-current"
- DOC ${_doc}
- )
- endif()
-endmacro()
-
-macro(cuda_find_library_local_first _var _names _doc)
- cuda_find_library_local_first_with_path_ext( "${_var}" "${_names}" "${_doc}" "" )
-endmacro()
-
-macro(find_library_local_first _var _names _doc )
- cuda_find_library_local_first( "${_var}" "${_names}" "${_doc}" "" )
-endmacro()
-
-
-# CUDA_LIBRARIES
-cuda_find_library_local_first(CUDA_CUDART_LIBRARY cudart "\"cudart\" library")
-if(CUDA_VERSION VERSION_EQUAL "3.0")
- # The cudartemu library only existed for the 3.0 version of CUDA.
- cuda_find_library_local_first(CUDA_CUDARTEMU_LIBRARY cudartemu "\"cudartemu\" library")
- mark_as_advanced(
- CUDA_CUDARTEMU_LIBRARY
- )
-endif()
-
-if(NOT CUDA_VERSION VERSION_LESS "5.5")
- cuda_find_library_local_first(CUDA_cudart_static_LIBRARY cudart_static "static CUDA runtime library")
- mark_as_advanced(CUDA_cudart_static_LIBRARY)
-endif()
-
-
-if(CUDA_cudart_static_LIBRARY)
- # If static cudart available, use it by default, but provide a user-visible option to disable it.
- option(CUDA_USE_STATIC_CUDA_RUNTIME "Use the static version of the CUDA runtime library if available" ON)
-else()
- # If not available, silently disable the option.
- set(CUDA_USE_STATIC_CUDA_RUNTIME OFF CACHE INTERNAL "")
-endif()
-
-if(CUDA_USE_STATIC_CUDA_RUNTIME)
- set(CUDA_CUDART_LIBRARY_VAR CUDA_cudart_static_LIBRARY)
-else()
- set(CUDA_CUDART_LIBRARY_VAR CUDA_CUDART_LIBRARY)
-endif()
-
-if(NOT CUDA_VERSION VERSION_LESS "5.0")
- cuda_find_library_local_first(CUDA_cudadevrt_LIBRARY cudadevrt "\"cudadevrt\" library")
- mark_as_advanced(CUDA_cudadevrt_LIBRARY)
-endif()
-
-if(CUDA_USE_STATIC_CUDA_RUNTIME)
- if(UNIX)
- # Check for the dependent libraries.
-
- # Many of the FindXYZ CMake comes with makes use of try_compile with int main(){return 0;}
- # as the source file. Unfortunately this causes a warning with -Wstrict-prototypes and
- # -Werror causes the try_compile to fail. We will just temporarily disable other flags
- # when doing the find_package command here.
- set(_cuda_cmake_c_flags ${CMAKE_C_FLAGS})
- set(CMAKE_C_FLAGS "-fPIC")
- find_package(Threads REQUIRED)
- set(CMAKE_C_FLAGS ${_cuda_cmake_c_flags})
-
- if(NOT APPLE)
- #On Linux, you must link against librt when using the static cuda runtime.
- find_library(CUDA_rt_LIBRARY rt)
- if (NOT CUDA_rt_LIBRARY)
- message(WARNING "Expecting to find librt for libcudart_static, but didn't find it.")
- endif()
- endif()
- endif()
-endif()
-
-# CUPTI library showed up in cuda toolkit 4.0
-if(NOT CUDA_VERSION VERSION_LESS "4.0")
- cuda_find_library_local_first_with_path_ext(CUDA_cupti_LIBRARY cupti "\"cupti\" library" "extras/CUPTI/")
- mark_as_advanced(CUDA_cupti_LIBRARY)
-endif()
-
-# Set the CUDA_LIBRARIES variable. This is the set of stuff to link against if you are
-# using the CUDA runtime. For the dynamic version of the runtime, most of the
-# dependencies are brough in, but for the static version there are additional libraries
-# and linker commands needed.
-# Initialize to empty
-set(CUDA_LIBRARIES)
-
-# If we are using emulation mode and we found the cudartemu library then use
-# that one instead of cudart.
-if(CUDA_BUILD_EMULATION AND CUDA_CUDARTEMU_LIBRARY)
- list(APPEND CUDA_LIBRARIES ${CUDA_CUDARTEMU_LIBRARY})
-elseif(CUDA_USE_STATIC_CUDA_RUNTIME AND CUDA_cudart_static_LIBRARY)
- list(APPEND CUDA_LIBRARIES ${CUDA_cudart_static_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS})
- if (CUDA_rt_LIBRARY)
- list(APPEND CUDA_LIBRARIES ${CUDA_rt_LIBRARY})
- endif()
- if(APPLE)
- # We need to add the default path to the driver (libcuda.dylib) as an rpath, so that
- # the static cuda runtime can find it at runtime.
- list(APPEND CUDA_LIBRARIES -Wl,-rpath,/usr/local/cuda/lib)
- endif()
-else()
- list(APPEND CUDA_LIBRARIES ${CUDA_CUDART_LIBRARY})
-endif()
-
-# 1.1 toolkit on linux doesn't appear to have a separate library on
-# some platforms.
-cuda_find_library_local_first(CUDA_CUDA_LIBRARY cuda "\"cuda\" library (older versions only).")
-
-mark_as_advanced(
- CUDA_CUDA_LIBRARY
- CUDA_CUDART_LIBRARY
- )
-
-#######################
-# Look for some of the toolkit helper libraries
-macro(FIND_CUDA_HELPER_LIBS _name)
- cuda_find_library_local_first(CUDA_${_name}_LIBRARY ${_name} "\"${_name}\" library")
- mark_as_advanced(CUDA_${_name}_LIBRARY)
-endmacro()
-
-#######################
-# Disable emulation for v3.1 onward
-if(CUDA_VERSION VERSION_GREATER "3.0")
- if(CUDA_BUILD_EMULATION)
- message(FATAL_ERROR "CUDA_BUILD_EMULATION is not supported in version 3.1 and onwards. You must disable it to proceed. You have version ${CUDA_VERSION}.")
- endif()
-endif()
-
-# Search for additional CUDA toolkit libraries.
-if(CUDA_VERSION VERSION_LESS "3.1")
- # Emulation libraries aren't available in version 3.1 onward.
- find_cuda_helper_libs(cufftemu)
- find_cuda_helper_libs(cublasemu)
-endif()
-find_cuda_helper_libs(cufft)
-find_cuda_helper_libs(cublas)
-if(NOT CUDA_VERSION VERSION_LESS "3.2")
- # cusparse showed up in version 3.2
- find_cuda_helper_libs(cusparse)
- find_cuda_helper_libs(curand)
- if (WIN32)
- find_cuda_helper_libs(nvcuvenc)
- find_cuda_helper_libs(nvcuvid)
- endif()
-endif()
-if(CUDA_VERSION VERSION_GREATER "5.0" AND CUDA_VERSION VERSION_LESS "9.2")
- # In CUDA 9.2 cublas_device was deprecated
- find_cuda_helper_libs(cublas_device)
-endif()
-
-if(NOT CUDA_VERSION VERSION_LESS "5.0")
- find_cuda_helper_libs(nvToolsExt)
- find_cuda_helper_libs(OpenCL)
-endif()
-
-if(NOT CUDA_VERSION VERSION_LESS "9.0")
- # In CUDA 9.0 NPP was nppi was removed
- find_cuda_helper_libs(nppc)
- find_cuda_helper_libs(nppial)
- find_cuda_helper_libs(nppicc)
- find_cuda_helper_libs(nppicom)
- find_cuda_helper_libs(nppidei)
- find_cuda_helper_libs(nppif)
- find_cuda_helper_libs(nppig)
- find_cuda_helper_libs(nppim)
- find_cuda_helper_libs(nppist)
- find_cuda_helper_libs(nppisu)
- find_cuda_helper_libs(nppitc)
- find_cuda_helper_libs(npps)
- set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppial_LIBRARY};${CUDA_nppicc_LIBRARY};${CUDA_nppicom_LIBRARY};${CUDA_nppidei_LIBRARY};${CUDA_nppif_LIBRARY};${CUDA_nppig_LIBRARY};${CUDA_nppim_LIBRARY};${CUDA_nppist_LIBRARY};${CUDA_nppisu_LIBRARY};${CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}")
-elseif(CUDA_VERSION VERSION_GREATER "5.0")
- # In CUDA 5.5 NPP was split into 3 separate libraries.
- find_cuda_helper_libs(nppc)
- find_cuda_helper_libs(nppi)
- find_cuda_helper_libs(npps)
- set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppi_LIBRARY};${CUDA_npps_LIBRARY}")
-elseif(NOT CUDA_VERSION VERSION_LESS "4.0")
- find_cuda_helper_libs(npp)
-endif()
-if(NOT CUDA_VERSION VERSION_LESS "7.0")
- # cusolver showed up in version 7.0
- find_cuda_helper_libs(cusolver)
-endif()
-
-if (CUDA_BUILD_EMULATION)
- set(CUDA_CUFFT_LIBRARIES ${CUDA_cufftemu_LIBRARY})
- set(CUDA_CUBLAS_LIBRARIES ${CUDA_cublasemu_LIBRARY})
-else()
- set(CUDA_CUFFT_LIBRARIES ${CUDA_cufft_LIBRARY})
- set(CUDA_CUBLAS_LIBRARIES ${CUDA_cublas_LIBRARY} ${CUDA_cublas_device_LIBRARY})
-endif()
-
-########################
-# Look for the SDK stuff. As of CUDA 3.0 NVSDKCUDA_ROOT has been replaced with
-# NVSDKCOMPUTE_ROOT with the old CUDA C contents moved into the C subdirectory
-find_path(CUDA_SDK_ROOT_DIR common/inc/cutil.h
- HINTS
- "$ENV{NVSDKCOMPUTE_ROOT}/C"
- ENV NVSDKCUDA_ROOT
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\NVIDIA Corporation\\Installed Products\\NVIDIA SDK 10\\Compute;InstallDir]"
- PATHS
- "/Developer/GPU\ Computing/C"
- )
-
-# Keep the CUDA_SDK_ROOT_DIR first in order to be able to override the
-# environment variables.
-set(CUDA_SDK_SEARCH_PATH
- "${CUDA_SDK_ROOT_DIR}"
- "${CUDA_TOOLKIT_ROOT_DIR}/local/NVSDK0.2"
- "${CUDA_TOOLKIT_ROOT_DIR}/NVSDK0.2"
- "${CUDA_TOOLKIT_ROOT_DIR}/NV_CUDA_SDK"
- "$ENV{HOME}/NVIDIA_CUDA_SDK"
- "$ENV{HOME}/NVIDIA_CUDA_SDK_MACOSX"
- "/Developer/CUDA"
- )
-
-# Example of how to find an include file from the CUDA_SDK_ROOT_DIR
-
-# find_path(CUDA_CUT_INCLUDE_DIR
-# cutil.h
-# PATHS ${CUDA_SDK_SEARCH_PATH}
-# PATH_SUFFIXES "common/inc"
-# DOC "Location of cutil.h"
-# NO_DEFAULT_PATH
-# )
-# # Now search system paths
-# find_path(CUDA_CUT_INCLUDE_DIR cutil.h DOC "Location of cutil.h")
-
-# mark_as_advanced(CUDA_CUT_INCLUDE_DIR)
-
-
-# Example of how to find a library in the CUDA_SDK_ROOT_DIR
-
-# # cutil library is called cutil64 for 64 bit builds on windows. We don't want
-# # to get these confused, so we are setting the name based on the word size of
-# # the build.
-
-# if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-# set(cuda_cutil_name cutil64)
-# else()
-# set(cuda_cutil_name cutil32)
-# endif()
-
-# find_library(CUDA_CUT_LIBRARY
-# NAMES cutil ${cuda_cutil_name}
-# PATHS ${CUDA_SDK_SEARCH_PATH}
-# # The new version of the sdk shows up in common/lib, but the old one is in lib
-# PATH_SUFFIXES "common/lib" "lib"
-# DOC "Location of cutil library"
-# NO_DEFAULT_PATH
-# )
-# # Now search system paths
-# find_library(CUDA_CUT_LIBRARY NAMES cutil ${cuda_cutil_name} DOC "Location of cutil library")
-# mark_as_advanced(CUDA_CUT_LIBRARY)
-# set(CUDA_CUT_LIBRARIES ${CUDA_CUT_LIBRARY})
-
-
-
-#############################
-# Check for required components
-set(CUDA_FOUND TRUE)
-
-set(CUDA_TOOLKIT_ROOT_DIR_INTERNAL "${CUDA_TOOLKIT_ROOT_DIR}" CACHE INTERNAL
- "This is the value of the last time CUDA_TOOLKIT_ROOT_DIR was set successfully." FORCE)
-set(CUDA_TOOLKIT_TARGET_DIR_INTERNAL "${CUDA_TOOLKIT_TARGET_DIR}" CACHE INTERNAL
- "This is the value of the last time CUDA_TOOLKIT_TARGET_DIR was set successfully." FORCE)
-set(CUDA_SDK_ROOT_DIR_INTERNAL "${CUDA_SDK_ROOT_DIR}" CACHE INTERNAL
- "This is the value of the last time CUDA_SDK_ROOT_DIR was set successfully." FORCE)
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-
-find_package_handle_standard_args(CUDA
- REQUIRED_VARS
- CUDA_TOOLKIT_ROOT_DIR
- CUDA_NVCC_EXECUTABLE
- CUDA_INCLUDE_DIRS
- ${CUDA_CUDART_LIBRARY_VAR}
- VERSION_VAR
- CUDA_VERSION
- )
-
-
-
-###############################################################################
-###############################################################################
-# Macros
-###############################################################################
-###############################################################################
-
-###############################################################################
-# Add include directories to pass to the nvcc command.
-macro(CUDA_INCLUDE_DIRECTORIES)
- foreach(dir ${ARGN})
- list(APPEND CUDA_NVCC_INCLUDE_DIRS_USER ${dir})
- endforeach()
-endmacro()
-
-
-##############################################################################
-cuda_find_helper_file(parse_cubin cmake)
-cuda_find_helper_file(make2cmake cmake)
-cuda_find_helper_file(run_nvcc cmake)
-include("${CMAKE_CURRENT_LIST_DIR}/FindCUDA/select_compute_arch.cmake")
-
-##############################################################################
-# Separate the OPTIONS out from the sources
-#
-macro(CUDA_GET_SOURCES_AND_OPTIONS _sources _cmake_options _options)
- set( ${_sources} )
- set( ${_cmake_options} )
- set( ${_options} )
- set( _found_options FALSE )
- foreach(arg ${ARGN})
- if("x${arg}" STREQUAL "xOPTIONS")
- set( _found_options TRUE )
- elseif(
- "x${arg}" STREQUAL "xWIN32" OR
- "x${arg}" STREQUAL "xMACOSX_BUNDLE" OR
- "x${arg}" STREQUAL "xEXCLUDE_FROM_ALL" OR
- "x${arg}" STREQUAL "xSTATIC" OR
- "x${arg}" STREQUAL "xSHARED" OR
- "x${arg}" STREQUAL "xMODULE"
- )
- list(APPEND ${_cmake_options} ${arg})
- else()
- if ( _found_options )
- list(APPEND ${_options} ${arg})
- else()
- # Assume this is a file
- list(APPEND ${_sources} ${arg})
- endif()
- endif()
- endforeach()
-endmacro()
-
-##############################################################################
-# Parse the OPTIONS from ARGN and set the variables prefixed by _option_prefix
-#
-macro(CUDA_PARSE_NVCC_OPTIONS _option_prefix)
- set( _found_config )
- foreach(arg ${ARGN})
- # Determine if we are dealing with a perconfiguration flag
- foreach(config ${CUDA_configuration_types})
- string(TOUPPER ${config} config_upper)
- if (arg STREQUAL "${config_upper}")
- set( _found_config _${arg})
- # Set arg to nothing to keep it from being processed further
- set( arg )
- endif()
- endforeach()
-
- if ( arg )
- list(APPEND ${_option_prefix}${_found_config} "${arg}")
- endif()
- endforeach()
-endmacro()
-
-##############################################################################
-# Helper to add the include directory for CUDA only once
-function(CUDA_ADD_CUDA_INCLUDE_ONCE)
- get_directory_property(_include_directories INCLUDE_DIRECTORIES)
- set(_add TRUE)
- if(_include_directories)
- foreach(dir ${_include_directories})
- if("${dir}" STREQUAL "${CUDA_INCLUDE_DIRS}")
- set(_add FALSE)
- endif()
- endforeach()
- endif()
- if(_add)
- include_directories(${CUDA_INCLUDE_DIRS})
- endif()
-endfunction()
-
-function(CUDA_BUILD_SHARED_LIBRARY shared_flag)
- set(cmake_args ${ARGN})
- # If SHARED, MODULE, or STATIC aren't already in the list of arguments, then
- # add SHARED or STATIC based on the value of BUILD_SHARED_LIBS.
- list(FIND cmake_args SHARED _cuda_found_SHARED)
- list(FIND cmake_args MODULE _cuda_found_MODULE)
- list(FIND cmake_args STATIC _cuda_found_STATIC)
- if( _cuda_found_SHARED GREATER -1 OR
- _cuda_found_MODULE GREATER -1 OR
- _cuda_found_STATIC GREATER -1)
- set(_cuda_build_shared_libs)
- else()
- if (BUILD_SHARED_LIBS)
- set(_cuda_build_shared_libs SHARED)
- else()
- set(_cuda_build_shared_libs STATIC)
- endif()
- endif()
- set(${shared_flag} ${_cuda_build_shared_libs} PARENT_SCOPE)
-endfunction()
-
-##############################################################################
-# Helper to avoid clashes of files with the same basename but different paths.
-# This doesn't attempt to do exactly what CMake internals do, which is to only
-# add this path when there is a conflict, since by the time a second collision
-# in names is detected it's already too late to fix the first one. For
-# consistency sake the relative path will be added to all files.
-function(CUDA_COMPUTE_BUILD_PATH path build_path)
- #message("CUDA_COMPUTE_BUILD_PATH([${path}] ${build_path})")
- # Only deal with CMake style paths from here on out
- file(TO_CMAKE_PATH "${path}" bpath)
- if (IS_ABSOLUTE "${bpath}")
- # Absolute paths are generally unnessary, especially if something like
- # file(GLOB_RECURSE) is used to pick up the files.
-
- string(FIND "${bpath}" "${CMAKE_CURRENT_BINARY_DIR}" _binary_dir_pos)
- if (_binary_dir_pos EQUAL 0)
- file(RELATIVE_PATH bpath "${CMAKE_CURRENT_BINARY_DIR}" "${bpath}")
- else()
- file(RELATIVE_PATH bpath "${CMAKE_CURRENT_SOURCE_DIR}" "${bpath}")
- endif()
- endif()
-
- # This recipe is from cmLocalGenerator::CreateSafeUniqueObjectFileName in the
- # CMake source.
-
- # Remove leading /
- string(REGEX REPLACE "^[/]+" "" bpath "${bpath}")
- # Avoid absolute paths by removing ':'
- string(REPLACE ":" "_" bpath "${bpath}")
- # Avoid relative paths that go up the tree
- string(REPLACE "../" "__/" bpath "${bpath}")
- # Avoid spaces
- string(REPLACE " " "_" bpath "${bpath}")
-
- # Strip off the filename. I wait until here to do it, since removin the
- # basename can make a path that looked like path/../basename turn into
- # path/.. (notice the trailing slash).
- get_filename_component(bpath "${bpath}" PATH)
-
- set(${build_path} "${bpath}" PARENT_SCOPE)
- #message("${build_path} = ${bpath}")
-endfunction()
-
-##############################################################################
-# This helper macro populates the following variables and setups up custom
-# commands and targets to invoke the nvcc compiler to generate C or PTX source
-# dependent upon the format parameter. The compiler is invoked once with -M
-# to generate a dependency file and a second time with -cuda or -ptx to generate
-# a .cpp or .ptx file.
-# INPUT:
-# cuda_target - Target name
-# format - PTX, CUBIN, FATBIN or OBJ
-# FILE1 .. FILEN - The remaining arguments are the sources to be wrapped.
-# OPTIONS - Extra options to NVCC
-# OUTPUT:
-# generated_files - List of generated files
-##############################################################################
-##############################################################################
-
-macro(CUDA_WRAP_SRCS cuda_target format generated_files)
-
- # Put optional arguments in list.
- set(_argn_list "${ARGN}")
- # If one of the given optional arguments is "PHONY", make a note of it, then
- # remove it from the list.
- list(FIND _argn_list "PHONY" _phony_idx)
- if("${_phony_idx}" GREATER "-1")
- set(_target_is_phony true)
- list(REMOVE_AT _argn_list ${_phony_idx})
- else()
- set(_target_is_phony false)
- endif()
-
- # If CMake doesn't support separable compilation, complain
- if(CUDA_SEPARABLE_COMPILATION AND CMAKE_VERSION VERSION_LESS "2.8.10.1")
- message(SEND_ERROR "CUDA_SEPARABLE_COMPILATION isn't supported for CMake versions less than 2.8.10.1")
- endif()
-
- # Set up all the command line flags here, so that they can be overridden on a per target basis.
-
- set(nvcc_flags "")
-
- # Emulation if the card isn't present.
- if (CUDA_BUILD_EMULATION)
- # Emulation.
- set(nvcc_flags ${nvcc_flags} --device-emulation -D_DEVICEEMU -g)
- else()
- # Device mode. No flags necessary.
- endif()
-
- if(CUDA_HOST_COMPILATION_CPP)
- set(CUDA_C_OR_CXX CXX)
- else()
- if(CUDA_VERSION VERSION_LESS "3.0")
- set(nvcc_flags ${nvcc_flags} --host-compilation C)
- else()
- message(WARNING "--host-compilation flag is deprecated in CUDA version >= 3.0. Removing --host-compilation C flag" )
- endif()
- set(CUDA_C_OR_CXX C)
- endif()
-
- set(generated_extension ${CMAKE_${CUDA_C_OR_CXX}_OUTPUT_EXTENSION})
-
- if(CUDA_64_BIT_DEVICE_CODE)
- set(nvcc_flags ${nvcc_flags} -m64)
- else()
- set(nvcc_flags ${nvcc_flags} -m32)
- endif()
-
- if(CUDA_TARGET_CPU_ARCH)
- set(nvcc_flags ${nvcc_flags} "--target-cpu-architecture=${CUDA_TARGET_CPU_ARCH}")
- endif()
-
- # This needs to be passed in at this stage, because VS needs to fill out the
- # various macros from within VS. Note that CCBIN is only used if
- # -ccbin or --compiler-bindir isn't used and CUDA_HOST_COMPILER matches
- # _CUDA_MSVC_HOST_COMPILER
- if(CMAKE_GENERATOR MATCHES "Visual Studio")
- set(ccbin_flags -D "\"CCBIN:PATH=${_CUDA_MSVC_HOST_COMPILER}\"" )
- else()
- set(ccbin_flags)
- endif()
-
- # Figure out which configure we will use and pass that in as an argument to
- # the script. We need to defer the decision until compilation time, because
- # for VS projects we won't know if we are making a debug or release build
- # until build time.
- if(CMAKE_GENERATOR MATCHES "Visual Studio")
- set( CUDA_build_configuration "$(ConfigurationName)" )
- else()
- set( CUDA_build_configuration "${CMAKE_BUILD_TYPE}")
- endif()
-
- # Initialize our list of includes with the user ones followed by the CUDA system ones.
- set(CUDA_NVCC_INCLUDE_DIRS ${CUDA_NVCC_INCLUDE_DIRS_USER} "${CUDA_INCLUDE_DIRS}")
- if(_target_is_phony)
- # If the passed in target name isn't a real target (i.e., this is from a call to one of the
- # cuda_compile_* functions), need to query directory properties to get include directories
- # and compile definitions.
- get_directory_property(_dir_include_dirs INCLUDE_DIRECTORIES)
- get_directory_property(_dir_compile_defs COMPILE_DEFINITIONS)
-
- list(APPEND CUDA_NVCC_INCLUDE_DIRS "${_dir_include_dirs}")
- set(CUDA_NVCC_COMPILE_DEFINITIONS "${_dir_compile_defs}")
- else()
- # Append the include directories for this target via generator expression, which is
- # expanded by the FILE(GENERATE) call below. This generator expression captures all
- # include dirs set by the user, whether via directory properties or target properties
- list(APPEND CUDA_NVCC_INCLUDE_DIRS "$<TARGET_PROPERTY:${cuda_target},INCLUDE_DIRECTORIES>")
-
- # Do the same thing with compile definitions
- set(CUDA_NVCC_COMPILE_DEFINITIONS "$<TARGET_PROPERTY:${cuda_target},COMPILE_DEFINITIONS>")
- endif()
-
-
- # Reset these variables
- set(CUDA_WRAP_OPTION_NVCC_FLAGS)
- foreach(config ${CUDA_configuration_types})
- string(TOUPPER ${config} config_upper)
- set(CUDA_WRAP_OPTION_NVCC_FLAGS_${config_upper})
- endforeach()
-
- CUDA_GET_SOURCES_AND_OPTIONS(_cuda_wrap_sources _cuda_wrap_cmake_options _cuda_wrap_options ${_argn_list})
- CUDA_PARSE_NVCC_OPTIONS(CUDA_WRAP_OPTION_NVCC_FLAGS ${_cuda_wrap_options})
-
- # Figure out if we are building a shared library. BUILD_SHARED_LIBS is
- # respected in CUDA_ADD_LIBRARY.
- set(_cuda_build_shared_libs FALSE)
- # SHARED, MODULE
- list(FIND _cuda_wrap_cmake_options SHARED _cuda_found_SHARED)
- list(FIND _cuda_wrap_cmake_options MODULE _cuda_found_MODULE)
- if(_cuda_found_SHARED GREATER -1 OR _cuda_found_MODULE GREATER -1)
- set(_cuda_build_shared_libs TRUE)
- endif()
- # STATIC
- list(FIND _cuda_wrap_cmake_options STATIC _cuda_found_STATIC)
- if(_cuda_found_STATIC GREATER -1)
- set(_cuda_build_shared_libs FALSE)
- endif()
-
- # CUDA_HOST_FLAGS
- if(_cuda_build_shared_libs)
- # If we are setting up code for a shared library, then we need to add extra flags for
- # compiling objects for shared libraries.
- set(CUDA_HOST_SHARED_FLAGS ${CMAKE_SHARED_LIBRARY_${CUDA_C_OR_CXX}_FLAGS})
- else()
- set(CUDA_HOST_SHARED_FLAGS)
- endif()
- # Only add the CMAKE_{C,CXX}_FLAGS if we are propagating host flags. We
- # always need to set the SHARED_FLAGS, though.
- if(CUDA_PROPAGATE_HOST_FLAGS)
- set(_cuda_host_flags "set(CMAKE_HOST_FLAGS ${CMAKE_${CUDA_C_OR_CXX}_FLAGS} ${CUDA_HOST_SHARED_FLAGS})")
- else()
- set(_cuda_host_flags "set(CMAKE_HOST_FLAGS ${CUDA_HOST_SHARED_FLAGS})")
- endif()
-
- set(_cuda_nvcc_flags_config "# Build specific configuration flags")
- # Loop over all the configuration types to generate appropriate flags for run_nvcc.cmake
- foreach(config ${CUDA_configuration_types})
- string(TOUPPER ${config} config_upper)
- # CMAKE_FLAGS are strings and not lists. By not putting quotes around CMAKE_FLAGS
- # we convert the strings to lists (like we want).
-
- if(CUDA_PROPAGATE_HOST_FLAGS)
- # nvcc chokes on -g3 in versions previous to 3.0, so replace it with -g
- set(_cuda_fix_g3 FALSE)
-
- if(CMAKE_COMPILER_IS_GNUCC)
- if (CUDA_VERSION VERSION_LESS "3.0" OR
- CUDA_VERSION VERSION_EQUAL "4.1" OR
- CUDA_VERSION VERSION_EQUAL "4.2"
- )
- set(_cuda_fix_g3 TRUE)
- endif()
- endif()
- if(_cuda_fix_g3)
- string(REPLACE "-g3" "-g" _cuda_C_FLAGS "${CMAKE_${CUDA_C_OR_CXX}_FLAGS_${config_upper}}")
- else()
- set(_cuda_C_FLAGS "${CMAKE_${CUDA_C_OR_CXX}_FLAGS_${config_upper}}")
- endif()
-
- string(APPEND _cuda_host_flags "\nset(CMAKE_HOST_FLAGS_${config_upper} ${_cuda_C_FLAGS})")
- endif()
-
- # Note that if we ever want CUDA_NVCC_FLAGS_<CONFIG> to be string (instead of a list
- # like it is currently), we can remove the quotes around the
- # ${CUDA_NVCC_FLAGS_${config_upper}} variable like the CMAKE_HOST_FLAGS_<CONFIG> variable.
- string(APPEND _cuda_nvcc_flags_config "\nset(CUDA_NVCC_FLAGS_${config_upper} ${CUDA_NVCC_FLAGS_${config_upper}} ;; ${CUDA_WRAP_OPTION_NVCC_FLAGS_${config_upper}})")
- endforeach()
-
- # Process the C++11 flag. If the host sets the flag, we need to add it to nvcc and
- # remove it from the host. This is because -Xcompile -std=c++ will choke nvcc (it uses
- # the C preprocessor). In order to get this to work correctly, we need to use nvcc's
- # specific c++11 flag.
- if( "${_cuda_host_flags}" MATCHES "-std=c\\+\\+11")
- # Add the c++11 flag to nvcc if it isn't already present. Note that we only look at
- # the main flag instead of the configuration specific flags.
- if( NOT "${CUDA_NVCC_FLAGS}" MATCHES "-std=c\\+\\+11" )
- list(APPEND nvcc_flags --std c++11)
- endif()
- string(REGEX REPLACE "[-]+std=c\\+\\+11" "" _cuda_host_flags "${_cuda_host_flags}")
- endif()
-
- if(_cuda_build_shared_libs)
- list(APPEND nvcc_flags "-D${cuda_target}_EXPORTS")
- endif()
-
- # Reset the output variable
- set(_cuda_wrap_generated_files "")
-
- # Iterate over the macro arguments and create custom
- # commands for all the .cu files.
- foreach(file ${_argn_list})
- # Ignore any file marked as a HEADER_FILE_ONLY
- get_source_file_property(_is_header ${file} HEADER_FILE_ONLY)
- # Allow per source file overrides of the format. Also allows compiling non-.cu files.
- get_source_file_property(_cuda_source_format ${file} CUDA_SOURCE_PROPERTY_FORMAT)
- if((${file} MATCHES "\\.cu$" OR _cuda_source_format) AND NOT _is_header)
-
- if(NOT _cuda_source_format)
- set(_cuda_source_format ${format})
- endif()
- # If file isn't a .cu file, we need to tell nvcc to treat it as such.
- if(NOT ${file} MATCHES "\\.cu$")
- set(cuda_language_flag -x=cu)
- else()
- set(cuda_language_flag)
- endif()
-
- if( ${_cuda_source_format} MATCHES "OBJ")
- set( cuda_compile_to_external_module OFF )
- else()
- set( cuda_compile_to_external_module ON )
- if( ${_cuda_source_format} MATCHES "PTX" )
- set( cuda_compile_to_external_module_type "ptx" )
- elseif( ${_cuda_source_format} MATCHES "CUBIN")
- set( cuda_compile_to_external_module_type "cubin" )
- elseif( ${_cuda_source_format} MATCHES "FATBIN")
- set( cuda_compile_to_external_module_type "fatbin" )
- else()
- message( FATAL_ERROR "Invalid format flag passed to CUDA_WRAP_SRCS or set with CUDA_SOURCE_PROPERTY_FORMAT file property for file '${file}': '${_cuda_source_format}'. Use OBJ, PTX, CUBIN or FATBIN.")
- endif()
- endif()
-
- if(cuda_compile_to_external_module)
- # Don't use any of the host compilation flags for PTX targets.
- set(CUDA_HOST_FLAGS)
- set(CUDA_NVCC_FLAGS_CONFIG)
- else()
- set(CUDA_HOST_FLAGS ${_cuda_host_flags})
- set(CUDA_NVCC_FLAGS_CONFIG ${_cuda_nvcc_flags_config})
- endif()
-
- # Determine output directory
- cuda_compute_build_path("${file}" cuda_build_path)
- set(cuda_compile_intermediate_directory "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${cuda_target}.dir/${cuda_build_path}")
- if(CUDA_GENERATED_OUTPUT_DIR)
- set(cuda_compile_output_dir "${CUDA_GENERATED_OUTPUT_DIR}")
- else()
- if ( cuda_compile_to_external_module )
- set(cuda_compile_output_dir "${CMAKE_CURRENT_BINARY_DIR}")
- else()
- set(cuda_compile_output_dir "${cuda_compile_intermediate_directory}")
- endif()
- endif()
-
- # Add a custom target to generate a c or ptx file. ######################
-
- get_filename_component( basename ${file} NAME )
- if( cuda_compile_to_external_module )
- set(generated_file_path "${cuda_compile_output_dir}")
- set(generated_file_basename "${cuda_target}_generated_${basename}.${cuda_compile_to_external_module_type}")
- set(format_flag "-${cuda_compile_to_external_module_type}")
- file(MAKE_DIRECTORY "${cuda_compile_output_dir}")
- else()
- set(generated_file_path "${cuda_compile_output_dir}/${CMAKE_CFG_INTDIR}")
- set(generated_file_basename "${cuda_target}_generated_${basename}${generated_extension}")
- if(CUDA_SEPARABLE_COMPILATION)
- set(format_flag "-dc")
- else()
- set(format_flag "-c")
- endif()
- endif()
-
- # Set all of our file names. Make sure that whatever filenames that have
- # generated_file_path in them get passed in through as a command line
- # argument, so that the ${CMAKE_CFG_INTDIR} gets expanded at run time
- # instead of configure time.
- set(generated_file "${generated_file_path}/${generated_file_basename}")
- set(cmake_dependency_file "${cuda_compile_intermediate_directory}/${generated_file_basename}.depend")
- set(NVCC_generated_dependency_file "${cuda_compile_intermediate_directory}/${generated_file_basename}.NVCC-depend")
- set(generated_cubin_file "${generated_file_path}/${generated_file_basename}.cubin.txt")
- set(custom_target_script_pregen "${cuda_compile_intermediate_directory}/${generated_file_basename}.cmake.pre-gen")
- set(custom_target_script "${cuda_compile_intermediate_directory}/${generated_file_basename}$<$<BOOL:$<CONFIG>>:.$<CONFIG>>.cmake")
-
- # Setup properties for obj files:
- if( NOT cuda_compile_to_external_module )
- set_source_files_properties("${generated_file}"
- PROPERTIES
- EXTERNAL_OBJECT true # This is an object file not to be compiled, but only be linked.
- )
- endif()
-
- # Don't add CMAKE_CURRENT_SOURCE_DIR if the path is already an absolute path.
- get_filename_component(file_path "${file}" PATH)
- if(IS_ABSOLUTE "${file_path}")
- set(source_file "${file}")
- else()
- set(source_file "${CMAKE_CURRENT_SOURCE_DIR}/${file}")
- endif()
-
- if( NOT cuda_compile_to_external_module AND CUDA_SEPARABLE_COMPILATION)
- list(APPEND ${cuda_target}_SEPARABLE_COMPILATION_OBJECTS "${generated_file}")
- endif()
-
- # Bring in the dependencies. Creates a variable CUDA_NVCC_DEPEND #######
- cuda_include_nvcc_dependencies(${cmake_dependency_file})
-
- # Convenience string for output #########################################
- if(CUDA_BUILD_EMULATION)
- set(cuda_build_type "Emulation")
- else()
- set(cuda_build_type "Device")
- endif()
-
- # Build the NVCC made dependency file ###################################
- set(build_cubin OFF)
- if ( NOT CUDA_BUILD_EMULATION AND CUDA_BUILD_CUBIN )
- if ( NOT cuda_compile_to_external_module )
- set ( build_cubin ON )
- endif()
- endif()
-
- # Configure the build script
- configure_file("${CUDA_run_nvcc}" "${custom_target_script_pregen}" @ONLY)
- file(GENERATE
- OUTPUT "${custom_target_script}"
- INPUT "${custom_target_script_pregen}"
- )
-
- # So if a user specifies the same cuda file as input more than once, you
- # can have bad things happen with dependencies. Here we check an option
- # to see if this is the behavior they want.
- if(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE)
- set(main_dep MAIN_DEPENDENCY ${source_file})
- else()
- set(main_dep DEPENDS ${source_file})
- endif()
-
- if(CUDA_VERBOSE_BUILD)
- set(verbose_output ON)
- elseif(CMAKE_GENERATOR MATCHES "Makefiles")
- set(verbose_output "$(VERBOSE)")
- else()
- set(verbose_output OFF)
- endif()
-
- # Create up the comment string
- file(RELATIVE_PATH generated_file_relative_path "${CMAKE_BINARY_DIR}" "${generated_file}")
- if(cuda_compile_to_external_module)
- set(cuda_build_comment_string "Building NVCC ${cuda_compile_to_external_module_type} file ${generated_file_relative_path}")
- else()
- set(cuda_build_comment_string "Building NVCC (${cuda_build_type}) object ${generated_file_relative_path}")
- endif()
-
- set(_verbatim VERBATIM)
- if(ccbin_flags MATCHES "\\$\\(VCInstallDir\\)")
- set(_verbatim "")
- endif()
-
- # Build the generated file and dependency file ##########################
- add_custom_command(
- OUTPUT ${generated_file}
- # These output files depend on the source_file and the contents of cmake_dependency_file
- ${main_dep}
- DEPENDS ${CUDA_NVCC_DEPEND}
- DEPENDS ${custom_target_script}
- # Make sure the output directory exists before trying to write to it.
- COMMAND ${CMAKE_COMMAND} -E make_directory "${generated_file_path}"
- COMMAND ${CMAKE_COMMAND} ARGS
- -D verbose:BOOL=${verbose_output}
- ${ccbin_flags}
- -D build_configuration:STRING=${CUDA_build_configuration}
- -D "generated_file:STRING=${generated_file}"
- -D "generated_cubin_file:STRING=${generated_cubin_file}"
- -P "${custom_target_script}"
- WORKING_DIRECTORY "${cuda_compile_intermediate_directory}"
- COMMENT "${cuda_build_comment_string}"
- ${_verbatim}
- )
-
- # Make sure the build system knows the file is generated.
- set_source_files_properties(${generated_file} PROPERTIES GENERATED TRUE)
-
- list(APPEND _cuda_wrap_generated_files ${generated_file})
-
- # Add the other files that we want cmake to clean on a cleanup ##########
- list(APPEND CUDA_ADDITIONAL_CLEAN_FILES "${cmake_dependency_file}")
- list(REMOVE_DUPLICATES CUDA_ADDITIONAL_CLEAN_FILES)
- set(CUDA_ADDITIONAL_CLEAN_FILES ${CUDA_ADDITIONAL_CLEAN_FILES} CACHE INTERNAL "List of intermediate files that are part of the cuda dependency scanning.")
-
- endif()
- endforeach()
-
- # Set the return parameter
- set(${generated_files} ${_cuda_wrap_generated_files})
-endmacro()
-
-function(_cuda_get_important_host_flags important_flags flag_string)
- if(CMAKE_GENERATOR MATCHES "Visual Studio")
- string(REGEX MATCHALL "/M[DT][d]?" flags "${flag_string}")
- list(APPEND ${important_flags} ${flags})
- else()
- string(REGEX MATCHALL "-fPIC" flags "${flag_string}")
- list(APPEND ${important_flags} ${flags})
- endif()
- set(${important_flags} ${${important_flags}} PARENT_SCOPE)
-endfunction()
-
-###############################################################################
-###############################################################################
-# Separable Compilation Link
-###############################################################################
-###############################################################################
-
-# Compute the filename to be used by CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS
-function(CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME output_file_var cuda_target object_files)
- if (object_files)
- set(generated_extension ${CMAKE_${CUDA_C_OR_CXX}_OUTPUT_EXTENSION})
- set(output_file "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${cuda_target}.dir/${CMAKE_CFG_INTDIR}/${cuda_target}_intermediate_link${generated_extension}")
- else()
- set(output_file)
- endif()
-
- set(${output_file_var} "${output_file}" PARENT_SCOPE)
-endfunction()
-
-# Setup the build rule for the separable compilation intermediate link file.
-function(CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS output_file cuda_target options object_files)
- if (object_files)
-
- set_source_files_properties("${output_file}"
- PROPERTIES
- EXTERNAL_OBJECT TRUE # This is an object file not to be compiled, but only
- # be linked.
- GENERATED TRUE # This file is generated during the build
- )
-
- # For now we are ignoring all the configuration specific flags.
- set(nvcc_flags)
- CUDA_PARSE_NVCC_OPTIONS(nvcc_flags ${options})
- if(CUDA_64_BIT_DEVICE_CODE)
- list(APPEND nvcc_flags -m64)
- else()
- list(APPEND nvcc_flags -m32)
- endif()
- # If -ccbin, --compiler-bindir has been specified, don't do anything. Otherwise add it here.
- list( FIND nvcc_flags "-ccbin" ccbin_found0 )
- list( FIND nvcc_flags "--compiler-bindir" ccbin_found1 )
- if( ccbin_found0 LESS 0 AND ccbin_found1 LESS 0 AND CUDA_HOST_COMPILER )
- # Match VERBATIM check below.
- if(CUDA_HOST_COMPILER MATCHES "\\$\\(VCInstallDir\\)")
- list(APPEND nvcc_flags -ccbin "\"${CUDA_HOST_COMPILER}\"")
- else()
- list(APPEND nvcc_flags -ccbin "${CUDA_HOST_COMPILER}")
- endif()
- endif()
-
- # Create a list of flags specified by CUDA_NVCC_FLAGS_${CONFIG} and CMAKE_${CUDA_C_OR_CXX}_FLAGS*
- set(config_specific_flags)
- set(flags)
- foreach(config ${CUDA_configuration_types})
- string(TOUPPER ${config} config_upper)
- # Add config specific flags
- foreach(f ${CUDA_NVCC_FLAGS_${config_upper}})
- list(APPEND config_specific_flags $<$<CONFIG:${config}>:${f}>)
- endforeach()
- set(important_host_flags)
- _cuda_get_important_host_flags(important_host_flags "${CMAKE_${CUDA_C_OR_CXX}_FLAGS_${config_upper}}")
- foreach(f ${important_host_flags})
- list(APPEND flags $<$<CONFIG:${config}>:-Xcompiler> $<$<CONFIG:${config}>:${f}>)
- endforeach()
- endforeach()
- # Add CMAKE_${CUDA_C_OR_CXX}_FLAGS
- set(important_host_flags)
- _cuda_get_important_host_flags(important_host_flags "${CMAKE_${CUDA_C_OR_CXX}_FLAGS}")
- foreach(f ${important_host_flags})
- list(APPEND flags -Xcompiler ${f})
- endforeach()
-
- # Add our general CUDA_NVCC_FLAGS with the configuration specifig flags
- set(nvcc_flags ${CUDA_NVCC_FLAGS} ${config_specific_flags} ${nvcc_flags})
-
- file(RELATIVE_PATH output_file_relative_path "${CMAKE_BINARY_DIR}" "${output_file}")
-
- # Some generators don't handle the multiple levels of custom command
- # dependencies correctly (obj1 depends on file1, obj2 depends on obj1), so
- # we work around that issue by compiling the intermediate link object as a
- # pre-link custom command in that situation.
- set(do_obj_build_rule TRUE)
- if (MSVC_VERSION GREATER 1599 AND MSVC_VERSION LESS 1800)
- # VS 2010 and 2012 have this problem.
- set(do_obj_build_rule FALSE)
- endif()
-
- set(_verbatim VERBATIM)
- if(nvcc_flags MATCHES "\\$\\(VCInstallDir\\)")
- set(_verbatim "")
- endif()
-
- if (do_obj_build_rule)
- add_custom_command(
- OUTPUT ${output_file}
- DEPENDS ${object_files}
- COMMAND ${CUDA_NVCC_EXECUTABLE} ${nvcc_flags} -dlink ${object_files} -o ${output_file}
- ${flags}
- COMMENT "Building NVCC intermediate link file ${output_file_relative_path}"
- COMMAND_EXPAND_LISTS
- ${_verbatim}
- )
- else()
- get_filename_component(output_file_dir "${output_file}" DIRECTORY)
- add_custom_command(
- TARGET ${cuda_target}
- PRE_LINK
- COMMAND ${CMAKE_COMMAND} -E echo "Building NVCC intermediate link file ${output_file_relative_path}"
- COMMAND ${CMAKE_COMMAND} -E make_directory "${output_file_dir}"
- COMMAND ${CUDA_NVCC_EXECUTABLE} ${nvcc_flags} ${flags} -dlink ${object_files} -o "${output_file}"
- COMMAND_EXPAND_LISTS
- ${_verbatim}
- )
- endif()
- endif()
-endfunction()
-
-###############################################################################
-###############################################################################
-# ADD LIBRARY
-###############################################################################
-###############################################################################
-macro(CUDA_ADD_LIBRARY cuda_target)
-
- CUDA_ADD_CUDA_INCLUDE_ONCE()
-
- # Separate the sources from the options
- CUDA_GET_SOURCES_AND_OPTIONS(_sources _cmake_options _options ${ARGN})
- CUDA_BUILD_SHARED_LIBRARY(_cuda_shared_flag ${ARGN})
- # Create custom commands and targets for each file.
- CUDA_WRAP_SRCS( ${cuda_target} OBJ _generated_files ${_sources}
- ${_cmake_options} ${_cuda_shared_flag}
- OPTIONS ${_options} )
-
- # Compute the file name of the intermedate link file used for separable
- # compilation.
- CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME(link_file ${cuda_target} "${${cuda_target}_SEPARABLE_COMPILATION_OBJECTS}")
-
- # Add the library.
- add_library(${cuda_target} ${_cmake_options}
- ${_generated_files}
- ${_sources}
- ${link_file}
- )
-
- # Add a link phase for the separable compilation if it has been enabled. If
- # it has been enabled then the ${cuda_target}_SEPARABLE_COMPILATION_OBJECTS
- # variable will have been defined.
- CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS("${link_file}" ${cuda_target} "${_options}" "${${cuda_target}_SEPARABLE_COMPILATION_OBJECTS}")
-
- target_link_libraries(${cuda_target} ${CUDA_LINK_LIBRARIES_KEYWORD}
- ${CUDA_LIBRARIES}
- )
-
- if(CUDA_SEPARABLE_COMPILATION)
- target_link_libraries(${cuda_target} ${CUDA_LINK_LIBRARIES_KEYWORD}
- ${CUDA_cudadevrt_LIBRARY}
- )
- endif()
-
- # We need to set the linker language based on what the expected generated file
- # would be. CUDA_C_OR_CXX is computed based on CUDA_HOST_COMPILATION_CPP.
- set_target_properties(${cuda_target}
- PROPERTIES
- LINKER_LANGUAGE ${CUDA_C_OR_CXX}
- )
-
-endmacro()
-
-
-###############################################################################
-###############################################################################
-# ADD EXECUTABLE
-###############################################################################
-###############################################################################
-macro(CUDA_ADD_EXECUTABLE cuda_target)
-
- CUDA_ADD_CUDA_INCLUDE_ONCE()
-
- # Separate the sources from the options
- CUDA_GET_SOURCES_AND_OPTIONS(_sources _cmake_options _options ${ARGN})
- # Create custom commands and targets for each file.
- CUDA_WRAP_SRCS( ${cuda_target} OBJ _generated_files ${_sources} OPTIONS ${_options} )
-
- # Compute the file name of the intermedate link file used for separable
- # compilation.
- CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME(link_file ${cuda_target} "${${cuda_target}_SEPARABLE_COMPILATION_OBJECTS}")
-
- # Add the library.
- add_executable(${cuda_target} ${_cmake_options}
- ${_generated_files}
- ${_sources}
- ${link_file}
- )
-
- # Add a link phase for the separable compilation if it has been enabled. If
- # it has been enabled then the ${cuda_target}_SEPARABLE_COMPILATION_OBJECTS
- # variable will have been defined.
- CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS("${link_file}" ${cuda_target} "${_options}" "${${cuda_target}_SEPARABLE_COMPILATION_OBJECTS}")
-
- target_link_libraries(${cuda_target} ${CUDA_LINK_LIBRARIES_KEYWORD}
- ${CUDA_LIBRARIES}
- )
-
- # We need to set the linker language based on what the expected generated file
- # would be. CUDA_C_OR_CXX is computed based on CUDA_HOST_COMPILATION_CPP.
- set_target_properties(${cuda_target}
- PROPERTIES
- LINKER_LANGUAGE ${CUDA_C_OR_CXX}
- )
-
-endmacro()
-
-
-###############################################################################
-###############################################################################
-# (Internal) helper for manually added cuda source files with specific targets
-###############################################################################
-###############################################################################
-macro(cuda_compile_base cuda_target format generated_files)
- # Update a counter in this directory, to keep phony target names unique.
- set(_cuda_target "${cuda_target}")
- get_property(_counter DIRECTORY PROPERTY _cuda_internal_phony_counter)
- if(_counter)
- math(EXPR _counter "${_counter} + 1")
- else()
- set(_counter 1)
- endif()
- string(APPEND _cuda_target "_${_counter}")
- set_property(DIRECTORY PROPERTY _cuda_internal_phony_counter ${_counter})
-
- # Separate the sources from the options
- CUDA_GET_SOURCES_AND_OPTIONS(_sources _cmake_options _options ${ARGN})
-
- # Create custom commands and targets for each file.
- CUDA_WRAP_SRCS( ${_cuda_target} ${format} _generated_files ${_sources}
- ${_cmake_options} OPTIONS ${_options} PHONY)
-
- set( ${generated_files} ${_generated_files})
-
-endmacro()
-
-###############################################################################
-###############################################################################
-# CUDA COMPILE
-###############################################################################
-###############################################################################
-macro(CUDA_COMPILE generated_files)
- cuda_compile_base(cuda_compile OBJ ${generated_files} ${ARGN})
-endmacro()
-
-###############################################################################
-###############################################################################
-# CUDA COMPILE PTX
-###############################################################################
-###############################################################################
-macro(CUDA_COMPILE_PTX generated_files)
- cuda_compile_base(cuda_compile_ptx PTX ${generated_files} ${ARGN})
-endmacro()
-
-###############################################################################
-###############################################################################
-# CUDA COMPILE FATBIN
-###############################################################################
-###############################################################################
-macro(CUDA_COMPILE_FATBIN generated_files)
- cuda_compile_base(cuda_compile_fatbin FATBIN ${generated_files} ${ARGN})
-endmacro()
-
-###############################################################################
-###############################################################################
-# CUDA COMPILE CUBIN
-###############################################################################
-###############################################################################
-macro(CUDA_COMPILE_CUBIN generated_files)
- cuda_compile_base(cuda_compile_cubin CUBIN ${generated_files} ${ARGN})
-endmacro()
-
-
-###############################################################################
-###############################################################################
-# CUDA ADD CUFFT TO TARGET
-###############################################################################
-###############################################################################
-macro(CUDA_ADD_CUFFT_TO_TARGET target)
- if (CUDA_BUILD_EMULATION)
- target_link_libraries(${target} ${CUDA_LINK_LIBRARIES_KEYWORD} ${CUDA_cufftemu_LIBRARY})
- else()
- target_link_libraries(${target} ${CUDA_LINK_LIBRARIES_KEYWORD} ${CUDA_cufft_LIBRARY})
- endif()
-endmacro()
-
-###############################################################################
-###############################################################################
-# CUDA ADD CUBLAS TO TARGET
-###############################################################################
-###############################################################################
-macro(CUDA_ADD_CUBLAS_TO_TARGET target)
- if (CUDA_BUILD_EMULATION)
- target_link_libraries(${target} ${CUDA_LINK_LIBRARIES_KEYWORD} ${CUDA_cublasemu_LIBRARY})
- else()
- target_link_libraries(${target} ${CUDA_LINK_LIBRARIES_KEYWORD} ${CUDA_cublas_LIBRARY} ${CUDA_cublas_device_LIBRARY})
- endif()
-endmacro()
-
-###############################################################################
-###############################################################################
-# CUDA BUILD CLEAN TARGET
-###############################################################################
-###############################################################################
-macro(CUDA_BUILD_CLEAN_TARGET)
- # Call this after you add all your CUDA targets, and you will get a
- # convenience target. You should also make clean after running this target
- # to get the build system to generate all the code again.
-
- set(cuda_clean_target_name clean_cuda_depends)
- if (CMAKE_GENERATOR MATCHES "Visual Studio")
- string(TOUPPER ${cuda_clean_target_name} cuda_clean_target_name)
- endif()
- add_custom_target(${cuda_clean_target_name}
- COMMAND ${CMAKE_COMMAND} -E remove ${CUDA_ADDITIONAL_CLEAN_FILES})
-
- # Clear out the variable, so the next time we configure it will be empty.
- # This is useful so that the files won't persist in the list after targets
- # have been removed.
- set(CUDA_ADDITIONAL_CLEAN_FILES "" CACHE INTERNAL "List of intermediate files that are part of the cuda dependency scanning.")
-endmacro()
diff --git a/share/cmake-3.16/Modules/FindCUDA/run_nvcc.cmake b/share/cmake-3.16/Modules/FindCUDA/run_nvcc.cmake
deleted file mode 100644
index af15d55..0000000
--- a/share/cmake-3.16/Modules/FindCUDA/run_nvcc.cmake
+++ /dev/null
@@ -1,306 +0,0 @@
-# James Bigler, NVIDIA Corp (nvidia.com - jbigler)
-#
-# Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved.
-#
-# This code is licensed under the MIT License. See the FindCUDA.cmake script
-# for the text of the license.
-
-# The MIT License
-#
-# License for the specific language governing rights and limitations under
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-# DEALINGS IN THE SOFTWARE.
-
-
-##########################################################################
-# This file runs the nvcc commands to produce the desired output file along with
-# the dependency file needed by CMake to compute dependencies. In addition the
-# file checks the output of each command and if the command fails it deletes the
-# output files.
-
-# Input variables
-#
-# verbose:BOOL=<> OFF: Be as quiet as possible (default)
-# ON : Describe each step
-#
-# build_configuration:STRING=<> Typically one of Debug, MinSizeRel, Release, or
-# RelWithDebInfo, but it should match one of the
-# entries in CUDA_HOST_FLAGS. This is the build
-# configuration used when compiling the code. If
-# blank or unspecified Debug is assumed as this is
-# what CMake does.
-#
-# generated_file:STRING=<> File to generate. This argument must be passed in.
-#
-# generated_cubin_file:STRING=<> File to generate. This argument must be passed
-# in if build_cubin is true.
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0007 NEW)
-if(NOT generated_file)
- message(FATAL_ERROR "You must specify generated_file on the command line")
-endif()
-
-# Set these up as variables to make reading the generated file easier
-set(CMAKE_COMMAND "@CMAKE_COMMAND@") # path
-set(source_file "@source_file@") # path
-set(NVCC_generated_dependency_file "@NVCC_generated_dependency_file@") # path
-set(cmake_dependency_file "@cmake_dependency_file@") # path
-set(CUDA_make2cmake "@CUDA_make2cmake@") # path
-set(CUDA_parse_cubin "@CUDA_parse_cubin@") # path
-set(build_cubin @build_cubin@) # bool
-set(CUDA_HOST_COMPILER "@CUDA_HOST_COMPILER@") # path
-# We won't actually use these variables for now, but we need to set this, in
-# order to force this file to be run again if it changes.
-set(generated_file_path "@generated_file_path@") # path
-set(generated_file_internal "@generated_file@") # path
-set(generated_cubin_file_internal "@generated_cubin_file@") # path
-
-set(CUDA_NVCC_EXECUTABLE "@CUDA_NVCC_EXECUTABLE@") # path
-set(CUDA_NVCC_FLAGS @CUDA_NVCC_FLAGS@ ;; @CUDA_WRAP_OPTION_NVCC_FLAGS@) # list
-@CUDA_NVCC_FLAGS_CONFIG@
-set(nvcc_flags @nvcc_flags@) # list
-set(CUDA_NVCC_INCLUDE_DIRS [==[@CUDA_NVCC_INCLUDE_DIRS@]==]) # list (needs to be in lua quotes to address backslashes)
-string(REPLACE "\\" "/" CUDA_NVCC_INCLUDE_DIRS "${CUDA_NVCC_INCLUDE_DIRS}")
-set(CUDA_NVCC_COMPILE_DEFINITIONS [==[@CUDA_NVCC_COMPILE_DEFINITIONS@]==]) # list (needs to be in lua quotes see #16510 ).
-set(format_flag "@format_flag@") # string
-set(cuda_language_flag @cuda_language_flag@) # list
-
-# Clean up list of include directories and add -I flags
-list(REMOVE_DUPLICATES CUDA_NVCC_INCLUDE_DIRS)
-set(CUDA_NVCC_INCLUDE_ARGS)
-foreach(dir ${CUDA_NVCC_INCLUDE_DIRS})
- # Extra quotes are added around each flag to help nvcc parse out flags with spaces.
- list(APPEND CUDA_NVCC_INCLUDE_ARGS "-I${dir}")
-endforeach()
-
-# Clean up list of compile definitions, add -D flags, and append to nvcc_flags
-list(REMOVE_DUPLICATES CUDA_NVCC_COMPILE_DEFINITIONS)
-foreach(def ${CUDA_NVCC_COMPILE_DEFINITIONS})
- list(APPEND nvcc_flags "-D${def}")
-endforeach()
-
-if(build_cubin AND NOT generated_cubin_file)
- message(FATAL_ERROR "You must specify generated_cubin_file on the command line")
-endif()
-
-# This is the list of host compilation flags. It C or CXX should already have
-# been chosen by FindCUDA.cmake.
-@CUDA_HOST_FLAGS@
-
-# Take the compiler flags and package them up to be sent to the compiler via -Xcompiler
-set(nvcc_host_compiler_flags "")
-# If we weren't given a build_configuration, use Debug.
-if(NOT build_configuration)
- set(build_configuration Debug)
-endif()
-string(TOUPPER "${build_configuration}" build_configuration)
-#message("CUDA_NVCC_HOST_COMPILER_FLAGS = ${CUDA_NVCC_HOST_COMPILER_FLAGS}")
-foreach(flag ${CMAKE_HOST_FLAGS} ${CMAKE_HOST_FLAGS_${build_configuration}})
- # Extra quotes are added around each flag to help nvcc parse out flags with spaces.
- string(APPEND nvcc_host_compiler_flags ",\"${flag}\"")
-endforeach()
-if (nvcc_host_compiler_flags)
- set(nvcc_host_compiler_flags "-Xcompiler" ${nvcc_host_compiler_flags})
-endif()
-#message("nvcc_host_compiler_flags = \"${nvcc_host_compiler_flags}\"")
-# Add the build specific configuration flags
-list(APPEND CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS_${build_configuration}})
-
-# Any -ccbin existing in CUDA_NVCC_FLAGS gets highest priority
-list( FIND CUDA_NVCC_FLAGS "-ccbin" ccbin_found0 )
-list( FIND CUDA_NVCC_FLAGS "--compiler-bindir" ccbin_found1 )
-if( ccbin_found0 LESS 0 AND ccbin_found1 LESS 0 AND CUDA_HOST_COMPILER )
- if (CUDA_HOST_COMPILER STREQUAL "@_CUDA_MSVC_HOST_COMPILER@" AND DEFINED CCBIN)
- set(CCBIN -ccbin "${CCBIN}")
- else()
- set(CCBIN -ccbin "${CUDA_HOST_COMPILER}")
- endif()
-endif()
-
-# cuda_execute_process - Executes a command with optional command echo and status message.
-#
-# status - Status message to print if verbose is true
-# command - COMMAND argument from the usual execute_process argument structure
-# ARGN - Remaining arguments are the command with arguments
-#
-# CUDA_result - return value from running the command
-#
-# Make this a macro instead of a function, so that things like RESULT_VARIABLE
-# and other return variables are present after executing the process.
-macro(cuda_execute_process status command)
- set(_command ${command})
- if(NOT "x${_command}" STREQUAL "xCOMMAND")
- message(FATAL_ERROR "Malformed call to cuda_execute_process. Missing COMMAND as second argument. (command = ${command})")
- endif()
- if(verbose)
- execute_process(COMMAND "${CMAKE_COMMAND}" -E echo -- ${status})
- # Now we need to build up our command string. We are accounting for quotes
- # and spaces, anything else is left up to the user to fix if they want to
- # copy and paste a runnable command line.
- set(cuda_execute_process_string)
- foreach(arg ${ARGN})
- # If there are quotes, excape them, so they come through.
- string(REPLACE "\"" "\\\"" arg ${arg})
- # Args with spaces need quotes around them to get them to be parsed as a single argument.
- if(arg MATCHES " ")
- list(APPEND cuda_execute_process_string "\"${arg}\"")
- else()
- list(APPEND cuda_execute_process_string ${arg})
- endif()
- endforeach()
- # Echo the command
- execute_process(COMMAND ${CMAKE_COMMAND} -E echo ${cuda_execute_process_string})
- endif()
- # Run the command
- execute_process(COMMAND ${ARGN} RESULT_VARIABLE CUDA_result )
-endmacro()
-
-# Delete the target file
-cuda_execute_process(
- "Removing ${generated_file}"
- COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}"
- )
-
-# For CUDA 2.3 and below, -G -M doesn't work, so remove the -G flag
-# for dependency generation and hope for the best.
-set(depends_CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}")
-set(CUDA_VERSION @CUDA_VERSION@)
-if(CUDA_VERSION VERSION_LESS "3.0")
- # Note that this will remove all occurrences of -G.
- list(REMOVE_ITEM depends_CUDA_NVCC_FLAGS "-G")
-endif()
-
-# nvcc doesn't define __CUDACC__ for some reason when generating dependency files. This
-# can cause incorrect dependencies when #including files based on this macro which is
-# defined in the generating passes of nvcc invocation. We will go ahead and manually
-# define this for now until a future version fixes this bug.
-set(CUDACC_DEFINE -D__CUDACC__)
-
-# Generate the dependency file
-cuda_execute_process(
- "Generating dependency file: ${NVCC_generated_dependency_file}"
- COMMAND "${CUDA_NVCC_EXECUTABLE}"
- -M
- ${CUDACC_DEFINE}
- "${source_file}"
- -o "${NVCC_generated_dependency_file}"
- ${CCBIN}
- ${nvcc_flags}
- ${nvcc_host_compiler_flags}
- ${depends_CUDA_NVCC_FLAGS}
- -DNVCC
- ${CUDA_NVCC_INCLUDE_ARGS}
- )
-
-if(CUDA_result)
- message(FATAL_ERROR "Error generating ${generated_file}")
-endif()
-
-# Generate the cmake readable dependency file to a temp file. Don't put the
-# quotes just around the filenames for the input_file and output_file variables.
-# CMake will pass the quotes through and not be able to find the file.
-cuda_execute_process(
- "Generating temporary cmake readable file: ${cmake_dependency_file}.tmp"
- COMMAND "${CMAKE_COMMAND}"
- -D "input_file:FILEPATH=${NVCC_generated_dependency_file}"
- -D "output_file:FILEPATH=${cmake_dependency_file}.tmp"
- -D "verbose=${verbose}"
- -P "${CUDA_make2cmake}"
- )
-
-if(CUDA_result)
- message(FATAL_ERROR "Error generating ${generated_file}")
-endif()
-
-# Copy the file if it is different
-cuda_execute_process(
- "Copy if different ${cmake_dependency_file}.tmp to ${cmake_dependency_file}"
- COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${cmake_dependency_file}.tmp" "${cmake_dependency_file}"
- )
-
-if(CUDA_result)
- message(FATAL_ERROR "Error generating ${generated_file}")
-endif()
-
-# Delete the temporary file
-cuda_execute_process(
- "Removing ${cmake_dependency_file}.tmp and ${NVCC_generated_dependency_file}"
- COMMAND "${CMAKE_COMMAND}" -E remove "${cmake_dependency_file}.tmp" "${NVCC_generated_dependency_file}"
- )
-
-if(CUDA_result)
- message(FATAL_ERROR "Error generating ${generated_file}")
-endif()
-
-# Generate the code
-cuda_execute_process(
- "Generating ${generated_file}"
- COMMAND "${CUDA_NVCC_EXECUTABLE}"
- "${source_file}"
- ${cuda_language_flag}
- ${format_flag} -o "${generated_file}"
- ${CCBIN}
- ${nvcc_flags}
- ${nvcc_host_compiler_flags}
- ${CUDA_NVCC_FLAGS}
- -DNVCC
- ${CUDA_NVCC_INCLUDE_ARGS}
- )
-
-if(CUDA_result)
- # Since nvcc can sometimes leave half done files make sure that we delete the output file.
- cuda_execute_process(
- "Removing ${generated_file}"
- COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}"
- )
- message(FATAL_ERROR "Error generating file ${generated_file}")
-else()
- if(verbose)
- message("Generated ${generated_file} successfully.")
- endif()
-endif()
-
-# Cubin resource report commands.
-if( build_cubin )
- # Run with -cubin to produce resource usage report.
- cuda_execute_process(
- "Generating ${generated_cubin_file}"
- COMMAND "${CUDA_NVCC_EXECUTABLE}"
- "${source_file}"
- ${CUDA_NVCC_FLAGS}
- ${nvcc_flags}
- ${CCBIN}
- ${nvcc_host_compiler_flags}
- -DNVCC
- -cubin
- -o "${generated_cubin_file}"
- ${CUDA_NVCC_INCLUDE_ARGS}
- )
-
- # Execute the parser script.
- cuda_execute_process(
- "Executing the parser script"
- COMMAND "${CMAKE_COMMAND}"
- -D "input_file:STRING=${generated_cubin_file}"
- -P "${CUDA_parse_cubin}"
- )
-
-endif()
-
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FindCURL.cmake b/share/cmake-3.16/Modules/FindCURL.cmake
deleted file mode 100644
index aeebc84..0000000
--- a/share/cmake-3.16/Modules/FindCURL.cmake
+++ /dev/null
@@ -1,177 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindCURL
---------
-
-Find the native CURL headers and libraries.
-
-This module accept optional COMPONENTS to check supported features and
-protocols::
-
- PROTOCOLS: ICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP LDAPS POP3
- POP3S RTMP RTSP SCP SFTP SMB SMBS SMTP SMTPS TELNET TFTP
- FEATURES: SSL IPv6 UnixSockets libz AsynchDNS IDN GSS-API PSL SPNEGO
- Kerberos NTLM NTLM_WB TLS-SRP HTTP2 HTTPS-proxy
-
-IMPORTED Targets
-^^^^^^^^^^^^^^^^
-
-This module defines :prop_tgt:`IMPORTED` target ``CURL::libcurl``, if
-curl has been found.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module defines the following variables:
-
-``CURL_FOUND``
- "True" if ``curl`` found.
-
-``CURL_INCLUDE_DIRS``
- where to find ``curl``/``curl.h``, etc.
-
-``CURL_LIBRARIES``
- List of libraries when using ``curl``.
-
-``CURL_VERSION_STRING``
- The version of ``curl`` found.
-#]=======================================================================]
-
-find_package(PkgConfig QUIET)
-if(PKG_CONFIG_FOUND)
- pkg_check_modules(PC_CURL QUIET libcurl)
- if(PC_CURL_FOUND)
- set(CURL_VERSION_STRING ${PC_CURL_VERSION})
- pkg_get_variable(CURL_SUPPORTED_PROTOCOLS libcurl supported_protocols)
- pkg_get_variable(CURL_SUPPORTED_FEATURES libcurl supported_features)
- endif()
-endif()
-
-# Look for the header file.
-find_path(CURL_INCLUDE_DIR
- NAMES curl/curl.h
- HINTS ${PC_CURL_INCLUDE_DIRS})
-mark_as_advanced(CURL_INCLUDE_DIR)
-
-if(NOT CURL_LIBRARY)
- # Look for the library (sorted from most current/relevant entry to least).
- find_library(CURL_LIBRARY_RELEASE NAMES
- curl
- # Windows MSVC prebuilts:
- curllib
- libcurl_imp
- curllib_static
- # Windows older "Win32 - MSVC" prebuilts (libcurl.lib, e.g. libcurl-7.15.5-win32-msvc.zip):
- libcurl
- HINTS ${PC_CURL_LIBRARY_DIRS}
- )
- mark_as_advanced(CURL_LIBRARY_RELEASE)
-
- find_library(CURL_LIBRARY_DEBUG NAMES
- # Windows MSVC CMake builds in debug configuration on vcpkg:
- libcurl-d_imp
- libcurl-d
- HINTS ${PC_CURL_LIBRARY_DIRS}
- )
- mark_as_advanced(CURL_LIBRARY_DEBUG)
-
- include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
- select_library_configurations(CURL)
-endif()
-
-if(CURL_INCLUDE_DIR AND NOT CURL_VERSION_STRING)
- foreach(_curl_version_header curlver.h curl.h)
- if(EXISTS "${CURL_INCLUDE_DIR}/curl/${_curl_version_header}")
- file(STRINGS "${CURL_INCLUDE_DIR}/curl/${_curl_version_header}" curl_version_str REGEX "^#define[\t ]+LIBCURL_VERSION[\t ]+\".*\"")
-
- string(REGEX REPLACE "^#define[\t ]+LIBCURL_VERSION[\t ]+\"([^\"]*)\".*" "\\1" CURL_VERSION_STRING "${curl_version_str}")
- unset(curl_version_str)
- break()
- endif()
- endforeach()
-endif()
-
-if(CURL_FIND_COMPONENTS)
- set(CURL_KNOWN_PROTOCOLS ICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP LDAPS POP3 POP3S RTMP RTSP SCP SFTP SMB SMBS SMTP SMTPS TELNET TFTP)
- set(CURL_KNOWN_FEATURES SSL IPv6 UnixSockets libz AsynchDNS IDN GSS-API PSL SPNEGO Kerberos NTLM NTLM_WB TLS-SRP HTTP2 HTTPS-proxy)
- foreach(component IN LISTS CURL_KNOWN_PROTOCOLS CURL_KNOWN_FEATURES)
- set(CURL_${component}_FOUND FALSE)
- endforeach()
- if(NOT PC_CURL_FOUND)
- find_program(CURL_CONFIG_EXECUTABLE NAMES curl-config)
- if(CURL_CONFIG_EXECUTABLE)
- execute_process(COMMAND ${CURL_CONFIG_EXECUTABLE} --version
- OUTPUT_VARIABLE CURL_CONFIG_VERSION_STRING
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process(COMMAND ${CURL_CONFIG_EXECUTABLE} --feature
- OUTPUT_VARIABLE CURL_CONFIG_FEATURES_STRING
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- string(REPLACE "\n" ";" CURL_SUPPORTED_FEATURES "${CURL_CONFIG_FEATURES_STRING}")
- execute_process(COMMAND ${CURL_CONFIG_EXECUTABLE} --protocols
- OUTPUT_VARIABLE CURL_CONFIG_PROTOCOLS_STRING
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- string(REPLACE "\n" ";" CURL_SUPPORTED_PROTOCOLS "${CURL_CONFIG_PROTOCOLS_STRING}")
- endif()
-
- endif()
- foreach(component IN LISTS CURL_FIND_COMPONENTS)
- list(FIND CURL_KNOWN_PROTOCOLS ${component} _found)
- if(_found)
- list(FIND CURL_SUPPORTED_PROTOCOLS ${component} _found)
- if(_found)
- set(CURL_${component}_FOUND TRUE)
- elseif(CURL_FIND_REQUIRED)
- message(FATAL_ERROR "CURL: Required protocol ${component} is not found")
- endif()
- else()
- list(FIND CURL_SUPPORTED_FEATURES ${component} _found)
- if(_found)
- set(CURL_${component}_FOUND TRUE)
- elseif(CURL_FIND_REQUIRED)
- message(FATAL_ERROR "CURL: Required feature ${component} is not found")
- endif()
- endif()
- endforeach()
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(CURL
- REQUIRED_VARS CURL_LIBRARY CURL_INCLUDE_DIR
- VERSION_VAR CURL_VERSION_STRING
- HANDLE_COMPONENTS)
-
-if(CURL_FOUND)
- set(CURL_LIBRARIES ${CURL_LIBRARY})
- set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR})
-
- if(NOT TARGET CURL::libcurl)
- add_library(CURL::libcurl UNKNOWN IMPORTED)
- set_target_properties(CURL::libcurl PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}")
-
- if(EXISTS "${CURL_LIBRARY}")
- set_target_properties(CURL::libcurl PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES "C"
- IMPORTED_LOCATION "${CURL_LIBRARY}")
- endif()
- if(CURL_LIBRARY_RELEASE)
- set_property(TARGET CURL::libcurl APPEND PROPERTY
- IMPORTED_CONFIGURATIONS RELEASE)
- set_target_properties(CURL::libcurl PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES "C"
- IMPORTED_LOCATION_RELEASE "${CURL_LIBRARY_RELEASE}")
- endif()
- if(CURL_LIBRARY_DEBUG)
- set_property(TARGET CURL::libcurl APPEND PROPERTY
- IMPORTED_CONFIGURATIONS DEBUG)
- set_target_properties(CURL::libcurl PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES "C"
- IMPORTED_LOCATION_DEBUG "${CURL_LIBRARY_DEBUG}")
- endif()
- endif()
-endif()
diff --git a/share/cmake-3.16/Modules/FindCurses.cmake b/share/cmake-3.16/Modules/FindCurses.cmake
deleted file mode 100644
index e3e7273..0000000
--- a/share/cmake-3.16/Modules/FindCurses.cmake
+++ /dev/null
@@ -1,267 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindCurses
-----------
-
-Find the curses or ncurses include file and library.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module defines the following variables:
-
-``CURSES_FOUND``
- True if Curses is found.
-``CURSES_INCLUDE_DIRS``
- The include directories needed to use Curses.
-``CURSES_LIBRARIES``
- The libraries needed to use Curses.
-``CURSES_CFLAGS``
- Parameters which ought be given to C/C++ compilers when using Curses.
-``CURSES_HAVE_CURSES_H``
- True if curses.h is available.
-``CURSES_HAVE_NCURSES_H``
- True if ncurses.h is available.
-``CURSES_HAVE_NCURSES_NCURSES_H``
- True if ``ncurses/ncurses.h`` is available.
-``CURSES_HAVE_NCURSES_CURSES_H``
- True if ``ncurses/curses.h`` is available.
-
-Set ``CURSES_NEED_NCURSES`` to ``TRUE`` before the
-``find_package(Curses)`` call if NCurses functionality is required.
-Set ``CURSES_NEED_WIDE`` to ``TRUE`` before the
-``find_package(Curses)`` call if unicode functionality is required.
-
-Backward Compatibility
-^^^^^^^^^^^^^^^^^^^^^^
-
-The following variable are provided for backward compatibility:
-
-``CURSES_INCLUDE_DIR``
- Path to Curses include. Use ``CURSES_INCLUDE_DIRS`` instead.
-``CURSES_LIBRARY``
- Path to Curses library. Use ``CURSES_LIBRARIES`` instead.
-#]=======================================================================]
-
-include(${CMAKE_CURRENT_LIST_DIR}/CheckLibraryExists.cmake)
-
-# we don't know anything about cursesw, so only ncurses
-# may be ncursesw
-if(NOT CURSES_NEED_WIDE)
- set(NCURSES_LIBRARY_NAME "ncurses")
- set(CURSES_FORM_LIBRARY_NAME "form")
-else()
- set(NCURSES_LIBRARY_NAME "ncursesw")
- set(CURSES_FORM_LIBRARY_NAME "formw")
- # Also, if we are searching for wide curses - we are actually searching
- # for ncurses, we don't know about any other unicode version.
- set(CURSES_NEED_NCURSES TRUE)
-endif()
-
-find_library(CURSES_CURSES_LIBRARY NAMES curses)
-
-find_library(CURSES_NCURSES_LIBRARY NAMES "${NCURSES_LIBRARY_NAME}" )
-set(CURSES_USE_NCURSES FALSE)
-
-if(CURSES_NCURSES_LIBRARY AND ((NOT CURSES_CURSES_LIBRARY) OR CURSES_NEED_NCURSES))
- set(CURSES_USE_NCURSES TRUE)
-endif()
-# http://cygwin.com/ml/cygwin-announce/2010-01/msg00002.html
-# cygwin ncurses stopped providing curses.h symlinks see above
-# message. Cygwin is an ncurses package, so force ncurses on
-# cygwin if the curses.h is missing
-if(CYGWIN)
- if (CURSES_NEED_WIDE)
- if(NOT EXISTS /usr/include/ncursesw/curses.h)
- set(CURSES_USE_NCURSES TRUE)
- endif()
- else()
- if(NOT EXISTS /usr/include/curses.h)
- set(CURSES_USE_NCURSES TRUE)
- endif()
- endif()
-endif()
-
-
-# Not sure the logic is correct here.
-# If NCurses is required, use the function wsyncup() to check if the library
-# has NCurses functionality (at least this is where it breaks on NetBSD).
-# If wsyncup is in curses, use this one.
-# If not, try to find ncurses and check if this has the symbol.
-# Once the ncurses library is found, search the ncurses.h header first, but
-# some web pages also say that even with ncurses there is not always a ncurses.h:
-# http://osdir.com/ml/gnome.apps.mc.devel/2002-06/msg00029.html
-# So at first try ncurses.h, if not found, try to find curses.h under the same
-# prefix as the library was found, if still not found, try curses.h with the
-# default search paths.
-if(CURSES_CURSES_LIBRARY AND CURSES_NEED_NCURSES)
- include(${CMAKE_CURRENT_LIST_DIR}/CMakePushCheckState.cmake)
- cmake_push_check_state()
- set(CMAKE_REQUIRED_QUIET ${Curses_FIND_QUIETLY})
- CHECK_LIBRARY_EXISTS("${CURSES_CURSES_LIBRARY}"
- wsyncup "" CURSES_CURSES_HAS_WSYNCUP)
-
- if(CURSES_NCURSES_LIBRARY AND NOT CURSES_CURSES_HAS_WSYNCUP)
- CHECK_LIBRARY_EXISTS("${CURSES_NCURSES_LIBRARY}"
- wsyncup "" CURSES_NCURSES_HAS_WSYNCUP)
- if( CURSES_NCURSES_HAS_WSYNCUP)
- set(CURSES_USE_NCURSES TRUE)
- endif()
- endif()
- cmake_pop_check_state()
-
-endif()
-
-if(CURSES_USE_NCURSES)
- get_filename_component(_cursesLibDir "${CURSES_NCURSES_LIBRARY}" PATH)
- get_filename_component(_cursesParentDir "${_cursesLibDir}" PATH)
-
- # Use CURSES_NCURSES_INCLUDE_PATH if set, for compatibility.
- if(CURSES_NCURSES_INCLUDE_PATH)
- if (CURSES_NEED_WIDE)
- find_path(CURSES_INCLUDE_PATH
- NAMES ncursesw/ncurses.h ncursesw/curses.h ncursesw.h cursesw.h
- PATHS ${CURSES_NCURSES_INCLUDE_PATH}
- NO_DEFAULT_PATH
- )
- else()
- find_path(CURSES_INCLUDE_PATH
- NAMES ncurses/ncurses.h ncurses/curses.h ncurses.h curses.h
- PATHS ${CURSES_NCURSES_INCLUDE_PATH}
- NO_DEFAULT_PATH
- )
- endif()
- endif()
-
- if (CURSES_NEED_WIDE)
- set(CURSES_TINFO_LIBRARY_NAME tinfow)
- find_path(CURSES_INCLUDE_PATH
- NAMES ncursesw/ncurses.h ncursesw/curses.h ncursesw.h cursesw.h
- HINTS "${_cursesParentDir}/include"
- )
- else()
- set(CURSES_TINFO_LIBRARY_NAME tinfo)
- find_path(CURSES_INCLUDE_PATH
- NAMES ncurses/ncurses.h ncurses/curses.h ncurses.h curses.h
- HINTS "${_cursesParentDir}/include"
- )
- endif()
-
- # Previous versions of FindCurses provided these values.
- if(NOT DEFINED CURSES_LIBRARY)
- set(CURSES_LIBRARY "${CURSES_NCURSES_LIBRARY}")
- endif()
-
- CHECK_LIBRARY_EXISTS("${CURSES_NCURSES_LIBRARY}"
- cbreak "" CURSES_NCURSES_HAS_CBREAK)
- if(NOT CURSES_NCURSES_HAS_CBREAK)
- find_library(CURSES_EXTRA_LIBRARY "${CURSES_TINFO_LIBRARY_NAME}" HINTS "${_cursesLibDir}")
- find_library(CURSES_EXTRA_LIBRARY "${CURSES_TINFO_LIBRARY_NAME}" )
- endif()
-else()
- get_filename_component(_cursesLibDir "${CURSES_CURSES_LIBRARY}" PATH)
- get_filename_component(_cursesParentDir "${_cursesLibDir}" PATH)
-
- #We can't find anything with CURSES_NEED_WIDE because we know
- #only about ncursesw unicode curses version
- if(NOT CURSES_NEED_WIDE)
- find_path(CURSES_INCLUDE_PATH
- NAMES curses.h
- HINTS "${_cursesParentDir}/include"
- )
- endif()
-
- # Previous versions of FindCurses provided these values.
- if(NOT DEFINED CURSES_CURSES_H_PATH)
- set(CURSES_CURSES_H_PATH "${CURSES_INCLUDE_PATH}")
- endif()
- if(NOT DEFINED CURSES_LIBRARY)
- set(CURSES_LIBRARY "${CURSES_CURSES_LIBRARY}")
- endif()
-endif()
-
-# Report whether each possible header name exists in the include directory.
-if(NOT DEFINED CURSES_HAVE_NCURSES_NCURSES_H)
- if(CURSES_NEED_WIDE)
- if(EXISTS "${CURSES_INCLUDE_PATH}/ncursesw/ncurses.h")
- set(CURSES_HAVE_NCURSES_NCURSES_H "${CURSES_INCLUDE_PATH}/ncursesw/ncurses.h")
- endif()
- elseif(EXISTS "${CURSES_INCLUDE_PATH}/ncurses/ncurses.h")
- set(CURSES_HAVE_NCURSES_NCURSES_H "${CURSES_INCLUDE_PATH}/ncurses/ncurses.h")
- endif()
- if(NOT DEFINED CURSES_HAVE_NCURSES_NCURSES_H)
- set(CURSES_HAVE_NCURSES_NCURSES_H "CURSES_HAVE_NCURSES_NCURSES_H-NOTFOUND")
- endif()
-endif()
-if(NOT DEFINED CURSES_HAVE_NCURSES_CURSES_H)
- if(CURSES_NEED_WIDE)
- if(EXISTS "${CURSES_INCLUDE_PATH}/ncursesw/curses.h")
- set(CURSES_HAVE_NCURSES_CURSES_H "${CURSES_INCLUDE_PATH}/ncursesw/curses.h")
- endif()
- elseif(EXISTS "${CURSES_INCLUDE_PATH}/ncurses/curses.h")
- set(CURSES_HAVE_NCURSES_CURSES_H "${CURSES_INCLUDE_PATH}/ncurses/curses.h")
- endif()
- if(NOT DEFINED CURSES_HAVE_NCURSES_CURSES_H)
- set(CURSES_HAVE_NCURSES_CURSES_H "CURSES_HAVE_NCURSES_CURSES_H-NOTFOUND")
- endif()
-endif()
-if(NOT CURSES_NEED_WIDE)
- #ncursesw can't be found for this paths
- if(NOT DEFINED CURSES_HAVE_NCURSES_H)
- if(EXISTS "${CURSES_INCLUDE_PATH}/ncurses.h")
- set(CURSES_HAVE_NCURSES_H "${CURSES_INCLUDE_PATH}/ncurses.h")
- else()
- set(CURSES_HAVE_NCURSES_H "CURSES_HAVE_NCURSES_H-NOTFOUND")
- endif()
- endif()
- if(NOT DEFINED CURSES_HAVE_CURSES_H)
- if(EXISTS "${CURSES_INCLUDE_PATH}/curses.h")
- set(CURSES_HAVE_CURSES_H "${CURSES_INCLUDE_PATH}/curses.h")
- else()
- set(CURSES_HAVE_CURSES_H "CURSES_HAVE_CURSES_H-NOTFOUND")
- endif()
- endif()
-endif()
-
-find_library(CURSES_FORM_LIBRARY "${CURSES_FORM_LIBRARY_NAME}" HINTS "${_cursesLibDir}")
-find_library(CURSES_FORM_LIBRARY "${CURSES_FORM_LIBRARY_NAME}" )
-
-# Previous versions of FindCurses provided these values.
-if(NOT DEFINED FORM_LIBRARY)
- set(FORM_LIBRARY "${CURSES_FORM_LIBRARY}")
-endif()
-
-# Need to provide the *_LIBRARIES
-set(CURSES_LIBRARIES ${CURSES_LIBRARY})
-
-if(CURSES_EXTRA_LIBRARY)
- set(CURSES_LIBRARIES ${CURSES_LIBRARIES} ${CURSES_EXTRA_LIBRARY})
-endif()
-
-if(CURSES_FORM_LIBRARY)
- set(CURSES_LIBRARIES ${CURSES_LIBRARIES} ${CURSES_FORM_LIBRARY})
-endif()
-
-# Provide the *_INCLUDE_DIRS and *_CFLAGS results.
-set(CURSES_INCLUDE_DIRS ${CURSES_INCLUDE_PATH})
-set(CURSES_INCLUDE_DIR ${CURSES_INCLUDE_PATH}) # compatibility
-
-find_package(PkgConfig QUIET)
-if(PKG_CONFIG_FOUND)
- pkg_check_modules(NCURSES QUIET ${NCURSES_LIBRARY_NAME})
- set(CURSES_CFLAGS ${NCURSES_CFLAGS_OTHER})
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Curses DEFAULT_MSG
- CURSES_LIBRARY CURSES_INCLUDE_PATH)
-
-mark_as_advanced(
- CURSES_INCLUDE_PATH
- CURSES_CURSES_LIBRARY
- CURSES_NCURSES_LIBRARY
- CURSES_EXTRA_LIBRARY
- CURSES_FORM_LIBRARY
- )
diff --git a/share/cmake-3.16/Modules/FindDCMTK.cmake b/share/cmake-3.16/Modules/FindDCMTK.cmake
deleted file mode 100644
index d48de08..0000000
--- a/share/cmake-3.16/Modules/FindDCMTK.cmake
+++ /dev/null
@@ -1,322 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindDCMTK
----------
-
-Find DICOM ToolKit (DCMTK) libraries and applications
-
-The module defines the following variables::
-
- DCMTK_INCLUDE_DIRS - Directories to include to use DCMTK
- DCMTK_LIBRARIES - Files to link against to use DCMTK
- DCMTK_FOUND - If false, don't try to use DCMTK
- DCMTK_DIR - (optional) Source directory for DCMTK
-
-Compatibility
-^^^^^^^^^^^^^
-
-This module is able to find a version of DCMTK that does or does not export
-a *DCMTKConfig.cmake* file. It applies a two step process:
-
-* Step 1: Attempt to find DCMTK version providing a *DCMTKConfig.cmake* file.
-* Step 2: If step 1 failed, rely on *FindDCMTK.cmake* to set `DCMTK_*` variables details below.
-
-
-`Recent DCMTK
-<http://git.dcmtk.org/web?p=dcmtk.git;a=commit;h=662ae187c493c6b9a73dd5e3875372cebd0c11fe>`_
-provides a *DCMTKConfig.cmake* :manual:`package configuration file
-<cmake-packages(7)>`. To exclusively use the package configuration file
-(recommended when possible), pass the `NO_MODULE` option to
-:command:`find_package`. For example, `find_package(DCMTK NO_MODULE)`.
-This requires official DCMTK snapshot *3.6.1_20140617* or newer.
-
-
-Until all clients update to the more recent DCMTK, build systems will need
-to support different versions of DCMTK.
-
-On any given system, the following combinations of DCMTK versions could be
-considered:
-
-+--------+---------------------+-----------------------+-------------------+
-| | SYSTEM DCMTK | LOCAL DCMTK | Supported ? |
-+--------+---------------------+-----------------------+-------------------+
-| Case A | NA | [ ] DCMTKConfig | YES |
-+--------+---------------------+-----------------------+-------------------+
-| Case B | NA | [X] DCMTKConfig | YES |
-+--------+---------------------+-----------------------+-------------------+
-| Case C | [ ] DCMTKConfig | NA | YES |
-+--------+---------------------+-----------------------+-------------------+
-| Case D | [X] DCMTKConfig | NA | YES |
-+--------+---------------------+-----------------------+-------------------+
-| Case E | [ ] DCMTKConfig | [ ] DCMTKConfig | YES (*) |
-+--------+---------------------+-----------------------+-------------------+
-| Case F | [X] DCMTKConfig | [ ] DCMTKConfig | NO |
-+--------+---------------------+-----------------------+-------------------+
-| Case G | [ ] DCMTKConfig | [X] DCMTKConfig | YES |
-+--------+---------------------+-----------------------+-------------------+
-| Case H | [X] DCMTKConfig | [X] DCMTKConfig | YES |
-+--------+---------------------+-----------------------+-------------------+
-
- (*) See Troubleshooting section.
-
-Legend:
-
- NA ...............: Means that no System or Local DCMTK is available
-
- [ ] DCMTKConfig ..: Means that the version of DCMTK does NOT export a DCMTKConfig.cmake file.
-
- [X] DCMTKConfig ..: Means that the version of DCMTK exports a DCMTKConfig.cmake file.
-
-
-Troubleshooting
-^^^^^^^^^^^^^^^
-
-What to do if my project finds a different version of DCMTK?
-
-Remove DCMTK entry from the CMake cache per :command:`find_package`
-documentation.
-#]=======================================================================]
-
-#
-# Written for VXL by Amitha Perera.
-# Upgraded for GDCM by Mathieu Malaterre.
-# Modified for EasyViz by Thomas Sondergaard.
-#
-
-set(_dcmtk_dir_description "The directory of DCMTK build or install tree.")
-
-# Ensure that DCMTK_DIR is set to a reasonable default value
-# so that DCMTK libraries can be found on a standard Unix distribution.
-# It also overwrite the value of DCMTK_DIR after this one has been
-# set by a successful discovery of DCMTK by the unpatched FindDCMTK.cmake module
-# distributed with CMake (as of 0167cea)
-if(NOT DCMTK_DIR OR DCMTK_DIR STREQUAL "/usr/include/dcmtk")
- set(DCMTK_DIR "/usr" CACHE PATH ${_dcmtk_dir_description} FORCE)
-endif()
-
-set(_SAVED_DCMTK_DIR ${DCMTK_DIR})
-
-#
-# Step1: Attempt to find a version of DCMTK providing a DCMTKConfig.cmake file.
-#
-if(NOT DCMTK_FIND_QUIETLY)
- message(STATUS "Trying to find DCMTK expecting DCMTKConfig.cmake")
-endif()
-find_package(DCMTK QUIET NO_MODULE)
-if(DCMTK_FOUND
- AND NOT "x" STREQUAL "x${DCMTK_LIBRARIES}"
- AND NOT "x" STREQUAL "x${DCMTK_INCLUDE_DIRS}")
-
- if(NOT DCMTK_FIND_QUIETLY)
- message(STATUS "Trying to find DCMTK expecting DCMTKConfig.cmake - ok")
- endif()
- return()
-else()
- if(NOT DCMTK_FIND_QUIETLY)
- message(STATUS "Trying to find DCMTK expecting DCMTKConfig.cmake - failed")
- endif()
-endif()
-
-if(NOT DCMTK_FIND_QUIETLY)
- message(STATUS "Trying to find DCMTK relying on FindDCMTK.cmake")
-endif()
-
-# Restore the value reset by the previous call to 'find_package(DCMTK QUIET NO_MODULE)'
-set(DCMTK_DIR ${_SAVED_DCMTK_DIR} CACHE PATH ${_dcmtk_dir_description} FORCE)
-
-
-#
-# Step2: Attempt to find a version of DCMTK that does NOT provide a DCMTKConfig.cmake file.
-#
-
-# prefer DCMTK_DIR over default system paths like /usr/lib
-if(DCMTK_DIR)
- set(CMAKE_PREFIX_PATH ${DCMTK_DIR}/lib ${CMAKE_PREFIX_PATH}) # this is given to FIND_LIBRARY or FIND_PATH
-endif()
-
-# Find all libraries, store debug and release separately
-foreach(lib
- dcmpstat
- dcmsr
- dcmsign
- dcmtls
- dcmqrdb
- dcmnet
- dcmjpeg
- dcmimage
- dcmimgle
- dcmdata
- oflog
- ofstd
- ijg12
- ijg16
- ijg8
- )
-
- # Find Release libraries
- find_library(DCMTK_${lib}_LIBRARY_RELEASE
- ${lib}
- PATHS
- ${DCMTK_DIR}/${lib}/libsrc
- ${DCMTK_DIR}/${lib}/libsrc/Release
- ${DCMTK_DIR}/${lib}/Release
- ${DCMTK_DIR}/lib
- ${DCMTK_DIR}/lib/Release
- ${DCMTK_DIR}/dcmjpeg/lib${lib}/Release
- NO_DEFAULT_PATH
- )
-
- # Find Debug libraries
- find_library(DCMTK_${lib}_LIBRARY_DEBUG
- ${lib}${DCMTK_CMAKE_DEBUG_POSTFIX}
- PATHS
- ${DCMTK_DIR}/${lib}/libsrc
- ${DCMTK_DIR}/${lib}/libsrc/Debug
- ${DCMTK_DIR}/${lib}/Debug
- ${DCMTK_DIR}/lib
- ${DCMTK_DIR}/lib/Debug
- ${DCMTK_DIR}/dcmjpeg/lib${lib}/Debug
- NO_DEFAULT_PATH
- )
-
- mark_as_advanced(DCMTK_${lib}_LIBRARY_RELEASE)
- mark_as_advanced(DCMTK_${lib}_LIBRARY_DEBUG)
-
- # Add libraries to variable according to build type
- if(DCMTK_${lib}_LIBRARY_RELEASE)
- list(APPEND DCMTK_LIBRARIES optimized ${DCMTK_${lib}_LIBRARY_RELEASE})
- endif()
-
- if(DCMTK_${lib}_LIBRARY_DEBUG)
- list(APPEND DCMTK_LIBRARIES debug ${DCMTK_${lib}_LIBRARY_DEBUG})
- endif()
-
-endforeach()
-
-set(CMAKE_THREAD_LIBS_INIT)
-if(DCMTK_oflog_LIBRARY_RELEASE OR DCMTK_oflog_LIBRARY_DEBUG)
- # Hack - Not having a DCMTKConfig.cmake file to read the settings from, we will attempt to
- # find the library in all cases.
- # Ideally, pthread library should be discovered only if DCMTK_WITH_THREADS is enabled.
- find_package(Threads)
-endif()
-
-if(CMAKE_THREAD_LIBS_INIT)
- list(APPEND DCMTK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
-endif()
-
-#
-# SPECIFIC CASE FOR DCMTK BUILD DIR as DCMTK_DIR
-# (as opposed to a DCMTK install dir)
-# Have to find the source directory.
-if(EXISTS ${DCMTK_DIR}/CMakeCache.txt)
- load_cache(${DCMTK_DIR} READ_WITH_PREFIX "EXT"
- DCMTK_SOURCE_DIR)
- if(NOT EXISTS ${EXTDCMTK_SOURCE_DIR})
- message(FATAL_ERROR
- "DCMTK build directory references
-nonexistent DCMTK source directory ${EXTDCMTK_SOURCE_DIR}")
- endif()
-endif()
-
-set(DCMTK_config_TEST_HEADER osconfig.h)
-set(DCMTK_dcmdata_TEST_HEADER dctypes.h)
-set(DCMTK_dcmimage_TEST_HEADER dicoimg.h)
-set(DCMTK_dcmimgle_TEST_HEADER dcmimage.h)
-set(DCMTK_dcmjpeg_TEST_HEADER djdecode.h)
-set(DCMTK_dcmnet_TEST_HEADER assoc.h)
-set(DCMTK_dcmpstat_TEST_HEADER dcmpstat.h)
-set(DCMTK_dcmqrdb_TEST_HEADER dcmqrdba.h)
-set(DCMTK_dcmsign_TEST_HEADER sicert.h)
-set(DCMTK_dcmsr_TEST_HEADER dsrtree.h)
-set(DCMTK_dcmtls_TEST_HEADER tlslayer.h)
-set(DCMTK_ofstd_TEST_HEADER ofstdinc.h)
-set(DCMTK_oflog_TEST_HEADER oflog.h)
-set(DCMTK_dcmjpls_TEST_HEADER djlsutil.h)
-
-set(DCMTK_INCLUDE_DIR_NAMES)
-
-foreach(dir
- config
- dcmdata
- dcmimage
- dcmimgle
- dcmjpeg
- dcmjpls
- dcmnet
- dcmpstat
- dcmqrdb
- dcmsign
- dcmsr
- dcmtls
- ofstd
- oflog)
- if(EXTDCMTK_SOURCE_DIR)
- set(SOURCE_DIR_PATH
- ${EXTDCMTK_SOURCE_DIR}/${dir}/include/dcmtk/${dir})
- endif()
- find_path(DCMTK_${dir}_INCLUDE_DIR
- ${DCMTK_${dir}_TEST_HEADER}
- PATHS
- ${DCMTK_DIR}/${dir}/include
- ${DCMTK_DIR}/${dir}
- ${DCMTK_DIR}/include/dcmtk/${dir}
- ${DCMTK_DIR}/${dir}/include/dcmtk/${dir}
- ${DCMTK_DIR}/include/${dir}
- ${SOURCE_DIR_PATH}
- )
- mark_as_advanced(DCMTK_${dir}_INCLUDE_DIR)
- list(APPEND DCMTK_INCLUDE_DIR_NAMES DCMTK_${dir}_INCLUDE_DIR)
-
- if(DCMTK_${dir}_INCLUDE_DIR)
- # add the 'include' path so eg
- #include "dcmtk/dcmimgle/dcmimage.h"
- # works
- get_filename_component(_include ${DCMTK_${dir}_INCLUDE_DIR} PATH)
- get_filename_component(_include ${_include} PATH)
- list(APPEND
- DCMTK_INCLUDE_DIRS
- ${DCMTK_${dir}_INCLUDE_DIR}
- ${_include})
- endif()
-endforeach()
-
-list(APPEND DCMTK_INCLUDE_DIRS ${DCMTK_DIR}/include)
-
-if(WIN32)
- list(APPEND DCMTK_LIBRARIES netapi32 wsock32)
-endif()
-
-if(DCMTK_ofstd_INCLUDE_DIR)
- get_filename_component(DCMTK_dcmtk_INCLUDE_DIR
- ${DCMTK_ofstd_INCLUDE_DIR}
- PATH
- CACHE)
- list(APPEND DCMTK_INCLUDE_DIRS ${DCMTK_dcmtk_INCLUDE_DIR})
- mark_as_advanced(DCMTK_dcmtk_INCLUDE_DIR)
-endif()
-
-# Compatibility: This variable is deprecated
-set(DCMTK_INCLUDE_DIR ${DCMTK_INCLUDE_DIRS})
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(DCMTK
- REQUIRED_VARS ${DCMTK_INCLUDE_DIR_NAMES} DCMTK_LIBRARIES
- FAIL_MESSAGE "Please set DCMTK_DIR and re-run configure")
-
-# Workaround bug in packaging of DCMTK 3.6.0 on Debian.
-# See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637687
-if(DCMTK_FOUND AND UNIX AND NOT APPLE)
- include(${CMAKE_CURRENT_LIST_DIR}/CheckIncludeFiles.cmake)
- set(CMAKE_REQUIRED_FLAGS )
- set(CMAKE_REQUIRED_DEFINITIONS )
- set(CMAKE_REQUIRED_INCLUDES ${DCMTK_INCLUDE_DIRS})
- set(CMAKE_REQUIRED_LIBRARIES ${DCMTK_LIBRARIES})
- set(CMAKE_REQUIRED_QUIET ${DCMTK_FIND_QUIETLY})
- check_include_files("dcmtk/config/osconfig.h;dcmtk/ofstd/ofstream.h" DCMTK_HAVE_CONFIG_H_OPTIONAL LANGUAGE CXX)
- if(NOT DCMTK_HAVE_CONFIG_H_OPTIONAL)
- set(DCMTK_DEFINITIONS "HAVE_CONFIG_H")
- endif()
-endif()
diff --git a/share/cmake-3.16/Modules/FindFLEX.cmake b/share/cmake-3.16/Modules/FindFLEX.cmake
deleted file mode 100644
index d22b7ec..0000000
--- a/share/cmake-3.16/Modules/FindFLEX.cmake
+++ /dev/null
@@ -1,221 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindFLEX
---------
-
-Find Fast Lexical Analyzer (Flex) executable and provides a macro
-to generate custom build rules
-
-
-
-The module defines the following variables:
-
-::
-
- FLEX_FOUND - True is flex executable is found
- FLEX_EXECUTABLE - the path to the flex executable
- FLEX_VERSION - the version of flex
- FLEX_LIBRARIES - The flex libraries
- FLEX_INCLUDE_DIRS - The path to the flex headers
-
-
-
-The minimum required version of flex can be specified using the
-standard syntax, e.g. :command:`find_package(FLEX 2.5.13)`
-
-
-
-If flex is found on the system, the module provides the macro:
-
-::
-
- FLEX_TARGET(Name FlexInput FlexOutput
- [COMPILE_FLAGS <string>]
- [DEFINES_FILE <string>]
- )
-
-which creates a custom command to generate the ``FlexOutput`` file from
-the ``FlexInput`` file. If ``COMPILE_FLAGS`` option is specified, the next
-parameter is added to the flex command line. If flex is configured to
-output a header file, the ``DEFINES_FILE`` option may be used to specify its
-name. Name is an alias used to get details of this custom command.
-Indeed the macro defines the following variables:
-
-::
-
- FLEX_${Name}_DEFINED - true is the macro ran successfully
- FLEX_${Name}_OUTPUTS - the source file generated by the custom rule, an
- alias for FlexOutput
- FLEX_${Name}_INPUT - the flex source file, an alias for ${FlexInput}
- FLEX_${Name}_OUTPUT_HEADER - the header flex output, if any.
-
-
-
-Flex scanners often use tokens defined by Bison: the code generated
-by Flex depends of the header generated by Bison. This module also
-defines a macro:
-
-::
-
- ADD_FLEX_BISON_DEPENDENCY(FlexTarget BisonTarget)
-
-which adds the required dependency between a scanner and a parser
-where ``FlexTarget`` and ``BisonTarget`` are the first parameters of
-respectively ``FLEX_TARGET`` and ``BISON_TARGET`` macros.
-
-::
-
- ====================================================================
- Example:
-
-
-
-::
-
- find_package(BISON)
- find_package(FLEX)
-
-
-
-::
-
- BISON_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp)
- FLEX_TARGET(MyScanner lexer.l ${CMAKE_CURRENT_BINARY_DIR}/lexer.cpp)
- ADD_FLEX_BISON_DEPENDENCY(MyScanner MyParser)
-
-
-
-::
-
- include_directories(${CMAKE_CURRENT_BINARY_DIR})
- add_executable(Foo
- Foo.cc
- ${BISON_MyParser_OUTPUTS}
- ${FLEX_MyScanner_OUTPUTS}
- )
- target_link_libraries(Foo ${FLEX_LIBRARIES})
- ====================================================================
-#]=======================================================================]
-
-find_program(FLEX_EXECUTABLE NAMES flex win_flex DOC "path to the flex executable")
-mark_as_advanced(FLEX_EXECUTABLE)
-
-find_library(FL_LIBRARY NAMES fl
- DOC "Path to the fl library")
-
-find_path(FLEX_INCLUDE_DIR FlexLexer.h
- DOC "Path to the flex headers")
-
-mark_as_advanced(FL_LIBRARY FLEX_INCLUDE_DIR)
-
-set(FLEX_INCLUDE_DIRS ${FLEX_INCLUDE_DIR})
-set(FLEX_LIBRARIES ${FL_LIBRARY})
-
-if(FLEX_EXECUTABLE)
-
- execute_process(COMMAND ${FLEX_EXECUTABLE} --version
- OUTPUT_VARIABLE FLEX_version_output
- ERROR_VARIABLE FLEX_version_error
- RESULT_VARIABLE FLEX_version_result
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(NOT ${FLEX_version_result} EQUAL 0)
- if(FLEX_FIND_REQUIRED)
- message(SEND_ERROR "Command \"${FLEX_EXECUTABLE} --version\" failed with output:\n${FLEX_version_output}\n${FLEX_version_error}")
- else()
- message("Command \"${FLEX_EXECUTABLE} --version\" failed with output:\n${FLEX_version_output}\n${FLEX_version_error}\nFLEX_VERSION will not be available")
- endif()
- else()
- # older versions of flex printed "/full/path/to/executable version X.Y"
- # newer versions use "basename(executable) X.Y"
- get_filename_component(FLEX_EXE_NAME_WE "${FLEX_EXECUTABLE}" NAME_WE)
- get_filename_component(FLEX_EXE_EXT "${FLEX_EXECUTABLE}" EXT)
- string(REGEX REPLACE "^.*${FLEX_EXE_NAME_WE}(${FLEX_EXE_EXT})?\"? (version )?([0-9]+[^ ]*)( .*)?$" "\\3"
- FLEX_VERSION "${FLEX_version_output}")
- unset(FLEX_EXE_EXT)
- unset(FLEX_EXE_NAME_WE)
- endif()
-
- #============================================================
- # FLEX_TARGET (public macro)
- #============================================================
- #
- macro(FLEX_TARGET Name Input Output)
- set(FLEX_TARGET_outputs "${Output}")
- set(FLEX_EXECUTABLE_opts "")
-
- set(FLEX_TARGET_PARAM_OPTIONS)
- set(FLEX_TARGET_PARAM_ONE_VALUE_KEYWORDS
- COMPILE_FLAGS
- DEFINES_FILE
- )
- set(FLEX_TARGET_PARAM_MULTI_VALUE_KEYWORDS)
-
- cmake_parse_arguments(
- FLEX_TARGET_ARG
- "${FLEX_TARGET_PARAM_OPTIONS}"
- "${FLEX_TARGET_PARAM_ONE_VALUE_KEYWORDS}"
- "${FLEX_TARGET_MULTI_VALUE_KEYWORDS}"
- ${ARGN}
- )
-
- set(FLEX_TARGET_usage "FLEX_TARGET(<Name> <Input> <Output> [COMPILE_FLAGS <string>] [DEFINES_FILE <string>]")
-
- if(NOT "${FLEX_TARGET_ARG_UNPARSED_ARGUMENTS}" STREQUAL "")
- message(SEND_ERROR ${FLEX_TARGET_usage})
- else()
- if(NOT "${FLEX_TARGET_ARG_COMPILE_FLAGS}" STREQUAL "")
- set(FLEX_EXECUTABLE_opts "${FLEX_TARGET_ARG_COMPILE_FLAGS}")
- separate_arguments(FLEX_EXECUTABLE_opts)
- endif()
- if(NOT "${FLEX_TARGET_ARG_DEFINES_FILE}" STREQUAL "")
- list(APPEND FLEX_TARGET_outputs "${FLEX_TARGET_ARG_DEFINES_FILE}")
- list(APPEND FLEX_EXECUTABLE_opts --header-file=${FLEX_TARGET_ARG_DEFINES_FILE})
- endif()
-
- add_custom_command(OUTPUT ${FLEX_TARGET_outputs}
- COMMAND ${FLEX_EXECUTABLE} ${FLEX_EXECUTABLE_opts} -o${Output} ${Input}
- VERBATIM
- DEPENDS ${Input}
- COMMENT "[FLEX][${Name}] Building scanner with flex ${FLEX_VERSION}"
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
-
- set(FLEX_${Name}_DEFINED TRUE)
- set(FLEX_${Name}_OUTPUTS ${Output})
- set(FLEX_${Name}_INPUT ${Input})
- set(FLEX_${Name}_COMPILE_FLAGS ${FLEX_EXECUTABLE_opts})
- if("${FLEX_TARGET_ARG_DEFINES_FILE}" STREQUAL "")
- set(FLEX_${Name}_OUTPUT_HEADER "")
- else()
- set(FLEX_${Name}_OUTPUT_HEADER ${FLEX_TARGET_ARG_DEFINES_FILE})
- endif()
- endif()
- endmacro()
- #============================================================
-
-
- #============================================================
- # ADD_FLEX_BISON_DEPENDENCY (public macro)
- #============================================================
- #
- macro(ADD_FLEX_BISON_DEPENDENCY FlexTarget BisonTarget)
-
- if(NOT FLEX_${FlexTarget}_OUTPUTS)
- message(SEND_ERROR "Flex target `${FlexTarget}' does not exist.")
- endif()
-
- if(NOT BISON_${BisonTarget}_OUTPUT_HEADER)
- message(SEND_ERROR "Bison target `${BisonTarget}' does not exist.")
- endif()
-
- set_source_files_properties(${FLEX_${FlexTarget}_OUTPUTS}
- PROPERTIES OBJECT_DEPENDS ${BISON_${BisonTarget}_OUTPUT_HEADER})
- endmacro()
- #============================================================
-
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(FLEX REQUIRED_VARS FLEX_EXECUTABLE
- VERSION_VAR FLEX_VERSION)
diff --git a/share/cmake-3.16/Modules/FindGLEW.cmake b/share/cmake-3.16/Modules/FindGLEW.cmake
deleted file mode 100644
index bd69819..0000000
--- a/share/cmake-3.16/Modules/FindGLEW.cmake
+++ /dev/null
@@ -1,342 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindGLEW
---------
-
-Find the OpenGL Extension Wrangler Library (GLEW)
-
-Input Variables
-^^^^^^^^^^^^^^^
-
-The following variables may be set to influence this module’s behavior:
-
-``GLEW_USE_STATIC_LIBS``
- to find and create :prop_tgt:`IMPORTED` target for static linkage.
-
-``GLEW_VERBOSE``
- to output a detailed log of this module.
-
-Imported Targets
-^^^^^^^^^^^^^^^^
-
-This module defines the following :ref:`Imported Targets <Imported Targets>`:
-
-
-``GLEW::glew``
- The GLEW shared library.
-``GLEW::glew_s``
- The GLEW static library, if ``GLEW_USE_STATIC_LIBS`` is set to ``TRUE``.
-``GLEW::GLEW``
- Duplicates either ``GLEW::glew`` or ``GLEW::glew_s`` based on availability.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module defines the following variables:
-
-``GLEW_INCLUDE_DIRS``
- include directories for GLEW
-``GLEW_LIBRARIES``
- libraries to link against GLEW
-``GLEW_SHARED_LIBRARIES``
- libraries to link against shared GLEW
-``GLEW_STATIC_LIBRARIES``
- libraries to link against static GLEW
-``GLEW_FOUND``
- true if GLEW has been found and can be used
-``GLEW_VERSION``
- GLEW version
-``GLEW_VERSION_MAJOR``
- GLEW major version
-``GLEW_VERSION_MINOR``
- GLEW minor version
-``GLEW_VERSION_MICRO``
- GLEW micro version
-
-#]=======================================================================]
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-
-find_package(GLEW CONFIG QUIET)
-
-if(GLEW_FOUND)
- find_package_handle_standard_args(GLEW DEFAULT_MSG GLEW_CONFIG)
- return()
-endif()
-
-if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: did not find GLEW CMake config file. Searching for libraries.")
-endif()
-
-if(APPLE)
- find_package(OpenGL QUIET)
-
- if(OpenGL_FOUND)
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: Found OpenGL Framework.")
- message(STATUS "FindGLEW: OPENGL_LIBRARIES: ${OPENGL_LIBRARIES}")
- endif()
- else()
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: could not find GLEW library.")
- endif()
- return()
- endif()
-endif()
-
-
-function(__glew_set_find_library_suffix shared_or_static)
- if((UNIX AND NOT APPLE) AND "${shared_or_static}" MATCHES "SHARED")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" PARENT_SCOPE)
- elseif((UNIX AND NOT APPLE) AND "${shared_or_static}" MATCHES "STATIC")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" PARENT_SCOPE)
- elseif(APPLE AND "${shared_or_static}" MATCHES "SHARED")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib;.so" PARENT_SCOPE)
- elseif(APPLE AND "${shared_or_static}" MATCHES "STATIC")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" PARENT_SCOPE)
- elseif(WIN32 AND "${shared_or_static}" MATCHES "SHARED")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" PARENT_SCOPE)
- elseif(WIN32 AND "${shared_or_static}" MATCHES "STATIC")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib;.dll.a" PARENT_SCOPE)
- endif()
-
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: CMAKE_FIND_LIBRARY_SUFFIXES for ${shared_or_static}: ${CMAKE_FIND_LIBRARY_SUFFIXES}")
- endif()
-endfunction()
-
-
-if(GLEW_VERBOSE)
- if(DEFINED GLEW_USE_STATIC_LIBS)
- message(STATUS "FindGLEW: GLEW_USE_STATIC_LIBS: ${GLEW_USE_STATIC_LIBS}.")
- else()
- message(STATUS "FindGLEW: GLEW_USE_STATIC_LIBS is undefined. Treated as FALSE.")
- endif()
-endif()
-
-find_path(GLEW_INCLUDE_DIR GL/glew.h)
-mark_as_advanced(GLEW_INCLUDE_DIR)
-
-set(GLEW_INCLUDE_DIRS ${GLEW_INCLUDE_DIR})
-
-if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: GLEW_INCLUDE_DIR: ${GLEW_INCLUDE_DIR}")
- message(STATUS "FindGLEW: GLEW_INCLUDE_DIRS: ${GLEW_INCLUDE_DIRS}")
-endif()
-
-if("${CMAKE_GENERATOR_PLATFORM}" MATCHES "x64" OR "${CMAKE_GENERATOR}" MATCHES "Win64")
- set(_arch "x64")
-else()
- set(_arch "Win32")
-endif()
-
-
-set(__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
-
-__glew_set_find_library_suffix(SHARED)
-
-find_library(GLEW_SHARED_LIBRARY_RELEASE
- NAMES GLEW glew glew32
- PATH_SUFFIXES lib lib64 libx32 lib/Release/${_arch}
- PATHS ENV GLEW_ROOT)
-
-find_library(GLEW_SHARED_LIBRARY_DEBUG
- NAMES GLEWd glewd glew32d
- PATH_SUFFIXES lib lib64
- PATHS ENV GLEW_ROOT)
-
-
-__glew_set_find_library_suffix(STATIC)
-
-find_library(GLEW_STATIC_LIBRARY_RELEASE
- NAMES GLEW glew glew32s
- PATH_SUFFIXES lib lib64 libx32 lib/Release/${_arch}
- PATHS ENV GLEW_ROOT)
-
-find_library(GLEW_STATIC_LIBRARY_DEBUG
- NAMES GLEWds glewds glew32ds
- PATH_SUFFIXES lib lib64
- PATHS ENV GLEW_ROOT)
-
-set(CMAKE_FIND_LIBRARY_SUFFIXES ${__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES})
-unset(__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES)
-
-include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
-
-select_library_configurations(GLEW_SHARED)
-select_library_configurations(GLEW_STATIC)
-
-if(NOT GLEW_USE_STATIC_LIBS)
- set(GLEW_LIBRARIES ${GLEW_SHARED_LIBRARY})
-else()
- set(GLEW_LIBRARIES ${GLEW_STATIC_LIBRARY})
-endif()
-
-
-if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: GLEW_SHARED_LIBRARY_RELEASE: ${GLEW_SHARED_LIBRARY_RELEASE}")
- message(STATUS "FindGLEW: GLEW_STATIC_LIBRARY_RELEASE: ${GLEW_STATIC_LIBRARY_RELEASE}")
- message(STATUS "FindGLEW: GLEW_SHARED_LIBRARY_DEBUG: ${GLEW_SHARED_LIBRARY_DEBUG}")
- message(STATUS "FindGLEW: GLEW_STATIC_LIBRARY_DEBUG: ${GLEW_STATIC_LIBRARY_DEBUG}")
- message(STATUS "FindGLEW: GLEW_SHARED_LIBRARY: ${GLEW_SHARED_LIBRARY}")
- message(STATUS "FindGLEW: GLEW_STATIC_LIBRARY: ${GLEW_STATIC_LIBRARY}")
- message(STATUS "FindGLEW: GLEW_LIBRARIES: ${GLEW_LIBRARIES}")
-endif()
-
-
-# Read version from GL/glew.h file
-if(EXISTS "${GLEW_INCLUDE_DIR}/GL/glew.h")
- file(STRINGS "${GLEW_INCLUDE_DIR}/GL/glew.h" _contents REGEX "^VERSION_.+ [0-9]+")
- if(_contents)
- string(REGEX REPLACE ".*VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" GLEW_VERSION_MAJOR "${_contents}")
- string(REGEX REPLACE ".*VERSION_MINOR[ \t]+([0-9]+).*" "\\1" GLEW_VERSION_MINOR "${_contents}")
- string(REGEX REPLACE ".*VERSION_MICRO[ \t]+([0-9]+).*" "\\1" GLEW_VERSION_MICRO "${_contents}")
- set(GLEW_VERSION "${GLEW_VERSION_MAJOR}.${GLEW_VERSION_MINOR}.${GLEW_VERSION_MICRO}")
- endif()
-endif()
-
-if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: GLEW_VERSION_MAJOR: ${GLEW_VERSION_MAJOR}")
- message(STATUS "FindGLEW: GLEW_VERSION_MINOR: ${GLEW_VERSION_MINOR}")
- message(STATUS "FindGLEW: GLEW_VERSION_MICRO: ${GLEW_VERSION_MICRO}")
- message(STATUS "FindGLEW: GLEW_VERSION: ${GLEW_VERSION}")
-endif()
-
-find_package_handle_standard_args(GLEW
- REQUIRED_VARS GLEW_INCLUDE_DIRS GLEW_LIBRARIES
- VERSION_VAR GLEW_VERSION)
-
-if(NOT GLEW_FOUND)
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: could not find GLEW library.")
- endif()
- return()
-endif()
-
-
-if(NOT TARGET GLEW::glew AND NOT GLEW_USE_STATIC_LIBS)
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: Creating GLEW::glew imported target.")
- endif()
-
- add_library(GLEW::glew UNKNOWN IMPORTED)
-
- set_target_properties(GLEW::glew
- PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
-
- if(APPLE)
- set_target_properties(GLEW::glew
- PROPERTIES INTERFACE_LINK_LIBRARIES OpenGL::GL)
- endif()
-
- if(GLEW_SHARED_LIBRARY_RELEASE)
- set_property(TARGET GLEW::glew
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
-
- set_target_properties(GLEW::glew
- PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_SHARED_LIBRARY_RELEASE}")
- endif()
-
- if(GLEW_SHARED_LIBRARY_DEBUG)
- set_property(TARGET GLEW::glew
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
-
- set_target_properties(GLEW::glew
- PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_SHARED_LIBRARY_DEBUG}")
- endif()
-
-elseif(NOT TARGET GLEW::glew_s AND GLEW_USE_STATIC_LIBS)
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: Creating GLEW::glew_s imported target.")
- endif()
-
- add_library(GLEW::glew_s UNKNOWN IMPORTED)
-
- set_target_properties(GLEW::glew_s
- PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
-
- if(APPLE)
- set_target_properties(GLEW::glew_s
- PROPERTIES INTERFACE_LINK_LIBRARIES OpenGL::GL)
- endif()
-
- if(GLEW_STATIC_LIBRARY_RELEASE)
- set_property(TARGET GLEW::glew_s
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
-
- set_target_properties(GLEW::glew_s
- PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_STATIC_LIBRARY_RELEASE}")
- endif()
-
- if(GLEW_STATIC_LIBRARY_DEBUG)
- set_property(TARGET GLEW::glew_s
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
-
- set_target_properties(GLEW::glew_s
- PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_STATIC_LIBRARY_DEBUG}")
- endif()
-endif()
-
-if(NOT TARGET GLEW::GLEW)
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: Creating GLEW::GLEW imported target.")
- endif()
-
- add_library(GLEW::GLEW UNKNOWN IMPORTED)
-
- set_target_properties(GLEW::GLEW
- PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
-
- if(APPLE)
- set_target_properties(GLEW::GLEW
- PROPERTIES INTERFACE_LINK_LIBRARIES OpenGL::GL)
- endif()
-
- if(TARGET GLEW::glew)
- if(GLEW_SHARED_LIBRARY_RELEASE)
- set_property(TARGET GLEW::GLEW
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
-
- set_target_properties(GLEW::GLEW
- PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_SHARED_LIBRARY_RELEASE}")
- endif()
-
- if(GLEW_SHARED_LIBRARY_DEBUG)
- set_property(TARGET GLEW::GLEW
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
-
- set_target_properties(GLEW::GLEW
- PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_SHARED_LIBRARY_DEBUG}")
- endif()
-
- elseif(TARGET GLEW::glew_s)
- if(GLEW_STATIC_LIBRARY_RELEASE)
- set_property(TARGET GLEW::GLEW
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
-
- set_target_properties(GLEW::GLEW
- PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_STATIC_LIBRARY_RELEASE}")
- endif()
-
- if(GLEW_STATIC_LIBRARY_DEBUG AND GLEW_USE_STATIC_LIBS)
- set_property(TARGET GLEW::GLEW
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
-
- set_target_properties(GLEW::GLEW
- PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_STATIC_LIBRARY_DEBUG}")
- endif()
-
- elseif(GLEW_VERBOSE)
- message(WARNING "FindGLEW: no `GLEW::glew` or `GLEW::glew_s` target was created. Something went wrong in FindGLEW target creation.")
- endif()
-endif()
diff --git a/share/cmake-3.16/Modules/FindGTK2.cmake b/share/cmake-3.16/Modules/FindGTK2.cmake
deleted file mode 100644
index 83091f3..0000000
--- a/share/cmake-3.16/Modules/FindGTK2.cmake
+++ /dev/null
@@ -1,954 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindGTK2
---------
-
-Find the GTK2 widget libraries and several of its
-other optional components like ``gtkmm``, ``glade``, and ``glademm``.
-
-NOTE: If you intend to use version checking, CMake 2.6.2 or later is
-
-::
-
- required.
-
-
-
-Specify one or more of the following components as you call this find
-module. See example below.
-
-::
-
- gtk
- gtkmm
- glade
- glademm
-
-
-
-The following variables will be defined for your use
-
-::
-
- GTK2_FOUND - Were all of your specified components found?
- GTK2_INCLUDE_DIRS - All include directories
- GTK2_LIBRARIES - All libraries
- GTK2_TARGETS - All imported targets
- GTK2_DEFINITIONS - Additional compiler flags
-
-
-
-::
-
- GTK2_VERSION - The version of GTK2 found (x.y.z)
- GTK2_MAJOR_VERSION - The major version of GTK2
- GTK2_MINOR_VERSION - The minor version of GTK2
- GTK2_PATCH_VERSION - The patch version of GTK2
-
-
-
-Optional variables you can define prior to calling this module:
-
-::
-
- GTK2_DEBUG - Enables verbose debugging of the module
- GTK2_ADDITIONAL_SUFFIXES - Allows defining additional directories to
- search for include files
-
-
-
-================= Example Usage:
-
-::
-
- Call find_package() once, here are some examples to pick from:
-
-
-
-::
-
- Require GTK 2.6 or later
- find_package(GTK2 2.6 REQUIRED gtk)
-
-
-
-::
-
- Require GTK 2.10 or later and Glade
- find_package(GTK2 2.10 REQUIRED gtk glade)
-
-
-
-::
-
- Search for GTK/GTKMM 2.8 or later
- find_package(GTK2 2.8 COMPONENTS gtk gtkmm)
-
-
-
-::
-
- if(GTK2_FOUND)
- include_directories(${GTK2_INCLUDE_DIRS})
- add_executable(mygui mygui.cc)
- target_link_libraries(mygui ${GTK2_LIBRARIES})
- endif()
-#]=======================================================================]
-
-# Version 1.6 (CMake 3.0)
-# * Create targets for each library
-# * Do not link libfreetype
-# Version 1.5 (CMake 2.8.12)
-# * 14236: Detect gthread library
-# Detect pangocairo on windows
-# Detect pangocairo with gtk module instead of with gtkmm
-# * 14259: Use vc100 libraries with VS 11
-# * 14260: Export a GTK2_DEFINITIONS variable to set /vd2 when appropriate
-# (i.e. MSVC)
-# * Use the optimized/debug syntax for _LIBRARY and _LIBRARIES variables when
-# appropriate. A new set of _RELEASE variables was also added.
-# * Remove GTK2_SKIP_MARK_AS_ADVANCED option, as now the variables are
-# marked as advanced by SelectLibraryConfigurations
-# * Detect gmodule, pangoft2 and pangoxft libraries
-# Version 1.4 (10/4/2012) (CMake 2.8.10)
-# * 12596: Missing paths for FindGTK2 on NetBSD
-# * 12049: Fixed detection of GTK include files in the lib folder on
-# multiarch systems.
-# Version 1.3 (11/9/2010) (CMake 2.8.4)
-# * 11429: Add support for detecting GTK2 built with Visual Studio 10.
-# Thanks to Vincent Levesque for the patch.
-# Version 1.2 (8/30/2010) (CMake 2.8.3)
-# * Merge patch for detecting gdk-pixbuf library (split off
-# from core GTK in 2.21). Thanks to Vincent Untz for the patch
-# and Ricardo Cruz for the heads up.
-# Version 1.1 (8/19/2010) (CMake 2.8.3)
-# * Add support for detecting GTK2 under macports (thanks to Gary Kramlich)
-# Version 1.0 (8/12/2010) (CMake 2.8.3)
-# * Add support for detecting new pangommconfig.h header file
-# (Thanks to Sune Vuorela & the Debian Project for the patch)
-# * Add support for detecting fontconfig.h header
-# * Call find_package(Freetype) since it's required
-# * Add support for allowing users to add additional library directories
-# via the GTK2_ADDITIONAL_SUFFIXES variable (kind of a future-kludge in
-# case the GTK developers change versions on any of the directories in the
-# future).
-# Version 0.8 (1/4/2010)
-# * Get module working under MacOSX fink by adding /sw/include, /sw/lib
-# to PATHS and the gobject library
-# Version 0.7 (3/22/09)
-# * Checked into CMake CVS
-# * Added versioning support
-# * Module now defaults to searching for GTK if COMPONENTS not specified.
-# * Added HKCU prior to HKLM registry key and GTKMM specific environment
-# variable as per mailing list discussion.
-# * Added lib64 to include search path and a few other search paths where GTK
-# may be installed on Unix systems.
-# * Switched to lowercase CMake commands
-# * Prefaced internal variables with _GTK2 to prevent collision
-# * Changed internal macros to functions
-# * Enhanced documentation
-# Version 0.6 (1/8/08)
-# Added GTK2_SKIP_MARK_AS_ADVANCED option
-# Version 0.5 (12/19/08)
-# Second release to cmake mailing list
-
-#=============================================================
-# _GTK2_GET_VERSION
-# Internal function to parse the version number in gtkversion.h
-# _OUT_major = Major version number
-# _OUT_minor = Minor version number
-# _OUT_micro = Micro version number
-# _gtkversion_hdr = Header file to parse
-#=============================================================
-
-include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
-
-function(_GTK2_GET_VERSION _OUT_major _OUT_minor _OUT_micro _gtkversion_hdr)
- file(STRINGS ${_gtkversion_hdr} _contents REGEX "#define GTK_M[A-Z]+_VERSION[ \t]+")
- if(_contents)
- string(REGEX REPLACE ".*#define GTK_MAJOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_major} "${_contents}")
- string(REGEX REPLACE ".*#define GTK_MINOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_minor} "${_contents}")
- string(REGEX REPLACE ".*#define GTK_MICRO_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_micro} "${_contents}")
-
- if(NOT ${_OUT_major} MATCHES "[0-9]+")
- message(FATAL_ERROR "Version parsing failed for GTK2_MAJOR_VERSION!")
- endif()
- if(NOT ${_OUT_minor} MATCHES "[0-9]+")
- message(FATAL_ERROR "Version parsing failed for GTK2_MINOR_VERSION!")
- endif()
- if(NOT ${_OUT_micro} MATCHES "[0-9]+")
- message(FATAL_ERROR "Version parsing failed for GTK2_MICRO_VERSION!")
- endif()
-
- set(${_OUT_major} ${${_OUT_major}} PARENT_SCOPE)
- set(${_OUT_minor} ${${_OUT_minor}} PARENT_SCOPE)
- set(${_OUT_micro} ${${_OUT_micro}} PARENT_SCOPE)
- else()
- message(FATAL_ERROR "Include file ${_gtkversion_hdr} does not exist")
- endif()
-endfunction()
-
-
-#=============================================================
-# _GTK2_SIGCXX_GET_VERSION
-# Internal function to parse the version number in
-# sigc++config.h
-# _OUT_major = Major version number
-# _OUT_minor = Minor version number
-# _OUT_micro = Micro version number
-# _sigcxxversion_hdr = Header file to parse
-#=============================================================
-
-function(_GTK2_SIGCXX_GET_VERSION _OUT_major _OUT_minor _OUT_micro _sigcxxversion_hdr)
- file(STRINGS ${_sigcxxversion_hdr} _contents REGEX "#define SIGCXX_M[A-Z]+_VERSION[ \t]+")
- if(_contents)
- string(REGEX REPLACE ".*#define SIGCXX_MAJOR_VERSION[ \t]+([0-9]+).*" "\\1" ${_OUT_major} "${_contents}")
- string(REGEX REPLACE ".*#define SIGCXX_MINOR_VERSION[ \t]+([0-9]+).*" "\\1" ${_OUT_minor} "${_contents}")
- string(REGEX REPLACE ".*#define SIGCXX_MICRO_VERSION[ \t]+([0-9]+).*" "\\1" ${_OUT_micro} "${_contents}")
-
- if(NOT ${_OUT_major} MATCHES "[0-9]+")
- message(FATAL_ERROR "Version parsing failed for SIGCXX_MAJOR_VERSION!")
- endif()
- if(NOT ${_OUT_minor} MATCHES "[0-9]+")
- message(FATAL_ERROR "Version parsing failed for SIGCXX_MINOR_VERSION!")
- endif()
- if(NOT ${_OUT_micro} MATCHES "[0-9]+")
- message(FATAL_ERROR "Version parsing failed for SIGCXX_MICRO_VERSION!")
- endif()
-
- set(${_OUT_major} ${${_OUT_major}} PARENT_SCOPE)
- set(${_OUT_minor} ${${_OUT_minor}} PARENT_SCOPE)
- set(${_OUT_micro} ${${_OUT_micro}} PARENT_SCOPE)
- else()
- # The header does not have the version macros; assume it is ``0.0.0``.
- set(${_OUT_major} 0)
- set(${_OUT_minor} 0)
- set(${_OUT_micro} 0)
- endif()
-endfunction()
-
-
-#=============================================================
-# _GTK2_FIND_INCLUDE_DIR
-# Internal function to find the GTK include directories
-# _var = variable to set (_INCLUDE_DIR is appended)
-# _hdr = header file to look for
-#=============================================================
-function(_GTK2_FIND_INCLUDE_DIR _var _hdr)
-
- if(GTK2_DEBUG)
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "_GTK2_FIND_INCLUDE_DIR( ${_var} ${_hdr} )")
- endif()
-
- set(_gtk_packages
- # If these ever change, things will break.
- ${GTK2_ADDITIONAL_SUFFIXES}
- glibmm-2.4
- glib-2.0
- atk-1.0
- atkmm-1.6
- cairo
- cairomm-1.0
- gdk-pixbuf-2.0
- gdkmm-2.4
- giomm-2.4
- gtk-2.0
- gtkmm-2.4
- libglade-2.0
- libglademm-2.4
- harfbuzz
- pango-1.0
- pangomm-1.4
- sigc++-2.0
- )
-
- #
- # NOTE: The following suffixes cause searching for header files in both of
- # these directories:
- # /usr/include/<pkg>
- # /usr/lib/<pkg>/include
- #
-
- set(_suffixes)
- foreach(_d ${_gtk_packages})
- list(APPEND _suffixes ${_d})
- list(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include
- endforeach()
-
- if(GTK2_DEBUG)
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "include suffixes = ${_suffixes}")
- endif()
-
- if(CMAKE_LIBRARY_ARCHITECTURE)
- set(_gtk2_arch_dir /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE})
- if(GTK2_DEBUG)
- message(STATUS "Adding ${_gtk2_arch_dir} to search path for multiarch support")
- endif()
- endif()
- find_path(GTK2_${_var}_INCLUDE_DIR ${_hdr}
- PATHS
- ${_gtk2_arch_dir}
- /usr/local/libx32
- /usr/local/lib64
- /usr/local/lib
- /usr/libx32
- /usr/lib64
- /usr/lib
- /opt/gnome/include
- /opt/gnome/lib
- /opt/openwin/include
- /usr/openwin/lib
- /sw/lib
- /opt/local/lib
- /usr/pkg/lib
- /usr/pkg/include/glib
- $ENV{GTKMM_BASEPATH}/include
- $ENV{GTKMM_BASEPATH}/lib
- [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/include
- [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/include
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
- PATH_SUFFIXES
- ${_suffixes}
- )
- mark_as_advanced(GTK2_${_var}_INCLUDE_DIR)
-
- if(GTK2_${_var}_INCLUDE_DIR)
- set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${GTK2_${_var}_INCLUDE_DIR} PARENT_SCOPE)
- endif()
-
-endfunction()
-
-#=============================================================
-# _GTK2_FIND_LIBRARY
-# Internal function to find libraries packaged with GTK2
-# _var = library variable to create (_LIBRARY is appended)
-#=============================================================
-function(_GTK2_FIND_LIBRARY _var _lib _expand_vc _append_version)
-
- if(GTK2_DEBUG)
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "_GTK2_FIND_LIBRARY( ${_var} ${_lib} ${_expand_vc} ${_append_version} )")
- endif()
-
- # Not GTK versions per se but the versions encoded into Windows
- # import libraries (GtkMM 2.14.1 has a gtkmm-vc80-2_4.lib for example)
- # Also the MSVC libraries use _ for . (this is handled below)
- set(_versions 2.20 2.18 2.16 2.14 2.12
- 2.10 2.8 2.6 2.4 2.2 2.0
- 1.20 1.18 1.16 1.14 1.12
- 1.10 1.8 1.6 1.4 1.2 1.0)
-
- set(_library)
- set(_library_d)
-
- set(_library ${_lib})
-
- if(_expand_vc AND MSVC)
- # Add vc80/vc90/vc100 midfixes
- if(MSVC_TOOLSET_VERSION LESS 110)
- set(_library ${_library}-vc${MSVC_TOOLSET_VERSION})
- else()
- # Up to gtkmm-win 2.22.0-2 there are no vc110 libraries but vc100 can be used
- set(_library ${_library}-vc100)
- endif()
- set(_library_d ${_library}-d)
- endif()
-
- if(GTK2_DEBUG)
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "After midfix addition = ${_library} and ${_library_d}")
- endif()
-
- set(_lib_list)
- set(_libd_list)
- if(_append_version)
- foreach(_ver ${_versions})
- list(APPEND _lib_list "${_library}-${_ver}")
- list(APPEND _libd_list "${_library_d}-${_ver}")
- endforeach()
- else()
- set(_lib_list ${_library})
- set(_libd_list ${_library_d})
- endif()
-
- if(GTK2_DEBUG)
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "library list = ${_lib_list} and library debug list = ${_libd_list}")
- endif()
-
- # For some silly reason the MSVC libraries use _ instead of .
- # in the version fields
- if(_expand_vc AND MSVC)
- set(_no_dots_lib_list)
- set(_no_dots_libd_list)
- foreach(_l ${_lib_list})
- string(REPLACE "." "_" _no_dots_library ${_l})
- list(APPEND _no_dots_lib_list ${_no_dots_library})
- endforeach()
- # And for debug
- set(_no_dots_libsd_list)
- foreach(_l ${_libd_list})
- string(REPLACE "." "_" _no_dots_libraryd ${_l})
- list(APPEND _no_dots_libd_list ${_no_dots_libraryd})
- endforeach()
-
- # Copy list back to original names
- set(_lib_list ${_no_dots_lib_list})
- set(_libd_list ${_no_dots_libd_list})
- endif()
-
- if(GTK2_DEBUG)
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "While searching for GTK2_${_var}_LIBRARY, our proposed library list is ${_lib_list}")
- endif()
-
- find_library(GTK2_${_var}_LIBRARY_RELEASE
- NAMES ${_lib_list}
- PATHS
- /opt/gnome/lib
- /usr/openwin/lib
- $ENV{GTKMM_BASEPATH}/lib
- [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
- )
-
- if(_expand_vc AND MSVC)
- if(GTK2_DEBUG)
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "While searching for GTK2_${_var}_LIBRARY_DEBUG our proposed library list is ${_libd_list}")
- endif()
-
- find_library(GTK2_${_var}_LIBRARY_DEBUG
- NAMES ${_libd_list}
- PATHS
- $ENV{GTKMM_BASEPATH}/lib
- [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
- )
- endif()
-
- select_library_configurations(GTK2_${_var})
-
- set(GTK2_${_var}_LIBRARY ${GTK2_${_var}_LIBRARY} PARENT_SCOPE)
- set(GTK2_${_var}_FOUND ${GTK2_${_var}_FOUND} PARENT_SCOPE)
-
- if(GTK2_${_var}_FOUND)
- set(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${GTK2_${_var}_LIBRARY})
- set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE)
- endif()
-
- if(GTK2_DEBUG)
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "GTK2_${_var}_LIBRARY_RELEASE = \"${GTK2_${_var}_LIBRARY_RELEASE}\"")
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "GTK2_${_var}_LIBRARY_DEBUG = \"${GTK2_${_var}_LIBRARY_DEBUG}\"")
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "GTK2_${_var}_LIBRARY = \"${GTK2_${_var}_LIBRARY}\"")
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "GTK2_${_var}_FOUND = \"${GTK2_${_var}_FOUND}\"")
- endif()
-
-endfunction()
-
-
-function(_GTK2_ADD_TARGET_DEPENDS_INTERNAL _var _property)
- if(GTK2_DEBUG)
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "_GTK2_ADD_TARGET_DEPENDS_INTERNAL( ${_var} ${_property} )")
- endif()
-
- string(TOLOWER "${_var}" _basename)
-
- if (TARGET GTK2::${_basename})
- foreach(_depend ${ARGN})
- set(_valid_depends)
- if (TARGET GTK2::${_depend})
- list(APPEND _valid_depends GTK2::${_depend})
- endif()
- if (_valid_depends)
- set_property(TARGET GTK2::${_basename} APPEND PROPERTY ${_property} "${_valid_depends}")
- endif()
- set(_valid_depends)
- endforeach()
- endif()
-endfunction()
-
-function(_GTK2_ADD_TARGET_DEPENDS _var)
- if(GTK2_DEBUG)
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "_GTK2_ADD_TARGET_DEPENDS( ${_var} )")
- endif()
-
- string(TOLOWER "${_var}" _basename)
-
- if(TARGET GTK2::${_basename})
- get_target_property(_configs GTK2::${_basename} IMPORTED_CONFIGURATIONS)
- _GTK2_ADD_TARGET_DEPENDS_INTERNAL(${_var} INTERFACE_LINK_LIBRARIES ${ARGN})
- foreach(_config ${_configs})
- _GTK2_ADD_TARGET_DEPENDS_INTERNAL(${_var} IMPORTED_LINK_INTERFACE_LIBRARIES_${_config} ${ARGN})
- endforeach()
- endif()
-endfunction()
-
-function(_GTK2_ADD_TARGET_INCLUDE_DIRS _var)
- if(GTK2_DEBUG)
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "_GTK2_ADD_TARGET_INCLUDE_DIRS( ${_var} )")
- endif()
-
- string(TOLOWER "${_var}" _basename)
-
- if(TARGET GTK2::${_basename})
- foreach(_include ${ARGN})
- set_property(TARGET GTK2::${_basename} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${_include}")
- endforeach()
- endif()
-endfunction()
-
-#=============================================================
-# _GTK2_ADD_TARGET
-# Internal function to create targets for GTK2
-# _var = target to create
-#=============================================================
-function(_GTK2_ADD_TARGET _var)
- if(GTK2_DEBUG)
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "_GTK2_ADD_TARGET( ${_var} )")
- endif()
-
- string(TOLOWER "${_var}" _basename)
-
- cmake_parse_arguments(_${_var} "" "" "GTK2_DEPENDS;GTK2_OPTIONAL_DEPENDS;OPTIONAL_INCLUDES" ${ARGN})
-
- if(GTK2_${_var}_FOUND)
- if(NOT TARGET GTK2::${_basename})
- # Do not create the target if dependencies are missing
- foreach(_dep ${_${_var}_GTK2_DEPENDS})
- if(NOT TARGET GTK2::${_dep})
- return()
- endif()
- endforeach()
-
- add_library(GTK2::${_basename} UNKNOWN IMPORTED)
-
- if(GTK2_${_var}_LIBRARY_RELEASE)
- set_property(TARGET GTK2::${_basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
- set_property(TARGET GTK2::${_basename} PROPERTY IMPORTED_LOCATION_RELEASE "${GTK2_${_var}_LIBRARY_RELEASE}" )
- endif()
-
- if(GTK2_${_var}_LIBRARY_DEBUG)
- set_property(TARGET GTK2::${_basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
- set_property(TARGET GTK2::${_basename} PROPERTY IMPORTED_LOCATION_DEBUG "${GTK2_${_var}_LIBRARY_DEBUG}" )
- endif()
-
- if(GTK2_${_var}_INCLUDE_DIR)
- set_property(TARGET GTK2::${_basename} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${GTK2_${_var}_INCLUDE_DIR}")
- endif()
-
- if(GTK2_${_var}CONFIG_INCLUDE_DIR AND NOT "x${GTK2_${_var}CONFIG_INCLUDE_DIR}" STREQUAL "x${GTK2_${_var}_INCLUDE_DIR}")
- set_property(TARGET GTK2::${_basename} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${GTK2_${_var}CONFIG_INCLUDE_DIR}")
- endif()
-
- if(GTK2_DEFINITIONS)
- set_property(TARGET GTK2::${_basename} PROPERTY INTERFACE_COMPILE_DEFINITIONS "${GTK2_DEFINITIONS}")
- endif()
-
- if(_${_var}_GTK2_DEPENDS)
- _GTK2_ADD_TARGET_DEPENDS(${_var} ${_${_var}_GTK2_DEPENDS} ${_${_var}_GTK2_OPTIONAL_DEPENDS})
- endif()
-
- if(_${_var}_OPTIONAL_INCLUDES)
- foreach(_D ${_${_var}_OPTIONAL_INCLUDES})
- if(_D)
- _GTK2_ADD_TARGET_INCLUDE_DIRS(${_var} ${_D})
- endif()
- endforeach()
- endif()
- endif()
-
- set(GTK2_TARGETS ${GTK2_TARGETS} GTK2::${_basename})
- set(GTK2_TARGETS ${GTK2_TARGETS} PARENT_SCOPE)
-
- if(GTK2_USE_IMPORTED_TARGETS)
- set(GTK2_${_var}_LIBRARY GTK2::${_basename} PARENT_SCOPE)
- endif()
-
- endif()
-endfunction()
-
-
-
-#=============================================================
-
-#
-# main()
-#
-
-set(GTK2_FOUND)
-set(GTK2_INCLUDE_DIRS)
-set(GTK2_LIBRARIES)
-set(GTK2_TARGETS)
-set(GTK2_DEFINITIONS)
-
-if(NOT GTK2_FIND_COMPONENTS)
- # Assume they only want GTK
- set(GTK2_FIND_COMPONENTS gtk)
-endif()
-
-#
-# If specified, enforce version number
-#
-if(GTK2_FIND_VERSION)
- set(GTK2_FAILED_VERSION_CHECK true)
- if(GTK2_DEBUG)
- message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
- "Searching for version ${GTK2_FIND_VERSION}")
- endif()
- _GTK2_FIND_INCLUDE_DIR(GTK gtk/gtk.h)
- if(GTK2_GTK_INCLUDE_DIR)
- _GTK2_GET_VERSION(GTK2_MAJOR_VERSION
- GTK2_MINOR_VERSION
- GTK2_PATCH_VERSION
- ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h)
- set(GTK2_VERSION
- ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION})
- if(GTK2_FIND_VERSION_EXACT)
- if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION)
- set(GTK2_FAILED_VERSION_CHECK false)
- endif()
- else()
- if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION OR
- GTK2_VERSION VERSION_GREATER GTK2_FIND_VERSION)
- set(GTK2_FAILED_VERSION_CHECK false)
- endif()
- endif()
- else()
- # If we can't find the GTK include dir, we can't do version checking
- if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY)
- message(FATAL_ERROR "Could not find GTK2 include directory")
- endif()
- return()
- endif()
-
- if(GTK2_FAILED_VERSION_CHECK)
- if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY)
- if(GTK2_FIND_VERSION_EXACT)
- message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, version ${GTK2_FIND_VERSION} is needed exactly.")
- else()
- message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, at least version ${GTK2_FIND_VERSION} is required")
- endif()
- endif()
-
- # If the version check fails, exit out of the module here
- return()
- endif()
-endif()
-
-#
-# On MSVC, according to https://wiki.gnome.org/gtkmm/MSWindows, the /vd2 flag needs to be
-# passed to the compiler in order to use gtkmm
-#
-if(MSVC)
- foreach(_GTK2_component ${GTK2_FIND_COMPONENTS})
- if(_GTK2_component STREQUAL "gtkmm")
- set(GTK2_DEFINITIONS "/vd2")
- elseif(_GTK2_component STREQUAL "glademm")
- set(GTK2_DEFINITIONS "/vd2")
- endif()
- endforeach()
-endif()
-
-#
-# Find all components
-#
-
-find_package(Freetype QUIET)
-if(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2)
- list(APPEND GTK2_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2})
-endif()
-
-foreach(_GTK2_component ${GTK2_FIND_COMPONENTS})
- if(_GTK2_component STREQUAL "gtk")
- # Left for compatibility with previous versions.
- _GTK2_FIND_INCLUDE_DIR(FONTCONFIG fontconfig/fontconfig.h)
- _GTK2_FIND_INCLUDE_DIR(X11 X11/Xlib.h)
-
- _GTK2_FIND_INCLUDE_DIR(GLIB glib.h)
- _GTK2_FIND_INCLUDE_DIR(GLIBCONFIG glibconfig.h)
- _GTK2_FIND_LIBRARY (GLIB glib false true)
- _GTK2_ADD_TARGET (GLIB)
-
- _GTK2_FIND_INCLUDE_DIR(GOBJECT glib-object.h)
- _GTK2_FIND_LIBRARY (GOBJECT gobject false true)
- _GTK2_ADD_TARGET (GOBJECT GTK2_DEPENDS glib)
-
- _GTK2_FIND_INCLUDE_DIR(ATK atk/atk.h)
- _GTK2_FIND_LIBRARY (ATK atk false true)
- _GTK2_ADD_TARGET (ATK GTK2_DEPENDS gobject glib)
-
- _GTK2_FIND_LIBRARY (GIO gio false true)
- _GTK2_ADD_TARGET (GIO GTK2_DEPENDS gobject glib)
-
- _GTK2_FIND_LIBRARY (GTHREAD gthread false true)
- _GTK2_ADD_TARGET (GTHREAD GTK2_DEPENDS glib)
-
- _GTK2_FIND_LIBRARY (GMODULE gmodule false true)
- _GTK2_ADD_TARGET (GMODULE GTK2_DEPENDS glib)
-
- _GTK2_FIND_INCLUDE_DIR(GDK_PIXBUF gdk-pixbuf/gdk-pixbuf.h)
- _GTK2_FIND_LIBRARY (GDK_PIXBUF gdk_pixbuf false true)
- _GTK2_ADD_TARGET (GDK_PIXBUF GTK2_DEPENDS gobject glib)
-
- _GTK2_FIND_INCLUDE_DIR(CAIRO cairo.h)
- _GTK2_FIND_LIBRARY (CAIRO cairo false false)
- _GTK2_ADD_TARGET (CAIRO)
-
- _GTK2_FIND_INCLUDE_DIR(PANGO pango/pango.h)
- _GTK2_FIND_LIBRARY (PANGO pango false true)
- _GTK2_ADD_TARGET (PANGO GTK2_DEPENDS gobject glib)
-
- _GTK2_FIND_INCLUDE_DIR(HARFBUZZ hb.h)
-
- _GTK2_FIND_LIBRARY (PANGOCAIRO pangocairo false true)
- _GTK2_ADD_TARGET (PANGOCAIRO GTK2_DEPENDS pango cairo gobject glib)
-
- _GTK2_FIND_LIBRARY (PANGOFT2 pangoft2 false true)
- _GTK2_ADD_TARGET (PANGOFT2 GTK2_DEPENDS pango gobject glib
- OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
- ${GTK2_FONTCONFIG_INCLUDE_DIR}
- ${GTK2_X11_INCLUDE_DIR})
-
- _GTK2_FIND_LIBRARY (PANGOXFT pangoxft false true)
- _GTK2_ADD_TARGET (PANGOXFT GTK2_DEPENDS pangoft2 pango gobject glib
- OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
- ${GTK2_FONTCONFIG_INCLUDE_DIR}
- ${GTK2_X11_INCLUDE_DIR})
-
- _GTK2_FIND_INCLUDE_DIR(GDK gdk/gdk.h)
- _GTK2_FIND_INCLUDE_DIR(GDKCONFIG gdkconfig.h)
- if(UNIX)
- if(APPLE)
- _GTK2_FIND_LIBRARY (GDK gdk-quartz false true)
- endif()
- _GTK2_FIND_LIBRARY (GDK gdk-x11 false true)
- else()
- _GTK2_FIND_LIBRARY (GDK gdk-win32 false true)
- endif()
- _GTK2_ADD_TARGET (GDK GTK2_DEPENDS pango gdk_pixbuf gobject glib
- GTK2_OPTIONAL_DEPENDS pangocairo cairo)
-
- _GTK2_FIND_INCLUDE_DIR(GTK gtk/gtk.h)
- if(UNIX)
- if(APPLE)
- _GTK2_FIND_LIBRARY (GTK gtk-quartz false true)
- endif()
- _GTK2_FIND_LIBRARY (GTK gtk-x11 false true)
- else()
- _GTK2_FIND_LIBRARY (GTK gtk-win32 false true)
- endif()
- _GTK2_ADD_TARGET (GTK GTK2_DEPENDS gdk atk pangoft2 pango gdk_pixbuf gthread gobject glib
- GTK2_OPTIONAL_DEPENDS gio pangocairo cairo)
-
- elseif(_GTK2_component STREQUAL "gtkmm")
-
- _GTK2_FIND_INCLUDE_DIR(SIGC++ sigc++/sigc++.h)
- _GTK2_FIND_INCLUDE_DIR(SIGC++CONFIG sigc++config.h)
- _GTK2_FIND_LIBRARY (SIGC++ sigc true true)
- _GTK2_ADD_TARGET (SIGC++)
- # Since sigc++ 2.5.1 c++11 support is required
- if(GTK2_SIGC++CONFIG_INCLUDE_DIR)
- _GTK2_SIGCXX_GET_VERSION(GTK2_SIGC++_VERSION_MAJOR
- GTK2_SIGC++_VERSION_MINOR
- GTK2_SIGC++_VERSION_MICRO
- ${GTK2_SIGC++CONFIG_INCLUDE_DIR}/sigc++config.h)
- if(NOT ${GTK2_SIGC++_VERSION_MAJOR}.${GTK2_SIGC++_VERSION_MINOR}.${GTK2_SIGC++_VERSION_MICRO} VERSION_LESS 2.5.1)
- # These are the features needed by clients in order to include the
- # project headers:
- set_property(TARGET GTK2::sigc++
- PROPERTY INTERFACE_COMPILE_FEATURES cxx_alias_templates
- cxx_auto_type
- cxx_decltype
- cxx_deleted_functions
- cxx_noexcept
- cxx_nullptr
- cxx_right_angle_brackets
- cxx_rvalue_references
- cxx_variadic_templates)
- endif()
- endif()
-
- _GTK2_FIND_INCLUDE_DIR(GLIBMM glibmm.h)
- _GTK2_FIND_INCLUDE_DIR(GLIBMMCONFIG glibmmconfig.h)
- _GTK2_FIND_LIBRARY (GLIBMM glibmm true true)
- _GTK2_ADD_TARGET (GLIBMM GTK2_DEPENDS gobject sigc++ glib)
-
- _GTK2_FIND_INCLUDE_DIR(GIOMM giomm.h)
- _GTK2_FIND_INCLUDE_DIR(GIOMMCONFIG giommconfig.h)
- _GTK2_FIND_LIBRARY (GIOMM giomm true true)
- _GTK2_ADD_TARGET (GIOMM GTK2_DEPENDS gio glibmm gobject sigc++ glib)
-
- _GTK2_FIND_INCLUDE_DIR(ATKMM atkmm.h)
- _GTK2_FIND_LIBRARY (ATKMM atkmm true true)
- _GTK2_ADD_TARGET (ATKMM GTK2_DEPENDS atk glibmm gobject sigc++ glib)
-
- _GTK2_FIND_INCLUDE_DIR(CAIROMM cairomm/cairomm.h)
- _GTK2_FIND_INCLUDE_DIR(CAIROMMCONFIG cairommconfig.h)
- _GTK2_FIND_LIBRARY (CAIROMM cairomm true true)
- _GTK2_ADD_TARGET (CAIROMM GTK2_DEPENDS cairo sigc++
- OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
- ${GTK2_FONTCONFIG_INCLUDE_DIR}
- ${GTK2_X11_INCLUDE_DIR})
-
- _GTK2_FIND_INCLUDE_DIR(PANGOMM pangomm.h)
- _GTK2_FIND_INCLUDE_DIR(PANGOMMCONFIG pangommconfig.h)
- _GTK2_FIND_LIBRARY (PANGOMM pangomm true true)
- _GTK2_ADD_TARGET (PANGOMM GTK2_DEPENDS glibmm sigc++ pango gobject glib
- GTK2_OPTIONAL_DEPENDS cairomm pangocairo cairo
- OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
- ${GTK2_FONTCONFIG_INCLUDE_DIR}
- ${GTK2_X11_INCLUDE_DIR})
-
- _GTK2_FIND_INCLUDE_DIR(GDKMM gdkmm.h)
- _GTK2_FIND_INCLUDE_DIR(GDKMMCONFIG gdkmmconfig.h)
- _GTK2_FIND_LIBRARY (GDKMM gdkmm true true)
- _GTK2_ADD_TARGET (GDKMM GTK2_DEPENDS pangomm gtk glibmm sigc++ gdk atk pangoft2 gdk_pixbuf pango gobject glib
- GTK2_OPTIONAL_DEPENDS giomm cairomm gio pangocairo cairo
- OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
- ${GTK2_FONTCONFIG_INCLUDE_DIR}
- ${GTK2_X11_INCLUDE_DIR})
-
- _GTK2_FIND_INCLUDE_DIR(GTKMM gtkmm.h)
- _GTK2_FIND_INCLUDE_DIR(GTKMMCONFIG gtkmmconfig.h)
- _GTK2_FIND_LIBRARY (GTKMM gtkmm true true)
- _GTK2_ADD_TARGET (GTKMM GTK2_DEPENDS atkmm gdkmm pangomm gtk glibmm sigc++ gdk atk pangoft2 gdk_pixbuf pango gthread gobject glib
- GTK2_OPTIONAL_DEPENDS giomm cairomm gio pangocairo cairo
- OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
- ${GTK2_FONTCONFIG_INCLUDE_DIR}
- ${GTK2_X11_INCLUDE_DIR})
-
- elseif(_GTK2_component STREQUAL "glade")
-
- _GTK2_FIND_INCLUDE_DIR(GLADE glade/glade.h)
- _GTK2_FIND_LIBRARY (GLADE glade false true)
- _GTK2_ADD_TARGET (GLADE GTK2_DEPENDS gtk gdk atk gio pangoft2 gdk_pixbuf pango gobject glib
- GTK2_OPTIONAL_DEPENDS pangocairo cairo
- OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
- ${GTK2_FONTCONFIG_INCLUDE_DIR}
- ${GTK2_X11_INCLUDE_DIR})
-
- elseif(_GTK2_component STREQUAL "glademm")
-
- _GTK2_FIND_INCLUDE_DIR(GLADEMM libglademm.h)
- _GTK2_FIND_INCLUDE_DIR(GLADEMMCONFIG libglademmconfig.h)
- _GTK2_FIND_LIBRARY (GLADEMM glademm true true)
- _GTK2_ADD_TARGET (GLADEMM GTK2_DEPENDS gtkmm glade atkmm gdkmm giomm pangomm glibmm sigc++ gtk gdk atk pangoft2 gdk_pixbuf pango gthread gobject glib
- GTK2_OPTIONAL_DEPENDS giomm cairomm gio pangocairo cairo
- OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
- ${GTK2_FONTCONFIG_INCLUDE_DIR}
- ${GTK2_X11_INCLUDE_DIR})
-
- else()
- message(FATAL_ERROR "Unknown GTK2 component ${_component}")
- endif()
-endforeach()
-
-#
-# Solve for the GTK2 version if we haven't already
-#
-if(NOT GTK2_FIND_VERSION AND GTK2_GTK_INCLUDE_DIR)
- _GTK2_GET_VERSION(GTK2_MAJOR_VERSION
- GTK2_MINOR_VERSION
- GTK2_PATCH_VERSION
- ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h)
- set(GTK2_VERSION ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION})
-endif()
-
-#
-# Try to enforce components
-#
-
-set(_GTK2_did_we_find_everything true) # This gets set to GTK2_FOUND
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-
-foreach(_GTK2_component ${GTK2_FIND_COMPONENTS})
- string(TOUPPER ${_GTK2_component} _COMPONENT_UPPER)
-
- set(GTK2_${_COMPONENT_UPPER}_FIND_QUIETLY ${GTK2_FIND_QUIETLY})
-
- if(_GTK2_component STREQUAL "gtk")
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtk libraries were not found."
- GTK2_GTK_LIBRARY
- GTK2_GTK_INCLUDE_DIR
-
- GTK2_GDK_INCLUDE_DIR
- GTK2_GDKCONFIG_INCLUDE_DIR
- GTK2_GDK_LIBRARY
-
- GTK2_GLIB_INCLUDE_DIR
- GTK2_GLIBCONFIG_INCLUDE_DIR
- GTK2_GLIB_LIBRARY
- )
- elseif(_GTK2_component STREQUAL "gtkmm")
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtkmm libraries were not found."
- GTK2_GTKMM_LIBRARY
- GTK2_GTKMM_INCLUDE_DIR
- GTK2_GTKMMCONFIG_INCLUDE_DIR
-
- GTK2_GDKMM_INCLUDE_DIR
- GTK2_GDKMMCONFIG_INCLUDE_DIR
- GTK2_GDKMM_LIBRARY
-
- GTK2_GLIBMM_INCLUDE_DIR
- GTK2_GLIBMMCONFIG_INCLUDE_DIR
- GTK2_GLIBMM_LIBRARY
-
- FREETYPE_INCLUDE_DIR_ft2build
- FREETYPE_INCLUDE_DIR_freetype2
- )
- elseif(_GTK2_component STREQUAL "glade")
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glade library was not found."
- GTK2_GLADE_LIBRARY
- GTK2_GLADE_INCLUDE_DIR
- )
- elseif(_GTK2_component STREQUAL "glademm")
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glademm library was not found."
- GTK2_GLADEMM_LIBRARY
- GTK2_GLADEMM_INCLUDE_DIR
- GTK2_GLADEMMCONFIG_INCLUDE_DIR
- )
- endif()
-
- if(NOT GTK2_${_COMPONENT_UPPER}_FOUND)
- set(_GTK2_did_we_find_everything false)
- endif()
-endforeach()
-
-if(GTK2_USE_IMPORTED_TARGETS)
- set(GTK2_LIBRARIES ${GTK2_TARGETS})
-endif()
-
-
-if(_GTK2_did_we_find_everything AND NOT GTK2_VERSION_CHECK_FAILED)
- set(GTK2_FOUND true)
-else()
- # Unset our variables.
- set(GTK2_FOUND false)
- set(GTK2_VERSION)
- set(GTK2_VERSION_MAJOR)
- set(GTK2_VERSION_MINOR)
- set(GTK2_VERSION_PATCH)
- set(GTK2_INCLUDE_DIRS)
- set(GTK2_LIBRARIES)
- set(GTK2_TARGETS)
- set(GTK2_DEFINITIONS)
-endif()
-
-if(GTK2_INCLUDE_DIRS)
- list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS)
-endif()
diff --git a/share/cmake-3.16/Modules/FindGTest.cmake b/share/cmake-3.16/Modules/FindGTest.cmake
deleted file mode 100644
index e015a98..0000000
--- a/share/cmake-3.16/Modules/FindGTest.cmake
+++ /dev/null
@@ -1,243 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindGTest
----------
-
-Locate the Google C++ Testing Framework.
-
-Imported targets
-^^^^^^^^^^^^^^^^
-
-This module defines the following :prop_tgt:`IMPORTED` targets:
-
-``GTest::GTest``
- The Google Test ``gtest`` library, if found; adds Thread::Thread
- automatically
-``GTest::Main``
- The Google Test ``gtest_main`` library, if found
-
-
-Result variables
-^^^^^^^^^^^^^^^^
-
-This module will set the following variables in your project:
-
-``GTEST_FOUND``
- Found the Google Testing framework
-``GTEST_INCLUDE_DIRS``
- the directory containing the Google Test headers
-
-The library variables below are set as normal variables. These
-contain debug/optimized keywords when a debugging library is found.
-
-``GTEST_LIBRARIES``
- The Google Test ``gtest`` library; note it also requires linking
- with an appropriate thread library
-``GTEST_MAIN_LIBRARIES``
- The Google Test ``gtest_main`` library
-``GTEST_BOTH_LIBRARIES``
- Both ``gtest`` and ``gtest_main``
-
-Cache variables
-^^^^^^^^^^^^^^^
-
-The following cache variables may also be set:
-
-``GTEST_ROOT``
- The root directory of the Google Test installation (may also be
- set as an environment variable)
-``GTEST_MSVC_SEARCH``
- If compiling with MSVC, this variable can be set to ``MT`` or
- ``MD`` (the default) to enable searching a GTest build tree
-
-
-Example usage
-^^^^^^^^^^^^^
-
-::
-
- enable_testing()
- find_package(GTest REQUIRED)
-
- add_executable(foo foo.cc)
- target_link_libraries(foo GTest::GTest GTest::Main)
-
- add_test(AllTestsInFoo foo)
-
-
-Deeper integration with CTest
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-See :module:`GoogleTest` for information on the :command:`gtest_add_tests`
-and :command:`gtest_discover_tests` commands.
-#]=======================================================================]
-
-include(${CMAKE_CURRENT_LIST_DIR}/GoogleTest.cmake)
-
-function(__gtest_append_debugs _endvar _library)
- if(${_library} AND ${_library}_DEBUG)
- set(_output optimized ${${_library}} debug ${${_library}_DEBUG})
- else()
- set(_output ${${_library}})
- endif()
- set(${_endvar} ${_output} PARENT_SCOPE)
-endfunction()
-
-function(__gtest_find_library _name)
- find_library(${_name}
- NAMES ${ARGN}
- HINTS
- ENV GTEST_ROOT
- ${GTEST_ROOT}
- PATH_SUFFIXES ${_gtest_libpath_suffixes}
- )
- mark_as_advanced(${_name})
-endfunction()
-
-macro(__gtest_determine_windows_library_type _var)
- if(EXISTS "${${_var}}")
- file(TO_NATIVE_PATH "${${_var}}" _lib_path)
- get_filename_component(_name "${${_var}}" NAME_WE)
- file(STRINGS "${${_var}}" _match REGEX "${_name}\\.dll" LIMIT_COUNT 1)
- if(NOT _match STREQUAL "")
- set(${_var}_TYPE SHARED PARENT_SCOPE)
- else()
- set(${_var}_TYPE UNKNOWN PARENT_SCOPE)
- endif()
- return()
- endif()
-endmacro()
-
-function(__gtest_determine_library_type _var)
- if(WIN32)
- # For now, at least, only Windows really needs to know the library type
- __gtest_determine_windows_library_type(${_var})
- __gtest_determine_windows_library_type(${_var}_RELEASE)
- __gtest_determine_windows_library_type(${_var}_DEBUG)
- endif()
- # If we get here, no determination was made from the above checks
- set(${_var}_TYPE UNKNOWN PARENT_SCOPE)
-endfunction()
-
-function(__gtest_import_library _target _var _config)
- if(_config)
- set(_config_suffix "_${_config}")
- else()
- set(_config_suffix "")
- endif()
-
- set(_lib "${${_var}${_config_suffix}}")
- if(EXISTS "${_lib}")
- if(_config)
- set_property(TARGET ${_target} APPEND PROPERTY
- IMPORTED_CONFIGURATIONS ${_config})
- endif()
- set_target_properties(${_target} PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES${_config_suffix} "CXX")
- if(WIN32 AND ${_var}_TYPE STREQUAL SHARED)
- set_target_properties(${_target} PROPERTIES
- IMPORTED_IMPLIB${_config_suffix} "${_lib}")
- else()
- set_target_properties(${_target} PROPERTIES
- IMPORTED_LOCATION${_config_suffix} "${_lib}")
- endif()
- endif()
-endfunction()
-
-#
-
-if(NOT DEFINED GTEST_MSVC_SEARCH)
- set(GTEST_MSVC_SEARCH MD)
-endif()
-
-set(_gtest_libpath_suffixes lib)
-if(MSVC)
- if(GTEST_MSVC_SEARCH STREQUAL "MD")
- list(APPEND _gtest_libpath_suffixes
- msvc/gtest-md/Debug
- msvc/gtest-md/Release
- msvc/x64/Debug
- msvc/x64/Release
- msvc/2010/gtest-md/Win32-Debug
- msvc/2010/gtest-md/Win32-Release
- msvc/2010/gtest-md/x64-Debug
- msvc/2010/gtest-md/x64-Release
- )
- elseif(GTEST_MSVC_SEARCH STREQUAL "MT")
- list(APPEND _gtest_libpath_suffixes
- msvc/gtest/Debug
- msvc/gtest/Release
- msvc/x64/Debug
- msvc/x64/Release
- msvc/2010/gtest/Win32-Debug
- msvc/2010/gtest/Win32-Release
- msvc/2010/gtest/x64-Debug
- msvc/2010/gtest/x64-Release
- )
- endif()
-endif()
-
-
-find_path(GTEST_INCLUDE_DIR gtest/gtest.h
- HINTS
- $ENV{GTEST_ROOT}/include
- ${GTEST_ROOT}/include
-)
-mark_as_advanced(GTEST_INCLUDE_DIR)
-
-if(MSVC AND GTEST_MSVC_SEARCH STREQUAL "MD")
- # The provided /MD project files for Google Test add -md suffixes to the
- # library names.
- __gtest_find_library(GTEST_LIBRARY gtest-md gtest)
- __gtest_find_library(GTEST_LIBRARY_DEBUG gtest-mdd gtestd)
- __gtest_find_library(GTEST_MAIN_LIBRARY gtest_main-md gtest_main)
- __gtest_find_library(GTEST_MAIN_LIBRARY_DEBUG gtest_main-mdd gtest_maind)
-else()
- __gtest_find_library(GTEST_LIBRARY gtest)
- __gtest_find_library(GTEST_LIBRARY_DEBUG gtestd)
- __gtest_find_library(GTEST_MAIN_LIBRARY gtest_main)
- __gtest_find_library(GTEST_MAIN_LIBRARY_DEBUG gtest_maind)
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTest DEFAULT_MSG GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)
-
-if(GTEST_FOUND)
- set(GTEST_INCLUDE_DIRS ${GTEST_INCLUDE_DIR})
- __gtest_append_debugs(GTEST_LIBRARIES GTEST_LIBRARY)
- __gtest_append_debugs(GTEST_MAIN_LIBRARIES GTEST_MAIN_LIBRARY)
- set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES})
-
- find_package(Threads QUIET)
-
- if(NOT TARGET GTest::GTest)
- __gtest_determine_library_type(GTEST_LIBRARY)
- add_library(GTest::GTest ${GTEST_LIBRARY_TYPE} IMPORTED)
- if(TARGET Threads::Threads)
- set_target_properties(GTest::GTest PROPERTIES
- INTERFACE_LINK_LIBRARIES Threads::Threads)
- endif()
- if(GTEST_LIBRARY_TYPE STREQUAL "SHARED")
- set_target_properties(GTest::GTest PROPERTIES
- INTERFACE_COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1")
- endif()
- if(GTEST_INCLUDE_DIRS)
- set_target_properties(GTest::GTest PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIRS}")
- endif()
- __gtest_import_library(GTest::GTest GTEST_LIBRARY "")
- __gtest_import_library(GTest::GTest GTEST_LIBRARY "RELEASE")
- __gtest_import_library(GTest::GTest GTEST_LIBRARY "DEBUG")
- endif()
- if(NOT TARGET GTest::Main)
- __gtest_determine_library_type(GTEST_MAIN_LIBRARY)
- add_library(GTest::Main ${GTEST_MAIN_LIBRARY_TYPE} IMPORTED)
- set_target_properties(GTest::Main PROPERTIES
- INTERFACE_LINK_LIBRARIES "GTest::GTest")
- __gtest_import_library(GTest::Main GTEST_MAIN_LIBRARY "")
- __gtest_import_library(GTest::Main GTEST_MAIN_LIBRARY "RELEASE")
- __gtest_import_library(GTest::Main GTEST_MAIN_LIBRARY "DEBUG")
- endif()
-endif()
diff --git a/share/cmake-3.16/Modules/FindLAPACK.cmake b/share/cmake-3.16/Modules/FindLAPACK.cmake
deleted file mode 100644
index 3cb3653..0000000
--- a/share/cmake-3.16/Modules/FindLAPACK.cmake
+++ /dev/null
@@ -1,442 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindLAPACK
-----------
-
-Find Linear Algebra PACKage (LAPACK) library
-
-This module finds an installed fortran library that implements the
-LAPACK linear-algebra interface (see http://www.netlib.org/lapack/).
-
-The approach follows that taken for the autoconf macro file,
-``acx_lapack.m4`` (distributed at
-http://ac-archive.sourceforge.net/ac-archive/acx_lapack.html).
-
-Input Variables
-^^^^^^^^^^^^^^^
-
-The following variables may be set to influence this module's behavior:
-
-``BLA_STATIC``
- if ``ON`` use static linkage
-
-``BLA_VENDOR``
- If set, checks only the specified vendor, if not set checks all the
- possibilities. List of vendors valid in this module:
-
- * ``Intel10_32`` (intel mkl v10 32 bit)
- * ``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`` (obsolete versions of mkl 32 and 64 bit)
- * ``OpenBLAS``
- * ``FLAME``
- * ``ACML``
- * ``Apple``
- * ``NAS``
- * ``Generic``
-
-``BLA_F95``
- if ``ON`` tries to find BLAS95/LAPACK95
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module defines the following variables:
-
-``LAPACK_FOUND``
- library implementing the LAPACK interface is found
-``LAPACK_LINKER_FLAGS``
- uncached list of required linker flags (excluding -l and -L).
-``LAPACK_LIBRARIES``
- uncached list of libraries (using full path name) to link against
- to use LAPACK
-``LAPACK95_LIBRARIES``
- uncached list of libraries (using full path name) to link against
- to use LAPACK95
-``LAPACK95_FOUND``
- library implementing the LAPACK95 interface is found
-
-.. note::
-
- C or CXX must be enabled to use Intel MKL
-
- For example, to use Intel MKL libraries and/or Intel compiler:
-
- .. code-block:: cmake
-
- set(BLA_VENDOR Intel10_64lp)
- find_package(LAPACK)
-#]=======================================================================]
-
-set(_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
-
-# Check the language being used
-if( NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED) )
- if(LAPACK_FIND_REQUIRED)
- message(FATAL_ERROR "FindLAPACK requires Fortran, C, or C++ to be enabled.")
- else()
- message(STATUS "Looking for LAPACK... - NOT found (Unsupported languages)")
- return()
- endif()
-endif()
-
-if (CMAKE_Fortran_COMPILER_LOADED)
-include(${CMAKE_CURRENT_LIST_DIR}/CheckFortranFunctionExists.cmake)
-else ()
-include(${CMAKE_CURRENT_LIST_DIR}/CheckFunctionExists.cmake)
-endif ()
-include(${CMAKE_CURRENT_LIST_DIR}/CMakePushCheckState.cmake)
-
-cmake_push_check_state()
-set(CMAKE_REQUIRED_QUIET ${LAPACK_FIND_QUIETLY})
-
-set(LAPACK_FOUND FALSE)
-set(LAPACK95_FOUND FALSE)
-
-# TODO: move this stuff to separate module
-
-macro(Check_Lapack_Libraries LIBRARIES _prefix _name _flags _list _blas _threads)
-# This macro checks for the existence of the combination of fortran libraries
-# given by _list. If the combination is found, this macro checks (using the
-# Check_Fortran_Function_Exists macro) whether can link against that library
-# combination using the name of a routine given by _name using the linker
-# flags given by _flags. If the combination of libraries is found and passes
-# the link test, LIBRARIES is set to the list of complete library paths that
-# have been found. Otherwise, LIBRARIES is set to FALSE.
-
-# N.B. _prefix is the prefix applied to the names of all cached variables that
-# are generated internally and marked advanced by this macro.
-
-set(_libraries_work TRUE)
-set(${LIBRARIES})
-set(_combined_name)
-if (NOT _libdir)
- if (WIN32)
- set(_libdir ENV LIB)
- elseif (APPLE)
- set(_libdir ENV DYLD_LIBRARY_PATH)
- else ()
- set(_libdir ENV LD_LIBRARY_PATH)
- endif ()
-endif ()
-
-list(APPEND _libdir "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
-
-foreach(_library ${_list})
- set(_combined_name ${_combined_name}_${_library})
-
- if(_libraries_work)
- if (BLA_STATIC)
- if (WIN32)
- set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
- endif ()
- if (APPLE)
- set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
- else ()
- set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
- endif ()
- else ()
- if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
- # for ubuntu's libblas3gf and liblapack3gf packages
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
- endif ()
- endif ()
- find_library(${_prefix}_${_library}_LIBRARY
- NAMES ${_library}
- PATHS ${_libdir}
- )
- mark_as_advanced(${_prefix}_${_library}_LIBRARY)
- set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
- set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
- endif()
-endforeach()
-
-if(_libraries_work)
- # Test this combination of libraries.
- if(UNIX AND BLA_STATIC)
- set(CMAKE_REQUIRED_LIBRARIES ${_flags} "-Wl,--start-group" ${${LIBRARIES}} ${_blas} "-Wl,--end-group" ${_threads})
- else()
- set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}} ${_blas} ${_threads})
- endif()
-# message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}")
- if (NOT CMAKE_Fortran_COMPILER_LOADED)
- check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS)
- else ()
- check_fortran_function_exists(${_name} ${_prefix}${_combined_name}_WORKS)
- endif ()
- set(CMAKE_REQUIRED_LIBRARIES)
- set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
- #message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
-endif()
-
- if(_libraries_work)
- if("${_list}${_blas}" STREQUAL "")
- set(${LIBRARIES} "${LIBRARIES}-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
- else()
- set(${LIBRARIES} ${${LIBRARIES}} ${_blas} ${_threads})
- endif()
- else()
- set(${LIBRARIES} FALSE)
- endif()
-
-endmacro()
-
-
-set(LAPACK_LINKER_FLAGS)
-set(LAPACK_LIBRARIES)
-set(LAPACK95_LIBRARIES)
-
-
-if(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED)
- find_package(BLAS)
-else()
- find_package(BLAS REQUIRED)
-endif()
-
-
-if(BLAS_FOUND)
- set(LAPACK_LINKER_FLAGS ${BLAS_LINKER_FLAGS})
- if (NOT $ENV{BLA_VENDOR} STREQUAL "")
- set(BLA_VENDOR $ENV{BLA_VENDOR})
- else ()
- if(NOT BLA_VENDOR)
- set(BLA_VENDOR "All")
- endif()
- endif ()
-
-#intel lapack
-if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
- if(NOT LAPACK_LIBRARIES)
- if (NOT WIN32)
- set(LAPACK_mkl_LM "-lm")
- set(LAPACK_mkl_LDL "-ldl")
- endif ()
- if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
- if(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED)
- find_PACKAGE(Threads)
- else()
- find_package(Threads REQUIRED)
- endif()
-
- if (BLA_VENDOR MATCHES "_64ilp")
- set(LAPACK_mkl_ILP_MODE "ilp64")
- else ()
- set(LAPACK_mkl_ILP_MODE "lp64")
- endif ()
-
- set(LAPACK_SEARCH_LIBS "")
-
- if (BLA_F95)
- set(LAPACK_mkl_SEARCH_SYMBOL "cheev_f95")
- set(_LIBRARIES LAPACK95_LIBRARIES)
- set(_BLAS_LIBRARIES ${BLAS95_LIBRARIES})
-
- # old
- list(APPEND LAPACK_SEARCH_LIBS
- "mkl_lapack95")
- # new >= 10.3
- list(APPEND LAPACK_SEARCH_LIBS
- "mkl_intel_c")
- list(APPEND LAPACK_SEARCH_LIBS
- "mkl_lapack95_${LAPACK_mkl_ILP_MODE}")
- else()
- set(LAPACK_mkl_SEARCH_SYMBOL "cheev")
- set(_LIBRARIES LAPACK_LIBRARIES)
- set(_BLAS_LIBRARIES ${BLAS_LIBRARIES})
-
- # old
- list(APPEND LAPACK_SEARCH_LIBS
- "mkl_lapack")
- endif()
-
- # First try empty lapack libs
- if (NOT ${_LIBRARIES})
- check_lapack_libraries(
- ${_LIBRARIES}
- LAPACK
- ${LAPACK_mkl_SEARCH_SYMBOL}
- ""
- ""
- "${_BLAS_LIBRARIES}"
- ""
- )
- endif ()
- # Then try the search libs
- foreach (IT ${LAPACK_SEARCH_LIBS})
- if (NOT ${_LIBRARIES})
- check_lapack_libraries(
- ${_LIBRARIES}
- LAPACK
- ${LAPACK_mkl_SEARCH_SYMBOL}
- ""
- "${IT}"
- "${_BLAS_LIBRARIES}"
- "${CMAKE_THREAD_LIBS_INIT};${LAPACK_mkl_LM};${LAPACK_mkl_LDL}"
- )
- endif ()
- endforeach ()
-
- unset(LAPACK_mkl_ILP_MODE)
- unset(LAPACK_mkl_SEARCH_SYMBOL)
- unset(LAPACK_mkl_LM)
- unset(LAPACK_mkl_LDL)
- endif ()
- endif()
-endif()
-
-if (BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All")
- if(NOT LAPACK_LIBRARIES)
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "goto2"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All")
- if(NOT LAPACK_LIBRARIES)
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "openblas"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
- if(NOT LAPACK_LIBRARIES)
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "flame"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif()
-endif ()
-
-#acml lapack
-if (BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All")
- if (BLAS_LIBRARIES MATCHES ".+acml.+")
- set (LAPACK_LIBRARIES ${BLAS_LIBRARIES})
- endif ()
-endif ()
-
-# Apple LAPACK library?
-if (BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All")
- if(NOT LAPACK_LIBRARIES)
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "Accelerate"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif()
-endif ()
-if (BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All")
- if ( NOT LAPACK_LIBRARIES )
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "vecLib"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif ()
-endif ()
-# Generic LAPACK library?
-if (BLA_VENDOR STREQUAL "Generic" OR
- BLA_VENDOR STREQUAL "ATLAS" OR
- BLA_VENDOR STREQUAL "All")
- if ( NOT LAPACK_LIBRARIES )
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "lapack"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif ()
-endif ()
-
-else()
- message(STATUS "LAPACK requires BLAS")
-endif()
-
-if(BLA_F95)
- if(LAPACK95_LIBRARIES)
- set(LAPACK95_FOUND TRUE)
- else()
- set(LAPACK95_FOUND FALSE)
- endif()
- if(NOT LAPACK_FIND_QUIETLY)
- if(LAPACK95_FOUND)
- message(STATUS "A library with LAPACK95 API found.")
- else()
- if(LAPACK_FIND_REQUIRED)
- message(FATAL_ERROR
- "A required library with LAPACK95 API not found. Please specify library location."
- )
- else()
- message(STATUS
- "A library with LAPACK95 API not found. Please specify library location."
- )
- endif()
- endif()
- endif()
- set(LAPACK_FOUND "${LAPACK95_FOUND}")
- set(LAPACK_LIBRARIES "${LAPACK95_LIBRARIES}")
-else()
- if(LAPACK_LIBRARIES)
- set(LAPACK_FOUND TRUE)
- else()
- set(LAPACK_FOUND FALSE)
- endif()
-
- if(NOT LAPACK_FIND_QUIETLY)
- if(LAPACK_FOUND)
- message(STATUS "A library with LAPACK API found.")
- else()
- if(LAPACK_FIND_REQUIRED)
- message(FATAL_ERROR
- "A required library with LAPACK API not found. Please specify library location."
- )
- else()
- message(STATUS
- "A library with LAPACK API not found. Please specify library location."
- )
- endif()
- endif()
- endif()
-endif()
-
-# On compilers that implicitly link LAPACK (such as ftn, cc, and CC on Cray HPC machines)
-# we used a placeholder for empty LAPACK_LIBRARIES to get through our logic above.
-if (LAPACK_LIBRARIES STREQUAL "LAPACK_LIBRARIES-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
- set(LAPACK_LIBRARIES "")
-endif()
-
-cmake_pop_check_state()
-set(CMAKE_FIND_LIBRARY_SUFFIXES ${_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
diff --git a/share/cmake-3.16/Modules/FindLibArchive.cmake b/share/cmake-3.16/Modules/FindLibArchive.cmake
deleted file mode 100644
index ef27b7d..0000000
--- a/share/cmake-3.16/Modules/FindLibArchive.cmake
+++ /dev/null
@@ -1,61 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindLibArchive
---------------
-
-Find libarchive library and headers.
-Libarchive is multi-format archive and compression library.
-
-The module defines the following variables:
-
-::
-
- LibArchive_FOUND - true if libarchive was found
- LibArchive_INCLUDE_DIRS - include search path
- LibArchive_LIBRARIES - libraries to link
- LibArchive_VERSION - libarchive 3-component version number
-#]=======================================================================]
-
-find_path(LibArchive_INCLUDE_DIR
- NAMES archive.h
- PATHS
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\LibArchive;InstallPath]/include"
- )
-
-find_library(LibArchive_LIBRARY
- NAMES archive libarchive
- PATHS
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\LibArchive;InstallPath]/lib"
- )
-
-mark_as_advanced(LibArchive_INCLUDE_DIR LibArchive_LIBRARY)
-
-# Extract the version number from the header.
-if(LibArchive_INCLUDE_DIR AND EXISTS "${LibArchive_INCLUDE_DIR}/archive.h")
- # The version string appears in one of three known formats in the header:
- # #define ARCHIVE_LIBRARY_VERSION "libarchive 2.4.12"
- # #define ARCHIVE_VERSION_STRING "libarchive 2.8.4"
- # #define ARCHIVE_VERSION_ONLY_STRING "3.2.0"
- # Match any format.
- set(_LibArchive_VERSION_REGEX "^#define[ \t]+ARCHIVE[_A-Z]+VERSION[_A-Z]*[ \t]+\"(libarchive +)?([0-9]+)\\.([0-9]+)\\.([0-9]+)[^\"]*\".*$")
- file(STRINGS "${LibArchive_INCLUDE_DIR}/archive.h" _LibArchive_VERSION_STRING LIMIT_COUNT 1 REGEX "${_LibArchive_VERSION_REGEX}")
- if(_LibArchive_VERSION_STRING)
- string(REGEX REPLACE "${_LibArchive_VERSION_REGEX}" "\\2.\\3.\\4" LibArchive_VERSION "${_LibArchive_VERSION_STRING}")
- endif()
- unset(_LibArchive_VERSION_REGEX)
- unset(_LibArchive_VERSION_STRING)
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(LibArchive
- REQUIRED_VARS LibArchive_LIBRARY LibArchive_INCLUDE_DIR
- VERSION_VAR LibArchive_VERSION
- )
-unset(LIBARCHIVE_FOUND)
-
-if(LibArchive_FOUND)
- set(LibArchive_INCLUDE_DIRS ${LibArchive_INCLUDE_DIR})
- set(LibArchive_LIBRARIES ${LibArchive_LIBRARY})
-endif()
diff --git a/share/cmake-3.16/Modules/FindLibXml2.cmake b/share/cmake-3.16/Modules/FindLibXml2.cmake
deleted file mode 100644
index da8bfe0..0000000
--- a/share/cmake-3.16/Modules/FindLibXml2.cmake
+++ /dev/null
@@ -1,102 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindLibXml2
------------
-
-Find the XML processing library (libxml2).
-
-IMPORTED Targets
-^^^^^^^^^^^^^^^^
-
-This module defines :prop_tgt:`IMPORTED` target ``LibXml2::LibXml2``, if
-libxml2 has been found.
-
-Result variables
-^^^^^^^^^^^^^^^^
-
-This module will set the following variables in your project:
-
-``LibXml2_FOUND``
- true if libxml2 headers and libraries were found
-``LIBXML2_INCLUDE_DIR``
- the directory containing LibXml2 headers
-``LIBXML2_INCLUDE_DIRS``
- list of the include directories needed to use LibXml2
-``LIBXML2_LIBRARIES``
- LibXml2 libraries to be linked
-``LIBXML2_DEFINITIONS``
- the compiler switches required for using LibXml2
-``LIBXML2_XMLLINT_EXECUTABLE``
- path to the XML checking tool xmllint coming with LibXml2
-``LIBXML2_VERSION_STRING``
- the version of LibXml2 found (since CMake 2.8.8)
-
-Cache variables
-^^^^^^^^^^^^^^^
-
-The following cache variables may also be set:
-
-``LIBXML2_INCLUDE_DIR``
- the directory containing LibXml2 headers
-``LIBXML2_LIBRARY``
- path to the LibXml2 library
-#]=======================================================================]
-
-# use pkg-config to get the directories and then use these values
-# in the find_path() and find_library() calls
-find_package(PkgConfig QUIET)
-PKG_CHECK_MODULES(PC_LIBXML QUIET libxml-2.0)
-set(LIBXML2_DEFINITIONS ${PC_LIBXML_CFLAGS_OTHER})
-
-find_path(LIBXML2_INCLUDE_DIR NAMES libxml/xpath.h
- HINTS
- ${PC_LIBXML_INCLUDEDIR}
- ${PC_LIBXML_INCLUDE_DIRS}
- PATH_SUFFIXES libxml2
- )
-
-# CMake 3.9 and below used 'LIBXML2_LIBRARIES' as the name of
-# the cache entry storing the find_library result. Use the
-# value if it was set by the project or user.
-if(DEFINED LIBXML2_LIBRARIES AND NOT DEFINED LIBXML2_LIBRARY)
- set(LIBXML2_LIBRARY ${LIBXML2_LIBRARIES})
-endif()
-
-find_library(LIBXML2_LIBRARY NAMES xml2 libxml2
- HINTS
- ${PC_LIBXML_LIBDIR}
- ${PC_LIBXML_LIBRARY_DIRS}
- )
-
-find_program(LIBXML2_XMLLINT_EXECUTABLE xmllint)
-# for backwards compat. with KDE 4.0.x:
-set(XMLLINT_EXECUTABLE "${LIBXML2_XMLLINT_EXECUTABLE}")
-
-if(PC_LIBXML_VERSION)
- set(LIBXML2_VERSION_STRING ${PC_LIBXML_VERSION})
-elseif(LIBXML2_INCLUDE_DIR AND EXISTS "${LIBXML2_INCLUDE_DIR}/libxml/xmlversion.h")
- file(STRINGS "${LIBXML2_INCLUDE_DIR}/libxml/xmlversion.h" libxml2_version_str
- REGEX "^#define[\t ]+LIBXML_DOTTED_VERSION[\t ]+\".*\"")
-
- string(REGEX REPLACE "^#define[\t ]+LIBXML_DOTTED_VERSION[\t ]+\"([^\"]*)\".*" "\\1"
- LIBXML2_VERSION_STRING "${libxml2_version_str}")
- unset(libxml2_version_str)
-endif()
-
-set(LIBXML2_INCLUDE_DIRS ${LIBXML2_INCLUDE_DIR} ${PC_LIBXML_INCLUDE_DIRS})
-set(LIBXML2_LIBRARIES ${LIBXML2_LIBRARY})
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXml2
- REQUIRED_VARS LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR
- VERSION_VAR LIBXML2_VERSION_STRING)
-
-mark_as_advanced(LIBXML2_INCLUDE_DIR LIBXML2_LIBRARY LIBXML2_XMLLINT_EXECUTABLE)
-
-if(LibXml2_FOUND AND NOT TARGET LibXml2::LibXml2)
- add_library(LibXml2::LibXml2 UNKNOWN IMPORTED)
- set_target_properties(LibXml2::LibXml2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBXML2_INCLUDE_DIRS}")
- set_property(TARGET LibXml2::LibXml2 APPEND PROPERTY IMPORTED_LOCATION "${LIBXML2_LIBRARY}")
-endif()
diff --git a/share/cmake-3.16/Modules/FindLua.cmake b/share/cmake-3.16/Modules/FindLua.cmake
deleted file mode 100644
index caf9d69..0000000
--- a/share/cmake-3.16/Modules/FindLua.cmake
+++ /dev/null
@@ -1,237 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindLua
--------
-
-
-
-Locate Lua library.
-
-This module defines::
-
-::
-
- LUA_FOUND - if false, do not try to link to Lua
- LUA_LIBRARIES - both lua and lualib
- LUA_INCLUDE_DIR - where to find lua.h
- LUA_VERSION_STRING - the version of Lua found
- LUA_VERSION_MAJOR - the major version of Lua
- LUA_VERSION_MINOR - the minor version of Lua
- LUA_VERSION_PATCH - the patch version of Lua
-
-
-
-Note that the expected include convention is
-
-::
-
- #include "lua.h"
-
-and not
-
-::
-
- #include <lua/lua.h>
-
-This is because, the lua location is not standardized and may exist in
-locations other than lua/
-#]=======================================================================]
-
-cmake_policy(PUSH) # Policies apply to functions at definition-time
-cmake_policy(SET CMP0012 NEW) # For while(TRUE)
-
-unset(_lua_include_subdirs)
-unset(_lua_library_names)
-unset(_lua_append_versions)
-
-# this is a function only to have all the variables inside go away automatically
-function(_lua_get_versions)
- set(LUA_VERSIONS5 5.3 5.2 5.1 5.0)
-
- if (Lua_FIND_VERSION_EXACT)
- if (Lua_FIND_VERSION_COUNT GREATER 1)
- set(_lua_append_versions ${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR})
- endif ()
- elseif (Lua_FIND_VERSION)
- # once there is a different major version supported this should become a loop
- if (NOT Lua_FIND_VERSION_MAJOR GREATER 5)
- if (Lua_FIND_VERSION_COUNT EQUAL 1)
- set(_lua_append_versions ${LUA_VERSIONS5})
- else ()
- foreach (subver IN LISTS LUA_VERSIONS5)
- if (NOT subver VERSION_LESS ${Lua_FIND_VERSION})
- list(APPEND _lua_append_versions ${subver})
- endif ()
- endforeach ()
- # New version -> Search for it (heuristic only! Defines in include might have changed)
- if (NOT _lua_append_versions)
- set(_lua_append_versions ${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR})
- endif()
- endif ()
- endif ()
- else ()
- # once there is a different major version supported this should become a loop
- set(_lua_append_versions ${LUA_VERSIONS5})
- endif ()
-
- if (LUA_Debug)
- message(STATUS "Considering following Lua versions: ${_lua_append_versions}")
- endif()
-
- set(_lua_append_versions "${_lua_append_versions}" PARENT_SCOPE)
-endfunction()
-
-function(_lua_set_version_vars)
- set(_lua_include_subdirs_raw "lua")
-
- foreach (ver IN LISTS _lua_append_versions)
- string(REGEX MATCH "^([0-9]+)\\.([0-9]+)$" _ver "${ver}")
- list(APPEND _lua_include_subdirs_raw
- lua${CMAKE_MATCH_1}${CMAKE_MATCH_2}
- lua${CMAKE_MATCH_1}.${CMAKE_MATCH_2}
- lua-${CMAKE_MATCH_1}.${CMAKE_MATCH_2}
- )
- endforeach ()
-
- # Prepend "include/" to each path directly after the path
- set(_lua_include_subdirs "include")
- foreach (dir IN LISTS _lua_include_subdirs_raw)
- list(APPEND _lua_include_subdirs "${dir}" "include/${dir}")
- endforeach ()
-
- set(_lua_include_subdirs "${_lua_include_subdirs}" PARENT_SCOPE)
-endfunction(_lua_set_version_vars)
-
-function(_lua_get_header_version)
- unset(LUA_VERSION_STRING PARENT_SCOPE)
- set(_hdr_file "${LUA_INCLUDE_DIR}/lua.h")
-
- if (NOT EXISTS "${_hdr_file}")
- return()
- endif ()
-
- # At least 5.[012] have different ways to express the version
- # so all of them need to be tested. Lua 5.2 defines LUA_VERSION
- # and LUA_RELEASE as joined by the C preprocessor, so avoid those.
- file(STRINGS "${_hdr_file}" lua_version_strings
- REGEX "^#define[ \t]+LUA_(RELEASE[ \t]+\"Lua [0-9]|VERSION([ \t]+\"Lua [0-9]|_[MR])).*")
-
- string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MAJOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MAJOR ";${lua_version_strings};")
- if (LUA_VERSION_MAJOR MATCHES "^[0-9]+$")
- string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MINOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MINOR ";${lua_version_strings};")
- string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_RELEASE[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_PATCH ";${lua_version_strings};")
- set(LUA_VERSION_STRING "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}.${LUA_VERSION_PATCH}")
- else ()
- string(REGEX REPLACE ".*;#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
- if (NOT LUA_VERSION_STRING MATCHES "^[0-9.]+$")
- string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
- endif ()
- string(REGEX REPLACE "^([0-9]+)\\.[0-9.]*$" "\\1" LUA_VERSION_MAJOR "${LUA_VERSION_STRING}")
- string(REGEX REPLACE "^[0-9]+\\.([0-9]+)[0-9.]*$" "\\1" LUA_VERSION_MINOR "${LUA_VERSION_STRING}")
- string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]).*" "\\1" LUA_VERSION_PATCH "${LUA_VERSION_STRING}")
- endif ()
- foreach (ver IN LISTS _lua_append_versions)
- if (ver STREQUAL "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
- set(LUA_VERSION_MAJOR ${LUA_VERSION_MAJOR} PARENT_SCOPE)
- set(LUA_VERSION_MINOR ${LUA_VERSION_MINOR} PARENT_SCOPE)
- set(LUA_VERSION_PATCH ${LUA_VERSION_PATCH} PARENT_SCOPE)
- set(LUA_VERSION_STRING ${LUA_VERSION_STRING} PARENT_SCOPE)
- return()
- endif ()
- endforeach ()
-endfunction(_lua_get_header_version)
-
-function(_lua_find_header)
- _lua_set_version_vars()
-
- # Initialize as local variable
- set(CMAKE_IGNORE_PATH ${CMAKE_IGNORE_PATH})
- while (TRUE)
- # Find the next header to test. Check each possible subdir in order
- # This prefers e.g. higher versions as they are earlier in the list
- # It is also consistent with previous versions of FindLua
- foreach (subdir IN LISTS _lua_include_subdirs)
- find_path(LUA_INCLUDE_DIR lua.h
- HINTS ENV LUA_DIR
- PATH_SUFFIXES ${subdir}
- )
- if (LUA_INCLUDE_DIR)
- break()
- endif()
- endforeach()
- # Did not found header -> Fail
- if (NOT LUA_INCLUDE_DIR)
- return()
- endif()
- _lua_get_header_version()
- # Found accepted version -> Ok
- if (LUA_VERSION_STRING)
- if (LUA_Debug)
- message(STATUS "Found suitable version ${LUA_VERSION_STRING} in ${LUA_INCLUDE_DIR}/lua.h")
- endif()
- return()
- endif()
- # Found wrong version -> Ignore this path and retry
- if (LUA_Debug)
- message(STATUS "Ignoring unsuitable version in ${LUA_INCLUDE_DIR}")
- endif()
- list(APPEND CMAKE_IGNORE_PATH "${LUA_INCLUDE_DIR}")
- unset(LUA_INCLUDE_DIR CACHE)
- unset(LUA_INCLUDE_DIR)
- unset(LUA_INCLUDE_DIR PARENT_SCOPE)
- endwhile ()
-endfunction()
-
-_lua_get_versions()
-_lua_find_header()
-_lua_get_header_version()
-unset(_lua_append_versions)
-
-if (LUA_VERSION_STRING)
- set(_lua_library_names
- lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}
- lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
- lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
- lua.${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
- )
-endif ()
-
-find_library(LUA_LIBRARY
- NAMES ${_lua_library_names} lua
- NAMES_PER_DIR
- HINTS
- ENV LUA_DIR
- PATH_SUFFIXES lib
-)
-unset(_lua_library_names)
-
-if (LUA_LIBRARY)
- # include the math library for Unix
- if (UNIX AND NOT APPLE AND NOT BEOS)
- find_library(LUA_MATH_LIBRARY m)
- set(LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}")
-
- # include dl library for statically-linked Lua library
- get_filename_component(LUA_LIB_EXT ${LUA_LIBRARY} EXT)
- if(LUA_LIB_EXT STREQUAL CMAKE_STATIC_LIBRARY_SUFFIX)
- list(APPEND LUA_LIBRARIES ${CMAKE_DL_LIBS})
- endif()
-
- # For Windows and Mac, don't need to explicitly include the math library
- else ()
- set(LUA_LIBRARIES "${LUA_LIBRARY}")
- endif ()
-endif ()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
-# all listed variables are TRUE
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua
- REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR
- VERSION_VAR LUA_VERSION_STRING)
-
-mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARY LUA_MATH_LIBRARY)
-
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FindMFC.cmake b/share/cmake-3.16/Modules/FindMFC.cmake
deleted file mode 100644
index e366619..0000000
--- a/share/cmake-3.16/Modules/FindMFC.cmake
+++ /dev/null
@@ -1,71 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindMFC
--------
-
-Find Microsoft Foundation Class Library (MFC) on Windows
-
-Find the native MFC - i.e. decide if an application can link to the
-MFC libraries.
-
-::
-
- MFC_FOUND - Was MFC support found
-
-You don't need to include anything or link anything to use it.
-#]=======================================================================]
-
-# Assume no MFC support
-set(MFC_FOUND "NO")
-
-# Only attempt the try_compile call if it has a chance to succeed:
-set(MFC_ATTEMPT_TRY_COMPILE 0)
-if(WIN32 AND NOT UNIX AND NOT BORLAND AND NOT MINGW)
- set(MFC_ATTEMPT_TRY_COMPILE 1)
-endif()
-
-if(MFC_ATTEMPT_TRY_COMPILE)
- if(NOT DEFINED MFC_HAVE_MFC)
- set(CHECK_INCLUDE_FILE_VAR "afxwin.h")
- configure_file(${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx)
- message(STATUS "Looking for MFC")
- # Try both shared and static as the root project may have set the /MT flag
- try_compile(MFC_HAVE_MFC
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx
- CMAKE_FLAGS
- -DCMAKE_MFC_FLAG:STRING=2
- -DCOMPILE_DEFINITIONS:STRING=-D_AFXDLL
- OUTPUT_VARIABLE OUTPUT)
- if(NOT MFC_HAVE_MFC)
- configure_file(${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx)
- try_compile(MFC_HAVE_MFC
- ${CMAKE_BINARY_DIR}
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx
- CMAKE_FLAGS
- -DCMAKE_MFC_FLAG:STRING=1
- OUTPUT_VARIABLE OUTPUT)
- endif()
- if(MFC_HAVE_MFC)
- message(STATUS "Looking for MFC - found")
- set(MFC_HAVE_MFC 1 CACHE INTERNAL "Have MFC?")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if MFC exists passed with the following output:\n"
- "${OUTPUT}\n\n")
- else()
- message(STATUS "Looking for MFC - not found")
- set(MFC_HAVE_MFC 0 CACHE INTERNAL "Have MFC?")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if MFC exists failed with the following output:\n"
- "${OUTPUT}\n\n")
- endif()
- endif()
-
- if(MFC_HAVE_MFC)
- set(MFC_FOUND "YES")
- endif()
-endif()
diff --git a/share/cmake-3.16/Modules/FindMPI.cmake b/share/cmake-3.16/Modules/FindMPI.cmake
deleted file mode 100644
index d6cd799..0000000
--- a/share/cmake-3.16/Modules/FindMPI.cmake
+++ /dev/null
@@ -1,1769 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindMPI
--------
-
-Find a Message Passing Interface (MPI) implementation.
-
-The Message Passing Interface (MPI) is a library used to write
-high-performance distributed-memory parallel applications, and is
-typically deployed on a cluster. MPI is a standard interface (defined
-by the MPI forum) for which many implementations are available.
-
-Variables for using MPI
-^^^^^^^^^^^^^^^^^^^^^^^
-
-The module exposes the components ``C``, ``CXX``, ``MPICXX`` and ``Fortran``.
-Each of these controls the various MPI languages to search for.
-The difference between ``CXX`` and ``MPICXX`` is that ``CXX`` refers to the
-MPI C API being usable from C++, whereas ``MPICXX`` refers to the MPI-2 C++ API
-that was removed again in MPI-3.
-
-Depending on the enabled components the following variables will be set:
-
-``MPI_FOUND``
- Variable indicating that MPI settings for all requested languages have been found.
- If no components are specified, this is true if MPI settings for all enabled languages
- were detected. Note that the ``MPICXX`` component does not affect this variable.
-``MPI_VERSION``
- Minimal version of MPI detected among the requested languages, or all enabled languages
- if no components were specified.
-
-This module will set the following variables per language in your
-project, where ``<lang>`` is one of C, CXX, or Fortran:
-
-``MPI_<lang>_FOUND``
- Variable indicating the MPI settings for ``<lang>`` were found and that
- simple MPI test programs compile with the provided settings.
-``MPI_<lang>_COMPILER``
- MPI compiler for ``<lang>`` if such a program exists.
-``MPI_<lang>_COMPILE_OPTIONS``
- Compilation options for MPI programs in ``<lang>``, given as a :ref:`;-list <CMake Language Lists>`.
-``MPI_<lang>_COMPILE_DEFINITIONS``
- Compilation definitions for MPI programs in ``<lang>``, given as a :ref:`;-list <CMake Language Lists>`.
-``MPI_<lang>_INCLUDE_DIRS``
- Include path(s) for MPI header.
-``MPI_<lang>_LINK_FLAGS``
- Linker flags for MPI programs.
-``MPI_<lang>_LIBRARIES``
- All libraries to link MPI programs against.
-
-Additionally, the following :prop_tgt:`IMPORTED` targets are defined:
-
-``MPI::MPI_<lang>``
- Target for using MPI from ``<lang>``.
-
-The following variables indicating which bindings are present will be defined:
-
-``MPI_MPICXX_FOUND``
- Variable indicating whether the MPI-2 C++ bindings are present (introduced in MPI-2, removed with MPI-3).
-``MPI_Fortran_HAVE_F77_HEADER``
- True if the Fortran 77 header ``mpif.h`` is available.
-``MPI_Fortran_HAVE_F90_MODULE``
- True if the Fortran 90 module ``mpi`` can be used for accessing MPI (MPI-2 and higher only).
-``MPI_Fortran_HAVE_F08_MODULE``
- True if the Fortran 2008 ``mpi_f08`` is available to MPI programs (MPI-3 and higher only).
-
-If possible, the MPI version will be determined by this module. The facilities to detect the MPI version
-were introduced with MPI-1.2, and therefore cannot be found for older MPI versions.
-
-``MPI_<lang>_VERSION_MAJOR``
- Major version of MPI implemented for ``<lang>`` by the MPI distribution.
-``MPI_<lang>_VERSION_MINOR``
- Minor version of MPI implemented for ``<lang>`` by the MPI distribution.
-``MPI_<lang>_VERSION``
- MPI version implemented for ``<lang>`` by the MPI distribution.
-
-Note that there's no variable for the C bindings being accessible through ``mpi.h``, since the MPI standards
-always have required this binding to work in both C and C++ code.
-
-For running MPI programs, the module sets the following variables
-
-``MPIEXEC_EXECUTABLE``
- Executable for running MPI programs, if such exists.
-``MPIEXEC_NUMPROC_FLAG``
- Flag to pass to ``mpiexec`` before giving it the number of processors to run on.
-``MPIEXEC_MAX_NUMPROCS``
- Number of MPI processors to utilize. Defaults to the number
- of processors detected on the host system.
-``MPIEXEC_PREFLAGS``
- Flags to pass to ``mpiexec`` directly before the executable to run.
-``MPIEXEC_POSTFLAGS``
- Flags to pass to ``mpiexec`` after other flags.
-
-Variables for locating MPI
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-This module performs a four step search for an MPI implementation:
-
-1. Search for ``MPIEXEC_EXECUTABLE`` and, if found, use its base directory.
-2. Check if the compiler has MPI support built-in. This is the case if the user passed a
- compiler wrapper as ``CMAKE_<LANG>_COMPILER`` or if they're on a Cray system.
-3. Attempt to find an MPI compiler wrapper and determine the compiler information from it.
-4. Try to find an MPI implementation that does not ship such a wrapper by guessing settings.
- Currently, only Microsoft MPI and MPICH2 on Windows are supported.
-
-For controlling the ``MPIEXEC_EXECUTABLE`` step, the following variables may be set:
-
-``MPIEXEC_EXECUTABLE``
- Manually specify the location of ``mpiexec``.
-``MPI_HOME``
- Specify the base directory of the MPI installation.
-``ENV{MPI_HOME}``
- Environment variable to specify the base directory of the MPI installation.
-``ENV{I_MPI_ROOT}``
- Environment variable to specify the base directory of the MPI installation.
-
-For controlling the compiler wrapper step, the following variables may be set:
-
-``MPI_<lang>_COMPILER``
- Search for the specified compiler wrapper and use it.
-``MPI_<lang>_COMPILER_FLAGS``
- Flags to pass to the MPI compiler wrapper during interrogation. Some compiler wrappers
- support linking debug or tracing libraries if a specific flag is passed and this variable
- may be used to obtain them.
-``MPI_COMPILER_FLAGS``
- Used to initialize ``MPI_<lang>_COMPILER_FLAGS`` if no language specific flag has been given.
- Empty by default.
-``MPI_EXECUTABLE_SUFFIX``
- A suffix which is appended to all names that are being looked for. For instance you may set this
- to ``.mpich`` or ``.openmpi`` to prefer the one or the other on Debian and its derivatives.
-
-In order to control the guessing step, the following variable may be set:
-
-``MPI_GUESS_LIBRARY_NAME``
- Valid values are ``MSMPI`` and ``MPICH2``. If set, only the given library will be searched for.
- By default, ``MSMPI`` will be preferred over ``MPICH2`` if both are available.
- This also sets ``MPI_SKIP_COMPILER_WRAPPER`` to ``true``, which may be overridden.
-
-Each of the search steps may be skipped with the following control variables:
-
-``MPI_ASSUME_NO_BUILTIN_MPI``
- If true, the module assumes that the compiler itself does not provide an MPI implementation and
- skips to step 2.
-``MPI_SKIP_COMPILER_WRAPPER``
- If true, no compiler wrapper will be searched for.
-``MPI_SKIP_GUESSING``
- If true, the guessing step will be skipped.
-
-Additionally, the following control variable is available to change search behavior:
-
-``MPI_CXX_SKIP_MPICXX``
- Add some definitions that will disable the MPI-2 C++ bindings.
- Currently supported are MPICH, Open MPI, Platform MPI and derivatives thereof,
- for example MVAPICH or Intel MPI.
-
-If the find procedure fails for a variable ``MPI_<lang>_WORKS``, then the settings detected by or passed to
-the module did not work and even a simple MPI test program failed to compile.
-
-If all of these parameters were not sufficient to find the right MPI implementation, a user may
-disable the entire autodetection process by specifying both a list of libraries in ``MPI_<lang>_LIBRARIES``
-and a list of include directories in ``MPI_<lang>_ADDITIONAL_INCLUDE_DIRS``.
-Any other variable may be set in addition to these two. The module will then validate the MPI settings and store the
-settings in the cache.
-
-Cache variables for MPI
-^^^^^^^^^^^^^^^^^^^^^^^
-
-The variable ``MPI_<lang>_INCLUDE_DIRS`` will be assembled from the following variables.
-For C and CXX:
-
-``MPI_<lang>_HEADER_DIR``
- Location of the ``mpi.h`` header on disk.
-
-For Fortran:
-
-``MPI_Fortran_F77_HEADER_DIR``
- Location of the Fortran 77 header ``mpif.h``, if it exists.
-``MPI_Fortran_MODULE_DIR``
- Location of the ``mpi`` or ``mpi_f08`` modules, if available.
-
-For all languages the following variables are additionally considered:
-
-``MPI_<lang>_ADDITIONAL_INCLUDE_DIRS``
- A :ref:`;-list <CMake Language Lists>` of paths needed in addition to the normal include directories.
-``MPI_<include_name>_INCLUDE_DIR``
- Path variables for include folders referred to by ``<include_name>``.
-``MPI_<lang>_ADDITIONAL_INCLUDE_VARS``
- A :ref:`;-list <CMake Language Lists>` of ``<include_name>`` that will be added to the include locations of ``<lang>``.
-
-The variable ``MPI_<lang>_LIBRARIES`` will be assembled from the following variables:
-
-``MPI_<lib_name>_LIBRARY``
- The location of a library called ``<lib_name>`` for use with MPI.
-``MPI_<lang>_LIB_NAMES``
- A :ref:`;-list <CMake Language Lists>` of ``<lib_name>`` that will be added to the include locations of ``<lang>``.
-
-Usage of mpiexec
-^^^^^^^^^^^^^^^^
-
-When using ``MPIEXEC_EXECUTABLE`` to execute MPI applications, you should typically
-use all of the ``MPIEXEC_EXECUTABLE`` flags as follows:
-
-::
-
- ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS}
- ${MPIEXEC_PREFLAGS} EXECUTABLE ${MPIEXEC_POSTFLAGS} ARGS
-
-where ``EXECUTABLE`` is the MPI program, and ``ARGS`` are the arguments to
-pass to the MPI program.
-
-Advanced variables for using MPI
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The module can perform some advanced feature detections upon explicit request.
-
-**Important notice:** The following checks cannot be performed without *executing* an MPI test program.
-Consider the special considerations for the behavior of :command:`try_run` during cross compilation.
-Moreover, running an MPI program can cause additional issues, like a firewall notification on some systems.
-You should only enable these detections if you absolutely need the information.
-
-If the following variables are set to true, the respective search will be performed:
-
-``MPI_DETERMINE_Fortran_CAPABILITIES``
- Determine for all available Fortran bindings what the values of ``MPI_SUBARRAYS_SUPPORTED`` and
- ``MPI_ASYNC_PROTECTS_NONBLOCKING`` are and make their values available as ``MPI_Fortran_<binding>_SUBARRAYS``
- and ``MPI_Fortran_<binding>_ASYNCPROT``, where ``<binding>`` is one of ``F77_HEADER``, ``F90_MODULE`` and
- ``F08_MODULE``.
-``MPI_DETERMINE_LIBRARY_VERSION``
- For each language, find the output of ``MPI_Get_library_version`` and make it available as ``MPI_<lang>_LIBRARY_VERSION_STRING``.
- This information is usually tied to the runtime component of an MPI implementation and might differ depending on ``<lang>``.
- Note that the return value is entirely implementation defined. This information might be used to identify
- the MPI vendor and for example pick the correct one of multiple third party binaries that matches the MPI vendor.
-
-Backward Compatibility
-^^^^^^^^^^^^^^^^^^^^^^
-
-For backward compatibility with older versions of FindMPI, these
-variables are set, but deprecated:
-
-::
-
- MPI_COMPILER MPI_LIBRARY MPI_EXTRA_LIBRARY
- MPI_COMPILE_FLAGS MPI_INCLUDE_PATH MPI_LINK_FLAGS
- MPI_LIBRARIES
-
-In new projects, please use the ``MPI_<lang>_XXX`` equivalents.
-Additionally, the following variables are deprecated:
-
-``MPI_<lang>_COMPILE_FLAGS``
- Use ``MPI_<lang>_COMPILE_OPTIONS`` and ``MPI_<lang>_COMPILE_DEFINITIONS`` instead.
-``MPI_<lang>_INCLUDE_PATH``
- For consumption use ``MPI_<lang>_INCLUDE_DIRS`` and for specifying folders use ``MPI_<lang>_ADDITIONAL_INCLUDE_DIRS`` instead.
-``MPIEXEC``
- Use ``MPIEXEC_EXECUTABLE`` instead.
-#]=======================================================================]
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0057 NEW) # if IN_LIST
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-
-# Generic compiler names
-set(_MPI_C_GENERIC_COMPILER_NAMES mpicc mpcc mpicc_r mpcc_r)
-set(_MPI_CXX_GENERIC_COMPILER_NAMES mpicxx mpiCC mpcxx mpCC mpic++ mpc++
- mpicxx_r mpiCC_r mpcxx_r mpCC_r mpic++_r mpc++_r)
-set(_MPI_Fortran_GENERIC_COMPILER_NAMES mpif95 mpif95_r mpf95 mpf95_r
- mpif90 mpif90_r mpf90 mpf90_r
- mpif77 mpif77_r mpf77 mpf77_r
- mpifc)
-
-# GNU compiler names
-set(_MPI_GNU_C_COMPILER_NAMES mpigcc mpgcc mpigcc_r mpgcc_r)
-set(_MPI_GNU_CXX_COMPILER_NAMES mpig++ mpg++ mpig++_r mpg++_r mpigxx)
-set(_MPI_GNU_Fortran_COMPILER_NAMES mpigfortran mpgfortran mpigfortran_r mpgfortran_r
- mpig77 mpig77_r mpg77 mpg77_r)
-
-# Intel MPI compiler names on Windows
-if(WIN32)
- list(APPEND _MPI_C_GENERIC_COMPILER_NAMES mpicc.bat)
- list(APPEND _MPI_CXX_GENERIC_COMPILER_NAMES mpicxx.bat)
- list(APPEND _MPI_Fortran_GENERIC_COMPILER_NAMES mpifc.bat)
-
- # Intel MPI compiler names
- set(_MPI_Intel_C_COMPILER_NAMES mpiicc.bat)
- set(_MPI_Intel_CXX_COMPILER_NAMES mpiicpc.bat)
- set(_MPI_Intel_Fortran_COMPILER_NAMES mpiifort.bat mpif77.bat mpif90.bat)
-
- # Intel MPI compiler names for MSMPI
- set(_MPI_MSVC_C_COMPILER_NAMES mpicl.bat)
- set(_MPI_MSVC_CXX_COMPILER_NAMES mpicl.bat)
-else()
- # Intel compiler names
- set(_MPI_Intel_C_COMPILER_NAMES mpiicc)
- set(_MPI_Intel_CXX_COMPILER_NAMES mpiicpc mpiicxx mpiic++)
- set(_MPI_Intel_Fortran_COMPILER_NAMES mpiifort mpiif95 mpiif90 mpiif77)
-endif()
-
-# PGI compiler names
-set(_MPI_PGI_C_COMPILER_NAMES mpipgcc mppgcc)
-set(_MPI_PGI_CXX_COMPILER_NAMES mpipgCC mppgCC)
-set(_MPI_PGI_Fortran_COMPILER_NAMES mpipgf95 mpipgf90 mppgf95 mppgf90 mpipgf77 mppgf77)
-
-# XLC MPI Compiler names
-set(_MPI_XL_C_COMPILER_NAMES mpxlc mpxlc_r mpixlc mpixlc_r)
-set(_MPI_XL_CXX_COMPILER_NAMES mpixlcxx mpixlC mpixlc++ mpxlcxx mpxlc++ mpixlc++ mpxlCC
- mpixlcxx_r mpixlC_r mpixlc++_r mpxlcxx_r mpxlc++_r mpixlc++_r mpxlCC_r)
-set(_MPI_XL_Fortran_COMPILER_NAMES mpixlf95 mpixlf95_r mpxlf95 mpxlf95_r
- mpixlf90 mpixlf90_r mpxlf90 mpxlf90_r
- mpixlf77 mpixlf77_r mpxlf77 mpxlf77_r
- mpixlf mpixlf_r mpxlf mpxlf_r)
-
-# Prepend vendor-specific compiler wrappers to the list. If we don't know the compiler,
-# attempt all of them.
-# By attempting vendor-specific compiler names first, we should avoid situations where the compiler wrapper
-# stems from a proprietary MPI and won't know which compiler it's being used for. For instance, Intel MPI
-# controls its settings via the I_MPI_CC environment variables if the generic name is being used.
-# If we know which compiler we're working with, we can use the most specialized wrapper there is in order to
-# pick up the right settings for it.
-foreach (LANG IN ITEMS C CXX Fortran)
- set(_MPI_${LANG}_COMPILER_NAMES "")
- foreach (id IN ITEMS GNU Intel MSVC PGI XL)
- if (NOT CMAKE_${LANG}_COMPILER_ID OR CMAKE_${LANG}_COMPILER_ID STREQUAL id)
- foreach(_COMPILER_NAME IN LISTS _MPI_${id}_${LANG}_COMPILER_NAMES)
- list(APPEND _MPI_${LANG}_COMPILER_NAMES ${_COMPILER_NAME}${MPI_EXECUTABLE_SUFFIX})
- endforeach()
- endif()
- unset(_MPI_${id}_${LANG}_COMPILER_NAMES)
- endforeach()
- foreach(_COMPILER_NAME IN LISTS _MPI_${LANG}_GENERIC_COMPILER_NAMES)
- list(APPEND _MPI_${LANG}_COMPILER_NAMES ${_COMPILER_NAME}${MPI_EXECUTABLE_SUFFIX})
- endforeach()
- unset(_MPI_${LANG}_GENERIC_COMPILER_NAMES)
-endforeach()
-
-# Names to try for mpiexec
-# Only mpiexec commands are guaranteed to behave as described in the standard,
-# mpirun commands are not covered by the standard in any way whatsoever.
-# lamexec is the executable for LAM/MPI, srun is for SLURM or Open MPI with SLURM support.
-# srun -n X <executable> is however a valid command, so it behaves 'like' mpiexec.
-set(_MPIEXEC_NAMES_BASE mpiexec mpiexec.hydra mpiexec.mpd mpirun lamexec srun)
-
-unset(_MPIEXEC_NAMES)
-foreach(_MPIEXEC_NAME IN LISTS _MPIEXEC_NAMES_BASE)
- list(APPEND _MPIEXEC_NAMES "${_MPIEXEC_NAME}${MPI_EXECUTABLE_SUFFIX}")
-endforeach()
-unset(_MPIEXEC_NAMES_BASE)
-
-function (_MPI_check_compiler LANG QUERY_FLAG OUTPUT_VARIABLE RESULT_VARIABLE)
- if(DEFINED MPI_${LANG}_COMPILER_FLAGS)
- separate_arguments(_MPI_COMPILER_WRAPPER_OPTIONS NATIVE_COMMAND "${MPI_${LANG}_COMPILER_FLAGS}")
- else()
- separate_arguments(_MPI_COMPILER_WRAPPER_OPTIONS NATIVE_COMMAND "${MPI_COMPILER_FLAGS}")
- endif()
- execute_process(
- COMMAND ${MPI_${LANG}_COMPILER} ${_MPI_COMPILER_WRAPPER_OPTIONS} ${QUERY_FLAG}
- OUTPUT_VARIABLE WRAPPER_OUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_VARIABLE WRAPPER_OUTPUT ERROR_STRIP_TRAILING_WHITESPACE
- RESULT_VARIABLE WRAPPER_RETURN)
- # Some compiler wrappers will yield spurious zero return values, for example
- # Intel MPI tolerates unknown arguments and if the MPI wrappers loads a shared
- # library that has invalid or missing version information there would be warning
- # messages emitted by ld.so in the compiler output. In either case, we'll treat
- # the output as invalid.
- if("${WRAPPER_OUTPUT}" MATCHES "undefined reference|unrecognized|need to set|no version information available|command not found")
- set(WRAPPER_RETURN 255)
- endif()
- # Ensure that no error output might be passed upwards.
- if(NOT WRAPPER_RETURN EQUAL 0)
- unset(WRAPPER_OUTPUT)
- else()
- # Strip leading whitespace
- string(REGEX REPLACE "^ +" "" WRAPPER_OUTPUT "${WRAPPER_OUTPUT}")
- endif()
- set(${OUTPUT_VARIABLE} "${WRAPPER_OUTPUT}" PARENT_SCOPE)
- set(${RESULT_VARIABLE} "${WRAPPER_RETURN}" PARENT_SCOPE)
-endfunction()
-
-macro(_MPI_env_set_ifnot VAR VALUE)
- if(NOT DEFINED ENV{${VAR}})
- set(_MPI_${VAR}_WAS_SET FALSE)
- set(ENV{${VAR}} ${${VALUE}})
- else()
- set(_MPI_${VAR}_WAS_SET TRUE)
- endif()
-endmacro()
-
-macro(_MPI_env_unset_ifnot VAR)
- if(NOT _MPI_${VAR}_WAS_SET)
- unset(ENV{${VAR}})
- endif()
-endmacro()
-
-function (_MPI_interrogate_compiler LANG)
- unset(MPI_COMPILE_CMDLINE)
- unset(MPI_LINK_CMDLINE)
-
- unset(MPI_COMPILE_OPTIONS_WORK)
- unset(MPI_COMPILE_DEFINITIONS_WORK)
- unset(MPI_INCLUDE_DIRS_WORK)
- unset(MPI_LINK_FLAGS_WORK)
- unset(MPI_LIB_NAMES_WORK)
- unset(MPI_LIB_FULLPATHS_WORK)
-
- # Define the MPICH and Intel MPI compiler variables to the compilers set in CMake.
- # It's possible to have a per-compiler configuration in these MPI implementations and
- # a particular MPICH derivate might check compiler interoperability.
- # Intel MPI in particular does this with I_MPI_CHECK_COMPILER.
- file(TO_NATIVE_PATH "${CMAKE_${LANG}_COMPILER}" _MPI_UNDERLAYING_COMPILER)
- # On Windows, the Intel MPI batch scripts can only work with filnames - Full paths will break them.
- # Due to the lack of other MPICH-based wrappers for Visual C++, we may treat this as default.
- if(MSVC)
- get_filename_component(_MPI_UNDERLAYING_COMPILER "${_MPI_UNDERLAYING_COMPILER}" NAME)
- endif()
- if("${LANG}" STREQUAL "C")
- _MPI_env_set_ifnot(I_MPI_CC _MPI_UNDERLAYING_COMPILER)
- _MPI_env_set_ifnot(MPICH_CC _MPI_UNDERLAYING_COMPILER)
- elseif("${LANG}" STREQUAL "CXX")
- _MPI_env_set_ifnot(I_MPI_CXX _MPI_UNDERLAYING_COMPILER)
- _MPI_env_set_ifnot(MPICH_CXX _MPI_UNDERLAYING_COMPILER)
- elseif("${LANG}" STREQUAL "Fortran")
- _MPI_env_set_ifnot(I_MPI_FC _MPI_UNDERLAYING_COMPILER)
- _MPI_env_set_ifnot(MPICH_FC _MPI_UNDERLAYING_COMPILER)
- _MPI_env_set_ifnot(I_MPI_F77 _MPI_UNDERLAYING_COMPILER)
- _MPI_env_set_ifnot(MPICH_F77 _MPI_UNDERLAYING_COMPILER)
- _MPI_env_set_ifnot(I_MPI_F90 _MPI_UNDERLAYING_COMPILER)
- _MPI_env_set_ifnot(MPICH_F90 _MPI_UNDERLAYING_COMPILER)
- endif()
-
- # Set these two variables for Intel MPI:
- # - I_MPI_DEBUG_INFO_STRIP: It adds 'objcopy' lines to the compiler output. We support stripping them
- # (see below), but if we can avoid them in the first place, we should.
- # - I_MPI_FORT_BIND: By default Intel MPI makes the C/C++ compiler wrappers link Fortran bindings.
- # This is so that mixed-language code doesn't require additional libraries when linking with mpicc.
- # For our purposes, this makes little sense, since correct MPI usage from CMake already circumvenes this.
- set(_MPI_ENV_VALUE "disable")
- _MPI_env_set_ifnot(I_MPI_DEBUG_INFO_STRIP _MPI_ENV_VALUE)
- _MPI_env_set_ifnot(I_MPI_FORT_BIND _MPI_ENV_VALUE)
-
- # Check whether the -showme:compile option works. This indicates that we have either Open MPI
- # or a newer version of LAM/MPI, and implies that -showme:link will also work.
- # Open MPI also supports -show, but separates linker and compiler information
- _MPI_check_compiler(${LANG} "-showme:compile" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
- if (MPI_COMPILER_RETURN EQUAL 0)
- _MPI_check_compiler(${LANG} "-showme:link" MPI_LINK_CMDLINE MPI_COMPILER_RETURN)
-
- if (NOT MPI_COMPILER_RETURN EQUAL 0)
- unset(MPI_COMPILE_CMDLINE)
- endif()
- endif()
-
- # MPICH and MVAPICH offer -compile-info and -link-info.
- # For modern versions, both do the same as -show. However, for old versions, they do differ
- # when called for mpicxx and mpif90 and it's necessary to use them over -show in order to find the
- # removed MPI C++ bindings.
- if (NOT MPI_COMPILER_RETURN EQUAL 0)
- _MPI_check_compiler(${LANG} "-compile-info" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
-
- if (MPI_COMPILER_RETURN EQUAL 0)
- _MPI_check_compiler(${LANG} "-link-info" MPI_LINK_CMDLINE MPI_COMPILER_RETURN)
-
- if (NOT MPI_COMPILER_RETURN EQUAL 0)
- unset(MPI_COMPILE_CMDLINE)
- endif()
- endif()
- endif()
-
- # MPICH, MVAPICH2 and Intel MPI just use "-show". Open MPI also offers this, but the
- # -showme commands are more specialized.
- if (NOT MPI_COMPILER_RETURN EQUAL 0)
- _MPI_check_compiler(${LANG} "-show" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
- endif()
-
- # Older versions of LAM/MPI have "-showme". Open MPI also supports this.
- # Unknown to MPICH, MVAPICH and Intel MPI.
- if (NOT MPI_COMPILER_RETURN EQUAL 0)
- _MPI_check_compiler(${LANG} "-showme" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
- endif()
-
- if (MPI_COMPILER_RETURN EQUAL 0 AND DEFINED MPI_COMPILE_CMDLINE)
- # Intel MPI can be run with -compchk or I_MPI_CHECK_COMPILER set to 1.
- # In this case, -show will be prepended with a line to the compiler checker. This is a script that performs
- # compatibility checks and returns a non-zero exit code together with an error if something fails.
- # It has to be called as "compchk.sh <arch> <compiler>". Here, <arch> is one out of 32 (i686), 64 (ia64) or 32e (x86_64).
- # The compiler is identified by filename, and can be either the MPI compiler or the underlying compiler.
- # NOTE: It is vital to run this script while the environment variables are set up, otherwise it can check the wrong compiler.
- if("${MPI_COMPILE_CMDLINE}" MATCHES "^([^\" ]+/compchk.sh|\"[^\"]+/compchk.sh\") +([^ ]+)")
- # Now CMAKE_MATCH_1 contains the path to the compchk.sh file and CMAKE_MATCH_2 the architecture flag.
- unset(COMPILER_CHECKER_OUTPUT)
- execute_process(
- COMMAND ${CMAKE_MATCH_1} ${CMAKE_MATCH_2} ${MPI_${LANG}_COMPILER}
- OUTPUT_VARIABLE COMPILER_CHECKER_OUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_VARIABLE COMPILER_CHECKER_OUTPUT ERROR_STRIP_TRAILING_WHITESPACE
- RESULT_VARIABLE MPI_COMPILER_RETURN)
- # If it returned a non-zero value, the check below will fail and cause the interrogation to be aborted.
- if(NOT MPI_COMPILER_RETURN EQUAL 0)
- if(NOT MPI_FIND_QUIETLY)
- message(STATUS "Intel MPI compiler check failed: ${COMPILER_CHECKER_OUTPUT}")
- endif()
- else()
- # Since the check passed, we can remove the compchk.sh script.
- string(REGEX REPLACE "^([^\" ]+|\"[^\"]+\")/compchk.sh.*\n" "" MPI_COMPILE_CMDLINE "${MPI_COMPILE_CMDLINE}")
- endif()
- endif()
- endif()
-
- # Revert changes to the environment made previously
- if("${LANG}" STREQUAL "C")
- _MPI_env_unset_ifnot(I_MPI_CC)
- _MPI_env_unset_ifnot(MPICH_CC)
- elseif("${LANG}" STREQUAL "CXX")
- _MPI_env_unset_ifnot(I_MPI_CXX)
- _MPI_env_unset_ifnot(MPICH_CXX)
- elseif("${LANG}" STREQUAL "Fortran")
- _MPI_env_unset_ifnot(I_MPI_FC)
- _MPI_env_unset_ifnot(MPICH_FC)
- _MPI_env_unset_ifnot(I_MPI_F77)
- _MPI_env_unset_ifnot(MPICH_F77)
- _MPI_env_unset_ifnot(I_MPI_F90)
- _MPI_env_unset_ifnot(MPICH_F90)
- endif()
-
- _MPI_env_unset_ifnot(I_MPI_DEBUG_INFO_STRIP)
- _MPI_env_unset_ifnot(I_MPI_FORT_BIND)
-
- if (NOT (MPI_COMPILER_RETURN EQUAL 0) OR NOT (DEFINED MPI_COMPILE_CMDLINE))
- # Cannot interrogate this compiler, so exit.
- set(MPI_${LANG}_WRAPPER_FOUND FALSE PARENT_SCOPE)
- return()
- endif()
- unset(MPI_COMPILER_RETURN)
-
- # We have our command lines, but we might need to copy MPI_COMPILE_CMDLINE
- # into MPI_LINK_CMDLINE, if we didn't find the link line.
- if (NOT DEFINED MPI_LINK_CMDLINE)
- set(MPI_LINK_CMDLINE "${MPI_COMPILE_CMDLINE}")
- endif()
-
- # Visual Studio parsers permit each flag prefixed by either / or -.
- # We'll normalize this to the - syntax we use for CMake purposes anyways.
- if(MSVC)
- foreach(_MPI_VARIABLE IN ITEMS COMPILE LINK)
- # The Intel MPI wrappers on Windows prefix their output with some copyright boilerplate.
- # To prevent possible problems, we discard this text before proceeding with any further matching.
- string(REGEX REPLACE "^[^ ]+ for the Intel\\(R\\) MPI Library [^\n]+ for Windows\\*\nCopyright\\(C\\) [^\n]+, Intel Corporation\\. All rights reserved\\.\n\n" ""
- MPI_${_MPI_VARIABLE}_CMDLINE "${MPI_${_MPI_VARIABLE}_CMDLINE}")
- string(REGEX REPLACE "(^| )/" "\\1-" MPI_${_MPI_VARIABLE}_CMDLINE "${MPI_${_MPI_VARIABLE}_CMDLINE}")
- string(REPLACE "-libpath:" "-LIBPATH:" MPI_${_MPI_VARIABLE}_CMDLINE "${MPI_${_MPI_VARIABLE}_CMDLINE}")
- endforeach()
- endif()
-
- # For MSVC and cl-compatible compilers, the keyword /link indicates a point after which
- # everything following is passed to the linker. In this case, we drop all prior information
- # from the link line and treat any unknown extra flags as linker flags.
- set(_MPI_FILTERED_LINK_INFORMATION FALSE)
- if(MSVC)
- if(MPI_LINK_CMDLINE MATCHES " -(link|LINK) ")
- string(REGEX REPLACE ".+-(link|LINK) +" "" MPI_LINK_CMDLINE "${MPI_LINK_CMDLINE}")
- set(_MPI_FILTERED_LINK_INFORMATION TRUE)
- endif()
- string(REGEX REPLACE " +-(link|LINK) .+" "" MPI_COMPILE_CMDLINE "${MPI_COMPILE_CMDLINE}")
- endif()
-
- if(UNIX)
- # At this point, we obtained some output from a compiler wrapper that works.
- # We'll now try to parse it into variables with meaning to us.
- if("${LANG}" STREQUAL "Fortran")
- # If MPICH (and derivates) didn't recognize the Fortran compiler include flag during configuration,
- # they'll return a set of three commands, consisting out of a symlink command for mpif.h,
- # the actual compiler command and deletion of the created symlink.
- # Especially with M(VA)PICH-1, this appears to happen erroneously, and therefore we should translate
- # this output into an additional include directory and then drop it from the output.
- if("${MPI_COMPILE_CMDLINE}" MATCHES "^ln -s ([^\" ]+|\"[^\"]+\") mpif.h")
- get_filename_component(MPI_INCLUDE_DIRS_WORK "${CMAKE_MATCH_1}" DIRECTORY)
- string(REGEX REPLACE "^ln -s ([^\" ]+|\"[^\"]+\") mpif.h\n" "" MPI_COMPILE_CMDLINE "${MPI_COMPILE_CMDLINE}")
- string(REGEX REPLACE "^ln -s ([^\" ]+|\"[^\"]+\") mpif.h\n" "" MPI_LINK_CMDLINE "${MPI_LINK_CMDLINE}")
- string(REGEX REPLACE "\nrm -f mpif.h$" "" MPI_COMPILE_CMDLINE "${MPI_COMPILE_CMDLINE}")
- string(REGEX REPLACE "\nrm -f mpif.h$" "" MPI_LINK_CMDLINE "${MPI_LINK_CMDLINE}")
- endif()
- endif()
-
- # If Intel MPI was configured for static linkage with -static_mpi, the wrapper will by default strip
- # debug information from resulting binaries (see I_MPI_DEBUG_INFO_STRIP).
- # Since we cannot process this information into CMake logic, we need to discard the resulting objcopy
- # commands from the output.
- string(REGEX REPLACE "(^|\n)objcopy[^\n]+(\n|$)" "" MPI_COMPILE_CMDLINE "${MPI_COMPILE_CMDLINE}")
- string(REGEX REPLACE "(^|\n)objcopy[^\n]+(\n|$)" "" MPI_LINK_CMDLINE "${MPI_LINK_CMDLINE}")
- endif()
-
- # For Visual C++, extracting compiler options in a generic fashion isn't easy. However, no MPI implementation
- # on Windows seems to require any specific ones, either.
- if(NOT MSVC)
- # Extract compile options from the compile command line.
- string(REGEX MATCHALL "(^| )-f([^\" ]+|\"[^\"]+\")" MPI_ALL_COMPILE_OPTIONS "${MPI_COMPILE_CMDLINE}")
-
- foreach(_MPI_COMPILE_OPTION IN LISTS MPI_ALL_COMPILE_OPTIONS)
- string(REGEX REPLACE "^ " "" _MPI_COMPILE_OPTION "${_MPI_COMPILE_OPTION}")
-
- # Ignore -fstack-protector directives: These occur on MPICH and MVAPICH when the libraries
- # themselves were built with this flag. However, this flag is unrelated to using MPI, and
- # we won't match the accompanying --param-ssp-size and -Wp,-D_FORTIFY_SOURCE flags and therefore
- # produce inconsistent results with the regularly flags.
- # Similarly, aliasing flags do not belong into our flag array.
- if(NOT "${_MPI_COMPILE_OPTION}" MATCHES "^-f((no-|)(stack-protector|strict-aliasing)|PI[CE]|pi[ce])")
- list(APPEND MPI_COMPILE_OPTIONS_WORK "${_MPI_COMPILE_OPTION}")
- endif()
- endforeach()
- endif()
-
- # For GNU-style compilers, it's possible to prefix includes and definitions with certain flags to pass them
- # only to the preprocessor. For CMake purposes, we need to treat, but ignore such scopings.
- # Note that we do not support spaces between the arguments, i.e. -Wp,-I -Wp,/opt/mympi will not be parsed
- # correctly. This form does not seem to occur in any common MPI implementation, however.
- if(NOT MSVC)
- set(_MPI_PREPROCESSOR_FLAG_REGEX "(-Wp,|-Xpreprocessor )?")
- else()
- set(_MPI_PREPROCESSOR_FLAG_REGEX "")
- endif()
-
- # Same deal as above, for the definitions.
- string(REGEX MATCHALL "(^| )${_MPI_PREPROCESSOR_FLAG_REGEX}-D *([^\" ]+|\"[^\"]+\")" MPI_ALL_COMPILE_DEFINITIONS "${MPI_COMPILE_CMDLINE}")
-
- foreach(_MPI_COMPILE_DEFINITION IN LISTS MPI_ALL_COMPILE_DEFINITIONS)
- string(REGEX REPLACE "^ ?${_MPI_PREPROCESSOR_FLAG_REGEX}-D *" "" _MPI_COMPILE_DEFINITION "${_MPI_COMPILE_DEFINITION}")
- string(REPLACE "\"" "" _MPI_COMPILE_DEFINITION "${_MPI_COMPILE_DEFINITION}")
- if(NOT "${_MPI_COMPILE_DEFINITION}" MATCHES "^_FORTIFY_SOURCE.*")
- list(APPEND MPI_COMPILE_DEFINITIONS_WORK "${_MPI_COMPILE_DEFINITION}")
- endif()
- endforeach()
-
- # Extract include paths from compile command line
- string(REGEX MATCHALL "(^| )${_MPI_PREPROCESSOR_FLAG_REGEX}${CMAKE_INCLUDE_FLAG_${LANG}} *([^\" ]+|\"[^\"]+\")"
- MPI_ALL_INCLUDE_PATHS "${MPI_COMPILE_CMDLINE}")
-
- # If extracting failed to work, we'll try using -showme:incdirs.
- # Unlike before, we do this without the environment variables set up, but since only MPICH derivates are affected by any of them, and
- # -showme:... is only supported by Open MPI and LAM/MPI, this isn't a concern.
- if (NOT MPI_ALL_INCLUDE_PATHS)
- _MPI_check_compiler(${LANG} "-showme:incdirs" MPI_INCDIRS_CMDLINE MPI_INCDIRS_COMPILER_RETURN)
- if(MPI_INCDIRS_COMPILER_RETURN)
- separate_arguments(MPI_ALL_INCLUDE_PATHS NATIVE_COMMAND "${MPI_INCDIRS_CMDLINE}")
- endif()
- endif()
-
- foreach(_MPI_INCLUDE_PATH IN LISTS MPI_ALL_INCLUDE_PATHS)
- string(REGEX REPLACE "^ ?${_MPI_PREPROCESSOR_FLAG_REGEX}${CMAKE_INCLUDE_FLAG_${LANG}} *" "" _MPI_INCLUDE_PATH "${_MPI_INCLUDE_PATH}")
- string(REPLACE "\"" "" _MPI_INCLUDE_PATH "${_MPI_INCLUDE_PATH}")
- get_filename_component(_MPI_INCLUDE_PATH "${_MPI_INCLUDE_PATH}" REALPATH)
- list(APPEND MPI_INCLUDE_DIRS_WORK "${_MPI_INCLUDE_PATH}")
- endforeach()
-
- # The next step are linker flags and library directories. Here, we first take the flags given in raw -L or -LIBPATH: syntax.
- string(REGEX MATCHALL "(^| )${CMAKE_LIBRARY_PATH_FLAG} *([^\" ]+|\"[^\"]+\")" MPI_DIRECT_LINK_PATHS "${MPI_LINK_CMDLINE}")
- foreach(_MPI_LPATH IN LISTS MPI_DIRECT_LINK_PATHS)
- string(REGEX REPLACE "(^| )${CMAKE_LIBRARY_PATH_FLAG} *" "" _MPI_LPATH "${_MPI_LPATH}")
- list(APPEND MPI_ALL_LINK_PATHS "${_MPI_LPATH}")
- endforeach()
-
- # If the link commandline hasn't been filtered (e.g. when using MSVC and /link), we need to extract the relevant parts first.
- if(NOT _MPI_FILTERED_LINK_INFORMATION)
- string(REGEX MATCHALL "(^| )(-Wl,|-Xlinker +)([^\" ]+|\"[^\"]+\")" MPI_LINK_FLAGS "${MPI_LINK_CMDLINE}")
-
- # In this case, we could also find some indirectly given linker paths, e.g. prefixed by -Xlinker or -Wl,
- # Since syntaxes like -Wl,-L -Wl,/my/path/to/lib are also valid, we parse these paths by first removing -Wl, and -Xlinker
- # from the list of filtered flags and then parse the remainder of the output.
- string(REGEX REPLACE "(-Wl,|-Xlinker +)" "" MPI_LINK_FLAGS_RAW "${MPI_LINK_FLAGS}")
-
- # Now we can parse the leftover output. Note that spaces can now be handled since the above example would reduce to
- # -L /my/path/to/lib and can be extracted correctly.
- string(REGEX MATCHALL "^(${CMAKE_LIBRARY_PATH_FLAG},? *|--library-path=)([^\" ]+|\"[^\"]+\")"
- MPI_INDIRECT_LINK_PATHS "${MPI_LINK_FLAGS_RAW}")
-
- foreach(_MPI_LPATH IN LISTS MPI_INDIRECT_LINK_PATHS)
- string(REGEX REPLACE "^(${CMAKE_LIBRARY_PATH_FLAG},? *|--library-path=)" "" _MPI_LPATH "${_MPI_LPATH}")
- list(APPEND MPI_ALL_LINK_PATHS "${_MPI_LPATH}")
- endforeach()
-
- # We need to remove the flags we extracted from the linker flag list now.
- string(REGEX REPLACE "(^| )(-Wl,|-Xlinker +)(${CMAKE_LIBRARY_PATH_FLAG},? *(-Wl,|-Xlinker +)?|--library-path=)([^\" ]+|\"[^\"]+\")" ""
- MPI_LINK_CMDLINE_FILTERED "${MPI_LINK_CMDLINE}")
-
- # Some MPI implementations pass on options they themselves were built with. Since -z,noexecstack is a common
- # hardening, we should strip it. In general, the -z options should be undesirable.
- string(REGEX REPLACE "(^| )-Wl,-z(,[^ ]+| +-Wl,[^ ]+)" "" MPI_LINK_CMDLINE_FILTERED "${MPI_LINK_CMDLINE_FILTERED}")
- string(REGEX REPLACE "(^| )-Xlinker +-z +-Xlinker +[^ ]+" "" MPI_LINK_CMDLINE_FILTERED "${MPI_LINK_CMDLINE_FILTERED}")
-
- # We only consider options of the form -Wl or -Xlinker:
- string(REGEX MATCHALL "(^| )(-Wl,|-Xlinker +)([^\" ]+|\"[^\"]+\")" MPI_ALL_LINK_FLAGS "${MPI_LINK_CMDLINE_FILTERED}")
-
- # As a next step, we assemble the linker flags extracted in a preliminary flags string
- foreach(_MPI_LINK_FLAG IN LISTS MPI_ALL_LINK_FLAGS)
- string(STRIP "${_MPI_LINK_FLAG}" _MPI_LINK_FLAG)
- if (MPI_LINK_FLAGS_WORK)
- string(APPEND MPI_LINK_FLAGS_WORK " ${_MPI_LINK_FLAG}")
- else()
- set(MPI_LINK_FLAGS_WORK "${_MPI_LINK_FLAG}")
- endif()
- endforeach()
- else()
- # In the filtered case, we obtain the link time flags by just stripping the library paths.
- string(REGEX REPLACE "(^| )${CMAKE_LIBRARY_PATH_FLAG} *([^\" ]+|\"[^\"]+\")" "" MPI_LINK_CMDLINE_FILTERED "${MPI_LINK_CMDLINE}")
- endif()
-
- # If we failed to extract any linker paths, we'll try using the -showme:libdirs option with the MPI compiler.
- # This will return a list of folders, not a set of flags!
- if (NOT MPI_ALL_LINK_PATHS)
- _MPI_check_compiler(${LANG} "-showme:libdirs" MPI_LIBDIRS_CMDLINE MPI_LIBDIRS_COMPILER_RETURN)
- if(MPI_LIBDIRS_COMPILER_RETURN)
- separate_arguments(MPI_ALL_LINK_PATHS NATIVE_COMMAND "${MPI_LIBDIRS_CMDLINE}")
- endif()
- endif()
-
- # We need to remove potential quotes and convert the paths to CMake syntax while resolving them, too.
- foreach(_MPI_LPATH IN LISTS MPI_ALL_LINK_PATHS)
- string(REPLACE "\"" "" _MPI_LPATH "${_MPI_LPATH}")
- get_filename_component(_MPI_LPATH "${_MPI_LPATH}" REALPATH)
- list(APPEND MPI_LINK_DIRECTORIES_WORK "${_MPI_LPATH}")
- endforeach()
-
- # Extract the set of libraries to link against from the link command line
- # This only makes sense if CMAKE_LINK_LIBRARY_FLAG is defined, i.e. a -lxxxx syntax is supported by the compiler.
- if(CMAKE_LINK_LIBRARY_FLAG)
- string(REGEX MATCHALL "(^| )${CMAKE_LINK_LIBRARY_FLAG}([^\" ]+|\"[^\"]+\")"
- MPI_LIBNAMES "${MPI_LINK_CMDLINE}")
-
- foreach(_MPI_LIB_NAME IN LISTS MPI_LIBNAMES)
- string(REGEX REPLACE "^ ?${CMAKE_LINK_LIBRARY_FLAG}" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
- string(REPLACE "\"" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
- list(APPEND MPI_LIB_NAMES_WORK "${_MPI_LIB_NAME}")
- endforeach()
- endif()
-
- # Treat linker objects given by full path, for example static libraries, import libraries
- # or shared libraries if there aren't any import libraries in use on the system.
- # Note that we do not consider CMAKE_<TYPE>_LIBRARY_PREFIX intentionally here: The linker will for a given file
- # decide how to link it based on file type, not based on a prefix like 'lib'.
- set(_MPI_LIB_SUFFIX_REGEX "${CMAKE_STATIC_LIBRARY_SUFFIX}")
- if(DEFINED CMAKE_IMPORT_LIBRARY_SUFFIX)
- if(NOT ("${CMAKE_IMPORT_LIBRARY_SUFFIX}" STREQUAL "${CMAKE_STATIC_LIBRARY_SUFFIX}"))
- string(APPEND _MPI_SUFFIX_REGEX "|${CMAKE_IMPORT_LIBRARY_SUFFIX}")
- endif()
- else()
- string(APPEND _MPI_LIB_SUFFIX_REGEX "|${CMAKE_SHARED_LIBRARY_SUFFIX}")
- endif()
- set(_MPI_LIB_NAME_REGEX "(([^\" ]+(${_MPI_LIB_SUFFIX_REGEX}))|(\"[^\"]+(${_MPI_LIB_SUFFIX_REGEX})\"))( +|$)")
- string(REPLACE "." "\\." _MPI_LIB_NAME_REGEX "${_MPI_LIB_NAME_REGEX}")
-
- string(REGEX MATCHALL "${_MPI_LIB_NAME_REGEX}" MPI_LIBNAMES "${MPI_LINK_CMDLINE}")
- foreach(_MPI_LIB_NAME IN LISTS MPI_LIBNAMES)
- string(REGEX REPLACE "^ +\"?|\"? +$" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
- get_filename_component(_MPI_LIB_PATH "${_MPI_LIB_NAME}" DIRECTORY)
- if(NOT "${_MPI_LIB_PATH}" STREQUAL "")
- list(APPEND MPI_LIB_FULLPATHS_WORK "${_MPI_LIB_NAME}")
- else()
- list(APPEND MPI_LIB_NAMES_WORK "${_MPI_LIB_NAME}")
- endif()
- endforeach()
-
- # Save the explicitly given link directories
- set(MPI_LINK_DIRECTORIES_LEFTOVER "${MPI_LINK_DIRECTORIES_WORK}")
-
- # An MPI compiler wrapper could have its MPI libraries in the implictly
- # linked directories of the compiler itself.
- if(DEFINED CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES)
- list(APPEND MPI_LINK_DIRECTORIES_WORK "${CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES}")
- endif()
-
- # Determine full path names for all of the libraries that one needs
- # to link against in an MPI program
- unset(MPI_PLAIN_LIB_NAMES_WORK)
- foreach(_MPI_LIB_NAME IN LISTS MPI_LIB_NAMES_WORK)
- get_filename_component(_MPI_PLAIN_LIB_NAME "${_MPI_LIB_NAME}" NAME_WE)
- list(APPEND MPI_PLAIN_LIB_NAMES_WORK "${_MPI_PLAIN_LIB_NAME}")
- find_library(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY
- NAMES "${_MPI_LIB_NAME}" "lib${_MPI_LIB_NAME}"
- HINTS ${MPI_LINK_DIRECTORIES_WORK}
- DOC "Location of the ${_MPI_PLAIN_LIB_NAME} library for MPI"
- )
- mark_as_advanced(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY)
- # Remove the directory from the remainder list.
- if(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY)
- get_filename_component(_MPI_TAKEN_DIRECTORY "${MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY}" DIRECTORY)
- list(REMOVE_ITEM MPI_LINK_DIRECTORIES_LEFTOVER "${_MPI_TAKEN_DIRECTORY}")
- endif()
- endforeach()
-
- # Add the link directories given explicitly that we haven't used back as linker directories.
- if(NOT WIN32)
- foreach(_MPI_LINK_DIRECTORY IN LISTS MPI_LINK_DIRECTORIES_LEFTOVER)
- file(TO_NATIVE_PATH "${_MPI_LINK_DIRECTORY}" _MPI_LINK_DIRECTORY_ACTUAL)
- string(FIND "${_MPI_LINK_DIRECTORY_ACTUAL}" " " _MPI_LINK_DIRECTORY_CONTAINS_SPACE)
- if(NOT _MPI_LINK_DIRECTORY_CONTAINS_SPACE EQUAL -1)
- set(_MPI_LINK_DIRECTORY_ACTUAL "\"${_MPI_LINK_DIRECTORY_ACTUAL}\"")
- endif()
- if(MPI_LINK_FLAGS_WORK)
- string(APPEND MPI_LINK_FLAGS_WORK " ${CMAKE_LIBRARY_PATH_FLAG}${_MPI_LINK_DIRECTORY_ACTUAL}")
- else()
- set(MPI_LINK_FLAGS_WORK "${CMAKE_LIBRARY_PATH_FLAG}${_MPI_LINK_DIRECTORY_ACTUAL}")
- endif()
- endforeach()
- endif()
-
- # Deal with the libraries given with full path next
- unset(MPI_DIRECT_LIB_NAMES_WORK)
- foreach(_MPI_LIB_FULLPATH IN LISTS MPI_LIB_FULLPATHS_WORK)
- get_filename_component(_MPI_PLAIN_LIB_NAME "${_MPI_LIB_FULLPATH}" NAME_WE)
- list(APPEND MPI_DIRECT_LIB_NAMES_WORK "${_MPI_PLAIN_LIB_NAME}")
- set(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY "${_MPI_LIB_FULLPATH}" CACHE FILEPATH "Location of the ${_MPI_PLAIN_LIB_NAME} library for MPI")
- mark_as_advanced(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY)
- endforeach()
- # Directly linked objects should be linked first in case some generic linker flags are needed for them.
- if(MPI_DIRECT_LIB_NAMES_WORK)
- set(MPI_PLAIN_LIB_NAMES_WORK "${MPI_DIRECT_LIB_NAMES_WORK};${MPI_PLAIN_LIB_NAMES_WORK}")
- endif()
-
- # MPI might require pthread to work. The above mechanism wouldn't detect it, but we need to
- # link it in that case. -lpthread is covered by the normal library treatment on the other hand.
- if("${MPI_COMPILE_CMDLINE}" MATCHES "-pthread")
- list(APPEND MPI_COMPILE_OPTIONS_WORK "-pthread")
- if(MPI_LINK_FLAGS_WORK)
- string(APPEND MPI_LINK_FLAGS_WORK " -pthread")
- else()
- set(MPI_LINK_FLAGS_WORK "-pthread")
- endif()
- endif()
-
- if(MPI_${LANG}_EXTRA_COMPILE_DEFINITIONS)
- list(APPEND MPI_COMPILE_DEFINITIONS_WORK "${MPI_${LANG}_EXTRA_COMPILE_DEFINITIONS}")
- endif()
- if(MPI_${LANG}_EXTRA_COMPILE_OPTIONS)
- list(APPEND MPI_COMPILE_OPTIONS_WORK "${MPI_${LANG}_EXTRA_COMPILE_OPTIONS}")
- endif()
- if(MPI_${LANG}_EXTRA_LIB_NAMES)
- list(APPEND MPI_PLAIN_LIB_NAMES_WORK "${MPI_${LANG}_EXTRA_LIB_NAMES}")
- endif()
-
- # If we found MPI, set up all of the appropriate cache entries
- if(NOT MPI_${LANG}_COMPILE_OPTIONS)
- set(MPI_${LANG}_COMPILE_OPTIONS ${MPI_COMPILE_OPTIONS_WORK} CACHE STRING "MPI ${LANG} compilation options" FORCE)
- endif()
- if(NOT MPI_${LANG}_COMPILE_DEFINITIONS)
- set(MPI_${LANG}_COMPILE_DEFINITIONS ${MPI_COMPILE_DEFINITIONS_WORK} CACHE STRING "MPI ${LANG} compilation definitions" FORCE)
- endif()
- if(NOT MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)
- set(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS ${MPI_INCLUDE_DIRS_WORK} CACHE STRING "MPI ${LANG} additional include directories" FORCE)
- endif()
- if(NOT MPI_${LANG}_LINK_FLAGS)
- set(MPI_${LANG}_LINK_FLAGS ${MPI_LINK_FLAGS_WORK} CACHE STRING "MPI ${LANG} linker flags" FORCE)
- endif()
- if(NOT MPI_${LANG}_LIB_NAMES)
- set(MPI_${LANG}_LIB_NAMES ${MPI_PLAIN_LIB_NAMES_WORK} CACHE STRING "MPI ${LANG} libraries to link against" FORCE)
- endif()
- set(MPI_${LANG}_WRAPPER_FOUND TRUE PARENT_SCOPE)
-endfunction()
-
-function(_MPI_guess_settings LANG)
- set(MPI_GUESS_FOUND FALSE)
- # Currently only MSMPI and MPICH2 on Windows are supported, so we can skip this search if we're not targeting that.
- if(WIN32)
- # MSMPI
-
- # The environment variables MSMPI_INC and MSMPILIB32/64 are the only ways of locating the MSMPI_SDK,
- # which is installed separately from the runtime. Thus it's possible to have mpiexec but not MPI headers
- # or import libraries and vice versa.
- if(NOT MPI_GUESS_LIBRARY_NAME OR "${MPI_GUESS_LIBRARY_NAME}" STREQUAL "MSMPI")
- # We first attempt to locate the msmpi.lib. Should be find it, we'll assume that the MPI present is indeed
- # Microsoft MPI.
- if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
- set(MPI_MSMPI_LIB_PATH "$ENV{MSMPI_LIB64}")
- set(MPI_MSMPI_INC_PATH_EXTRA "$ENV{MSMPI_INC}/x64")
- else()
- set(MPI_MSMPI_LIB_PATH "$ENV{MSMPI_LIB32}")
- set(MPI_MSMPI_INC_PATH_EXTRA "$ENV{MSMPI_INC}/x86")
- endif()
-
- find_library(MPI_msmpi_LIBRARY
- NAMES msmpi
- HINTS ${MPI_MSMPI_LIB_PATH}
- DOC "Location of the msmpi library for Microsoft MPI")
- mark_as_advanced(MPI_msmpi_LIBRARY)
-
- if(MPI_msmpi_LIBRARY)
- # Next, we attempt to locate the MPI header. Note that for Fortran we know that mpif.h is a way
- # MSMPI can be used and therefore that header has to be present.
- if(NOT MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)
- get_filename_component(MPI_MSMPI_INC_DIR "$ENV{MSMPI_INC}" REALPATH)
- set(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS "${MPI_MSMPI_INC_DIR}" CACHE STRING "MPI ${LANG} additional include directories" FORCE)
- unset(MPI_MSMPI_INC_DIR)
- endif()
-
- # For MSMPI, one can compile the MPI module by building the mpi.f90 shipped with the MSMPI SDK,
- # thus it might be present or provided by the user. Figuring out which is supported is done later on.
- # The PGI Fortran compiler for instance ships a prebuilt set of modules in its own include folder.
- # Should a user be employing PGI or have built its own set and provided it via cache variables, the
- # splitting routine would have located the module files.
-
- # For C and C++, we're done here (MSMPI does not ship the MPI-2 C++ bindings) - however, for Fortran
- # we need some extra library to glue Fortran support together:
- # MSMPI ships 2-4 Fortran libraries, each for different Fortran compiler behaviors. The library names
- # ending with a c are using the cdecl calling convention, whereas those ending with an s are for Fortran
- # implementations using stdcall. Therefore, the 64-bit MSMPI only ships those ending in 'c', whereas the 32-bit
- # has both variants available.
- # The second difference is the last but one letter, if it's an e(nd), the length of a string argument is
- # passed by the Fortran compiler after all other arguments on the parameter list, if it's an m(ixed),
- # it's passed immediately after the string address.
-
- # To summarize:
- # - msmpifec: CHARACTER length passed after the parameter list and using cdecl calling convention
- # - msmpifmc: CHARACTER length passed directly after string address and using cdecl calling convention
- # - msmpifes: CHARACTER length passed after the parameter list and using stdcall calling convention
- # - msmpifms: CHARACTER length passed directly after string address and using stdcall calling convention
- # 32-bit MSMPI ships all four libraries, 64-bit MSMPI ships only the first two.
-
- # As is, Intel Fortran and PGI Fortran both use the 'ec' variant of the calling convention, whereas
- # the old Compaq Visual Fortran compiler defaulted to the 'ms' version. It's possible to make Intel Fortran
- # use the CVF calling convention using /iface:cvf, but we assume - and this is also assumed in FortranCInterface -
- # this isn't the case. It's also possible to make CVF use the 'ec' variant, using /iface=(cref,nomixed_str_len_arg).
-
- # Our strategy is now to locate all libraries, but enter msmpifec into the LIB_NAMES array.
- # Should this not be adequate it's a straightforward way for a user to change the LIB_NAMES array and
- # have his library found. Still, this should not be necessary outside of exceptional cases, as reasoned.
- if ("${LANG}" STREQUAL "Fortran")
- set(MPI_MSMPI_CALLINGCONVS c)
- if("${CMAKE_SIZEOF_VOID_P}" EQUAL 4)
- list(APPEND MPI_MSMPI_CALLINGCONVS s)
- endif()
- foreach(mpistrlenpos IN ITEMS e m)
- foreach(mpicallingconv IN LISTS MPI_MSMPI_CALLINGCONVS)
- find_library(MPI_msmpif${mpistrlenpos}${mpicallingconv}_LIBRARY
- NAMES msmpif${mpistrlenpos}${mpicallingconv}
- HINTS "${MPI_MSMPI_LIB_PATH}"
- DOC "Location of the msmpi${mpistrlenpos}${mpicallingconv} library for Microsoft MPI")
- mark_as_advanced(MPI_msmpif${mpistrlenpos}${mpicallingconv}_LIBRARY)
- endforeach()
- endforeach()
- if(NOT MPI_${LANG}_LIB_NAMES)
- set(MPI_${LANG}_LIB_NAMES "msmpi;msmpifec" CACHE STRING "MPI ${LANG} libraries to link against" FORCE)
- endif()
-
- # At this point we're *not* done. MSMPI requires an additional include file for Fortran giving the value
- # of MPI_AINT. This file is called mpifptr.h located in the x64 and x86 subfolders, respectively.
- find_path(MPI_mpifptr_INCLUDE_DIR
- NAMES "mpifptr.h"
- HINTS "${MPI_MSMPI_INC_PATH_EXTRA}"
- DOC "Location of the mpifptr.h extra header for Microsoft MPI")
- if(NOT MPI_${LANG}_ADDITIONAL_INCLUDE_VARS)
- set(MPI_${LANG}_ADDITIONAL_INCLUDE_VARS "mpifptr" CACHE STRING "MPI ${LANG} additional include directory variables, given in the form MPI_<name>_INCLUDE_DIR." FORCE)
- endif()
- mark_as_advanced(MPI_${LANG}_ADDITIONAL_INCLUDE_VARS MPI_mpifptr_INCLUDE_DIR)
- else()
- if(NOT MPI_${LANG}_LIB_NAMES)
- set(MPI_${LANG}_LIB_NAMES "msmpi" CACHE STRING "MPI ${LANG} libraries to link against" FORCE)
- endif()
- endif()
- mark_as_advanced(MPI_${LANG}_LIB_NAMES)
- set(MPI_GUESS_FOUND TRUE)
-
- if(_MPIEXEC_NOT_GIVEN)
- unset(MPIEXEC_EXECUTABLE CACHE)
- endif()
-
- find_program(MPIEXEC_EXECUTABLE
- NAMES mpiexec
- HINTS $ENV{MSMPI_BIN} "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPI;InstallRoot]/Bin"
- DOC "Executable for running MPI programs.")
- endif()
- endif()
-
- # At this point there's not many MPIs that we could still consider.
- # OpenMPI 1.6.x and below supported Windows, but these ship compiler wrappers that still work.
- # The only other relevant MPI implementation without a wrapper is MPICH2, which had Windows support in 1.4.1p1 and older.
- if(NOT MPI_GUESS_FOUND AND (NOT MPI_GUESS_LIBRARY_NAME OR "${MPI_GUESS_LIBRARY_NAME}" STREQUAL "MPICH2"))
- set(MPI_MPICH_PREFIX_PATHS
- "$ENV{ProgramW6432}/MPICH2/lib"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH\\SMPD;binary]/../lib"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH2;Path]/lib"
- )
-
- # All of C, C++ and Fortran will need mpi.lib, so we'll look for this first
- find_library(MPI_mpi_LIBRARY
- NAMES mpi
- HINTS ${MPI_MPICH_PREFIX_PATHS})
- mark_as_advanced(MPI_mpi_LIBRARY)
- # If we found mpi.lib, we detect the rest of MPICH2
- if(MPI_mpi_LIBRARY)
- set(MPI_MPICH_LIB_NAMES "mpi")
- # If MPI-2 C++ bindings are requested, we need to locate cxx.lib as well.
- # Otherwise, MPICH_SKIP_MPICXX will be defined and these bindings aren't needed.
- if("${LANG}" STREQUAL "CXX" AND NOT MPI_CXX_SKIP_MPICXX)
- find_library(MPI_cxx_LIBRARY
- NAMES cxx
- HINTS ${MPI_MPICH_PREFIX_PATHS})
- mark_as_advanced(MPI_cxx_LIBRARY)
- list(APPEND MPI_MPICH_LIB_NAMES "cxx")
- # For Fortran, MPICH2 provides three different libraries:
- # fmpich2.lib which uses uppercase symbols and cdecl,
- # fmpich2s.lib which uses uppercase symbols and stdcall (32-bit only),
- # fmpich2g.lib which uses lowercase symbols with double underscores and cdecl.
- # fmpich2s.lib would be useful for Compaq Visual Fortran, fmpich2g.lib has to be used with GNU g77 and is also
- # provided in the form of an .a archive for MinGW and Cygwin. From our perspective, fmpich2.lib is the only one
- # we need to try, and if it doesn't work with the given Fortran compiler we'd find out later on during validation
- elseif("${LANG}" STREQUAL "Fortran")
- find_library(MPI_fmpich2_LIBRARY
- NAMES fmpich2
- HINTS ${MPI_MPICH_PREFIX_PATHS})
- find_library(MPI_fmpich2s_LIBRARY
- NAMES fmpich2s
- HINTS ${MPI_MPICH_PREFIX_PATHS})
- find_library(MPI_fmpich2g_LIBRARY
- NAMES fmpich2g
- HINTS ${MPI_MPICH_PREFIX_PATHS})
- mark_as_advanced(MPI_fmpich2_LIBRARY MPI_fmpich2s_LIBRARY MPI_fmpich2g_LIBRARY)
- list(APPEND MPI_MPICH_LIB_NAMES "fmpich2")
- endif()
-
- if(NOT MPI_${LANG}_LIB_NAMES)
- set(MPI_${LANG}_LIB_NAMES "${MPI_MPICH_LIB_NAMES}" CACHE STRING "MPI ${LANG} libraries to link against" FORCE)
- endif()
- unset(MPI_MPICH_LIB_NAMES)
-
- if(NOT MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)
- # For MPICH2, the include folder would be in ../include relative to the library folder.
- get_filename_component(MPI_MPICH_ROOT_DIR "${MPI_mpi_LIBRARY}" DIRECTORY)
- get_filename_component(MPI_MPICH_ROOT_DIR "${MPI_MPICH_ROOT_DIR}" DIRECTORY)
- if(IS_DIRECTORY "${MPI_MPICH_ROOT_DIR}/include")
- set(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS "${MPI_MPICH_ROOT_DIR}/include" CACHE STRING "MPI ${LANG} additional include directory variables, given in the form MPI_<name>_INCLUDE_DIR." FORCE)
- endif()
- unset(MPI_MPICH_ROOT_DIR)
- endif()
- set(MPI_GUESS_FOUND TRUE)
-
- if(_MPIEXEC_NOT_GIVEN)
- unset(MPIEXEC_EXECUTABLE CACHE)
- endif()
-
- find_program(MPIEXEC_EXECUTABLE
- NAMES ${_MPIEXEC_NAMES}
- HINTS "$ENV{ProgramW6432}/MPICH2/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH\\SMPD;binary]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH2;Path]/bin"
- DOC "Executable for running MPI programs.")
- endif()
- unset(MPI_MPICH_PREFIX_PATHS)
- endif()
- endif()
- set(MPI_${LANG}_GUESS_FOUND "${MPI_GUESS_FOUND}" PARENT_SCOPE)
-endfunction()
-
-function(_MPI_adjust_compile_definitions LANG)
- if("${LANG}" STREQUAL "CXX")
- # To disable the C++ bindings, we need to pass some definitions since the mpi.h header has to deal with both C and C++
- # bindings in MPI-2.
- if(MPI_CXX_SKIP_MPICXX AND NOT MPI_${LANG}_COMPILE_DEFINITIONS MATCHES "SKIP_MPICXX")
- # MPICH_SKIP_MPICXX is being used in MPICH and derivatives like MVAPICH or Intel MPI
- # OMPI_SKIP_MPICXX is being used in Open MPI
- # _MPICC_H is being used for IBM Platform MPI
- list(APPEND MPI_${LANG}_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX" "OMPI_SKIP_MPICXX" "_MPICC_H")
- set(MPI_${LANG}_COMPILE_DEFINITIONS "${MPI_${LANG}_COMPILE_DEFINITIONS}" CACHE STRING "MPI ${LANG} compilation definitions" FORCE)
- endif()
- endif()
-endfunction()
-
-macro(_MPI_assemble_libraries LANG)
- set(MPI_${LANG}_LIBRARIES "")
- # Only for libraries do we need to check whether the compiler's linking stage is separate.
- if(NOT "${MPI_${LANG}_COMPILER}" STREQUAL "${CMAKE_${LANG}_COMPILER}" OR NOT MPI_${LANG}_WORKS_IMPLICIT)
- foreach(mpilib IN LISTS MPI_${LANG}_LIB_NAMES)
- list(APPEND MPI_${LANG}_LIBRARIES ${MPI_${mpilib}_LIBRARY})
- endforeach()
- endif()
-endmacro()
-
-macro(_MPI_assemble_include_dirs LANG)
- if("${MPI_${LANG}_COMPILER}" STREQUAL "${CMAKE_${LANG}_COMPILER}")
- set(MPI_${LANG}_INCLUDE_DIRS "")
- else()
- set(MPI_${LANG}_INCLUDE_DIRS "${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS}")
- if("${LANG}" MATCHES "(C|CXX)")
- if(MPI_${LANG}_HEADER_DIR)
- list(APPEND MPI_${LANG}_INCLUDE_DIRS "${MPI_${LANG}_HEADER_DIR}")
- endif()
- else() # Fortran
- if(MPI_${LANG}_F77_HEADER_DIR)
- list(APPEND MPI_${LANG}_INCLUDE_DIRS "${MPI_${LANG}_F77_HEADER_DIR}")
- endif()
- if(MPI_${LANG}_MODULE_DIR AND NOT "${MPI_${LANG}_MODULE_DIR}" IN_LIST MPI_${LANG}_INCLUDE_DIRS)
- list(APPEND MPI_${LANG}_INCLUDE_DIRS "${MPI_${LANG}_MODULE_DIR}")
- endif()
- endif()
- if(MPI_${LANG}_ADDITIONAL_INCLUDE_VARS)
- foreach(MPI_ADDITIONAL_INC_DIR IN LISTS MPI_${LANG}_ADDITIONAL_INCLUDE_VARS)
- list(APPEND MPI_${LANG}_INCLUDE_DIRS "${MPI_${MPI_ADDITIONAL_INC_DIR}_INCLUDE_DIR}")
- endforeach()
- endif()
- endif()
-endmacro()
-
-function(_MPI_split_include_dirs LANG)
- if("${MPI_${LANG}_COMPILER}" STREQUAL "${CMAKE_${LANG}_COMPILER}")
- return()
- endif()
- # Backwards compatibility: Search INCLUDE_PATH if given.
- if(MPI_${LANG}_INCLUDE_PATH)
- list(APPEND MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS "${MPI_${LANG}_INCLUDE_PATH}")
- endif()
-
- # We try to find the headers/modules among those paths (and system paths)
- # For C/C++, we just need to have a look for mpi.h.
- if("${LANG}" MATCHES "(C|CXX)")
- find_path(MPI_${LANG}_HEADER_DIR "mpi.h"
- HINTS ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS}
- )
- mark_as_advanced(MPI_${LANG}_HEADER_DIR)
- if(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)
- list(REMOVE_ITEM MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS "${MPI_${LANG}_HEADER_DIR}")
- endif()
- # Fortran is more complicated here: An implementation could provide
- # any of the Fortran 77/90/2008 APIs for MPI. For example, MSMPI
- # only provides Fortran 77 and - if mpi.f90 is built - potentially
- # a Fortran 90 module.
- elseif("${LANG}" STREQUAL "Fortran")
- find_path(MPI_${LANG}_F77_HEADER_DIR "mpif.h"
- HINTS ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS}
- )
- find_path(MPI_${LANG}_MODULE_DIR
- NAMES "mpi.mod" "mpi_f08.mod"
- HINTS ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS}
- )
- if(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)
- list(REMOVE_ITEM MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS
- "${MPI_${LANG}_F77_HEADER_DIR}"
- "${MPI_${LANG}_MODULE_DIR}"
- )
- endif()
- mark_as_advanced(MPI_${LANG}_F77_HEADER_DIR MPI_${LANG}_MODULE_DIR)
- endif()
- # Remove duplicates and default system directories from the list.
- if(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)
- list(REMOVE_DUPLICATES MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)
- foreach(MPI_IMPLICIT_INC_DIR IN LISTS CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES)
- list(REMOVE_ITEM MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS ${MPI_IMPLICIT_INC_DIR})
- endforeach()
- endif()
- set(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS} CACHE STRING "MPI ${LANG} additional include directories" FORCE)
-endfunction()
-
-macro(_MPI_create_imported_target LANG)
- if(NOT TARGET MPI::MPI_${LANG})
- add_library(MPI::MPI_${LANG} INTERFACE IMPORTED)
- endif()
-
- # When this is consumed for compiling CUDA, use '-Xcompiler' to wrap '-pthread'.
- string(REPLACE "-pthread" "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler >-pthread"
- _MPI_${LANG}_COMPILE_OPTIONS "${MPI_${LANG}_COMPILE_OPTIONS}")
- set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_COMPILE_OPTIONS "${_MPI_${LANG}_COMPILE_OPTIONS}")
- unset(_MPI_${LANG}_COMPILE_OPTIONS)
-
- set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_COMPILE_DEFINITIONS "${MPI_${LANG}_COMPILE_DEFINITIONS}")
-
- if(MPI_${LANG}_LINK_FLAGS)
- set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_LINK_OPTIONS "SHELL:${MPI_${LANG}_LINK_FLAGS}")
- endif()
- # If the compiler links MPI implicitly, no libraries will be found as they're contained within
- # CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES already.
- if(MPI_${LANG}_LIBRARIES)
- set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_LINK_LIBRARIES "${MPI_${LANG}_LIBRARIES}")
- endif()
- # Given the new design of FindMPI, INCLUDE_DIRS will always be located, even under implicit linking.
- set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${MPI_${LANG}_INCLUDE_DIRS}")
-endmacro()
-
-function(_MPI_try_staged_settings LANG MPI_TEST_FILE_NAME MODE RUN_BINARY SUPPRESS_ERRORS)
- set(WORK_DIR "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindMPI")
- set(SRC_DIR "${CMAKE_ROOT}/Modules/FindMPI")
- set(BIN_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindMPI/${MPI_TEST_FILE_NAME}_${LANG}.bin")
- unset(MPI_TEST_COMPILE_DEFINITIONS)
- if("${LANG}" STREQUAL "Fortran")
- if("${MODE}" STREQUAL "F90_MODULE")
- set(MPI_Fortran_INCLUDE_LINE "use mpi\n implicit none")
- elseif("${MODE}" STREQUAL "F08_MODULE")
- set(MPI_Fortran_INCLUDE_LINE "use mpi_f08\n implicit none")
- else() # F77 header
- set(MPI_Fortran_INCLUDE_LINE "implicit none\n include 'mpif.h'")
- endif()
- configure_file("${SRC_DIR}/${MPI_TEST_FILE_NAME}.f90.in" "${WORK_DIR}/${MPI_TEST_FILE_NAME}.f90" @ONLY)
- set(MPI_TEST_SOURCE_FILE "${WORK_DIR}/${MPI_TEST_FILE_NAME}.f90")
- elseif("${LANG}" STREQUAL "CXX")
- configure_file("${SRC_DIR}/${MPI_TEST_FILE_NAME}.c" "${WORK_DIR}/${MPI_TEST_FILE_NAME}.cpp" COPYONLY)
- set(MPI_TEST_SOURCE_FILE "${WORK_DIR}/${MPI_TEST_FILE_NAME}.cpp")
- if("${MODE}" STREQUAL "TEST_MPICXX")
- set(MPI_TEST_COMPILE_DEFINITIONS TEST_MPI_MPICXX)
- endif()
- else() # C
- set(MPI_TEST_SOURCE_FILE "${SRC_DIR}/${MPI_TEST_FILE_NAME}.c")
- endif()
- if(RUN_BINARY)
- try_run(MPI_RUN_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE} MPI_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}
- "${CMAKE_BINARY_DIR}" SOURCES "${MPI_TEST_SOURCE_FILE}"
- COMPILE_DEFINITIONS ${MPI_TEST_COMPILE_DEFINITIONS}
- LINK_LIBRARIES MPI::MPI_${LANG}
- RUN_OUTPUT_VARIABLE MPI_RUN_OUTPUT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}
- COMPILE_OUTPUT_VARIABLE _MPI_TRY_${MPI_TEST_FILE_NAME}_${MODE}_OUTPUT)
- set(MPI_RUN_OUTPUT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE} "${MPI_RUN_OUTPUT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}}" PARENT_SCOPE)
- else()
- try_compile(MPI_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}
- "${CMAKE_BINARY_DIR}" SOURCES "${MPI_TEST_SOURCE_FILE}"
- COMPILE_DEFINITIONS ${MPI_TEST_COMPILE_DEFINITIONS}
- LINK_LIBRARIES MPI::MPI_${LANG}
- COPY_FILE "${BIN_FILE}"
- OUTPUT_VARIABLE _MPI_TRY_${MPI_TEST_FILE_NAME}_${MODE}_OUTPUT)
- endif()
- if(NOT SUPPRESS_ERRORS)
- if(NOT MPI_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE})
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "The MPI test ${MPI_TEST_FILE_NAME} for ${LANG} in mode ${MODE} failed to compile with the following output:\n${_MPI_TRY_${MPI_TEST_FILE_NAME}_${MODE}_OUTPUT}\n\n")
- elseif(DEFINED MPI_RUN_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE} AND MPI_RUN_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE})
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "The MPI test ${MPI_TEST_FILE_NAME} for ${LANG} in mode ${MODE} failed to run with the following output:\n${MPI_RUN_OUTPUT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}}\n\n")
- endif()
- endif()
-endfunction()
-
-macro(_MPI_check_lang_works LANG SUPPRESS_ERRORS)
- # For Fortran we may have by the MPI-3 standard an implementation that provides:
- # - the mpi_f08 module
- # - *both*, the mpi module and 'mpif.h'
- # Since older MPI standards (MPI-1) did not define anything but 'mpif.h', we need to check all three individually.
- if( NOT MPI_${LANG}_WORKS )
- if("${LANG}" STREQUAL "Fortran")
- set(MPI_Fortran_INTEGER_LINE "(kind=MPI_INTEGER_KIND)")
- _MPI_try_staged_settings(${LANG} test_mpi F77_HEADER FALSE ${SUPPRESS_ERRORS})
- _MPI_try_staged_settings(${LANG} test_mpi F90_MODULE FALSE ${SUPPRESS_ERRORS})
- _MPI_try_staged_settings(${LANG} test_mpi F08_MODULE FALSE ${SUPPRESS_ERRORS})
-
- set(MPI_${LANG}_WORKS FALSE)
-
- foreach(mpimethod IN ITEMS F77_HEADER F08_MODULE F90_MODULE)
- if(MPI_RESULT_${LANG}_test_mpi_${mpimethod})
- set(MPI_${LANG}_WORKS TRUE)
- set(MPI_${LANG}_HAVE_${mpimethod} TRUE)
- else()
- set(MPI_${LANG}_HAVE_${mpimethod} FALSE)
- endif()
- endforeach()
- # MPI-1 versions had no MPI_INTGER_KIND defined, so we need to try without it.
- # However, MPI-1 also did not define the Fortran 90 and 08 modules, so we only try the F77 header.
- unset(MPI_Fortran_INTEGER_LINE)
- if(NOT MPI_${LANG}_WORKS)
- _MPI_try_staged_settings(${LANG} test_mpi F77_HEADER_NOKIND FALSE ${SUPPRESS_ERRORS})
- if(MPI_RESULT_${LANG}_test_mpi_F77_HEADER_NOKIND)
- set(MPI_${LANG}_WORKS TRUE)
- set(MPI_${LANG}_HAVE_F77_HEADER TRUE)
- endif()
- endif()
- else()
- _MPI_try_staged_settings(${LANG} test_mpi normal FALSE ${SUPPRESS_ERRORS})
- # If 'test_mpi' built correctly, we've found valid MPI settings. There might not be MPI-2 C++ support, but there can't
- # be MPI-2 C++ support without the C bindings being present, so checking for them is sufficient.
- set(MPI_${LANG}_WORKS "${MPI_RESULT_${LANG}_test_mpi_normal}")
- endif()
- endif()
-endmacro()
-
-# Some systems install various MPI implementations in separate folders in some MPI prefix
-# This macro enumerates all such subfolders and adds them to the list of hints that will be searched.
-macro(MPI_search_mpi_prefix_folder PREFIX_FOLDER)
- if(EXISTS "${PREFIX_FOLDER}")
- file(GLOB _MPI_folder_children RELATIVE "${PREFIX_FOLDER}" "${PREFIX_FOLDER}/*")
- foreach(_MPI_folder_child IN LISTS _MPI_folder_children)
- if(IS_DIRECTORY "${PREFIX_FOLDER}/${_MPI_folder_child}")
- list(APPEND MPI_HINT_DIRS "${PREFIX_FOLDER}/${_MPI_folder_child}")
- endif()
- endforeach()
- endif()
-endmacro()
-
-set(MPI_HINT_DIRS ${MPI_HOME} $ENV{MPI_HOME} $ENV{I_MPI_ROOT})
-if("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Linux")
- # SUSE Linux Enterprise Server stores its MPI implementations under /usr/lib64/mpi/gcc/<name>
- # We enumerate the subfolders and append each as a prefix
- MPI_search_mpi_prefix_folder("/usr/lib64/mpi/gcc")
-elseif("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "FreeBSD")
- # FreeBSD ships mpich under the normal system paths - but available openmpi implementations
- # will be found in /usr/local/mpi/<name>
- MPI_search_mpi_prefix_folder("/usr/local/mpi")
-endif()
-
-# Most MPI distributions have some form of mpiexec or mpirun which gives us something we can look for.
-# The MPI standard does not mandate the existence of either, but instead only makes requirements if a distribution
-# ships an mpiexec program (mpirun executables are not regulated by the standard).
-
-# We defer searching for mpiexec binaries belonging to guesses until later. By doing so, mismatches between mpiexec
-# and the MPI we found should be reduced.
-if(NOT MPIEXEC_EXECUTABLE)
- set(_MPIEXEC_NOT_GIVEN TRUE)
-else()
- set(_MPIEXEC_NOT_GIVEN FALSE)
-endif()
-
-find_program(MPIEXEC_EXECUTABLE
- NAMES ${_MPIEXEC_NAMES}
- PATH_SUFFIXES bin sbin
- HINTS ${MPI_HINT_DIRS}
- DOC "Executable for running MPI programs.")
-
-# call get_filename_component twice to remove mpiexec and the directory it exists in (typically bin).
-# This gives us a fairly reliable base directory to search for /bin /lib and /include from.
-get_filename_component(_MPI_BASE_DIR "${MPIEXEC_EXECUTABLE}" PATH)
-get_filename_component(_MPI_BASE_DIR "${_MPI_BASE_DIR}" PATH)
-
-# According to the MPI standard, section 8.8 -n is a guaranteed, and the only guaranteed way to
-# launch an MPI process using mpiexec if such a program exists.
-set(MPIEXEC_NUMPROC_FLAG "-n" CACHE STRING "Flag used by MPI to specify the number of processes for mpiexec; the next option will be the number of processes.")
-set(MPIEXEC_PREFLAGS "" CACHE STRING "These flags will be directly before the executable that is being run by mpiexec.")
-set(MPIEXEC_POSTFLAGS "" CACHE STRING "These flags will be placed after all flags passed to mpiexec.")
-
-# Set the number of processes to the physical processor count
-cmake_host_system_information(RESULT _MPIEXEC_NUMPROCS QUERY NUMBER_OF_PHYSICAL_CORES)
-set(MPIEXEC_MAX_NUMPROCS "${_MPIEXEC_NUMPROCS}" CACHE STRING "Maximum number of processors available to run MPI applications.")
-unset(_MPIEXEC_NUMPROCS)
-mark_as_advanced(MPIEXEC_EXECUTABLE MPIEXEC_NUMPROC_FLAG MPIEXEC_PREFLAGS MPIEXEC_POSTFLAGS MPIEXEC_MAX_NUMPROCS)
-
-#=============================================================================
-# Backward compatibility input hacks. Propagate the FindMPI hints to C and
-# CXX if the respective new versions are not defined. Translate the old
-# MPI_LIBRARY and MPI_EXTRA_LIBRARY to respective MPI_${LANG}_LIBRARIES.
-#
-# Once we find the new variables, we translate them back into their old
-# equivalents below.
-if(NOT MPI_IGNORE_LEGACY_VARIABLES)
- foreach (LANG IN ITEMS C CXX)
- # Old input variables.
- set(_MPI_OLD_INPUT_VARS COMPILER COMPILE_FLAGS INCLUDE_PATH LINK_FLAGS)
-
- # Set new vars based on their old equivalents, if the new versions are not already set.
- foreach (var ${_MPI_OLD_INPUT_VARS})
- if (NOT MPI_${LANG}_${var} AND MPI_${var})
- set(MPI_${LANG}_${var} "${MPI_${var}}")
- endif()
- endforeach()
-
- # Chop the old compile flags into options and definitions
-
- unset(MPI_${LANG}_EXTRA_COMPILE_DEFINITIONS)
- unset(MPI_${LANG}_EXTRA_COMPILE_OPTIONS)
- if(MPI_${LANG}_COMPILE_FLAGS)
- separate_arguments(MPI_SEPARATE_FLAGS NATIVE_COMMAND "${MPI_${LANG}_COMPILE_FLAGS}")
- foreach(_MPI_FLAG IN LISTS MPI_SEPARATE_FLAGS)
- if("${_MPI_FLAG}" MATCHES "^ *-D([^ ]+)")
- list(APPEND MPI_${LANG}_EXTRA_COMPILE_DEFINITIONS "${CMAKE_MATCH_1}")
- else()
- list(APPEND MPI_${LANG}_EXTRA_COMPILE_OPTIONS "${_MPI_FLAG}")
- endif()
- endforeach()
- unset(MPI_SEPARATE_FLAGS)
- endif()
-
- # If a list of libraries was given, we'll split it into new-style cache variables
- unset(MPI_${LANG}_EXTRA_LIB_NAMES)
- if(NOT MPI_${LANG}_LIB_NAMES)
- foreach(_MPI_LIB IN LISTS MPI_${LANG}_LIBRARIES MPI_LIBRARY MPI_EXTRA_LIBRARY)
- if(_MPI_LIB)
- get_filename_component(_MPI_PLAIN_LIB_NAME "${_MPI_LIB}" NAME_WE)
- get_filename_component(_MPI_LIB_NAME "${_MPI_LIB}" NAME)
- get_filename_component(_MPI_LIB_DIR "${_MPI_LIB}" DIRECTORY)
- list(APPEND MPI_${LANG}_EXTRA_LIB_NAMES "${_MPI_PLAIN_LIB_NAME}")
- find_library(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY
- NAMES "${_MPI_LIB_NAME}" "lib${_MPI_LIB_NAME}"
- HINTS ${_MPI_LIB_DIR} $ENV{MPI_LIB}
- DOC "Location of the ${_MPI_PLAIN_LIB_NAME} library for MPI"
- )
- mark_as_advanced(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY)
- endif()
- endforeach()
- endif()
- endforeach()
-endif()
-#=============================================================================
-
-unset(MPI_VERSION)
-unset(MPI_VERSION_MAJOR)
-unset(MPI_VERSION_MINOR)
-
-unset(_MPI_MIN_VERSION)
-
-# If the user specified a library name we assume they prefer that library over a wrapper. If not, they can disable skipping manually.
-if(NOT DEFINED MPI_SKIP_COMPILER_WRAPPER AND MPI_GUESS_LIBRARY_NAME)
- set(MPI_SKIP_COMPILER_WRAPPER TRUE)
-endif()
-
-# This loop finds the compilers and sends them off for interrogation.
-foreach(LANG IN ITEMS C CXX Fortran)
- if(CMAKE_${LANG}_COMPILER_LOADED)
- if(NOT MPI_FIND_COMPONENTS)
- set(_MPI_FIND_${LANG} TRUE)
- elseif( ${LANG} IN_LIST MPI_FIND_COMPONENTS)
- set(_MPI_FIND_${LANG} TRUE)
- elseif( ${LANG} STREQUAL CXX AND NOT MPI_CXX_SKIP_MPICXX AND MPICXX IN_LIST MPI_FIND_COMPONENTS )
- set(_MPI_FIND_${LANG} TRUE)
- else()
- set(_MPI_FIND_${LANG} FALSE)
- endif()
- else()
- set(_MPI_FIND_${LANG} FALSE)
- endif()
- if(_MPI_FIND_${LANG})
- if( ${LANG} STREQUAL CXX AND NOT MPICXX IN_LIST MPI_FIND_COMPONENTS )
- set(MPI_CXX_SKIP_MPICXX FALSE CACHE BOOL "If true, the MPI-2 C++ bindings are disabled using definitions.")
- mark_as_advanced(MPI_CXX_SKIP_MPICXX)
- endif()
- if(NOT (MPI_${LANG}_LIB_NAMES AND (MPI_${LANG}_INCLUDE_PATH OR MPI_${LANG}_INCLUDE_DIRS OR MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)))
- set(MPI_${LANG}_TRIED_IMPLICIT FALSE)
- set(MPI_${LANG}_WORKS_IMPLICIT FALSE)
- if(NOT MPI_${LANG}_COMPILER AND NOT MPI_ASSUME_NO_BUILTIN_MPI)
- # Should the imported targets be empty, we effectively try whether the compiler supports MPI on its own, which is the case on e.g.
- # Cray PrgEnv.
- _MPI_create_imported_target(${LANG})
- _MPI_check_lang_works(${LANG} TRUE)
-
- # If the compiler can build MPI code on its own, it functions as an MPI compiler and we'll set the variable to point to it.
- if(MPI_${LANG}_WORKS)
- set(MPI_${LANG}_COMPILER "${CMAKE_${LANG}_COMPILER}" CACHE FILEPATH "MPI compiler for ${LANG}" FORCE)
- set(MPI_${LANG}_WORKS_IMPLICIT TRUE)
- endif()
- set(MPI_${LANG}_TRIED_IMPLICIT TRUE)
- endif()
-
- if(NOT "${MPI_${LANG}_COMPILER}" STREQUAL "${CMAKE_${LANG}_COMPILER}" OR NOT MPI_${LANG}_WORKS)
- set(MPI_${LANG}_WRAPPER_FOUND FALSE)
- set(MPI_PINNED_COMPILER FALSE)
-
- if(NOT MPI_SKIP_COMPILER_WRAPPER)
- if(MPI_${LANG}_COMPILER)
- # If the user supplies a compiler *name* instead of an absolute path, assume that we need to find THAT compiler.
- if (NOT IS_ABSOLUTE "${MPI_${LANG}_COMPILER}")
- # Get rid of our default list of names and just search for the name the user wants.
- set(_MPI_${LANG}_COMPILER_NAMES "${MPI_${LANG}_COMPILER}")
- unset(MPI_${LANG}_COMPILER CACHE)
- endif()
- # If the user specifies a compiler, we don't want to try to search libraries either.
- set(MPI_PINNED_COMPILER TRUE)
- endif()
-
- # If we have an MPI base directory, we'll try all compiler names in that one first.
- # This should prevent mixing different MPI environments
- if(_MPI_BASE_DIR)
- find_program(MPI_${LANG}_COMPILER
- NAMES ${_MPI_${LANG}_COMPILER_NAMES}
- PATH_SUFFIXES bin sbin
- HINTS ${_MPI_BASE_DIR}
- NO_DEFAULT_PATH
- DOC "MPI compiler for ${LANG}"
- )
- endif()
-
- # If the base directory did not help (for example because the mpiexec isn't in the same directory as the compilers),
- # we shall try searching in the default paths.
- find_program(MPI_${LANG}_COMPILER
- NAMES ${_MPI_${LANG}_COMPILER_NAMES}
- PATH_SUFFIXES bin sbin
- DOC "MPI compiler for ${LANG}"
- )
-
- if("${MPI_${LANG}_COMPILER}" STREQUAL "${CMAKE_${LANG}_COMPILER}")
- set(MPI_PINNED_COMPILER TRUE)
-
- # If we haven't made the implicit compiler test yet, perform it now.
- if(NOT MPI_${LANG}_TRIED_IMPLICIT)
- _MPI_create_imported_target(${LANG})
- _MPI_check_lang_works(${LANG} TRUE)
- endif()
-
- # Should the MPI compiler not work implicitly for MPI, still interrogate it.
- # Otherwise, MPI compilers for which CMake has separate linking stages, e.g. Intel MPI on Windows where link.exe is being used
- # directly during linkage instead of CMAKE_<LANG>_COMPILER will not work.
- if(NOT MPI_${LANG}_WORKS)
- set(MPI_${LANG}_WORKS_IMPLICIT FALSE)
- _MPI_interrogate_compiler(${LANG})
- else()
- set(MPI_${LANG}_WORKS_IMPLICIT TRUE)
- endif()
- elseif(MPI_${LANG}_COMPILER)
- _MPI_interrogate_compiler(${LANG})
- endif()
- endif()
-
- if(NOT MPI_PINNED_COMPILER AND NOT MPI_${LANG}_WRAPPER_FOUND)
- # If MPI_PINNED_COMPILER wasn't given, and the MPI compiler we potentially found didn't work, we withdraw it.
- set(MPI_${LANG}_COMPILER "MPI_${LANG}_COMPILER-NOTFOUND" CACHE FILEPATH "MPI compiler for ${LANG}" FORCE)
- if(NOT MPI_SKIP_GUESSING)
- # For C++, we may use the settings for C. Should a given compiler wrapper for C++ not exist, but one for C does, we copy over the
- # settings for C. An MPI distribution that is in this situation would be IBM Platform MPI.
- if("${LANG}" STREQUAL "CXX" AND MPI_C_WRAPPER_FOUND)
- set(MPI_${LANG}_COMPILE_OPTIONS ${MPI_C_COMPILE_OPTIONS} CACHE STRING "MPI ${LANG} compilation options" )
- set(MPI_${LANG}_COMPILE_DEFINITIONS ${MPI_C_COMPILE_DEFINITIONS} CACHE STRING "MPI ${LANG} compilation definitions" )
- set(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS ${MPI_C_INCLUDE_DIRS} CACHE STRING "MPI ${LANG} additional include directories")
- set(MPI_${LANG}_LINK_FLAGS ${MPI_C_LINK_FLAGS} CACHE STRING "MPI ${LANG} linker flags" )
- set(MPI_${LANG}_LIB_NAMES ${MPI_C_LIB_NAMES} CACHE STRING "MPI ${LANG} libraries to link against" )
- else()
- _MPI_guess_settings(${LANG})
- endif()
- endif()
- endif()
- endif()
- endif()
-
- _MPI_split_include_dirs(${LANG})
- _MPI_assemble_include_dirs(${LANG})
- _MPI_assemble_libraries(${LANG})
-
- _MPI_adjust_compile_definitions(${LANG})
- # We always create imported targets even if they're empty
- _MPI_create_imported_target(${LANG})
-
- if(NOT MPI_${LANG}_WORKS)
- _MPI_check_lang_works(${LANG} FALSE)
- endif()
-
- # Next, we'll initialize the MPI variables that have not been previously set.
- set(MPI_${LANG}_COMPILE_OPTIONS "" CACHE STRING "MPI ${LANG} compilation flags" )
- set(MPI_${LANG}_COMPILE_DEFINITIONS "" CACHE STRING "MPI ${LANG} compilation definitions" )
- set(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS "" CACHE STRING "MPI ${LANG} additional include directories")
- set(MPI_${LANG}_LINK_FLAGS "" CACHE STRING "MPI ${LANG} linker flags" )
- if(NOT MPI_${LANG}_COMPILER STREQUAL CMAKE_${LANG}_COMPILER)
- set(MPI_${LANG}_LIB_NAMES "" CACHE STRING "MPI ${LANG} libraries to link against" )
- endif()
- mark_as_advanced(MPI_${LANG}_COMPILE_OPTIONS MPI_${LANG}_COMPILE_DEFINITIONS MPI_${LANG}_LINK_FLAGS
- MPI_${LANG}_LIB_NAMES MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS MPI_${LANG}_COMPILER)
-
- # If we've found MPI, then we'll perform additional analysis: Determine the MPI version, MPI library version, supported
- # MPI APIs (i.e. MPI-2 C++ bindings). For Fortran we also need to find specific parameters if we're under MPI-3.
- if(MPI_${LANG}_WORKS)
- if("${LANG}" STREQUAL "CXX" AND NOT DEFINED MPI_MPICXX_FOUND)
- if(NOT MPI_CXX_SKIP_MPICXX AND NOT MPI_CXX_VALIDATE_SKIP_MPICXX)
- _MPI_try_staged_settings(${LANG} test_mpi MPICXX FALSE FALSE)
- if(MPI_RESULT_${LANG}_test_mpi_MPICXX)
- set(MPI_MPICXX_FOUND TRUE)
- else()
- set(MPI_MPICXX_FOUND FALSE)
- endif()
- else()
- set(MPI_MPICXX_FOUND FALSE)
- endif()
- endif()
-
- # At this point, we know the bindings present but not the MPI version or anything else.
- if(NOT DEFINED MPI_${LANG}_VERSION)
- unset(MPI_${LANG}_VERSION_MAJOR)
- unset(MPI_${LANG}_VERSION_MINOR)
- endif()
- set(MPI_BIN_FOLDER ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindMPI)
-
- # For Fortran, we'll want to use the most modern MPI binding to test capabilities other than the
- # Fortran parameters, since those depend on the method of consumption.
- # For C++, we can always use the C bindings, and should do so, since the C++ bindings do not exist in MPI-3
- # whereas the C bindings do, and the C++ bindings never offered any feature advantage over their C counterparts.
- if("${LANG}" STREQUAL "Fortran")
- if(MPI_${LANG}_HAVE_F08_MODULE)
- set(MPI_${LANG}_HIGHEST_METHOD F08_MODULE)
- elseif(MPI_${LANG}_HAVE_F90_MODULE)
- set(MPI_${LANG}_HIGHEST_METHOD F90_MODULE)
- else()
- set(MPI_${LANG}_HIGHEST_METHOD F77_HEADER)
- endif()
-
- # Another difference between C and Fortran is that we can't use the preprocessor to determine whether MPI_VERSION
- # and MPI_SUBVERSION are provided. These defines did not exist in MPI 1.0 and 1.1 and therefore might not
- # exist. For C/C++, test_mpi.c will handle the MPI_VERSION extraction, but for Fortran, we need mpiver.f90.
- if(NOT DEFINED MPI_${LANG}_VERSION)
- _MPI_try_staged_settings(${LANG} mpiver ${MPI_${LANG}_HIGHEST_METHOD} FALSE FALSE)
- if(MPI_RESULT_${LANG}_mpiver_${MPI_${LANG}_HIGHEST_METHOD})
- file(STRINGS ${MPI_BIN_FOLDER}/mpiver_${LANG}.bin _MPI_VERSION_STRING LIMIT_COUNT 1 REGEX "INFO:MPI-VER")
- if("${_MPI_VERSION_STRING}" MATCHES ".*INFO:MPI-VER\\[([0-9]+)\\.([0-9]+)\\].*")
- set(MPI_${LANG}_VERSION_MAJOR "${CMAKE_MATCH_1}")
- set(MPI_${LANG}_VERSION_MINOR "${CMAKE_MATCH_2}")
- set(MPI_${LANG}_VERSION "${MPI_${LANG}_VERSION_MAJOR}.${MPI_${LANG}_VERSION_MINOR}")
- endif()
- endif()
- endif()
-
- # Finally, we want to find out which capabilities a given interface supports, compare the MPI-3 standard.
- # This is determined by interface specific parameters MPI_SUBARRAYS_SUPPORTED and MPI_ASYNC_PROTECTS_NONBLOCKING
- # and might vary between the different methods of consumption.
- if(MPI_DETERMINE_Fortran_CAPABILITIES AND NOT MPI_Fortran_CAPABILITIES_DETERMINED)
- foreach(mpimethod IN ITEMS F08_MODULE F90_MODULE F77_HEADER)
- if(MPI_${LANG}_HAVE_${mpimethod})
- set(MPI_${LANG}_${mpimethod}_SUBARRAYS FALSE)
- set(MPI_${LANG}_${mpimethod}_ASYNCPROT FALSE)
- _MPI_try_staged_settings(${LANG} fortranparam_mpi ${mpimethod} TRUE FALSE)
- if(MPI_RESULT_${LANG}_fortranparam_mpi_${mpimethod} AND
- NOT "${MPI_RUN_RESULT_${LANG}_fortranparam_mpi_${mpimethod}}" STREQUAL "FAILED_TO_RUN")
- if("${MPI_RUN_OUTPUT_${LANG}_fortranparam_mpi_${mpimethod}}" MATCHES
- ".*INFO:SUBARRAYS\\[ *([TF]) *\\]-ASYNCPROT\\[ *([TF]) *\\].*")
- if("${CMAKE_MATCH_1}" STREQUAL "T")
- set(MPI_${LANG}_${mpimethod}_SUBARRAYS TRUE)
- endif()
- if("${CMAKE_MATCH_2}" STREQUAL "T")
- set(MPI_${LANG}_${mpimethod}_ASYNCPROT TRUE)
- endif()
- endif()
- endif()
- endif()
- endforeach()
- set(MPI_Fortran_CAPABILITIES_DETERMINED TRUE)
- endif()
- else()
- set(MPI_${LANG}_HIGHEST_METHOD normal)
-
- # By the MPI-2 standard, MPI_VERSION and MPI_SUBVERSION are valid for both C and C++ bindings.
- if(NOT DEFINED MPI_${LANG}_VERSION)
- file(STRINGS ${MPI_BIN_FOLDER}/test_mpi_${LANG}.bin _MPI_VERSION_STRING LIMIT_COUNT 1 REGEX "INFO:MPI-VER")
- if("${_MPI_VERSION_STRING}" MATCHES ".*INFO:MPI-VER\\[([0-9]+)\\.([0-9]+)\\].*")
- set(MPI_${LANG}_VERSION_MAJOR "${CMAKE_MATCH_1}")
- set(MPI_${LANG}_VERSION_MINOR "${CMAKE_MATCH_2}")
- set(MPI_${LANG}_VERSION "${MPI_${LANG}_VERSION_MAJOR}.${MPI_${LANG}_VERSION_MINOR}")
- endif()
- endif()
- endif()
-
- unset(MPI_BIN_FOLDER)
-
- # At this point, we have dealt with determining the MPI version and parameters for each Fortran method available.
- # The one remaining issue is to determine which MPI library is installed.
- # Determining the version and vendor of the MPI library is only possible via MPI_Get_library_version() at runtime,
- # and therefore we cannot do this while cross-compiling (a user may still define MPI_<lang>_LIBRARY_VERSION_STRING
- # themselves and we'll attempt splitting it, which is equivalent to provide the try_run output).
- # It's also worth noting that the installed version string can depend on the language, or on the system the binary
- # runs on if MPI is not statically linked.
- if(MPI_DETERMINE_LIBRARY_VERSION AND NOT MPI_${LANG}_LIBRARY_VERSION_STRING)
- _MPI_try_staged_settings(${LANG} libver_mpi ${MPI_${LANG}_HIGHEST_METHOD} TRUE FALSE)
- if(MPI_RESULT_${LANG}_libver_mpi_${MPI_${LANG}_HIGHEST_METHOD} AND
- "${MPI_RUN_RESULT_${LANG}_libver_mpi_${MPI_${LANG}_HIGHEST_METHOD}}" EQUAL "0")
- string(STRIP "${MPI_RUN_OUTPUT_${LANG}_libver_mpi_${MPI_${LANG}_HIGHEST_METHOD}}"
- MPI_${LANG}_LIBRARY_VERSION_STRING)
- else()
- set(MPI_${LANG}_LIBRARY_VERSION_STRING "NOTFOUND")
- endif()
- endif()
- endif()
-
- set(MPI_${LANG}_FIND_QUIETLY ${MPI_FIND_QUIETLY})
- set(MPI_${LANG}_FIND_VERSION ${MPI_FIND_VERSION})
- set(MPI_${LANG}_FIND_VERSION_EXACT ${MPI_FIND_VERSION_EXACT})
-
- unset(MPI_${LANG}_REQUIRED_VARS)
- if (NOT "${MPI_${LANG}_COMPILER}" STREQUAL "${CMAKE_${LANG}_COMPILER}")
- foreach(mpilibname IN LISTS MPI_${LANG}_LIB_NAMES)
- list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${mpilibname}_LIBRARY")
- endforeach()
- list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_LIB_NAMES")
- if("${LANG}" STREQUAL "Fortran")
- # For Fortran we only need one of the module or header directories to have *some* support for MPI.
- if(NOT MPI_${LANG}_MODULE_DIR)
- list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_F77_HEADER_DIR")
- endif()
- if(NOT MPI_${LANG}_F77_HEADER_DIR)
- list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_MODULE_DIR")
- endif()
- else()
- list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_HEADER_DIR")
- endif()
- if(MPI_${LANG}_ADDITIONAL_INCLUDE_VARS)
- foreach(mpiincvar IN LISTS MPI_${LANG}_ADDITIONAL_INCLUDE_VARS)
- list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${mpiincvar}_INCLUDE_DIR")
- endforeach()
- endif()
- # Append the works variable now. If the settings did not work, this will show up properly.
- list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_WORKS")
- else()
- # If the compiler worked implicitly, use its path as output.
- # Should the compiler variable be set, we also require it to work.
- list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_COMPILER")
- if(MPI_${LANG}_COMPILER)
- list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_WORKS")
- endif()
- endif()
- find_package_handle_standard_args(MPI_${LANG} REQUIRED_VARS ${MPI_${LANG}_REQUIRED_VARS}
- VERSION_VAR MPI_${LANG}_VERSION)
-
- if(DEFINED MPI_${LANG}_VERSION)
- if(NOT _MPI_MIN_VERSION OR _MPI_MIN_VERSION VERSION_GREATER MPI_${LANG}_VERSION)
- set(_MPI_MIN_VERSION MPI_${LANG}_VERSION)
- endif()
- endif()
- endif()
-endforeach()
-
-unset(_MPI_REQ_VARS)
-foreach(LANG IN ITEMS C CXX Fortran)
- if((NOT MPI_FIND_COMPONENTS AND CMAKE_${LANG}_COMPILER_LOADED) OR LANG IN_LIST MPI_FIND_COMPONENTS)
- list(APPEND _MPI_REQ_VARS "MPI_${LANG}_FOUND")
- endif()
-endforeach()
-
-if(MPICXX IN_LIST MPI_FIND_COMPONENTS)
- list(APPEND _MPI_REQ_VARS "MPI_MPICXX_FOUND")
-endif()
-
-find_package_handle_standard_args(MPI
- REQUIRED_VARS ${_MPI_REQ_VARS}
- VERSION_VAR ${_MPI_MIN_VERSION}
- HANDLE_COMPONENTS)
-
-#=============================================================================
-# More backward compatibility stuff
-
-# For compatibility reasons, we also define MPIEXEC
-set(MPIEXEC "${MPIEXEC_EXECUTABLE}")
-
-# Copy over MPI_<LANG>_INCLUDE_PATH from the assembled INCLUDE_DIRS.
-foreach(LANG IN ITEMS C CXX Fortran)
- if(MPI_${LANG}_FOUND)
- set(MPI_${LANG}_INCLUDE_PATH "${MPI_${LANG}_INCLUDE_DIRS}")
- unset(MPI_${LANG}_COMPILE_FLAGS)
- if(MPI_${LANG}_COMPILE_OPTIONS)
- list(JOIN MPI_${LANG}_COMPILE_OPTIONS " " MPI_${LANG}_COMPILE_FLAGS)
- endif()
- if(MPI_${LANG}_COMPILE_DEFINITIONS)
- foreach(_MPI_DEF IN LISTS MPI_${LANG}_COMPILE_DEFINITIONS)
- string(APPEND MPI_${LANG}_COMPILE_FLAGS " -D${_MPI_DEF}")
- endforeach()
- endif()
- endif()
-endforeach()
-
-# Bare MPI sans ${LANG} vars are set to CXX then C, depending on what was found.
-# This mimics the behavior of the old language-oblivious FindMPI.
-set(_MPI_OLD_VARS COMPILER INCLUDE_PATH COMPILE_FLAGS LINK_FLAGS LIBRARIES)
-if (MPI_CXX_FOUND)
- foreach (var ${_MPI_OLD_VARS})
- set(MPI_${var} ${MPI_CXX_${var}})
- endforeach()
-elseif (MPI_C_FOUND)
- foreach (var ${_MPI_OLD_VARS})
- set(MPI_${var} ${MPI_C_${var}})
- endforeach()
-endif()
-
-# Chop MPI_LIBRARIES into the old-style MPI_LIBRARY and MPI_EXTRA_LIBRARY, and set them in cache.
-if (MPI_LIBRARIES)
- list(GET MPI_LIBRARIES 0 MPI_LIBRARY_WORK)
- set(MPI_LIBRARY "${MPI_LIBRARY_WORK}")
- unset(MPI_LIBRARY_WORK)
-else()
- set(MPI_LIBRARY "MPI_LIBRARY-NOTFOUND")
-endif()
-
-list(LENGTH MPI_LIBRARIES MPI_NUMLIBS)
-if (MPI_NUMLIBS GREATER 1)
- set(MPI_EXTRA_LIBRARY_WORK "${MPI_LIBRARIES}")
- list(REMOVE_AT MPI_EXTRA_LIBRARY_WORK 0)
- set(MPI_EXTRA_LIBRARY "${MPI_EXTRA_LIBRARY_WORK}")
- unset(MPI_EXTRA_LIBRARY_WORK)
-else()
- set(MPI_EXTRA_LIBRARY "MPI_EXTRA_LIBRARY-NOTFOUND")
-endif()
-set(MPI_IGNORE_LEGACY_VARIABLES TRUE)
-#=============================================================================
-
-# unset these vars to cleanup namespace
-unset(_MPI_OLD_VARS)
-unset(_MPI_PREFIX_PATH)
-unset(_MPI_BASE_DIR)
-foreach (lang C CXX Fortran)
- unset(_MPI_${LANG}_COMPILER_NAMES)
-endforeach()
-
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FindMatlab.cmake b/share/cmake-3.16/Modules/FindMatlab.cmake
deleted file mode 100644
index 92ee729..0000000
--- a/share/cmake-3.16/Modules/FindMatlab.cmake
+++ /dev/null
@@ -1,1833 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindMatlab
-----------
-
-Finds Matlab or Matlab Compiler Runtime (MCR) and provides Matlab tools,
-libraries and compilers to CMake.
-
-This package primary purpose is to find the libraries associated with Matlab
-or the MCR in order to be able to build Matlab extensions (mex files). It
-can also be used:
-
-* to run specific commands in Matlab in case Matlab is available
-* for declaring Matlab unit test
-* to retrieve various information from Matlab (mex extensions, versions and
- release queries, ...)
-
-The module supports the following components:
-
-* ``ENG_LIBRARY`` and ``MAT_LIBRARY``: respectively the ``ENG`` and ``MAT``
- libraries of Matlab
-* ``MAIN_PROGRAM`` the Matlab binary program. Note that this component is not
- available on the MCR version, and will yield an error if the MCR is found
- instead of the regular Matlab installation.
-* ``MEX_COMPILER`` the MEX compiler.
-* ``MCC_COMPILER`` the MCC compiler, included with the Matlab Compiler add-on.
-* ``SIMULINK`` the Simulink environment.
-
-.. note::
-
- The version given to the :command:`find_package` directive is the Matlab
- **version**, which should not be confused with the Matlab *release* name
- (eg. `R2014`).
- The :command:`matlab_get_version_from_release_name` and
- :command:`matlab_get_release_name_from_version` provide a mapping
- between the release name and the version.
-
-The variable :variable:`Matlab_ROOT_DIR` may be specified in order to give
-the path of the desired Matlab version. Otherwise, the behaviour is platform
-specific:
-
-* Windows: The installed versions of Matlab/MCR are retrieved from the
- Windows registry
-* OS X: The installed versions of Matlab/MCR are given by the MATLAB
- default installation paths in ``/Application``. If no such application is
- found, it falls back to the one that might be accessible from the ``PATH``.
-* Unix: The desired Matlab should be accessible from the ``PATH``. This does
- not work for MCR installation and :variable:`Matlab_ROOT_DIR` should be
- specified on this platform.
-
-Additional information is provided when :variable:`MATLAB_FIND_DEBUG` is set.
-When a Matlab/MCR installation is found automatically and the ``MATLAB_VERSION``
-is not given, the version is queried from Matlab directly (on Windows this
-may pop up a Matlab window) or from the MCR installation.
-
-The mapping of the release names and the version of Matlab is performed by
-defining pairs (name, version). The variable
-:variable:`MATLAB_ADDITIONAL_VERSIONS` may be provided before the call to
-the :command:`find_package` in order to handle additional versions.
-
-A Matlab scripts can be added to the set of tests using the
-:command:`matlab_add_unit_test`. By default, the Matlab unit test framework
-will be used (>= 2013a) to run this script, but regular ``.m`` files
-returning an exit code can be used as well (0 indicating a success).
-
-Module Input Variables
-^^^^^^^^^^^^^^^^^^^^^^
-
-Users or projects may set the following variables to configure the module
-behaviour:
-
-:variable:`Matlab_ROOT_DIR`
- the root of the Matlab installation.
-:variable:`MATLAB_FIND_DEBUG`
- outputs debug information
-:variable:`MATLAB_ADDITIONAL_VERSIONS`
- additional versions of Matlab for the automatic retrieval of the installed
- versions.
-
-Variables defined by the module
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Result variables
-""""""""""""""""
-
-``Matlab_FOUND``
- ``TRUE`` if the Matlab installation is found, ``FALSE``
- otherwise. All variable below are defined if Matlab is found.
-``Matlab_ROOT_DIR``
- the final root of the Matlab installation determined by the FindMatlab
- module.
-``Matlab_MAIN_PROGRAM``
- the Matlab binary program. Available only if the component ``MAIN_PROGRAM``
- is given in the :command:`find_package` directive.
-``Matlab_INCLUDE_DIRS``
- the path of the Matlab libraries headers
-``Matlab_MEX_LIBRARY``
- library for mex, always available.
-``Matlab_MX_LIBRARY``
- mx library of Matlab (arrays), always available.
-``Matlab_ENG_LIBRARY``
- Matlab engine library. Available only if the component ``ENG_LIBRARY``
- is requested.
-``Matlab_MAT_LIBRARY``
- Matlab matrix library. Available only if the component ``MAT_LIBRARY``
- is requested.
-``Matlab_ENGINE_LIBRARY``
- Matlab C++ engine library, always available for R2018a and newer.
-``Matlab_DATAARRAY_LIBRARY``
- Matlab C++ data array library, always available for R2018a and newer.
-``Matlab_LIBRARIES``
- the whole set of libraries of Matlab
-``Matlab_MEX_COMPILER``
- the mex compiler of Matlab. Currently not used.
- Available only if the component ``MEX_COMPILER`` is requested.
-``Matlab_MCC_COMPILER``
- the mcc compiler of Matlab. Included with the Matlab Compiler add-on.
- Available only if the component ``MCC_COMPILER`` is requested.
-
-Cached variables
-""""""""""""""""
-
-``Matlab_MEX_EXTENSION``
- the extension of the mex files for the current platform (given by Matlab).
-``Matlab_ROOT_DIR``
- the location of the root of the Matlab installation found. If this value
- is changed by the user, the result variables are recomputed.
-
-Provided macros
-^^^^^^^^^^^^^^^
-
-:command:`matlab_get_version_from_release_name`
- returns the version from the release name
-:command:`matlab_get_release_name_from_version`
- returns the release name from the Matlab version
-
-Provided functions
-^^^^^^^^^^^^^^^^^^
-
-:command:`matlab_add_mex`
- adds a target compiling a MEX file.
-:command:`matlab_add_unit_test`
- adds a Matlab unit test file as a test to the project.
-:command:`matlab_extract_all_installed_versions_from_registry`
- parses the registry for all Matlab versions. Available on Windows only.
- The part of the registry parsed is dependent on the host processor
-:command:`matlab_get_all_valid_matlab_roots_from_registry`
- returns all the possible Matlab or MCR paths, according to a previously
- given list. Only the existing/accessible paths are kept. This is mainly
- useful for the searching all possible Matlab installation.
-:command:`matlab_get_mex_suffix`
- returns the suffix to be used for the mex files
- (platform/architecture dependent)
-:command:`matlab_get_version_from_matlab_run`
- returns the version of Matlab/MCR, given the full directory of the Matlab/MCR
- installation path.
-
-
-Known issues
-^^^^^^^^^^^^
-
-**Symbol clash in a MEX target**
- By default, every symbols inside a MEX
- file defined with the command :command:`matlab_add_mex` have hidden
- visibility, except for the entry point. This is the default behaviour of
- the MEX compiler, which lowers the risk of symbol collision between the
- libraries shipped with Matlab, and the libraries to which the MEX file is
- linking to. This is also the default on Windows platforms.
-
- However, this is not sufficient in certain case, where for instance your
- MEX file is linking against libraries that are already loaded by Matlab,
- even if those libraries have different SONAMES.
- A possible solution is to hide the symbols of the libraries to which the
- MEX target is linking to. This can be achieved in GNU GCC compilers with
- the linker option ``-Wl,--exclude-libs,ALL``.
-
-**Tests using GPU resources**
- in case your MEX file is using the GPU and
- in order to be able to run unit tests on this MEX file, the GPU resources
- should be properly released by Matlab. A possible solution is to make
- Matlab aware of the use of the GPU resources in the session, which can be
- performed by a command such as ``D = gpuDevice()`` at the beginning of
- the test script (or via a fixture).
-
-
-Reference
-^^^^^^^^^
-
-.. variable:: Matlab_ROOT_DIR
-
- The root folder of the Matlab installation. If set before the call to
- :command:`find_package`, the module will look for the components in that
- path. If not set, then an automatic search of Matlab
- will be performed. If set, it should point to a valid version of Matlab.
-
-.. variable:: MATLAB_FIND_DEBUG
-
- If set, the lookup of Matlab and the intermediate configuration steps are
- outputted to the console.
-
-.. variable:: MATLAB_ADDITIONAL_VERSIONS
-
- If set, specifies additional versions of Matlab that may be looked for.
- The variable should be a list of strings, organised by pairs of release
- name and versions, such as follows::
-
- set(MATLAB_ADDITIONAL_VERSIONS
- "release_name1=corresponding_version1"
- "release_name2=corresponding_version2"
- ...
- )
-
- Example::
-
- set(MATLAB_ADDITIONAL_VERSIONS
- "R2013b=8.2"
- "R2013a=8.1"
- "R2012b=8.0")
-
- The order of entries in this list matters when several versions of
- Matlab are installed. The priority is set according to the ordering in
- this list.
-#]=======================================================================]
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0057 NEW) # if IN_LIST
-
-set(_FindMatlab_SELF_DIR "${CMAKE_CURRENT_LIST_DIR}")
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-include(CheckCXXCompilerFlag)
-include(CheckCCompilerFlag)
-
-
-# The currently supported versions. Other version can be added by the user by
-# providing MATLAB_ADDITIONAL_VERSIONS
-if(NOT MATLAB_ADDITIONAL_VERSIONS)
- set(MATLAB_ADDITIONAL_VERSIONS)
-endif()
-
-set(MATLAB_VERSIONS_MAPPING
- "R2019b=9.7"
- "R2019a=9.6"
- "R2018b=9.5"
- "R2018a=9.4"
- "R2017b=9.3"
- "R2017a=9.2"
- "R2016b=9.1"
- "R2016a=9.0"
- "R2015b=8.6"
- "R2015a=8.5"
- "R2014b=8.4"
- "R2014a=8.3"
- "R2013b=8.2"
- "R2013a=8.1"
- "R2012b=8.0"
- "R2012a=7.14"
- "R2011b=7.13"
- "R2011a=7.12"
- "R2010b=7.11"
-
- ${MATLAB_ADDITIONAL_VERSIONS}
- )
-
-
-# temporary folder for all Matlab runs
-set(_matlab_temporary_folder ${CMAKE_BINARY_DIR}/Matlab)
-
-if(NOT EXISTS "${_matlab_temporary_folder}")
- file(MAKE_DIRECTORY "${_matlab_temporary_folder}")
-endif()
-
-#[=======================================================================[.rst:
-.. command:: matlab_get_version_from_release_name
-
- Returns the version of Matlab (17.58) from a release name (R2017k)
-#]=======================================================================]
-macro(matlab_get_version_from_release_name release_name version_name)
-
- string(REGEX MATCHALL "${release_name}=([0-9]+\\.?[0-9]*)" _matched ${MATLAB_VERSIONS_MAPPING})
-
- set(${version_name} "")
- if(NOT _matched STREQUAL "")
- set(${version_name} ${CMAKE_MATCH_1})
- else()
- message(WARNING "[MATLAB] The release name ${release_name} is not registered")
- endif()
- unset(_matched)
-
-endmacro()
-
-
-
-
-
-#[=======================================================================[.rst:
-.. command:: matlab_get_release_name_from_version
-
- Returns the release name (R2017k) from the version of Matlab (17.58)
-#]=======================================================================]
-macro(matlab_get_release_name_from_version version release_name)
-
- set(${release_name} "")
- foreach(_var IN LISTS MATLAB_VERSIONS_MAPPING)
- string(REGEX MATCHALL "(.+)=${version}" _matched ${_var})
- if(NOT _matched STREQUAL "")
- set(${release_name} ${CMAKE_MATCH_1})
- break()
- endif()
- endforeach(_var)
-
- unset(_var)
- unset(_matched)
- if(${release_name} STREQUAL "")
- message(WARNING "[MATLAB] The version ${version} is not registered")
- endif()
-
-endmacro()
-
-
-
-
-
-# extracts all the supported release names (R2017k...) of Matlab
-# internal use
-macro(matlab_get_supported_releases list_releases)
- set(${list_releases})
- foreach(_var IN LISTS MATLAB_VERSIONS_MAPPING)
- string(REGEX MATCHALL "(.+)=([0-9]+\\.?[0-9]*)" _matched ${_var})
- if(NOT _matched STREQUAL "")
- list(APPEND ${list_releases} ${CMAKE_MATCH_1})
- endif()
- unset(_matched)
- unset(CMAKE_MATCH_1)
- endforeach(_var)
- unset(_var)
-endmacro()
-
-
-
-# extracts all the supported versions of Matlab
-# internal use
-macro(matlab_get_supported_versions list_versions)
- set(${list_versions})
- foreach(_var IN LISTS MATLAB_VERSIONS_MAPPING)
- string(REGEX MATCHALL "(.+)=([0-9]+\\.?[0-9]*)" _matched ${_var})
- if(NOT _matched STREQUAL "")
- list(APPEND ${list_versions} ${CMAKE_MATCH_2})
- endif()
- unset(_matched)
- unset(CMAKE_MATCH_1)
- endforeach(_var)
- unset(_var)
-endmacro()
-
-
-#[=======================================================================[.rst:
-.. command:: matlab_extract_all_installed_versions_from_registry
-
- This function parses the registry and founds the Matlab versions that are
- installed. The found versions are returned in `matlab_versions`.
- Set `win64` to `TRUE` if the 64 bit version of Matlab should be looked for
- The returned list contains all versions under
- ``HKLM\\SOFTWARE\\Mathworks\\MATLAB`` and
- ``HKLM\\SOFTWARE\\Mathworks\\MATLAB Runtime`` or an empty list in case an
- error occurred (or nothing found).
-
- .. note::
-
- Only the versions are provided. No check is made over the existence of the
- installation referenced in the registry,
-
-#]=======================================================================]
-function(matlab_extract_all_installed_versions_from_registry win64 matlab_versions)
-
- if(NOT CMAKE_HOST_WIN32)
- message(FATAL_ERROR "[MATLAB] This macro can only be called by a windows host (call to reg.exe)")
- endif()
-
- if(${win64} AND CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "64")
- set(APPEND_REG "/reg:64")
- else()
- set(APPEND_REG "/reg:32")
- endif()
-
- set(matlabs_from_registry)
-
- foreach(_installation_type IN ITEMS "MATLAB" "MATLAB Runtime")
-
- # /reg:64 should be added on 64 bits capable OSs in order to enable the
- # redirection of 64 bits applications
- execute_process(
- COMMAND reg query HKEY_LOCAL_MACHINE\\SOFTWARE\\Mathworks\\${_installation_type} /f * /k ${APPEND_REG}
- RESULT_VARIABLE resultMatlab
- OUTPUT_VARIABLE varMatlab
- ERROR_VARIABLE errMatlab
- INPUT_FILE NUL
- )
-
-
- if(resultMatlab EQUAL 0)
-
- string(
- REGEX MATCHALL "MATLAB\\\\([0-9]+(\\.[0-9]+)?)"
- matlab_versions_regex ${varMatlab})
-
- foreach(match IN LISTS matlab_versions_regex)
- string(
- REGEX MATCH "MATLAB\\\\(([0-9]+)(\\.([0-9]+))?)"
- current_match ${match})
-
- set(_matlab_current_version ${CMAKE_MATCH_1})
- set(current_matlab_version_major ${CMAKE_MATCH_2})
- set(current_matlab_version_minor ${CMAKE_MATCH_4})
- if(NOT current_matlab_version_minor)
- set(current_matlab_version_minor "0")
- endif()
-
- list(APPEND matlabs_from_registry ${_matlab_current_version})
- unset(_matlab_current_version)
- endforeach()
-
- endif()
- endforeach()
-
- if(matlabs_from_registry)
- list(REMOVE_DUPLICATES matlabs_from_registry)
- list(SORT matlabs_from_registry)
- list(REVERSE matlabs_from_registry)
- endif()
-
- set(${matlab_versions} ${matlabs_from_registry} PARENT_SCOPE)
-
-endfunction()
-
-
-
-# (internal)
-macro(extract_matlab_versions_from_registry_brute_force matlab_versions)
- # get the supported versions
- set(matlab_supported_versions)
- matlab_get_supported_versions(matlab_supported_versions)
-
-
- # this is a manual population of the versions we want to look for
- # this can be done as is, but preferably with the call to
- # matlab_get_supported_versions and variable
-
- # populating the versions we want to look for
- # set(matlab_supported_versions)
-
- # # Matlab 7
- # set(matlab_major 7)
- # foreach(current_matlab_minor RANGE 4 20)
- # list(APPEND matlab_supported_versions "${matlab_major}.${current_matlab_minor}")
- # endforeach(current_matlab_minor)
-
- # # Matlab 8
- # set(matlab_major 8)
- # foreach(current_matlab_minor RANGE 0 5)
- # list(APPEND matlab_supported_versions "${matlab_major}.${current_matlab_minor}")
- # endforeach(current_matlab_minor)
-
- # # taking into account the possible additional versions provided by the user
- # if(DEFINED MATLAB_ADDITIONAL_VERSIONS)
- # list(APPEND matlab_supported_versions MATLAB_ADDITIONAL_VERSIONS)
- # endif()
-
- # we order from more recent to older
- if(matlab_supported_versions)
- list(REMOVE_DUPLICATES matlab_supported_versions)
- list(SORT matlab_supported_versions)
- list(REVERSE matlab_supported_versions)
- endif()
-
- set(${matlab_versions} ${matlab_supported_versions})
-endmacro()
-
-
-
-
-#[=======================================================================[.rst:
-.. command:: matlab_get_all_valid_matlab_roots_from_registry
-
- Populates the Matlab root with valid versions of Matlab or
- Matlab Runtime (MCR).
- The returned matlab_roots is organized in triplets
- ``(type,version_number,matlab_root_path)``, where ``type``
- indicates either ``MATLAB`` or ``MCR``.
-
- ::
-
- matlab_get_all_valid_matlab_roots_from_registry(
- matlab_versions
- matlab_roots)
-
- ``matlab_versions``
- the versions of each of the Matlab or MCR installations
- ``matlab_roots``
- the location of each of the Matlab or MCR installations
-#]=======================================================================]
-function(matlab_get_all_valid_matlab_roots_from_registry matlab_versions matlab_roots)
-
- # The matlab_versions comes either from
- # extract_matlab_versions_from_registry_brute_force or
- # matlab_extract_all_installed_versions_from_registry.
-
- set(_matlab_roots_list )
- # check for Matlab installations
- foreach(_matlab_current_version ${matlab_versions})
- get_filename_component(
- current_MATLAB_ROOT
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\${_matlab_current_version};MATLABROOT]"
- ABSOLUTE)
-
- if(EXISTS ${current_MATLAB_ROOT})
- list(APPEND _matlab_roots_list "MATLAB" ${_matlab_current_version} ${current_MATLAB_ROOT})
- endif()
-
- endforeach()
-
- # Check for MCR installations
- foreach(_matlab_current_version ${matlab_versions})
- get_filename_component(
- current_MATLAB_ROOT
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB Runtime\\${_matlab_current_version};MATLABROOT]"
- ABSOLUTE)
-
- # remove the dot
- string(REPLACE "." "" _matlab_current_version_without_dot "${_matlab_current_version}")
-
- if(EXISTS ${current_MATLAB_ROOT})
- list(APPEND _matlab_roots_list "MCR" ${_matlab_current_version} "${current_MATLAB_ROOT}/v${_matlab_current_version_without_dot}")
- endif()
-
- endforeach()
- set(${matlab_roots} ${_matlab_roots_list} PARENT_SCOPE)
-endfunction()
-
-#[=======================================================================[.rst:
-.. command:: matlab_get_mex_suffix
-
- Returns the extension of the mex files (the suffixes).
- This function should not be called before the appropriate Matlab root has
- been found.
-
- ::
-
- matlab_get_mex_suffix(
- matlab_root
- mex_suffix)
-
- ``matlab_root``
- the root of the Matlab/MCR installation
- ``mex_suffix``
- the variable name in which the suffix will be returned.
-#]=======================================================================]
-function(matlab_get_mex_suffix matlab_root mex_suffix)
-
- # todo setup the extension properly. Currently I do not know if this is
- # sufficient for all win32 distributions.
- # there is also CMAKE_EXECUTABLE_SUFFIX that could be tweaked
- set(mexext_suffix "")
- if(WIN32)
- list(APPEND mexext_suffix ".bat")
- endif()
-
- # we first try without suffix, since cmake does not understand a list with
- # one empty string element
- find_program(
- Matlab_MEXEXTENSIONS_PROG
- NAMES mexext
- PATHS ${matlab_root}/bin
- DOC "Matlab MEX extension provider"
- NO_DEFAULT_PATH
- )
-
- foreach(current_mexext_suffix IN LISTS mexext_suffix)
- if(NOT DEFINED Matlab_MEXEXTENSIONS_PROG OR NOT Matlab_MEXEXTENSIONS_PROG)
- # this call should populate the cache automatically
- find_program(
- Matlab_MEXEXTENSIONS_PROG
- "mexext${current_mexext_suffix}"
- PATHS ${matlab_root}/bin
- DOC "Matlab MEX extension provider"
- NO_DEFAULT_PATH
- )
- endif()
- endforeach(current_mexext_suffix)
- if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] Determining mex files extensions from '${matlab_root}/bin' with program '${Matlab_MEXEXTENSIONS_PROG}'")
- endif()
-
- # the program has been found?
- if((NOT Matlab_MEXEXTENSIONS_PROG) OR (NOT EXISTS ${Matlab_MEXEXTENSIONS_PROG}))
- if(MATLAB_FIND_DEBUG)
- message(WARNING "[MATLAB] Cannot found mexext program. Matlab root is ${matlab_root}")
- endif()
- unset(Matlab_MEXEXTENSIONS_PROG CACHE)
- return()
- endif()
-
- set(_matlab_mex_extension)
-
- set(devnull)
- if(UNIX)
- set(devnull INPUT_FILE /dev/null)
- elseif(WIN32)
- set(devnull INPUT_FILE NUL)
- endif()
-
- if(WIN32)
- # this environment variable is used to determine the arch on Windows
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(ENV{MATLAB_ARCH} "win64")
- else()
- set(ENV{MATLAB_ARCH} "win32")
- endif()
- endif()
-
- # this is the preferred way. If this does not work properly (eg. MCR on Windows), then we use our own knowledge
- execute_process(
- COMMAND ${Matlab_MEXEXTENSIONS_PROG}
- OUTPUT_VARIABLE _matlab_mex_extension
- ERROR_VARIABLE _matlab_mex_extension_error
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ${devnull})
- unset(ENV{MATLAB_ARCH})
-
- if(_matlab_mex_extension_error)
- if(WIN32)
- # this is only for intel architecture
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(_matlab_mex_extension "mexw64")
- else()
- set(_matlab_mex_extension "mexw32")
- endif()
- endif()
- endif()
-
- string(STRIP "${_matlab_mex_extension}" _matlab_mex_extension)
- if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] '${Matlab_MEXEXTENSIONS_PROG}' : determined extension '${_matlab_mex_extension}' and error string is '${_matlab_mex_extension_error}'")
- endif()
-
- unset(Matlab_MEXEXTENSIONS_PROG CACHE)
- set(${mex_suffix} ${_matlab_mex_extension} PARENT_SCOPE)
-endfunction()
-
-
-
-
-#[=======================================================================[.rst:
-.. command:: matlab_get_version_from_matlab_run
-
- This function runs Matlab program specified on arguments and extracts its
- version. If the path provided for the Matlab installation points to an MCR
- installation, the version is extracted from the installed files.
-
- ::
-
- matlab_get_version_from_matlab_run(
- matlab_binary_path
- matlab_list_versions)
-
- ``matlab_binary_path``
- the location of the `matlab` binary executable
- ``matlab_list_versions``
- the version extracted from Matlab
-#]=======================================================================]
-function(matlab_get_version_from_matlab_run matlab_binary_program matlab_list_versions)
-
- set(${matlab_list_versions} "" PARENT_SCOPE)
-
- if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] Determining the version of Matlab from ${matlab_binary_program}")
- endif()
-
- if(EXISTS "${_matlab_temporary_folder}/matlabVersionLog.cmaketmp")
- if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] Removing previous ${_matlab_temporary_folder}/matlabVersionLog.cmaketmp file")
- endif()
- file(REMOVE "${_matlab_temporary_folder}/matlabVersionLog.cmaketmp")
- endif()
-
-
- # the log file is needed since on windows the command executes in a new
- # window and it is not possible to get back the answer of Matlab
- # the -wait command is needed on windows, otherwise the call returns
- # immediately after the program launches itself.
- if(WIN32)
- set(_matlab_additional_commands "-wait")
- endif()
-
- set(devnull)
- if(UNIX)
- set(devnull INPUT_FILE /dev/null)
- elseif(WIN32)
- set(devnull INPUT_FILE NUL)
- endif()
-
- # timeout set to 120 seconds, in case it does not start
- # note as said before OUTPUT_VARIABLE cannot be used in a platform
- # independent manner however, not setting it would flush the output of Matlab
- # in the current console (unix variant)
- execute_process(
- COMMAND "${matlab_binary_program}" -nosplash -nojvm ${_matlab_additional_commands} -logfile "matlabVersionLog.cmaketmp" -nodesktop -nodisplay -r "version, exit"
- OUTPUT_VARIABLE _matlab_version_from_cmd_dummy
- RESULT_VARIABLE _matlab_result_version_call
- ERROR_VARIABLE _matlab_result_version_call_error
- TIMEOUT 120
- WORKING_DIRECTORY "${_matlab_temporary_folder}"
- ${devnull}
- )
-
- if(_matlab_result_version_call MATCHES "timeout")
- if(MATLAB_FIND_DEBUG)
- message(WARNING "[MATLAB] Unable to determine the version of Matlab."
- " Matlab call timed out after 120 seconds.")
- endif()
- return()
- endif()
-
- if(${_matlab_result_version_call})
- if(MATLAB_FIND_DEBUG)
- message(WARNING "[MATLAB] Unable to determine the version of Matlab. Matlab call returned with error ${_matlab_result_version_call}.")
- endif()
- return()
- elseif(NOT EXISTS "${_matlab_temporary_folder}/matlabVersionLog.cmaketmp")
- if(MATLAB_FIND_DEBUG)
- message(WARNING "[MATLAB] Unable to determine the version of Matlab. The log file does not exist.")
- endif()
- return()
- endif()
-
- # if successful, read back the log
- file(READ "${_matlab_temporary_folder}/matlabVersionLog.cmaketmp" _matlab_version_from_cmd)
- file(REMOVE "${_matlab_temporary_folder}/matlabVersionLog.cmaketmp")
-
- set(index -1)
- string(FIND "${_matlab_version_from_cmd}" "ans" index)
- if(index EQUAL -1)
-
- if(MATLAB_FIND_DEBUG)
- message(WARNING "[MATLAB] Cannot find the version of Matlab returned by the run.")
- endif()
-
- else()
- set(matlab_list_of_all_versions_tmp)
-
- string(SUBSTRING "${_matlab_version_from_cmd}" ${index} -1 substring_ans)
- string(
- REGEX MATCHALL "ans[\r\n\t ]*=[\r\n\t ]*'?([0-9]+(\\.[0-9]+)?)"
- matlab_versions_regex
- ${substring_ans})
- foreach(match IN LISTS matlab_versions_regex)
- string(
- REGEX MATCH "ans[\r\n\t ]*=[\r\n\t ]*'?(([0-9]+)(\\.([0-9]+))?)"
- current_match ${match})
-
- list(APPEND matlab_list_of_all_versions_tmp ${CMAKE_MATCH_1})
- endforeach()
- if(matlab_list_of_all_versions_tmp)
- list(REMOVE_DUPLICATES matlab_list_of_all_versions_tmp)
- endif()
- set(${matlab_list_versions} ${matlab_list_of_all_versions_tmp} PARENT_SCOPE)
-
- endif()
-
-endfunction()
-
-#[=======================================================================[.rst:
-.. command:: matlab_add_unit_test
-
- Adds a Matlab unit test to the test set of cmake/ctest.
- This command requires the component ``MAIN_PROGRAM`` and hence is not
- available for an MCR installation.
-
- The unit test uses the Matlab unittest framework (default, available
- starting Matlab 2013b+) except if the option ``NO_UNITTEST_FRAMEWORK``
- is given.
-
- The function expects one Matlab test script file to be given.
- In the case ``NO_UNITTEST_FRAMEWORK`` is given, the unittest script file
- should contain the script to be run, plus an exit command with the exit
- value. This exit value will be passed to the ctest framework (0 success,
- non 0 failure). Additional arguments accepted by :command:`add_test` can be
- passed through ``TEST_ARGS`` (eg. ``CONFIGURATION <config> ...``).
-
- ::
-
- matlab_add_unit_test(
- NAME <name>
- UNITTEST_FILE matlab_file_containing_unittest.m
- [CUSTOM_TEST_COMMAND matlab_command_to_run_as_test]
- [UNITTEST_PRECOMMAND matlab_command_to_run]
- [TIMEOUT timeout]
- [ADDITIONAL_PATH path1 [path2 ...]]
- [MATLAB_ADDITIONAL_STARTUP_OPTIONS option1 [option2 ...]]
- [TEST_ARGS arg1 [arg2 ...]]
- [NO_UNITTEST_FRAMEWORK]
- )
-
- The function arguments are:
-
- ``NAME``
- name of the unittest in ctest.
- ``UNITTEST_FILE``
- the matlab unittest file. Its path will be automatically
- added to the Matlab path.
- ``CUSTOM_TEST_COMMAND``
- Matlab script command to run as the test.
- If this is not set, then the following is run:
- ``runtests('matlab_file_name'), exit(max([ans(1,:).Failed]))``
- where ``matlab_file_name`` is the ``UNITTEST_FILE`` without the extension.
- ``UNITTEST_PRECOMMAND``
- Matlab script command to be ran before the file
- containing the test (eg. GPU device initialisation based on CMake
- variables).
- ``TIMEOUT``
- the test timeout in seconds. Defaults to 180 seconds as the
- Matlab unit test may hang.
- ``ADDITIONAL_PATH``
- a list of paths to add to the Matlab path prior to
- running the unit test.
- ``MATLAB_ADDITIONAL_STARTUP_OPTIONS``
- a list of additional option in order
- to run Matlab from the command line.
- ``-nosplash -nodesktop -nodisplay`` are always added.
- ``TEST_ARGS``
- Additional options provided to the add_test command. These
- options are added to the default options (eg. "CONFIGURATIONS Release")
- ``NO_UNITTEST_FRAMEWORK``
- when set, indicates that the test should not
- use the unittest framework of Matlab (available for versions >= R2013a).
- ``WORKING_DIRECTORY``
- This will be the working directory for the test. If specified it will
- also be the output directory used for the log file of the test run.
- If not specified the temporary directory ``${CMAKE_BINARY_DIR}/Matlab`` will
- be used as the working directory and the log location.
-
-#]=======================================================================]
-function(matlab_add_unit_test)
-
- if(NOT Matlab_MAIN_PROGRAM)
- message(FATAL_ERROR "[MATLAB] This functionality needs the MAIN_PROGRAM component (not default)")
- endif()
-
- set(options NO_UNITTEST_FRAMEWORK)
- set(oneValueArgs NAME UNITTEST_FILE TIMEOUT WORKING_DIRECTORY
- UNITTEST_PRECOMMAND CUSTOM_TEST_COMMAND)
- set(multiValueArgs ADDITIONAL_PATH MATLAB_ADDITIONAL_STARTUP_OPTIONS TEST_ARGS)
-
- set(prefix _matlab_unittest_prefix)
- cmake_parse_arguments(PARSE_ARGV 0 ${prefix} "${options}" "${oneValueArgs}" "${multiValueArgs}" )
-
- if(NOT ${prefix}_NAME)
- message(FATAL_ERROR "[MATLAB] The Matlab test name cannot be empty")
- endif()
-
- add_test(NAME ${${prefix}_NAME}
- COMMAND ${CMAKE_COMMAND}
- "-Dtest_name=${${prefix}_NAME}"
- "-Dadditional_paths=${${prefix}_ADDITIONAL_PATH}"
- "-Dtest_timeout=${${prefix}_TIMEOUT}"
- "-Doutput_directory=${_matlab_temporary_folder}"
- "-Dworking_directory=${${prefix}_WORKING_DIRECTORY}"
- "-DMatlab_PROGRAM=${Matlab_MAIN_PROGRAM}"
- "-Dno_unittest_framework=${${prefix}_NO_UNITTEST_FRAMEWORK}"
- "-DMatlab_ADDITIONAL_STARTUP_OPTIONS=${${prefix}_MATLAB_ADDITIONAL_STARTUP_OPTIONS}"
- "-Dunittest_file_to_run=${${prefix}_UNITTEST_FILE}"
- "-Dcustom_Matlab_test_command=${${prefix}_CUSTOM_TEST_COMMAND}"
- "-Dcmd_to_run_before_test=${${prefix}_UNITTEST_PRECOMMAND}"
- -P ${_FindMatlab_SELF_DIR}/MatlabTestsRedirect.cmake
- ${${prefix}_TEST_ARGS}
- ${${prefix}_UNPARSED_ARGUMENTS}
- )
-endfunction()
-
-
-#[=======================================================================[.rst:
-.. command:: matlab_add_mex
-
- Adds a Matlab MEX target.
- This commands compiles the given sources with the current tool-chain in
- order to produce a MEX file. The final name of the produced output may be
- specified, as well as additional link libraries, and a documentation entry
- for the MEX file. Remaining arguments of the call are passed to the
- :command:`add_library` or :command:`add_executable` command.
-
- ::
-
- matlab_add_mex(
- NAME <name>
- [EXECUTABLE | MODULE | SHARED]
- SRC src1 [src2 ...]
- [OUTPUT_NAME output_name]
- [DOCUMENTATION file.txt]
- [LINK_TO target1 target2 ...]
- [R2017b | R2018a]
- [EXCLUDE_FROM_ALL]
- [...]
- )
-
- ``NAME``
- name of the target.
- ``SRC``
- list of source files.
- ``LINK_TO``
- a list of additional link dependencies. The target links to ``libmex``
- and ``libmx`` by default.
- ``OUTPUT_NAME``
- if given, overrides the default name. The default name is
- the name of the target without any prefix and
- with ``Matlab_MEX_EXTENSION`` suffix.
- ``DOCUMENTATION``
- if given, the file ``file.txt`` will be considered as
- being the documentation file for the MEX file. This file is copied into
- the same folder without any processing, with the same name as the final
- mex file, and with extension `.m`. In that case, typing ``help <name>``
- in Matlab prints the documentation contained in this file.
- ``R2017b`` or ``R2018a`` may be given to specify the version of the C API
- to use: ``R2017b`` specifies the traditional (separate complex) C API,
- and corresponds to the ``-R2017b`` flag for the `mex` command. ``R2018a``
- specifies the new interleaved complex C API, and corresponds to the
- ``-R2018a`` flag for the `mex` command. Ignored if MATLAB version prior
- to R2018a. Defaults to ``R2017b``.
- ``MODULE`` or ``SHARED`` may be given to specify the type of library to be
- created. ``EXECUTABLE`` may be given to create an executable instead of
- a library. If no type is given explicitly, the type is ``SHARED``.
- ``EXCLUDE_FROM_ALL``
- This option has the same meaning as for :prop_tgt:`EXCLUDE_FROM_ALL` and
- is forwarded to :command:`add_library` or :command:`add_executable`
- commands.
-
- The documentation file is not processed and should be in the following
- format:
-
- ::
-
- % This is the documentation
- function ret = mex_target_output_name(input1)
-
-#]=======================================================================]
-function(matlab_add_mex)
-
- if(NOT WIN32)
- # we do not need all this on Windows
- # pthread options
- if(CMAKE_CXX_COMPILER_LOADED)
- check_cxx_compiler_flag(-pthread HAS_MINUS_PTHREAD)
- elseif(CMAKE_C_COMPILER_LOADED)
- check_c_compiler_flag(-pthread HAS_MINUS_PTHREAD)
- endif()
- # we should use try_compile instead, the link flags are discarded from
- # this compiler_flag function.
- #check_cxx_compiler_flag(-Wl,--exclude-libs,ALL HAS_SYMBOL_HIDING_CAPABILITY)
-
- endif()
-
- set(options EXECUTABLE MODULE SHARED R2017b R2018a EXCLUDE_FROM_ALL)
- set(oneValueArgs NAME DOCUMENTATION OUTPUT_NAME)
- set(multiValueArgs LINK_TO SRC)
-
- set(prefix _matlab_addmex_prefix)
- cmake_parse_arguments(${prefix} "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
-
- if(NOT ${prefix}_NAME)
- message(FATAL_ERROR "[MATLAB] The MEX target name cannot be empty")
- endif()
-
- if(NOT ${prefix}_OUTPUT_NAME)
- set(${prefix}_OUTPUT_NAME ${${prefix}_NAME})
- endif()
-
- if(NOT Matlab_VERSION_STRING VERSION_LESS "9.1") # For 9.1 (R2016b) and newer, add version source file
- # Add the correct version file depending on which languages are enabled in the project
- if(CMAKE_C_COMPILER_LOADED)
- # If C is enabled, use the .c file as it will work fine also with C++
- set(MEX_VERSION_FILE "${Matlab_ROOT_DIR}/extern/version/c_mexapi_version.c")
- elseif(CMAKE_CXX_COMPILER_LOADED)
- # If C is not enabled, check if CXX is enabled and use the .cpp file
- # to avoid that the .c file is silently ignored
- set(MEX_VERSION_FILE "${Matlab_ROOT_DIR}/extern/version/cpp_mexapi_version.cpp")
- else()
- # If neither C or CXX is enabled, warn because we cannot add the source.
- # TODO: add support for fortran mex files
- message(WARNING "[MATLAB] matlab_add_mex requires that at least C or CXX are enabled languages")
- endif()
- endif()
-
- if(NOT Matlab_VERSION_STRING VERSION_LESS "9.4") # For 9.4 (R2018a) and newer, add API macro
- if(${${prefix}_R2018a})
- set(MEX_API_MACRO "MATLAB_DEFAULT_RELEASE=R2018a")
- else()
- set(MEX_API_MACRO "MATLAB_DEFAULT_RELEASE=R2017b")
- endif()
- endif()
-
- set(_option_EXCLUDE_FROM_ALL)
- if(${prefix}_EXCLUDE_FROM_ALL)
- set(_option_EXCLUDE_FROM_ALL "EXCLUDE_FROM_ALL")
- endif()
-
- if(${prefix}_EXECUTABLE)
- add_executable(${${prefix}_NAME}
- ${_option_EXCLUDE_FROM_ALL}
- ${${prefix}_SRC}
- ${MEX_VERSION_FILE}
- ${${prefix}_DOCUMENTATION}
- ${${prefix}_UNPARSED_ARGUMENTS})
- else()
- if(${prefix}_MODULE)
- set(type MODULE)
- else()
- set(type SHARED)
- endif()
-
- add_library(${${prefix}_NAME}
- ${type}
- ${_option_EXCLUDE_FROM_ALL}
- ${${prefix}_SRC}
- ${MEX_VERSION_FILE}
- ${${prefix}_DOCUMENTATION}
- ${${prefix}_UNPARSED_ARGUMENTS})
- endif()
-
- target_include_directories(${${prefix}_NAME} PRIVATE ${Matlab_INCLUDE_DIRS})
-
- if(Matlab_HAS_CPP_API)
- target_link_libraries(${${prefix}_NAME} ${Matlab_ENGINE_LIBRARY} ${Matlab_DATAARRAY_LIBRARY})
- endif()
-
- target_link_libraries(${${prefix}_NAME} ${Matlab_MEX_LIBRARY} ${Matlab_MX_LIBRARY} ${${prefix}_LINK_TO})
- set_target_properties(${${prefix}_NAME}
- PROPERTIES
- PREFIX ""
- OUTPUT_NAME ${${prefix}_OUTPUT_NAME}
- SUFFIX ".${Matlab_MEX_EXTENSION}")
-
- target_compile_definitions(${${prefix}_NAME} PRIVATE ${MEX_API_MACRO} MATLAB_MEX_FILE)
-
- # documentation
- if(NOT ${${prefix}_DOCUMENTATION} STREQUAL "")
- get_target_property(output_name ${${prefix}_NAME} OUTPUT_NAME)
- add_custom_command(
- TARGET ${${prefix}_NAME}
- PRE_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${${prefix}_DOCUMENTATION} $<TARGET_FILE_DIR:${${prefix}_NAME}>/${output_name}.m
- COMMENT "[MATLAB] Copy ${${prefix}_NAME} documentation file into the output folder"
- )
- endif() # documentation
-
- # entry point in the mex file + taking care of visibility and symbol clashes.
- if(WIN32)
-
- if (MSVC)
-
- set(_link_flags "${_link_flags} /EXPORT:mexFunction")
- if(NOT Matlab_VERSION_STRING VERSION_LESS "9.1") # For 9.1 (R2016b) and newer, export version
- set(_link_flags "${_link_flags} /EXPORT:mexfilerequiredapiversion")
- endif()
-
- set_property(TARGET ${${prefix}_NAME} APPEND PROPERTY LINK_FLAGS ${_link_flags})
-
- endif() # No other compiler currently supported on Windows.
-
- set_target_properties(${${prefix}_NAME}
- PROPERTIES
- DEFINE_SYMBOL "DLL_EXPORT_SYM=__declspec(dllexport)")
-
- else()
-
- if(Matlab_VERSION_STRING VERSION_LESS "9.1") # For versions prior to 9.1 (R2016b)
- set(_ver_map_files ${Matlab_EXTERN_LIBRARY_DIR}/mexFunction.map)
- else() # For 9.1 (R2016b) and newer
- set(_ver_map_files ${Matlab_EXTERN_LIBRARY_DIR}/c_exportsmexfileversion.map)
- endif()
-
- if(NOT Matlab_VERSION_STRING VERSION_LESS "9.5") # For 9.5 (R2018b) (and newer?)
- target_compile_options(${${prefix}_NAME} PRIVATE "-fvisibility=default")
- # This one is weird, it might be a bug in <mex.h> for R2018b. When compiling with
- # -fvisibility=hidden, the symbol `mexFunction` cannot be exported. Reading the
- # source code for <mex.h>, it seems that the preprocessor macro `MW_NEEDS_VERSION_H`
- # needs to be defined for `__attribute__((visibility("default")))` to be added
- # in front of the declaration of `mexFunction`. In previous versions of MATLAB this
- # was not the case, there `DLL_EXPORT_SYM` needed to be defined.
- # Adding `-fvisibility=hidden` to the `mex` command causes the build to fail.
- # TODO: Check that this is still necessary in R2019a when it comes out.
- endif()
-
- if(APPLE)
-
- if(Matlab_HAS_CPP_API)
- list(APPEND _ver_map_files ${Matlab_EXTERN_LIBRARY_DIR}/cppMexFunction.map) # This one doesn't exist on Linux
- set(_link_flags "${_link_flags} -Wl,-U,_mexCreateMexFunction -Wl,-U,_mexDestroyMexFunction -Wl,-U,_mexFunctionAdapter")
- # On MacOS, the MEX command adds the above, without it the link breaks
- # because we indiscriminately use "cppMexFunction.map" even for C API MEX-files.
- endif()
-
- set(_export_flag_name -exported_symbols_list)
-
- else() # Linux
-
- if(HAS_MINUS_PTHREAD)
- # Apparently, compiling with -pthread generated the proper link flags
- # and some defines at compilation
- target_compile_options(${${prefix}_NAME} PRIVATE "-pthread")
- endif()
-
- set(_link_flags "${_link_flags} -Wl,--as-needed")
-
- set(_export_flag_name --version-script)
-
- endif()
-
- foreach(_file ${_ver_map_files})
- set(_link_flags "${_link_flags} -Wl,${_export_flag_name},${_file}")
- endforeach()
-
- # The `mex` command doesn't add this define. It is specified here in order
- # to export the symbol in case the client code decides to hide its symbols
- set_target_properties(${${prefix}_NAME}
- PROPERTIES
- DEFINE_SYMBOL "DLL_EXPORT_SYM=__attribute__((visibility(\"default\")))"
- LINK_FLAGS "${_link_flags}"
- )
-
- endif()
-
-endfunction()
-
-
-# (internal)
-# Used to get the version of matlab, using caching. This basically transforms the
-# output of the root list, with possible unknown version, to a version
-# This can possibly run Matlab for extracting the version.
-function(_Matlab_get_version_from_root matlab_root matlab_or_mcr matlab_known_version matlab_final_version)
-
- # if the version is not trivial, we query matlab (if not MCR) for that
- # we keep track of the location of matlab that induced this version
- #if(NOT DEFINED Matlab_PROG_VERSION_STRING_AUTO_DETECT)
- # set(Matlab_PROG_VERSION_STRING_AUTO_DETECT "" CACHE INTERNAL "internal matlab location for the discovered version")
- #endif()
-
- if(NOT matlab_known_version STREQUAL "NOTFOUND")
- # the version is known, we just return it
- set(${matlab_final_version} ${matlab_known_version} PARENT_SCOPE)
- set(Matlab_VERSION_STRING_INTERNAL ${matlab_known_version} CACHE INTERNAL "Matlab version (automatically determined)" FORCE)
- return()
- endif()
-
- if(matlab_or_mcr STREQUAL "UNKNOWN")
- if(MATLAB_FIND_DEBUG)
- message(WARNING "[MATLAB] Determining Matlab or MCR")
- endif()
-
- if(EXISTS "${matlab_root}/appdata/version.xml")
- # we inspect the application version.xml file that contains the product information
- file(STRINGS "${matlab_root}/appdata/version.xml" productinfo_string NEWLINE_CONSUME)
- string(REGEX MATCH "<installedProductData.*displayedString=\"([a-zA-Z ]+)\".*/>"
- product_reg_match
- ${productinfo_string}
- )
-
- # default fallback to Matlab
- set(matlab_or_mcr "MATLAB")
- if(NOT CMAKE_MATCH_1 STREQUAL "")
- string(TOLOWER "${CMAKE_MATCH_1}" product_reg_match)
-
- if(product_reg_match STREQUAL "matlab runtime")
- set(matlab_or_mcr "MCR")
- endif()
- endif()
- endif()
-
- if(MATLAB_FIND_DEBUG)
- message(WARNING "[MATLAB] '${matlab_root}' contains the '${matlab_or_mcr}'")
- endif()
- endif()
-
- # UNKNOWN is the default behaviour in case we
- # - have an erroneous matlab_root
- # - have an initial 'UNKNOWN'
- if(matlab_or_mcr STREQUAL "MATLAB" OR matlab_or_mcr STREQUAL "UNKNOWN")
- # MATLAB versions
- set(_matlab_current_program ${Matlab_MAIN_PROGRAM})
-
- # do we already have a matlab program?
- if(NOT _matlab_current_program)
-
- set(_find_matlab_options)
- if(matlab_root AND EXISTS ${matlab_root})
- set(_find_matlab_options PATHS ${matlab_root} ${matlab_root}/bin NO_DEFAULT_PATH)
- endif()
-
- find_program(
- _matlab_current_program
- matlab
- ${_find_matlab_options}
- DOC "Matlab main program"
- )
- endif()
-
- if(NOT _matlab_current_program OR NOT EXISTS ${_matlab_current_program})
- # if not found, clear the dependent variables
- if(MATLAB_FIND_DEBUG)
- message(WARNING "[MATLAB] Cannot find the main matlab program under ${matlab_root}")
- endif()
- set(Matlab_PROG_VERSION_STRING_AUTO_DETECT "" CACHE INTERNAL "internal matlab location for the discovered version" FORCE)
- set(Matlab_VERSION_STRING_INTERNAL "" CACHE INTERNAL "internal matlab location for the discovered version" FORCE)
- unset(_matlab_current_program)
- unset(_matlab_current_program CACHE)
- return()
- endif()
-
- # full real path for path comparison
- get_filename_component(_matlab_main_real_path_tmp "${_matlab_current_program}" REALPATH)
- unset(_matlab_current_program)
- unset(_matlab_current_program CACHE)
-
- # is it the same as the previous one?
- if(_matlab_main_real_path_tmp STREQUAL Matlab_PROG_VERSION_STRING_AUTO_DETECT)
- set(${matlab_final_version} ${Matlab_VERSION_STRING_INTERNAL} PARENT_SCOPE)
- return()
- endif()
-
- # update the location of the program
- set(Matlab_PROG_VERSION_STRING_AUTO_DETECT
- ${_matlab_main_real_path_tmp}
- CACHE INTERNAL "internal matlab location for the discovered version" FORCE)
-
- set(matlab_list_of_all_versions)
- matlab_get_version_from_matlab_run("${Matlab_PROG_VERSION_STRING_AUTO_DETECT}" matlab_list_of_all_versions)
-
- list(LENGTH matlab_list_of_all_versions list_of_all_versions_length)
- if(list_of_all_versions_length GREATER 0)
- list(GET matlab_list_of_all_versions 0 _matlab_version_tmp)
- else()
- set(_matlab_version_tmp "unknown")
- endif()
-
- # set the version into the cache
- set(Matlab_VERSION_STRING_INTERNAL ${_matlab_version_tmp} CACHE INTERNAL "Matlab version (automatically determined)" FORCE)
-
- # warning, just in case several versions found (should not happen)
- if((list_of_all_versions_length GREATER 1) AND MATLAB_FIND_DEBUG)
- message(WARNING "[MATLAB] Found several versions, taking the first one (versions found ${matlab_list_of_all_versions})")
- endif()
-
- # return the updated value
- set(${matlab_final_version} ${Matlab_VERSION_STRING_INTERNAL} PARENT_SCOPE)
- elseif(EXISTS "${matlab_root}/VersionInfo.xml")
- # MCR
- # we cannot run anything in order to extract the version. We assume that the file
- # VersionInfo.xml exists under the MatlabRoot, we look for it and extract the version from there
- set(_matlab_version_tmp "unknown")
- file(STRINGS "${matlab_root}/VersionInfo.xml" versioninfo_string NEWLINE_CONSUME)
-
- if(versioninfo_string)
- # parses "<version>9.2.0.538062</version>"
- string(REGEX MATCH "<version>(.*)</version>"
- version_reg_match
- ${versioninfo_string}
- )
-
- if(CMAKE_MATCH_1 MATCHES "(([0-9])\\.([0-9]))[\\.0-9]*")
- set(_matlab_version_tmp "${CMAKE_MATCH_1}")
- endif()
- endif()
- set(${matlab_final_version} "${_matlab_version_tmp}" PARENT_SCOPE)
- set(Matlab_VERSION_STRING_INTERNAL
- "${_matlab_version_tmp}"
- CACHE INTERNAL "Matlab (MCR) version (automatically determined)"
- FORCE)
- endif() # Matlab or MCR
-
-endfunction()
-
-
-# Utility function for finding Matlab or MCR on Win32
-function(_Matlab_find_instances_win32 matlab_roots)
- # On WIN32, we look for Matlab installation in the registry
- # if unsuccessful, we look for all known revision and filter the existing
- # ones.
-
- # testing if we are able to extract the needed information from the registry
- set(_matlab_versions_from_registry)
-
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(_matlab_win64 ON)
- else()
- set(_matlab_win64 OFF)
- endif()
-
- matlab_extract_all_installed_versions_from_registry(_matlab_win64 _matlab_versions_from_registry)
-
- # the returned list is empty, doing the search on all known versions
- if(NOT _matlab_versions_from_registry)
- if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] Search for Matlab from the registry unsuccessful, testing all supported versions")
- endif()
- extract_matlab_versions_from_registry_brute_force(_matlab_versions_from_registry)
- endif()
-
- # filtering the results with the registry keys
- matlab_get_all_valid_matlab_roots_from_registry("${_matlab_versions_from_registry}" _matlab_possible_roots)
- set(${matlab_roots} ${_matlab_possible_roots} PARENT_SCOPE)
-
-endfunction()
-
-# Utility function for finding Matlab or MCR on OSX
-function(_Matlab_find_instances_osx matlab_roots)
-
- set(_matlab_possible_roots)
- # on mac, we look for the /Application paths
- # this corresponds to the behaviour on Windows. On Linux, we do not have
- # any other guess.
- matlab_get_supported_releases(_matlab_releases)
- if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] Matlab supported versions ${_matlab_releases}. If more version should be supported "
- "the variable MATLAB_ADDITIONAL_VERSIONS can be set according to the documentation")
- endif()
-
- foreach(_matlab_current_release IN LISTS _matlab_releases)
- matlab_get_version_from_release_name("${_matlab_current_release}" _matlab_current_version)
- string(REPLACE "." "" _matlab_current_version_without_dot "${_matlab_current_version}")
- set(_matlab_base_path "/Applications/MATLAB_${_matlab_current_release}.app")
-
- # Check Matlab, has precedence over MCR
- if(EXISTS ${_matlab_base_path})
- if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] Found version ${_matlab_current_release} (${_matlab_current_version}) in ${_matlab_base_path}")
- endif()
- list(APPEND _matlab_possible_roots "MATLAB" ${_matlab_current_version} ${_matlab_base_path})
- endif()
-
- # Checks MCR
- set(_mcr_path "/Applications/MATLAB/MATLAB_Runtime/v${_matlab_current_version_without_dot}")
- if(EXISTS "${_mcr_path}")
- if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] Found MCR version ${_matlab_current_release} (${_matlab_current_version}) in ${_mcr_path}")
- endif()
- list(APPEND _matlab_possible_roots "MCR" ${_matlab_current_version} ${_mcr_path})
- endif()
-
- endforeach()
- set(${matlab_roots} ${_matlab_possible_roots} PARENT_SCOPE)
-
-endfunction()
-
-# Utility function for finding Matlab or MCR from the PATH
-function(_Matlab_find_instances_from_path matlab_roots)
-
- set(_matlab_possible_roots)
-
- # At this point, we have no other choice than trying to find it from PATH.
- # If set by the user, this wont change
- find_program(
- _matlab_main_tmp
- NAMES matlab)
-
- if(_matlab_main_tmp)
- # we then populate the list of roots, with empty version
- if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] matlab found from PATH: ${_matlab_main_tmp}")
- endif()
-
- # resolve symlinks
- get_filename_component(_matlab_current_location "${_matlab_main_tmp}" REALPATH)
-
- # get the directory (the command below has to be run twice)
- # this will be the matlab root
- get_filename_component(_matlab_current_location "${_matlab_current_location}" DIRECTORY)
- get_filename_component(_matlab_current_location "${_matlab_current_location}" DIRECTORY) # Matlab should be in bin
-
- # We found the Matlab program
- list(APPEND _matlab_possible_roots "MATLAB" "NOTFOUND" ${_matlab_current_location})
-
- # we remove this from the CACHE
- unset(_matlab_main_tmp CACHE)
- else()
- find_program(
- _matlab_mex_tmp
- NAMES mex)
- if(_matlab_mex_tmp)
- # we then populate the list of roots, with empty version
- if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] mex compiler found from PATH: ${_matlab_mex_tmp}")
- endif()
-
- # resolve symlinks
- get_filename_component(_mex_current_location "${_matlab_mex_tmp}" REALPATH)
-
- # get the directory (the command below has to be run twice)
- # this will be the matlab root
- get_filename_component(_mex_current_location "${_mex_current_location}" DIRECTORY)
- get_filename_component(_mex_current_location "${_mex_current_location}" DIRECTORY) # Matlab Runtime mex compiler should be in bin
-
- # We found the Matlab program
- list(APPEND _matlab_possible_roots "MCR" "NOTFOUND" ${_mex_current_location})
-
- unset(_matlab_mex_tmp CACHE)
- else()
- if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] mex compiler not found")
- endif()
- endif()
-
-
- endif()
-
- set(${matlab_roots} ${_matlab_possible_roots} PARENT_SCOPE)
-endfunction()
-
-
-# ###################################
-# Exploring the possible Matlab_ROOTS
-
-# this variable will get all Matlab installations found in the current system.
-set(_matlab_possible_roots)
-
-if(Matlab_ROOT_DIR)
- # if the user specifies a possible root, we keep this one
-
- if(NOT EXISTS "${Matlab_ROOT_DIR}")
- # if Matlab_ROOT_DIR specified but erroneous
- if(MATLAB_FIND_DEBUG)
- message(WARNING "[MATLAB] the specified path for Matlab_ROOT_DIR does not exist (${Matlab_ROOT_DIR})")
- endif()
- else()
- # NOTFOUND indicates the code below to search for the version automatically
- if("${Matlab_VERSION_STRING_INTERNAL}" STREQUAL "")
- list(APPEND _matlab_possible_roots "UNKNOWN" "NOTFOUND" ${Matlab_ROOT_DIR}) # empty version, empty MCR/Matlab indication
- else()
- list(APPEND _matlab_possible_roots "UNKNOWN" ${Matlab_VERSION_STRING_INTERNAL} ${Matlab_ROOT_DIR}) # cached version
- endif()
- endif()
-else()
-
- # if the user does not specify the possible installation root, we look for
- # one installation using the appropriate heuristics.
- # There is apparently no standard way on Linux.
- if(CMAKE_HOST_WIN32)
- _Matlab_find_instances_win32(_matlab_possible_roots_win32)
- list(APPEND _matlab_possible_roots ${_matlab_possible_roots_win32})
- elseif(APPLE)
- _Matlab_find_instances_osx(_matlab_possible_roots_osx)
- list(APPEND _matlab_possible_roots ${_matlab_possible_roots_osx})
- endif()
-endif()
-
-
-list(LENGTH _matlab_possible_roots _numbers_of_matlab_roots)
-if(_numbers_of_matlab_roots EQUAL 0)
- # if we have not found anything, we fall back on the PATH
- _Matlab_find_instances_from_path(_matlab_possible_roots)
-endif()
-
-
-if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] Matlab root folders are ${_matlab_possible_roots}")
-endif()
-
-
-
-
-
-# take the first possible Matlab root
-list(LENGTH _matlab_possible_roots _numbers_of_matlab_roots)
-set(Matlab_VERSION_STRING "NOTFOUND")
-set(Matlab_Or_MCR "UNKNOWN")
-if(_numbers_of_matlab_roots GREATER 0)
- if(Matlab_FIND_VERSION_EXACT)
- list(FIND _matlab_possible_roots ${Matlab_FIND_VERSION} _list_index)
- if(_list_index LESS 0)
- set(_list_index 1)
- endif()
-
- math(EXPR _matlab_or_mcr_index "${_list_index} - 1")
- math(EXPR _matlab_root_dir_index "${_list_index} + 1")
-
- list(GET _matlab_possible_roots ${_matlab_or_mcr_index} Matlab_Or_MCR)
- list(GET _matlab_possible_roots ${_list_index} Matlab_VERSION_STRING)
- list(GET _matlab_possible_roots ${_matlab_root_dir_index} Matlab_ROOT_DIR)
- else()
- list(GET _matlab_possible_roots 0 Matlab_Or_MCR)
- list(GET _matlab_possible_roots 1 Matlab_VERSION_STRING)
- list(GET _matlab_possible_roots 2 Matlab_ROOT_DIR)
-
- # adding a warning in case of ambiguity
- if(_numbers_of_matlab_roots GREATER 3 AND MATLAB_FIND_DEBUG)
- message(WARNING "[MATLAB] Found several distributions of Matlab. Setting the current version to ${Matlab_VERSION_STRING} (located ${Matlab_ROOT_DIR})."
- " If this is not the desired behaviour, use the EXACT keyword or provide the -DMatlab_ROOT_DIR=... on the command line")
- endif()
- endif()
-endif()
-
-
-# check if the root changed wrt. the previous defined one, if so
-# clear all the cached variables for being able to reconfigure properly
-if(DEFINED Matlab_ROOT_DIR_LAST_CACHED)
-
- if(NOT Matlab_ROOT_DIR_LAST_CACHED STREQUAL Matlab_ROOT_DIR)
- set(_Matlab_cached_vars
- Matlab_VERSION_STRING
- Matlab_INCLUDE_DIRS
- Matlab_MEX_LIBRARY
- Matlab_MEX_COMPILER
- Matlab_MCC_COMPILER
- Matlab_MAIN_PROGRAM
- Matlab_MX_LIBRARY
- Matlab_ENG_LIBRARY
- Matlab_MAT_LIBRARY
- Matlab_ENGINE_LIBRARY
- Matlab_DATAARRAY_LIBRARY
- Matlab_MEX_EXTENSION
- Matlab_SIMULINK_INCLUDE_DIR
-
- # internal
- Matlab_MEXEXTENSIONS_PROG
- Matlab_ROOT_DIR_LAST_CACHED
- #Matlab_PROG_VERSION_STRING_AUTO_DETECT
- #Matlab_VERSION_STRING_INTERNAL
- )
- foreach(_var IN LISTS _Matlab_cached_vars)
- if(DEFINED ${_var})
- unset(${_var} CACHE)
- endif()
- endforeach()
- endif()
-endif()
-
-set(Matlab_ROOT_DIR_LAST_CACHED ${Matlab_ROOT_DIR} CACHE INTERNAL "last Matlab root dir location")
-set(Matlab_ROOT_DIR ${Matlab_ROOT_DIR} CACHE PATH "Matlab installation root path" FORCE)
-
-# Fix the version, in case this one is NOTFOUND
-_Matlab_get_version_from_root(
- "${Matlab_ROOT_DIR}"
- "${Matlab_Or_MCR}"
- ${Matlab_VERSION_STRING}
- Matlab_VERSION_STRING
-)
-
-if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] Current version is ${Matlab_VERSION_STRING} located ${Matlab_ROOT_DIR}")
-endif()
-
-# MATLAB 9.4 (R2018a) and newer have a new C++ API
-# This API pulls additional required libraries.
-if(NOT ${Matlab_VERSION_STRING} VERSION_LESS "9.4")
- set(Matlab_HAS_CPP_API 1)
-endif()
-
-if(Matlab_ROOT_DIR)
- file(TO_CMAKE_PATH ${Matlab_ROOT_DIR} Matlab_ROOT_DIR)
-endif()
-
-if(CMAKE_SIZEOF_VOID_P EQUAL 4)
- set(_matlab_64Build FALSE)
-else()
- set(_matlab_64Build TRUE)
-endif()
-
-if(APPLE)
- set(_matlab_bin_prefix "mac") # i should be for intel
- set(_matlab_bin_suffix_32bits "i")
- set(_matlab_bin_suffix_64bits "i64")
-elseif(UNIX)
- set(_matlab_bin_prefix "gln")
- set(_matlab_bin_suffix_32bits "x86")
- set(_matlab_bin_suffix_64bits "xa64")
-else()
- set(_matlab_bin_prefix "win")
- set(_matlab_bin_suffix_32bits "32")
- set(_matlab_bin_suffix_64bits "64")
-endif()
-
-
-
-set(MATLAB_INCLUDE_DIR_TO_LOOK ${Matlab_ROOT_DIR}/extern/include)
-if(_matlab_64Build)
- set(_matlab_current_suffix ${_matlab_bin_suffix_64bits})
-else()
- set(_matlab_current_suffix ${_matlab_bin_suffix_32bits})
-endif()
-
-set(Matlab_BINARIES_DIR
- ${Matlab_ROOT_DIR}/bin/${_matlab_bin_prefix}${_matlab_current_suffix})
-set(Matlab_EXTERN_LIBRARY_DIR
- ${Matlab_ROOT_DIR}/extern/lib/${_matlab_bin_prefix}${_matlab_current_suffix})
-set(Matlab_EXTERN_BINARIES_DIR
- ${Matlab_ROOT_DIR}/extern/bin/${_matlab_bin_prefix}${_matlab_current_suffix})
-
-if(WIN32)
- if(MINGW)
- set(_matlab_lib_dir_for_search ${Matlab_EXTERN_LIBRARY_DIR}/mingw64)
- else()
- set(_matlab_lib_dir_for_search ${Matlab_EXTERN_LIBRARY_DIR}/microsoft)
- endif()
- set(_matlab_lib_prefix_for_search "lib")
-else()
- set(_matlab_lib_dir_for_search ${Matlab_BINARIES_DIR} ${Matlab_EXTERN_BINARIES_DIR})
- set(_matlab_lib_prefix_for_search "lib")
-endif()
-
-unset(_matlab_64Build)
-
-
-if(NOT DEFINED Matlab_MEX_EXTENSION)
- set(_matlab_mex_extension "")
- matlab_get_mex_suffix("${Matlab_ROOT_DIR}" _matlab_mex_extension)
-
- # This variable goes to the cache.
- set(Matlab_MEX_EXTENSION ${_matlab_mex_extension} CACHE STRING "Extensions for the mex targets (automatically given by Matlab)")
- unset(_matlab_mex_extension)
-endif()
-
-
-if(MATLAB_FIND_DEBUG)
- message(STATUS "[MATLAB] [DEBUG]_matlab_lib_prefix_for_search = ${_matlab_lib_prefix_for_search} | _matlab_lib_dir_for_search = ${_matlab_lib_dir_for_search}")
-endif()
-
-
-
-# internal
-# This small stub around find_library is to prevent any pollution of CMAKE_FIND_LIBRARY_PREFIXES in the global scope.
-# This is the function to be used below instead of the find_library directives.
-function(_Matlab_find_library _matlab_library_prefix)
- set(CMAKE_FIND_LIBRARY_PREFIXES ${CMAKE_FIND_LIBRARY_PREFIXES} ${_matlab_library_prefix})
- find_library(${ARGN})
-endfunction()
-
-
-set(_matlab_required_variables)
-
-# Order is as follow:
-# - unconditionally required libraries/headers first
-# - then library components
-# - then program components
-
-# the MEX library/header are required
-find_path(
- Matlab_INCLUDE_DIRS
- mex.h
- PATHS ${MATLAB_INCLUDE_DIR_TO_LOOK}
- NO_DEFAULT_PATH
- )
-list(APPEND _matlab_required_variables Matlab_INCLUDE_DIRS)
-
-_Matlab_find_library(
- ${_matlab_lib_prefix_for_search}
- Matlab_MEX_LIBRARY
- mex
- PATHS ${_matlab_lib_dir_for_search}
- NO_DEFAULT_PATH
-)
-list(APPEND _matlab_required_variables Matlab_MEX_LIBRARY)
-
-# the MEX extension is required
-list(APPEND _matlab_required_variables Matlab_MEX_EXTENSION)
-
-# the matlab root is required
-list(APPEND _matlab_required_variables Matlab_ROOT_DIR)
-
-# The MX library is required
-_Matlab_find_library(
- ${_matlab_lib_prefix_for_search}
- Matlab_MX_LIBRARY
- mx
- PATHS ${_matlab_lib_dir_for_search}
- NO_DEFAULT_PATH
-)
-list(APPEND _matlab_required_variables Matlab_MX_LIBRARY)
-if(Matlab_MX_LIBRARY)
- set(Matlab_MX_LIBRARY_FOUND TRUE)
-endif()
-
-if(Matlab_HAS_CPP_API)
-
- # The MatlabEngine library is required for R2018a+
- _Matlab_find_library(
- ${_matlab_lib_prefix_for_search}
- Matlab_ENGINE_LIBRARY
- MatlabEngine
- PATHS ${_matlab_lib_dir_for_search}
- DOC "MatlabEngine Library"
- NO_DEFAULT_PATH
- )
- list(APPEND _matlab_required_variables Matlab_ENGINE_LIBRARY)
- if(Matlab_ENGINE_LIBRARY)
- set(Matlab_ENGINE_LIBRARY_FOUND TRUE)
- endif()
-
- # The MatlabDataArray library is required for R2018a+
- _Matlab_find_library(
- ${_matlab_lib_prefix_for_search}
- Matlab_DATAARRAY_LIBRARY
- MatlabDataArray
- PATHS ${_matlab_lib_dir_for_search}
- DOC "MatlabDataArray Library"
- NO_DEFAULT_PATH
- )
- list(APPEND _matlab_required_variables Matlab_DATAARRAY_LIBRARY)
- if(Matlab_DATAARRAY_LIBRARY)
- set(Matlab_DATAARRAY_LIBRARY_FOUND TRUE)
- endif()
-
-endif()
-
-# Component ENG library
-if("ENG_LIBRARY" IN_LIST Matlab_FIND_COMPONENTS)
- _Matlab_find_library(
- ${_matlab_lib_prefix_for_search}
- Matlab_ENG_LIBRARY
- eng
- PATHS ${_matlab_lib_dir_for_search}
- NO_DEFAULT_PATH
- )
- if(Matlab_ENG_LIBRARY)
- set(Matlab_ENG_LIBRARY_FOUND TRUE)
- endif()
-endif()
-
-# Component MAT library
-if("MAT_LIBRARY" IN_LIST Matlab_FIND_COMPONENTS)
- _Matlab_find_library(
- ${_matlab_lib_prefix_for_search}
- Matlab_MAT_LIBRARY
- mat
- PATHS ${_matlab_lib_dir_for_search}
- NO_DEFAULT_PATH
- )
- if(Matlab_MAT_LIBRARY)
- set(Matlab_MAT_LIBRARY_FOUND TRUE)
- endif()
-endif()
-
-# Component Simulink
-if("SIMULINK" IN_LIST Matlab_FIND_COMPONENTS)
- find_path(
- Matlab_SIMULINK_INCLUDE_DIR
- simstruc.h
- PATHS "${Matlab_ROOT_DIR}/simulink/include"
- NO_DEFAULT_PATH
- )
- if(Matlab_SIMULINK_INCLUDE_DIR)
- set(Matlab_SIMULINK_FOUND TRUE)
- list(APPEND Matlab_INCLUDE_DIRS "${Matlab_SIMULINK_INCLUDE_DIR}")
- endif()
-endif()
-
-# component Matlab program
-if("MAIN_PROGRAM" IN_LIST Matlab_FIND_COMPONENTS)
- find_program(
- Matlab_MAIN_PROGRAM
- matlab
- PATHS ${Matlab_ROOT_DIR} ${Matlab_ROOT_DIR}/bin
- DOC "Matlab main program"
- NO_DEFAULT_PATH
- )
- if(Matlab_MAIN_PROGRAM)
- set(Matlab_MAIN_PROGRAM_FOUND TRUE)
- endif()
-endif()
-
-# component Mex Compiler
-if("MEX_COMPILER" IN_LIST Matlab_FIND_COMPONENTS)
- find_program(
- Matlab_MEX_COMPILER
- "mex"
- PATHS ${Matlab_BINARIES_DIR}
- DOC "Matlab MEX compiler"
- NO_DEFAULT_PATH
- )
- if(Matlab_MEX_COMPILER)
- set(Matlab_MEX_COMPILER_FOUND TRUE)
- endif()
-endif()
-
-# component MCC Compiler
-if("MCC_COMPILER" IN_LIST Matlab_FIND_COMPONENTS)
- find_program(
- Matlab_MCC_COMPILER
- "mcc"
- PATHS ${Matlab_BINARIES_DIR}
- DOC "Matlab MCC compiler"
- NO_DEFAULT_PATH
- )
- if(Matlab_MCC_COMPILER)
- set(Matlab_MCC_COMPILER_FOUND TRUE)
- endif()
-endif()
-
-set(Matlab_LIBRARIES
- ${Matlab_MEX_LIBRARY} ${Matlab_MX_LIBRARY}
- ${Matlab_ENG_LIBRARY} ${Matlab_MAT_LIBRARY}
- ${Matlab_DATAARRAY_LIBRARY} ${Matlab_ENGINE_LIBRARY})
-
-find_package_handle_standard_args(
- Matlab
- FOUND_VAR Matlab_FOUND
- REQUIRED_VARS ${_matlab_required_variables}
- VERSION_VAR Matlab_VERSION_STRING
- HANDLE_COMPONENTS)
-
-unset(_matlab_required_variables)
-unset(_matlab_bin_prefix)
-unset(_matlab_bin_suffix_32bits)
-unset(_matlab_bin_suffix_64bits)
-unset(_matlab_current_suffix)
-unset(_matlab_lib_dir_for_search)
-unset(_matlab_lib_prefix_for_search)
-
-if(Matlab_INCLUDE_DIRS AND Matlab_LIBRARIES)
- mark_as_advanced(
- Matlab_MEX_LIBRARY
- Matlab_MX_LIBRARY
- Matlab_ENG_LIBRARY
- Matlab_ENGINE_LIBRARY
- Matlab_DATAARRAY_LIBRARY
- Matlab_MAT_LIBRARY
- Matlab_INCLUDE_DIRS
- Matlab_FOUND
- Matlab_MAIN_PROGRAM
- Matlab_MEXEXTENSIONS_PROG
- Matlab_MEX_EXTENSION
- )
-endif()
-
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FindOpenACC.cmake b/share/cmake-3.16/Modules/FindOpenACC.cmake
deleted file mode 100644
index 743e0e2..0000000
--- a/share/cmake-3.16/Modules/FindOpenACC.cmake
+++ /dev/null
@@ -1,283 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindOpenACC
------------
-
-Detect OpenACC support by the compiler.
-
-This module can be used to detect OpenACC support in a compiler.
-If the compiler supports OpenACC, the flags required to compile with
-OpenACC support are returned in variables for the different languages.
-Currently, only PGI, GNU and Cray compilers are supported.
-
-Variables
-^^^^^^^^^
-
-This module will set the following variables per language in your
-project, where ``<lang>`` is one of C, CXX, or Fortran:
-
-``OpenACC_<lang>_FOUND``
- Variable indicating if OpenACC support for ``<lang>`` was detected.
-``OpenACC_<lang>_FLAGS``
- OpenACC compiler flags for ``<lang>``, separated by spaces.
-``OpenACC_<lang>_OPTIONS``
- OpenACC compiler flags for ``<lang>``, as a list. Suitable for usage
- with target_compile_options or target_link_options.
-
-Additionally, the module provides :prop_tgt:`IMPORTED` targets:
-
-``OpenACC::OpenACC_<lang>``
- Target for using OpenACC from ``<lang>``.
-
-The module will also try to provide the OpenACC version variables:
-
-``OpenACC_<lang>_SPEC_DATE``
- Date of the OpenACC specification implemented by the ``<lang>`` compiler.
-``OpenACC_<lang>_VERSION_MAJOR``
- Major version of OpenACC implemented by the ``<lang>`` compiler.
-``OpenACC_<lang>_VERSION_MINOR``
- Minor version of OpenACC implemented by the ``<lang>`` compiler.
-``OpenACC_<lang>_VERSION``
- OpenACC version implemented by the ``<lang>`` compiler.
-
-The specification date is formatted as given in the OpenACC standard:
-``yyyymm`` where ``yyyy`` and ``mm`` represents the year and month of
-the OpenACC specification implemented by the ``<lang>`` compiler.
-
-Input Variables
-^^^^^^^^^^^^^^^
-
-``OpenACC_ACCEL_TARGET=<target>``
-If set, will the correct target accelerator flag set to the <target> will
-be returned with OpenACC_<lang>_FLAGS.
-#]=======================================================================]
-
-set(OpenACC_C_CXX_TEST_SOURCE
-"
-int main(){
-#ifdef _OPENACC
- return 0;
-#else
- breaks_on_purpose
-#endif
-}
-"
-)
-set(OpenACC_Fortran_TEST_SOURCE
-"
-program test
-#ifndef _OPENACC
- breaks_on_purpose
-#endif
-endprogram test
-"
-)
-set(OpenACC_C_CXX_CHECK_VERSION_SOURCE
-"
-#include <stdio.h>
-const char accver_str[] = { 'I', 'N', 'F', 'O', ':', 'O', 'p', 'e', 'n', 'A',
- 'C', 'C', '-', 'd', 'a', 't', 'e', '[',
- ('0' + ((_OPENACC/100000)%10)),
- ('0' + ((_OPENACC/10000)%10)),
- ('0' + ((_OPENACC/1000)%10)),
- ('0' + ((_OPENACC/100)%10)),
- ('0' + ((_OPENACC/10)%10)),
- ('0' + ((_OPENACC/1)%10)),
- ']', '\\0' };
-int main()
-{
- puts(accver_str);
- return 0;
-}
-")
-set(OpenACC_Fortran_CHECK_VERSION_SOURCE
-"
- program acc_ver
- implicit none
- integer, parameter :: zero = ichar('0')
- character, dimension(25), parameter :: accver_str =&
- (/ 'I', 'N', 'F', 'O', ':', 'O', 'p', 'e', 'n', 'A', 'C', 'C', '-',&
- 'd', 'a', 't', 'e', '[',&
- char(zero + mod(_OPENACC/100000, 10)),&
- char(zero + mod(_OPENACC/10000, 10)),&
- char(zero + mod(_OPENACC/1000, 10)),&
- char(zero + mod(_OPENACC/100, 10)),&
- char(zero + mod(_OPENACC/10, 10)),&
- char(zero + mod(_OPENACC/1, 10)), ']' /)
- print *, accver_str
- end program acc_ver
-"
-)
-
-
-function(_OPENACC_WRITE_SOURCE_FILE LANG SRC_FILE_CONTENT_VAR SRC_FILE_NAME SRC_FILE_FULLPATH)
- set(WORK_DIR ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindOpenACC)
- if("${LANG}" STREQUAL "C")
- set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.c")
- file(WRITE "${SRC_FILE}" "${OpenACC_C_CXX_${SRC_FILE_CONTENT_VAR}}")
- elseif("${LANG}" STREQUAL "CXX")
- set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.cpp")
- file(WRITE "${SRC_FILE}" "${OpenACC_C_CXX_${SRC_FILE_CONTENT_VAR}}")
- elseif("${LANG}" STREQUAL "Fortran")
- set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.F90")
- file(WRITE "${SRC_FILE}_in" "${OpenACC_Fortran_${SRC_FILE_CONTENT_VAR}}")
- configure_file("${SRC_FILE}_in" "${SRC_FILE}" @ONLY)
- endif()
- set(${SRC_FILE_FULLPATH} "${SRC_FILE}" PARENT_SCOPE)
-endfunction()
-
-
-function(_OPENACC_GET_FLAGS_CANDIDATE LANG FLAG_VAR)
- set(ACC_FLAG_PGI "-acc")
- set(ACC_FLAG_GNU "-fopenacc")
- set(ACC_FLAG_Cray "-h acc")
-
- if(DEFINED ACC_FLAG_${CMAKE_${LANG}_COMPILER_ID})
- set("${FLAG_VAR}" "${ACC_FLAG_${CMAKE_${LANG}_COMPILER_ID}}" PARENT_SCOPE)
- else()
- # Fall back to a few common flags.
- set("${FLAG_VAR}" ${ACC_FLAG_GNU} ${ACC_FLAG_PGI})
- endif()
-
-endfunction()
-
-
-function(_OPENACC_GET_ACCEL_TARGET_FLAG LANG TARGET FLAG_VAR)
- # Find target accelerator flags.
- set(ACC_TARGET_FLAG_PGI "-ta")
- if(DEFINED ACC_TARGET_FLAG_${CMAKE_${LANG}_COMPILER_ID})
- set("${FLAG_VAR}" "${ACC_TARGET_FLAG_${CMAKE_${LANG}_COMPILER_ID}}=${TARGET}" PARENT_SCOPE)
- endif()
-endfunction()
-
-
-function(_OPENACC_GET_VERBOSE_FLAG LANG FLAG_VAR)
- # Find compiler's verbose flag for OpenACC.
- set(ACC_VERBOSE_FLAG_PGI "-Minfo=accel")
- if(DEFINED ACC_VERBOSE_FLAG_${CMAKE_${LANG}_COMPILER_ID})
- set("${FLAG_VAR}" "${ACC_VERBOSE_FLAG_${CMAKE_${LANG}_COMPILER_ID}}" PARENT_SCOPE)
- endif()
-endfunction()
-
-
-function(_OPENACC_GET_FLAGS LANG FLAG_VAR)
- set(FLAG_CANDIDATES "")
- _OPENACC_GET_FLAGS_CANDIDATE("${LANG}" FLAG_CANDIDATES)
- _OPENACC_WRITE_SOURCE_FILE("${LANG}" "TEST_SOURCE" OpenACCTryFlag _OPENACC_TEST_SRC)
-
- foreach(FLAG IN LISTS FLAG_CANDIDATES)
- try_compile(OpenACC_FLAG_TEST_RESULT ${CMAKE_BINARY_DIR} ${_OPENACC_TEST_SRC}
- CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${FLAG}"
- OUTPUT_VARIABLE OpenACC_TRY_COMPILE_OUTPUT
- )
- if(OpenACC_FLAG_TEST_RESULT)
- set("${FLAG_VAR}" "${FLAG}")
- if(DEFINED OpenACC_ACCEL_TARGET)
- _OPENACC_GET_ACCEL_TARGET_FLAG("${LANG}" "${OpenACC_ACCEL_TARGET}" TARGET_FLAG)
- string(APPEND "${FLAG_VAR}" " ${TARGET_FLAG}")
- endif()
-
- if(CMAKE_VERBOSE_MAKEFILE)
- # -Minfo=accel prints out OpenACC's messages on optimizations.
- _OPENACC_GET_VERBOSE_FLAG("${LANG}" OpenACC_VERBOSE_FLAG)
- string(APPEND "${FLAG_VAR}" " ${OpenACC_VERBOSE_FLAG}")
- endif()
- set("${FLAG_VAR}" "${${FLAG_VAR}}" PARENT_SCOPE)
- break()
- endif()
- endforeach()
-
-endfunction()
-
-
-function(_OPENACC_GET_SPEC_DATE LANG SPEC_DATE)
- _OPENACC_WRITE_SOURCE_FILE("${LANG}" "CHECK_VERSION_SOURCE" OpenACCCheckVersion _OPENACC_TEST_SRC)
-
- set(BIN_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindOpenACC/accver_${LANG}.bin")
- try_compile(OpenACC_SPECTEST_${LANG} "${CMAKE_BINARY_DIR}" "${_OPENACC_TEST_SRC}"
- CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OpenACC_${LANG}_FLAGS}"
- COPY_FILE ${BIN_FILE}
- OUTPUT_VARIABLE OUTPUT)
-
- if(${OpenACC_SPECTEST_${LANG}})
- file(STRINGS ${BIN_FILE} specstr LIMIT_COUNT 1 REGEX "INFO:OpenACC-date")
- set(regex_spec_date ".*INFO:OpenACC-date\\[0*([^]]*)\\].*")
- if("${specstr}" MATCHES "${regex_spec_date}")
- set(${SPEC_DATE} "${CMAKE_MATCH_1}" PARENT_SCOPE)
- endif()
- endif()
-endfunction()
-
-
-macro(_OPENACC_SET_VERSION_BY_SPEC_DATE LANG)
- set(OpenACC_SPEC_DATE_MAP
- # Combined versions, 2.5 onwards
- "201510=2.5"
- # 2013 08 is the corrected version.
- "201308=2.0"
- "201306=2.0"
- "201111=1.0"
- )
-
- string(REGEX MATCHALL "${OpenACC_${LANG}_SPEC_DATE}=([0-9]+)\\.([0-9]+)" _version_match "${OpenACC_SPEC_DATE_MAP}")
- if(NOT _version_match STREQUAL "")
- set(OpenACC_${LANG}_VERSION_MAJOR ${CMAKE_MATCH_1})
- set(OpenACC_${LANG}_VERSION_MINOR ${CMAKE_MATCH_2})
- set(OpenACC_${LANG}_VERSION "${OpenACC_${LANG}_VERSION_MAJOR}.${OpenACC_${LANG}_VERSION_MINOR}")
- else()
- unset(OpenACC_${LANG}_VERSION_MAJOR)
- unset(OpenACC_${LANG}_VERSION_MINOR)
- unset(OpenACC_${LANG}_VERSION)
- endif()
- unset(_version_match)
- unset(OpenACC_SPEC_DATE_MAP)
-endmacro()
-
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-foreach (LANG IN ITEMS C CXX Fortran)
- if(CMAKE_${LANG}_COMPILER_LOADED)
- set(OpenACC_${LANG}_FIND_QUIETLY ${OpenACC_FIND_QUIETLY})
- set(OpenACC_${LANG}_FIND_REQUIRED ${OpenACC_FIND_REQUIRED})
- set(OpenACC_${LANG}_FIND_VERSION ${OpenACC_FIND_VERSION})
- set(OpenACC_${LANG}_FIND_VERSION_EXACT ${OpenACC_FIND_VERSION_EXACT})
-
- if(NOT DEFINED OpenACC_${LANG}_FLAGS)
- _OPENACC_GET_FLAGS("${LANG}" OpenACC_${LANG}_FLAGS)
- endif()
- if(NOT DEFINED OpenACC_${LANG}_OPTIONS)
- separate_arguments(OpenACC_${LANG}_OPTIONS NATIVE_COMMAND "${OpenACC_${LANG}_FLAGS}")
- endif()
- _OPENACC_GET_SPEC_DATE("${LANG}" OpenACC_${LANG}_SPEC_DATE)
- _OPENACC_SET_VERSION_BY_SPEC_DATE("${LANG}")
-
- find_package_handle_standard_args(OpenACC_${LANG}
- REQUIRED_VARS OpenACC_${LANG}_FLAGS
- VERSION_VAR OpenACC_${LANG}_VERSION
- )
- endif()
-endforeach()
-
-foreach (LANG IN ITEMS C CXX Fortran)
- if(OpenACC_${LANG}_FOUND AND NOT TARGET OpenACC::OpenACC_${LANG})
- add_library(OpenACC::OpenACC_${LANG} INTERFACE IMPORTED)
- endif()
- if(OpenACC_${LANG}_LIBRARIES)
- set_property(TARGET OpenACC::OpenACC_${LANG} PROPERTY
- INTERFACE_LINK_LIBRARIES "${OpenACC_${LANG}_LIBRARIES}")
- endif()
- if(OpenACC_${LANG}_FLAGS)
- set_property(TARGET OpenACC::OpenACC_${LANG} PROPERTY
- INTERFACE_COMPILE_OPTIONS "$<$<COMPILE_LANGUAGE:${LANG}>:${OpenACC_${LANG}_OPTIONS}>")
- set_property(TARGET OpenACC::OpenACC_${LANG} PROPERTY
- INTERFACE_LINK_OPTIONS "$<$<COMPILE_LANGUAGE:${LANG}>:${OpenACC_${LANG}_OPTIONS}>")
- unset(_OpenACC_${LANG}_OPTIONS)
- endif()
-endforeach()
-
-unset(OpenACC_C_CXX_TEST_SOURCE)
-unset(OpenACC_Fortran_TEST_SOURCE)
-unset(OpenACC_C_CXX_CHECK_VERSION_SOURCE)
-unset(OpenACC_Fortran_CHECK_VERSION_SOURCE)
diff --git a/share/cmake-3.16/Modules/FindOpenGL.cmake b/share/cmake-3.16/Modules/FindOpenGL.cmake
deleted file mode 100644
index 23bb001..0000000
--- a/share/cmake-3.16/Modules/FindOpenGL.cmake
+++ /dev/null
@@ -1,545 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindOpenGL
-----------
-
-FindModule for OpenGL and OpenGL Utility Library (GLU).
-
-Optional COMPONENTS
-^^^^^^^^^^^^^^^^^^^
-
-This module respects several optional COMPONENTS: ``EGL``, ``GLX``, and
-``OpenGL``. There are corresponding import targets for each of these flags.
-
-IMPORTED Targets
-^^^^^^^^^^^^^^^^
-
-This module defines the :prop_tgt:`IMPORTED` targets:
-
-``OpenGL::GL``
- Defined to the platform-specific OpenGL libraries if the system has OpenGL.
-``OpenGL::OpenGL``
- Defined to libOpenGL if the system is GLVND-based.
-``OpenGL::GLU``
- Defined if the system has OpenGL Utility Library (GLU).
-``OpenGL::GLX``
- Defined if the system has OpenGL Extension to the X Window System (GLX).
-``OpenGL::EGL``
- Defined if the system has EGL.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module sets the following variables:
-
-``OPENGL_FOUND``
- True, if the system has OpenGL and all components are found.
-``OPENGL_XMESA_FOUND``
- True, if the system has XMESA.
-``OPENGL_GLU_FOUND``
- True, if the system has GLU.
-``OpenGL_OpenGL_FOUND``
- True, if the system has an OpenGL library.
-``OpenGL_GLX_FOUND``
- True, if the system has GLX.
-``OpenGL_EGL_FOUND``
- True, if the system has EGL.
-``OPENGL_INCLUDE_DIR``
- Path to the OpenGL include directory.
-``OPENGL_EGL_INCLUDE_DIRS``
- Path to the EGL include directory.
-``OPENGL_LIBRARIES``
- Paths to the OpenGL library, windowing system libraries, and GLU libraries.
- On Linux, this assumes GLX and is never correct for EGL-based targets.
- Clients are encouraged to use the ``OpenGL::*`` import targets instead.
-
-Cache variables
-^^^^^^^^^^^^^^^
-
-The following cache variables may also be set:
-
-``OPENGL_egl_LIBRARY``
- Path to the EGL library.
-``OPENGL_glu_LIBRARY``
- Path to the GLU library.
-``OPENGL_glx_LIBRARY``
- Path to the GLVND 'GLX' library.
-``OPENGL_opengl_LIBRARY``
- Path to the GLVND 'OpenGL' library
-``OPENGL_gl_LIBRARY``
- Path to the OpenGL library. New code should prefer the ``OpenGL::*`` import
- targets.
-
-Linux-specific
-^^^^^^^^^^^^^^
-
-Some Linux systems utilize GLVND as a new ABI for OpenGL. GLVND separates
-context libraries from OpenGL itself; OpenGL lives in "libOpenGL", and
-contexts are defined in "libGLX" or "libEGL". GLVND is currently the only way
-to get OpenGL 3+ functionality via EGL in a manner portable across vendors.
-Projects may use GLVND explicitly with target ``OpenGL::OpenGL`` and either
-``OpenGL::GLX`` or ``OpenGL::EGL``.
-
-Projects may use the ``OpenGL::GL`` target (or ``OPENGL_LIBRARIES`` variable)
-to use legacy GL interfaces. These will use the legacy GL library located
-by ``OPENGL_gl_LIBRARY``, if available. If ``OPENGL_gl_LIBRARY`` is empty or
-not found and GLVND is available, the ``OpenGL::GL`` target will use GLVND
-``OpenGL::OpenGL`` and ``OpenGL::GLX`` (and the ``OPENGL_LIBRARIES``
-variable will use the corresponding libraries). Thus, for non-EGL-based
-Linux targets, the ``OpenGL::GL`` target is most portable.
-
-A ``OpenGL_GL_PREFERENCE`` variable may be set to specify the preferred way
-to provide legacy GL interfaces in case multiple choices are available.
-The value may be one of:
-
-``GLVND``
- If the GLVND OpenGL and GLX libraries are available, prefer them.
- This forces ``OPENGL_gl_LIBRARY`` to be empty.
- This is the default if components were requested (since components
- correspond to GLVND libraries) or if policy :policy:`CMP0072` is
- set to ``NEW``.
-
-``LEGACY``
- Prefer to use the legacy libGL library, if available.
- This is the default if no components were requested and
- policy :policy:`CMP0072` is not set to ``NEW``.
-
-For EGL targets the client must rely on GLVND support on the user's system.
-Linking should use the ``OpenGL::OpenGL OpenGL::EGL`` targets. Using GLES*
-libraries is theoretically possible in place of ``OpenGL::OpenGL``, but this
-module does not currently support that; contributions welcome.
-
-``OPENGL_egl_LIBRARY`` and ``OPENGL_EGL_INCLUDE_DIRS`` are defined in the case of
-GLVND. For non-GLVND Linux and other systems these are left undefined.
-
-macOS-Specific
-^^^^^^^^^^^^^^
-
-On OSX FindOpenGL defaults to using the framework version of OpenGL. People
-will have to change the cache values of OPENGL_glu_LIBRARY and
-OPENGL_gl_LIBRARY to use OpenGL with X11 on OSX.
-#]=======================================================================]
-
-set(_OpenGL_REQUIRED_VARS OPENGL_gl_LIBRARY)
-
-# Provide OPENGL_USE_<C> variables for each component.
-foreach(component ${OpenGL_FIND_COMPONENTS})
- string(TOUPPER ${component} _COMPONENT)
- set(OPENGL_USE_${_COMPONENT} 1)
-endforeach()
-
-if (CYGWIN)
- find_path(OPENGL_INCLUDE_DIR GL/gl.h )
- list(APPEND _OpenGL_REQUIRED_VARS OPENGL_INCLUDE_DIR)
-
- find_library(OPENGL_gl_LIBRARY opengl32 )
- find_library(OPENGL_glu_LIBRARY glu32 )
-
-elseif (WIN32)
-
- if(BORLAND)
- set (OPENGL_gl_LIBRARY import32 CACHE STRING "OpenGL library for win32")
- set (OPENGL_glu_LIBRARY import32 CACHE STRING "GLU library for win32")
- else()
- set (OPENGL_gl_LIBRARY opengl32 CACHE STRING "OpenGL library for win32")
- set (OPENGL_glu_LIBRARY glu32 CACHE STRING "GLU library for win32")
- endif()
-
-elseif (APPLE)
- # The OpenGL.framework provides both gl and glu
- find_library(OPENGL_gl_LIBRARY OpenGL DOC "OpenGL library for OS X")
- find_library(OPENGL_glu_LIBRARY OpenGL DOC
- "GLU library for OS X (usually same as OpenGL library)")
- find_path(OPENGL_INCLUDE_DIR OpenGL/gl.h DOC "Include for OpenGL on OS X")
- list(APPEND _OpenGL_REQUIRED_VARS OPENGL_INCLUDE_DIR)
-
-else()
- if (CMAKE_SYSTEM_NAME MATCHES "HP-UX")
- # Handle HP-UX cases where we only want to find OpenGL in either hpux64
- # or hpux32 depending on if we're doing a 64 bit build.
- if(CMAKE_SIZEOF_VOID_P EQUAL 4)
- set(_OPENGL_LIB_PATH
- /opt/graphics/OpenGL/lib/hpux32/)
- else()
- set(_OPENGL_LIB_PATH
- /opt/graphics/OpenGL/lib/hpux64/
- /opt/graphics/OpenGL/lib/pa20_64)
- endif()
- elseif(CMAKE_SYSTEM_NAME STREQUAL Haiku)
- set(_OPENGL_LIB_PATH
- /boot/develop/lib/x86)
- set(_OPENGL_INCLUDE_PATH
- /boot/develop/headers/os/opengl)
- endif()
-
- # The first line below is to make sure that the proper headers
- # are used on a Linux machine with the NVidia drivers installed.
- # They replace Mesa with NVidia's own library but normally do not
- # install headers and that causes the linking to
- # fail since the compiler finds the Mesa headers but NVidia's library.
- # Make sure the NVIDIA directory comes BEFORE the others.
- # - Atanas Georgiev <atanas@cs.columbia.edu>
- find_path(OPENGL_INCLUDE_DIR GL/gl.h
- /usr/share/doc/NVIDIA_GLX-1.0/include
- /usr/openwin/share/include
- /opt/graphics/OpenGL/include
- ${_OPENGL_INCLUDE_PATH}
- )
- find_path(OPENGL_GLX_INCLUDE_DIR GL/glx.h ${_OPENGL_INCLUDE_PATH})
- find_path(OPENGL_EGL_INCLUDE_DIR EGL/egl.h ${_OPENGL_INCLUDE_PATH})
- find_path(OPENGL_xmesa_INCLUDE_DIR GL/xmesa.h
- /usr/share/doc/NVIDIA_GLX-1.0/include
- /usr/openwin/share/include
- /opt/graphics/OpenGL/include
- )
-
- # Search for the GLVND libraries. We do this regardless of COMPONENTS; we'll
- # take into account the COMPONENTS logic later.
- find_library(OPENGL_opengl_LIBRARY
- NAMES OpenGL
- PATHS ${_OPENGL_LIB_PATH}
- )
-
- find_library(OPENGL_glx_LIBRARY
- NAMES GLX
- PATHS ${_OPENGL_LIB_PATH}
- PATH_SUFFIXES libglvnd
- )
-
- find_library(OPENGL_egl_LIBRARY
- NAMES EGL
- PATHS ${_OPENGL_LIB_PATH}
- PATH_SUFFIXES libglvnd
- )
-
- find_library(OPENGL_glu_LIBRARY
- NAMES GLU MesaGLU
- PATHS ${OPENGL_gl_LIBRARY}
- /opt/graphics/OpenGL/lib
- /usr/openwin/lib
- /usr/shlib
- )
-
- set(_OpenGL_GL_POLICY_WARN 0)
- if(NOT DEFINED OpenGL_GL_PREFERENCE)
- set(OpenGL_GL_PREFERENCE "")
- endif()
- if(NOT OpenGL_GL_PREFERENCE STREQUAL "")
- # A preference has been explicitly specified.
- if(NOT OpenGL_GL_PREFERENCE MATCHES "^(GLVND|LEGACY)$")
- message(FATAL_ERROR
- "OpenGL_GL_PREFERENCE value '${OpenGL_GL_PREFERENCE}' not recognized. "
- "Allowed values are 'GLVND' and 'LEGACY'."
- )
- endif()
- elseif(OpenGL_FIND_COMPONENTS)
- # No preference was explicitly specified, but the caller did request
- # at least one GLVND component. Prefer GLVND for legacy GL.
- set(OpenGL_GL_PREFERENCE "GLVND")
- else()
- # No preference was explicitly specified and no GLVND components were
- # requested. Use a policy to choose the default.
- cmake_policy(GET CMP0072 _OpenGL_GL_POLICY)
- if("x${_OpenGL_GL_POLICY}x" STREQUAL "xNEWx")
- set(OpenGL_GL_PREFERENCE "GLVND")
- else()
- set(OpenGL_GL_PREFERENCE "LEGACY")
- if("x${_OpenGL_GL_POLICY}x" STREQUAL "xx")
- set(_OpenGL_GL_POLICY_WARN 1)
- endif()
- endif()
- unset(_OpenGL_GL_POLICY)
- endif()
-
- if("x${OpenGL_GL_PREFERENCE}x" STREQUAL "xGLVNDx" AND OPENGL_opengl_LIBRARY AND OPENGL_glx_LIBRARY)
- # We can provide legacy GL using GLVND libraries.
- # Do not use any legacy GL library.
- set(OPENGL_gl_LIBRARY "")
- else()
- # We cannot provide legacy GL using GLVND libraries.
- # Search for the legacy GL library.
- find_library(OPENGL_gl_LIBRARY
- NAMES GL MesaGL
- PATHS /opt/graphics/OpenGL/lib
- /usr/openwin/lib
- /usr/shlib
- ${_OPENGL_LIB_PATH}
- PATH_SUFFIXES libglvnd
- )
- endif()
-
- if(_OpenGL_GL_POLICY_WARN AND OPENGL_gl_LIBRARY AND OPENGL_opengl_LIBRARY AND OPENGL_glx_LIBRARY)
- cmake_policy(GET_WARNING CMP0072 _cmp0072_warning)
- message(AUTHOR_WARNING
- "${_cmp0072_warning}\n"
- "FindOpenGL found both a legacy GL library:\n"
- " OPENGL_gl_LIBRARY: ${OPENGL_gl_LIBRARY}\n"
- "and GLVND libraries for OpenGL and GLX:\n"
- " OPENGL_opengl_LIBRARY: ${OPENGL_opengl_LIBRARY}\n"
- " OPENGL_glx_LIBRARY: ${OPENGL_glx_LIBRARY}\n"
- "OpenGL_GL_PREFERENCE has not been set to \"GLVND\" or \"LEGACY\", so for "
- "compatibility with CMake 3.10 and below the legacy GL library will be used."
- )
- endif()
- unset(_OpenGL_GL_POLICY_WARN)
-
- # FPHSA cannot handle "this OR that is required", so we conditionally set what
- # it must look for. First clear any previous config we might have done:
- set(_OpenGL_REQUIRED_VARS)
-
- # now we append the libraries as appropriate. The complicated logic
- # basically comes down to "use libOpenGL when we can, and add in specific
- # context mechanisms when requested, or we need them to preserve the previous
- # default where glx is always available."
- if((NOT OPENGL_USE_EGL AND
- NOT OPENGL_opengl_LIBRARY AND
- OPENGL_glx_LIBRARY AND
- NOT OPENGL_gl_LIBRARY) OR
- (NOT OPENGL_USE_EGL AND
- NOT OPENGL_glx_LIBRARY AND
- NOT OPENGL_gl_LIBRARY) OR
- (NOT OPENGL_USE_EGL AND
- OPENGL_opengl_LIBRARY AND
- OPENGL_glx_LIBRARY) OR
- ( OPENGL_USE_EGL))
- list(APPEND _OpenGL_REQUIRED_VARS OPENGL_opengl_LIBRARY)
- endif()
-
- # GLVND GLX library. Preferred when available.
- if((NOT OPENGL_USE_OPENGL AND
- NOT OPENGL_USE_GLX AND
- NOT OPENGL_USE_EGL AND
- NOT OPENGL_glx_LIBRARY AND
- NOT OPENGL_gl_LIBRARY) OR
- ( OPENGL_USE_GLX AND
- NOT OPENGL_USE_EGL AND
- NOT OPENGL_glx_LIBRARY AND
- NOT OPENGL_gl_LIBRARY) OR
- (NOT OPENGL_USE_EGL AND
- OPENGL_opengl_LIBRARY AND
- OPENGL_glx_LIBRARY) OR
- (OPENGL_USE_GLX AND OPENGL_USE_EGL))
- list(APPEND _OpenGL_REQUIRED_VARS OPENGL_glx_LIBRARY)
- endif()
-
- # GLVND EGL library.
- if(OPENGL_USE_EGL)
- list(APPEND _OpenGL_REQUIRED_VARS OPENGL_egl_LIBRARY)
- endif()
-
- # Old-style "libGL" library: used as a fallback when GLVND isn't available.
- if((NOT OPENGL_USE_EGL AND
- NOT OPENGL_opengl_LIBRARY AND
- OPENGL_glx_LIBRARY AND
- OPENGL_gl_LIBRARY) OR
- (NOT OPENGL_USE_EGL AND
- NOT OPENGL_glx_LIBRARY AND
- OPENGL_gl_LIBRARY))
- list(APPEND _OpenGL_REQUIRED_VARS OPENGL_gl_LIBRARY)
- endif()
-
- # We always need the 'gl.h' include dir.
- list(APPEND _OpenGL_REQUIRED_VARS OPENGL_INCLUDE_DIR)
-
- unset(_OPENGL_INCLUDE_PATH)
- unset(_OPENGL_LIB_PATH)
-
- find_library(OPENGL_glu_LIBRARY
- NAMES GLU MesaGLU
- PATHS ${OPENGL_gl_LIBRARY}
- /opt/graphics/OpenGL/lib
- /usr/openwin/lib
- /usr/shlib
- )
-endif ()
-
-if(OPENGL_xmesa_INCLUDE_DIR)
- set( OPENGL_XMESA_FOUND "YES" )
-else()
- set( OPENGL_XMESA_FOUND "NO" )
-endif()
-
-if(OPENGL_glu_LIBRARY)
- set( OPENGL_GLU_FOUND "YES" )
-else()
- set( OPENGL_GLU_FOUND "NO" )
-endif()
-
-# OpenGL_OpenGL_FOUND is a bit unique in that it is okay if /either/ libOpenGL
-# or libGL is found.
-# Using libGL with libEGL is never okay, though; we handle that case later.
-if(NOT OPENGL_opengl_LIBRARY AND NOT OPENGL_gl_LIBRARY)
- set(OpenGL_OpenGL_FOUND FALSE)
-else()
- set(OpenGL_OpenGL_FOUND TRUE)
-endif()
-
-if(OPENGL_glx_LIBRARY AND OPENGL_GLX_INCLUDE_DIR)
- set(OpenGL_GLX_FOUND TRUE)
-else()
- set(OpenGL_GLX_FOUND FALSE)
-endif()
-
-if(OPENGL_egl_LIBRARY AND OPENGL_EGL_INCLUDE_DIR)
- set(OpenGL_EGL_FOUND TRUE)
-else()
- set(OpenGL_EGL_FOUND FALSE)
-endif()
-
-# User-visible names should be plural.
-if(OPENGL_EGL_INCLUDE_DIR)
- set(OPENGL_EGL_INCLUDE_DIRS ${OPENGL_EGL_INCLUDE_DIR})
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenGL REQUIRED_VARS ${_OpenGL_REQUIRED_VARS}
- HANDLE_COMPONENTS)
-unset(_OpenGL_REQUIRED_VARS)
-
-# OpenGL:: targets
-if(OPENGL_FOUND)
- # ::OpenGL is a GLVND library, and thus Linux-only: we don't bother checking
- # for a framework version of this library.
- if(OPENGL_opengl_LIBRARY AND NOT TARGET OpenGL::OpenGL)
- if(IS_ABSOLUTE "${OPENGL_opengl_LIBRARY}")
- add_library(OpenGL::OpenGL UNKNOWN IMPORTED)
- set_target_properties(OpenGL::OpenGL PROPERTIES IMPORTED_LOCATION
- "${OPENGL_opengl_LIBRARY}")
- else()
- add_library(OpenGL::OpenGL INTERFACE IMPORTED)
- set_target_properties(OpenGL::OpenGL PROPERTIES IMPORTED_LIBNAME
- "${OPENGL_opengl_LIBRARY}")
- endif()
- set_target_properties(OpenGL::OpenGL PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
- "${OPENGL_INCLUDE_DIR}")
- endif()
-
- # ::GLX is a GLVND library, and thus Linux-only: we don't bother checking
- # for a framework version of this library.
- if(OpenGL_GLX_FOUND AND NOT TARGET OpenGL::GLX)
- if(IS_ABSOLUTE "${OPENGL_glx_LIBRARY}")
- add_library(OpenGL::GLX UNKNOWN IMPORTED)
- set_target_properties(OpenGL::GLX PROPERTIES IMPORTED_LOCATION
- "${OPENGL_glx_LIBRARY}")
- else()
- add_library(OpenGL::GLX INTERFACE IMPORTED)
- set_target_properties(OpenGL::GLX PROPERTIES IMPORTED_LIBNAME
- "${OPENGL_glx_LIBRARY}")
- endif()
- set_target_properties(OpenGL::GLX PROPERTIES INTERFACE_LINK_LIBRARIES
- OpenGL::OpenGL)
- set_target_properties(OpenGL::GLX PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
- "${OPENGL_GLX_INCLUDE_DIR}")
- endif()
-
- if(OPENGL_gl_LIBRARY AND NOT TARGET OpenGL::GL)
- # A legacy GL library is available, so use it for the legacy GL target.
- if(IS_ABSOLUTE "${OPENGL_gl_LIBRARY}")
- add_library(OpenGL::GL UNKNOWN IMPORTED)
- if(OPENGL_gl_LIBRARY MATCHES "/([^/]+)\\.framework$")
- set(_gl_fw "${OPENGL_gl_LIBRARY}/${CMAKE_MATCH_1}")
- if(EXISTS "${_gl_fw}.tbd")
- string(APPEND _gl_fw ".tbd")
- endif()
- set_target_properties(OpenGL::GL PROPERTIES
- IMPORTED_LOCATION "${_gl_fw}")
- else()
- set_target_properties(OpenGL::GL PROPERTIES
- IMPORTED_LOCATION "${OPENGL_gl_LIBRARY}")
- endif()
- else()
- add_library(OpenGL::GL INTERFACE IMPORTED)
- set_target_properties(OpenGL::GL PROPERTIES
- IMPORTED_LIBNAME "${OPENGL_gl_LIBRARY}")
- endif()
- set_target_properties(OpenGL::GL PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}")
- elseif(NOT TARGET OpenGL::GL AND TARGET OpenGL::OpenGL AND TARGET OpenGL::GLX)
- # A legacy GL library is not available, but we can provide the legacy GL
- # target using GLVND OpenGL+GLX.
- add_library(OpenGL::GL INTERFACE IMPORTED)
- set_target_properties(OpenGL::GL PROPERTIES INTERFACE_LINK_LIBRARIES
- OpenGL::OpenGL)
- set_property(TARGET OpenGL::GL APPEND PROPERTY INTERFACE_LINK_LIBRARIES
- OpenGL::GLX)
- set_target_properties(OpenGL::GL PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
- "${OPENGL_INCLUDE_DIR}")
- endif()
-
- # ::EGL is a GLVND library, and thus Linux-only: we don't bother checking
- # for a framework version of this library.
- # Note we test for OpenGL::OpenGL as a target. When this module is updated to
- # support GLES, we would additionally want to check for the hypothetical GLES
- # target and enable EGL if either ::GLES or ::OpenGL is created.
- if(TARGET OpenGL::OpenGL AND OpenGL_EGL_FOUND AND NOT TARGET OpenGL::EGL)
- if(IS_ABSOLUTE "${OPENGL_egl_LIBRARY}")
- add_library(OpenGL::EGL UNKNOWN IMPORTED)
- set_target_properties(OpenGL::EGL PROPERTIES IMPORTED_LOCATION
- "${OPENGL_egl_LIBRARY}")
- else()
- add_library(OpenGL::EGL INTERFACE IMPORTED)
- set_target_properties(OpenGL::EGL PROPERTIES IMPORTED_LIBNAME
- "${OPENGL_egl_LIBRARY}")
- endif()
- set_target_properties(OpenGL::EGL PROPERTIES INTERFACE_LINK_LIBRARIES
- OpenGL::OpenGL)
- # Note that EGL's include directory is different from OpenGL/GLX's!
- set_target_properties(OpenGL::EGL PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
- "${OPENGL_EGL_INCLUDE_DIR}")
- endif()
-
- if(OPENGL_GLU_FOUND AND NOT TARGET OpenGL::GLU)
- if(IS_ABSOLUTE "${OPENGL_glu_LIBRARY}")
- add_library(OpenGL::GLU UNKNOWN IMPORTED)
- if(OPENGL_glu_LIBRARY MATCHES "/([^/]+)\\.framework$")
- set(_glu_fw "${OPENGL_glu_LIBRARY}/${CMAKE_MATCH_1}")
- if(EXISTS "${_glu_fw}.tbd")
- string(APPEND _glu_fw ".tbd")
- endif()
- set_target_properties(OpenGL::GLU PROPERTIES
- IMPORTED_LOCATION "${_glu_fw}")
- else()
- set_target_properties(OpenGL::GLU PROPERTIES
- IMPORTED_LOCATION "${OPENGL_glu_LIBRARY}")
- endif()
- else()
- add_library(OpenGL::GLU INTERFACE IMPORTED)
- set_target_properties(OpenGL::GLU PROPERTIES
- IMPORTED_LIBNAME "${OPENGL_glu_LIBRARY}")
- endif()
- set_target_properties(OpenGL::GLU PROPERTIES
- INTERFACE_LINK_LIBRARIES OpenGL::GL)
- endif()
-
- # OPENGL_LIBRARIES mirrors OpenGL::GL's logic ...
- if(OPENGL_gl_LIBRARY)
- set(OPENGL_LIBRARIES ${OPENGL_gl_LIBRARY})
- elseif(TARGET OpenGL::OpenGL AND TARGET OpenGL::GLX)
- set(OPENGL_LIBRARIES ${OPENGL_opengl_LIBRARY} ${OPENGL_glx_LIBRARY})
- else()
- set(OPENGL_LIBRARIES "")
- endif()
- # ... and also includes GLU, if available.
- if(TARGET OpenGL::GLU)
- list(APPEND OPENGL_LIBRARIES ${OPENGL_glu_LIBRARY})
- endif()
-endif()
-
-# This deprecated setting is for backward compatibility with CMake1.4
-set(OPENGL_LIBRARY ${OPENGL_LIBRARIES})
-# This deprecated setting is for backward compatibility with CMake1.4
-set(OPENGL_INCLUDE_PATH ${OPENGL_INCLUDE_DIR})
-
-mark_as_advanced(
- OPENGL_INCLUDE_DIR
- OPENGL_xmesa_INCLUDE_DIR
- OPENGL_egl_LIBRARY
- OPENGL_glu_LIBRARY
- OPENGL_glx_LIBRARY
- OPENGL_gl_LIBRARY
- OPENGL_opengl_LIBRARY
- OPENGL_EGL_INCLUDE_DIR
- OPENGL_GLX_INCLUDE_DIR
-)
diff --git a/share/cmake-3.16/Modules/FindOpenMP.cmake b/share/cmake-3.16/Modules/FindOpenMP.cmake
deleted file mode 100644
index 90d1c3e..0000000
--- a/share/cmake-3.16/Modules/FindOpenMP.cmake
+++ /dev/null
@@ -1,586 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindOpenMP
-----------
-
-Finds Open Multi-Processing (OpenMP) support.
-
-This module can be used to detect OpenMP support in a compiler. If
-the compiler supports OpenMP, the flags required to compile with
-OpenMP support are returned in variables for the different languages.
-The variables may be empty if the compiler does not need a special
-flag to support OpenMP.
-
-Variables
-^^^^^^^^^
-
-The module exposes the components ``C``, ``CXX``, and ``Fortran``.
-Each of these controls the various languages to search OpenMP support for.
-
-Depending on the enabled components the following variables will be set:
-
-``OpenMP_FOUND``
- Variable indicating that OpenMP flags for all requested languages have been found.
- If no components are specified, this is true if OpenMP settings for all enabled languages
- were detected.
-``OpenMP_VERSION``
- Minimal version of the OpenMP standard detected among the requested languages,
- or all enabled languages if no components were specified.
-
-This module will set the following variables per language in your
-project, where ``<lang>`` is one of C, CXX, or Fortran:
-
-``OpenMP_<lang>_FOUND``
- Variable indicating if OpenMP support for ``<lang>`` was detected.
-``OpenMP_<lang>_FLAGS``
- OpenMP compiler flags for ``<lang>``, separated by spaces.
-``OpenMP_<lang>_INCLUDE_DIRS``
- Directories that must be added to the header search path for ``<lang>``
- when using OpenMP.
-
-For linking with OpenMP code written in ``<lang>``, the following
-variables are provided:
-
-``OpenMP_<lang>_LIB_NAMES``
- :ref:`;-list <CMake Language Lists>` of libraries for OpenMP programs for ``<lang>``.
-``OpenMP_<libname>_LIBRARY``
- Location of the individual libraries needed for OpenMP support in ``<lang>``.
-``OpenMP_<lang>_LIBRARIES``
- A list of libraries needed to link with OpenMP code written in ``<lang>``.
-
-Additionally, the module provides :prop_tgt:`IMPORTED` targets:
-
-``OpenMP::OpenMP_<lang>``
- Target for using OpenMP from ``<lang>``.
-
-Specifically for Fortran, the module sets the following variables:
-
-``OpenMP_Fortran_HAVE_OMPLIB_HEADER``
- Boolean indicating if OpenMP is accessible through ``omp_lib.h``.
-``OpenMP_Fortran_HAVE_OMPLIB_MODULE``
- Boolean indicating if OpenMP is accessible through the ``omp_lib`` Fortran module.
-
-The module will also try to provide the OpenMP version variables:
-
-``OpenMP_<lang>_SPEC_DATE``
- Date of the OpenMP specification implemented by the ``<lang>`` compiler.
-``OpenMP_<lang>_VERSION_MAJOR``
- Major version of OpenMP implemented by the ``<lang>`` compiler.
-``OpenMP_<lang>_VERSION_MINOR``
- Minor version of OpenMP implemented by the ``<lang>`` compiler.
-``OpenMP_<lang>_VERSION``
- OpenMP version implemented by the ``<lang>`` compiler.
-
-The specification date is formatted as given in the OpenMP standard:
-``yyyymm`` where ``yyyy`` and ``mm`` represents the year and month of
-the OpenMP specification implemented by the ``<lang>`` compiler.
-
-For some compilers, it may be necessary to add a header search path to find
-the relevant OpenMP headers. This location may be language-specific. Where
-this is needed, the module may attempt to find the location, but it can be
-provided directly by setting the ``OpenMP_<lang>_INCLUDE_DIR`` cache variable.
-Note that this variable is an _input_ control to the module. Project code
-should use the ``OpenMP_<lang>_INCLUDE_DIRS`` _output_ variable if it needs
-to know what include directories are needed.
-#]=======================================================================]
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0012 NEW) # if() recognizes numbers and booleans
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
-cmake_policy(SET CMP0057 NEW) # if IN_LIST
-
-function(_OPENMP_FLAG_CANDIDATES LANG)
- if(NOT OpenMP_${LANG}_FLAG)
- unset(OpenMP_FLAG_CANDIDATES)
-
- set(OMP_FLAG_GNU "-fopenmp")
- set(OMP_FLAG_Clang "-fopenmp=libomp" "-fopenmp=libiomp5" "-fopenmp")
- set(OMP_FLAG_AppleClang "-Xclang -fopenmp")
- set(OMP_FLAG_HP "+Oopenmp")
- if(WIN32)
- set(OMP_FLAG_Intel "-Qopenmp")
- elseif(CMAKE_${LANG}_COMPILER_ID STREQUAL "Intel" AND
- "${CMAKE_${LANG}_COMPILER_VERSION}" VERSION_LESS "15.0.0.20140528")
- set(OMP_FLAG_Intel "-openmp")
- else()
- set(OMP_FLAG_Intel "-qopenmp")
- endif()
- set(OMP_FLAG_MSVC "-openmp")
- set(OMP_FLAG_PathScale "-openmp")
- set(OMP_FLAG_NAG "-openmp")
- set(OMP_FLAG_Absoft "-openmp")
- set(OMP_FLAG_PGI "-mp")
- set(OMP_FLAG_Flang "-fopenmp")
- set(OMP_FLAG_SunPro "-xopenmp")
- set(OMP_FLAG_XL "-qsmp=omp")
- # Cray compiler activate OpenMP with -h omp, which is enabled by default.
- set(OMP_FLAG_Cray " " "-h omp")
-
- # If we know the correct flags, use those
- if(DEFINED OMP_FLAG_${CMAKE_${LANG}_COMPILER_ID})
- set(OpenMP_FLAG_CANDIDATES "${OMP_FLAG_${CMAKE_${LANG}_COMPILER_ID}}")
- # Fall back to reasonable default tries otherwise
- else()
- set(OpenMP_FLAG_CANDIDATES "-openmp" "-fopenmp" "-mp" " ")
- endif()
- set(OpenMP_${LANG}_FLAG_CANDIDATES "${OpenMP_FLAG_CANDIDATES}" PARENT_SCOPE)
- else()
- set(OpenMP_${LANG}_FLAG_CANDIDATES "${OpenMP_${LANG}_FLAG}" PARENT_SCOPE)
- endif()
-endfunction()
-
-# sample openmp source code to test
-set(OpenMP_C_CXX_TEST_SOURCE
-"
-#include <omp.h>
-int main(void) {
-#ifdef _OPENMP
- omp_get_max_threads();
- return 0;
-#elif defined(__HIP_DEVICE_COMPILE__)
- return 0;
-#else
- breaks_on_purpose
-#endif
-}
-")
-
-# in Fortran, an implementation may provide an omp_lib.h header
-# or omp_lib module, or both (OpenMP standard, section 3.1)
-# Furthmore !$ is the Fortran equivalent of #ifdef _OPENMP (OpenMP standard, 2.2.2)
-# Without the conditional compilation, some compilers (e.g. PGI) might compile OpenMP code
-# while not actually enabling OpenMP, building code sequentially
-set(OpenMP_Fortran_TEST_SOURCE
- "
- program test
- @OpenMP_Fortran_INCLUDE_LINE@
- !$ integer :: n
- n = omp_get_num_threads()
- end program test
- "
-)
-
-function(_OPENMP_WRITE_SOURCE_FILE LANG SRC_FILE_CONTENT_VAR SRC_FILE_NAME SRC_FILE_FULLPATH)
- set(WORK_DIR ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindOpenMP)
- if("${LANG}" STREQUAL "C")
- set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.c")
- file(WRITE "${SRC_FILE}" "${OpenMP_C_CXX_${SRC_FILE_CONTENT_VAR}}")
- elseif("${LANG}" STREQUAL "CXX")
- set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.cpp")
- file(WRITE "${SRC_FILE}" "${OpenMP_C_CXX_${SRC_FILE_CONTENT_VAR}}")
- elseif("${LANG}" STREQUAL "Fortran")
- set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.f90")
- file(WRITE "${SRC_FILE}_in" "${OpenMP_Fortran_${SRC_FILE_CONTENT_VAR}}")
- configure_file("${SRC_FILE}_in" "${SRC_FILE}" @ONLY)
- endif()
- set(${SRC_FILE_FULLPATH} "${SRC_FILE}" PARENT_SCOPE)
-endfunction()
-
-include(${CMAKE_CURRENT_LIST_DIR}/CMakeParseImplicitLinkInfo.cmake)
-
-function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
- _OPENMP_FLAG_CANDIDATES("${LANG}")
- _OPENMP_WRITE_SOURCE_FILE("${LANG}" "TEST_SOURCE" OpenMPTryFlag _OPENMP_TEST_SRC)
-
- unset(OpenMP_VERBOSE_COMPILE_OPTIONS)
- separate_arguments(OpenMP_VERBOSE_OPTIONS NATIVE_COMMAND "${CMAKE_${LANG}_VERBOSE_FLAG}")
- foreach(_VERBOSE_OPTION IN LISTS OpenMP_VERBOSE_OPTIONS)
- if(NOT _VERBOSE_OPTION MATCHES "^-Wl,")
- list(APPEND OpenMP_VERBOSE_COMPILE_OPTIONS ${_VERBOSE_OPTION})
- endif()
- endforeach()
-
- foreach(OPENMP_FLAG IN LISTS OpenMP_${LANG}_FLAG_CANDIDATES)
- set(OPENMP_FLAGS_TEST "${OPENMP_FLAG}")
- if(OpenMP_VERBOSE_COMPILE_OPTIONS)
- string(APPEND OPENMP_FLAGS_TEST " ${OpenMP_VERBOSE_COMPILE_OPTIONS}")
- endif()
- string(REGEX REPLACE "[-/=+]" "" OPENMP_PLAIN_FLAG "${OPENMP_FLAG}")
- try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG} ${CMAKE_BINARY_DIR} ${_OPENMP_TEST_SRC}
- CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
- LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG}
- OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
- )
-
- if(OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG})
- set("${OPENMP_FLAG_VAR}" "${OPENMP_FLAG}" PARENT_SCOPE)
-
- if(CMAKE_${LANG}_VERBOSE_FLAG)
- unset(OpenMP_${LANG}_IMPLICIT_LIBRARIES)
- unset(OpenMP_${LANG}_IMPLICIT_LINK_DIRS)
- unset(OpenMP_${LANG}_IMPLICIT_FWK_DIRS)
- unset(OpenMP_${LANG}_LOG_VAR)
-
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Detecting ${LANG} OpenMP compiler ABI info compiled with the following output:\n${OpenMP_TRY_COMPILE_OUTPUT}\n\n")
-
- cmake_parse_implicit_link_info("${OpenMP_TRY_COMPILE_OUTPUT}"
- OpenMP_${LANG}_IMPLICIT_LIBRARIES
- OpenMP_${LANG}_IMPLICIT_LINK_DIRS
- OpenMP_${LANG}_IMPLICIT_FWK_DIRS
- OpenMP_${LANG}_LOG_VAR
- "${CMAKE_${LANG}_IMPLICIT_OBJECT_REGEX}"
- )
-
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Parsed ${LANG} OpenMP implicit link information from above output:\n${OpenMP_${LANG}_LOG_VAR}\n\n")
-
- unset(_OPENMP_LIB_NAMES)
- foreach(_OPENMP_IMPLICIT_LIB IN LISTS OpenMP_${LANG}_IMPLICIT_LIBRARIES)
- get_filename_component(_OPENMP_IMPLICIT_LIB_DIR "${_OPENMP_IMPLICIT_LIB}" DIRECTORY)
- get_filename_component(_OPENMP_IMPLICIT_LIB_NAME "${_OPENMP_IMPLICIT_LIB}" NAME)
- get_filename_component(_OPENMP_IMPLICIT_LIB_PLAIN "${_OPENMP_IMPLICIT_LIB}" NAME_WE)
- string(REGEX REPLACE "([][+.*?()^$])" "\\\\\\1" _OPENMP_IMPLICIT_LIB_PLAIN_ESC "${_OPENMP_IMPLICIT_LIB_PLAIN}")
- string(REGEX REPLACE "([][+.*?()^$])" "\\\\\\1" _OPENMP_IMPLICIT_LIB_PATH_ESC "${_OPENMP_IMPLICIT_LIB}")
- if(NOT ( "${_OPENMP_IMPLICIT_LIB}" IN_LIST CMAKE_${LANG}_IMPLICIT_LINK_LIBRARIES
- OR "${CMAKE_${LANG}_STANDARD_LIBRARIES}" MATCHES "(^| )(-Wl,)?(-l)?(${_OPENMP_IMPLICIT_LIB_PLAIN_ESC}|${_OPENMP_IMPLICIT_LIB_PATH_ESC})( |$)"
- OR "${CMAKE_${LANG}_LINK_EXECUTABLE}" MATCHES "(^| )(-Wl,)?(-l)?(${_OPENMP_IMPLICIT_LIB_PLAIN_ESC}|${_OPENMP_IMPLICIT_LIB_PATH_ESC})( |$)" ) )
- if(_OPENMP_IMPLICIT_LIB_DIR)
- set(OpenMP_${_OPENMP_IMPLICIT_LIB_PLAIN}_LIBRARY "${_OPENMP_IMPLICIT_LIB}" CACHE FILEPATH
- "Path to the ${_OPENMP_IMPLICIT_LIB_PLAIN} library for OpenMP")
- else()
- find_library(OpenMP_${_OPENMP_IMPLICIT_LIB_PLAIN}_LIBRARY
- NAMES "${_OPENMP_IMPLICIT_LIB_NAME}"
- DOC "Path to the ${_OPENMP_IMPLICIT_LIB_PLAIN} library for OpenMP"
- HINTS ${OpenMP_${LANG}_IMPLICIT_LINK_DIRS}
- CMAKE_FIND_ROOT_PATH_BOTH
- NO_DEFAULT_PATH
- )
- endif()
- mark_as_advanced(OpenMP_${_OPENMP_IMPLICIT_LIB_PLAIN}_LIBRARY)
- list(APPEND _OPENMP_LIB_NAMES ${_OPENMP_IMPLICIT_LIB_PLAIN})
- endif()
- endforeach()
- set("${OPENMP_LIB_NAMES_VAR}" "${_OPENMP_LIB_NAMES}" PARENT_SCOPE)
- else()
- # We do not know how to extract implicit OpenMP libraries for this compiler.
- # Assume that it handles them automatically, e.g. the Intel Compiler on
- # Windows should put the dependency in its object files.
- set("${OPENMP_LIB_NAMES_VAR}" "" PARENT_SCOPE)
- endif()
- break()
- elseif(CMAKE_${LANG}_COMPILER_ID STREQUAL "AppleClang"
- AND CMAKE_${LANG}_COMPILER_VERSION VERSION_GREATER_EQUAL "7.0")
-
- # Check for separate OpenMP library on AppleClang 7+
- find_library(OpenMP_libomp_LIBRARY
- NAMES omp gomp iomp5
- HINTS ${CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES}
- )
- mark_as_advanced(OpenMP_libomp_LIBRARY)
-
- if(OpenMP_libomp_LIBRARY)
- # Try without specifying include directory first. We only want to
- # explicitly add a search path if the header can't be found on the
- # default header search path already.
- try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG} ${CMAKE_BINARY_DIR} ${_OPENMP_TEST_SRC}
- CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
- LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG} ${OpenMP_libomp_LIBRARY}
- OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
- )
- if(NOT OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG})
- find_path(OpenMP_${LANG}_INCLUDE_DIR omp.h)
- mark_as_advanced(OpenMP_${LANG}_INCLUDE_DIR)
- set(OpenMP_${LANG}_INCLUDE_DIR "${OpenMP_${LANG}_INCLUDE_DIR}" PARENT_SCOPE)
- if(OpenMP_${LANG}_INCLUDE_DIR)
- try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG} ${CMAKE_BINARY_DIR} ${_OPENMP_TEST_SRC}
- CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
- "-DINCLUDE_DIRECTORIES:STRING=${OpenMP_${LANG}_INCLUDE_DIR}"
- LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG} ${OpenMP_libomp_LIBRARY}
- OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
- )
- endif()
- endif()
- if(OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG})
- set("${OPENMP_FLAG_VAR}" "${OPENMP_FLAG}" PARENT_SCOPE)
- set("${OPENMP_LIB_NAMES_VAR}" "libomp" PARENT_SCOPE)
- break()
- endif()
- endif()
- else()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Detecting ${LANG} OpenMP failed with the following output:\n${OpenMP_TRY_COMPILE_OUTPUT}\n\n")
- endif()
- set("${OPENMP_LIB_NAMES_VAR}" "NOTFOUND" PARENT_SCOPE)
- set("${OPENMP_FLAG_VAR}" "NOTFOUND" PARENT_SCOPE)
- endforeach()
-
- unset(OpenMP_VERBOSE_COMPILE_OPTIONS)
-endfunction()
-
-set(OpenMP_C_CXX_CHECK_VERSION_SOURCE
-"
-#include <stdio.h>
-#include <omp.h>
-const char ompver_str[] = { 'I', 'N', 'F', 'O', ':', 'O', 'p', 'e', 'n', 'M',
- 'P', '-', 'd', 'a', 't', 'e', '[',
- ('0' + ((_OPENMP/100000)%10)),
- ('0' + ((_OPENMP/10000)%10)),
- ('0' + ((_OPENMP/1000)%10)),
- ('0' + ((_OPENMP/100)%10)),
- ('0' + ((_OPENMP/10)%10)),
- ('0' + ((_OPENMP/1)%10)),
- ']', '\\0' };
-int main(void)
-{
- puts(ompver_str);
- return 0;
-}
-")
-
-set(OpenMP_Fortran_CHECK_VERSION_SOURCE
-"
- program omp_ver
- @OpenMP_Fortran_INCLUDE_LINE@
- integer, parameter :: zero = ichar('0')
- integer, parameter :: ompv = openmp_version
- character, dimension(24), parameter :: ompver_str =&
- (/ 'I', 'N', 'F', 'O', ':', 'O', 'p', 'e', 'n', 'M', 'P', '-',&
- 'd', 'a', 't', 'e', '[',&
- char(zero + mod(ompv/100000, 10)),&
- char(zero + mod(ompv/10000, 10)),&
- char(zero + mod(ompv/1000, 10)),&
- char(zero + mod(ompv/100, 10)),&
- char(zero + mod(ompv/10, 10)),&
- char(zero + mod(ompv/1, 10)), ']' /)
- print *, ompver_str
- end program omp_ver
-")
-
-function(_OPENMP_GET_SPEC_DATE LANG SPEC_DATE)
- _OPENMP_WRITE_SOURCE_FILE("${LANG}" "CHECK_VERSION_SOURCE" OpenMPCheckVersion _OPENMP_TEST_SRC)
-
- unset(_includeDirFlags)
- if(OpenMP_${LANG}_INCLUDE_DIR)
- set(_includeDirFlags "-DINCLUDE_DIRECTORIES:STRING=${OpenMP_${LANG}_INCLUDE_DIR}")
- endif()
-
- set(BIN_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindOpenMP/ompver_${LANG}.bin")
- string(REGEX REPLACE "[-/=+]" "" OPENMP_PLAIN_FLAG "${OPENMP_FLAG}")
- try_compile(OpenMP_SPECTEST_${LANG}_${OPENMP_PLAIN_FLAG} "${CMAKE_BINARY_DIR}" "${_OPENMP_TEST_SRC}"
- CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OpenMP_${LANG}_FLAGS}" ${_includeDirFlags}
- COPY_FILE ${BIN_FILE}
- OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT)
-
- if(${OpenMP_SPECTEST_${LANG}_${OPENMP_PLAIN_FLAG}})
- file(STRINGS ${BIN_FILE} specstr LIMIT_COUNT 1 REGEX "INFO:OpenMP-date")
- set(regex_spec_date ".*INFO:OpenMP-date\\[0*([^]]*)\\].*")
- if("${specstr}" MATCHES "${regex_spec_date}")
- set(${SPEC_DATE} "${CMAKE_MATCH_1}" PARENT_SCOPE)
- endif()
- else()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Detecting ${LANG} OpenMP version failed with the following output:\n${OpenMP_TRY_COMPILE_OUTPUT}\n\n")
- endif()
-endfunction()
-
-macro(_OPENMP_SET_VERSION_BY_SPEC_DATE LANG)
- set(OpenMP_SPEC_DATE_MAP
- # Preview versions
- "201611=5.0" # OpenMP 5.0 preview 1
- # Combined versions, 2.5 onwards
- "201811=5.0"
- "201511=4.5"
- "201307=4.0"
- "201107=3.1"
- "200805=3.0"
- "200505=2.5"
- # C/C++ version 2.0
- "200203=2.0"
- # Fortran version 2.0
- "200011=2.0"
- # Fortran version 1.1
- "199911=1.1"
- # C/C++ version 1.0 (there's no 1.1 for C/C++)
- "199810=1.0"
- # Fortran version 1.0
- "199710=1.0"
- )
- if(MSVC)
- list(APPEND OpenMP_SPEC_DATE_MAP "2019=2.0")
- endif()
-
- if(OpenMP_${LANG}_SPEC_DATE)
- string(REGEX MATCHALL "${OpenMP_${LANG}_SPEC_DATE}=([0-9]+)\\.([0-9]+)" _version_match "${OpenMP_SPEC_DATE_MAP}")
- else()
- set(_version_match "")
- endif()
- if(NOT _version_match STREQUAL "")
- set(OpenMP_${LANG}_VERSION_MAJOR ${CMAKE_MATCH_1})
- set(OpenMP_${LANG}_VERSION_MINOR ${CMAKE_MATCH_2})
- set(OpenMP_${LANG}_VERSION "${OpenMP_${LANG}_VERSION_MAJOR}.${OpenMP_${LANG}_VERSION_MINOR}")
- else()
- unset(OpenMP_${LANG}_VERSION_MAJOR)
- unset(OpenMP_${LANG}_VERSION_MINOR)
- unset(OpenMP_${LANG}_VERSION)
- endif()
- unset(_version_match)
- unset(OpenMP_SPEC_DATE_MAP)
-endmacro()
-
-foreach(LANG IN ITEMS C CXX)
- if(CMAKE_${LANG}_COMPILER_LOADED)
- if(NOT DEFINED OpenMP_${LANG}_FLAGS OR "${OpenMP_${LANG}_FLAGS}" STREQUAL "NOTFOUND"
- OR NOT DEFINED OpenMP_${LANG}_LIB_NAMES OR "${OpenMP_${LANG}_LIB_NAMES}" STREQUAL "NOTFOUND")
- _OPENMP_GET_FLAGS("${LANG}" "${LANG}" OpenMP_${LANG}_FLAGS_WORK OpenMP_${LANG}_LIB_NAMES_WORK)
- endif()
-
- set(OpenMP_${LANG}_FLAGS "${OpenMP_${LANG}_FLAGS_WORK}"
- CACHE STRING "${LANG} compiler flags for OpenMP parallelization")
- set(OpenMP_${LANG}_LIB_NAMES "${OpenMP_${LANG}_LIB_NAMES_WORK}"
- CACHE STRING "${LANG} compiler libraries for OpenMP parallelization")
- mark_as_advanced(OpenMP_${LANG}_FLAGS OpenMP_${LANG}_LIB_NAMES)
- endif()
-endforeach()
-
-if(CMAKE_Fortran_COMPILER_LOADED)
- if(NOT DEFINED OpenMP_Fortran_FLAGS OR "${OpenMP_Fortran_FLAGS}" STREQUAL "NOTFOUND"
- OR NOT DEFINED OpenMP_Fortran_LIB_NAMES OR "${OpenMP_Fortran_LIB_NAMES}" STREQUAL "NOTFOUND"
- OR NOT DEFINED OpenMP_Fortran_HAVE_OMPLIB_MODULE)
- set(OpenMP_Fortran_INCLUDE_LINE "use omp_lib\n implicit none")
- _OPENMP_GET_FLAGS("Fortran" "FortranHeader" OpenMP_Fortran_FLAGS_WORK OpenMP_Fortran_LIB_NAMES_WORK)
- if(OpenMP_Fortran_FLAGS_WORK)
- set(OpenMP_Fortran_HAVE_OMPLIB_MODULE TRUE CACHE BOOL INTERNAL "")
- endif()
-
- set(OpenMP_Fortran_FLAGS "${OpenMP_Fortran_FLAGS_WORK}"
- CACHE STRING "Fortran compiler flags for OpenMP parallelization")
- set(OpenMP_Fortran_LIB_NAMES "${OpenMP_Fortran_LIB_NAMES_WORK}"
- CACHE STRING "Fortran compiler libraries for OpenMP parallelization")
- mark_as_advanced(OpenMP_Fortran_FLAGS OpenMP_Fortran_LIB_NAMES)
- endif()
-
- if(NOT DEFINED OpenMP_Fortran_FLAGS OR "${OpenMP_Fortran_FLAGS}" STREQUAL "NOTFOUND"
- OR NOT DEFINED OpenMP_Fortran_LIB_NAMES OR "${OpenMP_Fortran_LIB_NAMES}" STREQUAL "NOTFOUND"
- OR NOT DEFINED OpenMP_Fortran_HAVE_OMPLIB_HEADER)
- set(OpenMP_Fortran_INCLUDE_LINE "implicit none\n include 'omp_lib.h'")
- _OPENMP_GET_FLAGS("Fortran" "FortranModule" OpenMP_Fortran_FLAGS_WORK OpenMP_Fortran_LIB_NAMES_WORK)
- if(OpenMP_Fortran_FLAGS_WORK)
- set(OpenMP_Fortran_HAVE_OMPLIB_HEADER TRUE CACHE BOOL INTERNAL "")
- endif()
-
- set(OpenMP_Fortran_FLAGS "${OpenMP_Fortran_FLAGS_WORK}"
- CACHE STRING "Fortran compiler flags for OpenMP parallelization")
-
- set(OpenMP_Fortran_LIB_NAMES "${OpenMP_Fortran_LIB_NAMES}"
- CACHE STRING "Fortran compiler libraries for OpenMP parallelization")
- endif()
-
- if(OpenMP_Fortran_HAVE_OMPLIB_MODULE)
- set(OpenMP_Fortran_INCLUDE_LINE "use omp_lib\n implicit none")
- else()
- set(OpenMP_Fortran_INCLUDE_LINE "implicit none\n include 'omp_lib.h'")
- endif()
-endif()
-
-if(NOT OpenMP_FIND_COMPONENTS)
- set(OpenMP_FINDLIST C CXX Fortran)
-else()
- set(OpenMP_FINDLIST ${OpenMP_FIND_COMPONENTS})
-endif()
-
-unset(_OpenMP_MIN_VERSION)
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-
-foreach(LANG IN LISTS OpenMP_FINDLIST)
- if(CMAKE_${LANG}_COMPILER_LOADED)
- if (NOT OpenMP_${LANG}_SPEC_DATE AND OpenMP_${LANG}_FLAGS)
- _OPENMP_GET_SPEC_DATE("${LANG}" OpenMP_${LANG}_SPEC_DATE_INTERNAL)
- set(OpenMP_${LANG}_SPEC_DATE "${OpenMP_${LANG}_SPEC_DATE_INTERNAL}" CACHE
- INTERNAL "${LANG} compiler's OpenMP specification date")
- _OPENMP_SET_VERSION_BY_SPEC_DATE("${LANG}")
- endif()
-
- set(OpenMP_${LANG}_FIND_QUIETLY ${OpenMP_FIND_QUIETLY})
- set(OpenMP_${LANG}_FIND_REQUIRED ${OpenMP_FIND_REQUIRED})
- set(OpenMP_${LANG}_FIND_VERSION ${OpenMP_FIND_VERSION})
- set(OpenMP_${LANG}_FIND_VERSION_EXACT ${OpenMP_FIND_VERSION_EXACT})
-
- set(_OPENMP_${LANG}_REQUIRED_VARS OpenMP_${LANG}_FLAGS)
- if("${OpenMP_${LANG}_LIB_NAMES}" STREQUAL "NOTFOUND")
- set(_OPENMP_${LANG}_REQUIRED_LIB_VARS OpenMP_${LANG}_LIB_NAMES)
- else()
- foreach(_OPENMP_IMPLICIT_LIB IN LISTS OpenMP_${LANG}_LIB_NAMES)
- list(APPEND _OPENMP_${LANG}_REQUIRED_LIB_VARS OpenMP_${_OPENMP_IMPLICIT_LIB}_LIBRARY)
- endforeach()
- endif()
-
- find_package_handle_standard_args(OpenMP_${LANG}
- REQUIRED_VARS OpenMP_${LANG}_FLAGS ${_OPENMP_${LANG}_REQUIRED_LIB_VARS}
- VERSION_VAR OpenMP_${LANG}_VERSION
- )
-
- if(OpenMP_${LANG}_FOUND)
- if(DEFINED OpenMP_${LANG}_VERSION)
- if(NOT _OpenMP_MIN_VERSION OR _OpenMP_MIN_VERSION VERSION_GREATER OpenMP_${LANG}_VERSION)
- set(_OpenMP_MIN_VERSION OpenMP_${LANG}_VERSION)
- endif()
- endif()
- set(OpenMP_${LANG}_LIBRARIES "")
- foreach(_OPENMP_IMPLICIT_LIB IN LISTS OpenMP_${LANG}_LIB_NAMES)
- list(APPEND OpenMP_${LANG}_LIBRARIES "${OpenMP_${_OPENMP_IMPLICIT_LIB}_LIBRARY}")
- endforeach()
- if(OpenMP_${LANG}_INCLUDE_DIR)
- set(OpenMP_${LANG}_INCLUDE_DIRS ${OpenMP_${LANG}_INCLUDE_DIR})
- else()
- set(OpenMP_${LANG}_INCLUDE_DIRS "")
- endif()
-
- if(NOT TARGET OpenMP::OpenMP_${LANG})
- add_library(OpenMP::OpenMP_${LANG} INTERFACE IMPORTED)
- endif()
- if(OpenMP_${LANG}_FLAGS)
- separate_arguments(_OpenMP_${LANG}_OPTIONS NATIVE_COMMAND "${OpenMP_${LANG}_FLAGS}")
- set_property(TARGET OpenMP::OpenMP_${LANG} PROPERTY
- INTERFACE_COMPILE_OPTIONS "$<$<COMPILE_LANGUAGE:${LANG}>:${_OpenMP_${LANG}_OPTIONS}>")
- unset(_OpenMP_${LANG}_OPTIONS)
- endif()
- if(OpenMP_${LANG}_INCLUDE_DIRS)
- set_property(TARGET OpenMP::OpenMP_${LANG} PROPERTY
- INTERFACE_INCLUDE_DIRECTORIES "$<BUILD_INTERFACE:${OpenMP_${LANG}_INCLUDE_DIRS}>")
- endif()
- if(OpenMP_${LANG}_LIBRARIES)
- set_property(TARGET OpenMP::OpenMP_${LANG} PROPERTY
- INTERFACE_LINK_LIBRARIES "${OpenMP_${LANG}_LIBRARIES}")
- endif()
- endif()
- endif()
-endforeach()
-
-unset(_OpenMP_REQ_VARS)
-foreach(LANG IN ITEMS C CXX Fortran)
- if((NOT OpenMP_FIND_COMPONENTS AND CMAKE_${LANG}_COMPILER_LOADED) OR LANG IN_LIST OpenMP_FIND_COMPONENTS)
- list(APPEND _OpenMP_REQ_VARS "OpenMP_${LANG}_FOUND")
- endif()
-endforeach()
-
-find_package_handle_standard_args(OpenMP
- REQUIRED_VARS ${_OpenMP_REQ_VARS}
- VERSION_VAR ${_OpenMP_MIN_VERSION}
- HANDLE_COMPONENTS)
-
-set(OPENMP_FOUND ${OpenMP_FOUND})
-
-if(CMAKE_Fortran_COMPILER_LOADED AND OpenMP_Fortran_FOUND)
- if(NOT DEFINED OpenMP_Fortran_HAVE_OMPLIB_MODULE)
- set(OpenMP_Fortran_HAVE_OMPLIB_MODULE FALSE CACHE BOOL INTERNAL "")
- endif()
- if(NOT DEFINED OpenMP_Fortran_HAVE_OMPLIB_HEADER)
- set(OpenMP_Fortran_HAVE_OMPLIB_HEADER FALSE CACHE BOOL INTERNAL "")
- endif()
-endif()
-
-if(NOT ( CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED ))
- message(SEND_ERROR "FindOpenMP requires the C, CXX or Fortran languages to be enabled")
-endif()
-
-unset(OpenMP_C_CXX_TEST_SOURCE)
-unset(OpenMP_Fortran_TEST_SOURCE)
-unset(OpenMP_C_CXX_CHECK_VERSION_SOURCE)
-unset(OpenMP_Fortran_CHECK_VERSION_SOURCE)
-unset(OpenMP_Fortran_INCLUDE_LINE)
-
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FindOpenSSL.cmake b/share/cmake-3.16/Modules/FindOpenSSL.cmake
deleted file mode 100644
index 478a592..0000000
--- a/share/cmake-3.16/Modules/FindOpenSSL.cmake
+++ /dev/null
@@ -1,529 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindOpenSSL
------------
-
-Find the OpenSSL encryption library.
-
-Optional COMPONENTS
-^^^^^^^^^^^^^^^^^^^
-
-This module supports two optional COMPONENTS: ``Crypto`` and ``SSL``. Both
-components have associated imported targets, as described below.
-
-Imported Targets
-^^^^^^^^^^^^^^^^
-
-This module defines the following :prop_tgt:`IMPORTED` targets:
-
-``OpenSSL::SSL``
- The OpenSSL ``ssl`` library, if found.
-``OpenSSL::Crypto``
- The OpenSSL ``crypto`` library, if found.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module will set the following variables in your project:
-
-``OPENSSL_FOUND``
- System has the OpenSSL library. If no components are requested it only
- requires the crypto library.
-``OPENSSL_INCLUDE_DIR``
- The OpenSSL include directory.
-``OPENSSL_CRYPTO_LIBRARY``
- The OpenSSL crypto library.
-``OPENSSL_CRYPTO_LIBRARIES``
- The OpenSSL crypto library and its dependencies.
-``OPENSSL_SSL_LIBRARY``
- The OpenSSL SSL library.
-``OPENSSL_SSL_LIBRARIES``
- The OpenSSL SSL library and its dependencies.
-``OPENSSL_LIBRARIES``
- All OpenSSL libraries and their dependencies.
-``OPENSSL_VERSION``
- This is set to ``$major.$minor.$revision$patch`` (e.g. ``0.9.8s``).
-
-Hints
-^^^^^
-
-Set ``OPENSSL_ROOT_DIR`` to the root directory of an OpenSSL installation.
-Set ``OPENSSL_USE_STATIC_LIBS`` to ``TRUE`` to look for static libraries.
-Set ``OPENSSL_MSVC_STATIC_RT`` set ``TRUE`` to choose the MT version of the lib.
-#]=======================================================================]
-
-macro(_OpenSSL_test_and_find_dependencies ssl_library crypto_library)
- if((CMAKE_SYSTEM_NAME STREQUAL "Linux") AND
- (("${ssl_library}" MATCHES "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$") OR
- ("${crypto_library}" MATCHES "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$")))
- set(_OpenSSL_has_dependencies TRUE)
- find_package(Threads)
- else()
- set(_OpenSSL_has_dependencies FALSE)
- endif()
-endmacro()
-
-function(_OpenSSL_add_dependencies libraries_var)
- if(CMAKE_THREAD_LIBS_INIT)
- list(APPEND ${libraries_var} ${CMAKE_THREAD_LIBS_INIT})
- endif()
- list(APPEND ${libraries_var} ${CMAKE_DL_LIBS})
- set(${libraries_var} ${${libraries_var}} PARENT_SCOPE)
-endfunction()
-
-function(_OpenSSL_target_add_dependencies target)
- if(_OpenSSL_has_dependencies)
- set_property( TARGET ${target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads )
- set_property( TARGET ${target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${CMAKE_DL_LIBS} )
- endif()
-endfunction()
-
-if (UNIX)
- find_package(PkgConfig QUIET)
- pkg_check_modules(_OPENSSL QUIET openssl)
-endif ()
-
-# Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
-if(OPENSSL_USE_STATIC_LIBS)
- set(_openssl_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
- if(WIN32)
- set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
- else()
- set(CMAKE_FIND_LIBRARY_SUFFIXES .a )
- endif()
-endif()
-
-if (WIN32)
- # http://www.slproweb.com/products/Win32OpenSSL.html
- set(_OPENSSL_ROOT_HINTS
- ${OPENSSL_ROOT_DIR}
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]"
- ENV OPENSSL_ROOT_DIR
- )
- file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles)
- set(_OPENSSL_ROOT_PATHS
- "${_programfiles}/OpenSSL"
- "${_programfiles}/OpenSSL-Win32"
- "${_programfiles}/OpenSSL-Win64"
- "C:/OpenSSL/"
- "C:/OpenSSL-Win32/"
- "C:/OpenSSL-Win64/"
- )
- unset(_programfiles)
-else ()
- set(_OPENSSL_ROOT_HINTS
- ${OPENSSL_ROOT_DIR}
- ENV OPENSSL_ROOT_DIR
- )
-endif ()
-
-set(_OPENSSL_ROOT_HINTS_AND_PATHS
- HINTS ${_OPENSSL_ROOT_HINTS}
- PATHS ${_OPENSSL_ROOT_PATHS}
- )
-
-find_path(OPENSSL_INCLUDE_DIR
- NAMES
- openssl/ssl.h
- ${_OPENSSL_ROOT_HINTS_AND_PATHS}
- HINTS
- ${_OPENSSL_INCLUDEDIR}
- PATH_SUFFIXES
- include
-)
-
-if(WIN32 AND NOT CYGWIN)
- if(MSVC)
- # /MD and /MDd are the standard values - if someone wants to use
- # others, the libnames have to change here too
- # use also ssl and ssleay32 in debug as fallback for openssl < 0.9.8b
- # enable OPENSSL_MSVC_STATIC_RT to get the libs build /MT (Multithreaded no-DLL)
- # In Visual C++ naming convention each of these four kinds of Windows libraries has it's standard suffix:
- # * MD for dynamic-release
- # * MDd for dynamic-debug
- # * MT for static-release
- # * MTd for static-debug
-
- # Implementation details:
- # We are using the libraries located in the VC subdir instead of the parent directory even though :
- # libeay32MD.lib is identical to ../libeay32.lib, and
- # ssleay32MD.lib is identical to ../ssleay32.lib
- # enable OPENSSL_USE_STATIC_LIBS to use the static libs located in lib/VC/static
-
- if (OPENSSL_MSVC_STATIC_RT)
- set(_OPENSSL_MSVC_RT_MODE "MT")
- else ()
- set(_OPENSSL_MSVC_RT_MODE "MD")
- endif ()
-
- # Since OpenSSL 1.1, lib names are like libcrypto32MTd.lib and libssl32MTd.lib
- if( "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8" )
- set(_OPENSSL_MSVC_ARCH_SUFFIX "64")
- else()
- set(_OPENSSL_MSVC_ARCH_SUFFIX "32")
- endif()
-
- if(OPENSSL_USE_STATIC_LIBS)
- set(_OPENSSL_PATH_SUFFIXES
- "lib/VC/static"
- "VC/static"
- "lib"
- )
- else()
- set(_OPENSSL_PATH_SUFFIXES
- "lib/VC"
- "VC"
- "lib"
- )
- endif ()
-
- find_library(LIB_EAY_DEBUG
- NAMES
- libcrypto${_OPENSSL_MSVC_ARCH_SUFFIX}${_OPENSSL_MSVC_RT_MODE}d
- libcrypto${_OPENSSL_MSVC_RT_MODE}d
- libcryptod
- libeay32${_OPENSSL_MSVC_RT_MODE}d
- libeay32d
- cryptod
- NAMES_PER_DIR
- ${_OPENSSL_ROOT_HINTS_AND_PATHS}
- PATH_SUFFIXES
- ${_OPENSSL_PATH_SUFFIXES}
- )
-
- find_library(LIB_EAY_RELEASE
- NAMES
- libcrypto${_OPENSSL_MSVC_ARCH_SUFFIX}${_OPENSSL_MSVC_RT_MODE}
- libcrypto${_OPENSSL_MSVC_RT_MODE}
- libcrypto
- libeay32${_OPENSSL_MSVC_RT_MODE}
- libeay32
- crypto
- NAMES_PER_DIR
- ${_OPENSSL_ROOT_HINTS_AND_PATHS}
- PATH_SUFFIXES
- ${_OPENSSL_PATH_SUFFIXES}
- )
-
- find_library(SSL_EAY_DEBUG
- NAMES
- libssl${_OPENSSL_MSVC_ARCH_SUFFIX}${_OPENSSL_MSVC_RT_MODE}d
- libssl${_OPENSSL_MSVC_RT_MODE}d
- libssld
- ssleay32${_OPENSSL_MSVC_RT_MODE}d
- ssleay32d
- ssld
- NAMES_PER_DIR
- ${_OPENSSL_ROOT_HINTS_AND_PATHS}
- PATH_SUFFIXES
- ${_OPENSSL_PATH_SUFFIXES}
- )
-
- find_library(SSL_EAY_RELEASE
- NAMES
- libssl${_OPENSSL_MSVC_ARCH_SUFFIX}${_OPENSSL_MSVC_RT_MODE}
- libssl${_OPENSSL_MSVC_RT_MODE}
- libssl
- ssleay32${_OPENSSL_MSVC_RT_MODE}
- ssleay32
- ssl
- NAMES_PER_DIR
- ${_OPENSSL_ROOT_HINTS_AND_PATHS}
- PATH_SUFFIXES
- ${_OPENSSL_PATH_SUFFIXES}
- )
-
- set(LIB_EAY_LIBRARY_DEBUG "${LIB_EAY_DEBUG}")
- set(LIB_EAY_LIBRARY_RELEASE "${LIB_EAY_RELEASE}")
- set(SSL_EAY_LIBRARY_DEBUG "${SSL_EAY_DEBUG}")
- set(SSL_EAY_LIBRARY_RELEASE "${SSL_EAY_RELEASE}")
-
- include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
- select_library_configurations(LIB_EAY)
- select_library_configurations(SSL_EAY)
-
- mark_as_advanced(LIB_EAY_LIBRARY_DEBUG LIB_EAY_LIBRARY_RELEASE
- SSL_EAY_LIBRARY_DEBUG SSL_EAY_LIBRARY_RELEASE)
- set(OPENSSL_SSL_LIBRARY ${SSL_EAY_LIBRARY} )
- set(OPENSSL_CRYPTO_LIBRARY ${LIB_EAY_LIBRARY} )
- elseif(MINGW)
- # same player, for MinGW
- set(LIB_EAY_NAMES crypto libeay32)
- set(SSL_EAY_NAMES ssl ssleay32)
- find_library(LIB_EAY
- NAMES
- ${LIB_EAY_NAMES}
- NAMES_PER_DIR
- ${_OPENSSL_ROOT_HINTS_AND_PATHS}
- PATH_SUFFIXES
- "lib/MinGW"
- "lib"
- )
-
- find_library(SSL_EAY
- NAMES
- ${SSL_EAY_NAMES}
- NAMES_PER_DIR
- ${_OPENSSL_ROOT_HINTS_AND_PATHS}
- PATH_SUFFIXES
- "lib/MinGW"
- "lib"
- )
-
- mark_as_advanced(SSL_EAY LIB_EAY)
- set(OPENSSL_SSL_LIBRARY ${SSL_EAY} )
- set(OPENSSL_CRYPTO_LIBRARY ${LIB_EAY} )
- unset(LIB_EAY_NAMES)
- unset(SSL_EAY_NAMES)
- else()
- # Not sure what to pick for -say- intel, let's use the toplevel ones and hope someone report issues:
- find_library(LIB_EAY
- NAMES
- libcrypto
- libeay32
- NAMES_PER_DIR
- ${_OPENSSL_ROOT_HINTS_AND_PATHS}
- HINTS
- ${_OPENSSL_LIBDIR}
- PATH_SUFFIXES
- lib
- )
-
- find_library(SSL_EAY
- NAMES
- libssl
- ssleay32
- NAMES_PER_DIR
- ${_OPENSSL_ROOT_HINTS_AND_PATHS}
- HINTS
- ${_OPENSSL_LIBDIR}
- PATH_SUFFIXES
- lib
- )
-
- mark_as_advanced(SSL_EAY LIB_EAY)
- set(OPENSSL_SSL_LIBRARY ${SSL_EAY} )
- set(OPENSSL_CRYPTO_LIBRARY ${LIB_EAY} )
- endif()
-else()
-
- find_library(OPENSSL_SSL_LIBRARY
- NAMES
- ssl
- ssleay32
- ssleay32MD
- NAMES_PER_DIR
- ${_OPENSSL_ROOT_HINTS_AND_PATHS}
- HINTS
- ${_OPENSSL_LIBDIR}
- PATH_SUFFIXES
- lib
- )
-
- find_library(OPENSSL_CRYPTO_LIBRARY
- NAMES
- crypto
- NAMES_PER_DIR
- ${_OPENSSL_ROOT_HINTS_AND_PATHS}
- HINTS
- ${_OPENSSL_LIBDIR}
- PATH_SUFFIXES
- lib
- )
-
- mark_as_advanced(OPENSSL_CRYPTO_LIBRARY OPENSSL_SSL_LIBRARY)
-
-endif()
-
-set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY})
-set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
-set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARIES} )
-_OpenSSL_test_and_find_dependencies("${OPENSSL_SSL_LIBRARY}" "${OPENSSL_CRYPTO_LIBRARY}")
-if(_OpenSSL_has_dependencies)
- _OpenSSL_add_dependencies( OPENSSL_SSL_LIBRARIES )
- _OpenSSL_add_dependencies( OPENSSL_CRYPTO_LIBRARIES )
- _OpenSSL_add_dependencies( OPENSSL_LIBRARIES )
-endif()
-
-function(from_hex HEX DEC)
- string(TOUPPER "${HEX}" HEX)
- set(_res 0)
- string(LENGTH "${HEX}" _strlen)
-
- while (_strlen GREATER 0)
- math(EXPR _res "${_res} * 16")
- string(SUBSTRING "${HEX}" 0 1 NIBBLE)
- string(SUBSTRING "${HEX}" 1 -1 HEX)
- if (NIBBLE STREQUAL "A")
- math(EXPR _res "${_res} + 10")
- elseif (NIBBLE STREQUAL "B")
- math(EXPR _res "${_res} + 11")
- elseif (NIBBLE STREQUAL "C")
- math(EXPR _res "${_res} + 12")
- elseif (NIBBLE STREQUAL "D")
- math(EXPR _res "${_res} + 13")
- elseif (NIBBLE STREQUAL "E")
- math(EXPR _res "${_res} + 14")
- elseif (NIBBLE STREQUAL "F")
- math(EXPR _res "${_res} + 15")
- else()
- math(EXPR _res "${_res} + ${NIBBLE}")
- endif()
-
- string(LENGTH "${HEX}" _strlen)
- endwhile()
-
- set(${DEC} ${_res} PARENT_SCOPE)
-endfunction()
-
-if(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h")
- file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" openssl_version_str
- REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*")
-
- if(openssl_version_str)
- # The version number is encoded as 0xMNNFFPPS: major minor fix patch status
- # The status gives if this is a developer or prerelease and is ignored here.
- # Major, minor, and fix directly translate into the version numbers shown in
- # the string. The patch field translates to the single character suffix that
- # indicates the bug fix state, which 00 -> nothing, 01 -> a, 02 -> b and so
- # on.
-
- string(REGEX REPLACE "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F]).*$"
- "\\1;\\2;\\3;\\4;\\5" OPENSSL_VERSION_LIST "${openssl_version_str}")
- list(GET OPENSSL_VERSION_LIST 0 OPENSSL_VERSION_MAJOR)
- list(GET OPENSSL_VERSION_LIST 1 OPENSSL_VERSION_MINOR)
- from_hex("${OPENSSL_VERSION_MINOR}" OPENSSL_VERSION_MINOR)
- list(GET OPENSSL_VERSION_LIST 2 OPENSSL_VERSION_FIX)
- from_hex("${OPENSSL_VERSION_FIX}" OPENSSL_VERSION_FIX)
- list(GET OPENSSL_VERSION_LIST 3 OPENSSL_VERSION_PATCH)
-
- if (NOT OPENSSL_VERSION_PATCH STREQUAL "00")
- from_hex("${OPENSSL_VERSION_PATCH}" _tmp)
- # 96 is the ASCII code of 'a' minus 1
- math(EXPR OPENSSL_VERSION_PATCH_ASCII "${_tmp} + 96")
- unset(_tmp)
- # Once anyone knows how OpenSSL would call the patch versions beyond 'z'
- # this should be updated to handle that, too. This has not happened yet
- # so it is simply ignored here for now.
- string(ASCII "${OPENSSL_VERSION_PATCH_ASCII}" OPENSSL_VERSION_PATCH_STRING)
- endif ()
-
- set(OPENSSL_VERSION "${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_FIX}${OPENSSL_VERSION_PATCH_STRING}")
- endif ()
-endif ()
-
-foreach(_comp IN LISTS OpenSSL_FIND_COMPONENTS)
- if(_comp STREQUAL "Crypto")
- if(EXISTS "${OPENSSL_INCLUDE_DIR}" AND
- (EXISTS "${OPENSSL_CRYPTO_LIBRARY}" OR
- EXISTS "${LIB_EAY_LIBRARY_DEBUG}" OR
- EXISTS "${LIB_EAY_LIBRARY_RELEASE}")
- )
- set(OpenSSL_${_comp}_FOUND TRUE)
- else()
- set(OpenSSL_${_comp}_FOUND FALSE)
- endif()
- elseif(_comp STREQUAL "SSL")
- if(EXISTS "${OPENSSL_INCLUDE_DIR}" AND
- (EXISTS "${OPENSSL_SSL_LIBRARY}" OR
- EXISTS "${SSL_EAY_LIBRARY_DEBUG}" OR
- EXISTS "${SSL_EAY_LIBRARY_RELEASE}")
- )
- set(OpenSSL_${_comp}_FOUND TRUE)
- else()
- set(OpenSSL_${_comp}_FOUND FALSE)
- endif()
- else()
- message(WARNING "${_comp} is not a valid OpenSSL component")
- set(OpenSSL_${_comp}_FOUND FALSE)
- endif()
-endforeach()
-unset(_comp)
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(OpenSSL
- REQUIRED_VARS
- OPENSSL_CRYPTO_LIBRARY
- OPENSSL_INCLUDE_DIR
- VERSION_VAR
- OPENSSL_VERSION
- HANDLE_COMPONENTS
- FAIL_MESSAGE
- "Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR"
-)
-
-mark_as_advanced(OPENSSL_INCLUDE_DIR OPENSSL_LIBRARIES)
-
-if(OPENSSL_FOUND)
- if(NOT TARGET OpenSSL::Crypto AND
- (EXISTS "${OPENSSL_CRYPTO_LIBRARY}" OR
- EXISTS "${LIB_EAY_LIBRARY_DEBUG}" OR
- EXISTS "${LIB_EAY_LIBRARY_RELEASE}")
- )
- add_library(OpenSSL::Crypto UNKNOWN IMPORTED)
- set_target_properties(OpenSSL::Crypto PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${OPENSSL_INCLUDE_DIR}")
- if(EXISTS "${OPENSSL_CRYPTO_LIBRARY}")
- set_target_properties(OpenSSL::Crypto PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES "C"
- IMPORTED_LOCATION "${OPENSSL_CRYPTO_LIBRARY}")
- endif()
- if(EXISTS "${LIB_EAY_LIBRARY_RELEASE}")
- set_property(TARGET OpenSSL::Crypto APPEND PROPERTY
- IMPORTED_CONFIGURATIONS RELEASE)
- set_target_properties(OpenSSL::Crypto PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
- IMPORTED_LOCATION_RELEASE "${LIB_EAY_LIBRARY_RELEASE}")
- endif()
- if(EXISTS "${LIB_EAY_LIBRARY_DEBUG}")
- set_property(TARGET OpenSSL::Crypto APPEND PROPERTY
- IMPORTED_CONFIGURATIONS DEBUG)
- set_target_properties(OpenSSL::Crypto PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
- IMPORTED_LOCATION_DEBUG "${LIB_EAY_LIBRARY_DEBUG}")
- endif()
- _OpenSSL_target_add_dependencies(OpenSSL::Crypto)
- endif()
-
- if(NOT TARGET OpenSSL::SSL AND
- (EXISTS "${OPENSSL_SSL_LIBRARY}" OR
- EXISTS "${SSL_EAY_LIBRARY_DEBUG}" OR
- EXISTS "${SSL_EAY_LIBRARY_RELEASE}")
- )
- add_library(OpenSSL::SSL UNKNOWN IMPORTED)
- set_target_properties(OpenSSL::SSL PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${OPENSSL_INCLUDE_DIR}")
- if(EXISTS "${OPENSSL_SSL_LIBRARY}")
- set_target_properties(OpenSSL::SSL PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES "C"
- IMPORTED_LOCATION "${OPENSSL_SSL_LIBRARY}")
- endif()
- if(EXISTS "${SSL_EAY_LIBRARY_RELEASE}")
- set_property(TARGET OpenSSL::SSL APPEND PROPERTY
- IMPORTED_CONFIGURATIONS RELEASE)
- set_target_properties(OpenSSL::SSL PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
- IMPORTED_LOCATION_RELEASE "${SSL_EAY_LIBRARY_RELEASE}")
- endif()
- if(EXISTS "${SSL_EAY_LIBRARY_DEBUG}")
- set_property(TARGET OpenSSL::SSL APPEND PROPERTY
- IMPORTED_CONFIGURATIONS DEBUG)
- set_target_properties(OpenSSL::SSL PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
- IMPORTED_LOCATION_DEBUG "${SSL_EAY_LIBRARY_DEBUG}")
- endif()
- if(TARGET OpenSSL::Crypto)
- set_target_properties(OpenSSL::SSL PROPERTIES
- INTERFACE_LINK_LIBRARIES OpenSSL::Crypto)
- endif()
- _OpenSSL_target_add_dependencies(OpenSSL::SSL)
- endif()
-endif()
-
-# Restore the original find library ordering
-if(OPENSSL_USE_STATIC_LIBS)
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_openssl_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
-endif()
diff --git a/share/cmake-3.16/Modules/FindPNG.cmake b/share/cmake-3.16/Modules/FindPNG.cmake
deleted file mode 100644
index bd400c7..0000000
--- a/share/cmake-3.16/Modules/FindPNG.cmake
+++ /dev/null
@@ -1,150 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindPNG
--------
-
-Find libpng, the official reference library for the PNG image format.
-
-Imported targets
-^^^^^^^^^^^^^^^^
-
-This module defines the following :prop_tgt:`IMPORTED` target:
-
-``PNG::PNG``
- The libpng library, if found.
-
-Result variables
-^^^^^^^^^^^^^^^^
-
-This module will set the following variables in your project:
-
-``PNG_INCLUDE_DIRS``
- where to find png.h, etc.
-``PNG_LIBRARIES``
- the libraries to link against to use PNG.
-``PNG_DEFINITIONS``
- You should add_definitions(${PNG_DEFINITIONS}) before compiling code
- that includes png library files.
-``PNG_FOUND``
- If false, do not try to use PNG.
-``PNG_VERSION_STRING``
- the version of the PNG library found (since CMake 2.8.8)
-
-Obsolete variables
-^^^^^^^^^^^^^^^^^^
-
-The following variables may also be set, for backwards compatibility:
-
-``PNG_LIBRARY``
- where to find the PNG library.
-``PNG_INCLUDE_DIR``
- where to find the PNG headers (same as PNG_INCLUDE_DIRS)
-
-Since PNG depends on the ZLib compression library, none of the above
-will be defined unless ZLib can be found.
-#]=======================================================================]
-
-if(PNG_FIND_QUIETLY)
- set(_FIND_ZLIB_ARG QUIET)
-endif()
-find_package(ZLIB ${_FIND_ZLIB_ARG})
-
-if(ZLIB_FOUND)
- find_path(PNG_PNG_INCLUDE_DIR png.h PATH_SUFFIXES include/libpng)
-
- list(APPEND PNG_NAMES png libpng)
- unset(PNG_NAMES_DEBUG)
- set(_PNG_VERSION_SUFFIXES 17 16 15 14 12)
- if (PNG_FIND_VERSION MATCHES "^([0-9]+)\\.([0-9]+)(\\..*)?$")
- set(_PNG_VERSION_SUFFIX_MIN "${CMAKE_MATCH_1}${CMAKE_MATCH_2}")
- if (PNG_FIND_VERSION_EXACT)
- set(_PNG_VERSION_SUFFIXES ${_PNG_VERSION_SUFFIX_MIN})
- else ()
- string(REGEX REPLACE
- "${_PNG_VERSION_SUFFIX_MIN}.*" "${_PNG_VERSION_SUFFIX_MIN}"
- _PNG_VERSION_SUFFIXES "${_PNG_VERSION_SUFFIXES}")
- endif ()
- unset(_PNG_VERSION_SUFFIX_MIN)
- endif ()
- foreach(v IN LISTS _PNG_VERSION_SUFFIXES)
- list(APPEND PNG_NAMES png${v} libpng${v} libpng${v}_static)
- list(APPEND PNG_NAMES_DEBUG png${v}d libpng${v}d libpng${v}_staticd)
- endforeach()
- unset(_PNG_VERSION_SUFFIXES)
- # For compatibility with versions prior to this multi-config search, honor
- # any PNG_LIBRARY that is already specified and skip the search.
- if(NOT PNG_LIBRARY)
- find_library(PNG_LIBRARY_RELEASE NAMES ${PNG_NAMES})
- find_library(PNG_LIBRARY_DEBUG NAMES ${PNG_NAMES_DEBUG})
- include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
- select_library_configurations(PNG)
- mark_as_advanced(PNG_LIBRARY_RELEASE PNG_LIBRARY_DEBUG)
- endif()
- unset(PNG_NAMES)
- unset(PNG_NAMES_DEBUG)
-
- # Set by select_library_configurations(), but we want the one from
- # find_package_handle_standard_args() below.
- unset(PNG_FOUND)
-
- if (PNG_LIBRARY AND PNG_PNG_INCLUDE_DIR)
- # png.h includes zlib.h. Sigh.
- set(PNG_INCLUDE_DIRS ${PNG_PNG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR} )
- set(PNG_INCLUDE_DIR ${PNG_INCLUDE_DIRS} ) # for backward compatibility
- set(PNG_LIBRARIES ${PNG_LIBRARY} ${ZLIB_LIBRARY})
-
- if (CYGWIN)
- if(BUILD_SHARED_LIBS)
- # No need to define PNG_USE_DLL here, because it's default for Cygwin.
- else()
- set (PNG_DEFINITIONS -DPNG_STATIC)
- set(_PNG_COMPILE_DEFINITIONS PNG_STATIC)
- endif()
- endif ()
-
- if(NOT TARGET PNG::PNG)
- add_library(PNG::PNG UNKNOWN IMPORTED)
- set_target_properties(PNG::PNG PROPERTIES
- INTERFACE_COMPILE_DEFINITIONS "${_PNG_COMPILE_DEFINITIONS}"
- INTERFACE_INCLUDE_DIRECTORIES "${PNG_INCLUDE_DIRS}"
- INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
- if(EXISTS "${PNG_LIBRARY}")
- set_target_properties(PNG::PNG PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES "C"
- IMPORTED_LOCATION "${PNG_LIBRARY}")
- endif()
- if(EXISTS "${PNG_LIBRARY_RELEASE}")
- set_property(TARGET PNG::PNG APPEND PROPERTY
- IMPORTED_CONFIGURATIONS RELEASE)
- set_target_properties(PNG::PNG PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
- IMPORTED_LOCATION_RELEASE "${PNG_LIBRARY_RELEASE}")
- endif()
- if(EXISTS "${PNG_LIBRARY_DEBUG}")
- set_property(TARGET PNG::PNG APPEND PROPERTY
- IMPORTED_CONFIGURATIONS DEBUG)
- set_target_properties(PNG::PNG PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
- IMPORTED_LOCATION_DEBUG "${PNG_LIBRARY_DEBUG}")
- endif()
- endif()
-
- unset(_PNG_COMPILE_DEFINITIONS)
- endif ()
-
- if (PNG_PNG_INCLUDE_DIR AND EXISTS "${PNG_PNG_INCLUDE_DIR}/png.h")
- file(STRINGS "${PNG_PNG_INCLUDE_DIR}/png.h" png_version_str REGEX "^#define[ \t]+PNG_LIBPNG_VER_STRING[ \t]+\".+\"")
-
- string(REGEX REPLACE "^#define[ \t]+PNG_LIBPNG_VER_STRING[ \t]+\"([^\"]+)\".*" "\\1" PNG_VERSION_STRING "${png_version_str}")
- unset(png_version_str)
- endif ()
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(PNG
- REQUIRED_VARS PNG_LIBRARY PNG_PNG_INCLUDE_DIR
- VERSION_VAR PNG_VERSION_STRING)
-
-mark_as_advanced(PNG_PNG_INCLUDE_DIR PNG_LIBRARY )
diff --git a/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake b/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake
deleted file mode 100644
index d824ee8..0000000
--- a/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake
+++ /dev/null
@@ -1,401 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindPackageHandleStandardArgs
------------------------------
-
-This module provides a function intended to be used in :ref:`Find Modules`
-implementing :command:`find_package(<PackageName>)` calls. It handles the
-``REQUIRED``, ``QUIET`` and version-related arguments of ``find_package``.
-It also sets the ``<PackageName>_FOUND`` variable. The package is
-considered found if all variables listed contain valid results, e.g.
-valid filepaths.
-
-.. command:: find_package_handle_standard_args
-
- There are two signatures::
-
- find_package_handle_standard_args(<PackageName>
- (DEFAULT_MSG|<custom-failure-message>)
- <required-var>...
- )
-
- find_package_handle_standard_args(<PackageName>
- [FOUND_VAR <result-var>]
- [REQUIRED_VARS <required-var>...]
- [VERSION_VAR <version-var>]
- [HANDLE_COMPONENTS]
- [CONFIG_MODE]
- [REASON_FAILURE_MESSAGE <reason-failure-message>]
- [FAIL_MESSAGE <custom-failure-message>]
- )
-
- The ``<PackageName>_FOUND`` variable will be set to ``TRUE`` if all
- the variables ``<required-var>...`` are valid and any optional
- constraints are satisfied, and ``FALSE`` otherwise. A success or
- failure message may be displayed based on the results and on
- whether the ``REQUIRED`` and/or ``QUIET`` option was given to
- the :command:`find_package` call.
-
- The options are:
-
- ``(DEFAULT_MSG|<custom-failure-message>)``
- In the simple signature this specifies the failure message.
- Use ``DEFAULT_MSG`` to ask for a default message to be computed
- (recommended). Not valid in the full signature.
-
- ``FOUND_VAR <result-var>``
- Obsolete. Specifies either ``<PackageName>_FOUND`` or
- ``<PACKAGENAME>_FOUND`` as the result variable. This exists only
- for compatibility with older versions of CMake and is now ignored.
- Result variables of both names are always set for compatibility.
-
- ``REQUIRED_VARS <required-var>...``
- Specify the variables which are required for this package.
- These may be named in the generated failure message asking the
- user to set the missing variable values. Therefore these should
- typically be cache entries such as ``FOO_LIBRARY`` and not output
- variables like ``FOO_LIBRARIES``.
-
- ``VERSION_VAR <version-var>``
- Specify the name of a variable that holds the version of the package
- that has been found. This version will be checked against the
- (potentially) specified required version given to the
- :command:`find_package` call, including its ``EXACT`` option.
- The default messages include information about the required
- version and the version which has been actually found, both
- if the version is ok or not.
-
- ``HANDLE_COMPONENTS``
- Enable handling of package components. In this case, the command
- will report which components have been found and which are missing,
- and the ``<PackageName>_FOUND`` variable will be set to ``FALSE``
- if any of the required components (i.e. not the ones listed after
- the ``OPTIONAL_COMPONENTS`` option of :command:`find_package`) are
- missing.
-
- ``CONFIG_MODE``
- Specify that the calling find module is a wrapper around a
- call to ``find_package(<PackageName> NO_MODULE)``. This implies
- a ``VERSION_VAR`` value of ``<PackageName>_VERSION``. The command
- will automatically check whether the package configuration file
- was found.
-
- ``REASON_FAILURE_MESSAGE <reason-failure-message>``
- Specify a custom message of the reason for the failure which will be
- appended to the default generated message.
-
- ``FAIL_MESSAGE <custom-failure-message>``
- Specify a custom failure message instead of using the default
- generated message. Not recommended.
-
-Example for the simple signature:
-
-.. code-block:: cmake
-
- find_package_handle_standard_args(LibXml2 DEFAULT_MSG
- LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)
-
-The ``LibXml2`` package is considered to be found if both
-``LIBXML2_LIBRARY`` and ``LIBXML2_INCLUDE_DIR`` are valid.
-Then also ``LibXml2_FOUND`` is set to ``TRUE``. If it is not found
-and ``REQUIRED`` was used, it fails with a
-:command:`message(FATAL_ERROR)`, independent whether ``QUIET`` was
-used or not. If it is found, success will be reported, including
-the content of the first ``<required-var>``. On repeated CMake runs,
-the same message will not be printed again.
-
-Example for the full signature:
-
-.. code-block:: cmake
-
- find_package_handle_standard_args(LibArchive
- REQUIRED_VARS LibArchive_LIBRARY LibArchive_INCLUDE_DIR
- VERSION_VAR LibArchive_VERSION)
-
-In this case, the ``LibArchive`` package is considered to be found if
-both ``LibArchive_LIBRARY`` and ``LibArchive_INCLUDE_DIR`` are valid.
-Also the version of ``LibArchive`` will be checked by using the version
-contained in ``LibArchive_VERSION``. Since no ``FAIL_MESSAGE`` is given,
-the default messages will be printed.
-
-Another example for the full signature:
-
-.. code-block:: cmake
-
- find_package(Automoc4 QUIET NO_MODULE HINTS /opt/automoc4)
- find_package_handle_standard_args(Automoc4 CONFIG_MODE)
-
-In this case, a ``FindAutmoc4.cmake`` module wraps a call to
-``find_package(Automoc4 NO_MODULE)`` and adds an additional search
-directory for ``automoc4``. Then the call to
-``find_package_handle_standard_args`` produces a proper success/failure
-message.
-#]=======================================================================]
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageMessage.cmake)
-
-# internal helper macro
-macro(_FPHSA_FAILURE_MESSAGE _msg)
- set (__msg "${_msg}")
- if (FPHSA_REASON_FAILURE_MESSAGE)
- string(APPEND __msg "\n Reason given by package: ${FPHSA_REASON_FAILURE_MESSAGE}\n")
- endif()
- if (${_NAME}_FIND_REQUIRED)
- message(FATAL_ERROR "${__msg}")
- else ()
- if (NOT ${_NAME}_FIND_QUIETLY)
- message(STATUS "${__msg}")
- endif ()
- endif ()
-endmacro()
-
-
-# internal helper macro to generate the failure message when used in CONFIG_MODE:
-macro(_FPHSA_HANDLE_FAILURE_CONFIG_MODE)
- # <PackageName>_CONFIG is set, but FOUND is false, this means that some other of the REQUIRED_VARS was not found:
- if(${_NAME}_CONFIG)
- _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: missing:${MISSING_VARS} (found ${${_NAME}_CONFIG} ${VERSION_MSG})")
- else()
- # If _CONSIDERED_CONFIGS is set, the config-file has been found, but no suitable version.
- # List them all in the error message:
- if(${_NAME}_CONSIDERED_CONFIGS)
- set(configsText "")
- list(LENGTH ${_NAME}_CONSIDERED_CONFIGS configsCount)
- math(EXPR configsCount "${configsCount} - 1")
- foreach(currentConfigIndex RANGE ${configsCount})
- list(GET ${_NAME}_CONSIDERED_CONFIGS ${currentConfigIndex} filename)
- list(GET ${_NAME}_CONSIDERED_VERSIONS ${currentConfigIndex} version)
- string(APPEND configsText "\n ${filename} (version ${version})")
- endforeach()
- if (${_NAME}_NOT_FOUND_MESSAGE)
- if (FPHSA_REASON_FAILURE_MESSAGE)
- string(PREPEND FPHSA_REASON_FAILURE_MESSAGE "${${_NAME}_NOT_FOUND_MESSAGE}\n ")
- else()
- set(FPHSA_REASON_FAILURE_MESSAGE "${${_NAME}_NOT_FOUND_MESSAGE}")
- endif()
- else()
- string(APPEND configsText "\n")
- endif()
- _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} ${VERSION_MSG}, checked the following files:${configsText}")
-
- else()
- # Simple case: No Config-file was found at all:
- _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: found neither ${_NAME}Config.cmake nor ${_NAME_LOWER}-config.cmake ${VERSION_MSG}")
- endif()
- endif()
-endmacro()
-
-
-function(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FIRST_ARG)
-
-# Set up the arguments for `cmake_parse_arguments`.
- set(options CONFIG_MODE HANDLE_COMPONENTS)
- set(oneValueArgs FAIL_MESSAGE REASON_FAILURE_MESSAGE VERSION_VAR FOUND_VAR)
- set(multiValueArgs REQUIRED_VARS)
-
-# Check whether we are in 'simple' or 'extended' mode:
- set(_KEYWORDS_FOR_EXTENDED_MODE ${options} ${oneValueArgs} ${multiValueArgs} )
- list(FIND _KEYWORDS_FOR_EXTENDED_MODE "${_FIRST_ARG}" INDEX)
-
- if(${INDEX} EQUAL -1)
- set(FPHSA_FAIL_MESSAGE ${_FIRST_ARG})
- set(FPHSA_REQUIRED_VARS ${ARGN})
- set(FPHSA_VERSION_VAR)
- else()
- cmake_parse_arguments(FPHSA "${options}" "${oneValueArgs}" "${multiValueArgs}" ${_FIRST_ARG} ${ARGN})
-
- if(FPHSA_UNPARSED_ARGUMENTS)
- message(FATAL_ERROR "Unknown keywords given to FIND_PACKAGE_HANDLE_STANDARD_ARGS(): \"${FPHSA_UNPARSED_ARGUMENTS}\"")
- endif()
-
- if(NOT FPHSA_FAIL_MESSAGE)
- set(FPHSA_FAIL_MESSAGE "DEFAULT_MSG")
- endif()
-
- # In config-mode, we rely on the variable <PackageName>_CONFIG, which is set by find_package()
- # when it successfully found the config-file, including version checking:
- if(FPHSA_CONFIG_MODE)
- list(INSERT FPHSA_REQUIRED_VARS 0 ${_NAME}_CONFIG)
- list(REMOVE_DUPLICATES FPHSA_REQUIRED_VARS)
- set(FPHSA_VERSION_VAR ${_NAME}_VERSION)
- endif()
-
- if(NOT FPHSA_REQUIRED_VARS)
- message(FATAL_ERROR "No REQUIRED_VARS specified for FIND_PACKAGE_HANDLE_STANDARD_ARGS()")
- endif()
- endif()
-
-# now that we collected all arguments, process them
-
- if("x${FPHSA_FAIL_MESSAGE}" STREQUAL "xDEFAULT_MSG")
- set(FPHSA_FAIL_MESSAGE "Could NOT find ${_NAME}")
- endif()
-
- list(GET FPHSA_REQUIRED_VARS 0 _FIRST_REQUIRED_VAR)
-
- string(TOUPPER ${_NAME} _NAME_UPPER)
- string(TOLOWER ${_NAME} _NAME_LOWER)
-
- if(FPHSA_FOUND_VAR)
- if(FPHSA_FOUND_VAR MATCHES "^${_NAME}_FOUND$" OR FPHSA_FOUND_VAR MATCHES "^${_NAME_UPPER}_FOUND$")
- set(_FOUND_VAR ${FPHSA_FOUND_VAR})
- else()
- message(FATAL_ERROR "The argument for FOUND_VAR is \"${FPHSA_FOUND_VAR}\", but only \"${_NAME}_FOUND\" and \"${_NAME_UPPER}_FOUND\" are valid names.")
- endif()
- else()
- set(_FOUND_VAR ${_NAME_UPPER}_FOUND)
- endif()
-
- # collect all variables which were not found, so they can be printed, so the
- # user knows better what went wrong (#6375)
- set(MISSING_VARS "")
- set(DETAILS "")
- # check if all passed variables are valid
- set(FPHSA_FOUND_${_NAME} TRUE)
- foreach(_CURRENT_VAR ${FPHSA_REQUIRED_VARS})
- if(NOT ${_CURRENT_VAR})
- set(FPHSA_FOUND_${_NAME} FALSE)
- string(APPEND MISSING_VARS " ${_CURRENT_VAR}")
- else()
- string(APPEND DETAILS "[${${_CURRENT_VAR}}]")
- endif()
- endforeach()
- if(FPHSA_FOUND_${_NAME})
- set(${_NAME}_FOUND TRUE)
- set(${_NAME_UPPER}_FOUND TRUE)
- else()
- set(${_NAME}_FOUND FALSE)
- set(${_NAME_UPPER}_FOUND FALSE)
- endif()
-
- # component handling
- unset(FOUND_COMPONENTS_MSG)
- unset(MISSING_COMPONENTS_MSG)
-
- if(FPHSA_HANDLE_COMPONENTS)
- foreach(comp ${${_NAME}_FIND_COMPONENTS})
- if(${_NAME}_${comp}_FOUND)
-
- if(NOT DEFINED FOUND_COMPONENTS_MSG)
- set(FOUND_COMPONENTS_MSG "found components:")
- endif()
- string(APPEND FOUND_COMPONENTS_MSG " ${comp}")
-
- else()
-
- if(NOT DEFINED MISSING_COMPONENTS_MSG)
- set(MISSING_COMPONENTS_MSG "missing components:")
- endif()
- string(APPEND MISSING_COMPONENTS_MSG " ${comp}")
-
- if(${_NAME}_FIND_REQUIRED_${comp})
- set(${_NAME}_FOUND FALSE)
- string(APPEND MISSING_VARS " ${comp}")
- endif()
-
- endif()
- endforeach()
- set(COMPONENT_MSG "${FOUND_COMPONENTS_MSG} ${MISSING_COMPONENTS_MSG}")
- string(APPEND DETAILS "[c${COMPONENT_MSG}]")
- endif()
-
- # version handling:
- set(VERSION_MSG "")
- set(VERSION_OK TRUE)
-
- # check with DEFINED here as the requested or found version may be "0"
- if (DEFINED ${_NAME}_FIND_VERSION)
- if(DEFINED ${FPHSA_VERSION_VAR})
- set(_FOUND_VERSION ${${FPHSA_VERSION_VAR}})
-
- if(${_NAME}_FIND_VERSION_EXACT) # exact version required
- # count the dots in the version string
- string(REGEX REPLACE "[^.]" "" _VERSION_DOTS "${_FOUND_VERSION}")
- # add one dot because there is one dot more than there are components
- string(LENGTH "${_VERSION_DOTS}." _VERSION_DOTS)
- if (_VERSION_DOTS GREATER ${_NAME}_FIND_VERSION_COUNT)
- # Because of the C++ implementation of find_package() ${_NAME}_FIND_VERSION_COUNT
- # is at most 4 here. Therefore a simple lookup table is used.
- if (${_NAME}_FIND_VERSION_COUNT EQUAL 1)
- set(_VERSION_REGEX "[^.]*")
- elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 2)
- set(_VERSION_REGEX "[^.]*\\.[^.]*")
- elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 3)
- set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*")
- else ()
- set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*\\.[^.]*")
- endif ()
- string(REGEX REPLACE "^(${_VERSION_REGEX})\\..*" "\\1" _VERSION_HEAD "${_FOUND_VERSION}")
- unset(_VERSION_REGEX)
- if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _VERSION_HEAD)
- set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"")
- set(VERSION_OK FALSE)
- else ()
- set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")")
- endif ()
- unset(_VERSION_HEAD)
- else ()
- if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _FOUND_VERSION)
- set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"")
- set(VERSION_OK FALSE)
- else ()
- set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")")
- endif ()
- endif ()
- unset(_VERSION_DOTS)
-
- else() # minimum version specified:
- if (${_NAME}_FIND_VERSION VERSION_GREATER _FOUND_VERSION)
- set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is at least \"${${_NAME}_FIND_VERSION}\"")
- set(VERSION_OK FALSE)
- else ()
- set(VERSION_MSG "(found suitable version \"${_FOUND_VERSION}\", minimum required is \"${${_NAME}_FIND_VERSION}\")")
- endif ()
- endif()
-
- else()
-
- # if the package was not found, but a version was given, add that to the output:
- if(${_NAME}_FIND_VERSION_EXACT)
- set(VERSION_MSG "(Required is exact version \"${${_NAME}_FIND_VERSION}\")")
- else()
- set(VERSION_MSG "(Required is at least version \"${${_NAME}_FIND_VERSION}\")")
- endif()
-
- endif()
- else ()
- # Check with DEFINED as the found version may be 0.
- if(DEFINED ${FPHSA_VERSION_VAR})
- set(VERSION_MSG "(found version \"${${FPHSA_VERSION_VAR}}\")")
- endif()
- endif ()
-
- if(VERSION_OK)
- string(APPEND DETAILS "[v${${FPHSA_VERSION_VAR}}(${${_NAME}_FIND_VERSION})]")
- else()
- set(${_NAME}_FOUND FALSE)
- endif()
-
-
- # print the result:
- if (${_NAME}_FOUND)
- FIND_PACKAGE_MESSAGE(${_NAME} "Found ${_NAME}: ${${_FIRST_REQUIRED_VAR}} ${VERSION_MSG} ${COMPONENT_MSG}" "${DETAILS}")
- else ()
-
- if(FPHSA_CONFIG_MODE)
- _FPHSA_HANDLE_FAILURE_CONFIG_MODE()
- else()
- if(NOT VERSION_OK)
- _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: ${VERSION_MSG} (found ${${_FIRST_REQUIRED_VAR}})")
- else()
- _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} (missing:${MISSING_VARS}) ${VERSION_MSG}")
- endif()
- endif()
-
- endif ()
-
- set(${_NAME}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE)
- set(${_NAME_UPPER}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE)
-endfunction()
diff --git a/share/cmake-3.16/Modules/FindPkgConfig.cmake b/share/cmake-3.16/Modules/FindPkgConfig.cmake
deleted file mode 100644
index 5162a44..0000000
--- a/share/cmake-3.16/Modules/FindPkgConfig.cmake
+++ /dev/null
@@ -1,772 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[========================================[.rst:
-FindPkgConfig
--------------
-
-A ``pkg-config`` module for CMake.
-
-Finds the ``pkg-config`` executable and adds the :command:`pkg_get_variable`,
-:command:`pkg_check_modules` and :command:`pkg_search_module` commands. The
-following variables will also be set:
-
-``PKG_CONFIG_FOUND``
- if pkg-config executable was found
-``PKG_CONFIG_EXECUTABLE``
- pathname of the pkg-config program
-``PKG_CONFIG_VERSION_STRING``
- version of pkg-config (since CMake 2.8.8)
-
-#]========================================]
-
-### Common stuff ####
-set(PKG_CONFIG_VERSION 1)
-
-# find pkg-config, use PKG_CONFIG if set
-if((NOT PKG_CONFIG_EXECUTABLE) AND (NOT "$ENV{PKG_CONFIG}" STREQUAL ""))
- set(PKG_CONFIG_EXECUTABLE "$ENV{PKG_CONFIG}" CACHE FILEPATH "pkg-config executable")
-endif()
-find_program(PKG_CONFIG_EXECUTABLE NAMES pkg-config DOC "pkg-config executable")
-mark_as_advanced(PKG_CONFIG_EXECUTABLE)
-
-if (PKG_CONFIG_EXECUTABLE)
- execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --version
- OUTPUT_VARIABLE PKG_CONFIG_VERSION_STRING
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-endif ()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(PkgConfig
- REQUIRED_VARS PKG_CONFIG_EXECUTABLE
- VERSION_VAR PKG_CONFIG_VERSION_STRING)
-
-# This is needed because the module name is "PkgConfig" but the name of
-# this variable has always been PKG_CONFIG_FOUND so this isn't automatically
-# handled by FPHSA.
-set(PKG_CONFIG_FOUND "${PKGCONFIG_FOUND}")
-
-# Unsets the given variables
-macro(_pkgconfig_unset var)
- set(${var} "" CACHE INTERNAL "")
-endmacro()
-
-macro(_pkgconfig_set var value)
- set(${var} ${value} CACHE INTERNAL "")
-endmacro()
-
-# Invokes pkgconfig, cleans up the result and sets variables
-macro(_pkgconfig_invoke _pkglist _prefix _varname _regexp)
- set(_pkgconfig_invoke_result)
-
- execute_process(
- COMMAND ${PKG_CONFIG_EXECUTABLE} ${ARGN} ${_pkglist}
- OUTPUT_VARIABLE _pkgconfig_invoke_result
- RESULT_VARIABLE _pkgconfig_failed
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- if (_pkgconfig_failed)
- set(_pkgconfig_${_varname} "")
- _pkgconfig_unset(${_prefix}_${_varname})
- else()
- string(REGEX REPLACE "[\r\n]" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
-
- if (NOT ${_regexp} STREQUAL "")
- string(REGEX REPLACE "${_regexp}" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
- endif()
-
- separate_arguments(_pkgconfig_invoke_result)
-
- #message(STATUS " ${_varname} ... ${_pkgconfig_invoke_result}")
- set(_pkgconfig_${_varname} ${_pkgconfig_invoke_result})
- _pkgconfig_set(${_prefix}_${_varname} "${_pkgconfig_invoke_result}")
- endif()
-endmacro()
-
-# Internal version of pkg_get_variable; expects PKG_CONFIG_PATH to already be set
-function (_pkg_get_variable result pkg variable)
- _pkgconfig_invoke("${pkg}" "prefix" "result" "" "--variable=${variable}")
- set("${result}"
- "${prefix_result}"
- PARENT_SCOPE)
-endfunction ()
-
-# Invokes pkgconfig two times; once without '--static' and once with
-# '--static'
-macro(_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp)
- _pkgconfig_invoke("${_pkglist}" ${_prefix} ${_varname} "${cleanup_regexp}" ${ARGN})
- _pkgconfig_invoke("${_pkglist}" ${_prefix} STATIC_${_varname} "${cleanup_regexp}" --static ${ARGN})
-endmacro()
-
-# Splits given arguments into options and a package list
-macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global)
- set(${_is_req} 0)
- set(${_is_silent} 0)
- set(${_no_cmake_path} 0)
- set(${_no_cmake_environment_path} 0)
- set(${_imp_target} 0)
- set(${_imp_target_global} 0)
- if(DEFINED PKG_CONFIG_USE_CMAKE_PREFIX_PATH)
- if(NOT PKG_CONFIG_USE_CMAKE_PREFIX_PATH)
- set(${_no_cmake_path} 1)
- set(${_no_cmake_environment_path} 1)
- endif()
- elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.1)
- set(${_no_cmake_path} 1)
- set(${_no_cmake_environment_path} 1)
- endif()
-
- foreach(_pkg ${ARGN})
- if (_pkg STREQUAL "REQUIRED")
- set(${_is_req} 1)
- endif ()
- if (_pkg STREQUAL "QUIET")
- set(${_is_silent} 1)
- endif ()
- if (_pkg STREQUAL "NO_CMAKE_PATH")
- set(${_no_cmake_path} 1)
- endif()
- if (_pkg STREQUAL "NO_CMAKE_ENVIRONMENT_PATH")
- set(${_no_cmake_environment_path} 1)
- endif()
- if (_pkg STREQUAL "IMPORTED_TARGET")
- set(${_imp_target} 1)
- endif()
- if (_pkg STREQUAL "GLOBAL")
- set(${_imp_target_global} 1)
- endif()
- endforeach()
-
- if (${_imp_target_global} AND NOT ${_imp_target})
- message(SEND_ERROR "the argument GLOBAL may only be used together with IMPORTED_TARGET")
- endif()
-
- set(${_result} ${ARGN})
- list(REMOVE_ITEM ${_result} "REQUIRED")
- list(REMOVE_ITEM ${_result} "QUIET")
- list(REMOVE_ITEM ${_result} "NO_CMAKE_PATH")
- list(REMOVE_ITEM ${_result} "NO_CMAKE_ENVIRONMENT_PATH")
- list(REMOVE_ITEM ${_result} "IMPORTED_TARGET")
- list(REMOVE_ITEM ${_result} "GLOBAL")
-endmacro()
-
-# Add the content of a variable or an environment variable to a list of
-# paths
-# Usage:
-# - _pkgconfig_add_extra_path(_extra_paths VAR)
-# - _pkgconfig_add_extra_path(_extra_paths ENV VAR)
-function(_pkgconfig_add_extra_path _extra_paths_var _var)
- set(_is_env 0)
- if(ARGC GREATER 2 AND _var STREQUAL "ENV")
- set(_var ${ARGV2})
- set(_is_env 1)
- endif()
- if(NOT _is_env)
- if(NOT "${${_var}}" STREQUAL "")
- list(APPEND ${_extra_paths_var} ${${_var}})
- endif()
- else()
- if(NOT "$ENV{${_var}}" STREQUAL "")
- file(TO_CMAKE_PATH "$ENV{${_var}}" _path)
- list(APPEND ${_extra_paths_var} ${_path})
- unset(_path)
- endif()
- endif()
- set(${_extra_paths_var} ${${_extra_paths_var}} PARENT_SCOPE)
-endfunction()
-
-# scan the LDFLAGS returned by pkg-config for library directories and
-# libraries, figure out the absolute paths of that libraries in the
-# given directories
-function(_pkg_find_libs _prefix _no_cmake_path _no_cmake_environment_path)
- unset(_libs)
- unset(_find_opts)
-
- # set the options that are used as long as the .pc file does not provide a library
- # path to look into
- if(_no_cmake_path)
- list(APPEND _find_opts "NO_CMAKE_PATH")
- endif()
- if(_no_cmake_environment_path)
- list(APPEND _find_opts "NO_CMAKE_ENVIRONMENT_PATH")
- endif()
-
- unset(_search_paths)
- foreach (flag IN LISTS ${_prefix}_LDFLAGS)
- if (flag MATCHES "^-L(.*)")
- list(APPEND _search_paths ${CMAKE_MATCH_1})
- continue()
- endif()
- if (flag MATCHES "^-l(.*)")
- set(_pkg_search "${CMAKE_MATCH_1}")
- else()
- continue()
- endif()
-
- if(_search_paths)
- # Firstly search in -L paths
- find_library(pkgcfg_lib_${_prefix}_${_pkg_search}
- NAMES ${_pkg_search}
- HINTS ${_search_paths} NO_DEFAULT_PATH)
- endif()
- find_library(pkgcfg_lib_${_prefix}_${_pkg_search}
- NAMES ${_pkg_search}
- ${_find_opts})
- mark_as_advanced(pkgcfg_lib_${_prefix}_${_pkg_search})
- if(pkgcfg_lib_${_prefix}_${_pkg_search})
- list(APPEND _libs "${pkgcfg_lib_${_prefix}_${_pkg_search}}")
- else()
- list(APPEND _libs ${_pkg_search})
- endif()
- endforeach()
-
- set(${_prefix}_LINK_LIBRARIES "${_libs}" PARENT_SCOPE)
-endfunction()
-
-# create an imported target from all the information returned by pkg-config
-function(_pkg_create_imp_target _prefix _imp_target_global)
- # only create the target if it is linkable, i.e. no executables
- if (NOT TARGET PkgConfig::${_prefix}
- AND ( ${_prefix}_INCLUDE_DIRS OR ${_prefix}_LINK_LIBRARIES OR ${_prefix}_LDFLAGS_OTHER OR ${_prefix}_CFLAGS_OTHER ))
- if(${_imp_target_global})
- set(_global_opt "GLOBAL")
- else()
- unset(_global_opt)
- endif()
- add_library(PkgConfig::${_prefix} INTERFACE IMPORTED ${_global_opt})
-
- if(${_prefix}_INCLUDE_DIRS)
- set_property(TARGET PkgConfig::${_prefix} PROPERTY
- INTERFACE_INCLUDE_DIRECTORIES "${${_prefix}_INCLUDE_DIRS}")
- endif()
- if(${_prefix}_LINK_LIBRARIES)
- set_property(TARGET PkgConfig::${_prefix} PROPERTY
- INTERFACE_LINK_LIBRARIES "${${_prefix}_LINK_LIBRARIES}")
- endif()
- if(${_prefix}_LDFLAGS_OTHER)
- set_property(TARGET PkgConfig::${_prefix} PROPERTY
- INTERFACE_LINK_OPTIONS "${${_prefix}_LDFLAGS_OTHER}")
- endif()
- if(${_prefix}_CFLAGS_OTHER)
- set_property(TARGET PkgConfig::${_prefix} PROPERTY
- INTERFACE_COMPILE_OPTIONS "${${_prefix}_CFLAGS_OTHER}")
- endif()
- endif()
-endfunction()
-
-# recalculate the dynamic output
-# this is a macro and not a function so the result of _pkg_find_libs is automatically propagated
-macro(_pkg_recalculate _prefix _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global)
- _pkg_find_libs(${_prefix} ${_no_cmake_path} ${_no_cmake_environment_path})
- if(${_imp_target})
- _pkg_create_imp_target(${_prefix} ${_imp_target_global})
- endif()
-endmacro()
-
-###
-macro(_pkg_set_path_internal)
- set(_extra_paths)
-
- if(NOT _no_cmake_path)
- _pkgconfig_add_extra_path(_extra_paths CMAKE_PREFIX_PATH)
- _pkgconfig_add_extra_path(_extra_paths CMAKE_FRAMEWORK_PATH)
- _pkgconfig_add_extra_path(_extra_paths CMAKE_APPBUNDLE_PATH)
- endif()
-
- if(NOT _no_cmake_environment_path)
- _pkgconfig_add_extra_path(_extra_paths ENV CMAKE_PREFIX_PATH)
- _pkgconfig_add_extra_path(_extra_paths ENV CMAKE_FRAMEWORK_PATH)
- _pkgconfig_add_extra_path(_extra_paths ENV CMAKE_APPBUNDLE_PATH)
- endif()
-
- if(NOT _extra_paths STREQUAL "")
- # Save the PKG_CONFIG_PATH environment variable, and add paths
- # from the CMAKE_PREFIX_PATH variables
- set(_pkgconfig_path_old "$ENV{PKG_CONFIG_PATH}")
- set(_pkgconfig_path "${_pkgconfig_path_old}")
- if(NOT _pkgconfig_path STREQUAL "")
- file(TO_CMAKE_PATH "${_pkgconfig_path}" _pkgconfig_path)
- endif()
-
- # Create a list of the possible pkgconfig subfolder (depending on
- # the system
- set(_lib_dirs)
- if(NOT DEFINED CMAKE_SYSTEM_NAME
- OR (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$"
- AND NOT CMAKE_CROSSCOMPILING))
- if(EXISTS "/etc/debian_version") # is this a debian system ?
- if(CMAKE_LIBRARY_ARCHITECTURE)
- list(APPEND _lib_dirs "lib/${CMAKE_LIBRARY_ARCHITECTURE}/pkgconfig")
- endif()
- else()
- # not debian, check the FIND_LIBRARY_USE_LIB32_PATHS and FIND_LIBRARY_USE_LIB64_PATHS properties
- get_property(uselib32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS)
- if(uselib32 AND CMAKE_SIZEOF_VOID_P EQUAL 4)
- list(APPEND _lib_dirs "lib32/pkgconfig")
- endif()
- get_property(uselib64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
- if(uselib64 AND CMAKE_SIZEOF_VOID_P EQUAL 8)
- list(APPEND _lib_dirs "lib64/pkgconfig")
- endif()
- get_property(uselibx32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS)
- if(uselibx32 AND CMAKE_INTERNAL_PLATFORM_ABI STREQUAL "ELF X32")
- list(APPEND _lib_dirs "libx32/pkgconfig")
- endif()
- endif()
- endif()
- if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND NOT CMAKE_CROSSCOMPILING)
- list(APPEND _lib_dirs "libdata/pkgconfig")
- endif()
- list(APPEND _lib_dirs "lib/pkgconfig")
- list(APPEND _lib_dirs "share/pkgconfig")
-
- # Check if directories exist and eventually append them to the
- # pkgconfig path list
- foreach(_prefix_dir ${_extra_paths})
- foreach(_lib_dir ${_lib_dirs})
- if(EXISTS "${_prefix_dir}/${_lib_dir}")
- list(APPEND _pkgconfig_path "${_prefix_dir}/${_lib_dir}")
- list(REMOVE_DUPLICATES _pkgconfig_path)
- endif()
- endforeach()
- endforeach()
-
- # Prepare and set the environment variable
- if(NOT _pkgconfig_path STREQUAL "")
- # remove empty values from the list
- list(REMOVE_ITEM _pkgconfig_path "")
- file(TO_NATIVE_PATH "${_pkgconfig_path}" _pkgconfig_path)
- if(UNIX)
- string(REPLACE ";" ":" _pkgconfig_path "${_pkgconfig_path}")
- string(REPLACE "\\ " " " _pkgconfig_path "${_pkgconfig_path}")
- endif()
- set(ENV{PKG_CONFIG_PATH} "${_pkgconfig_path}")
- endif()
-
- # Unset variables
- unset(_lib_dirs)
- unset(_pkgconfig_path)
- endif()
-endmacro()
-
-macro(_pkg_restore_path_internal)
- if(NOT _extra_paths STREQUAL "")
- # Restore the environment variable
- set(ENV{PKG_CONFIG_PATH} "${_pkgconfig_path_old}")
- endif()
-
- unset(_extra_paths)
- unset(_pkgconfig_path_old)
-endmacro()
-
-###
-macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global _prefix)
- _pkgconfig_unset(${_prefix}_FOUND)
- _pkgconfig_unset(${_prefix}_VERSION)
- _pkgconfig_unset(${_prefix}_PREFIX)
- _pkgconfig_unset(${_prefix}_INCLUDEDIR)
- _pkgconfig_unset(${_prefix}_LIBDIR)
- _pkgconfig_unset(${_prefix}_MODULE_NAME)
- _pkgconfig_unset(${_prefix}_LIBS)
- _pkgconfig_unset(${_prefix}_LIBS_L)
- _pkgconfig_unset(${_prefix}_LIBS_PATHS)
- _pkgconfig_unset(${_prefix}_LIBS_OTHER)
- _pkgconfig_unset(${_prefix}_CFLAGS)
- _pkgconfig_unset(${_prefix}_CFLAGS_I)
- _pkgconfig_unset(${_prefix}_CFLAGS_OTHER)
- _pkgconfig_unset(${_prefix}_STATIC_LIBDIR)
- _pkgconfig_unset(${_prefix}_STATIC_LIBS)
- _pkgconfig_unset(${_prefix}_STATIC_LIBS_L)
- _pkgconfig_unset(${_prefix}_STATIC_LIBS_PATHS)
- _pkgconfig_unset(${_prefix}_STATIC_LIBS_OTHER)
- _pkgconfig_unset(${_prefix}_STATIC_CFLAGS)
- _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_I)
- _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_OTHER)
-
- # create a better addressable variable of the modules and calculate its size
- set(_pkg_check_modules_list ${ARGN})
- list(LENGTH _pkg_check_modules_list _pkg_check_modules_cnt)
-
- if(PKG_CONFIG_EXECUTABLE)
- # give out status message telling checked module
- if (NOT ${_is_silent})
- if (_pkg_check_modules_cnt EQUAL 1)
- message(STATUS "Checking for module '${_pkg_check_modules_list}'")
- else()
- message(STATUS "Checking for modules '${_pkg_check_modules_list}'")
- endif()
- endif()
-
- set(_pkg_check_modules_packages)
- set(_pkg_check_modules_failed)
-
- _pkg_set_path_internal()
-
- # iterate through module list and check whether they exist and match the required version
- foreach (_pkg_check_modules_pkg ${_pkg_check_modules_list})
- set(_pkg_check_modules_exist_query)
-
- # check whether version is given
- 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}")
- else()
- set(_pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}")
- set(_pkg_check_modules_pkg_op)
- set(_pkg_check_modules_pkg_ver)
- endif()
-
- _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_VERSION)
- _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_PREFIX)
- _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_INCLUDEDIR)
- _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_LIBDIR)
-
- 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)
- list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_name} ${_pkg_check_modules_pkg_op} ${_pkg_check_modules_pkg_ver}")
- else()
- list(APPEND _pkg_check_modules_exist_query --exists)
- list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_name}")
- endif()
-
- # execute the query
- execute_process(
- COMMAND ${PKG_CONFIG_EXECUTABLE} ${_pkg_check_modules_exist_query}
- RESULT_VARIABLE _pkgconfig_retval
- ERROR_VARIABLE _pkgconfig_error
- ERROR_STRIP_TRAILING_WHITESPACE)
-
- # evaluate result and tell failures
- if (_pkgconfig_retval)
- if(NOT ${_is_silent})
- message(STATUS " ${_pkgconfig_error}")
- endif()
-
- set(_pkg_check_modules_failed 1)
- endif()
- endforeach()
-
- if(_pkg_check_modules_failed)
- # fail when requested
- if (${_is_required})
- message(FATAL_ERROR "A required package was not found")
- endif ()
- else()
- # when we are here, we checked whether requested modules
- # exist. Now, go through them and set variables
-
- _pkgconfig_set(${_prefix}_FOUND 1)
- list(LENGTH _pkg_check_modules_packages pkg_count)
-
- # iterate through all modules again and set individual variables
- foreach (_pkg_check_modules_pkg ${_pkg_check_modules_packages})
- # handle case when there is only one package required
- if (pkg_count EQUAL 1)
- set(_pkg_check_prefix "${_prefix}")
- else()
- set(_pkg_check_prefix "${_prefix}_${_pkg_check_modules_pkg}")
- endif()
-
- _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" VERSION "" --modversion )
- pkg_get_variable("${_pkg_check_prefix}_PREFIX" ${_pkg_check_modules_pkg} "prefix")
- pkg_get_variable("${_pkg_check_prefix}_INCLUDEDIR" ${_pkg_check_modules_pkg} "includedir")
- pkg_get_variable("${_pkg_check_prefix}_LIBDIR" ${_pkg_check_modules_pkg} "libdir")
- foreach (variable IN ITEMS PREFIX INCLUDEDIR LIBDIR)
- _pkgconfig_set("${_pkg_check_prefix}_${variable}" "${${_pkg_check_prefix}_${variable}}")
- endforeach ()
- _pkgconfig_set("${_pkg_check_prefix}_MODULE_NAME" "${_pkg_check_modules_pkg}")
-
- if (NOT ${_is_silent})
- message(STATUS " Found ${_pkg_check_modules_pkg}, version ${_pkgconfig_VERSION}")
- endif ()
- endforeach()
-
- # set variables which are combined for multiple modules
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARIES "(^| )-l" --libs-only-l )
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARY_DIRS "(^| )-L" --libs-only-L )
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS "" --libs )
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS_OTHER "" --libs-only-other )
-
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS "(^| )-I" --cflags-only-I )
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS "" --cflags )
- _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS_OTHER "" --cflags-only-other )
-
- _pkg_recalculate("${_prefix}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global})
- endif()
-
- _pkg_restore_path_internal()
- else()
- if (${_is_required})
- message(SEND_ERROR "pkg-config tool not found")
- endif ()
- endif()
-endmacro()
-
-
-#[========================================[.rst:
-.. command:: pkg_check_modules
-
- Checks for all the given modules, setting a variety of result variables in
- the calling scope.
-
- .. code-block:: cmake
-
- pkg_check_modules(<prefix>
- [REQUIRED] [QUIET]
- [NO_CMAKE_PATH]
- [NO_CMAKE_ENVIRONMENT_PATH]
- [IMPORTED_TARGET [GLOBAL]]
- <moduleSpec> [<moduleSpec>...])
-
- When the ``REQUIRED`` argument is given, the command will fail with an error
- if module(s) could not be found.
-
- When the ``QUIET`` argument is given, no status messages will be printed.
-
- By default, if :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.1 or
- later, or if :variable:`PKG_CONFIG_USE_CMAKE_PREFIX_PATH` is set to a
- boolean ``True`` value, then the :variable:`CMAKE_PREFIX_PATH`,
- :variable:`CMAKE_FRAMEWORK_PATH`, and :variable:`CMAKE_APPBUNDLE_PATH` cache
- and environment variables will be added to the ``pkg-config`` search path.
- The ``NO_CMAKE_PATH`` and ``NO_CMAKE_ENVIRONMENT_PATH`` arguments
- disable this behavior for the cache variables and environment variables
- respectively.
-
- The ``IMPORTED_TARGET`` argument will create an imported target named
- ``PkgConfig::<prefix>`` that can be passed directly as an argument to
- :command:`target_link_libraries`. The ``GLOBAL`` argument will make the
- imported target available in global scope.
-
- 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:
-
- - ``foo`` matches any version.
- - ``foo<2`` only matches versions before 2.
- - ``foo>=3.1`` matches any version from 3.1 or later.
- - ``foo=1.2.3`` requires that foo must be exactly version 1.2.3.
-
- The following variables may be set upon return. Two sets of values exist:
- One for the common case (``<XXX> = <prefix>``) and another for the
- information ``pkg-config`` provides when called with the ``--static``
- option (``<XXX> = <prefix>_STATIC``).
-
- ``<XXX>_FOUND``
- set to 1 if module(s) exist
- ``<XXX>_LIBRARIES``
- only the libraries (without the '-l')
- ``<XXX>_LINK_LIBRARIES``
- the libraries and their absolute paths
- ``<XXX>_LIBRARY_DIRS``
- the paths of the libraries (without the '-L')
- ``<XXX>_LDFLAGS``
- all required linker flags
- ``<XXX>_LDFLAGS_OTHER``
- all other linker flags
- ``<XXX>_INCLUDE_DIRS``
- the '-I' preprocessor flags (without the '-I')
- ``<XXX>_CFLAGS``
- all required cflags
- ``<XXX>_CFLAGS_OTHER``
- the other compiler flags
-
- All but ``<XXX>_FOUND`` may be a :ref:`;-list <CMake Language Lists>` if the
- associated variable returned from ``pkg-config`` has multiple values.
-
- There are some special variables whose prefix depends on the number of
- ``<moduleSpec>`` given. When there is only one ``<moduleSpec>``,
- ``<YYY>`` will simply be ``<prefix>``, but if two or more ``<moduleSpec>``
- items are given, ``<YYY>`` will be ``<prefix>_<moduleName>``.
-
- ``<YYY>_VERSION``
- version of the module
- ``<YYY>_PREFIX``
- prefix directory of the module
- ``<YYY>_INCLUDEDIR``
- include directory of the module
- ``<YYY>_LIBDIR``
- lib directory of the module
-
- Examples:
-
- .. code-block:: cmake
-
- pkg_check_modules (GLIB2 glib-2.0)
-
- Looks for any version of glib2. If found, the output variable
- ``GLIB2_VERSION`` will hold the actual version found.
-
- .. code-block:: cmake
-
- pkg_check_modules (GLIB2 glib-2.0>=2.10)
-
- Looks for at least version 2.10 of glib2. If found, the output variable
- ``GLIB2_VERSION`` will hold the actual version found.
-
- .. code-block:: cmake
-
- pkg_check_modules (FOO glib-2.0>=2.10 gtk+-2.0)
-
- Looks for both glib2-2.0 (at least version 2.10) and any version of
- gtk2+-2.0. Only if both are found will ``FOO`` be considered found.
- The ``FOO_glib-2.0_VERSION`` and ``FOO_gtk+-2.0_VERSION`` variables will be
- set to their respective found module versions.
-
- .. code-block:: cmake
-
- pkg_check_modules (XRENDER REQUIRED xrender)
-
- Requires any version of ``xrender``. Example output variables set by a
- successful call::
-
- XRENDER_LIBRARIES=Xrender;X11
- XRENDER_STATIC_LIBRARIES=Xrender;X11;pthread;Xau;Xdmcp
-#]========================================]
-macro(pkg_check_modules _prefix _module0)
- _pkgconfig_parse_options(_pkg_modules _pkg_is_required _pkg_is_silent _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global "${_module0}" ${ARGN})
- # check cached value
- if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND OR
- (NOT "${ARGN}" STREQUAL "" AND NOT "${__pkg_config_arguments_${_prefix}}" STREQUAL "${_module0};${ARGN}") OR
- ( "${ARGN}" STREQUAL "" AND NOT "${__pkg_config_arguments_${_prefix}}" STREQUAL "${_module0}"))
- _pkg_check_modules_internal("${_pkg_is_required}" "${_pkg_is_silent}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global} "${_prefix}" ${_pkg_modules})
-
- _pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION})
- if (${_prefix}_FOUND)
- _pkgconfig_set(__pkg_config_arguments_${_prefix} "${_module0};${ARGN}")
- endif()
- else()
- if (${_prefix}_FOUND)
- _pkg_recalculate("${_prefix}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global})
- endif()
- endif()
-endmacro()
-
-
-#[========================================[.rst:
-.. command:: pkg_search_module
-
- The behavior of this command is the same as :command:`pkg_check_modules`,
- except that rather than checking for all the specified modules, it searches
- for just the first successful match.
-
- .. code-block:: cmake
-
- pkg_search_module(<prefix>
- [REQUIRED] [QUIET]
- [NO_CMAKE_PATH]
- [NO_CMAKE_ENVIRONMENT_PATH]
- [IMPORTED_TARGET [GLOBAL]]
- <moduleSpec> [<moduleSpec>...])
-
- If a module is found, the ``<prefix>_MODULE_NAME`` variable will contain the
- name of the matching module. This variable can be used if you need to run
- :command:`pkg_get_variable`.
-
- Example:
-
- .. code-block:: cmake
-
- pkg_search_module (BAR libxml-2.0 libxml2 libxml>=2)
-#]========================================]
-macro(pkg_search_module _prefix _module0)
- _pkgconfig_parse_options(_pkg_modules_alt _pkg_is_required _pkg_is_silent _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global "${_module0}" ${ARGN})
- # check cached value
- if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND)
- set(_pkg_modules_found 0)
-
- if (NOT ${_pkg_is_silent})
- message(STATUS "Checking for one of the modules '${_pkg_modules_alt}'")
- endif ()
-
- # iterate through all modules and stop at the first working one.
- foreach(_pkg_alt ${_pkg_modules_alt})
- if(NOT _pkg_modules_found)
- _pkg_check_modules_internal(0 1 ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global} "${_prefix}" "${_pkg_alt}")
- endif()
-
- if (${_prefix}_FOUND)
- set(_pkg_modules_found 1)
- break()
- endif()
- endforeach()
-
- if (NOT ${_prefix}_FOUND)
- if(${_pkg_is_required})
- message(SEND_ERROR "None of the required '${_pkg_modules_alt}' found")
- endif()
- endif()
-
- _pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION})
- elseif (${_prefix}_FOUND)
- _pkg_recalculate("${_prefix}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global})
- endif()
-endmacro()
-
-#[========================================[.rst:
-.. command:: pkg_get_variable
-
- Retrieves the value of a pkg-config variable ``varName`` and stores it in the
- result variable ``resultVar`` in the calling scope.
-
- .. code-block:: cmake
-
- pkg_get_variable(<resultVar> <moduleName> <varName>)
-
- If ``pkg-config`` returns multiple values for the specified variable,
- ``resultVar`` will contain a :ref:`;-list <CMake Language Lists>`.
-
- For example:
-
- .. code-block:: cmake
-
- pkg_get_variable(GI_GIRDIR gobject-introspection-1.0 girdir)
-#]========================================]
-function (pkg_get_variable result pkg variable)
- _pkg_set_path_internal()
- _pkgconfig_invoke("${pkg}" "prefix" "result" "" "--variable=${variable}")
- set("${result}"
- "${prefix_result}"
- PARENT_SCOPE)
- _pkg_restore_path_internal()
-endfunction ()
-
-
-#[========================================[.rst:
-Variables Affecting Behavior
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. variable:: PKG_CONFIG_EXECUTABLE
-
- This can be set to the path of the pkg-config executable. If not provided,
- it will be set by the module as a result of calling :command:`find_program`
- internally. The ``PKG_CONFIG`` environment variable can be used as a hint.
-
-.. variable:: PKG_CONFIG_USE_CMAKE_PREFIX_PATH
-
- Specifies whether :command:`pkg_check_modules` and
- :command:`pkg_search_module` should add the paths in the
- :variable:`CMAKE_PREFIX_PATH`, :variable:`CMAKE_FRAMEWORK_PATH` and
- :variable:`CMAKE_APPBUNDLE_PATH` cache and environment variables to the
- ``pkg-config`` search path.
-
- If this variable is not set, this behavior is enabled by default if
- :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.1 or later, disabled
- otherwise.
-#]========================================]
-
-
-### Local Variables:
-### mode: cmake
-### End:
diff --git a/share/cmake-3.16/Modules/FindProtobuf.cmake b/share/cmake-3.16/Modules/FindProtobuf.cmake
deleted file mode 100644
index 2d45965..0000000
--- a/share/cmake-3.16/Modules/FindProtobuf.cmake
+++ /dev/null
@@ -1,659 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindProtobuf
-------------
-
-Locate and configure the Google Protocol Buffers library.
-
-The following variables can be set and are optional:
-
-``Protobuf_SRC_ROOT_FOLDER``
- When compiling with MSVC, if this cache variable is set
- the protobuf-default VS project build locations
- (vsprojects/Debug and vsprojects/Release
- or vsprojects/x64/Debug and vsprojects/x64/Release)
- will be searched for libraries and binaries.
-``Protobuf_IMPORT_DIRS``
- List of additional directories to be searched for
- imported .proto files.
-``Protobuf_DEBUG``
- Show debug messages.
-``Protobuf_USE_STATIC_LIBS``
- Set to ON to force the use of the static libraries.
- Default is OFF.
-
-Defines the following variables:
-
-``Protobuf_FOUND``
- Found the Google Protocol Buffers library
- (libprotobuf & header files)
-``Protobuf_VERSION``
- Version of package found.
-``Protobuf_INCLUDE_DIRS``
- Include directories for Google Protocol Buffers
-``Protobuf_LIBRARIES``
- The protobuf libraries
-``Protobuf_PROTOC_LIBRARIES``
- The protoc libraries
-``Protobuf_LITE_LIBRARIES``
- The protobuf-lite libraries
-
-The following :prop_tgt:`IMPORTED` targets are also defined:
-
-``protobuf::libprotobuf``
- The protobuf library.
-``protobuf::libprotobuf-lite``
- The protobuf lite library.
-``protobuf::libprotoc``
- The protoc library.
-``protobuf::protoc``
- The protoc compiler.
-
-The following cache variables are also available to set or use:
-
-``Protobuf_LIBRARY``
- The protobuf library
-``Protobuf_PROTOC_LIBRARY``
- The protoc library
-``Protobuf_INCLUDE_DIR``
- The include directory for protocol buffers
-``Protobuf_PROTOC_EXECUTABLE``
- The protoc compiler
-``Protobuf_LIBRARY_DEBUG``
- The protobuf library (debug)
-``Protobuf_PROTOC_LIBRARY_DEBUG``
- The protoc library (debug)
-``Protobuf_LITE_LIBRARY``
- The protobuf lite library
-``Protobuf_LITE_LIBRARY_DEBUG``
- The protobuf lite library (debug)
-
-Example:
-
-.. code-block:: cmake
-
- find_package(Protobuf REQUIRED)
- include_directories(${Protobuf_INCLUDE_DIRS})
- include_directories(${CMAKE_CURRENT_BINARY_DIR})
- protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS foo.proto)
- protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS EXPORT_MACRO DLL_EXPORT foo.proto)
- protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS DESCRIPTORS PROTO_DESCS foo.proto)
- protobuf_generate_python(PROTO_PY foo.proto)
- add_executable(bar bar.cc ${PROTO_SRCS} ${PROTO_HDRS})
- target_link_libraries(bar ${Protobuf_LIBRARIES})
-
-.. note::
- The ``protobuf_generate_cpp`` and ``protobuf_generate_python``
- functions and :command:`add_executable` or :command:`add_library`
- calls only work properly within the same directory.
-
-.. command:: protobuf_generate_cpp
-
- Add custom commands to process ``.proto`` files to C++::
-
- protobuf_generate_cpp (<SRCS> <HDRS>
- [DESCRIPTORS <DESC>] [EXPORT_MACRO <MACRO>] [<ARGN>...])
-
- ``SRCS``
- Variable to define with autogenerated source files
- ``HDRS``
- Variable to define with autogenerated header files
- ``DESCRIPTORS``
- Variable to define with autogenerated descriptor files, if requested.
- ``EXPORT_MACRO``
- is a macro which should expand to ``__declspec(dllexport)`` or
- ``__declspec(dllimport)`` depending on what is being compiled.
- ``ARGN``
- ``.proto`` files
-
-.. command:: protobuf_generate_python
-
- Add custom commands to process ``.proto`` files to Python::
-
- protobuf_generate_python (<PY> [<ARGN>...])
-
- ``PY``
- Variable to define with autogenerated Python files
- ``ARGN``
- ``.proto`` filess
-#]=======================================================================]
-
-function(protobuf_generate)
- set(_options APPEND_PATH DESCRIPTORS)
- set(_singleargs LANGUAGE OUT_VAR EXPORT_MACRO PROTOC_OUT_DIR)
- if(COMMAND target_sources)
- list(APPEND _singleargs TARGET)
- endif()
- set(_multiargs PROTOS IMPORT_DIRS GENERATE_EXTENSIONS)
-
- cmake_parse_arguments(protobuf_generate "${_options}" "${_singleargs}" "${_multiargs}" "${ARGN}")
-
- if(NOT protobuf_generate_PROTOS AND NOT protobuf_generate_TARGET)
- message(SEND_ERROR "Error: protobuf_generate called without any targets or source files")
- return()
- endif()
-
- if(NOT protobuf_generate_OUT_VAR AND NOT protobuf_generate_TARGET)
- message(SEND_ERROR "Error: protobuf_generate called without a target or output variable")
- return()
- endif()
-
- if(NOT protobuf_generate_LANGUAGE)
- set(protobuf_generate_LANGUAGE cpp)
- endif()
- string(TOLOWER ${protobuf_generate_LANGUAGE} protobuf_generate_LANGUAGE)
-
- if(NOT protobuf_generate_PROTOC_OUT_DIR)
- set(protobuf_generate_PROTOC_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
- endif()
-
- if(protobuf_generate_EXPORT_MACRO AND protobuf_generate_LANGUAGE STREQUAL cpp)
- set(_dll_export_decl "dllexport_decl=${protobuf_generate_EXPORT_MACRO}:")
- endif()
-
- if(NOT protobuf_generate_GENERATE_EXTENSIONS)
- if(protobuf_generate_LANGUAGE STREQUAL cpp)
- set(protobuf_generate_GENERATE_EXTENSIONS .pb.h .pb.cc)
- elseif(protobuf_generate_LANGUAGE STREQUAL python)
- set(protobuf_generate_GENERATE_EXTENSIONS _pb2.py)
- else()
- message(SEND_ERROR "Error: protobuf_generate given unknown Language ${LANGUAGE}, please provide a value for GENERATE_EXTENSIONS")
- return()
- endif()
- endif()
-
- if(protobuf_generate_TARGET)
- get_target_property(_source_list ${protobuf_generate_TARGET} SOURCES)
- foreach(_file ${_source_list})
- if(_file MATCHES "proto$")
- list(APPEND protobuf_generate_PROTOS ${_file})
- endif()
- endforeach()
- endif()
-
- if(NOT protobuf_generate_PROTOS)
- message(SEND_ERROR "Error: protobuf_generate could not find any .proto files")
- return()
- endif()
-
- if(protobuf_generate_APPEND_PATH)
- # Create an include path for each file specified
- foreach(_file ${protobuf_generate_PROTOS})
- get_filename_component(_abs_file ${_file} ABSOLUTE)
- get_filename_component(_abs_path ${_abs_file} PATH)
- list(FIND _protobuf_include_path ${_abs_path} _contains_already)
- if(${_contains_already} EQUAL -1)
- list(APPEND _protobuf_include_path -I ${_abs_path})
- endif()
- endforeach()
- else()
- set(_protobuf_include_path -I ${CMAKE_CURRENT_SOURCE_DIR})
- endif()
-
- foreach(DIR ${protobuf_generate_IMPORT_DIRS})
- get_filename_component(ABS_PATH ${DIR} ABSOLUTE)
- list(FIND _protobuf_include_path ${ABS_PATH} _contains_already)
- if(${_contains_already} EQUAL -1)
- list(APPEND _protobuf_include_path -I ${ABS_PATH})
- endif()
- endforeach()
-
- set(_generated_srcs_all)
- foreach(_proto ${protobuf_generate_PROTOS})
- get_filename_component(_abs_file ${_proto} ABSOLUTE)
- get_filename_component(_abs_dir ${_abs_file} DIRECTORY)
- get_filename_component(_basename ${_proto} NAME_WE)
- file(RELATIVE_PATH _rel_dir ${CMAKE_CURRENT_SOURCE_DIR} ${_abs_dir})
-
- set(_possible_rel_dir)
- if (NOT protobuf_generate_APPEND_PATH)
- set(_possible_rel_dir ${_rel_dir}/)
- endif()
-
- set(_generated_srcs)
- foreach(_ext ${protobuf_generate_GENERATE_EXTENSIONS})
- list(APPEND _generated_srcs "${protobuf_generate_PROTOC_OUT_DIR}/${_possible_rel_dir}${_basename}${_ext}")
- endforeach()
-
- if(protobuf_generate_DESCRIPTORS AND protobuf_generate_LANGUAGE STREQUAL cpp)
- set(_descriptor_file "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.desc")
- set(_dll_desc_out "--descriptor_set_out=${_descriptor_file}")
- list(APPEND _generated_srcs ${_descriptor_file})
- endif()
- list(APPEND _generated_srcs_all ${_generated_srcs})
-
- add_custom_command(
- OUTPUT ${_generated_srcs}
- COMMAND protobuf::protoc
- ARGS --${protobuf_generate_LANGUAGE}_out ${_dll_export_decl}${protobuf_generate_PROTOC_OUT_DIR} ${_dll_desc_out} ${_protobuf_include_path} ${_abs_file}
- DEPENDS ${_abs_file} protobuf::protoc
- COMMENT "Running ${protobuf_generate_LANGUAGE} protocol buffer compiler on ${_proto}"
- VERBATIM )
- endforeach()
-
- set_source_files_properties(${_generated_srcs_all} PROPERTIES GENERATED TRUE)
- if(protobuf_generate_OUT_VAR)
- set(${protobuf_generate_OUT_VAR} ${_generated_srcs_all} PARENT_SCOPE)
- endif()
- if(protobuf_generate_TARGET)
- target_sources(${protobuf_generate_TARGET} PRIVATE ${_generated_srcs_all})
- endif()
-endfunction()
-
-function(PROTOBUF_GENERATE_CPP SRCS HDRS)
- cmake_parse_arguments(protobuf_generate_cpp "" "EXPORT_MACRO;DESCRIPTORS" "" ${ARGN})
-
- set(_proto_files "${protobuf_generate_cpp_UNPARSED_ARGUMENTS}")
- if(NOT _proto_files)
- message(SEND_ERROR "Error: PROTOBUF_GENERATE_CPP() called without any proto files")
- return()
- endif()
-
- if(PROTOBUF_GENERATE_CPP_APPEND_PATH)
- set(_append_arg APPEND_PATH)
- endif()
-
- if(protobuf_generate_cpp_DESCRIPTORS)
- set(_descriptors DESCRIPTORS)
- endif()
-
- if(DEFINED PROTOBUF_IMPORT_DIRS AND NOT DEFINED Protobuf_IMPORT_DIRS)
- set(Protobuf_IMPORT_DIRS "${PROTOBUF_IMPORT_DIRS}")
- endif()
-
- if(DEFINED Protobuf_IMPORT_DIRS)
- set(_import_arg IMPORT_DIRS ${Protobuf_IMPORT_DIRS})
- endif()
-
- set(_outvar)
- protobuf_generate(${_append_arg} ${_descriptors} LANGUAGE cpp EXPORT_MACRO ${protobuf_generate_cpp_EXPORT_MACRO} OUT_VAR _outvar ${_import_arg} PROTOS ${_proto_files})
-
- set(${SRCS})
- set(${HDRS})
- if(protobuf_generate_cpp_DESCRIPTORS)
- set(${protobuf_generate_cpp_DESCRIPTORS})
- endif()
-
- foreach(_file ${_outvar})
- if(_file MATCHES "cc$")
- list(APPEND ${SRCS} ${_file})
- elseif(_file MATCHES "desc$")
- list(APPEND ${protobuf_generate_cpp_DESCRIPTORS} ${_file})
- else()
- list(APPEND ${HDRS} ${_file})
- endif()
- endforeach()
- set(${SRCS} ${${SRCS}} PARENT_SCOPE)
- set(${HDRS} ${${HDRS}} PARENT_SCOPE)
- if(protobuf_generate_cpp_DESCRIPTORS)
- set(${protobuf_generate_cpp_DESCRIPTORS} "${${protobuf_generate_cpp_DESCRIPTORS}}" PARENT_SCOPE)
- endif()
-endfunction()
-
-function(PROTOBUF_GENERATE_PYTHON SRCS)
- if(NOT ARGN)
- message(SEND_ERROR "Error: PROTOBUF_GENERATE_PYTHON() called without any proto files")
- return()
- endif()
-
- if(PROTOBUF_GENERATE_CPP_APPEND_PATH)
- set(_append_arg APPEND_PATH)
- endif()
-
- if(DEFINED PROTOBUF_IMPORT_DIRS AND NOT DEFINED Protobuf_IMPORT_DIRS)
- set(Protobuf_IMPORT_DIRS "${PROTOBUF_IMPORT_DIRS}")
- endif()
-
- if(DEFINED Protobuf_IMPORT_DIRS)
- set(_import_arg IMPORT_DIRS ${Protobuf_IMPORT_DIRS})
- endif()
-
- set(_outvar)
- protobuf_generate(${_append_arg} LANGUAGE python OUT_VAR _outvar ${_import_arg} PROTOS ${ARGN})
- set(${SRCS} ${_outvar} PARENT_SCOPE)
-endfunction()
-
-
-if(Protobuf_DEBUG)
- # Output some of their choices
- message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
- "Protobuf_USE_STATIC_LIBS = ${Protobuf_USE_STATIC_LIBS}")
-endif()
-
-
-# Backwards compatibility
-# Define camel case versions of input variables
-foreach(UPPER
- PROTOBUF_SRC_ROOT_FOLDER
- PROTOBUF_IMPORT_DIRS
- PROTOBUF_DEBUG
- PROTOBUF_LIBRARY
- PROTOBUF_PROTOC_LIBRARY
- PROTOBUF_INCLUDE_DIR
- PROTOBUF_PROTOC_EXECUTABLE
- PROTOBUF_LIBRARY_DEBUG
- PROTOBUF_PROTOC_LIBRARY_DEBUG
- PROTOBUF_LITE_LIBRARY
- PROTOBUF_LITE_LIBRARY_DEBUG
- )
- if (DEFINED ${UPPER})
- string(REPLACE "PROTOBUF_" "Protobuf_" Camel ${UPPER})
- if (NOT DEFINED ${Camel})
- set(${Camel} ${${UPPER}})
- endif()
- endif()
-endforeach()
-
-if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(_PROTOBUF_ARCH_DIR x64/)
-endif()
-
-
-# Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
-if( Protobuf_USE_STATIC_LIBS )
- set( _protobuf_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
- if(WIN32)
- set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
- else()
- set(CMAKE_FIND_LIBRARY_SUFFIXES .a )
- endif()
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
-
-# Internal function: search for normal library as well as a debug one
-# if the debug one is specified also include debug/optimized keywords
-# in *_LIBRARIES variable
-function(_protobuf_find_libraries name filename)
- if(${name}_LIBRARIES)
- # Use result recorded by a previous call.
- return()
- elseif(${name}_LIBRARY)
- # Honor cache entry used by CMake 3.5 and lower.
- set(${name}_LIBRARIES "${${name}_LIBRARY}" PARENT_SCOPE)
- else()
- find_library(${name}_LIBRARY_RELEASE
- NAMES ${filename}
- PATHS ${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Release)
- mark_as_advanced(${name}_LIBRARY_RELEASE)
-
- find_library(${name}_LIBRARY_DEBUG
- NAMES ${filename}d ${filename}
- PATHS ${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Debug)
- mark_as_advanced(${name}_LIBRARY_DEBUG)
-
- select_library_configurations(${name})
-
- if(UNIX AND Threads_FOUND)
- list(APPEND ${name}_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
- endif()
-
- set(${name}_LIBRARY "${${name}_LIBRARY}" PARENT_SCOPE)
- set(${name}_LIBRARIES "${${name}_LIBRARIES}" PARENT_SCOPE)
- endif()
-endfunction()
-
-#
-# Main.
-#
-
-# By default have PROTOBUF_GENERATE_CPP macro pass -I to protoc
-# for each directory where a proto file is referenced.
-if(NOT DEFINED PROTOBUF_GENERATE_CPP_APPEND_PATH)
- set(PROTOBUF_GENERATE_CPP_APPEND_PATH TRUE)
-endif()
-
-
-# Google's provided vcproj files generate libraries with a "lib"
-# prefix on Windows
-if(MSVC)
- set(Protobuf_ORIG_FIND_LIBRARY_PREFIXES "${CMAKE_FIND_LIBRARY_PREFIXES}")
- set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
-
- find_path(Protobuf_SRC_ROOT_FOLDER protobuf.pc.in)
-endif()
-
-if(UNIX)
- # Protobuf headers may depend on threading.
- find_package(Threads QUIET)
-endif()
-
-# The Protobuf library
-_protobuf_find_libraries(Protobuf protobuf)
-#DOC "The Google Protocol Buffers RELEASE Library"
-
-_protobuf_find_libraries(Protobuf_LITE protobuf-lite)
-
-# The Protobuf Protoc Library
-_protobuf_find_libraries(Protobuf_PROTOC protoc)
-
-# Restore original find library prefixes
-if(MSVC)
- set(CMAKE_FIND_LIBRARY_PREFIXES "${Protobuf_ORIG_FIND_LIBRARY_PREFIXES}")
-endif()
-
-# Find the include directory
-find_path(Protobuf_INCLUDE_DIR
- google/protobuf/service.h
- PATHS ${Protobuf_SRC_ROOT_FOLDER}/src
-)
-mark_as_advanced(Protobuf_INCLUDE_DIR)
-
-# Find the protoc Executable
-find_program(Protobuf_PROTOC_EXECUTABLE
- NAMES protoc
- DOC "The Google Protocol Buffers Compiler"
- PATHS
- ${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Release
- ${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Debug
-)
-mark_as_advanced(Protobuf_PROTOC_EXECUTABLE)
-
-if(Protobuf_DEBUG)
- message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
- "requested version of Google Protobuf is ${Protobuf_FIND_VERSION}")
-endif()
-
-if(Protobuf_INCLUDE_DIR)
- set(_PROTOBUF_COMMON_HEADER ${Protobuf_INCLUDE_DIR}/google/protobuf/stubs/common.h)
-
- if(Protobuf_DEBUG)
- message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
- "location of common.h: ${_PROTOBUF_COMMON_HEADER}")
- endif()
-
- set(Protobuf_VERSION "")
- set(Protobuf_LIB_VERSION "")
- file(STRINGS ${_PROTOBUF_COMMON_HEADER} _PROTOBUF_COMMON_H_CONTENTS REGEX "#define[ \t]+GOOGLE_PROTOBUF_VERSION[ \t]+")
- if(_PROTOBUF_COMMON_H_CONTENTS MATCHES "#define[ \t]+GOOGLE_PROTOBUF_VERSION[ \t]+([0-9]+)")
- set(Protobuf_LIB_VERSION "${CMAKE_MATCH_1}")
- endif()
- unset(_PROTOBUF_COMMON_H_CONTENTS)
-
- math(EXPR _PROTOBUF_MAJOR_VERSION "${Protobuf_LIB_VERSION} / 1000000")
- math(EXPR _PROTOBUF_MINOR_VERSION "${Protobuf_LIB_VERSION} / 1000 % 1000")
- math(EXPR _PROTOBUF_SUBMINOR_VERSION "${Protobuf_LIB_VERSION} % 1000")
- set(Protobuf_VERSION "${_PROTOBUF_MAJOR_VERSION}.${_PROTOBUF_MINOR_VERSION}.${_PROTOBUF_SUBMINOR_VERSION}")
-
- if(Protobuf_DEBUG)
- message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
- "${_PROTOBUF_COMMON_HEADER} reveals protobuf ${Protobuf_VERSION}")
- endif()
-
- # Check Protobuf compiler version to be aligned with libraries version
- execute_process(COMMAND ${Protobuf_PROTOC_EXECUTABLE} --version
- OUTPUT_VARIABLE _PROTOBUF_PROTOC_EXECUTABLE_VERSION)
-
- if("${_PROTOBUF_PROTOC_EXECUTABLE_VERSION}" MATCHES "libprotoc ([0-9.]+)")
- set(_PROTOBUF_PROTOC_EXECUTABLE_VERSION "${CMAKE_MATCH_1}")
- endif()
-
- if(Protobuf_DEBUG)
- message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
- "${Protobuf_PROTOC_EXECUTABLE} reveals version ${_PROTOBUF_PROTOC_EXECUTABLE_VERSION}")
- endif()
-
- if(NOT "${_PROTOBUF_PROTOC_EXECUTABLE_VERSION}" VERSION_EQUAL "${Protobuf_VERSION}")
- message(WARNING "Protobuf compiler version ${_PROTOBUF_PROTOC_EXECUTABLE_VERSION}"
- " doesn't match library version ${Protobuf_VERSION}")
- endif()
-
- if(Protobuf_LIBRARY)
- if(NOT TARGET protobuf::libprotobuf)
- add_library(protobuf::libprotobuf UNKNOWN IMPORTED)
- set_target_properties(protobuf::libprotobuf PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${Protobuf_INCLUDE_DIR}")
- if(EXISTS "${Protobuf_LIBRARY}")
- set_target_properties(protobuf::libprotobuf PROPERTIES
- IMPORTED_LOCATION "${Protobuf_LIBRARY}")
- endif()
- if(EXISTS "${Protobuf_LIBRARY_RELEASE}")
- set_property(TARGET protobuf::libprotobuf APPEND PROPERTY
- IMPORTED_CONFIGURATIONS RELEASE)
- set_target_properties(protobuf::libprotobuf PROPERTIES
- IMPORTED_LOCATION_RELEASE "${Protobuf_LIBRARY_RELEASE}")
- endif()
- if(EXISTS "${Protobuf_LIBRARY_DEBUG}")
- set_property(TARGET protobuf::libprotobuf APPEND PROPERTY
- IMPORTED_CONFIGURATIONS DEBUG)
- set_target_properties(protobuf::libprotobuf PROPERTIES
- IMPORTED_LOCATION_DEBUG "${Protobuf_LIBRARY_DEBUG}")
- endif()
- if (Protobuf_VERSION VERSION_GREATER_EQUAL "3.6")
- set_property(TARGET protobuf::libprotobuf APPEND PROPERTY
- INTERFACE_COMPILE_FEATURES cxx_std_11
- )
- endif()
- if (MSVC AND NOT Protobuf_USE_STATIC_LIBS)
- set_property(TARGET protobuf::libprotobuf APPEND PROPERTY
- INTERFACE_COMPILE_DEFINITIONS "PROTOBUF_USE_DLLS"
- )
- endif()
- if(UNIX AND TARGET Threads::Threads)
- set_property(TARGET protobuf::libprotobuf APPEND PROPERTY
- INTERFACE_LINK_LIBRARIES Threads::Threads)
- endif()
- endif()
- endif()
-
- if(Protobuf_LITE_LIBRARY)
- if(NOT TARGET protobuf::libprotobuf-lite)
- add_library(protobuf::libprotobuf-lite UNKNOWN IMPORTED)
- set_target_properties(protobuf::libprotobuf-lite PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${Protobuf_INCLUDE_DIR}")
- if(EXISTS "${Protobuf_LITE_LIBRARY}")
- set_target_properties(protobuf::libprotobuf-lite PROPERTIES
- IMPORTED_LOCATION "${Protobuf_LITE_LIBRARY}")
- endif()
- if(EXISTS "${Protobuf_LITE_LIBRARY_RELEASE}")
- set_property(TARGET protobuf::libprotobuf-lite APPEND PROPERTY
- IMPORTED_CONFIGURATIONS RELEASE)
- set_target_properties(protobuf::libprotobuf-lite PROPERTIES
- IMPORTED_LOCATION_RELEASE "${Protobuf_LITE_LIBRARY_RELEASE}")
- endif()
- if(EXISTS "${Protobuf_LITE_LIBRARY_DEBUG}")
- set_property(TARGET protobuf::libprotobuf-lite APPEND PROPERTY
- IMPORTED_CONFIGURATIONS DEBUG)
- set_target_properties(protobuf::libprotobuf-lite PROPERTIES
- IMPORTED_LOCATION_DEBUG "${Protobuf_LITE_LIBRARY_DEBUG}")
- endif()
- if (MSVC AND NOT Protobuf_USE_STATIC_LIBS)
- set_property(TARGET protobuf::libprotobuf-lite APPEND PROPERTY
- INTERFACE_COMPILE_DEFINITIONS "PROTOBUF_USE_DLLS"
- )
- endif()
- if(UNIX AND TARGET Threads::Threads)
- set_property(TARGET protobuf::libprotobuf-lite APPEND PROPERTY
- INTERFACE_LINK_LIBRARIES Threads::Threads)
- endif()
- endif()
- endif()
-
- if(Protobuf_PROTOC_LIBRARY)
- if(NOT TARGET protobuf::libprotoc)
- add_library(protobuf::libprotoc UNKNOWN IMPORTED)
- set_target_properties(protobuf::libprotoc PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${Protobuf_INCLUDE_DIR}")
- if(EXISTS "${Protobuf_PROTOC_LIBRARY}")
- set_target_properties(protobuf::libprotoc PROPERTIES
- IMPORTED_LOCATION "${Protobuf_PROTOC_LIBRARY}")
- endif()
- if(EXISTS "${Protobuf_PROTOC_LIBRARY_RELEASE}")
- set_property(TARGET protobuf::libprotoc APPEND PROPERTY
- IMPORTED_CONFIGURATIONS RELEASE)
- set_target_properties(protobuf::libprotoc PROPERTIES
- IMPORTED_LOCATION_RELEASE "${Protobuf_PROTOC_LIBRARY_RELEASE}")
- endif()
- if(EXISTS "${Protobuf_PROTOC_LIBRARY_DEBUG}")
- set_property(TARGET protobuf::libprotoc APPEND PROPERTY
- IMPORTED_CONFIGURATIONS DEBUG)
- set_target_properties(protobuf::libprotoc PROPERTIES
- IMPORTED_LOCATION_DEBUG "${Protobuf_PROTOC_LIBRARY_DEBUG}")
- endif()
- if (Protobuf_VERSION VERSION_GREATER_EQUAL "3.6")
- set_property(TARGET protobuf::libprotoc APPEND PROPERTY
- INTERFACE_COMPILE_FEATURES cxx_std_11
- )
- endif()
- if (MSVC AND NOT Protobuf_USE_STATIC_LIBS)
- set_property(TARGET protobuf::libprotoc APPEND PROPERTY
- INTERFACE_COMPILE_DEFINITIONS "PROTOBUF_USE_DLLS"
- )
- endif()
- if(UNIX AND TARGET Threads::Threads)
- set_property(TARGET protobuf::libprotoc APPEND PROPERTY
- INTERFACE_LINK_LIBRARIES Threads::Threads)
- endif()
- endif()
- endif()
-
- if(Protobuf_PROTOC_EXECUTABLE)
- if(NOT TARGET protobuf::protoc)
- add_executable(protobuf::protoc IMPORTED)
- if(EXISTS "${Protobuf_PROTOC_EXECUTABLE}")
- set_target_properties(protobuf::protoc PROPERTIES
- IMPORTED_LOCATION "${Protobuf_PROTOC_EXECUTABLE}")
- endif()
- endif()
- endif()
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Protobuf
- REQUIRED_VARS Protobuf_LIBRARIES Protobuf_INCLUDE_DIR
- VERSION_VAR Protobuf_VERSION
-)
-
-if(Protobuf_FOUND)
- set(Protobuf_INCLUDE_DIRS ${Protobuf_INCLUDE_DIR})
-endif()
-
-# Restore the original find library ordering
-if( Protobuf_USE_STATIC_LIBS )
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_protobuf_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
-endif()
-
-# Backwards compatibility
-# Define upper case versions of output variables
-foreach(Camel
- Protobuf_SRC_ROOT_FOLDER
- Protobuf_IMPORT_DIRS
- Protobuf_DEBUG
- Protobuf_INCLUDE_DIRS
- Protobuf_LIBRARIES
- Protobuf_PROTOC_LIBRARIES
- Protobuf_LITE_LIBRARIES
- Protobuf_LIBRARY
- Protobuf_PROTOC_LIBRARY
- Protobuf_INCLUDE_DIR
- Protobuf_PROTOC_EXECUTABLE
- Protobuf_LIBRARY_DEBUG
- Protobuf_PROTOC_LIBRARY_DEBUG
- Protobuf_LITE_LIBRARY
- Protobuf_LITE_LIBRARY_DEBUG
- )
- string(TOUPPER ${Camel} UPPER)
- set(${UPPER} ${${Camel}})
-endforeach()
diff --git a/share/cmake-3.16/Modules/FindPython.cmake b/share/cmake-3.16/Modules/FindPython.cmake
deleted file mode 100644
index 2bdfaf3..0000000
--- a/share/cmake-3.16/Modules/FindPython.cmake
+++ /dev/null
@@ -1,359 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindPython
-----------
-
-Find Python interpreter, compiler and development environment (include
-directories and libraries).
-
-The following components are supported:
-
-* ``Interpreter``: search for Python interpreter.
-* ``Compiler``: search for Python compiler. Only offered by IronPython.
-* ``Development``: search for development artifacts (include directories and
- libraries).
-* ``NumPy``: search for NumPy include directories.
-
-If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
-
-To ensure consistent versions between components ``Interpreter``, ``Compiler``,
-``Development`` and ``NumPy``, specify all components at the same time::
-
- find_package (Python COMPONENTS Interpreter Development)
-
-This module looks preferably for version 3 of Python. If not found, version 2
-is searched.
-To manage concurrent versions 3 and 2 of Python, use :module:`FindPython3` and
-:module:`FindPython2` modules rather than this one.
-
-.. note::
-
- If components ``Interpreter`` and ``Development`` are both specified, this
- module search only for interpreter with same platform architecture as the one
- defined by ``CMake`` configuration. This contraint does not apply if only
- ``Interpreter`` component is specified.
-
-Imported Targets
-^^^^^^^^^^^^^^^^
-
-This module defines the following :ref:`Imported Targets <Imported Targets>`
-(when :prop_gbl:`CMAKE_ROLE` is ``PROJECT``):
-
-``Python::Interpreter``
- Python interpreter. Target defined if component ``Interpreter`` is found.
-``Python::Compiler``
- Python compiler. Target defined if component ``Compiler`` is found.
-``Python::Python``
- Python library for Python embedding. Target defined if component
- ``Development`` is found.
-``Python::Module``
- Python library for Python module. Target defined if component ``Development``
- is found.
-``Python::NumPy``
- NumPy Python library. Target defined if component ``NumPy`` is found.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module will set the following variables in your project
-(see :ref:`Standard Variable Names <CMake Developer Standard Variable Names>`):
-
-``Python_FOUND``
- System has the Python requested components.
-``Python_Interpreter_FOUND``
- System has the Python interpreter.
-``Python_EXECUTABLE``
- Path to the Python interpreter.
-``Python_INTERPRETER_ID``
- A short string unique to the interpreter. Possible values include:
- * Python
- * ActivePython
- * Anaconda
- * Canopy
- * IronPython
-``Python_STDLIB``
- Standard platform independent installation directory.
-
- Information returned by
- ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``.
-``Python_STDARCH``
- Standard platform dependent installation directory.
-
- Information returned by
- ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``.
-``Python_SITELIB``
- Third-party platform independent installation directory.
-
- Information returned by
- ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``.
-``Python_SITEARCH``
- Third-party platform dependent installation directory.
-
- Information returned by
- ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``.
-``Python_Compiler_FOUND``
- System has the Python compiler.
-``Python_COMPILER``
- Path to the Python compiler. Only offered by IronPython.
-``Python_COMPILER_ID``
- A short string unique to the compiler. Possible values include:
- * IronPython
-``Python_Development_FOUND``
- System has the Python development artifacts.
-``Python_INCLUDE_DIRS``
- The Python include directories.
-``Python_LIBRARIES``
- The Python libraries.
-``Python_LIBRARY_DIRS``
- The Python library directories.
-``Python_RUNTIME_LIBRARY_DIRS``
- The Python runtime library directories.
-``Python_VERSION``
- Python version.
-``Python_VERSION_MAJOR``
- Python major version.
-``Python_VERSION_MINOR``
- Python minor version.
-``Python_VERSION_PATCH``
- Python patch version.
-``Python_NumPy_FOUND``
- System has the NumPy.
-``Python_NumPy_INCLUDE_DIRS``
- The NumPy include directries.
-``Python_NumPy_VERSION``
- The NumPy version.
-
-Hints
-^^^^^
-
-``Python_ROOT_DIR``
- Define the root directory of a Python installation.
-
-``Python_USE_STATIC_LIBS``
- * If not defined, search for shared libraries and static libraries in that
- order.
- * If set to TRUE, search **only** for static libraries.
- * If set to FALSE, search **only** for shared libraries.
-
-``Python_FIND_ABI``
- This variable defines which ABIs, as defined in
- `PEP 3149 <https://www.python.org/dev/peps/pep-3149/>`_, should be searched.
-
- .. note::
-
- This hint will be honored only when searched for ``Python`` version 3.
-
- .. note::
-
- If ``Python_FIND_ABI`` is not defined, any ABI will be searched.
-
- The ``Python_FIND_ABI`` variable is a 3-tuple specifying, in that order,
- ``pydebug`` (``d``), ``pymalloc`` (``m``) and ``unicode`` (``u``) flags.
- Each element can be set to one of the following:
-
- * ``ON``: Corresponding flag is selected.
- * ``OFF``: Corresponding flag is not selected.
- * ``ANY``: The two posibilties (``ON`` and ``OFF``) will be searched.
-
- From this 3-tuple, various ABIs will be searched starting from the most
- specialized to the most general. Moreover, ``debug`` versions will be
- searched **after** ``non-debug`` ones.
-
- For example, if we have::
-
- set (Python_FIND_ABI "ON" "ANY" "ANY")
-
- The following flags combinations will be appended, in that order, to the
- artifact names: ``dmu``, ``dm``, ``du``, and ``d``.
-
- And to search any possible ABIs::
-
- set (Python_FIND_ABI "ANY" "ANY" "ANY")
-
- The following combinations, in that order, will be used: ``mu``, ``m``,
- ``u``, ``<empty>``, ``dmu``, ``dm``, ``du`` and ``d``.
-
- .. note::
-
- This hint is useful only on ``POSIX`` systems. So, on ``Windows`` systems,
- when ``Python_FIND_ABI`` is defined, ``Python`` distributions from
- `python.org <https://www.python.org/>`_ will be found only if value for
- each flag is ``OFF`` or ``ANY``.
-
-``Python_FIND_STRATEGY``
- This variable defines how lookup will be done.
- The ``Python_FIND_STRATEGY`` variable can be set to empty or one of the
- following:
-
- * ``VERSION``: Try to find the most recent version in all specified
- locations.
- This is the default if policy :policy:`CMP0094` is undefined or set to
- ``OLD``.
- * ``LOCATION``: Stops lookup as soon as a version satisfying version
- constraints is founded.
- This is the default if policy :policy:`CMP0094` is set to ``NEW``.
-
-``Python_FIND_REGISTRY``
- On Windows the ``Python_FIND_REGISTRY`` variable determine the order
- of preference between registry and environment variables.
- the ``Python_FIND_REGISTRY`` variable can be set to empty or one of the
- following:
-
- * ``FIRST``: Try to use registry before environment variables.
- This is the default.
- * ``LAST``: Try to use registry after environment variables.
- * ``NEVER``: Never try to use registry.
-
-``Python_FIND_FRAMEWORK``
- On macOS the ``Python_FIND_FRAMEWORK`` variable determine the order of
- preference between Apple-style and unix-style package components.
- This variable can be set to empty or take same values as
- :variable:`CMAKE_FIND_FRAMEWORK` variable.
-
- .. note::
-
- Value ``ONLY`` is not supported so ``FIRST`` will be used instead.
-
- If ``Python_FIND_FRAMEWORK`` is not defined, :variable:`CMAKE_FIND_FRAMEWORK`
- variable will be used, if any.
-
-``Python_FIND_VIRTUALENV``
- This variable defines the handling of virtual environments. It is meaningfull
- only when a virtual environment is active (i.e. the ``activate`` script has
- been evaluated). In this case, it takes precedence over
- ``Python_FIND_REGISTRY`` and ``CMAKE_FIND_FRAMEWORK`` variables.
- The ``Python_FIND_VIRTUALENV`` variable can be set to empty or one of the
- following:
-
- * ``FIRST``: The virtual environment is used before any other standard
- paths to look-up for the interpreter. This is the default.
- * ``ONLY``: Only the virtual environment is used to look-up for the
- interpreter.
- * ``STANDARD``: The virtual environment is not used to look-up for the
- interpreter. In this case, variable ``Python_FIND_REGISTRY`` (Windows)
- or ``CMAKE_FIND_FRAMEWORK`` (macOS) can be set with value ``LAST`` or
- ``NEVER`` to select preferably the interpreter from the virtual
- environment.
-
- .. note::
-
- If the component ``Development`` is requested, it is **strongly**
- recommended to also include the component ``Interpreter`` to get expected
- result.
-
-Artifacts Specification
-^^^^^^^^^^^^^^^^^^^^^^^
-
-To solve special cases, it is possible to specify directly the artifacts by
-setting the following variables:
-
-``Python_EXECUTABLE``
- The path to the interpreter.
-
-``Python_COMPILER``
- The path to the compiler.
-
-``Python_LIBRARY``
- The path to the library. It will be used to compute the
- variables ``Python_LIBRARIES``, ``Python_LIBRAY_DIRS`` and
- ``Python_RUNTIME_LIBRARY_DIRS``.
-
-``Python_INCLUDE_DIR``
- The path to the directory of the ``Python`` headers. It will be used to
- compute the variable ``Python_INCLUDE_DIRS``.
-
-``Python_NumPy_INCLUDE_DIR``
- The path to the directory of the ``NumPy`` headers. It will be used to
- compute the variable ``Python_NumPy_INCLUDE_DIRS``.
-
-.. note::
-
- All paths must be absolute. Any artifact specified with a relative path
- will be ignored.
-
-.. note::
-
- When an artifact is specified, all ``HINTS`` will be ignored and no search
- will be performed for this artifact.
-
- If more than one artifact is specified, it is the user's responsability to
- ensure the consistency of the various artifacts.
-
-Commands
-^^^^^^^^
-
-This module defines the command ``Python_add_library`` (when
-:prop_gbl:`CMAKE_ROLE` is ``PROJECT``), which has the same semantics as
-:command:`add_library` and adds a dependency to target ``Python::Python`` or,
-when library type is ``MODULE``, to target ``Python::Module`` and takes care of
-Python module naming rules::
-
- Python_add_library (my_module MODULE src1.cpp)
-
-If library type is not specified, ``MODULE`` is assumed.
-#]=======================================================================]
-
-
-set (_PYTHON_PREFIX Python)
-
-if (DEFINED Python_FIND_VERSION)
- set (_Python_REQUIRED_VERSION_MAJOR ${Python_FIND_VERSION_MAJOR})
-
- include (${CMAKE_CURRENT_LIST_DIR}/FindPython/Support.cmake)
-else()
- # iterate over versions in quiet and NOT required modes to avoid multiple
- # "Found" messages and prematurally failure.
- set (_Python_QUIETLY ${Python_FIND_QUIETLY})
- set (_Python_REQUIRED ${Python_FIND_REQUIRED})
- set (Python_FIND_QUIETLY TRUE)
- set (Python_FIND_REQUIRED FALSE)
-
- set (_Python_REQUIRED_VERSIONS 3 2)
- set (_Python_REQUIRED_VERSION_LAST 2)
-
- unset (_Python_INPUT_VARS)
- foreach (_Python_ITEM IN ITEMS Python_EXECUTABLE Python_COMPILER Python_LIBRARY
- Python_INCLUDE_DIR Python_NumPy_INCLUDE_DIR)
- if (NOT DEFINED ${_Python_ITEM})
- list (APPEND _Python_INPUT_VARS ${_Python_ITEM})
- endif()
- endforeach()
-
- foreach (_Python_REQUIRED_VERSION_MAJOR IN LISTS _Python_REQUIRED_VERSIONS)
- set (Python_FIND_VERSION ${_Python_REQUIRED_VERSION_MAJOR})
- include (${CMAKE_CURRENT_LIST_DIR}/FindPython/Support.cmake)
- if (Python_FOUND OR
- _Python_REQUIRED_VERSION_MAJOR EQUAL _Python_REQUIRED_VERSION_LAST)
- break()
- endif()
- # clean-up INPUT variables not set by the user
- foreach (_Python_ITEM IN LISTS _Python_INPUT_VARS)
- unset (${_Python_ITEM})
- endforeach()
- # clean-up some CACHE variables to ensure look-up restart from scratch
- foreach (_Python_ITEM IN LISTS _Python_CACHED_VARS)
- unset (${_Python_ITEM} CACHE)
- endforeach()
- endforeach()
-
- unset (Python_FIND_VERSION)
-
- set (Python_FIND_QUIETLY ${_Python_QUIETLY})
- set (Python_FIND_REQUIRED ${_Python_REQUIRED})
- if (Python_FIND_REQUIRED OR NOT Python_FIND_QUIETLY)
- # call again validation command to get "Found" or error message
- find_package_handle_standard_args (Python HANDLE_COMPONENTS
- REQUIRED_VARS ${_Python_REQUIRED_VARS}
- VERSION_VAR Python_VERSION)
- endif()
-endif()
-
-if (COMMAND __Python_add_library)
- macro (Python_add_library)
- __Python_add_library (Python ${ARGV})
- endmacro()
-endif()
-
-unset (_PYTHON_PREFIX)
diff --git a/share/cmake-3.16/Modules/FindPython/Support.cmake b/share/cmake-3.16/Modules/FindPython/Support.cmake
deleted file mode 100644
index 219a885..0000000
--- a/share/cmake-3.16/Modules/FindPython/Support.cmake
+++ /dev/null
@@ -1,2384 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#
-# This file is a "template" file used by various FindPython modules.
-#
-
-cmake_policy (GET CMP0094 _${_PYTHON_PREFIX}_LOOKUP_POLICY)
-
-cmake_policy (VERSION 3.7)
-
-if (_${_PYTHON_PREFIX}_LOOKUP_POLICY)
- cmake_policy (SET CMP0094 ${_${_PYTHON_PREFIX}_LOOKUP_POLICY})
-endif()
-
-#
-# Initial configuration
-#
-if (NOT DEFINED _PYTHON_PREFIX)
- message (FATAL_ERROR "FindPython: INTERNAL ERROR")
-endif()
-if (NOT DEFINED _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
- message (FATAL_ERROR "FindPython: INTERNAL ERROR")
-endif()
-if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL 3)
- set(_${_PYTHON_PREFIX}_VERSIONS 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
-elseif (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL 2)
- set(_${_PYTHON_PREFIX}_VERSIONS 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0)
-else()
- message (FATAL_ERROR "FindPython: INTERNAL ERROR")
-endif()
-
-get_property(_${_PYTHON_PREFIX}_CMAKE_ROLE GLOBAL PROPERTY CMAKE_ROLE)
-
-
-#
-# helper commands
-#
-macro (_PYTHON_DISPLAY_FAILURE _PYTHON_MSG)
- if (${_PYTHON_PREFIX}_FIND_REQUIRED)
- message (FATAL_ERROR "${_PYTHON_MSG}")
- else()
- if (NOT ${_PYTHON_PREFIX}_FIND_QUIETLY)
- message(STATUS "${_PYTHON_MSG}")
- endif ()
- endif()
-
- set (${_PYTHON_PREFIX}_FOUND FALSE)
- string (TOUPPER "${_PYTHON_PREFIX}" _${_PYTHON_PREFIX}_UPPER_PREFIX)
- set (${_PYTHON_UPPER_PREFIX}_FOUND FALSE)
- return()
-endmacro()
-
-
-macro (_PYTHON_FIND_FRAMEWORKS)
- set (${_PYTHON_PREFIX}_FRAMEWORKS)
- if (CMAKE_HOST_APPLE OR APPLE)
- set (_pff_frameworks ${CMAKE_FRAMEWORK_PATH}
- $ENV{CMAKE_FRAMEWORK_PATH}
- ~/Library/Frameworks
- /usr/local/Frameworks
- ${CMAKE_SYSTEM_FRAMEWORK_PATH})
- list (REMOVE_DUPLICATES _pff_frameworks)
- foreach (_pff_framework IN LISTS _pff_frameworks)
- if (EXISTS ${_pff_framework}/Python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}.framework)
- list (APPEND ${_PYTHON_PREFIX}_FRAMEWORKS ${_pff_framework}/Python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}.framework)
- endif()
- if (EXISTS ${_pff_framework}/Python.framework)
- list (APPEND ${_PYTHON_PREFIX}_FRAMEWORKS ${_pff_framework}/Python.framework)
- endif()
- endforeach()
- unset (_pff_frameworks)
- unset (_pff_framework)
- endif()
-endmacro()
-
-function (_PYTHON_GET_FRAMEWORKS _PYTHON_PGF_FRAMEWORK_PATHS _PYTHON_VERSION)
- set (_PYTHON_FRAMEWORK_PATHS)
- foreach (_PYTHON_FRAMEWORK IN LISTS ${_PYTHON_PREFIX}_FRAMEWORKS)
- list (APPEND _PYTHON_FRAMEWORK_PATHS
- "${_PYTHON_FRAMEWORK}/Versions/${_PYTHON_VERSION}")
- endforeach()
- set (${_PYTHON_PGF_FRAMEWORK_PATHS} ${_PYTHON_FRAMEWORK_PATHS} PARENT_SCOPE)
-endfunction()
-
-function (_PYTHON_GET_REGISTRIES _PYTHON_PGR_REGISTRY_PATHS _PYTHON_VERSION)
- string (REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${_PYTHON_VERSION})
- set (${_PYTHON_PGR_REGISTRY_PATHS}
- [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
- [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
- [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}\\InstallPath]
- [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_PYTHON_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
- [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_PYTHON_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}\\InstallPath]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_PYTHON_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_PYTHON_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
- PARENT_SCOPE)
-endfunction()
-
-
-function (_PYTHON_GET_ABIFLAGS _PGABIFLAGS)
- set (abiflags)
- list (GET _${_PYTHON_PREFIX}_FIND_ABI 0 pydebug)
- list (GET _${_PYTHON_PREFIX}_FIND_ABI 1 pymalloc)
- list (GET _${_PYTHON_PREFIX}_FIND_ABI 2 unicode)
-
- if (pymalloc STREQUAL "ANY" AND unicode STREQUAL "ANY")
- set (abiflags "mu" "m" "u" "")
- elseif (pymalloc STREQUAL "ANY" AND unicode STREQUAL "ON")
- set (abiflags "mu" "u")
- elseif (pymalloc STREQUAL "ANY" AND unicode STREQUAL "OFF")
- set (abiflags "m" "")
- elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "ANY")
- set (abiflags "mu" "m")
- elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "ON")
- set (abiflags "mu")
- elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "OFF")
- set (abiflags "m")
- elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "ANY")
- set (abiflags "u" "")
- elseif (pymalloc STREQUAL "OFF" AND unicode STREQUAL "ON")
- set (abiflags "u")
- endif()
-
- if (pydebug STREQUAL "ON")
- if (abiflags)
- list (TRANSFORM abiflags PREPEND "d")
- else()
- set (abiflags "d")
- endif()
- elseif (pydebug STREQUAL "ANY")
- if (abiflags)
- set (flags "${abiflags}")
- list (TRANSFORM flags PREPEND "d")
- list (APPEND abiflags "${flags}")
- else()
- set (abiflags "" "d")
- endif()
- endif()
-
- set (${_PGABIFLAGS} "${abiflags}" PARENT_SCOPE)
-endfunction()
-
-function (_PYTHON_GET_PATH_SUFFIXES _PYTHON_PGPS_PATH_SUFFIXES)
- cmake_parse_arguments (PARSE_ARGV 1 _PGPS "LIBRARY;INCLUDE" "VERSION" "")
-
- if (DEFINED _${_PYTHON_PREFIX}_ABIFLAGS)
- set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}")
- else()
- set (abi "mu" "m" "u" "")
- endif()
-
- set (path_suffixes)
- if (_PGPS_LIBRARY)
- if (CMAKE_LIBRARY_ARCHITECTURE)
- list (APPEND path_suffixes lib/${CMAKE_LIBRARY_ARCHITECTURE})
- endif()
- list (APPEND path_suffixes lib libs)
-
- if (CMAKE_LIBRARY_ARCHITECTURE)
- set (suffixes "${abi}")
- if (suffixes)
- list (TRANSFORM suffixes PREPEND "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}")
- list (TRANSFORM suffixes APPEND "-${CMAKE_LIBRARY_ARCHITECTURE}")
- else()
- set (suffixes "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}-${CMAKE_LIBRARY_ARCHITECTURE}")
- endif()
- list (APPEND path_suffixes ${suffixes})
- endif()
- set (suffixes "${abi}")
- if (suffixes)
- list (TRANSFORM suffixes PREPEND "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}")
- else()
- set (suffixes "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}")
- endif()
- list (APPEND path_suffixes ${suffixes})
- elseif (_PGPS_INCLUDE)
- set (suffixes "${abi}")
- if (suffixes)
- list (TRANSFORM suffixes PREPEND "include/python${_PGPS_VERSION}")
- else()
- set (suffixes "include/python${_PGPS_VERSION}")
- endif()
- list (APPEND path_suffixes ${suffixes} include)
- endif()
-
- set (${_PYTHON_PGPS_PATH_SUFFIXES} ${path_suffixes} PARENT_SCOPE)
-endfunction()
-
-function (_PYTHON_GET_NAMES _PYTHON_PGN_NAMES)
- cmake_parse_arguments (PARSE_ARGV 1 _PGN "POSIX;EXECUTABLE;CONFIG;LIBRARY;WIN32;DEBUG" "VERSION" "")
-
- set (names)
-
- if (_PGN_WIN32)
- string (REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${_PGN_VERSION})
-
- set (name python${_PYTHON_VERSION_NO_DOTS})
- if (_PGN_DEBUG)
- string (APPEND name "_d")
- endif()
-
- list (APPEND names "${name}")
- endif()
-
- if (_PGN_POSIX)
- if (DEFINED _${_PYTHON_PREFIX}_ABIFLAGS)
- set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}")
- else()
- if (_PGN_EXECUTABLE OR _PGN_CONFIG)
- set (abi "")
- else()
- set (abi "mu" "m" "u" "")
- endif()
- endif()
-
- if (abi)
- if (_PGN_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
- set (abinames "${abi}")
- list (TRANSFORM abinames PREPEND "${CMAKE_LIBRARY_ARCHITECTURE}-python${_PGN_VERSION}")
- list (TRANSFORM abinames APPEND "-config")
- list (APPEND names ${abinames})
- endif()
- set (abinames "${abi}")
- list (TRANSFORM abinames PREPEND "python${_PGN_VERSION}")
- if (_PGN_CONFIG)
- list (TRANSFORM abinames APPEND "-config")
- endif()
- list (APPEND names ${abinames})
- else()
- if (_PGN_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
- set (abinames "${CMAKE_LIBRARY_ARCHITECTURE}-python${_PGN_VERSION}")
- endif()
- list (APPEND abinames "python${_PGN_VERSION}")
- if (_PGN_CONFIG)
- list (TRANSFORM abinames APPEND "-config")
- endif()
- list (APPEND names ${abinames})
- endif()
- endif()
-
- set (${_PYTHON_PGN_NAMES} ${names} PARENT_SCOPE)
-endfunction()
-
-function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME)
- unset (${_PYTHON_PGCV_VALUE} PARENT_SCOPE)
-
- if (NOT NAME MATCHES "^(PREFIX|ABIFLAGS|CONFIGDIR|INCLUDES|LIBS)$")
- return()
- endif()
-
- if (_${_PYTHON_PREFIX}_CONFIG)
- set (config_flag "--${NAME}")
- string (TOLOWER "${config_flag}" config_flag)
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" ${config_flag}
- RESULT_VARIABLE _result
- OUTPUT_VARIABLE _values
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (_result)
- unset (_values)
- else()
- if (NAME STREQUAL "INCLUDES")
- # do some clean-up
- string (REGEX MATCHALL "(-I|-iwithsysroot)[ ]*[^ ]+" _values "${_values}")
- string (REGEX REPLACE "(-I|-iwithsysroot)[ ]*" "" _values "${_values}")
- list (REMOVE_DUPLICATES _values)
- endif()
- endif()
- endif()
-
- if (_${_PYTHON_PREFIX}_EXECUTABLE AND NOT CMAKE_CROSSCOMPILING)
- if (NAME STREQUAL "PREFIX")
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig; sys.stdout.write(';'.join([sysconfig.PREFIX,sysconfig.EXEC_PREFIX,sysconfig.BASE_EXEC_PREFIX]))"
- RESULT_VARIABLE _result
- OUTPUT_VARIABLE _values
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (_result)
- unset (_values)
- else()
- list (REMOVE_DUPLICATES _values)
- endif()
- elseif (NAME STREQUAL "INCLUDES")
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig; sys.stdout.write(';'.join([sysconfig.get_python_inc(plat_specific=True),sysconfig.get_python_inc(plat_specific=False)]))"
- RESULT_VARIABLE _result
- OUTPUT_VARIABLE _values
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (_result)
- unset (_values)
- endif()
- else()
- set (config_flag "${NAME}")
- if (NAME STREQUAL "CONFIGDIR")
- set (config_flag "LIBPL")
- endif()
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_config_var('${config_flag}'))"
- RESULT_VARIABLE _result
- OUTPUT_VARIABLE _values
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (_result)
- unset (_values)
- endif()
- endif()
- endif()
-
- if (config_flag STREQUAL "ABIFLAGS")
- set (${_PYTHON_PGCV_VALUE} "${_values}" PARENT_SCOPE)
- return()
- endif()
-
- if (NOT _values OR _values STREQUAL "None")
- return()
- endif()
-
- if (NAME STREQUAL "LIBS")
- # do some clean-up
- string (REGEX MATCHALL "-(l|framework)[ ]*[^ ]+" _values "${_values}")
- # remove elements relative to python library itself
- list (FILTER _values EXCLUDE REGEX "-lpython")
- list (REMOVE_DUPLICATES _values)
- endif()
-
- set (${_PYTHON_PGCV_VALUE} "${_values}" PARENT_SCOPE)
-endfunction()
-
-function (_PYTHON_GET_VERSION)
- cmake_parse_arguments (PARSE_ARGV 0 _PGV "LIBRARY;INCLUDE" "PREFIX" "")
-
- unset (${_PGV_PREFIX}VERSION PARENT_SCOPE)
- unset (${_PGV_PREFIX}VERSION_MAJOR PARENT_SCOPE)
- unset (${_PGV_PREFIX}VERSION_MINOR PARENT_SCOPE)
- unset (${_PGV_PREFIX}VERSION_PATCH PARENT_SCOPE)
- unset (${_PGV_PREFIX}ABI PARENT_SCOPE)
-
- if (_PGV_LIBRARY)
- # retrieve version and abi from library name
- if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
- # extract version from library name
- if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "python([23])([0-9]+)")
- set (${_PGV_PREFIX}VERSION_MAJOR "${CMAKE_MATCH_1}" PARENT_SCOPE)
- set (${_PGV_PREFIX}VERSION_MINOR "${CMAKE_MATCH_2}" PARENT_SCOPE)
- set (${_PGV_PREFIX}VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}" PARENT_SCOPE)
- set (${_PGV_PREFIX}ABI "" PARENT_SCOPE)
- elseif (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "python([23])\\.([0-9]+)([dmu]*)")
- set (${_PGV_PREFIX}VERSION_MAJOR "${CMAKE_MATCH_1}" PARENT_SCOPE)
- set (${_PGV_PREFIX}VERSION_MINOR "${CMAKE_MATCH_2}" PARENT_SCOPE)
- set (${_PGV_PREFIX}VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}" PARENT_SCOPE)
- set (${_PGV_PREFIX}ABI "${CMAKE_MATCH_3}" PARENT_SCOPE)
- endif()
- endif()
- else()
- if (_${_PYTHON_PREFIX}_INCLUDE_DIR)
- # retrieve version from header file
- file (STRINGS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}/patchlevel.h" version
- REGEX "^#define[ \t]+PY_VERSION[ \t]+\"[^\"]+\"")
- string (REGEX REPLACE "^#define[ \t]+PY_VERSION[ \t]+\"([^\"]+)\".*" "\\1"
- version "${version}")
- string (REGEX MATCHALL "[0-9]+" versions "${version}")
- list (GET versions 0 version_major)
- list (GET versions 1 version_minor)
- list (GET versions 2 version_patch)
-
- set (${_PGV_PREFIX}VERSION "${version_major}.${version_minor}" PARENT_SCOPE)
- set (${_PGV_PREFIX}VERSION_MAJOR ${version_major} PARENT_SCOPE)
- set (${_PGV_PREFIX}VERSION_MINOR ${version_minor} PARENT_SCOPE)
- set (${_PGV_PREFIX}VERSION_PATCH ${version_patch} PARENT_SCOPE)
-
- # compute ABI flags
- if (version_major VERSION_GREATER 2)
- file (STRINGS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}/pyconfig.h" config REGEX "(Py_DEBUG|WITH_PYMALLOC|Py_UNICODE_SIZE|MS_WIN32)")
- set (abi)
- if (config MATCHES "#[ ]*define[ ]+MS_WIN32")
- # ABI not used on Windows
- set (abi "")
- else()
- if (config MATCHES "#[ ]*define[ ]+Py_DEBUG[ ]+1")
- string (APPEND abi "d")
- endif()
- if (config MATCHES "#[ ]*define[ ]+WITH_PYMALLOC[ ]+1")
- string (APPEND abi "m")
- endif()
- if (config MATCHES "#[ ]*define[ ]+Py_UNICODE_SIZE[ ]+4")
- string (APPEND abi "u")
- endif()
- set (${_PGV_PREFIX}ABI "${abi}" PARENT_SCOPE)
- endif()
- else()
- # ABI not supported
- set (${_PGV_PREFIX}ABI "" PARENT_SCOPE)
- endif()
- endif()
- endif()
-endfunction()
-
-
-function (_PYTHON_VALIDATE_INTERPRETER)
- if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
- return()
- endif()
-
- cmake_parse_arguments (PARSE_ARGV 0 _PVI "EXACT;CHECK_EXISTS" "" "")
- if (_PVI_UNPARSED_ARGUMENTS)
- set (expected_version ${_PVI_UNPARSED_ARGUMENTS})
- else()
- unset (expected_version)
- endif()
-
- if (_PVI_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_EXECUTABLE}")
- # interpreter does not exist anymore
- set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "_${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
- return()
- endif()
-
- # validate ABI compatibility
- if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI)
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
- "import sys; sys.stdout.write(sys.abiflags)"
- RESULT_VARIABLE result
- OUTPUT_VARIABLE abi
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (result)
- # assume ABI is not supported
- set (abi "")
- endif()
- if (NOT abi IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
- # incompatible ABI
- set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "_${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
- return()
- endif()
- endif()
-
- get_filename_component (python_name "${_${_PYTHON_PREFIX}_EXECUTABLE}" NAME)
-
- if (expected_version AND NOT python_name STREQUAL "python${expected_version}${abi}${CMAKE_EXECUTABLE_SUFFIX}")
- # executable found must have a specific version
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
- "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:2]]))"
- RESULT_VARIABLE result
- OUTPUT_VARIABLE version
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (result OR (_PVI_EXACT AND NOT version VERSION_EQUAL expected_version) OR (version VERSION_LESS expected_version))
- # interpreter not usable or has wrong major version
- set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "_${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
- return()
- endif()
- else()
- if (NOT python_name STREQUAL "python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}${CMAKE_EXECUTABLE_SUFFIX}")
- # executable found do not have version in name
- # ensure major version is OK
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
- "import sys; sys.stdout.write(str(sys.version_info[0]))"
- RESULT_VARIABLE result
- OUTPUT_VARIABLE version
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (result OR NOT version EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
- # interpreter not usable or has wrong major version
- set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "_${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
- return()
- endif()
- endif()
- endif()
-
- if (CMAKE_SIZEOF_VOID_P AND "Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
- AND NOT CMAKE_CROSSCOMPILING)
- # In this case, interpreter must have same architecture as environment
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
- "import sys, struct; sys.stdout.write(str(struct.calcsize(\"P\")))"
- RESULT_VARIABLE result
- OUTPUT_VARIABLE size
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (result OR NOT size EQUAL CMAKE_SIZEOF_VOID_P)
- # interpreter not usable or has wrong architecture
- set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "_${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
- return()
- endif()
- endif()
-endfunction()
-
-
-function (_PYTHON_VALIDATE_COMPILER expected_version)
- if (NOT _${_PYTHON_PREFIX}_COMPILER)
- return()
- endif()
-
- cmake_parse_arguments (_PVC "EXACT;CHECK_EXISTS" "" "" ${ARGN})
- if (_PVC_UNPARSED_ARGUMENTS)
- set (major_version FALSE)
- set (expected_version ${_PVC_UNPARSED_ARGUMENTS})
- else()
- set (major_version TRUE)
- set (expected_version ${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR})
- set (_PVC_EXACT TRUE)
- endif()
-
- if (_PVC_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_COMPILER}")
- # Compiler does not exist anymore
- set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "_${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
- return()
- endif()
-
- # retrieve python environment version from compiler
- set (working_dir "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/PythonCompilerVersion.dir")
- if (major_version)
- # check only major version
- file (WRITE "${working_dir}/version.py" "import sys; sys.stdout.write(str(sys.version_info[0]))")
- else()
- file (WRITE "${working_dir}/version.py" "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:2]]))\n")
- endif()
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_COMPILER}" /target:exe /embed "${working_dir}/version.py"
- WORKING_DIRECTORY "${working_dir}"
- OUTPUT_QUIET
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process (COMMAND "${working_dir}/version"
- WORKING_DIRECTORY "${working_dir}"
- RESULT_VARIABLE result
- OUTPUT_VARIABLE version
- ERROR_QUIET)
- file (REMOVE_RECURSE "${_${_PYTHON_PREFIX}_VERSION_DIR}")
-
- if (result OR (_PVC_EXACT AND NOT version VERSION_EQUAL expected_version) OR (version VERSION_LESS expected_version))
- # Compiler not usable or has wrong version
- set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "_${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
- endif()
-endfunction()
-
-
-function (_PYTHON_VALIDATE_LIBRARY)
- if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
- return()
- endif()
-
- cmake_parse_arguments (PARSE_ARGV 0 _PVL "EXACT;CHECK_EXISTS" "" "")
- if (_PVL_UNPARSED_ARGUMENTS)
- set (expected_version ${_PVL_UNPARSED_ARGUMENTS})
- else()
- unset (expected_version)
- endif()
-
- if (_PVL_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
- # library does not exist anymore
- set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "_${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
- if (WIN32)
- set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_DEBUG PROPERTY VALUE "_${_PYTHON_PREFIX}_LIBRARY_DEBUG-NOTFOUND")
- endif()
- set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "_${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
- return()
- endif()
-
- # retrieve version and abi from library name
- _python_get_version (LIBRARY PREFIX lib_)
-
- if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT lib_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
- # incompatible ABI
- set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "_${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
- else()
- if (expected_version)
- if ((_PVL_EXACT AND NOT lib_VERSION VERSION_EQUAL expected_version) OR (lib_VERSION VERSION_LESS expected_version))
- # library has wrong version
- set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "_${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
- endif()
- else()
- if (NOT lib_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
- # library has wrong major version
- set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "_${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
- endif()
- endif()
- endif()
-
- if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
- if (WIN32)
- set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_DEBUG PROPERTY VALUE "_${_PYTHON_PREFIX}_LIBRARY_DEBUG-NOTFOUND")
- endif()
- set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "_${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
- endif()
-endfunction()
-
-
-function (_PYTHON_VALIDATE_INCLUDE_DIR)
- if (NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
- return()
- endif()
-
- cmake_parse_arguments (PARSE_ARGV 0 _PVID "EXACT;CHECK_EXISTS" "" "")
- if (_PVID_UNPARSED_ARGUMENTS)
- set (expected_version ${_PVID_UNPARSED_ARGUMENTS})
- else()
- unset (expected_version)
- endif()
-
- if (_PVID_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
- # include file does not exist anymore
- set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "_${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
- return()
- endif()
-
- # retrieve version from header file
- _python_get_version (INCLUDE PREFIX inc_)
-
- if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT inc_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
- # incompatible ABI
- set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "_${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
- else()
- if (expected_version)
- if ((_PVID_EXACT AND NOT inc_VERSION VERSION_EQUAL expected_version) OR (inc_VERSION VERSION_LESS expected_version))
- # include dir has wrong version
- set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "_${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
- endif()
- else()
- if (NOT inc_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
- # include dir has wrong major version
- set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "_${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
- endif()
- endif()
- endif()
-endfunction()
-
-
-function (_PYTHON_FIND_RUNTIME_LIBRARY _PYTHON_LIB)
- string (REPLACE "_RUNTIME" "" _PYTHON_LIB "${_PYTHON_LIB}")
- # look at runtime part on systems supporting it
- if (CMAKE_SYSTEM_NAME STREQUAL "Windows" OR
- (CMAKE_SYSTEM_NAME MATCHES "MSYS|CYGWIN"
- AND ${_PYTHON_LIB} MATCHES "${CMAKE_IMPORT_LIBRARY_SUFFIX}$"))
- set (CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_SHARED_LIBRARY_SUFFIX})
- # MSYS has a special syntax for runtime libraries
- if (CMAKE_SYSTEM_NAME MATCHES "MSYS")
- list (APPEND CMAKE_FIND_LIBRARY_PREFIXES "msys-")
- endif()
- find_library (${ARGV})
- endif()
-endfunction()
-
-
-function (_PYTHON_SET_LIBRARY_DIRS _PYTHON_SLD_RESULT)
- unset (_PYTHON_DIRS)
- set (_PYTHON_LIBS ${ARGN})
- foreach (_PYTHON_LIB IN LISTS _PYTHON_LIBS)
- if (${_PYTHON_LIB})
- get_filename_component (_PYTHON_DIR "${${_PYTHON_LIB}}" DIRECTORY)
- list (APPEND _PYTHON_DIRS "${_PYTHON_DIR}")
- endif()
- endforeach()
- if (_PYTHON_DIRS)
- list (REMOVE_DUPLICATES _PYTHON_DIRS)
- endif()
- set (${_PYTHON_SLD_RESULT} ${_PYTHON_DIRS} PARENT_SCOPE)
-endfunction()
-
-
-# If major version is specified, it must be the same as internal major version
-if (DEFINED ${_PYTHON_PREFIX}_FIND_VERSION_MAJOR
- AND NOT ${_PYTHON_PREFIX}_FIND_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
- _python_display_failure ("Could NOT find ${_PYTHON_PREFIX}: Wrong major version specified is \"${${_PYTHON_PREFIX}_FIND_VERSION_MAJOR}\", but expected major version is \"${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}\"")
-endif()
-
-
-# handle components
-if (NOT ${_PYTHON_PREFIX}_FIND_COMPONENTS)
- set (${_PYTHON_PREFIX}_FIND_COMPONENTS Interpreter)
- set (${_PYTHON_PREFIX}_FIND_REQUIRED_Interpreter TRUE)
-endif()
-if ("NumPy" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
- list (APPEND ${_PYTHON_PREFIX}_FIND_COMPONENTS "Interpreter" "Development")
- list (REMOVE_DUPLICATES ${_PYTHON_PREFIX}_FIND_COMPONENTS)
-endif()
-foreach (_${_PYTHON_PREFIX}_COMPONENT IN ITEMS Interpreter Compiler Development NumPy)
- set (${_PYTHON_PREFIX}_${_${_PYTHON_PREFIX}_COMPONENT}_FOUND FALSE)
-endforeach()
-unset (_${_PYTHON_PREFIX}_FIND_VERSIONS)
-
-# Set versions to search
-## default: search any version
-set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${_${_PYTHON_PREFIX}_VERSIONS})
-
-if (${_PYTHON_PREFIX}_FIND_VERSION_COUNT GREATER 1)
- if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
- set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_FIND_VERSION_MAJOR}.${${_PYTHON_PREFIX}_FIND_VERSION_MINOR})
- else()
- unset (_${_PYTHON_PREFIX}_FIND_VERSIONS)
- # add all compatible versions
- foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_VERSIONS)
- if (_${_PYTHON_PREFIX}_VERSION VERSION_GREATER_EQUAL ${_PYTHON_PREFIX}_FIND_VERSION)
- list (APPEND _${_PYTHON_PREFIX}_FIND_VERSIONS ${_${_PYTHON_PREFIX}_VERSION})
- endif()
- endforeach()
- endif()
-endif()
-
-# Set ABIs to search
-## default: search any ABI
-if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_LESS 3)
- # ABI not supported
- unset (_${_PYTHON_PREFIX}_FIND_ABI)
- set (_${_PYTHON_PREFIX}_ABIFLAGS "")
-else()
- unset (_${_PYTHON_PREFIX}_FIND_ABI)
- unset (_${_PYTHON_PREFIX}_ABIFLAGS)
- if (DEFINED ${_PYTHON_PREFIX}_FIND_ABI)
- # normalization
- string (TOUPPER "${${_PYTHON_PREFIX}_FIND_ABI}" _${_PYTHON_PREFIX}_FIND_ABI)
- list (TRANSFORM _${_PYTHON_PREFIX}_FIND_ABI REPLACE "^(TRUE|Y(ES)?|1)$" "ON")
- list (TRANSFORM _${_PYTHON_PREFIX}_FIND_ABI REPLACE "^(FALSE|N(O)?|0)$" "OFF")
- if (NOT _${_PYTHON_PREFIX}_FIND_ABI MATCHES "^(ON|OFF|ANY);(ON|OFF|ANY);(ON|OFF|ANY)$")
- message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_ABI}: invalid value for '${_PYTHON_PREFIX}_FIND_ABI'. Ignore it")
- unset (_${_PYTHON_PREFIX}_FIND_ABI)
- endif()
- _python_get_abiflags (_${_PYTHON_PREFIX}_ABIFLAGS)
- endif()
-endif()
-
-# Define lookup strategy
-if (_${_PYTHON_PREFIX}_LOOKUP_POLICY STREQUAL "NEW")
- set (_${_PYTHON_PREFIX}_FIND_STRATEGY "LOCATION")
-else()
- set (_${_PYTHON_PREFIX}_FIND_STRATEGY "VERSION")
-endif()
-if (DEFINED ${_PYTHON_PREFIX}_FIND_STRATEGY)
- if (NOT ${_PYTHON_PREFIX}_FIND_STRATEGY MATCHES "^(VERSION|LOCATION)$")
- message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_STRATEGY}: invalid value for '${_PYTHON_PREFIX}_FIND_STRATEGY'. 'VERSION' or 'LOCATION' expected.")
- set (_${_PYTHON_PREFIX}_FIND_STRATEGY "VERSION")
- else()
- set (_${_PYTHON_PREFIX}_FIND_STRATEGY "${${_PYTHON_PREFIX}_FIND_STRATEGY}")
- endif()
-endif()
-
-# 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")
- set (_${_PYTHON_PREFIX}_ARCH2 ${_${_PYTHON_PREFIX}_ARCH})
-else()
- # architecture unknown, search for both 64bit and 32bit
- set (_${_PYTHON_PREFIX}_ARCH 64)
- set (_${_PYTHON_PREFIX}_ARCH2 32)
-endif()
-
-# IronPython support
-if (CMAKE_SIZEOF_VOID_P)
- # In this case, search only for 64bit or 32bit
- math (EXPR _${_PYTHON_PREFIX}_ARCH "${CMAKE_SIZEOF_VOID_P} * 8")
- set (_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES ipy${_${_PYTHON_PREFIX}_ARCH} ipy)
-else()
- # architecture unknown, search for natural interpreter
- set (_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES ipy)
-endif()
-set (_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES net45 net40)
-
-# Apple frameworks handling
-_python_find_frameworks ()
-
-set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK "FIRST")
-
-if (DEFINED ${_PYTHON_PREFIX}_FIND_FRAMEWORK)
- if (NOT ${_PYTHON_PREFIX}_FIND_FRAMEWORK MATCHES "^(FIRST|LAST|NEVER)$")
- message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_FRAMEWORK}: invalid value for '${_PYTHON_PREFIX}_FIND_FRAMEWORK'. 'FIRST', 'LAST' or 'NEVER' expected. 'FIRST' will be used instead.")
- else()
- set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK ${${_PYTHON_PREFIX}_FIND_FRAMEWORK})
- endif()
-elseif (DEFINED CMAKE_FIND_FRAMEWORK)
- if (CMAKE_FIND_FRAMEWORK STREQUAL "ONLY")
- message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: CMAKE_FIND_FRAMEWORK: 'ONLY' value is not supported. 'FIRST' will be used instead.")
- elseif (NOT CMAKE_FIND_FRAMEWORK MATCHES "^(FIRST|LAST|NEVER)$")
- message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${CMAKE_FIND_FRAMEWORK}: invalid value for 'CMAKE_FIND_FRAMEWORK'. 'FIRST', 'LAST' or 'NEVER' expected. 'FIRST' will be used instead.")
- else()
- set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
- endif()
-endif()
-
-# Save CMAKE_FIND_APPBUNDLE
-if (DEFINED CMAKE_FIND_APPBUNDLE)
- set (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE ${CMAKE_FIND_APPBUNDLE})
-else()
- unset (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
-endif()
-# To avoid app bundle lookup
-set (CMAKE_FIND_APPBUNDLE "NEVER")
-
-# Save CMAKE_FIND_FRAMEWORK
-if (DEFINED CMAKE_FIND_FRAMEWORK)
- set (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
-else()
- unset (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
-endif()
-# To avoid framework lookup
-set (CMAKE_FIND_FRAMEWORK "NEVER")
-
-# Windows Registry handling
-if (DEFINED ${_PYTHON_PREFIX}_FIND_REGISTRY)
- if (NOT ${_PYTHON_PREFIX}_FIND_REGISTRY MATCHES "^(FIRST|LAST|NEVER)$")
- message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_REGISTRY}: invalid value for '${_PYTHON_PREFIX}_FIND_REGISTRY'. 'FIRST', 'LAST' or 'NEVER' expected. 'FIRST' will be used instead.")
- set (_${_PYTHON_PREFIX}_FIND_REGISTRY "FIRST")
- else()
- set (_${_PYTHON_PREFIX}_FIND_REGISTRY ${${_PYTHON_PREFIX}_FIND_REGISTRY})
- endif()
-else()
- set (_${_PYTHON_PREFIX}_FIND_REGISTRY "FIRST")
-endif()
-
-# virtual environments handling
-if (DEFINED ENV{VIRTUAL_ENV})
- if (DEFINED ${_PYTHON_PREFIX}_FIND_VIRTUALENV)
- if (NOT ${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY|STANDARD)$")
- message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_VIRTUALENV}: invalid value for '${_PYTHON_PREFIX}_FIND_VIRTUALENV'. 'FIRST', 'ONLY' or 'STANDARD' expected. 'FIRST' will be used instead.")
- set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV "FIRST")
- else()
- set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV ${${_PYTHON_PREFIX}_FIND_VIRTUALENV})
- endif()
- else()
- set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV FIRST)
- endif()
-else()
- set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV STANDARD)
-endif()
-
-
-# Compute search signature
-# This signature will be used to check validity of cached variables on new search
-set (_${_PYTHON_PREFIX}_SIGNATURE "${${_PYTHON_PREFIX}_ROOT_DIR}:${${_PYTHON_PREFIX}_FIND_STRATEGY}:${${_PYTHON_PREFIX}_FIND_VIRTUALENV}")
-if (NOT WIN32)
- string (APPEND _${_PYTHON_PREFIX}_SIGNATURE ":${${_PYTHON_PREFIX}_USE_STATIC_LIBS}:")
-endif()
-if (CMAKE_HOST_APPLE)
- string (APPEND _${_PYTHON_PREFIX}_SIGNATURE ":${${_PYTHON_PREFIX}_FIND_FRAMEWORK}")
-endif()
-if (CMAKE_HOST_WIN32)
- string (APPEND _${_PYTHON_PREFIX}_SIGNATURE ":${${_PYTHON_PREFIX}_FIND_REGISTRY}")
-endif()
-
-
-unset (_${_PYTHON_PREFIX}_REQUIRED_VARS)
-unset (_${_PYTHON_PREFIX}_CACHED_VARS)
-
-
-# first step, search for the interpreter
-if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
- list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_EXECUTABLE)
- if (${_PYTHON_PREFIX}_FIND_REQUIRED_Interpreter)
- list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_EXECUTABLE)
- endif()
-
- if (DEFINED ${_PYTHON_PREFIX}_EXECUTABLE
- AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_EXECUTABLE}")
- set (_${_PYTHON_PREFIX}_EXECUTABLE "${${_PYTHON_PREFIX}_EXECUTABLE}" CACHE INTERNAL "")
- elseif (DEFINED _${_PYTHON_PREFIX}_EXECUTABLE)
- # compute interpreter signature and check validity of definition
- string (MD5 __${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_EXECUTABLE}")
- if (__${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE)
- # check version validity
- if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
- else()
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
- endif()
- else()
- unset (_${_PYTHON_PREFIX}_EXECUTABLE CACHE)
- unset (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE CACHE)
- endif()
- endif()
-
- if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
- set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
-
- if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
- unset (_${_PYTHON_PREFIX}_NAMES)
- unset (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
- unset (_${_PYTHON_PREFIX}_REGISTRY_PATHS)
-
- foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
- # build all executable names
- _python_get_names (_${_PYTHON_PREFIX}_VERSION_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX EXECUTABLE)
- list (APPEND _${_PYTHON_PREFIX}_NAMES ${_${_PYTHON_PREFIX}_VERSION_NAMES})
-
- # Framework Paths
- _python_get_frameworks (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_VERSION})
- list (APPEND _${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS})
-
- # Registry Paths
- _python_get_registries (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_VERSION})
- list (APPEND _${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS}
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath])
- endforeach()
- list (APPEND _${_PYTHON_PREFIX}_NAMES python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR} python)
-
- while (TRUE)
- # Virtual environments handling
- if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ENV VIRTUAL_ENV
- PATH_SUFFIXES bin Scripts
- NO_CMAKE_PATH
- NO_CMAKE_ENVIRONMENT_PATH
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
-
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
- if (_${_PYTHON_PREFIX}_EXECUTABLE)
- break()
- endif()
- if (NOT _${_PYTHON_PREFIX}_FIND_VIRTUALENV STREQUAL "ONLY")
- break()
- endif()
- endif()
-
- # Apple frameworks handling
- if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- PATH_SUFFIXES bin
- NO_CMAKE_PATH
- NO_CMAKE_ENVIRONMENT_PATH
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
- if (_${_PYTHON_PREFIX}_EXECUTABLE)
- break()
- endif()
- endif()
- # Windows registry
- if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
- PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
- if (_${_PYTHON_PREFIX}_EXECUTABLE)
- break()
- endif()
- endif()
-
- # try using HINTS
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
- if (_${_PYTHON_PREFIX}_EXECUTABLE)
- break()
- endif()
- # try using standard paths
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
- NAMES_PER_DIR
- PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES})
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
- if (_${_PYTHON_PREFIX}_EXECUTABLE)
- break()
- endif()
-
- # Apple frameworks handling
- if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- NAMES_PER_DIR
- PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- PATH_SUFFIXES bin
- NO_DEFAULT_PATH)
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
- if (_${_PYTHON_PREFIX}_EXECUTABLE)
- break()
- endif()
- endif()
- # Windows registry
- if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
- NAMES_PER_DIR
- PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
- PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
- NO_DEFAULT_PATH)
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
- if (_${_PYTHON_PREFIX}_EXECUTABLE)
- break()
- endif()
- endif()
-
- break()
- endwhile()
- else()
- # look-up for various versions and locations
- foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
- _python_get_names (_${_PYTHON_PREFIX}_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX EXECUTABLE)
- list (APPEND _${_PYTHON_PREFIX}_NAMES python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
- python)
-
- _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION})
- _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_VERSION})
-
- # Virtual environments handling
- if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ENV VIRTUAL_ENV
- PATH_SUFFIXES bin Scripts
- NO_CMAKE_PATH
- NO_CMAKE_ENVIRONMENT_PATH
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
- if (_${_PYTHON_PREFIX}_EXECUTABLE)
- break()
- endif()
- if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV STREQUAL "ONLY")
- continue()
- endif()
- endif()
-
- # Apple frameworks handling
- if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- PATH_SUFFIXES bin
- NO_CMAKE_PATH
- NO_CMAKE_ENVIRONMENT_PATH
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- endif()
-
- # Windows registry
- if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
- PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- endif()
-
- _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
- if (_${_PYTHON_PREFIX}_EXECUTABLE)
- break()
- endif()
-
- # try using HINTS
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
- if (_${_PYTHON_PREFIX}_EXECUTABLE)
- break()
- endif()
- # try using standard paths.
- # NAMES_PER_DIR is not defined on purpose to have a chance to find
- # expected version.
- # For example, typical systems have 'python' for version 2.* and 'python3'
- # for version 3.*. So looking for names per dir will find, potentially,
- # systematically 'python' (i.e. version 2) even if version 3 is searched.
- if (CMAKE_HOST_WIN32)
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- python
- ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES})
- else()
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES})
- endif()
- _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
- if (_${_PYTHON_PREFIX}_EXECUTABLE)
- break()
- endif()
-
- # Apple frameworks handling
- if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- NAMES_PER_DIR
- PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- PATH_SUFFIXES bin
- NO_DEFAULT_PATH)
- endif()
-
- # Windows registry
- if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES ${_${_PYTHON_PREFIX}_NAMES}
- ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
- NAMES_PER_DIR
- PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
- PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
- NO_DEFAULT_PATH)
- endif()
-
- _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
- if (_${_PYTHON_PREFIX}_EXECUTABLE)
- break()
- endif()
- endforeach()
-
- if (NOT _${_PYTHON_PREFIX}_EXECUTABLE AND
- NOT _${_PYTHON_PREFIX}_FIND_VIRTUALENV STREQUAL "ONLY")
- # No specific version found. Retry with generic names and standard paths.
- # NAMES_PER_DIR is not defined on purpose to have a chance to find
- # expected version.
- # For example, typical systems have 'python' for version 2.* and 'python3'
- # for version 3.*. So looking for names per dir will find, potentially,
- # systematically 'python' (i.e. version 2) even if version 3 is searched.
- find_program (_${_PYTHON_PREFIX}_EXECUTABLE
- NAMES python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
- python
- ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES})
- _python_validate_interpreter ()
- endif()
- endif()
- endif()
-
- set (${_PYTHON_PREFIX}_EXECUTABLE "${_${_PYTHON_PREFIX}_EXECUTABLE}")
-
- # retrieve exact version of executable found
- if (_${_PYTHON_PREFIX}_EXECUTABLE)
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
- "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:3]]))"
- RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
- OUTPUT_VARIABLE ${_PYTHON_PREFIX}_VERSION
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (NOT _${_PYTHON_PREFIX}_RESULT)
- set (_${_PYTHON_PREFIX}_EXECUTABLE_USABLE TRUE)
- string (REGEX MATCHALL "[0-9]+" _${_PYTHON_PREFIX}_VERSIONS "${${_PYTHON_PREFIX}_VERSION}")
- list (GET _${_PYTHON_PREFIX}_VERSIONS 0 ${_PYTHON_PREFIX}_VERSION_MAJOR)
- list (GET _${_PYTHON_PREFIX}_VERSIONS 1 ${_PYTHON_PREFIX}_VERSION_MINOR)
- list (GET _${_PYTHON_PREFIX}_VERSIONS 2 ${_PYTHON_PREFIX}_VERSION_PATCH)
- else()
- # Interpreter is not usable
- set (_${_PYTHON_PREFIX}_EXECUTABLE_USABLE FALSE)
- unset (${_PYTHON_PREFIX}_VERSION)
- endif()
- endif()
-
- if (_${_PYTHON_PREFIX}_EXECUTABLE AND _${_PYTHON_PREFIX}_EXECUTABLE_USABLE
- AND ${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
- set (${_PYTHON_PREFIX}_Interpreter_FOUND TRUE)
- # Use interpreter version and ABI for future searches to ensure consistency
- set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR})
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; sys.stdout.write(sys.abiflags)"
- RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
- OUTPUT_VARIABLE _${_PYTHON_PREFIX}_ABIFLAGS
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (_${_PYTHON_PREFIX}_RESULT)
- # assunme ABI is not supported
- set (_${_PYTHON_PREFIX}_ABIFLAGS "")
- endif()
- endif()
-
- if (${_PYTHON_PREFIX}_Interpreter_FOUND)
- # compute and save interpreter signature
- string (MD5 __${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_EXECUTABLE}")
- set (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${__${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}" CACHE INTERNAL "")
-
- 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
- OUTPUT_VARIABLE ${_PYTHON_PREFIX}_INTERPRETER_ID
- ERROR_VARIABLE ${_PYTHON_PREFIX}_INTERPRETER_ID)
- if (NOT _${_PYTHON_PREFIX}_RESULT)
- if (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "Anaconda")
- set (${_PYTHON_PREFIX}_INTERPRETER_ID "Anaconda")
- elseif (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "Enthought")
- set (${_PYTHON_PREFIX}_INTERPRETER_ID "Canopy")
- else()
- string (REGEX REPLACE "^([^ ]+).*" "\\1" ${_PYTHON_PREFIX}_INTERPRETER_ID "${${_PYTHON_PREFIX}_INTERPRETER_ID}")
- if (${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "Python")
- # try to get a more precise ID
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; print(sys.copyright)"
- RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
- OUTPUT_VARIABLE ${_PYTHON_PREFIX}_COPYRIGHT
- ERROR_QUIET)
- if (${_PYTHON_PREFIX}_COPYRIGHT MATCHES "ActiveState")
- set (${_PYTHON_PREFIX}_INTERPRETER_ID "ActivePython")
- endif()
- endif()
- endif()
- else()
- set (${_PYTHON_PREFIX}_INTERPRETER_ID Python)
- endif()
-
- # retrieve various package installation directories
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig;sys.stdout.write(';'.join([sysconfig.get_python_lib(plat_specific=False,standard_lib=True),sysconfig.get_python_lib(plat_specific=True,standard_lib=True),sysconfig.get_python_lib(plat_specific=False,standard_lib=False),sysconfig.get_python_lib(plat_specific=True,standard_lib=False)]))"
-
- RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
- OUTPUT_VARIABLE _${_PYTHON_PREFIX}_LIBPATHS
- ERROR_QUIET)
- if (NOT _${_PYTHON_PREFIX}_RESULT)
- list (GET _${_PYTHON_PREFIX}_LIBPATHS 0 ${_PYTHON_PREFIX}_STDLIB)
- list (GET _${_PYTHON_PREFIX}_LIBPATHS 1 ${_PYTHON_PREFIX}_STDARCH)
- list (GET _${_PYTHON_PREFIX}_LIBPATHS 2 ${_PYTHON_PREFIX}_SITELIB)
- list (GET _${_PYTHON_PREFIX}_LIBPATHS 3 ${_PYTHON_PREFIX}_SITEARCH)
- else()
- unset (${_PYTHON_PREFIX}_STDLIB)
- unset (${_PYTHON_PREFIX}_STDARCH)
- unset (${_PYTHON_PREFIX}_SITELIB)
- unset (${_PYTHON_PREFIX}_SITEARCH)
- endif()
- else()
- unset (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE CACHE)
- unset (${_PYTHON_PREFIX}_INTERPRETER_ID)
- endif()
-
- mark_as_advanced (_${_PYTHON_PREFIX}_EXECUTABLE
- _${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE)
-endif()
-
-
-# second step, search for compiler (IronPython)
-if ("Compiler" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
- list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_COMPILER)
- if (${_PYTHON_PREFIX}_FIND_REQUIRED_Compiler)
- list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_COMPILER)
- endif()
-
- if (DEFINED ${_PYTHON_PREFIX}_COMPILER
- AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_COMPILER}")
- set (_${_PYTHON_PREFIX}_COMPILER "${${_PYTHON_PREFIX}_COMPILER}" CACHE INTERNAL "")
- elseif (DEFINED _${_PYTHON_PREFIX}_COMPILER)
- # compute compiler signature and check validity of definition
- string (MD5 __${_PYTHON_PREFIX}_COMPILER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_COMPILER}")
- if (__${_PYTHON_PREFIX}_COMPILER_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_COMPILER_SIGNATURE)
- # check version validity
- if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
- _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
- else()
- _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
- endif()
- else()
- unset (_${_PYTHON_PREFIX}_COMPILER CACHE)
- unset (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE CACHE)
- endif()
- endif()
-
- if (NOT _${_PYTHON_PREFIX}_COMPILER)
- # IronPython specific artifacts
- # If IronPython interpreter is found, use its path
- unset (_${_PYTHON_PREFIX}_IRON_ROOT)
- if (${_PYTHON_PREFIX}_Interpreter_FOUND AND ${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "IronPython")
- get_filename_component (_${_PYTHON_PREFIX}_IRON_ROOT "${${_PYTHON_PREFIX}_EXECUTABLE}" DIRECTORY)
- endif()
-
- if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
- set (_${_PYTHON_PREFIX}_REGISTRY_PATHS)
-
- foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
- # Registry Paths
- list (APPEND _${_PYTHON_PREFIX}_REGISTRY_PATHS
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath])
- endforeach()
-
- while (TRUE)
- if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
- find_program (_${_PYTHON_PREFIX}_COMPILER
- NAMES ipyc
- HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION})
- if (_${_PYTHON_PREFIX}_COMPILER)
- break()
- endif()
- endif()
-
- find_program (_${_PYTHON_PREFIX}_COMPILER
- NAMES ipyc
- HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION})
- if (_${_PYTHON_PREFIX}_COMPILER)
- break()
- endif()
-
- if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
- find_program (_${_PYTHON_PREFIX}_COMPILER
- NAMES ipyc
- PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
- NO_DEFAULT_PATH)
- endif()
-
- break()
- endwhile()
- else()
- # try using root dir and registry
- foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
- if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
- find_program (_${_PYTHON_PREFIX}_COMPILER
- NAMES ipyc
- HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
- PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
- if (_${_PYTHON_PREFIX}_COMPILER)
- break()
- endif()
- endif()
-
- find_program (_${_PYTHON_PREFIX}_COMPILER
- NAMES ipyc
- HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
- if (_${_PYTHON_PREFIX}_COMPILER)
- break()
- endif()
-
- if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
- find_program (_${_PYTHON_PREFIX}_COMPILER
- NAMES ipyc
- PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
- NO_DEFAULT_PATH)
- _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
- if (_${_PYTHON_PREFIX}_COMPILER)
- break()
- endif()
- endif()
- endforeach()
-
- # no specific version found, re-try in standard paths
- find_program (_${_PYTHON_PREFIX}_COMPILER
- NAMES ipyc
- HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES})
- endif()
- endif()
-
- set (${_PYTHON_PREFIX}_COMPILER "${_${_PYTHON_PREFIX}_COMPILER}")
-
- if (_${_PYTHON_PREFIX}_COMPILER)
- # retrieve python environment version from compiler
- set (_${_PYTHON_PREFIX}_VERSION_DIR "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/PythonCompilerVersion.dir")
- file (WRITE "${_${_PYTHON_PREFIX}_VERSION_DIR}/version.py" "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:3]]))\n")
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_COMPILER}" /target:exe /embed "${_${_PYTHON_PREFIX}_VERSION_DIR}/version.py"
- WORKING_DIRECTORY "${_${_PYTHON_PREFIX}_VERSION_DIR}"
- OUTPUT_QUIET
- ERROR_QUIET)
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_VERSION_DIR}/version"
- WORKING_DIRECTORY "${_${_PYTHON_PREFIX}_VERSION_DIR}"
- RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
- OUTPUT_VARIABLE _${_PYTHON_PREFIX}_VERSION
- ERROR_QUIET)
- if (NOT _${_PYTHON_PREFIX}_RESULT)
- set (_${_PYTHON_PREFIX}_COMPILER_USABLE TRUE)
- string (REGEX MATCHALL "[0-9]+" _${_PYTHON_PREFIX}_VERSIONS "${_${_PYTHON_PREFIX}_VERSION}")
- list (GET _${_PYTHON_PREFIX}_VERSIONS 0 _${_PYTHON_PREFIX}_VERSION_MAJOR)
- list (GET _${_PYTHON_PREFIX}_VERSIONS 1 _${_PYTHON_PREFIX}_VERSION_MINOR)
- list (GET _${_PYTHON_PREFIX}_VERSIONS 2 _${_PYTHON_PREFIX}_VERSION_PATCH)
-
- if (NOT ${_PYTHON_PREFIX}_Interpreter_FOUND)
- # set public version information
- set (${_PYTHON_PREFIX}_VERSION ${_${_PYTHON_PREFIX}_VERSION})
- set (${_PYTHON_PREFIX}_VERSION_MAJOR ${_${_PYTHON_PREFIX}_VERSION_MAJOR})
- set (${_PYTHON_PREFIX}_VERSION_MINOR ${_${_PYTHON_PREFIX}_VERSION_MINOR})
- set (${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_VERSION_PATCH})
- endif()
- else()
- # compiler not usable
- set (_${_PYTHON_PREFIX}_COMPILER_USABLE FALSE)
- endif()
- file (REMOVE_RECURSE "${_${_PYTHON_PREFIX}_VERSION_DIR}")
- endif()
-
- if (_${_PYTHON_PREFIX}_COMPILER AND _${_PYTHON_PREFIX}_COMPILER_USABLE)
- if (${_PYTHON_PREFIX}_Interpreter_FOUND)
- # Compiler must be compatible with interpreter
- if (${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR} VERSION_EQUAL ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR})
- set (${_PYTHON_PREFIX}_Compiler_FOUND TRUE)
- endif()
- elseif (${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
- set (${_PYTHON_PREFIX}_Compiler_FOUND TRUE)
- # Use compiler version for future searches to ensure consistency
- set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR})
- endif()
- endif()
-
- if (${_PYTHON_PREFIX}_Compiler_FOUND)
- # compute and save compiler signature
- string (MD5 __${_PYTHON_PREFIX}_COMPILER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_COMPILER}")
- set (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE "${__${_PYTHON_PREFIX}_COMPILER_SIGNATURE}" CACHE INTERNAL "")
-
- set (${_PYTHON_PREFIX}_COMPILER_ID IronPython)
- else()
- unset (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE CACHE)
- unset (${_PYTHON_PREFIX}_COMPILER_ID)
- endif()
-
- mark_as_advanced (_${_PYTHON_PREFIX}_COMPILER
- _${_PYTHON_PREFIX}_COMPILER_SIGNATURE)
-endif()
-
-
-# third step, search for the development artifacts
-## Development environment is not compatible with IronPython interpreter
-if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
- AND NOT ${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "IronPython")
- list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_LIBRARY_RELEASE
- ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
- _${_PYTHON_PREFIX}_LIBRARY_DEBUG
- ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG
- _${_PYTHON_PREFIX}_INCLUDE_DIR)
- if (${_PYTHON_PREFIX}_FIND_REQUIRED_Development)
- list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_LIBRARIES
- ${_PYTHON_PREFIX}_INCLUDE_DIRS)
- endif()
-
- if (DEFINED _${_PYTHON_PREFIX}_LIBRARY_RELEASE OR DEFINED _${_PYTHON_PREFIX}_INCLUDE_DIR)
- # compute development signature and check validity of definition
- string (MD5 __${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}:${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
- if (WIN32 AND NOT DEFINED _${_PYTHON_PREFIX}_LIBRARY_DEBUG)
- set (_${_PYTHON_PREFIX}_LIBRARY_DEBUG "_${_PYTHON_PREFIX}_LIBRARY_DEBUG-NOTFOUND" CACHE INTERNAL "")
- endif()
- if (NOT DEFINED _${_PYTHON_PREFIX}_INCLUDE_DIR)
- set (_${_PYTHON_PREFIX}_INCLUDE_DIR "_${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND" CACHE INTERNAL "")
- endif()
- if (__${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE)
- # check version validity
- if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
- _python_validate_library (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
- _python_validate_include_dir (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
- else()
- _python_validate_library (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
- _python_validate_include_dir (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
- endif()
- else()
- unset (_${_PYTHON_PREFIX}_LIBRARY_RELEASE CACHE)
- unset (_${_PYTHON_PREFIX}_LIBRARY_DEBUG CACHE)
- unset (_${_PYTHON_PREFIX}_INCLUDE_DIR CACHE)
- unset (_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE CACHE)
- endif()
- endif()
- if (DEFINED ${_PYTHON_PREFIX}_LIBRARY
- AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_LIBRARY}")
- set (_${_PYTHON_PREFIX}_LIBRARY_RELEASE "${${_PYTHON_PREFIX}_LIBRARY}" CACHE INTERNAL "")
- unset (_${_PYTHON_PREFIX}_LIBRARY_DEBUG CACHE)
- unset (_${_PYTHON_PREFIX}_INCLUDE_DIR CACHE)
- endif()
- if (DEFINED ${_PYTHON_PREFIX}_INCLUDE_DIR
- AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_INCLUDE_DIR}")
- set (_${_PYTHON_PREFIX}_INCLUDE_DIR "${${_PYTHON_PREFIX}_INCLUDE_DIR}" CACHE INTERNAL "")
- endif()
-
- # Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
- unset (_${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES)
- if (DEFINED ${_PYTHON_PREFIX}_USE_STATIC_LIBS AND NOT WIN32)
- set(_${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
- if(${_PYTHON_PREFIX}_USE_STATIC_LIBS)
- set (CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
- else()
- list (REMOVE_ITEM CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
- endif()
- endif()
-
- if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE OR NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
- # if python interpreter is found, use it to look-up for artifacts
- # to ensure consistency between interpreter and development environments.
- # If not, try to locate a compatible config tool
- if (NOT ${_PYTHON_PREFIX}_Interpreter_FOUND OR CMAKE_CROSSCOMPILING)
- set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
- unset (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS)
- if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
- set (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS ENV VIRTUAL_ENV)
- endif()
- unset (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
-
- if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
- set (_${_PYTHON_PREFIX}_CONFIG_NAMES)
-
- foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
- _python_get_names (_${_PYTHON_PREFIX}_VERSION_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX CONFIG)
- list (APPEND _${_PYTHON_PREFIX}_CONFIG_NAMES ${_${_PYTHON_PREFIX}_VERSION_NAMES})
-
- # Framework Paths
- _python_get_frameworks (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_VERSION})
- list (APPEND _${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS})
- endforeach()
-
- # Apple frameworks handling
- if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
- find_program (_${_PYTHON_PREFIX}_CONFIG
- NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
- ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- PATH_SUFFIXES bin
- NO_CMAKE_PATH
- NO_CMAKE_ENVIRONMENT_PATH
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- endif()
-
- find_program (_${_PYTHON_PREFIX}_CONFIG
- NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
- PATH_SUFFIXES bin)
-
- # Apple frameworks handling
- if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
- find_program (_${_PYTHON_PREFIX}_CONFIG
- NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
- NAMES_PER_DIR
- PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- PATH_SUFFIXES bin
- NO_DEFAULT_PATH)
- endif()
-
- if (_${_PYTHON_PREFIX}_CONFIG)
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --help
- RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
- OUTPUT_VARIABLE __${_PYTHON_PREFIX}_HELP
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (_${_PYTHON_PREFIX}_RESULT)
- # assume config tool is not usable
- unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
- endif()
- endif()
-
- if (_${_PYTHON_PREFIX}_CONFIG)
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --abiflags
- RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
- OUTPUT_VARIABLE __${_PYTHON_PREFIX}_ABIFLAGS
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (_${_PYTHON_PREFIX}_RESULT)
- # assume ABI is not supported
- set (__${_PYTHON_PREFIX}_ABIFLAGS "")
- endif()
- if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT __${_PYTHON_PREFIX}_ABIFLAGS IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
- # Wrong ABI
- unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
- endif()
- endif()
-
- if (_${_PYTHON_PREFIX}_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
- # check that config tool match library architecture
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --configdir
- RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
- OUTPUT_VARIABLE _${_PYTHON_PREFIX}_CONFIGDIR
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (_${_PYTHON_PREFIX}_RESULT)
- unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
- else()
- string(FIND "${_${_PYTHON_PREFIX}_CONFIGDIR}" "${CMAKE_LIBRARY_ARCHITECTURE}" _${_PYTHON_PREFIX}_RESULT)
- if (_${_PYTHON_PREFIX}_RESULT EQUAL -1)
- unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
- endif()
- endif()
- endif()
- else()
- foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
- # try to use pythonX.Y-config tool
- _python_get_names (_${_PYTHON_PREFIX}_CONFIG_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX CONFIG)
-
- # Framework Paths
- _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION})
-
- # Apple frameworks handling
- if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
- find_program (_${_PYTHON_PREFIX}_CONFIG
- NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
- ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- PATH_SUFFIXES bin
- NO_CMAKE_PATH
- NO_CMAKE_ENVIRONMENT_PATH
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- endif()
-
- find_program (_${_PYTHON_PREFIX}_CONFIG
- NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
- PATH_SUFFIXES bin)
-
- # Apple frameworks handling
- if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
- find_program (_${_PYTHON_PREFIX}_CONFIG
- NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
- NAMES_PER_DIR
- PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- PATH_SUFFIXES bin
- NO_DEFAULT_PATH)
- endif()
-
- unset (_${_PYTHON_PREFIX}_CONFIG_NAMES)
-
- if (_${_PYTHON_PREFIX}_CONFIG)
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --help
- RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
- OUTPUT_VARIABLE __${_PYTHON_PREFIX}_HELP
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (_${_PYTHON_PREFIX}_RESULT)
- # assume config tool is not usable
- unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
- endif()
- endif()
-
- if (NOT _${_PYTHON_PREFIX}_CONFIG)
- continue()
- endif()
-
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --abiflags
- RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
- OUTPUT_VARIABLE __${_PYTHON_PREFIX}_ABIFLAGS
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (_${_PYTHON_PREFIX}_RESULT)
- # assume ABI is not supported
- set (__${_PYTHON_PREFIX}_ABIFLAGS "")
- endif()
- if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT __${_PYTHON_PREFIX}_ABIFLAGS IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
- # Wrong ABI
- unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
- continue()
- endif()
-
- if (_${_PYTHON_PREFIX}_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
- # check that config tool match library architecture
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --configdir
- RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
- OUTPUT_VARIABLE _${_PYTHON_PREFIX}_CONFIGDIR
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (_${_PYTHON_PREFIX}_RESULT)
- unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
- continue()
- endif()
- string (FIND "${_${_PYTHON_PREFIX}_CONFIGDIR}" "${CMAKE_LIBRARY_ARCHITECTURE}" _${_PYTHON_PREFIX}_RESULT)
- if (_${_PYTHON_PREFIX}_RESULT EQUAL -1)
- unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
- continue()
- endif()
- endif()
-
- if (_${_PYTHON_PREFIX}_CONFIG)
- break()
- endif()
- endforeach()
- endif()
- endif()
- endif()
-
- if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
- if ((${_PYTHON_PREFIX}_Interpreter_FOUND AND NOT CMAKE_CROSSCOMPILING) OR _${_PYTHON_PREFIX}_CONFIG)
- # retrieve root install directory
- _python_get_config_var (_${_PYTHON_PREFIX}_PREFIX PREFIX)
-
- # enforce current ABI
- _python_get_config_var (_${_PYTHON_PREFIX}_ABIFLAGS ABIFLAGS)
-
- set (_${_PYTHON_PREFIX}_HINTS "${_${_PYTHON_PREFIX}_PREFIX}")
-
- # retrieve library
- ## compute some paths and artifact names
- if (_${_PYTHON_PREFIX}_CONFIG)
- string (REGEX REPLACE "^.+python([0-9.]+)[a-z]*-config" "\\1" _${_PYTHON_PREFIX}_VERSION "${_${_PYTHON_PREFIX}_CONFIG}")
- else()
- set (_${_PYTHON_PREFIX}_VERSION "${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR}")
- endif()
- _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_VERSION} LIBRARY)
- _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 POSIX LIBRARY)
-
- _python_get_config_var (_${_PYTHON_PREFIX}_CONFIGDIR CONFIGDIR)
- list (APPEND _${_PYTHON_PREFIX}_HINTS "${_${_PYTHON_PREFIX}_CONFIGDIR}")
-
- list (APPEND _${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
-
- find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
- NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- endif()
-
- # Rely on HINTS and standard paths if interpreter or config tool failed to locate artifacts
- if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
- set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
-
- unset (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS)
- if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
- set (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS ENV VIRTUAL_ENV)
- endif()
-
- if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
- unset (_${_PYTHON_PREFIX}_LIB_NAMES)
- unset (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG)
- unset (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
- unset (_${_PYTHON_PREFIX}_REGISTRY_PATHS)
- unset (_${_PYTHON_PREFIX}_PATH_SUFFIXES)
-
- foreach (_${_PYTHON_PREFIX}_LIB_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
- # library names
- _python_get_names (_${_PYTHON_PREFIX}_VERSION_NAMES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 POSIX LIBRARY)
- list (APPEND _${_PYTHON_PREFIX}_LIB_NAMES ${_${_PYTHON_PREFIX}_VERSION_NAMES})
- _python_get_names (_${_PYTHON_PREFIX}_VERSION_NAMES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 DEBUG)
- list (APPEND _${_PYTHON_PREFIX}_LIB_NAMES_DEBUG ${_${_PYTHON_PREFIX}_VERSION_NAMES})
-
- # Framework Paths
- _python_get_frameworks (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_LIB_VERSION})
- list (APPEND _${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS})
-
- # Registry Paths
- _python_get_registries (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_LIB_VERSION})
- list (APPEND _${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS})
-
- # Paths suffixes
- _python_get_path_suffixes (_${_PYTHON_PREFIX}_VERSION_PATHS VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} LIBRARY)
- list (APPEND _${_PYTHON_PREFIX}_PATH_SUFFIXES ${_${_PYTHON_PREFIX}_VERSION_PATHS})
- endforeach()
-
- if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
- find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
- NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
- ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
- NO_CMAKE_PATH
- NO_CMAKE_ENVIRONMENT_PATH
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- endif()
-
- if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
- find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
- NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
- ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- endif()
-
- # search in HINTS locations
- find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
- NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
-
- if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
- set (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS})
- else()
- unset (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
- endif()
-
- if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
- set (__${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS})
- else()
- unset (__${_PYTHON_PREFIX}_REGISTRY_PATHS)
- endif()
-
- # search in all default paths
- find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
- NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
- NAMES_PER_DIR
- PATHS ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- ${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
- else()
- foreach (_${_PYTHON_PREFIX}_LIB_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
- _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 POSIX LIBRARY)
- _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 DEBUG)
-
- _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_LIB_VERSION})
- _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_LIB_VERSION})
-
- _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} LIBRARY)
-
- if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
- find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
- NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
- ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
- NO_CMAKE_PATH
- NO_CMAKE_ENVIRONMENT_PATH
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- endif()
-
- if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
- find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
- NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
- ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- endif()
-
- # search in HINTS locations
- find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
- NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
- NAMES_PER_DIR
- HINTS ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
-
- if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
- set (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS})
- else()
- unset (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
- endif()
-
- if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
- set (__${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS})
- else()
- unset (__${_PYTHON_PREFIX}_REGISTRY_PATHS)
- endif()
-
- # search in all default paths
- find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
- NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
- NAMES_PER_DIR
- PATHS ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- ${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
-
- if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
- break()
- endif()
- endforeach()
- endif()
- endif()
- endif()
-
- # finalize library version information
- _python_get_version (LIBRARY PREFIX _${_PYTHON_PREFIX}_)
-
- set (${_PYTHON_PREFIX}_LIBRARY_RELEASE "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" CACHE FILEPATH "Path to a library." FORCE)
-
- if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE AND NOT EXISTS "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
- set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "_${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
- endif()
-
- set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
-
- if (WIN32 AND _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
- # search for debug library
- # use release library location as a hint
- _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 DEBUG)
- get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
- find_library (_${_PYTHON_PREFIX}_LIBRARY_DEBUG
- NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG}
- NAMES_PER_DIR
- HINTS "${_${_PYTHON_PREFIX}_PATH}" ${_${_PYTHON_PREFIX}_HINTS}
- NO_DEFAULT_PATH)
- endif()
-
- # retrieve runtime libraries
- if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
- _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 POSIX LIBRARY)
- get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
- get_filename_component (_${_PYTHON_PREFIX}_PATH2 "${_${_PYTHON_PREFIX}_PATH}" DIRECTORY)
- _python_find_runtime_library (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
- NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
- NAMES_PER_DIR
- HINTS "${_${_PYTHON_PREFIX}_PATH}" "${_${_PYTHON_PREFIX}_PATH2}" ${_${_PYTHON_PREFIX}_HINTS}
- PATH_SUFFIXES bin)
- endif()
- if (_${_PYTHON_PREFIX}_LIBRARY_DEBUG)
- _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 DEBUG)
- get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_DEBUG}" DIRECTORY)
- get_filename_component (_${_PYTHON_PREFIX}_PATH2 "${_${_PYTHON_PREFIX}_PATH}" DIRECTORY)
- _python_find_runtime_library (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG
- NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG}
- NAMES_PER_DIR
- HINTS "${_${_PYTHON_PREFIX}_PATH}" "${_${_PYTHON_PREFIX}_PATH2}" ${_${_PYTHON_PREFIX}_HINTS}
- PATH_SUFFIXES bin)
- endif()
-
- # Don't search for include dir if no library was founded
- if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE AND NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
- if ((${_PYTHON_PREFIX}_Interpreter_FOUND AND NOT CMAKE_CROSSCOMPILING) OR _${_PYTHON_PREFIX}_CONFIG)
- _python_get_config_var (_${_PYTHON_PREFIX}_INCLUDE_DIRS INCLUDES)
-
- find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
- NAMES Python.h
- HINTS ${_${_PYTHON_PREFIX}_INCLUDE_DIRS}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- endif()
-
- # Rely on HINTS and standard paths if interpreter or config tool failed to locate artifacts
- if (NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
- unset (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS)
- if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
- set (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS ENV VIRTUAL_ENV)
- endif()
- unset (_${_PYTHON_PREFIX}_INCLUDE_HINTS)
-
- # Use the library's install prefix as a hint
- if (${_${_PYTHON_PREFIX}_LIBRARY_RELEASE} MATCHES "^(.+/Frameworks/Python.framework/Versions/[0-9.]+)")
- list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${CMAKE_MATCH_1}")
- elseif (${_${_PYTHON_PREFIX}_LIBRARY_RELEASE} MATCHES "^(.+)/lib(64|32)?/python[0-9.]+/config")
- list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${CMAKE_MATCH_1}")
- elseif (DEFINED CMAKE_LIBRARY_ARCHITECTURE AND ${_${_PYTHON_PREFIX}_LIBRARY_RELEASE} MATCHES "^(.+)/lib/${CMAKE_LIBRARY_ARCHITECTURE}")
- list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${CMAKE_MATCH_1}")
- else()
- # assume library is in a directory under root
- get_filename_component (_${_PYTHON_PREFIX}_PREFIX "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
- get_filename_component (_${_PYTHON_PREFIX}_PREFIX "${_${_PYTHON_PREFIX}_PREFIX}" DIRECTORY)
- list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${_${_PYTHON_PREFIX}_PREFIX}")
- endif()
-
- _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION})
- _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_VERSION})
- _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_VERSION} INCLUDE)
-
- if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
- find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
- NAMES Python.h
- HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
- ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
- NO_CMAKE_PATH
- NO_CMAKE_ENVIRONMENT_PATH
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- endif()
-
- if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
- find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
- NAMES Python.h
- HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
- ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- endif()
-
- if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
- set (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS})
- else()
- unset (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
- endif()
-
- if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
- set (__${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS})
- else()
- unset (__${_PYTHON_PREFIX}_REGISTRY_PATHS)
- endif()
-
- find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
- NAMES Python.h
- HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
- PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
- ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
- ${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
- PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
- NO_SYSTEM_ENVIRONMENT_PATH
- NO_CMAKE_SYSTEM_PATH)
- endif()
-
- # search header file in standard locations
- find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
- NAMES Python.h)
- endif()
-
- set (${_PYTHON_PREFIX}_INCLUDE_DIRS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
-
- if (_${_PYTHON_PREFIX}_INCLUDE_DIR AND NOT EXISTS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
- set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "_${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
- endif()
-
- if (_${_PYTHON_PREFIX}_INCLUDE_DIR)
- # retrieve version from header file
- _python_get_version (INCLUDE PREFIX _${_PYTHON_PREFIX}_INC_)
-
- # update versioning
- if (_${_PYTHON_PREFIX}_INC_VERSION VERSION_EQUAL ${_${_PYTHON_PREFIX}_VERSION})
- set (_${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_INC_VERSION_PATCH})
- endif()
- endif()
-
- if (NOT ${_PYTHON_PREFIX}_Interpreter_FOUND AND NOT ${_PYTHON_PREFIX}_Compiler_FOUND)
- # set public version information
- set (${_PYTHON_PREFIX}_VERSION ${_${_PYTHON_PREFIX}_VERSION})
- set (${_PYTHON_PREFIX}_VERSION_MAJOR ${_${_PYTHON_PREFIX}_VERSION_MAJOR})
- set (${_PYTHON_PREFIX}_VERSION_MINOR ${_${_PYTHON_PREFIX}_VERSION_MINOR})
- set (${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_VERSION_PATCH})
- endif()
-
- # define public variables
- set (${_PYTHON_PREFIX}_LIBRARY_DEBUG "${_${_PYTHON_PREFIX}_LIBRARY_DEBUG}" CACHE FILEPATH "Path to a library." FORCE)
-
- include (${CMAKE_CURRENT_LIST_DIR}/../SelectLibraryConfigurations.cmake)
- select_library_configurations (${_PYTHON_PREFIX})
- if (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE)
- set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE}")
- elseif (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG)
- set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG}")
- else()
- set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY "${_PYTHON_PREFIX}_RUNTIME_LIBRARY-NOTFOUND")
- endif()
-
- _python_set_library_dirs (${_PYTHON_PREFIX}_LIBRARY_DIRS
- ${_PYTHON_PREFIX}_LIBRARY_RELEASE ${_PYTHON_PREFIX}_LIBRARY_DEBUG)
- if (UNIX)
- if (${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "${CMAKE_SHARED_LIBRARY_SUFFIX}$")
- set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DIRS ${${_PYTHON_PREFIX}_LIBRARY_DIRS})
- endif()
- else()
- _python_set_library_dirs (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DIRS
- ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG)
- endif()
-
- if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE AND _${_PYTHON_PREFIX}_INCLUDE_DIR)
- if (${_PYTHON_PREFIX}_Interpreter_FOUND OR ${_PYTHON_PREFIX}_Compiler_FOUND)
- # development environment must be compatible with interpreter/compiler
- if (${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR} VERSION_EQUAL ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR}
- AND ${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_INC_VERSION_MINOR} VERSION_EQUAL ${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR})
- set (${_PYTHON_PREFIX}_Development_FOUND TRUE)
- endif()
- elseif (${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR
- AND ${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_INC_VERSION_MINOR} VERSION_EQUAL ${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR})
- set (${_PYTHON_PREFIX}_Development_FOUND TRUE)
- endif()
- if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND
- (NOT _${_PYTHON_PREFIX}_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS
- OR NOT _${_PYTHON_PREFIX}_INC_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS))
- set (${_PYTHON_PREFIX}_Development_FOUND FALSE)
- endif()
- endif()
-
- if (${_PYTHON_PREFIX}_Development_FOUND)
- # compute and save development signature
- string (MD5 __${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}:${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
- set (_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE "${__${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE}" CACHE INTERNAL "")
- else()
- unset (_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE CACHE)
- endif()
-
- # Restore the original find library ordering
- if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES)
- set (CMAKE_FIND_LIBRARY_SUFFIXES ${_${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES})
- endif()
-
- mark_as_advanced (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
- _${_PYTHON_PREFIX}_LIBRARY_DEBUG
- ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
- ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG
- _${_PYTHON_PREFIX}_INCLUDE_DIR
- _${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE)
-endif()
-
-if ("NumPy" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS AND ${_PYTHON_PREFIX}_Interpreter_FOUND)
- list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
- if (${_PYTHON_PREFIX}_FIND_REQUIRED_NumPy)
- list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_NumPy_INCLUDE_DIRS)
- endif()
-
- if (DEFINED ${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR
- AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
- set (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR "${${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}" CACHE INTERNAL "")
- elseif (DEFINED _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
- # compute numpy signature. Depends on interpreter and development signatures
- string (MD5 __${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}:${_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE}:${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
- if (NOT __${_PYTHON_PREFIX}_NUMPY_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_NUMPY_SIGNATURE
- OR NOT EXISTS "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
- unset (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR CACHE)
- unset (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE CACHE)
- endif()
- endif()
-
- if (NOT _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
- execute_process(
- COMMAND "${${_PYTHON_PREFIX}_EXECUTABLE}" -c
- "from __future__ import print_function\ntry: import numpy; print(numpy.get_include(), end='')\nexcept:pass\n"
- RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
- OUTPUT_VARIABLE _${_PYTHON_PREFIX}_NumPy_PATH
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- if (NOT _${_PYTHON_PREFIX}_RESULT)
- find_path (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR
- NAMES "numpy/arrayobject.h" "numpy/numpyconfig.h"
- HINTS "${_${_PYTHON_PREFIX}_NumPy_PATH}"
- NO_DEFAULT_PATH)
- endif()
- endif()
-
- set (${_PYTHON_PREFIX}_NumPy_INCLUDE_DIRS "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
-
- if(_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR AND NOT EXISTS "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
- set_property (CACHE _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR PROPERTY VALUE "_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR-NOTFOUND")
- endif()
-
- if (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
- execute_process (
- COMMAND "${${_PYTHON_PREFIX}_EXECUTABLE}" -c
- "from __future__ import print_function\ntry: import numpy; print(numpy.__version__, end='')\nexcept:pass\n"
- RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
- OUTPUT_VARIABLE _${_PYTHON_PREFIX}_NumPy_VERSION)
- if (NOT _${_PYTHON_PREFIX}_RESULT)
- set (${_PYTHON_PREFIX}_NumPy_VERSION "${_${_PYTHON_PREFIX}_NumPy_VERSION}")
- else()
- unset (${_PYTHON_PREFIX}_NumPy_VERSION)
- endif()
-
- # final step: set NumPy founded only if Development component is founded as well
- set(${_PYTHON_PREFIX}_NumPy_FOUND ${${_PYTHON_PREFIX}_Development_FOUND})
- else()
- set (${_PYTHON_PREFIX}_NumPy_FOUND FALSE)
- endif()
-
- if (${_PYTHON_PREFIX}_NumPy_FOUND)
- # compute and save numpy signature
- string (MD5 __${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}:${_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE}:${${_PYTHON_PREFIX}_NumPyINCLUDE_DIR}")
- set (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${__${_PYTHON_PREFIX}_NUMPY_SIGNATURE}" CACHE INTERNAL "")
- else()
- unset (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE CACHE)
- endif()
-
- mark_as_advanced (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
-endif()
-
-# final validation
-if (${_PYTHON_PREFIX}_VERSION_MAJOR AND
- NOT ${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
- _python_display_failure ("Could NOT find ${_PYTHON_PREFIX}: Found unsuitable major version \"${${_PYTHON_PREFIX}_VERSION_MAJOR}\", but required major version is exact version \"${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}\"")
-endif()
-
-include (${CMAKE_CURRENT_LIST_DIR}/../FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args (${_PYTHON_PREFIX}
- REQUIRED_VARS ${_${_PYTHON_PREFIX}_REQUIRED_VARS}
- VERSION_VAR ${_PYTHON_PREFIX}_VERSION
- HANDLE_COMPONENTS)
-
-# Create imported targets and helper functions
-if(_${_PYTHON_PREFIX}_CMAKE_ROLE STREQUAL "PROJECT")
- if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
- AND ${_PYTHON_PREFIX}_Interpreter_FOUND
- AND NOT TARGET ${_PYTHON_PREFIX}::Interpreter)
- add_executable (${_PYTHON_PREFIX}::Interpreter IMPORTED)
- set_property (TARGET ${_PYTHON_PREFIX}::Interpreter
- PROPERTY IMPORTED_LOCATION "${${_PYTHON_PREFIX}_EXECUTABLE}")
- endif()
-
- if ("Compiler" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
- AND ${_PYTHON_PREFIX}_Compiler_FOUND
- AND NOT TARGET ${_PYTHON_PREFIX}::Compiler)
- add_executable (${_PYTHON_PREFIX}::Compiler IMPORTED)
- set_property (TARGET ${_PYTHON_PREFIX}::Compiler
- PROPERTY IMPORTED_LOCATION "${${_PYTHON_PREFIX}_COMPILER}")
- endif()
-
- if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
- AND ${_PYTHON_PREFIX}_Development_FOUND)
-
- macro (__PYTHON_IMPORT_LIBRARY __name)
- if (${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "${CMAKE_SHARED_LIBRARY_SUFFIX}$"
- OR ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE)
- set (_${_PYTHON_PREFIX}_LIBRARY_TYPE SHARED)
- else()
- set (_${_PYTHON_PREFIX}_LIBRARY_TYPE STATIC)
- endif()
-
- if (NOT TARGET ${__name})
- add_library (${__name} ${_${_PYTHON_PREFIX}_LIBRARY_TYPE} IMPORTED)
- endif()
-
- set_property (TARGET ${__name}
- PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${${_PYTHON_PREFIX}_INCLUDE_DIRS}")
-
- if (${_PYTHON_PREFIX}_LIBRARY_RELEASE AND ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE)
- # System manage shared libraries in two parts: import and runtime
- if (${_PYTHON_PREFIX}_LIBRARY_RELEASE AND ${_PYTHON_PREFIX}_LIBRARY_DEBUG)
- set_property (TARGET ${__name} PROPERTY IMPORTED_CONFIGURATIONS RELEASE DEBUG)
- set_target_properties (${__name}
- PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
- IMPORTED_IMPLIB_RELEASE "${${_PYTHON_PREFIX}_LIBRARY_RELEASE}"
- IMPORTED_LOCATION_RELEASE "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE}")
- set_target_properties (${__name}
- PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
- IMPORTED_IMPLIB_DEBUG "${${_PYTHON_PREFIX}_LIBRARY_DEBUG}"
- IMPORTED_LOCATION_DEBUG "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG}")
- else()
- set_target_properties (${__name}
- PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C"
- IMPORTED_IMPLIB "${${_PYTHON_PREFIX}_LIBRARY}"
- IMPORTED_LOCATION "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY}")
- endif()
- else()
- if (${_PYTHON_PREFIX}_LIBRARY_RELEASE AND ${_PYTHON_PREFIX}_LIBRARY_DEBUG)
- set_property (TARGET ${__name} PROPERTY IMPORTED_CONFIGURATIONS RELEASE DEBUG)
- set_target_properties (${__name}
- PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
- IMPORTED_LOCATION_RELEASE "${${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
- set_target_properties (${__name}
- PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
- IMPORTED_LOCATION_DEBUG "${${_PYTHON_PREFIX}_LIBRARY_DEBUG}")
- else()
- set_target_properties (${__name}
- PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C"
- IMPORTED_LOCATION "${${_PYTHON_PREFIX}_LIBRARY}")
- endif()
- endif()
-
- if (_${_PYTHON_PREFIX}_LIBRARY_TYPE STREQUAL "STATIC")
- # extend link information with dependent libraries
- _python_get_config_var (_${_PYTHON_PREFIX}_LINK_LIBRARIES LIBS)
- if (_${_PYTHON_PREFIX}_LINK_LIBRARIES)
- set_property (TARGET ${__name}
- PROPERTY INTERFACE_LINK_LIBRARIES ${_${_PYTHON_PREFIX}_LINK_LIBRARIES})
- endif()
- endif()
- endmacro()
-
- __python_import_library (${_PYTHON_PREFIX}::Python)
-
- if (CMAKE_SYSTEM_NAME MATCHES "^(Windows.*|CYGWIN|MSYS)$")
- # On Windows/CYGWIN/MSYS, Python::Module is the same as Python::Python
- # but ALIAS cannot be used because the imported library is not GLOBAL.
- __python_import_library (${_PYTHON_PREFIX}::Module)
- else()
- if (NOT TARGET ${_PYTHON_PREFIX}::Module )
- add_library (${_PYTHON_PREFIX}::Module INTERFACE IMPORTED)
- endif()
- set_property (TARGET ${_PYTHON_PREFIX}::Module
- PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${${_PYTHON_PREFIX}_INCLUDE_DIRS}")
-
- # When available, enforce shared library generation with undefined symbols
- if (APPLE)
- set_property (TARGET ${_PYTHON_PREFIX}::Module
- PROPERTY INTERFACE_LINK_OPTIONS "LINKER:-undefined,dynamic_lookup")
- endif()
- if (CMAKE_SYSTEM_NAME STREQUAL "SunOS")
- set_property (TARGET ${_PYTHON_PREFIX}::Module
- PROPERTY INTERFACE_LINK_OPTIONS "LINKER:-z,nodefs")
- endif()
- if (CMAKE_SYSTEM_NAME STREQUAL "AIX")
- set_property (TARGET ${_PYTHON_PREFIX}::Module
- PROPERTY INTERFACE_LINK_OPTIONS "LINKER:-b,erok")
- endif()
- endif()
-
- #
- # PYTHON_ADD_LIBRARY (<name> [STATIC|SHARED|MODULE] src1 src2 ... srcN)
- # It is used to build modules for python.
- #
- function (__${_PYTHON_PREFIX}_ADD_LIBRARY prefix name)
- cmake_parse_arguments (PARSE_ARGV 2 PYTHON_ADD_LIBRARY
- "STATIC;SHARED;MODULE" "" "")
-
- unset (type)
- if (NOT (PYTHON_ADD_LIBRARY_STATIC
- OR PYTHON_ADD_LIBRARY_SHARED
- OR PYTHON_ADD_LIBRARY_MODULE))
- set (type MODULE)
- endif()
- add_library (${name} ${type} ${ARGN})
-
- get_property (type TARGET ${name} PROPERTY TYPE)
-
- if (type STREQUAL "MODULE_LIBRARY")
- target_link_libraries (${name} PRIVATE ${prefix}::Module)
- # customize library name to follow module name rules
- set_property (TARGET ${name} PROPERTY PREFIX "")
- if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
- set_property (TARGET ${name} PROPERTY SUFFIX ".pyd")
- endif()
- else()
- target_link_libraries (${name} PRIVATE ${prefix}::Python)
- endif()
- endfunction()
- endif()
-
- if ("NumPy" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS AND ${_PYTHON_PREFIX}_NumPy_FOUND
- AND NOT TARGET ${_PYTHON_PREFIX}::NumPy AND TARGET ${_PYTHON_PREFIX}::Module)
- add_library (${_PYTHON_PREFIX}::NumPy INTERFACE IMPORTED)
- set_property (TARGET ${_PYTHON_PREFIX}::NumPy
- PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${${_PYTHON_PREFIX}_NumPy_INCLUDE_DIRS}")
- target_link_libraries (${_PYTHON_PREFIX}::NumPy INTERFACE ${_PYTHON_PREFIX}::Module)
- endif()
-endif()
-
-# final clean-up
-
-# Restore CMAKE_FIND_APPBUNDLE
-if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
- set (CMAKE_FIND_APPBUNDLE ${_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE})
- unset (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
-else()
- unset (CMAKE_FIND_APPBUNDLE)
-endif()
-# Restore CMAKE_FIND_FRAMEWORK
-if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
- set (CMAKE_FIND_FRAMEWORK ${_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK})
- unset (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
-else()
- unset (CMAKE_FIND_FRAMEWORK)
-endif()
-
-unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
diff --git a/share/cmake-3.16/Modules/FindPython2.cmake b/share/cmake-3.16/Modules/FindPython2.cmake
deleted file mode 100644
index 3cc7d56..0000000
--- a/share/cmake-3.16/Modules/FindPython2.cmake
+++ /dev/null
@@ -1,267 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindPython2
------------
-
-Find Python 2 interpreter, compiler and development environment (include
-directories and libraries).
-
-The following components are supported:
-
-* ``Interpreter``: search for Python 2 interpreter
-* ``Compiler``: search for Python 2 compiler. Only offered by IronPython.
-* ``Development``: search for development artifacts (include directories and
- libraries)
-* ``NumPy``: search for NumPy include directories.
-
-If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
-
-To ensure consistent versions between components ``Interpreter``, ``Compiler``,
-``Development`` and ``NumPy``, specify all components at the same time::
-
- find_package (Python2 COMPONENTS Interpreter Development)
-
-This module looks only for version 2 of Python. This module can be used
-concurrently with :module:`FindPython3` module to use both Python versions.
-
-The :module:`FindPython` module can be used if Python version does not matter
-for you.
-
-.. note::
-
- If components ``Interpreter`` and ``Development`` are both specified, this
- module search only for interpreter with same platform architecture as the one
- defined by ``CMake`` configuration. This contraint does not apply if only
- ``Interpreter`` component is specified.
-
-Imported Targets
-^^^^^^^^^^^^^^^^
-
-This module defines the following :ref:`Imported Targets <Imported Targets>`
-(when :prop_gbl:`CMAKE_ROLE` is ``PROJECT``):
-
-``Python2::Interpreter``
- Python 2 interpreter. Target defined if component ``Interpreter`` is found.
-``Python2::Compiler``
- Python 2 compiler. Target defined if component ``Compiler`` is found.
-``Python2::Python``
- Python 2 library for Python embedding. Target defined if component
- ``Development`` is found.
-``Python2::Module``
- Python 2 library for Python module. Target defined if component
- ``Development`` is found.
-``Python2::NumPy``
- NumPy library for Python 2. Target defined if component ``NumPy`` is found.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module will set the following variables in your project
-(see :ref:`Standard Variable Names <CMake Developer Standard Variable Names>`):
-
-``Python2_FOUND``
- System has the Python 2 requested components.
-``Python2_Interpreter_FOUND``
- System has the Python 2 interpreter.
-``Python2_EXECUTABLE``
- Path to the Python 2 interpreter.
-``Python2_INTERPRETER_ID``
- A short string unique to the interpreter. Possible values include:
- * Python
- * ActivePython
- * Anaconda
- * Canopy
- * IronPython
-``Python2_STDLIB``
- Standard platform independent installation directory.
-
- Information returned by
- ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``.
-``Python2_STDARCH``
- Standard platform dependent installation directory.
-
- Information returned by
- ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``.
-``Python2_SITELIB``
- Third-party platform independent installation directory.
-
- Information returned by
- ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``.
-``Python2_SITEARCH``
- Third-party platform dependent installation directory.
-
- Information returned by
- ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``.
-``Python2_Compiler_FOUND``
- System has the Python 2 compiler.
-``Python2_COMPILER``
- Path to the Python 2 compiler. Only offered by IronPython.
-``Python2_COMPILER_ID``
- A short string unique to the compiler. Possible values include:
- * IronPython
-``Python2_Development_FOUND``
- System has the Python 2 development artifacts.
-``Python2_INCLUDE_DIRS``
- The Python 2 include directories.
-``Python2_LIBRARIES``
- The Python 2 libraries.
-``Python2_LIBRARY_DIRS``
- The Python 2 library directories.
-``Python2_RUNTIME_LIBRARY_DIRS``
- The Python 2 runtime library directories.
-``Python2_VERSION``
- Python 2 version.
-``Python2_VERSION_MAJOR``
- Python 2 major version.
-``Python2_VERSION_MINOR``
- Python 2 minor version.
-``Python2_VERSION_PATCH``
- Python 2 patch version.
-``Python2_NumPy_FOUND``
- System has the NumPy.
-``Python2_NumPy_INCLUDE_DIRS``
- The NumPy include directries.
-``Python2_NumPy_VERSION``
- The NumPy version.
-
-Hints
-^^^^^
-
-``Python2_ROOT_DIR``
- Define the root directory of a Python 2 installation.
-
-``Python2_USE_STATIC_LIBS``
- * If not defined, search for shared libraries and static libraries in that
- order.
- * If set to TRUE, search **only** for static libraries.
- * If set to FALSE, search **only** for shared libraries.
-
-``Python2_FIND_STRATEGY``
- This variable defines how lookup will be done.
- The ``Python2_FIND_STRATEGY`` variable can be set to empty or one of the
- following:
-
- * ``VERSION``: Try to find the most recent version in all specified
- locations.
- This is the default if policy :policy:`CMP0094` is undefined or set to
- ``OLD``.
- * ``LOCATION``: Stops lookup as soon as a version satisfying version
- constraints is founded.
- This is the default if policy :policy:`CMP0094` is set to ``NEW``.
-
-``Python2_FIND_REGISTRY``
- On Windows the ``Python2_FIND_REGISTRY`` variable determine the order
- of preference between registry and environment variables.
- the ``Python2_FIND_REGISTRY`` variable can be set to empty or one of the
- following:
-
- * ``FIRST``: Try to use registry before environment variables.
- This is the default.
- * ``LAST``: Try to use registry after environment variables.
- * ``NEVER``: Never try to use registry.
-
-``Python2_FIND_FRAMEWORK``
- On macOS the ``Python2_FIND_FRAMEWORK`` variable determine the order of
- preference between Apple-style and unix-style package components.
- This variable can be set to empty or take same values as
- :variable:`CMAKE_FIND_FRAMEWORK` variable.
-
- .. note::
-
- Value ``ONLY`` is not supported so ``FIRST`` will be used instead.
-
- If ``Python2_FIND_FRAMEWORK`` is not defined, :variable:`CMAKE_FIND_FRAMEWORK`
- variable will be used, if any.
-
-``Python2_FIND_VIRTUALENV``
- This variable defines the handling of virtual environments. It is meaningfull
- only when a virtual environment is active (i.e. the ``activate`` script has
- been evaluated). In this case, it takes precedence over
- ``Python2_FIND_REGISTRY`` and ``CMAKE_FIND_FRAMEWORK`` variables.
- The ``Python2_FIND_VIRTUALENV`` variable can be set to empty or one of the
- following:
-
- * ``FIRST``: The virtual environment is used before any other standard
- paths to look-up for the interpreter. This is the default.
- * ``ONLY``: Only the virtual environment is used to look-up for the
- interpreter.
- * ``STANDARD``: The virtual environment is not used to look-up for the
- interpreter. In this case, variable ``Python2_FIND_REGISTRY`` (Windows)
- or ``CMAKE_FIND_FRAMEWORK`` (macOS) can be set with value ``LAST`` or
- ``NEVER`` to select preferably the interpreter from the virtual
- environment.
-
- .. note::
-
- If the component ``Development`` is requested, it is **strongly**
- recommended to also include the component ``Interpreter`` to get expected
- result.
-
-Artifacts Specification
-^^^^^^^^^^^^^^^^^^^^^^^
-
-To solve special cases, it is possible to specify directly the artifacts by
-setting the following variables:
-
-``Python2_EXECUTABLE``
- The path to the interpreter.
-
-``Python2_COMPILER``
- The path to the compiler.
-
-``Python2_LIBRARY``
- The path to the library. It will be used to compute the
- variables ``Python2_LIBRARIES``, ``Python2_LIBRAY_DIRS`` and
- ``Python2_RUNTIME_LIBRARY_DIRS``.
-
-``Python2_INCLUDE_DIR``
- The path to the directory of the ``Python`` headers. It will be used to
- compute the variable ``Python2_INCLUDE_DIRS``.
-
-``Python2_NumPy_INCLUDE_DIR``
- The path to the directory of the ``NumPy`` headers. It will be used to
- compute the variable ``Python2_NumPy_INCLUDE_DIRS``.
-
-.. note::
-
- All paths must be absolute. Any artifact specified with a relative path
- will be ignored.
-
-.. note::
-
- When an artifact is specified, all ``HINTS`` will be ignored and no search
- will be performed for this artifact.
-
- If more than one artifact is specified, it is the user's responsability to
- ensure the consistency of the various artifacts.
-
-Commands
-^^^^^^^^
-
-This module defines the command ``Python_add_library`` (when
-:prop_gbl:`CMAKE_ROLE` is ``PROJECT``), which has the same semantics as
-:command:`add_library` and adds a dependency to target ``Python2::Python`` or,
-when library type is ``MODULE``, to target ``Python2::Module`` and takes care
-of Python module naming rules::
-
- Python2_add_library (my_module MODULE src1.cpp)
-
-If library type is not specified, ``MODULE`` is assumed.
-#]=======================================================================]
-
-
-set (_PYTHON_PREFIX Python2)
-
-set (_Python2_REQUIRED_VERSION_MAJOR 2)
-
-include (${CMAKE_CURRENT_LIST_DIR}/FindPython/Support.cmake)
-
-if (COMMAND __Python2_add_library)
- macro (Python2_add_library)
- __Python2_add_library (Python2 ${ARGV})
- endmacro()
-endif()
-
-unset (_PYTHON_PREFIX)
diff --git a/share/cmake-3.16/Modules/FindPython3.cmake b/share/cmake-3.16/Modules/FindPython3.cmake
deleted file mode 100644
index 066d0df..0000000
--- a/share/cmake-3.16/Modules/FindPython3.cmake
+++ /dev/null
@@ -1,308 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindPython3
------------
-
-Find Python 3 interpreter, compiler and development environment (include
-directories and libraries).
-
-The following components are supported:
-
-* ``Interpreter``: search for Python 3 interpreter
-* ``Compiler``: search for Python 3 compiler. Only offered by IronPython.
-* ``Development``: search for development artifacts (include directories and
- libraries)
-* ``NumPy``: search for NumPy include directories.
-
-If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
-
-To ensure consistent versions between components ``Interpreter``, ``Compiler``,
-``Development`` and ``NumPy``, specify all components at the same time::
-
- find_package (Python3 COMPONENTS Interpreter Development)
-
-This module looks only for version 3 of Python. This module can be used
-concurrently with :module:`FindPython2` module to use both Python versions.
-
-The :module:`FindPython` module can be used if Python version does not matter
-for you.
-
-.. note::
-
- If components ``Interpreter`` and ``Development`` are both specified, this
- module search only for interpreter with same platform architecture as the one
- defined by ``CMake`` configuration. This contraint does not apply if only
- ``Interpreter`` component is specified.
-
-Imported Targets
-^^^^^^^^^^^^^^^^
-
-This module defines the following :ref:`Imported Targets <Imported Targets>`
-(when :prop_gbl:`CMAKE_ROLE` is ``PROJECT``):
-
-``Python3::Interpreter``
- Python 3 interpreter. Target defined if component ``Interpreter`` is found.
-``Python3::Compiler``
- Python 3 compiler. Target defined if component ``Compiler`` is found.
-``Python3::Python``
- Python 3 library for Python embedding. Target defined if component
- ``Development`` is found.
-``Python3::Module``
- Python 3 library for Python module. Target defined if component
- ``Development`` is found.
-``Python3::NumPy``
- NumPy library for Python 3. Target defined if component ``NumPy`` is found.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module will set the following variables in your project
-(see :ref:`Standard Variable Names <CMake Developer Standard Variable Names>`):
-
-``Python3_FOUND``
- System has the Python 3 requested components.
-``Python3_Interpreter_FOUND``
- System has the Python 3 interpreter.
-``Python3_EXECUTABLE``
- Path to the Python 3 interpreter.
-``Python3_INTERPRETER_ID``
- A short string unique to the interpreter. Possible values include:
- * Python
- * ActivePython
- * Anaconda
- * Canopy
- * IronPython
-``Python3_STDLIB``
- Standard platform independent installation directory.
-
- Information returned by
- ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``.
-``Python3_STDARCH``
- Standard platform dependent installation directory.
-
- Information returned by
- ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``.
-``Python3_SITELIB``
- Third-party platform independent installation directory.
-
- Information returned by
- ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``.
-``Python3_SITEARCH``
- Third-party platform dependent installation directory.
-
- Information returned by
- ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``.
-``Python3_Compiler_FOUND``
- System has the Python 3 compiler.
-``Python3_COMPILER``
- Path to the Python 3 compiler. Only offered by IronPython.
-``Python3_COMPILER_ID``
- A short string unique to the compiler. Possible values include:
- * IronPython
-``Python3_Development_FOUND``
- System has the Python 3 development artifacts.
-``Python3_INCLUDE_DIRS``
- The Python 3 include directories.
-``Python3_LIBRARIES``
- The Python 3 libraries.
-``Python3_LIBRARY_DIRS``
- The Python 3 library directories.
-``Python3_RUNTIME_LIBRARY_DIRS``
- The Python 3 runtime library directories.
-``Python3_VERSION``
- Python 3 version.
-``Python3_VERSION_MAJOR``
- Python 3 major version.
-``Python3_VERSION_MINOR``
- Python 3 minor version.
-``Python3_VERSION_PATCH``
- Python 3 patch version.
-``Python3_NumPy_FOUND``
- System has the NumPy.
-``Python3_NumPy_INCLUDE_DIRS``
- The NumPy include directries.
-``Python3_NumPy_VERSION``
- The NumPy version.
-
-Hints
-^^^^^
-
-``Python3_ROOT_DIR``
- Define the root directory of a Python 3 installation.
-
-``Python3_USE_STATIC_LIBS``
- * If not defined, search for shared libraries and static libraries in that
- order.
- * If set to TRUE, search **only** for static libraries.
- * If set to FALSE, search **only** for shared libraries.
-
-``Python3_FIND_ABI``
- This variable defines which ABIs, as defined in
- `PEP 3149 <https://www.python.org/dev/peps/pep-3149/>`_, should be searched.
-
- .. note::
-
- If ``Python3_FIND_ABI`` is not defined, any ABI will be searched.
-
- The ``Python3_FIND_ABI`` variable is a 3-tuple specifying, in that order,
- ``pydebug`` (``d``), ``pymalloc`` (``m``) and ``unicode`` (``u``) flags.
- Each element can be set to one of the following:
-
- * ``ON``: Corresponding flag is selected.
- * ``OFF``: Corresponding flag is not selected.
- * ``ANY``: The two posibilties (``ON`` and ``OFF``) will be searched.
-
- From this 3-tuple, various ABIs will be searched starting from the most
- specialized to the most general. Moreover, ``debug`` versions will be
- searched **after** ``non-debug`` ones.
-
- For example, if we have::
-
- set (Python3_FIND_ABI "ON" "ANY" "ANY")
-
- The following flags combinations will be appended, in that order, to the
- artifact names: ``dmu``, ``dm``, ``du``, and ``d``.
-
- And to search any possible ABIs::
-
- set (Python3_FIND_ABI "ANY" "ANY" "ANY")
-
- The following combinations, in that order, will be used: ``mu``, ``m``,
- ``u``, ``<empty>``, ``dmu``, ``dm``, ``du`` and ``d``.
-
- .. note::
-
- This hint is useful only on ``POSIX`` systems. So, on ``Windows`` systems,
- when ``Python3_FIND_ABI`` is defined, ``Python`` distributions from
- `python.org <https://www.python.org/>`_ will be found only if value for
- each flag is ``OFF`` or ``ANY``.
-
-``Python3_FIND_STRATEGY``
- This variable defines how lookup will be done.
- The ``Python3_FIND_STRATEGY`` variable can be set to empty or one of the
- following:
-
- * ``VERSION``: Try to find the most recent version in all specified
- locations.
- This is the default if policy :policy:`CMP0094` is undefined or set to
- ``OLD``.
- * ``LOCATION``: Stops lookup as soon as a version satisfying version
- constraints is founded.
- This is the default if policy :policy:`CMP0094` is set to ``NEW``.
-
-``Python3_FIND_REGISTRY``
- On Windows the ``Python3_FIND_REGISTRY`` variable determine the order
- of preference between registry and environment variables.
- The ``Python3_FIND_REGISTRY`` variable can be set to empty or one of the
- following:
-
- * ``FIRST``: Try to use registry before environment variables.
- This is the default.
- * ``LAST``: Try to use registry after environment variables.
- * ``NEVER``: Never try to use registry.
-
-``Python3_FIND_FRAMEWORK``
- On macOS the ``Python3_FIND_FRAMEWORK`` variable determine the order of
- preference between Apple-style and unix-style package components.
- This variable can be set to empty or take same values as
- :variable:`CMAKE_FIND_FRAMEWORK` variable.
-
- .. note::
-
- Value ``ONLY`` is not supported so ``FIRST`` will be used instead.
-
- If ``Python3_FIND_FRAMEWORK`` is not defined, :variable:`CMAKE_FIND_FRAMEWORK`
- variable will be used, if any.
-
-``Python3_FIND_VIRTUALENV``
- This variable defines the handling of virtual environments. It is meaningfull
- only when a virtual environment is active (i.e. the ``activate`` script has
- been evaluated). In this case, it takes precedence over
- ``Python3_FIND_REGISTRY`` and ``CMAKE_FIND_FRAMEWORK`` variables.
- The ``Python3_FIND_VIRTUALENV`` variable can be set to empty or one of the
- following:
-
- * ``FIRST``: The virtual environment is used before any other standard
- paths to look-up for the interpreter. This is the default.
- * ``ONLY``: Only the virtual environment is used to look-up for the
- interpreter.
- * ``STANDARD``: The virtual environment is not used to look-up for the
- interpreter. In this case, variable ``Python3_FIND_REGISTRY`` (Windows)
- or ``CMAKE_FIND_FRAMEWORK`` (macOS) can be set with value ``LAST`` or
- ``NEVER`` to select preferably the interpreter from the virtual
- environment.
-
- .. note::
-
- If the component ``Development`` is requested, it is **strongly**
- recommended to also include the component ``Interpreter`` to get expected
- result.
-
-Artifacts Specification
-^^^^^^^^^^^^^^^^^^^^^^^
-
-To solve special cases, it is possible to specify directly the artifacts by
-setting the following variables:
-
-``Python3_EXECUTABLE``
- The path to the interpreter.
-
-``Python3_COMPILER``
- The path to the compiler.
-
-``Python3_LIBRARY``
- The path to the library. It will be used to compute the
- variables ``Python3_LIBRARIES``, ``Python3_LIBRAY_DIRS`` and
- ``Python3_RUNTIME_LIBRARY_DIRS``.
-
-``Python3_INCLUDE_DIR``
- The path to the directory of the ``Python`` headers. It will be used to
- compute the variable ``Python3_INCLUDE_DIRS``.
-
-``Python3_NumPy_INCLUDE_DIR``
- The path to the directory of the ``NumPy`` headers. It will be used to
- compute the variable ``Python3_NumPy_INCLUDE_DIRS``.
-
-.. note::
-
- All paths must be absolute. Any artifact specified with a relative path
- will be ignored.
-
-.. note::
-
- When an artifact is specified, all ``HINTS`` will be ignored and no search
- will be performed for this artifact.
-
- If more than one artifact is specified, it is the user's responsability to
- ensure the consistency of the various artifacts.
-
-Commands
-^^^^^^^^
-
-This module defines the command ``Python_add_library`` (when
-:prop_gbl:`CMAKE_ROLE` is ``PROJECT``), which has the same semantics as
-:command:`add_library` and adds a dependency to target ``Python3::Python`` or,
-when library type is ``MODULE``, to target ``Python3::Module`` and takes care
-of Python module naming rules::
-
- Python3_add_library (my_module MODULE src1.cpp)
-
-If library type is not specified, ``MODULE`` is assumed.
-#]=======================================================================]
-
-
-set (_PYTHON_PREFIX Python3)
-
-set (_Python3_REQUIRED_VERSION_MAJOR 3)
-
-include (${CMAKE_CURRENT_LIST_DIR}/FindPython/Support.cmake)
-
-if (COMMAND __Python3_add_library)
- macro (Python3_add_library)
- __Python3_add_library (Python3 ${ARGV})
- endmacro()
-endif()
-
-unset (_PYTHON_PREFIX)
diff --git a/share/cmake-3.16/Modules/FindTCL.cmake b/share/cmake-3.16/Modules/FindTCL.cmake
deleted file mode 100644
index be47c39..0000000
--- a/share/cmake-3.16/Modules/FindTCL.cmake
+++ /dev/null
@@ -1,239 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindTCL
--------
-
-TK_INTERNAL_PATH was removed.
-
-This module finds if Tcl is installed and determines where the include
-files and libraries are. It also determines what the name of the
-library is. This code sets the following variables:
-
-::
-
- TCL_FOUND = Tcl was found
- TK_FOUND = Tk was found
- TCLTK_FOUND = Tcl and Tk were found
- TCL_LIBRARY = path to Tcl library (tcl tcl80)
- TCL_INCLUDE_PATH = path to where tcl.h can be found
- TCL_TCLSH = path to tclsh binary (tcl tcl80)
- TK_LIBRARY = path to Tk library (tk tk80 etc)
- TK_INCLUDE_PATH = path to where tk.h can be found
- TK_WISH = full path to the wish executable
-
-
-
-In an effort to remove some clutter and clear up some issues for
-people who are not necessarily Tcl/Tk gurus/developers, some
-variables were moved or removed. Changes compared to CMake 2.4 are:
-
-::
-
- => they were only useful for people writing Tcl/Tk extensions.
- => these libs are not packaged by default with Tcl/Tk distributions.
- Even when Tcl/Tk is built from source, several flavors of debug libs
- are created and there is no real reason to pick a single one
- specifically (say, amongst tcl84g, tcl84gs, or tcl84sgx).
- Let's leave that choice to the user by allowing him to assign
- TCL_LIBRARY to any Tcl library, debug or not.
- => this ended up being only a Win32 variable, and there is a lot of
- confusion regarding the location of this file in an installed Tcl/Tk
- tree anyway (see 8.5 for example). If you need the internal path at
- this point it is safer you ask directly where the *source* tree is
- and dig from there.
-#]=======================================================================]
-
-include(${CMAKE_CURRENT_LIST_DIR}/CMakeFindFrameworks.cmake)
-include(${CMAKE_CURRENT_LIST_DIR}/FindTclsh.cmake)
-include(${CMAKE_CURRENT_LIST_DIR}/FindWish.cmake)
-
-if(TCLSH_VERSION_STRING)
- set(TCL_TCLSH_VERSION "${TCLSH_VERSION_STRING}")
-else()
- get_filename_component(TCL_TCLSH_PATH "${TCL_TCLSH}" PATH)
- get_filename_component(TCL_TCLSH_PATH_PARENT "${TCL_TCLSH_PATH}" PATH)
- string(REGEX REPLACE
- "^.*tclsh([0-9]\\.*[0-9]).*$" "\\1" TCL_TCLSH_VERSION "${TCL_TCLSH}")
-endif()
-
-get_filename_component(TK_WISH_PATH "${TK_WISH}" PATH)
-get_filename_component(TK_WISH_PATH_PARENT "${TK_WISH_PATH}" PATH)
-string(REGEX REPLACE
- "^.*wish([0-9]\\.*[0-9]).*$" "\\1" TK_WISH_VERSION "${TK_WISH}")
-
-get_filename_component(TCL_INCLUDE_PATH_PARENT "${TCL_INCLUDE_PATH}" PATH)
-get_filename_component(TK_INCLUDE_PATH_PARENT "${TK_INCLUDE_PATH}" PATH)
-
-get_filename_component(TCL_LIBRARY_PATH "${TCL_LIBRARY}" PATH)
-get_filename_component(TCL_LIBRARY_PATH_PARENT "${TCL_LIBRARY_PATH}" PATH)
-string(REGEX REPLACE
- "^.*tcl([0-9]\\.*[0-9]).*$" "\\1" TCL_LIBRARY_VERSION "${TCL_LIBRARY}")
-
-get_filename_component(TK_LIBRARY_PATH "${TK_LIBRARY}" PATH)
-get_filename_component(TK_LIBRARY_PATH_PARENT "${TK_LIBRARY_PATH}" PATH)
-string(REGEX REPLACE
- "^.*tk([0-9]\\.*[0-9]).*$" "\\1" TK_LIBRARY_VERSION "${TK_LIBRARY}")
-
-set(TCLTK_POSSIBLE_LIB_PATHS
- "${TCL_INCLUDE_PATH_PARENT}/lib"
- "${TK_INCLUDE_PATH_PARENT}/lib"
- "${TCL_LIBRARY_PATH}"
- "${TK_LIBRARY_PATH}"
- "${TCL_TCLSH_PATH_PARENT}/lib"
- "${TK_WISH_PATH_PARENT}/lib"
-)
-
-set(TCLTK_POSSIBLE_LIB_PATH_SUFFIXES
- lib/tcl/tcl8.7
- lib/tcl/tk8.7
- lib/tcl/tcl8.6
- lib/tcl/tk8.6
- lib/tcl/tcl8.5
- lib/tcl/tk8.5
- lib/tcl/tcl8.4
- lib/tcl/tk8.4
-)
-
-if(WIN32)
- get_filename_component(
- ActiveTcl_CurrentVersion
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl;CurrentVersion]"
- NAME)
- set(TCLTK_POSSIBLE_LIB_PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/lib"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/lib"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/lib"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/lib"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/lib"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/lib"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/lib"
- "$ENV{ProgramFiles}/Tcl/Lib"
- "C:/Program Files/Tcl/lib"
- "C:/Tcl/lib"
- )
-endif()
-
-find_library(TCL_LIBRARY
- NAMES
- tcl
- tcl${TCL_LIBRARY_VERSION} tcl${TCL_TCLSH_VERSION} tcl${TK_WISH_VERSION}
- tcl87 tcl8.7 tcl87t tcl8.7t
- tcl86 tcl8.6 tcl86t tcl8.6t
- tcl85 tcl8.5
- tcl84 tcl8.4
- tcl83 tcl8.3
- tcl82 tcl8.2
- tcl80 tcl8.0
- PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
- PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
- )
-
-find_library(TK_LIBRARY
- NAMES
- tk
- tk${TK_LIBRARY_VERSION} tk${TCL_TCLSH_VERSION} tk${TK_WISH_VERSION}
- tk87 tk8.7 tk87t tk8.7t
- tk86 tk8.6 tk86t tk8.6t
- tk85 tk8.5
- tk84 tk8.4
- tk83 tk8.3
- tk82 tk8.2
- tk80 tk8.0
- PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
- PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
- )
-
-CMAKE_FIND_FRAMEWORKS(Tcl)
-CMAKE_FIND_FRAMEWORKS(Tk)
-
-set(TCL_FRAMEWORK_INCLUDES)
-if(Tcl_FRAMEWORKS)
- if(NOT TCL_INCLUDE_PATH)
- foreach(dir ${Tcl_FRAMEWORKS})
- set(TCL_FRAMEWORK_INCLUDES ${TCL_FRAMEWORK_INCLUDES} ${dir}/Headers)
- endforeach()
- endif()
-endif()
-
-set(TK_FRAMEWORK_INCLUDES)
-if(Tk_FRAMEWORKS)
- if(NOT TK_INCLUDE_PATH)
- foreach(dir ${Tk_FRAMEWORKS})
- set(TK_FRAMEWORK_INCLUDES ${TK_FRAMEWORK_INCLUDES}
- ${dir}/Headers ${dir}/PrivateHeaders)
- endforeach()
- endif()
-endif()
-
-set(TCLTK_POSSIBLE_INCLUDE_PATHS
- "${TCL_LIBRARY_PATH_PARENT}/include"
- "${TK_LIBRARY_PATH_PARENT}/include"
- "${TCL_INCLUDE_PATH}"
- "${TK_INCLUDE_PATH}"
- ${TCL_FRAMEWORK_INCLUDES}
- ${TK_FRAMEWORK_INCLUDES}
- "${TCL_TCLSH_PATH_PARENT}/include"
- "${TK_WISH_PATH_PARENT}/include"
- )
-
-set(TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES
- include/tcl${TK_LIBRARY_VERSION}
- include/tcl${TCL_LIBRARY_VERSION}
- include/tcl8.7
- include/tk8.7
- include/tcl8.6
- include/tk8.6
- include/tcl8.5
- include/tk8.5
- include/tcl8.4
- include/tk8.4
- include/tcl8.3
- include/tcl8.2
- include/tcl8.0
- )
-
-if(WIN32)
- set(TCLTK_POSSIBLE_INCLUDE_PATHS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/include"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/include"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/include"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/include"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/include"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/include"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/include"
- "$ENV{ProgramFiles}/Tcl/include"
- "C:/Program Files/Tcl/include"
- "C:/Tcl/include"
- )
-endif()
-
-find_path(TCL_INCLUDE_PATH
- NAMES tcl.h
- HINTS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
- PATH_SUFFIXES ${TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES}
- )
-
-find_path(TK_INCLUDE_PATH
- NAMES tk.h
- HINTS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
- PATH_SUFFIXES ${TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES}
- )
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(TCL DEFAULT_MSG TCL_LIBRARY TCL_INCLUDE_PATH)
-set(TCLTK_FIND_REQUIRED ${TCL_FIND_REQUIRED})
-set(TCLTK_FIND_QUIETLY ${TCL_FIND_QUIETLY})
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(TCLTK DEFAULT_MSG TCL_LIBRARY TCL_INCLUDE_PATH TK_LIBRARY TK_INCLUDE_PATH)
-set(TK_FIND_REQUIRED ${TCL_FIND_REQUIRED})
-set(TK_FIND_QUIETLY ${TCL_FIND_QUIETLY})
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(TK DEFAULT_MSG TK_LIBRARY TK_INCLUDE_PATH)
-
-mark_as_advanced(
- TCL_INCLUDE_PATH
- TK_INCLUDE_PATH
- TCL_LIBRARY
- TK_LIBRARY
- )
diff --git a/share/cmake-3.16/Modules/FindThreads.cmake b/share/cmake-3.16/Modules/FindThreads.cmake
deleted file mode 100644
index b0c91b2..0000000
--- a/share/cmake-3.16/Modules/FindThreads.cmake
+++ /dev/null
@@ -1,234 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindThreads
------------
-
-This module determines the thread library of the system.
-
-The following variables are set
-
-::
-
- CMAKE_THREAD_LIBS_INIT - the thread library
- CMAKE_USE_WIN32_THREADS_INIT - using WIN32 threads?
- CMAKE_USE_PTHREADS_INIT - are we using pthreads
- CMAKE_HP_PTHREADS_INIT - are we using hp pthreads
-
-The following import target is created
-
-::
-
- Threads::Threads
-
-If the use of the -pthread compiler and linker flag is preferred then the
-caller can set
-
-::
-
- THREADS_PREFER_PTHREAD_FLAG
-
-The compiler flag can only be used with the imported
-target. Use of both the imported target as well as this switch is highly
-recommended for new code.
-#]=======================================================================]
-
-include (CheckLibraryExists)
-set(Threads_FOUND FALSE)
-set(CMAKE_REQUIRED_QUIET_SAVE ${CMAKE_REQUIRED_QUIET})
-set(CMAKE_REQUIRED_QUIET ${Threads_FIND_QUIETLY})
-
-if(CMAKE_C_COMPILER_LOADED)
- include (CheckIncludeFile)
- include (CheckCSourceCompiles)
-elseif(CMAKE_CXX_COMPILER_LOADED)
- include (CheckIncludeFileCXX)
- include (CheckCXXSourceCompiles)
-else()
- message(FATAL_ERROR "FindThreads only works if either C or CXX language is enabled")
-endif()
-
-# simple pthread test code
-set(PTHREAD_C_CXX_TEST_SOURCE [====[
-#include <pthread.h>
-
-void* test_func(void* data)
-{
- return data;
-}
-
-int main(void)
-{
- pthread_t thread;
- pthread_create(&thread, NULL, test_func, NULL);
- pthread_detach(thread);
- pthread_join(thread, NULL);
- pthread_atfork(NULL, NULL, NULL);
- pthread_exit(NULL);
-
- return 0;
-}
-]====])
-
-# Internal helper macro.
-# Do NOT even think about using it outside of this file!
-macro(_check_threads_lib LIBNAME FUNCNAME VARNAME)
- if(NOT Threads_FOUND)
- CHECK_LIBRARY_EXISTS(${LIBNAME} ${FUNCNAME} "" ${VARNAME})
- if(${VARNAME})
- set(CMAKE_THREAD_LIBS_INIT "-l${LIBNAME}")
- set(CMAKE_HAVE_THREADS_LIBRARY 1)
- set(Threads_FOUND TRUE)
- endif()
- endif ()
-endmacro()
-
-# Internal helper macro.
-# Do NOT even think about using it outside of this file!
-macro(_check_pthreads_flag)
- if(NOT Threads_FOUND)
- # If we did not found -lpthread, -lpthread, or -lthread, look for -pthread
- if(NOT DEFINED THREADS_HAVE_PTHREAD_ARG)
- message(STATUS "Check if compiler accepts -pthread")
- if(CMAKE_C_COMPILER_LOADED)
- set(_threads_src ${CMAKE_CURRENT_LIST_DIR}/CheckForPthreads.c)
- elseif(CMAKE_CXX_COMPILER_LOADED)
- set(_threads_src ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindThreads/CheckForPthreads.cxx)
- configure_file(${CMAKE_CURRENT_LIST_DIR}/CheckForPthreads.c "${_threads_src}" COPYONLY)
- endif()
- try_compile(THREADS_HAVE_PTHREAD_ARG
- ${CMAKE_BINARY_DIR}
- ${_threads_src}
- CMAKE_FLAGS -DLINK_LIBRARIES:STRING=-pthread
- OUTPUT_VARIABLE OUTPUT)
- unset(_threads_src)
-
- if(THREADS_HAVE_PTHREAD_ARG)
- set(Threads_FOUND TRUE)
- message(STATUS "Check if compiler accepts -pthread - yes")
- else()
- message(STATUS "Check if compiler accepts -pthread - no")
- file(APPEND
- ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if compiler accepts -pthread failed with the following output:\n${OUTPUT}\n\n")
- endif()
-
- endif()
-
- if(THREADS_HAVE_PTHREAD_ARG)
- set(Threads_FOUND TRUE)
- set(CMAKE_THREAD_LIBS_INIT "-pthread")
- endif()
- endif()
-endmacro()
-
-# Do we have pthreads?
-if(CMAKE_C_COMPILER_LOADED)
- CHECK_INCLUDE_FILE("pthread.h" CMAKE_HAVE_PTHREAD_H)
-else()
- CHECK_INCLUDE_FILE_CXX("pthread.h" CMAKE_HAVE_PTHREAD_H)
-endif()
-
-if(CMAKE_HAVE_PTHREAD_H)
- #
- # We have pthread.h
- # Let's check for the library now.
- #
- set(CMAKE_HAVE_THREADS_LIBRARY)
- if(NOT THREADS_HAVE_PTHREAD_ARG)
- # Check if pthread functions are in normal C library.
- # We list some pthread functions in PTHREAD_C_CXX_TEST_SOURCE test code.
- # If the pthread functions already exist in C library, we could just use
- # them instead of linking to the additional pthread library.
- if(CMAKE_C_COMPILER_LOADED)
- CHECK_C_SOURCE_COMPILES("${PTHREAD_C_CXX_TEST_SOURCE}" CMAKE_HAVE_LIBC_PTHREAD)
- elseif(CMAKE_CXX_COMPILER_LOADED)
- CHECK_CXX_SOURCE_COMPILES("${PTHREAD_C_CXX_TEST_SOURCE}" CMAKE_HAVE_LIBC_PTHREAD)
- endif()
- if(CMAKE_HAVE_LIBC_PTHREAD)
- set(CMAKE_THREAD_LIBS_INIT "")
- set(CMAKE_HAVE_THREADS_LIBRARY 1)
- set(Threads_FOUND TRUE)
- else()
- # Check for -pthread first if enabled. This is the recommended
- # way, but not backwards compatible as one must also pass -pthread
- # as compiler flag then.
- if (THREADS_PREFER_PTHREAD_FLAG)
- _check_pthreads_flag()
- endif ()
-
- if(CMAKE_SYSTEM MATCHES "GHS-MULTI")
- _check_threads_lib(posix pthread_create CMAKE_HAVE_PTHREADS_CREATE)
- endif()
- _check_threads_lib(pthreads pthread_create CMAKE_HAVE_PTHREADS_CREATE)
- _check_threads_lib(pthread pthread_create CMAKE_HAVE_PTHREAD_CREATE)
- if(CMAKE_SYSTEM_NAME MATCHES "SunOS")
- # On sun also check for -lthread
- _check_threads_lib(thread thr_create CMAKE_HAVE_THR_CREATE)
- endif()
- endif()
- endif()
-
- _check_pthreads_flag()
-endif()
-
-if(CMAKE_THREAD_LIBS_INIT OR CMAKE_HAVE_LIBC_PTHREAD)
- set(CMAKE_USE_PTHREADS_INIT 1)
- set(Threads_FOUND TRUE)
-endif()
-
-if(CMAKE_SYSTEM_NAME MATCHES "Windows")
- set(CMAKE_USE_WIN32_THREADS_INIT 1)
- set(Threads_FOUND TRUE)
-endif()
-
-if(CMAKE_USE_PTHREADS_INIT)
- if(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
- # Use libcma if it exists and can be used. It provides more
- # symbols than the plain pthread library. CMA threads
- # have actually been deprecated:
- # http://docs.hp.com/en/B3920-90091/ch12s03.html#d0e11395
- # http://docs.hp.com/en/947/d8.html
- # but we need to maintain compatibility here.
- # The CMAKE_HP_PTHREADS setting actually indicates whether CMA threads
- # are available.
- CHECK_LIBRARY_EXISTS(cma pthread_attr_create "" CMAKE_HAVE_HP_CMA)
- if(CMAKE_HAVE_HP_CMA)
- set(CMAKE_THREAD_LIBS_INIT "-lcma")
- set(CMAKE_HP_PTHREADS_INIT 1)
- set(Threads_FOUND TRUE)
- endif()
- set(CMAKE_USE_PTHREADS_INIT 1)
- endif()
-
- if(CMAKE_SYSTEM MATCHES "OSF1-V")
- set(CMAKE_USE_PTHREADS_INIT 0)
- set(CMAKE_THREAD_LIBS_INIT )
- endif()
-
- if(CMAKE_SYSTEM MATCHES "CYGWIN_NT")
- set(CMAKE_USE_PTHREADS_INIT 1)
- set(Threads_FOUND TRUE)
- set(CMAKE_THREAD_LIBS_INIT )
- set(CMAKE_USE_WIN32_THREADS_INIT 0)
- endif()
-endif()
-
-set(CMAKE_REQUIRED_QUIET ${CMAKE_REQUIRED_QUIET_SAVE})
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Threads DEFAULT_MSG Threads_FOUND)
-
-if(THREADS_FOUND AND NOT TARGET Threads::Threads)
- add_library(Threads::Threads INTERFACE IMPORTED)
-
- if(THREADS_HAVE_PTHREAD_ARG)
- set_property(TARGET Threads::Threads
- PROPERTY INTERFACE_COMPILE_OPTIONS "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler -pthread>"
- "$<$<NOT:$<COMPILE_LANGUAGE:CUDA>>:-pthread>")
- endif()
-
- if(CMAKE_THREAD_LIBS_INIT)
- set_property(TARGET Threads::Threads PROPERTY INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
- endif()
-endif()
diff --git a/share/cmake-3.16/Modules/FortranCInterface.cmake b/share/cmake-3.16/Modules/FortranCInterface.cmake
deleted file mode 100644
index 893a96f..0000000
--- a/share/cmake-3.16/Modules/FortranCInterface.cmake
+++ /dev/null
@@ -1,392 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FortranCInterface
------------------
-
-Fortran/C Interface Detection
-
-This module automatically detects the API by which C and Fortran
-languages interact.
-
-Module Variables
-^^^^^^^^^^^^^^^^
-
-Variables that indicate if the mangling is found:
-
-``FortranCInterface_GLOBAL_FOUND``
- Global subroutines and functions.
-
-``FortranCInterface_MODULE_FOUND``
- Module subroutines and functions (declared by "MODULE PROCEDURE").
-
-This module also provides the following variables to specify
-the detected mangling, though a typical use case does not need
-to reference them and can use the `Module Functions`_ below.
-
-``FortranCInterface_GLOBAL_PREFIX``
- Prefix for a global symbol without an underscore.
-
-``FortranCInterface_GLOBAL_SUFFIX``
- Suffix for a global symbol without an underscore.
-
-``FortranCInterface_GLOBAL_CASE``
- The case for a global symbol without an underscore,
- either ``UPPER`` or ``LOWER``.
-
-``FortranCInterface_GLOBAL__PREFIX``
- Prefix for a global symbol with an underscore.
-
-``FortranCInterface_GLOBAL__SUFFIX``
- Suffix for a global symbol with an underscore.
-
-``FortranCInterface_GLOBAL__CASE``
- The case for a global symbol with an underscore,
- either ``UPPER`` or ``LOWER``.
-
-``FortranCInterface_MODULE_PREFIX``
- Prefix for a module symbol without an underscore.
-
-``FortranCInterface_MODULE_MIDDLE``
- Middle of a module symbol without an underscore that appears
- between the name of the module and the name of the symbol.
-
-``FortranCInterface_MODULE_SUFFIX``
- Suffix for a module symbol without an underscore.
-
-``FortranCInterface_MODULE_CASE``
- The case for a module symbol without an underscore,
- either ``UPPER`` or ``LOWER``.
-
-``FortranCInterface_MODULE__PREFIX``
- Prefix for a module symbol with an underscore.
-
-``FortranCInterface_MODULE__MIDDLE``
- Middle of a module symbol with an underscore that appears
- between the name of the module and the name of the symbol.
-
-``FortranCInterface_MODULE__SUFFIX``
- Suffix for a module symbol with an underscore.
-
-``FortranCInterface_MODULE__CASE``
- The case for a module symbol with an underscore,
- either ``UPPER`` or ``LOWER``.
-
-Module Functions
-^^^^^^^^^^^^^^^^
-
-.. command:: FortranCInterface_HEADER
-
- The ``FortranCInterface_HEADER`` function is provided to generate a
- C header file containing macros to mangle symbol names::
-
- FortranCInterface_HEADER(<file>
- [MACRO_NAMESPACE <macro-ns>]
- [SYMBOL_NAMESPACE <ns>]
- [SYMBOLS [<module>:]<function> ...])
-
- It generates in ``<file>`` definitions of the following macros::
-
- #define FortranCInterface_GLOBAL (name,NAME) ...
- #define FortranCInterface_GLOBAL_(name,NAME) ...
- #define FortranCInterface_MODULE (mod,name, MOD,NAME) ...
- #define FortranCInterface_MODULE_(mod,name, MOD,NAME) ...
-
- These macros mangle four categories of Fortran symbols, respectively:
-
- * Global symbols without '_': ``call mysub()``
- * Global symbols with '_' : ``call my_sub()``
- * Module symbols without '_': ``use mymod; call mysub()``
- * Module symbols with '_' : ``use mymod; call my_sub()``
-
- If mangling for a category is not known, its macro is left undefined.
- All macros require raw names in both lower case and upper case.
-
- The options are:
-
- ``MACRO_NAMESPACE``
- Replace the default ``FortranCInterface_`` prefix with a given
- namespace ``<macro-ns>``.
-
- ``SYMBOLS``
- List symbols to mangle automatically with C preprocessor definitions::
-
- <function> ==> #define <ns><function> ...
- <module>:<function> ==> #define <ns><module>_<function> ...
-
- If the mangling for some symbol is not known then no preprocessor
- definition is created, and a warning is displayed.
-
- ``SYMBOL_NAMESPACE``
- Prefix all preprocessor definitions generated by the ``SYMBOLS``
- option with a given namespace ``<ns>``.
-
-.. command:: FortranCInterface_VERIFY
-
- The ``FortranCInterface_VERIFY`` function is provided to verify
- that the Fortran and C/C++ compilers work together::
-
- FortranCInterface_VERIFY([CXX] [QUIET])
-
- It tests whether a simple test executable using Fortran and C (and C++
- when the CXX option is given) compiles and links successfully. The
- result is stored in the cache entry ``FortranCInterface_VERIFIED_C``
- (or ``FortranCInterface_VERIFIED_CXX`` if ``CXX`` is given) as a boolean.
- If the check fails and ``QUIET`` is not given the function terminates with a
- fatal error message describing the problem. The purpose of this check
- is to stop a build early for incompatible compiler combinations. The
- test is built in the ``Release`` configuration.
-
-Example Usage
-^^^^^^^^^^^^^
-
-.. code-block:: cmake
-
- include(FortranCInterface)
- FortranCInterface_HEADER(FC.h MACRO_NAMESPACE "FC_")
-
-This creates a "FC.h" header that defines mangling macros ``FC_GLOBAL()``,
-``FC_GLOBAL_()``, ``FC_MODULE()``, and ``FC_MODULE_()``.
-
-.. code-block:: cmake
-
- include(FortranCInterface)
- FortranCInterface_HEADER(FCMangle.h
- MACRO_NAMESPACE "FC_"
- SYMBOL_NAMESPACE "FC_"
- SYMBOLS mysub mymod:my_sub)
-
-This creates a "FCMangle.h" header that defines the same ``FC_*()``
-mangling macros as the previous example plus preprocessor symbols
-``FC_mysub`` and ``FC_mymod_my_sub``.
-
-Additional Manglings
-^^^^^^^^^^^^^^^^^^^^
-
-FortranCInterface is aware of possible ``GLOBAL`` and ``MODULE`` manglings
-for many Fortran compilers, but it also provides an interface to specify
-new possible manglings. Set the variables::
-
- FortranCInterface_GLOBAL_SYMBOLS
- FortranCInterface_MODULE_SYMBOLS
-
-before including FortranCInterface to specify manglings of the symbols
-``MySub``, ``My_Sub``, ``MyModule:MySub``, and ``My_Module:My_Sub``.
-For example, the code:
-
-.. code-block:: cmake
-
- set(FortranCInterface_GLOBAL_SYMBOLS mysub_ my_sub__ MYSUB_)
- # ^^^^^ ^^^^^^ ^^^^^
- set(FortranCInterface_MODULE_SYMBOLS
- __mymodule_MOD_mysub __my_module_MOD_my_sub)
- # ^^^^^^^^ ^^^^^ ^^^^^^^^^ ^^^^^^
- include(FortranCInterface)
-
-tells FortranCInterface to try given ``GLOBAL`` and ``MODULE`` manglings.
-(The carets point at raw symbol names for clarity in this example but
-are not needed.)
-#]=======================================================================]
-
-#-----------------------------------------------------------------------------
-# Execute at most once in a project.
-if(FortranCInterface_SOURCE_DIR)
- return()
-endif()
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0007 NEW)
-
-#-----------------------------------------------------------------------------
-# Verify that C and Fortran are available.
-foreach(lang C Fortran)
- if(NOT CMAKE_${lang}_COMPILER_LOADED)
- message(FATAL_ERROR
- "FortranCInterface requires the ${lang} language to be enabled.")
- endif()
-endforeach()
-
-#-----------------------------------------------------------------------------
-set(FortranCInterface_SOURCE_DIR ${CMAKE_ROOT}/Modules/FortranCInterface)
-
-# MinGW's make tool does not always like () in the path
-if("${CMAKE_GENERATOR}" MATCHES "MinGW" AND
- "${FortranCInterface_SOURCE_DIR}" MATCHES "[()]")
- file(COPY ${FortranCInterface_SOURCE_DIR}/
- DESTINATION ${CMAKE_BINARY_DIR}/CMakeFiles/FortranCInterfaceMinGW)
- set(FortranCInterface_SOURCE_DIR ${CMAKE_BINARY_DIR}/CMakeFiles/FortranCInterfaceMinGW)
-endif()
-
-# Create the interface detection project if it does not exist.
-if(NOT FortranCInterface_BINARY_DIR)
- set(FortranCInterface_BINARY_DIR ${CMAKE_BINARY_DIR}/CMakeFiles/FortranCInterface)
- include(${FortranCInterface_SOURCE_DIR}/Detect.cmake)
-endif()
-
-# Load the detection results.
-include(${FortranCInterface_BINARY_DIR}/Output.cmake)
-
-#-----------------------------------------------------------------------------
-function(FortranCInterface_HEADER file)
- # Parse arguments.
- if(IS_ABSOLUTE "${file}")
- set(FILE "${file}")
- else()
- set(FILE "${CMAKE_CURRENT_BINARY_DIR}/${file}")
- endif()
- set(MACRO_NAMESPACE "FortranCInterface_")
- set(SYMBOL_NAMESPACE)
- set(SYMBOLS)
- set(doing)
- foreach(arg ${ARGN})
- if("x${arg}" MATCHES "^x(SYMBOLS|SYMBOL_NAMESPACE|MACRO_NAMESPACE)$")
- set(doing "${arg}")
- elseif("x${doing}" MATCHES "^x(SYMBOLS)$")
- list(APPEND "${doing}" "${arg}")
- elseif("x${doing}" MATCHES "^x(SYMBOL_NAMESPACE|MACRO_NAMESPACE)$")
- set("${doing}" "${arg}")
- set(doing)
- else()
- message(AUTHOR_WARNING "Unknown argument: \"${arg}\"")
- endif()
- endforeach()
-
- # Generate macro definitions.
- set(HEADER_CONTENT)
- set(_desc_GLOBAL "/* Mangling for Fortran global symbols without underscores. */")
- set(_desc_GLOBAL_ "/* Mangling for Fortran global symbols with underscores. */")
- set(_desc_MODULE "/* Mangling for Fortran module symbols without underscores. */")
- set(_desc_MODULE_ "/* Mangling for Fortran module symbols with underscores. */")
- foreach(macro GLOBAL GLOBAL_ MODULE MODULE_)
- if(FortranCInterface_${macro}_MACRO)
- string(APPEND HEADER_CONTENT "
-${_desc_${macro}}
-#define ${MACRO_NAMESPACE}${macro}${FortranCInterface_${macro}_MACRO}
-")
- endif()
- endforeach()
-
- # Generate symbol mangling definitions.
- if(SYMBOLS)
- string(APPEND HEADER_CONTENT "
-/*--------------------------------------------------------------------------*/
-/* Mangle some symbols automatically. */
-")
- endif()
- foreach(f ${SYMBOLS})
- if("${f}" MATCHES ":")
- # Module symbol name. Parse "<module>:<function>" syntax.
- string(REPLACE ":" ";" pieces "${f}")
- list(GET pieces 0 module)
- list(GET pieces 1 function)
- string(TOUPPER "${module}" m_upper)
- string(TOLOWER "${module}" m_lower)
- string(TOUPPER "${function}" f_upper)
- string(TOLOWER "${function}" f_lower)
- if("${function}" MATCHES "_")
- set(form "_")
- else()
- set(form "")
- endif()
- if(FortranCInterface_MODULE${form}_MACRO)
- string(APPEND HEADER_CONTENT "#define ${SYMBOL_NAMESPACE}${module}_${function} ${MACRO_NAMESPACE}MODULE${form}(${m_lower},${f_lower}, ${m_upper},${f_upper})\n")
- else()
- message(AUTHOR_WARNING "No FortranCInterface mangling known for ${f}")
- endif()
- else()
- # Global symbol name.
- if("${f}" MATCHES "_")
- set(form "_")
- else()
- set(form "")
- endif()
- string(TOUPPER "${f}" f_upper)
- string(TOLOWER "${f}" f_lower)
- if(FortranCInterface_GLOBAL${form}_MACRO)
- string(APPEND HEADER_CONTENT "#define ${SYMBOL_NAMESPACE}${f} ${MACRO_NAMESPACE}GLOBAL${form}(${f_lower}, ${f_upper})\n")
- else()
- message(AUTHOR_WARNING "No FortranCInterface mangling known for ${f}")
- endif()
- endif()
- endforeach()
-
- # Store the content.
- configure_file(${FortranCInterface_SOURCE_DIR}/Macro.h.in ${FILE} @ONLY)
-endfunction()
-
-function(FortranCInterface_VERIFY)
- # Check arguments.
-
- set(lang C)
- set(quiet 0)
- set(verify_cxx 0)
- foreach(arg ${ARGN})
- if("${arg}" STREQUAL "QUIET")
- set(quiet 1)
- elseif("${arg}" STREQUAL "CXX")
- set(lang CXX)
- set(verify_cxx 1)
- else()
- message(FATAL_ERROR
- "FortranCInterface_VERIFY - called with unknown argument:\n ${arg}")
- endif()
- endforeach()
-
- if(NOT CMAKE_${lang}_COMPILER_LOADED)
- message(FATAL_ERROR
- "FortranCInterface_VERIFY(${lang}) requires ${lang} to be enabled.")
- endif()
-
- # Build the verification project if not yet built.
- if(NOT DEFINED FortranCInterface_VERIFIED_${lang})
- set(_desc "Verifying Fortran/${lang} Compiler Compatibility")
- message(STATUS "${_desc}")
-
- # Build a sample project which reports symbols.
- set(CMAKE_TRY_COMPILE_CONFIGURATION Release)
- try_compile(FortranCInterface_VERIFY_${lang}_COMPILED
- ${FortranCInterface_BINARY_DIR}/Verify${lang}
- ${FortranCInterface_SOURCE_DIR}/Verify
- VerifyFortranC # project name
- VerifyFortranC # target name
- CMAKE_FLAGS -DVERIFY_CXX=${verify_cxx}
- -DCMAKE_VERBOSE_MAKEFILE=ON
- "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}"
- "-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}"
- "-DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}"
- "-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}"
- "-DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}"
- "-DCMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}"
- OUTPUT_VARIABLE _output)
- file(WRITE "${FortranCInterface_BINARY_DIR}/Verify${lang}/output.txt" "${_output}")
-
- # Report results.
- if(FortranCInterface_VERIFY_${lang}_COMPILED)
- message(STATUS "${_desc} - Success")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "${_desc} passed with the following output:\n${_output}\n\n")
- set(FortranCInterface_VERIFIED_${lang} 1 CACHE INTERNAL "Fortran/${lang} compatibility")
- else()
- message(STATUS "${_desc} - Failed")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "${_desc} failed with the following output:\n${_output}\n\n")
- set(FortranCInterface_VERIFIED_${lang} 0 CACHE INTERNAL "Fortran/${lang} compatibility")
- endif()
- unset(FortranCInterface_VERIFY_${lang}_COMPILED CACHE)
- endif()
-
- # Error if compilers are incompatible.
- if(NOT FortranCInterface_VERIFIED_${lang} AND NOT quiet)
- file(READ "${FortranCInterface_BINARY_DIR}/Verify${lang}/output.txt" _output)
- string(REPLACE "\n" "\n " _output "${_output}")
- message(FATAL_ERROR
- "The Fortran compiler:\n ${CMAKE_Fortran_COMPILER}\n"
- "and the ${lang} compiler:\n ${CMAKE_${lang}_COMPILER}\n"
- "failed to compile a simple test project using both languages. "
- "The output was:\n ${_output}")
- endif()
-endfunction()
-
-# Restore including context policies.
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FortranCInterface/Detect.cmake b/share/cmake-3.16/Modules/FortranCInterface/Detect.cmake
deleted file mode 100644
index 7789785..0000000
--- a/share/cmake-3.16/Modules/FortranCInterface/Detect.cmake
+++ /dev/null
@@ -1,178 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-configure_file(${FortranCInterface_SOURCE_DIR}/Input.cmake.in
- ${FortranCInterface_BINARY_DIR}/Input.cmake @ONLY)
-
-# Detect the Fortran/C interface on the first run or when the
-# configuration changes.
-if(${FortranCInterface_BINARY_DIR}/Input.cmake
- IS_NEWER_THAN ${FortranCInterface_BINARY_DIR}/Output.cmake
- OR ${FortranCInterface_SOURCE_DIR}/Output.cmake.in
- IS_NEWER_THAN ${FortranCInterface_BINARY_DIR}/Output.cmake
- OR ${FortranCInterface_SOURCE_DIR}/CMakeLists.txt
- IS_NEWER_THAN ${FortranCInterface_BINARY_DIR}/Output.cmake
- OR ${CMAKE_CURRENT_LIST_FILE}
- IS_NEWER_THAN ${FortranCInterface_BINARY_DIR}/Output.cmake
- )
- message(STATUS "Detecting Fortran/C Interface")
-else()
- return()
-endif()
-
-# Invalidate verification results.
-unset(FortranCInterface_VERIFIED_C CACHE)
-unset(FortranCInterface_VERIFIED_CXX CACHE)
-
-set(_result)
-
-# Build a sample project which reports symbols.
-set(CMAKE_TRY_COMPILE_CONFIGURATION Release)
-try_compile(FortranCInterface_COMPILED
- ${FortranCInterface_BINARY_DIR}
- ${FortranCInterface_SOURCE_DIR}
- FortranCInterface # project name
- FortranCInterface # target name
- CMAKE_FLAGS
- "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}"
- "-DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}"
- "-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}"
- "-DCMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}"
- OUTPUT_VARIABLE FortranCInterface_OUTPUT)
-set(FortranCInterface_COMPILED ${FortranCInterface_COMPILED})
-unset(FortranCInterface_COMPILED CACHE)
-
-# Locate the sample project executable.
-if(FortranCInterface_COMPILED)
- find_program(FortranCInterface_EXE
- NAMES FortranCInterface${CMAKE_EXECUTABLE_SUFFIX}
- PATHS ${FortranCInterface_BINARY_DIR} ${FortranCInterface_BINARY_DIR}/Release
- NO_DEFAULT_PATH
- )
- set(FortranCInterface_EXE ${FortranCInterface_EXE})
- unset(FortranCInterface_EXE CACHE)
-else()
- set(_result "Failed to compile")
- set(FortranCInterface_EXE)
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Fortran/C interface test project failed with the following output:\n"
- "${FortranCInterface_OUTPUT}\n")
-endif()
-
-# Load symbols from INFO:symbol[] strings in the executable.
-set(FortranCInterface_SYMBOLS)
-if(FortranCInterface_EXE)
- file(STRINGS "${FortranCInterface_EXE}" _info_strings
- LIMIT_COUNT 8 REGEX "INFO:[A-Za-z0-9_]+\\[[^]]*\\]")
- foreach(info ${_info_strings})
- if("${info}" MATCHES "INFO:symbol\\[([^]]*)\\]")
- list(APPEND FortranCInterface_SYMBOLS ${CMAKE_MATCH_1})
- endif()
- endforeach()
-elseif(NOT _result)
- set(_result "Failed to load sample executable")
-endif()
-
-set(_case_mysub "LOWER")
-set(_case_my_sub "LOWER")
-set(_case_MYSUB "UPPER")
-set(_case_MY_SUB "UPPER")
-set(_global_regex "^(_*)(mysub|MYSUB)([_$]*)$")
-set(_global__regex "^(_*)(my_sub|MY_SUB)([_$]*)$")
-set(_module_regex "^(_*)(mymodule|MYMODULE)([A-Za-z_$]*)(mysub|MYSUB)([_$]*)$")
-set(_module__regex "^(_*)(my_module|MY_MODULE)([A-Za-z_$]*)(my_sub|MY_SUB)([_$]*)$")
-
-# Parse the symbol names.
-foreach(symbol ${FortranCInterface_SYMBOLS})
- foreach(form "" "_")
- # Look for global symbols.
- string(REGEX REPLACE "${_global_${form}regex}"
- "\\1;\\2;\\3" pieces "${symbol}")
- list(LENGTH pieces len)
- if(len EQUAL 3)
- set(FortranCInterface_GLOBAL_${form}SYMBOL "${symbol}")
- list(GET pieces 0 FortranCInterface_GLOBAL_${form}PREFIX)
- list(GET pieces 1 name)
- list(GET pieces 2 FortranCInterface_GLOBAL_${form}SUFFIX)
- set(FortranCInterface_GLOBAL_${form}CASE "${_case_${name}}")
- endif()
-
- # Look for module symbols.
- string(REGEX REPLACE "${_module_${form}regex}"
- "\\1;\\2;\\3;\\4;\\5" pieces "${symbol}")
- list(LENGTH pieces len)
- if(len EQUAL 5)
- set(FortranCInterface_MODULE_${form}SYMBOL "${symbol}")
- list(GET pieces 0 FortranCInterface_MODULE_${form}PREFIX)
- list(GET pieces 1 module)
- list(GET pieces 2 FortranCInterface_MODULE_${form}MIDDLE)
- list(GET pieces 3 name)
- list(GET pieces 4 FortranCInterface_MODULE_${form}SUFFIX)
- set(FortranCInterface_MODULE_${form}CASE "${_case_${name}}")
- endif()
- endforeach()
-endforeach()
-
-# Construct mangling macro definitions.
-set(_name_LOWER "name")
-set(_name_UPPER "NAME")
-foreach(form "" "_")
- if(FortranCInterface_GLOBAL_${form}SYMBOL)
- if(FortranCInterface_GLOBAL_${form}PREFIX)
- set(_prefix "${FortranCInterface_GLOBAL_${form}PREFIX}##")
- else()
- set(_prefix "")
- endif()
- if(FortranCInterface_GLOBAL_${form}SUFFIX)
- set(_suffix "##${FortranCInterface_GLOBAL_${form}SUFFIX}")
- else()
- set(_suffix "")
- endif()
- set(_name "${_name_${FortranCInterface_GLOBAL_${form}CASE}}")
- set(FortranCInterface_GLOBAL${form}_MACRO
- "(name,NAME) ${_prefix}${_name}${_suffix}")
- endif()
- if(FortranCInterface_MODULE_${form}SYMBOL)
- if(FortranCInterface_MODULE_${form}PREFIX)
- set(_prefix "${FortranCInterface_MODULE_${form}PREFIX}##")
- else()
- set(_prefix "")
- endif()
- if(FortranCInterface_MODULE_${form}SUFFIX)
- set(_suffix "##${FortranCInterface_MODULE_${form}SUFFIX}")
- else()
- set(_suffix "")
- endif()
- set(_name "${_name_${FortranCInterface_MODULE_${form}CASE}}")
- set(_middle "##${FortranCInterface_MODULE_${form}MIDDLE}##")
- set(FortranCInterface_MODULE${form}_MACRO
- "(mod_name,name, mod_NAME,NAME) ${_prefix}mod_${_name}${_middle}${_name}${_suffix}")
- endif()
-endforeach()
-
-# Summarize what is available.
-foreach(scope GLOBAL MODULE)
- if(FortranCInterface_${scope}_SYMBOL AND
- FortranCInterface_${scope}__SYMBOL)
- set(FortranCInterface_${scope}_FOUND 1)
- else()
- set(FortranCInterface_${scope}_FOUND 0)
- endif()
-endforeach()
-
-# Record the detection results.
-configure_file(${FortranCInterface_SOURCE_DIR}/Output.cmake.in
- ${FortranCInterface_BINARY_DIR}/Output.cmake @ONLY)
-file(APPEND ${FortranCInterface_BINARY_DIR}/Output.cmake "\n")
-
-# Report the results.
-if(FortranCInterface_GLOBAL_FOUND)
- if(FortranCInterface_MODULE_FOUND)
- set(_result "Found GLOBAL and MODULE mangling")
- else()
- set(_result "Found GLOBAL but not MODULE mangling")
- endif()
-elseif(NOT _result)
- set(_result "Failed to recognize symbols")
-endif()
-message(STATUS "Detecting Fortran/C Interface - ${_result}")
diff --git a/share/cmake-3.16/Modules/GNUInstallDirs.cmake b/share/cmake-3.16/Modules/GNUInstallDirs.cmake
deleted file mode 100644
index f95e6e2..0000000
--- a/share/cmake-3.16/Modules/GNUInstallDirs.cmake
+++ /dev/null
@@ -1,384 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-GNUInstallDirs
---------------
-
-Define GNU standard installation directories
-
-Provides install directory variables as defined by the
-`GNU Coding Standards`_.
-
-.. _`GNU Coding Standards`: https://www.gnu.org/prep/standards/html_node/Directory-Variables.html
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-Inclusion of this module defines the following variables:
-
-``CMAKE_INSTALL_<dir>``
-
- Destination for files of a given type. This value may be passed to
- the ``DESTINATION`` options of :command:`install` commands for the
- corresponding file type.
-
-``CMAKE_INSTALL_FULL_<dir>``
-
- The absolute path generated from the corresponding ``CMAKE_INSTALL_<dir>``
- value. If the value is not already an absolute path, an absolute path
- is constructed typically by prepending the value of the
- :variable:`CMAKE_INSTALL_PREFIX` variable. However, there are some
- `special cases`_ as documented below.
-
-where ``<dir>`` is one of:
-
-``BINDIR``
- user executables (``bin``)
-``SBINDIR``
- system admin executables (``sbin``)
-``LIBEXECDIR``
- program executables (``libexec``)
-``SYSCONFDIR``
- read-only single-machine data (``etc``)
-``SHAREDSTATEDIR``
- modifiable architecture-independent data (``com``)
-``LOCALSTATEDIR``
- modifiable single-machine data (``var``)
-``RUNSTATEDIR``
- run-time variable data (``LOCALSTATEDIR/run``)
-``LIBDIR``
- object code libraries (``lib`` or ``lib64``
- or ``lib/<multiarch-tuple>`` on Debian)
-``INCLUDEDIR``
- C header files (``include``)
-``OLDINCLUDEDIR``
- C header files for non-gcc (``/usr/include``)
-``DATAROOTDIR``
- read-only architecture-independent data root (``share``)
-``DATADIR``
- read-only architecture-independent data (``DATAROOTDIR``)
-``INFODIR``
- info documentation (``DATAROOTDIR/info``)
-``LOCALEDIR``
- locale-dependent data (``DATAROOTDIR/locale``)
-``MANDIR``
- man documentation (``DATAROOTDIR/man``)
-``DOCDIR``
- documentation root (``DATAROOTDIR/doc/PROJECT_NAME``)
-
-If the includer does not define a value the above-shown default will be
-used and the value will appear in the cache for editing by the user.
-
-Special Cases
-^^^^^^^^^^^^^
-
-The following values of :variable:`CMAKE_INSTALL_PREFIX` are special:
-
-``/``
-
- For ``<dir>`` other than the ``SYSCONFDIR``, ``LOCALSTATEDIR`` and
- ``RUNSTATEDIR``, the value of ``CMAKE_INSTALL_<dir>`` is prefixed
- with ``usr/`` if it is not user-specified as an absolute path.
- For example, the ``INCLUDEDIR`` value ``include`` becomes ``usr/include``.
- This is required by the `GNU Coding Standards`_, which state:
-
- When building the complete GNU system, the prefix will be empty
- and ``/usr`` will be a symbolic link to ``/``.
-
-``/usr``
-
- For ``<dir>`` equal to ``SYSCONFDIR``, ``LOCALSTATEDIR`` or
- ``RUNSTATEDIR``, the ``CMAKE_INSTALL_FULL_<dir>`` is computed by
- prepending just ``/`` to the value of ``CMAKE_INSTALL_<dir>``
- if it is not user-specified as an absolute path.
- For example, the ``SYSCONFDIR`` value ``etc`` becomes ``/etc``.
- This is required by the `GNU Coding Standards`_.
-
-``/opt/...``
-
- For ``<dir>`` equal to ``SYSCONFDIR``, ``LOCALSTATEDIR`` or
- ``RUNSTATEDIR``, the ``CMAKE_INSTALL_FULL_<dir>`` is computed by
- *appending* the prefix to the value of ``CMAKE_INSTALL_<dir>``
- if it is not user-specified as an absolute path.
- For example, the ``SYSCONFDIR`` value ``etc`` becomes ``/etc/opt/...``.
- This is defined by the `Filesystem Hierarchy Standard`_.
-
-.. _`Filesystem Hierarchy Standard`: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
-
-Macros
-^^^^^^
-
-.. command:: GNUInstallDirs_get_absolute_install_dir
-
- ::
-
- GNUInstallDirs_get_absolute_install_dir(absvar var)
-
- Set the given variable ``absvar`` to the absolute path contained
- within the variable ``var``. This is to allow the computation of an
- absolute path, accounting for all the special cases documented
- above. While this macro is used to compute the various
- ``CMAKE_INSTALL_FULL_<dir>`` variables, it is exposed publicly to
- allow users who create additional path variables to also compute
- absolute paths where necessary, using the same logic.
-#]=======================================================================]
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
-
-# Convert a cache variable to PATH type
-
-macro(_GNUInstallDirs_cache_convert_to_path var description)
- get_property(_GNUInstallDirs_cache_type CACHE ${var} PROPERTY TYPE)
- if(_GNUInstallDirs_cache_type STREQUAL "UNINITIALIZED")
- file(TO_CMAKE_PATH "${${var}}" _GNUInstallDirs_cmakepath)
- set_property(CACHE ${var} PROPERTY TYPE PATH)
- set_property(CACHE ${var} PROPERTY VALUE "${_GNUInstallDirs_cmakepath}")
- set_property(CACHE ${var} PROPERTY HELPSTRING "${description}")
- unset(_GNUInstallDirs_cmakepath)
- endif()
- unset(_GNUInstallDirs_cache_type)
-endmacro()
-
-# Create a cache variable with default for a path.
-macro(_GNUInstallDirs_cache_path var default description)
- if(NOT DEFINED ${var})
- set(${var} "${default}" CACHE PATH "${description}")
- endif()
- _GNUInstallDirs_cache_convert_to_path("${var}" "${description}")
-endmacro()
-
-# Create a cache variable with not default for a path, with a fallback
-# when unset; used for entries slaved to other entries such as
-# DATAROOTDIR.
-macro(_GNUInstallDirs_cache_path_fallback var default description)
- if(NOT ${var})
- set(${var} "" CACHE PATH "${description}")
- set(${var} "${default}")
- endif()
- _GNUInstallDirs_cache_convert_to_path("${var}" "${description}")
-endmacro()
-
-# Installation directories
-#
-
-_GNUInstallDirs_cache_path(CMAKE_INSTALL_BINDIR "bin"
- "User executables (bin)")
-_GNUInstallDirs_cache_path(CMAKE_INSTALL_SBINDIR "sbin"
- "System admin executables (sbin)")
-_GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "libexec"
- "Program executables (libexec)")
-_GNUInstallDirs_cache_path(CMAKE_INSTALL_SYSCONFDIR "etc"
- "Read-only single-machine data (etc)")
-_GNUInstallDirs_cache_path(CMAKE_INSTALL_SHAREDSTATEDIR "com"
- "Modifiable architecture-independent data (com)")
-_GNUInstallDirs_cache_path(CMAKE_INSTALL_LOCALSTATEDIR "var"
- "Modifiable single-machine data (var)")
-
-# We check if the variable was manually set and not cached, in order to
-# allow projects to set the values as normal variables before including
-# GNUInstallDirs to avoid having the entries cached or user-editable. It
-# replaces the "if(NOT DEFINED CMAKE_INSTALL_XXX)" checks in all the
-# other cases.
-# If CMAKE_INSTALL_LIBDIR is defined, if _libdir_set is false, then the
-# variable is a normal one, otherwise it is a cache one.
-get_property(_libdir_set CACHE CMAKE_INSTALL_LIBDIR PROPERTY TYPE SET)
-if(NOT DEFINED CMAKE_INSTALL_LIBDIR OR (_libdir_set
- AND DEFINED _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX
- AND NOT "${_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX}" STREQUAL "${CMAKE_INSTALL_PREFIX}"))
- # If CMAKE_INSTALL_LIBDIR is not defined, it is always executed.
- # Otherwise:
- # * if _libdir_set is false it is not executed (meaning that it is
- # not a cache variable)
- # * if _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX is not defined it is
- # not executed
- # * if _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX and
- # CMAKE_INSTALL_PREFIX are the same string it is not executed.
- # _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX is updated after the
- # execution, of this part of code, therefore at the next inclusion
- # of the file, CMAKE_INSTALL_LIBDIR is defined, and the 2 strings
- # are equal, meaning that the if is not executed the code the
- # second time.
-
- set(_LIBDIR_DEFAULT "lib")
- # Override this default 'lib' with 'lib64' iff:
- # - we are on Linux system but NOT cross-compiling
- # - we are NOT on debian
- # - we are on a 64 bits system
- # reason is: amd64 ABI: https://github.com/hjl-tools/x86-psABI/wiki/X86-psABI
- # For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
- # CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
- # and CMAKE_INSTALL_PREFIX is "/usr"
- # See http://wiki.debian.org/Multiarch
- if(DEFINED _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX)
- set(__LAST_LIBDIR_DEFAULT "lib")
- # __LAST_LIBDIR_DEFAULT is the default value that we compute from
- # _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX, not a cache entry for
- # the value that was last used as the default.
- # This value is used to figure out whether the user changed the
- # CMAKE_INSTALL_LIBDIR value manually, or if the value was the
- # default one. When CMAKE_INSTALL_PREFIX changes, the value is
- # updated to the new default, unless the user explicitly changed it.
- endif()
- if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$"
- AND NOT CMAKE_CROSSCOMPILING
- AND NOT EXISTS "/etc/arch-release")
- if (EXISTS "/etc/debian_version") # is this a debian system ?
- if(CMAKE_LIBRARY_ARCHITECTURE)
- if("${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$")
- set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
- endif()
- if(DEFINED _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX
- AND "${_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$")
- set(__LAST_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
- endif()
- endif()
- else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
- if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
- message(AUTHOR_WARNING
- "Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. "
- "Please enable at least one language before including GNUInstallDirs.")
- else()
- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
- set(_LIBDIR_DEFAULT "lib64")
- if(DEFINED _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX)
- set(__LAST_LIBDIR_DEFAULT "lib64")
- endif()
- endif()
- endif()
- endif()
- endif()
- if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
- set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "Object code libraries (${_LIBDIR_DEFAULT})")
- elseif(DEFINED __LAST_LIBDIR_DEFAULT
- AND "${__LAST_LIBDIR_DEFAULT}" STREQUAL "${CMAKE_INSTALL_LIBDIR}")
- set_property(CACHE CMAKE_INSTALL_LIBDIR PROPERTY VALUE "${_LIBDIR_DEFAULT}")
- endif()
-endif()
-_GNUInstallDirs_cache_convert_to_path(CMAKE_INSTALL_LIBDIR "Object code libraries (lib)")
-
-# Save for next run
-set(_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE INTERNAL "CMAKE_INSTALL_PREFIX during last run")
-unset(_libdir_set)
-unset(__LAST_LIBDIR_DEFAULT)
-
-_GNUInstallDirs_cache_path(CMAKE_INSTALL_INCLUDEDIR "include"
- "C header files (include)")
-_GNUInstallDirs_cache_path(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include"
- "C header files for non-gcc (/usr/include)")
-_GNUInstallDirs_cache_path(CMAKE_INSTALL_DATAROOTDIR "share"
- "Read-only architecture-independent data root (share)")
-
-#-----------------------------------------------------------------------------
-# Values whose defaults are relative to DATAROOTDIR. Store empty values in
-# the cache and store the defaults in local variables if the cache values are
-# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.
-
-_GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}"
- "Read-only architecture-independent data (DATAROOTDIR)")
-
-if(CMAKE_SYSTEM_NAME MATCHES "^(([^kF].*)?BSD|DragonFly)$")
- _GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_INFODIR "info"
- "Info documentation (info)")
-else()
- _GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info"
- "Info documentation (DATAROOTDIR/info)")
-endif()
-
-if(CMAKE_SYSTEM_NAME MATCHES "^(([^k].*)?BSD|DragonFly)$")
- _GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_MANDIR "man"
- "Man documentation (man)")
-else()
- _GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man"
- "Man documentation (DATAROOTDIR/man)")
-endif()
-
-_GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale"
- "Locale-dependent data (DATAROOTDIR/locale)")
-_GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}"
- "Documentation root (DATAROOTDIR/doc/PROJECT_NAME)")
-
-_GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_RUNSTATEDIR "${CMAKE_INSTALL_LOCALSTATEDIR}/run"
- "Run-time variable data (LOCALSTATEDIR/run)")
-
-#-----------------------------------------------------------------------------
-
-mark_as_advanced(
- CMAKE_INSTALL_BINDIR
- CMAKE_INSTALL_SBINDIR
- CMAKE_INSTALL_LIBEXECDIR
- CMAKE_INSTALL_SYSCONFDIR
- CMAKE_INSTALL_SHAREDSTATEDIR
- CMAKE_INSTALL_LOCALSTATEDIR
- CMAKE_INSTALL_RUNSTATEDIR
- CMAKE_INSTALL_LIBDIR
- CMAKE_INSTALL_INCLUDEDIR
- CMAKE_INSTALL_OLDINCLUDEDIR
- CMAKE_INSTALL_DATAROOTDIR
- CMAKE_INSTALL_DATADIR
- CMAKE_INSTALL_INFODIR
- CMAKE_INSTALL_LOCALEDIR
- CMAKE_INSTALL_MANDIR
- CMAKE_INSTALL_DOCDIR
- )
-
-macro(GNUInstallDirs_get_absolute_install_dir absvar var)
- if(NOT IS_ABSOLUTE "${${var}}")
- # Handle special cases:
- # - CMAKE_INSTALL_PREFIX == /
- # - CMAKE_INSTALL_PREFIX == /usr
- # - CMAKE_INSTALL_PREFIX == /opt/...
- if("${CMAKE_INSTALL_PREFIX}" STREQUAL "/")
- if("${dir}" STREQUAL "SYSCONFDIR" OR "${dir}" STREQUAL "LOCALSTATEDIR" OR "${dir}" STREQUAL "RUNSTATEDIR")
- set(${absvar} "/${${var}}")
- else()
- if (NOT "${${var}}" MATCHES "^usr/")
- set(${var} "usr/${${var}}")
- endif()
- set(${absvar} "/${${var}}")
- endif()
- elseif("${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$")
- if("${dir}" STREQUAL "SYSCONFDIR" OR "${dir}" STREQUAL "LOCALSTATEDIR" OR "${dir}" STREQUAL "RUNSTATEDIR")
- set(${absvar} "/${${var}}")
- else()
- set(${absvar} "${CMAKE_INSTALL_PREFIX}/${${var}}")
- endif()
- elseif("${CMAKE_INSTALL_PREFIX}" MATCHES "^/opt/.*")
- if("${dir}" STREQUAL "SYSCONFDIR" OR "${dir}" STREQUAL "LOCALSTATEDIR" OR "${dir}" STREQUAL "RUNSTATEDIR")
- set(${absvar} "/${${var}}${CMAKE_INSTALL_PREFIX}")
- else()
- set(${absvar} "${CMAKE_INSTALL_PREFIX}/${${var}}")
- endif()
- else()
- set(${absvar} "${CMAKE_INSTALL_PREFIX}/${${var}}")
- endif()
- else()
- set(${absvar} "${${var}}")
- endif()
-endmacro()
-
-# Result directories
-#
-foreach(dir
- BINDIR
- SBINDIR
- LIBEXECDIR
- SYSCONFDIR
- SHAREDSTATEDIR
- LOCALSTATEDIR
- RUNSTATEDIR
- LIBDIR
- INCLUDEDIR
- OLDINCLUDEDIR
- DATAROOTDIR
- DATADIR
- INFODIR
- LOCALEDIR
- MANDIR
- DOCDIR
- )
- GNUInstallDirs_get_absolute_install_dir(CMAKE_INSTALL_FULL_${dir} CMAKE_INSTALL_${dir})
-endforeach()
-
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/GetPrerequisites.cmake b/share/cmake-3.16/Modules/GetPrerequisites.cmake
deleted file mode 100644
index 57ae446..0000000
--- a/share/cmake-3.16/Modules/GetPrerequisites.cmake
+++ /dev/null
@@ -1,1047 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-GetPrerequisites
-----------------
-
-.. deprecated:: 3.16
-
- Use :command:`file(GET_RUNTIME_DEPENDENCIES)` instead.
-
-Functions to analyze and list executable file prerequisites.
-
-This module provides functions to list the .dll, .dylib or .so files
-that an executable or shared library file depends on. (Its
-prerequisites.)
-
-It uses various tools to obtain the list of required shared library
-files:
-
-::
-
- dumpbin (Windows)
- objdump (MinGW on Windows)
- ldd (Linux/Unix)
- otool (Mac OSX)
-
-The following functions are provided by this module:
-
-::
-
- get_prerequisites
- list_prerequisites
- list_prerequisites_by_glob
- gp_append_unique
- is_file_executable
- gp_item_default_embedded_path
- (projects can override with gp_item_default_embedded_path_override)
- gp_resolve_item
- (projects can override with gp_resolve_item_override)
- gp_resolved_file_type
- (projects can override with gp_resolved_file_type_override)
- gp_file_type
-
-Requires CMake 2.6 or greater because it uses function, break, return
-and PARENT_SCOPE.
-
-::
-
- GET_PREREQUISITES(<target> <prerequisites_var> <exclude_system> <recurse>
- <exepath> <dirs> [<rpaths>])
-
-Get the list of shared library files required by <target>. The list
-in the variable named <prerequisites_var> should be empty on first
-entry to this function. On exit, <prerequisites_var> will contain the
-list of required shared library files.
-
-<target> is the full path to an executable file. <prerequisites_var>
-is the name of a CMake variable to contain the results.
-<exclude_system> must be 0 or 1 indicating whether to include or
-exclude "system" prerequisites. If <recurse> is set to 1 all
-prerequisites will be found recursively, if set to 0 only direct
-prerequisites are listed. <exepath> is the path to the top level
-executable used for @executable_path replacment on the Mac. <dirs> is
-a list of paths where libraries might be found: these paths are
-searched first when a target without any path info is given. Then
-standard system locations are also searched: PATH, Framework
-locations, /usr/lib...
-
-The variable GET_PREREQUISITES_VERBOSE can be set to true to enable verbose
-output.
-
-::
-
- LIST_PREREQUISITES(<target> [<recurse> [<exclude_system> [<verbose>]]])
-
-Print a message listing the prerequisites of <target>.
-
-<target> is the name of a shared library or executable target or the
-full path to a shared library or executable file. If <recurse> is set
-to 1 all prerequisites will be found recursively, if set to 0 only
-direct prerequisites are listed. <exclude_system> must be 0 or 1
-indicating whether to include or exclude "system" prerequisites. With
-<verbose> set to 0 only the full path names of the prerequisites are
-printed, set to 1 extra informatin will be displayed.
-
-::
-
- LIST_PREREQUISITES_BY_GLOB(<glob_arg> <glob_exp>)
-
-Print the prerequisites of shared library and executable files
-matching a globbing pattern. <glob_arg> is GLOB or GLOB_RECURSE and
-<glob_exp> is a globbing expression used with "file(GLOB" or
-"file(GLOB_RECURSE" to retrieve a list of matching files. If a
-matching file is executable, its prerequisites are listed.
-
-Any additional (optional) arguments provided are passed along as the
-optional arguments to the list_prerequisites calls.
-
-::
-
- GP_APPEND_UNIQUE(<list_var> <value>)
-
-Append <value> to the list variable <list_var> only if the value is
-not already in the list.
-
-::
-
- IS_FILE_EXECUTABLE(<file> <result_var>)
-
-Return 1 in <result_var> if <file> is a binary executable, 0
-otherwise.
-
-::
-
- GP_ITEM_DEFAULT_EMBEDDED_PATH(<item> <default_embedded_path_var>)
-
-Return the path that others should refer to the item by when the item
-is embedded inside a bundle.
-
-Override on a per-project basis by providing a project-specific
-gp_item_default_embedded_path_override function.
-
-::
-
- GP_RESOLVE_ITEM(<context> <item> <exepath> <dirs> <resolved_item_var>
- [<rpaths>])
-
-Resolve an item into an existing full path file.
-
-Override on a per-project basis by providing a project-specific
-gp_resolve_item_override function.
-
-::
-
- GP_RESOLVED_FILE_TYPE(<original_file> <file> <exepath> <dirs> <type_var>
- [<rpaths>])
-
-Return the type of <file> with respect to <original_file>. String
-describing type of prerequisite is returned in variable named
-<type_var>.
-
-Use <exepath> and <dirs> if necessary to resolve non-absolute <file>
-values -- but only for non-embedded items.
-
-Possible types are:
-
-::
-
- system
- local
- embedded
- other
-
-Override on a per-project basis by providing a project-specific
-gp_resolved_file_type_override function.
-
-::
-
- GP_FILE_TYPE(<original_file> <file> <type_var>)
-
-Return the type of <file> with respect to <original_file>. String
-describing type of prerequisite is returned in variable named
-<type_var>.
-
-Possible types are:
-
-::
-
- system
- local
- embedded
- other
-#]=======================================================================]
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0057 NEW) # if IN_LIST
-
-function(gp_append_unique list_var value)
- if(NOT value IN_LIST ${list_var})
- set(${list_var} ${${list_var}} "${value}" PARENT_SCOPE)
- endif()
-endfunction()
-
-
-function(is_file_executable file result_var)
- #
- # A file is not executable until proven otherwise:
- #
- set(${result_var} 0 PARENT_SCOPE)
-
- get_filename_component(file_full "${file}" ABSOLUTE)
- string(TOLOWER "${file_full}" file_full_lower)
-
- # If file name ends in .exe on Windows, *assume* executable:
- #
- if(WIN32 AND NOT UNIX)
- if("${file_full_lower}" MATCHES "\\.exe$")
- set(${result_var} 1 PARENT_SCOPE)
- return()
- endif()
-
- # A clause could be added here that uses output or return value of dumpbin
- # to determine ${result_var}. In 99%+? practical cases, the exe name
- # match will be sufficient...
- #
- endif()
-
- # Use the information returned from the Unix shell command "file" to
- # determine if ${file_full} should be considered an executable file...
- #
- # If the file command's output contains "executable" and does *not* contain
- # "text" then it is likely an executable suitable for prerequisite analysis
- # via the get_prerequisites macro.
- #
- if(UNIX)
- if(NOT file_cmd)
- find_program(file_cmd "file")
- mark_as_advanced(file_cmd)
- endif()
-
- if(file_cmd)
- execute_process(COMMAND "${file_cmd}" "${file_full}"
- RESULT_VARIABLE file_rv
- OUTPUT_VARIABLE file_ov
- ERROR_VARIABLE file_ev
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- if(NOT file_rv STREQUAL "0")
- message(FATAL_ERROR "${file_cmd} failed: ${file_rv}\n${file_ev}")
- endif()
-
- # Replace the name of the file in the output with a placeholder token
- # (the string " _file_full_ ") so that just in case the path name of
- # the file contains the word "text" or "executable" we are not fooled
- # into thinking "the wrong thing" because the file name matches the
- # other 'file' command output we are looking for...
- #
- string(REPLACE "${file_full}" " _file_full_ " file_ov "${file_ov}")
- string(TOLOWER "${file_ov}" file_ov)
-
- #message(STATUS "file_ov='${file_ov}'")
- if("${file_ov}" MATCHES "executable")
- #message(STATUS "executable!")
- if("${file_ov}" MATCHES "text")
- #message(STATUS "but text, so *not* a binary executable!")
- else()
- set(${result_var} 1 PARENT_SCOPE)
- return()
- endif()
- endif()
-
- # Also detect position independent executables on Linux,
- # where "file" gives "shared object ... (uses shared libraries)"
- if("${file_ov}" MATCHES "shared object.*\(uses shared libs\)")
- set(${result_var} 1 PARENT_SCOPE)
- return()
- endif()
-
- # "file" version 5.22 does not print "(used shared libraries)"
- # but uses "interpreter"
- if("${file_ov}" MATCHES "shared object.*interpreter")
- set(${result_var} 1 PARENT_SCOPE)
- return()
- endif()
-
- else()
- message(STATUS "warning: No 'file' command, skipping execute_process...")
- endif()
- endif()
-endfunction()
-
-
-function(gp_item_default_embedded_path item default_embedded_path_var)
-
- # On Windows and Linux, "embed" prerequisites in the same directory
- # as the executable by default:
- #
- set(path "@executable_path")
-
- # On the Mac, relative to the executable depending on the type
- # of the thing we are embedding:
- #
- if(APPLE)
- #
- # The assumption here is that all executables in the bundle will be
- # in same-level-directories inside the bundle. The parent directory
- # of an executable inside the bundle should be MacOS or a sibling of
- # MacOS and all embedded paths returned from here will begin with
- # "@executable_path/../" and will work from all executables in all
- # such same-level-directories inside the bundle.
- #
-
- # By default, embed things right next to the main bundle executable:
- #
- set(path "@executable_path/../../Contents/MacOS")
-
- # Embed frameworks and .dylibs in the embedded "Frameworks" directory
- # (sibling of MacOS):
- #
- if(item MATCHES "[^/]+\\.framework/" OR item MATCHES "\\.dylib$")
- set(path "@executable_path/../Frameworks")
- endif()
- endif()
-
- # Provide a hook so that projects can override the default embedded location
- # of any given library by whatever logic they choose:
- #
- if(COMMAND gp_item_default_embedded_path_override)
- gp_item_default_embedded_path_override("${item}" path)
- endif()
-
- set(${default_embedded_path_var} "${path}" PARENT_SCOPE)
-endfunction()
-
-
-function(gp_resolve_item context item exepath dirs resolved_item_var)
- set(resolved 0)
- set(resolved_item "${item}")
- if(ARGC GREATER 5)
- set(rpaths "${ARGV5}")
- else()
- set(rpaths "")
- endif()
-
- # Is it already resolved?
- #
- if(IS_ABSOLUTE "${resolved_item}" AND EXISTS "${resolved_item}")
- set(resolved 1)
- endif()
-
- if(NOT resolved)
- if(item MATCHES "^@executable_path")
- #
- # @executable_path references are assumed relative to exepath
- #
- string(REPLACE "@executable_path" "${exepath}" ri "${item}")
- get_filename_component(ri "${ri}" ABSOLUTE)
-
- if(EXISTS "${ri}")
- #message(STATUS "info: embedded item exists (${ri})")
- set(resolved 1)
- set(resolved_item "${ri}")
- else()
- message(STATUS "warning: embedded item does not exist '${ri}'")
- endif()
- endif()
- endif()
-
- if(NOT resolved)
- if(item MATCHES "^@loader_path")
- #
- # @loader_path references are assumed relative to the
- # PATH of the given "context" (presumably another library)
- #
- get_filename_component(contextpath "${context}" PATH)
- string(REPLACE "@loader_path" "${contextpath}" ri "${item}")
- get_filename_component(ri "${ri}" ABSOLUTE)
-
- if(EXISTS "${ri}")
- #message(STATUS "info: embedded item exists (${ri})")
- set(resolved 1)
- set(resolved_item "${ri}")
- else()
- message(STATUS "warning: embedded item does not exist '${ri}'")
- endif()
- endif()
- endif()
-
- if(NOT resolved)
- if(item MATCHES "^@rpath")
- #
- # @rpath references are relative to the paths built into the binaries with -rpath
- # We handle this case like we do for other Unixes
- #
- string(REPLACE "@rpath/" "" norpath_item "${item}")
-
- set(ri "ri-NOTFOUND")
- find_file(ri "${norpath_item}" ${exepath} ${dirs} ${rpaths} NO_DEFAULT_PATH)
- if(ri)
- #message(STATUS "info: 'find_file' in exepath/dirs/rpaths (${ri})")
- set(resolved 1)
- set(resolved_item "${ri}")
- set(ri "ri-NOTFOUND")
- endif()
-
- endif()
- endif()
-
- if(NOT resolved)
- set(ri "ri-NOTFOUND")
- find_file(ri "${item}" ${exepath} ${dirs} NO_DEFAULT_PATH)
- find_file(ri "${item}" ${exepath} ${dirs} /usr/lib)
-
- get_filename_component(basename_item "${item}" NAME)
- find_file(ri "${basename_item}" PATHS ${exepath} ${dirs} NO_DEFAULT_PATH)
- find_file(ri "${basename_item}" PATHS /usr/lib)
-
- if(ri)
- #message(STATUS "info: 'find_file' in exepath/dirs (${ri})")
- set(resolved 1)
- set(resolved_item "${ri}")
- set(ri "ri-NOTFOUND")
- endif()
- endif()
-
- if(NOT resolved)
- if(item MATCHES "[^/]+\\.framework/")
- set(fw "fw-NOTFOUND")
- find_file(fw "${item}"
- "~/Library/Frameworks"
- "/Library/Frameworks"
- "/System/Library/Frameworks"
- )
- if(fw)
- #message(STATUS "info: 'find_file' found framework (${fw})")
- set(resolved 1)
- set(resolved_item "${fw}")
- set(fw "fw-NOTFOUND")
- endif()
- endif()
- endif()
-
- # Using find_program on Windows will find dll files that are in the PATH.
- # (Converting simple file names into full path names if found.)
- #
- if(WIN32 AND NOT UNIX)
- if(NOT resolved)
- set(ri "ri-NOTFOUND")
- find_program(ri "${item}" PATHS ${exepath} ${dirs} NO_DEFAULT_PATH)
- find_program(ri "${item}" PATHS ${exepath} ${dirs})
- if(ri)
- #message(STATUS "info: 'find_program' in exepath/dirs (${ri})")
- set(resolved 1)
- set(resolved_item "${ri}")
- set(ri "ri-NOTFOUND")
- endif()
- endif()
- endif()
-
- # Provide a hook so that projects can override item resolution
- # by whatever logic they choose:
- #
- if(COMMAND gp_resolve_item_override)
- gp_resolve_item_override("${context}" "${item}" "${exepath}" "${dirs}" resolved_item resolved)
- endif()
-
- if(NOT resolved)
- message(STATUS "
-warning: cannot resolve item '${item}'
-
- possible problems:
- need more directories?
- need to use InstallRequiredSystemLibraries?
- run in install tree instead of build tree?
-")
-# message(STATUS "
-#******************************************************************************
-#warning: cannot resolve item '${item}'
-#
-# possible problems:
-# need more directories?
-# need to use InstallRequiredSystemLibraries?
-# run in install tree instead of build tree?
-#
-# context='${context}'
-# item='${item}'
-# exepath='${exepath}'
-# dirs='${dirs}'
-# resolved_item_var='${resolved_item_var}'
-#******************************************************************************
-#")
- endif()
-
- set(${resolved_item_var} "${resolved_item}" PARENT_SCOPE)
-endfunction()
-
-
-function(gp_resolved_file_type original_file file exepath dirs type_var)
- if(ARGC GREATER 5)
- set(rpaths "${ARGV5}")
- else()
- set(rpaths "")
- endif()
- #message(STATUS "**")
-
- if(NOT IS_ABSOLUTE "${original_file}")
- message(STATUS "warning: gp_resolved_file_type expects absolute full path for first arg original_file")
- endif()
- if(IS_ABSOLUTE "${original_file}")
- get_filename_component(original_file "${original_file}" ABSOLUTE) # canonicalize path
- endif()
-
- set(is_embedded 0)
- set(is_local 0)
- set(is_system 0)
-
- set(resolved_file "${file}")
-
- if("${file}" MATCHES "^@(executable|loader)_path")
- set(is_embedded 1)
- endif()
-
- if(NOT is_embedded)
- if(NOT IS_ABSOLUTE "${file}")
- gp_resolve_item("${original_file}" "${file}" "${exepath}" "${dirs}" resolved_file "${rpaths}")
- endif()
- if(IS_ABSOLUTE "${resolved_file}")
- get_filename_component(resolved_file "${resolved_file}" ABSOLUTE) # canonicalize path
- endif()
-
- string(TOLOWER "${original_file}" original_lower)
- string(TOLOWER "${resolved_file}" lower)
-
- if(UNIX)
- if(resolved_file MATCHES "^(/lib/|/lib32/|/libx32/|/lib64/|/usr/lib/|/usr/lib32/|/usr/libx32/|/usr/lib64/|/usr/X11R6/|/usr/bin/)")
- set(is_system 1)
- endif()
- endif()
-
- if(APPLE)
- if(resolved_file MATCHES "^(/System/Library/|/usr/lib/)")
- set(is_system 1)
- endif()
- endif()
-
- if(WIN32)
- string(TOLOWER "$ENV{SystemRoot}" sysroot)
- file(TO_CMAKE_PATH "${sysroot}" sysroot)
-
- string(TOLOWER "$ENV{windir}" windir)
- file(TO_CMAKE_PATH "${windir}" windir)
-
- if(lower MATCHES "^(${sysroot}/sys(tem|wow)|${windir}/sys(tem|wow)|(.*/)*(msvc|api-ms-win-)[^/]+dll)")
- set(is_system 1)
- endif()
-
- if(UNIX)
- # if cygwin, we can get the properly formed windows paths from cygpath
- find_program(CYGPATH_EXECUTABLE cygpath)
-
- if(CYGPATH_EXECUTABLE)
- execute_process(COMMAND ${CYGPATH_EXECUTABLE} -W
- RESULT_VARIABLE env_rv
- OUTPUT_VARIABLE env_windir
- ERROR_VARIABLE env_ev
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(NOT env_rv STREQUAL "0")
- message(FATAL_ERROR "${CYGPATH_EXECUTABLE} -W failed: ${env_rv}\n${env_ev}")
- endif()
- execute_process(COMMAND ${CYGPATH_EXECUTABLE} -S
- RESULT_VARIABLE env_rv
- OUTPUT_VARIABLE env_sysdir
- ERROR_VARIABLE env_ev
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(NOT env_rv STREQUAL "0")
- message(FATAL_ERROR "${CYGPATH_EXECUTABLE} -S failed: ${env_rv}\n${env_ev}")
- endif()
- string(TOLOWER "${env_windir}" windir)
- string(TOLOWER "${env_sysdir}" sysroot)
-
- if(lower MATCHES "^(${sysroot}/sys(tem|wow)|${windir}/sys(tem|wow)|(.*/)*(msvc|api-ms-win-)[^/]+dll)")
- set(is_system 1)
- endif()
- endif()
- endif()
- endif()
-
- if(NOT is_system)
- get_filename_component(original_path "${original_lower}" PATH)
- get_filename_component(path "${lower}" PATH)
- if(original_path STREQUAL path)
- set(is_local 1)
- else()
- string(LENGTH "${original_path}/" original_length)
- string(LENGTH "${lower}" path_length)
- if(${path_length} GREATER ${original_length})
- string(SUBSTRING "${lower}" 0 ${original_length} path)
- if("${original_path}/" STREQUAL path)
- set(is_embedded 1)
- endif()
- endif()
- endif()
- endif()
- endif()
-
- # Return type string based on computed booleans:
- #
- set(type "other")
-
- if(is_system)
- set(type "system")
- elseif(is_embedded)
- set(type "embedded")
- elseif(is_local)
- set(type "local")
- endif()
-
- #message(STATUS "gp_resolved_file_type: '${file}' '${resolved_file}'")
- #message(STATUS " type: '${type}'")
-
- if(NOT is_embedded)
- if(NOT IS_ABSOLUTE "${resolved_file}")
- if(lower MATCHES "^(msvc|api-ms-win-)[^/]+dll" AND is_system)
- message(STATUS "info: non-absolute msvc file '${file}' returning type '${type}'")
- else()
- message(STATUS "warning: gp_resolved_file_type non-absolute file '${file}' returning type '${type}' -- possibly incorrect")
- endif()
- endif()
- endif()
-
- # Provide a hook so that projects can override the decision on whether a
- # library belongs to the system or not by whatever logic they choose:
- #
- if(COMMAND gp_resolved_file_type_override)
- gp_resolved_file_type_override("${resolved_file}" type)
- endif()
-
- set(${type_var} "${type}" PARENT_SCOPE)
-
- #message(STATUS "**")
-endfunction()
-
-
-function(gp_file_type original_file file type_var)
- if(NOT IS_ABSOLUTE "${original_file}")
- message(STATUS "warning: gp_file_type expects absolute full path for first arg original_file")
- endif()
-
- get_filename_component(exepath "${original_file}" PATH)
-
- set(type "")
- gp_resolved_file_type("${original_file}" "${file}" "${exepath}" "" type)
-
- set(${type_var} "${type}" PARENT_SCOPE)
-endfunction()
-
-
-function(get_prerequisites target prerequisites_var exclude_system recurse exepath dirs)
- set(verbose 0)
- set(eol_char "E")
- if(ARGC GREATER 6)
- set(rpaths "${ARGV6}")
- else()
- set(rpaths "")
- endif()
-
- if(GET_PREREQUISITES_VERBOSE)
- set(verbose 1)
- endif()
-
- if(NOT IS_ABSOLUTE "${target}")
- message("warning: target '${target}' is not absolute...")
- endif()
-
- if(NOT EXISTS "${target}")
- message("warning: target '${target}' does not exist...")
- return()
- endif()
-
- # Check for a script by extension (.bat,.sh,...) or if the file starts with "#!" (shebang)
- file(READ ${target} file_contents LIMIT 5)
- if(target MATCHES "\\.(bat|c?sh|bash|ksh|cmd)$" OR file_contents MATCHES "^#!")
- message(STATUS "GetPrequisites(${target}) : ignoring script file")
- # Clear var
- set(${prerequisites_var} "" PARENT_SCOPE)
- return()
- endif()
-
- set(gp_cmd_paths ${gp_cmd_paths}
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\14.0;InstallDir]/../../VC/bin"
- "$ENV{VS140COMNTOOLS}/../../VC/bin"
- "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\12.0;InstallDir]/../../VC/bin"
- "$ENV{VS120COMNTOOLS}/../../VC/bin"
- "C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0;InstallDir]/../../VC/bin"
- "$ENV{VS110COMNTOOLS}/../../VC/bin"
- "C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0;InstallDir]/../../VC/bin"
- "$ENV{VS100COMNTOOLS}/../../VC/bin"
- "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0;InstallDir]/../../VC/bin"
- "$ENV{VS90COMNTOOLS}/../../VC/bin"
- "C:/Program Files/Microsoft Visual Studio 9.0/VC/bin"
- "C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]/../../VC/bin"
- "$ENV{VS80COMNTOOLS}/../../VC/bin"
- "C:/Program Files/Microsoft Visual Studio 8/VC/BIN"
- "C:/Program Files (x86)/Microsoft Visual Studio 8/VC/BIN"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.1;InstallDir]/../../VC7/bin"
- "$ENV{VS71COMNTOOLS}/../../VC7/bin"
- "C:/Program Files/Microsoft Visual Studio .NET 2003/VC7/BIN"
- "C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/VC7/BIN"
- )
-
- # <setup-gp_tool-vars>
- #
- # Try to choose the right tool by default. Caller can set gp_tool prior to
- # calling this function to force using a different tool.
- #
- if(NOT gp_tool)
- set(gp_tool "ldd")
-
- if(APPLE)
- set(gp_tool "otool")
- endif()
-
- if(WIN32 AND NOT UNIX) # This is how to check for cygwin, har!
- find_program(gp_dumpbin "dumpbin" PATHS ${gp_cmd_paths})
- if(gp_dumpbin)
- set(gp_tool "dumpbin")
- elseif(CMAKE_OBJDUMP) # Try harder. Maybe we're on MinGW
- set(gp_tool "${CMAKE_OBJDUMP}")
- else()
- set(gp_tool "objdump")
- endif()
- endif()
- endif()
-
- find_program(gp_cmd ${gp_tool} PATHS ${gp_cmd_paths})
-
- if(NOT gp_cmd)
- message(STATUS "warning: could not find '${gp_tool}' - cannot analyze prerequisites...")
- return()
- endif()
-
- set(gp_cmd_maybe_filter) # optional command to pre-filter gp_tool results
-
- if(gp_tool MATCHES "ldd$")
- set(gp_cmd_args "")
- set(gp_regex "^[\t ]*[^\t ]+ =>[\t ]+([^\t\(]+)( \(.+\))?${eol_char}$")
- set(gp_regex_error "not found${eol_char}$")
- set(gp_regex_fallback "^[\t ]*([^\t ]+) => ([^\t ]+).*${eol_char}$")
- set(gp_regex_cmp_count 1)
- elseif(gp_tool MATCHES "otool$")
- set(gp_cmd_args "-L")
- set(gp_regex "^\t([^\t]+) \\(compatibility version ([0-9]+.[0-9]+.[0-9]+), current version ([0-9]+.[0-9]+.[0-9]+)\\)${eol_char}$")
- set(gp_regex_error "")
- set(gp_regex_fallback "")
- set(gp_regex_cmp_count 3)
- elseif(gp_tool MATCHES "dumpbin$")
- set(gp_cmd_args "/dependents")
- set(gp_regex "^ ([^ ].*[Dd][Ll][Ll])${eol_char}$")
- set(gp_regex_error "")
- set(gp_regex_fallback "")
- set(gp_regex_cmp_count 1)
- elseif(gp_tool MATCHES "objdump$")
- set(gp_cmd_args "-p")
- set(gp_regex "^\t*DLL Name: (.*\\.[Dd][Ll][Ll])${eol_char}$")
- set(gp_regex_error "")
- set(gp_regex_fallback "")
- set(gp_regex_cmp_count 1)
- # objdump generates copious output so we create a grep filter to pre-filter results
- if(WIN32)
- find_program(gp_grep_cmd findstr)
- else()
- find_program(gp_grep_cmd grep)
- endif()
- if(gp_grep_cmd)
- set(gp_cmd_maybe_filter COMMAND ${gp_grep_cmd} "-a" "^[[:blank:]]*DLL Name: ")
- endif()
- else()
- message(STATUS "warning: gp_tool='${gp_tool}' is an unknown tool...")
- message(STATUS "CMake function get_prerequisites needs more code to handle '${gp_tool}'")
- message(STATUS "Valid gp_tool values are dumpbin, ldd, objdump and otool.")
- return()
- endif()
-
-
- if(gp_tool MATCHES "dumpbin$")
- # When running dumpbin, it also needs the "Common7/IDE" directory in the
- # PATH. It will already be in the PATH if being run from a Visual Studio
- # command prompt. Add it to the PATH here in case we are running from a
- # different command prompt.
- #
- get_filename_component(gp_cmd_dir "${gp_cmd}" PATH)
- get_filename_component(gp_cmd_dlls_dir "${gp_cmd_dir}/../../Common7/IDE" ABSOLUTE)
- # Use cmake paths as a user may have a PATH element ending with a backslash.
- # This will escape the list delimiter and create havoc!
- if(EXISTS "${gp_cmd_dlls_dir}")
- # only add to the path if it is not already in the path
- set(gp_found_cmd_dlls_dir 0)
- file(TO_CMAKE_PATH "$ENV{PATH}" env_path)
- foreach(gp_env_path_element ${env_path})
- if(gp_env_path_element STREQUAL gp_cmd_dlls_dir)
- set(gp_found_cmd_dlls_dir 1)
- endif()
- endforeach()
-
- if(NOT gp_found_cmd_dlls_dir)
- file(TO_NATIVE_PATH "${gp_cmd_dlls_dir}" gp_cmd_dlls_dir)
- set(ENV{PATH} "$ENV{PATH};${gp_cmd_dlls_dir}")
- endif()
- endif()
- endif()
- #
- # </setup-gp_tool-vars>
-
- if(gp_tool MATCHES "ldd$")
- set(old_ld_env "$ENV{LD_LIBRARY_PATH}")
- set(new_ld_env "${exepath}")
- foreach(dir ${dirs})
- string(APPEND new_ld_env ":${dir}")
- endforeach()
- set(ENV{LD_LIBRARY_PATH} "${new_ld_env}:$ENV{LD_LIBRARY_PATH}")
- endif()
-
-
- # Track new prerequisites at each new level of recursion. Start with an
- # empty list at each level:
- #
- set(unseen_prereqs)
-
- # Run gp_cmd on the target:
- #
- execute_process(
- COMMAND ${gp_cmd} ${gp_cmd_args} ${target}
- ${gp_cmd_maybe_filter}
- RESULT_VARIABLE gp_rv
- OUTPUT_VARIABLE gp_cmd_ov
- ERROR_VARIABLE gp_ev
- )
-
- if(gp_tool MATCHES "dumpbin$")
- # Exclude delay load dependencies under windows (they are listed in dumpbin output after the message below)
- string(FIND "${gp_cmd_ov}" "Image has the following delay load dependencies" gp_delayload_pos)
- if (${gp_delayload_pos} GREATER -1)
- string(SUBSTRING "${gp_cmd_ov}" 0 ${gp_delayload_pos} gp_cmd_ov_no_delayload_deps)
- string(SUBSTRING "${gp_cmd_ov}" ${gp_delayload_pos} -1 gp_cmd_ov_delayload_deps)
- if (verbose)
- message(STATUS "GetPrequisites(${target}) : ignoring the following delay load dependencies :\n ${gp_cmd_ov_delayload_deps}")
- endif()
- set(gp_cmd_ov ${gp_cmd_ov_no_delayload_deps})
- endif()
- endif()
-
- if(NOT gp_rv STREQUAL "0")
- if(gp_tool MATCHES "dumpbin$")
- # dumpbin error messages seem to go to stdout
- message(FATAL_ERROR "${gp_cmd} failed: ${gp_rv}\n${gp_ev}\n${gp_cmd_ov}")
- else()
- message(FATAL_ERROR "${gp_cmd} failed: ${gp_rv}\n${gp_ev}")
- endif()
- endif()
-
- if(gp_tool MATCHES "ldd$")
- set(ENV{LD_LIBRARY_PATH} "${old_ld_env}")
- endif()
-
- if(verbose)
- message(STATUS "<RawOutput cmd='${gp_cmd} ${gp_cmd_args} ${target}'>")
- message(STATUS "gp_cmd_ov='${gp_cmd_ov}'")
- message(STATUS "</RawOutput>")
- endif()
-
- get_filename_component(target_dir "${target}" PATH)
-
- # Convert to a list of lines:
- #
- string(REPLACE ";" "\\;" candidates "${gp_cmd_ov}")
- string(REPLACE "\n" "${eol_char};" candidates "${candidates}")
-
- # check for install id and remove it from list, since otool -L can include a
- # reference to itself
- set(gp_install_id)
- if(gp_tool MATCHES "otool$")
- execute_process(
- COMMAND ${gp_cmd} -D ${target}
- RESULT_VARIABLE otool_rv
- OUTPUT_VARIABLE gp_install_id_ov
- ERROR_VARIABLE otool_ev
- )
- if(NOT otool_rv STREQUAL "0")
- message(FATAL_ERROR "otool -D failed: ${otool_rv}\n${otool_ev}")
- endif()
- # second line is install name
- string(REGEX REPLACE ".*:\n" "" gp_install_id "${gp_install_id_ov}")
- if(gp_install_id)
- # trim
- string(REGEX MATCH "[^\n ].*[^\n ]" gp_install_id "${gp_install_id}")
- #message("INSTALL ID is \"${gp_install_id}\"")
- endif()
- endif()
-
- # Analyze each line for file names that match the regular expression:
- #
- foreach(candidate ${candidates})
- if("${candidate}" MATCHES "${gp_regex}")
-
- # Extract information from each candidate:
- if(gp_regex_error AND "${candidate}" MATCHES "${gp_regex_error}")
- string(REGEX REPLACE "${gp_regex_fallback}" "\\1" raw_item "${candidate}")
- else()
- string(REGEX REPLACE "${gp_regex}" "\\1" raw_item "${candidate}")
- endif()
-
- if(gp_regex_cmp_count GREATER 1)
- string(REGEX REPLACE "${gp_regex}" "\\2" raw_compat_version "${candidate}")
- string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\1" compat_major_version "${raw_compat_version}")
- string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\2" compat_minor_version "${raw_compat_version}")
- string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\3" compat_patch_version "${raw_compat_version}")
- endif()
-
- if(gp_regex_cmp_count GREATER 2)
- string(REGEX REPLACE "${gp_regex}" "\\3" raw_current_version "${candidate}")
- string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\1" current_major_version "${raw_current_version}")
- string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\2" current_minor_version "${raw_current_version}")
- string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\3" current_patch_version "${raw_current_version}")
- endif()
-
- # Use the raw_item as the list entries returned by this function. Use the
- # gp_resolve_item function to resolve it to an actual full path file if
- # necessary.
- #
- set(item "${raw_item}")
-
- # Add each item unless it is excluded:
- #
- set(add_item 1)
-
- if(item STREQUAL gp_install_id)
- set(add_item 0)
- endif()
-
- if(add_item AND ${exclude_system})
- set(type "")
- gp_resolved_file_type("${target}" "${item}" "${exepath}" "${dirs}" type "${rpaths}")
-
- if(type STREQUAL "system")
- set(add_item 0)
- endif()
- endif()
-
- if(add_item)
- list(LENGTH ${prerequisites_var} list_length_before_append)
- gp_append_unique(${prerequisites_var} "${item}")
- list(LENGTH ${prerequisites_var} list_length_after_append)
-
- if(${recurse})
- # If item was really added, this is the first time we have seen it.
- # Add it to unseen_prereqs so that we can recursively add *its*
- # prerequisites...
- #
- # But first: resolve its name to an absolute full path name such
- # that the analysis tools can simply accept it as input.
- #
- if(NOT list_length_before_append EQUAL list_length_after_append)
- gp_resolve_item("${target}" "${item}" "${exepath}" "${dirs}" resolved_item "${rpaths}")
- if(EXISTS "${resolved_item}")
- # Recurse only if we could resolve the item.
- # Otherwise the prerequisites_var list will be cleared
- set(unseen_prereqs ${unseen_prereqs} "${resolved_item}")
- endif()
- endif()
- endif()
- endif()
- else()
- if(verbose)
- message(STATUS "ignoring non-matching line: '${candidate}'")
- endif()
- endif()
- endforeach()
-
- list(LENGTH ${prerequisites_var} prerequisites_var_length)
- if(prerequisites_var_length GREATER 0)
- list(SORT ${prerequisites_var})
- endif()
- if(${recurse})
- set(more_inputs ${unseen_prereqs})
- foreach(input ${more_inputs})
- get_prerequisites("${input}" ${prerequisites_var} ${exclude_system} ${recurse} "${exepath}" "${dirs}" "${rpaths}")
- endforeach()
- endif()
-
- set(${prerequisites_var} ${${prerequisites_var}} PARENT_SCOPE)
-endfunction()
-
-
-function(list_prerequisites target)
- if(ARGC GREATER 1 AND NOT "${ARGV1}" STREQUAL "")
- set(all "${ARGV1}")
- else()
- set(all 1)
- endif()
-
- if(ARGC GREATER 2 AND NOT "${ARGV2}" STREQUAL "")
- set(exclude_system "${ARGV2}")
- else()
- set(exclude_system 0)
- endif()
-
- if(ARGC GREATER 3 AND NOT "${ARGV3}" STREQUAL "")
- set(verbose "${ARGV3}")
- else()
- set(verbose 0)
- endif()
-
- set(count 0)
- set(count_str "")
- set(print_count "${verbose}")
- set(print_prerequisite_type "${verbose}")
- set(print_target "${verbose}")
- set(type_str "")
-
- get_filename_component(exepath "${target}" PATH)
-
- set(prereqs "")
- get_prerequisites("${target}" prereqs ${exclude_system} ${all} "${exepath}" "")
-
- if(print_target)
- message(STATUS "File '${target}' depends on:")
- endif()
-
- foreach(d ${prereqs})
- math(EXPR count "${count} + 1")
-
- if(print_count)
- set(count_str "${count}. ")
- endif()
-
- if(print_prerequisite_type)
- gp_file_type("${target}" "${d}" type)
- set(type_str " (${type})")
- endif()
-
- message(STATUS "${count_str}${d}${type_str}")
- endforeach()
-endfunction()
-
-
-function(list_prerequisites_by_glob glob_arg glob_exp)
- message(STATUS "=============================================================================")
- message(STATUS "List prerequisites of executables matching ${glob_arg} '${glob_exp}'")
- message(STATUS "")
- file(${glob_arg} file_list ${glob_exp})
- foreach(f ${file_list})
- is_file_executable("${f}" is_f_executable)
- if(is_f_executable)
- message(STATUS "=============================================================================")
- list_prerequisites("${f}" ${ARGN})
- message(STATUS "")
- endif()
- endforeach()
-endfunction()
-
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPackDeb.cmake b/share/cmake-3.16/Modules/Internal/CPack/CPackDeb.cmake
deleted file mode 100644
index 97906ca..0000000
--- a/share/cmake-3.16/Modules/Internal/CPack/CPackDeb.cmake
+++ /dev/null
@@ -1,766 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-# CPack script for creating Debian package
-# Author: Mathieu Malaterre
-#
-# http://wiki.debian.org/HowToPackageForDebian
-
-if(CMAKE_BINARY_DIR)
- message(FATAL_ERROR "CPackDeb.cmake may only be used by CPack internally.")
-endif()
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0057 NEW) # if IN_LIST
-
-function(cpack_deb_variable_fallback OUTPUT_VAR_NAME)
- set(FALLBACK_VAR_NAMES ${ARGN})
-
- foreach(variable_name IN LISTS FALLBACK_VAR_NAMES)
- if(${variable_name})
- set(${OUTPUT_VAR_NAME} "${${variable_name}}" PARENT_SCOPE)
- break()
- endif()
- endforeach()
-endfunction()
-
-function(get_component_package_name var component)
- string(TOUPPER "${component}" component_upcase)
- if(CPACK_DEBIAN_${component_upcase}_PACKAGE_NAME)
- string(TOLOWER "${CPACK_DEBIAN_${component_upcase}_PACKAGE_NAME}" package_name)
- else()
- string(TOLOWER "${CPACK_DEBIAN_PACKAGE_NAME}-${component}" package_name)
- endif()
-
- set("${var}" "${package_name}" PARENT_SCOPE)
-endfunction()
-
-#extract library name and version for given shared object
-function(extract_so_info shared_object libname version)
- if(READELF_EXECUTABLE)
- execute_process(COMMAND "${READELF_EXECUTABLE}" -d "${shared_object}"
- WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
- RESULT_VARIABLE result
- OUTPUT_VARIABLE output
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(result EQUAL 0)
- string(REGEX MATCH "\\(?SONAME\\)?[^\n]*\\[([^\n]+)\\.so\\.([^\n]*)\\]" soname "${output}")
- set(${libname} "${CMAKE_MATCH_1}" PARENT_SCOPE)
- set(${version} "${CMAKE_MATCH_2}" PARENT_SCOPE)
- else()
- message(WARNING "Error running readelf for \"${shared_object}\"")
- endif()
- else()
- message(FATAL_ERROR "Readelf utility is not available.")
- endif()
-endfunction()
-
-function(cpack_deb_check_description SUMMARY LINES RESULT_VARIABLE)
- set(_result TRUE)
-
- # Get the summary line
- if(NOT SUMMARY MATCHES "^[^\\s].*$")
- set(_result FALSE)
- set(${RESULT_VARIABLE} ${_result} PARENT_SCOPE)
- return()
- endif()
-
- foreach(_line IN LISTS LINES)
- if(NOT _line MATCHES "^ +[^ ]+.*$")
- set(_result FALSE)
- break()
- endif()
- endforeach()
-
- set(${RESULT_VARIABLE} ${_result} PARENT_SCOPE)
-endfunction()
-
-function(cpack_deb_format_package_description TEXT OUTPUT_VAR)
- # Turn the possible multi-line string into a list
- string(UUID uuid NAMESPACE 00000000-0000-0000-0000-000000000000 TYPE SHA1)
- string(REPLACE ";" "${uuid}" _text "${TEXT}")
- string(REPLACE "\n" ";" _lines "${_text}")
- list(POP_FRONT _lines _summary)
-
- # Check if reformatting required
- cpack_deb_check_description("${_summary}" "${_lines}" _result)
- if(_result)
- # Ok, no formatting required
- set(${OUTPUT_VAR} "${TEXT}" PARENT_SCOPE)
- return()
- endif()
-
- # Format the summary line
- string(STRIP "${_summary}" _summary)
-
- # Make sure the rest formatted properly
- set(_result)
- foreach(_line IN LISTS _lines)
- string(STRIP "${_line}" _line_strip)
- if(NOT _line_strip)
- # Replace empty lines w/ a _single full stop character_
- set(_line " .")
- else()
- # Prepend the normal lines w/ a single space.
- # If the line already starts w/ at least one space,
- # it'll become _verbatim_ (assuming it supposed to be
- # verbatim in the original text).
- string(PREPEND _line " ")
- endif()
- list(APPEND _result "${_line}")
- endforeach()
-
- list(PREPEND _result "${_summary}")
- list(JOIN _result "\n" _result)
- string(REPLACE "${uuid}" ";" _result "${_result}")
- set(${OUTPUT_VAR} "${_result}" PARENT_SCOPE)
-endfunction()
-
-function(cpack_deb_prepare_package_vars)
- # CPACK_DEBIAN_PACKAGE_SHLIBDEPS
- # If specify OFF, only user depends are used
- if(NOT DEFINED CPACK_DEBIAN_PACKAGE_SHLIBDEPS)
- set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF)
- endif()
-
- set(WDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_DEB_PACKAGE_COMPONENT_PART_PATH}")
- set(DBGSYMDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_DEB_PACKAGE_COMPONENT_PART_PATH}-dbgsym")
- file(REMOVE_RECURSE "${DBGSYMDIR}")
-
- # per component automatic discover: some of the component might not have
- # binaries.
- if(CPACK_DEB_PACKAGE_COMPONENT)
- string(TOUPPER "${CPACK_DEB_PACKAGE_COMPONENT}" _local_component_name)
- set(_component_shlibdeps_var "CPACK_DEBIAN_${_local_component_name}_PACKAGE_SHLIBDEPS")
-
- # if set, overrides the global configuration
- if(DEFINED ${_component_shlibdeps_var})
- set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS "${${_component_shlibdeps_var}}")
- if(CPACK_DEBIAN_PACKAGE_DEBUG)
- message("CPackDeb Debug: component '${CPACK_DEB_PACKAGE_COMPONENT}' dpkg-shlibdeps set to ${CPACK_DEBIAN_PACKAGE_SHLIBDEPS}")
- endif()
- endif()
- endif()
-
- cpack_deb_variable_fallback("CPACK_DEBIAN_DEBUGINFO_PACKAGE"
- "CPACK_DEBIAN_${_local_component_name}_DEBUGINFO_PACKAGE"
- "CPACK_DEBIAN_DEBUGINFO_PACKAGE")
- if(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OR CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS OR CPACK_DEBIAN_DEBUGINFO_PACKAGE)
- # Generating binary list - Get type of all install files
- file(GLOB_RECURSE FILE_PATHS_ LIST_DIRECTORIES false RELATIVE "${WDIR}" "${WDIR}/*")
-
- find_program(FILE_EXECUTABLE file)
- if(NOT FILE_EXECUTABLE)
- message(FATAL_ERROR "CPackDeb: file utility is not available. CPACK_DEBIAN_PACKAGE_SHLIBDEPS and CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS options are not available.")
- endif()
-
- # get file info so that we can determine if file is executable or not
- unset(CPACK_DEB_INSTALL_FILES)
- foreach(FILE_ IN LISTS FILE_PATHS_)
- execute_process(COMMAND ${CMAKE_COMMAND} -E env LC_ALL=C ${FILE_EXECUTABLE} "./${FILE_}"
- WORKING_DIRECTORY "${WDIR}"
- RESULT_VARIABLE FILE_RESULT_
- OUTPUT_VARIABLE INSTALL_FILE_)
- if(NOT FILE_RESULT_ EQUAL 0)
- message(FATAL_ERROR "CPackDeb: execution of command: '${FILE_EXECUTABLE} ./${FILE_}' failed with exit code: ${FILE_RESULT_}")
- endif()
- list(APPEND CPACK_DEB_INSTALL_FILES "${INSTALL_FILE_}")
- endforeach()
-
- # Only dynamically linked ELF files are included
- # Extract only file name infront of ":"
- foreach(_FILE IN LISTS CPACK_DEB_INSTALL_FILES)
- if(_FILE MATCHES "ELF.*dynamically linked")
- string(REGEX MATCH "(^.*):" _FILE_NAME "${_FILE}")
- list(APPEND CPACK_DEB_BINARY_FILES "${CMAKE_MATCH_1}")
- set(CONTAINS_EXECUTABLE_FILES_ TRUE)
- endif()
- if(_FILE MATCHES "ELF.*shared object")
- string(REGEX MATCH "(^.*):" _FILE_NAME "${_FILE}")
- list(APPEND CPACK_DEB_SHARED_OBJECT_FILES "${CMAKE_MATCH_1}")
- endif()
- if(_FILE MATCHES "ELF.*not stripped")
- string(REGEX MATCH "(^.*):" _FILE_NAME "${_FILE}")
- list(APPEND CPACK_DEB_UNSTRIPPED_FILES "${CMAKE_MATCH_1}")
- endif()
- endforeach()
- endif()
-
- find_program(READELF_EXECUTABLE NAMES readelf)
-
- if(CPACK_DEBIAN_DEBUGINFO_PACKAGE AND CPACK_DEB_UNSTRIPPED_FILES)
- find_program(OBJCOPY_EXECUTABLE NAMES objcopy)
-
- if(NOT OBJCOPY_EXECUTABLE)
- message(FATAL_ERROR "debuginfo packages require the objcopy tool")
- endif()
- if(NOT READELF_EXECUTABLE)
- message(FATAL_ERROR "debuginfo packages require the readelf tool")
- endif()
-
- file(RELATIVE_PATH _DBGSYM_ROOT "${CPACK_TEMPORARY_DIRECTORY}" "${DBGSYMDIR}")
- foreach(_FILE IN LISTS CPACK_DEB_UNSTRIPPED_FILES)
-
- # Get the file's Build ID
- execute_process(COMMAND env LC_ALL=C ${READELF_EXECUTABLE} -n "${_FILE}"
- WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
- OUTPUT_VARIABLE READELF_OUTPUT
- RESULT_VARIABLE READELF_RESULT
- ERROR_VARIABLE READELF_ERROR
- OUTPUT_STRIP_TRAILING_WHITESPACE )
- if(NOT READELF_RESULT EQUAL 0)
- message(FATAL_ERROR "CPackDeb: readelf: '${READELF_ERROR}';\n"
- "executed command: '${READELF_EXECUTABLE} -n ${_FILE}'")
- endif()
- if(READELF_OUTPUT MATCHES "Build ID: ([0-9a-zA-Z][0-9a-zA-Z])([0-9a-zA-Z]*)")
- set(_BUILD_ID_START ${CMAKE_MATCH_1})
- set(_BUILD_ID_REMAINING ${CMAKE_MATCH_2})
- list(APPEND BUILD_IDS ${_BUILD_ID_START}${_BUILD_ID_REMAINING})
- else()
- message(FATAL_ERROR "Unable to determine Build ID for ${_FILE}")
- endif()
-
- # Split out the debug symbols from the binaries
- set(_FILE_DBGSYM ${_DBGSYM_ROOT}/usr/lib/debug/.build-id/${_BUILD_ID_START}/${_BUILD_ID_REMAINING}.debug)
- get_filename_component(_OUT_DIR "${_FILE_DBGSYM}" DIRECTORY)
- file(MAKE_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}/${_OUT_DIR}")
- execute_process(COMMAND ${OBJCOPY_EXECUTABLE} --only-keep-debug "${_FILE}" "${_FILE_DBGSYM}"
- WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
- OUTPUT_VARIABLE OBJCOPY_OUTPUT
- RESULT_VARIABLE OBJCOPY_RESULT
- ERROR_VARIABLE OBJCOPY_ERROR
- OUTPUT_STRIP_TRAILING_WHITESPACE )
- if(NOT OBJCOPY_RESULT EQUAL 0)
- message(FATAL_ERROR "CPackDeb: objcopy: '${OBJCOPY_ERROR}';\n"
- "executed command: '${OBJCOPY_EXECUTABLE} --only-keep-debug ${_FILE} ${_FILE_DBGSYM}'")
- endif()
- execute_process(COMMAND ${OBJCOPY_EXECUTABLE} --strip-unneeded ${_FILE}
- WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
- OUTPUT_VARIABLE OBJCOPY_OUTPUT
- RESULT_VARIABLE OBJCOPY_RESULT
- ERROR_VARIABLE OBJCOPY_ERROR
- OUTPUT_STRIP_TRAILING_WHITESPACE )
- if(NOT OBJCOPY_RESULT EQUAL 0)
- message(FATAL_ERROR "CPackDeb: objcopy: '${OBJCOPY_ERROR}';\n"
- "executed command: '${OBJCOPY_EXECUTABLE} --strip-debug ${_FILE}'")
- endif()
- execute_process(COMMAND ${OBJCOPY_EXECUTABLE} --add-gnu-debuglink=${_FILE_DBGSYM} ${_FILE}
- WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
- OUTPUT_VARIABLE OBJCOPY_OUTPUT
- RESULT_VARIABLE OBJCOPY_RESULT
- ERROR_VARIABLE OBJCOPY_ERROR
- OUTPUT_STRIP_TRAILING_WHITESPACE )
- if(NOT OBJCOPY_RESULT EQUAL 0)
- message(FATAL_ERROR "CPackDeb: objcopy: '${OBJCOPY_ERROR}';\n"
- "executed command: '${OBJCOPY_EXECUTABLE} --add-gnu-debuglink=${_FILE_DBGSYM} ${_FILE}'")
- endif()
- endforeach()
- endif()
-
- if(CPACK_DEBIAN_PACKAGE_SHLIBDEPS)
- # dpkg-shlibdeps is a Debian utility for generating dependency list
- find_program(SHLIBDEPS_EXECUTABLE dpkg-shlibdeps)
-
- if(SHLIBDEPS_EXECUTABLE)
- # Check version of the dpkg-shlibdeps tool using CPackDEB method
- execute_process(COMMAND ${CMAKE_COMMAND} -E env LC_ALL=C ${SHLIBDEPS_EXECUTABLE} --version
- OUTPUT_VARIABLE _TMP_VERSION
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(_TMP_VERSION MATCHES "dpkg-shlibdeps version ([0-9]+\\.[0-9]+\\.[0-9]+)")
- set(SHLIBDEPS_EXECUTABLE_VERSION "${CMAKE_MATCH_1}")
- else()
- unset(SHLIBDEPS_EXECUTABLE_VERSION)
- endif()
-
- if(CPACK_DEBIAN_PACKAGE_DEBUG)
- message("CPackDeb Debug: dpkg-shlibdeps --version output is '${_TMP_VERSION}'")
- message("CPackDeb Debug: dpkg-shlibdeps version is <${SHLIBDEPS_EXECUTABLE_VERSION}>")
- endif()
-
- if(CONTAINS_EXECUTABLE_FILES_)
- message("CPackDeb: - Generating dependency list")
-
- # Create blank control file for running dpkg-shlibdeps
- # There might be some other way to invoke dpkg-shlibdeps without creating this file
- # but standard debian package should not have anything that can collide with this file or directory
- file(MAKE_DIRECTORY ${CPACK_TEMPORARY_DIRECTORY}/debian)
- file(WRITE ${CPACK_TEMPORARY_DIRECTORY}/debian/control "")
-
- # Create a DEBIAN directory so that dpkg-shlibdeps can find the package dir when resolving $ORIGIN.
- file(MAKE_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}/DEBIAN")
-
- # Add --ignore-missing-info if the tool supports it
- execute_process(COMMAND ${CMAKE_COMMAND} -E env LC_ALL=C ${SHLIBDEPS_EXECUTABLE} --help
- OUTPUT_VARIABLE _TMP_HELP
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(_TMP_HELP MATCHES "--ignore-missing-info")
- set(IGNORE_MISSING_INFO_FLAG "--ignore-missing-info")
- endif()
-
- # Execute dpkg-shlibdeps
- # --ignore-missing-info : allow dpkg-shlibdeps to run even if some libs do not belong to a package
- # -O : print to STDOUT
- execute_process(COMMAND ${SHLIBDEPS_EXECUTABLE} ${IGNORE_MISSING_INFO_FLAG} -O ${CPACK_DEB_BINARY_FILES}
- WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
- OUTPUT_VARIABLE SHLIBDEPS_OUTPUT
- RESULT_VARIABLE SHLIBDEPS_RESULT
- ERROR_VARIABLE SHLIBDEPS_ERROR
- OUTPUT_STRIP_TRAILING_WHITESPACE )
- if(CPACK_DEBIAN_PACKAGE_DEBUG)
- # dpkg-shlibdeps will throw some warnings if some input files are not binary
- message( "CPackDeb Debug: dpkg-shlibdeps warnings \n${SHLIBDEPS_ERROR}")
- endif()
- if(NOT SHLIBDEPS_RESULT EQUAL 0)
- message(FATAL_ERROR "CPackDeb: dpkg-shlibdeps: '${SHLIBDEPS_ERROR}';\n"
- "executed command: '${SHLIBDEPS_EXECUTABLE} ${IGNORE_MISSING_INFO_FLAG} -O ${CPACK_DEB_BINARY_FILES}';\n"
- "found files: '${INSTALL_FILE_}';\n"
- "files info: '${CPACK_DEB_INSTALL_FILES}';\n"
- "binary files: '${CPACK_DEB_BINARY_FILES}'")
- endif()
-
- #Get rid of prefix generated by dpkg-shlibdeps
- string(REGEX REPLACE "^.*Depends=" "" CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS "${SHLIBDEPS_OUTPUT}")
-
- if(CPACK_DEBIAN_PACKAGE_DEBUG)
- message("CPackDeb Debug: Found dependency: ${CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS} from output ${SHLIBDEPS_OUTPUT}")
- endif()
-
- # Remove blank control file
- # Might not be safe if package actual contain file or directory named debian
- file(REMOVE_RECURSE "${CPACK_TEMPORARY_DIRECTORY}/debian")
-
- # remove temporary directory that was created only for dpkg-shlibdeps execution
- file(REMOVE_RECURSE "${CPACK_TEMPORARY_DIRECTORY}/DEBIAN")
- else()
- if(CPACK_DEBIAN_PACKAGE_DEBUG)
- message(AUTHOR_WARNING "CPackDeb Debug: Using only user-provided depends because package does not contain executable files that link to shared libraries.")
- endif()
- endif()
- else()
- message("CPackDeb: Using only user-provided dependencies because dpkg-shlibdeps is not found.")
- endif()
-
- else()
- if(CPACK_DEBIAN_PACKAGE_DEBUG)
- message("CPackDeb Debug: Using only user-provided dependencies")
- endif()
- endif()
-
- # Let's define the control file found in debian package:
-
- # Binary package:
- # http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-binarycontrolfiles
-
- # DEBIAN/control
- # debian policy enforce lower case for package name
- # Package: (mandatory)
- if(NOT CPACK_DEBIAN_PACKAGE_NAME)
- string(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_DEBIAN_PACKAGE_NAME)
- endif()
-
- # Version: (mandatory)
- if(NOT CPACK_DEBIAN_PACKAGE_VERSION)
- if(NOT CPACK_PACKAGE_VERSION)
- message(FATAL_ERROR "CPackDeb: Debian package requires a package version")
- endif()
- set(CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
- endif()
-
- if(DEFINED CPACK_DEBIAN_PACKAGE_RELEASE OR DEFINED CPACK_DEBIAN_PACKAGE_EPOCH)
- # only test the version format if CPACK_DEBIAN_PACKAGE_RELEASE or
- # CPACK_DEBIAN_PACKAGE_EPOCH is set
- if(NOT CPACK_DEBIAN_PACKAGE_VERSION MATCHES "^[0-9][A-Za-z0-9.+~-]*$")
- message(FATAL_ERROR
- "CPackDeb: Debian package version must confirm to \"^[0-9][A-Za-z0-9.+~-]*$\" regex!")
- endif()
- else()
- # before CMake 3.10 version format was not tested so only warn to preserve
- # backward compatibility
- if(NOT CPACK_DEBIAN_PACKAGE_VERSION MATCHES "^([0-9]+:)?[0-9][A-Za-z0-9.+~-]*$")
- message(AUTHOR_WARNING
- "CPackDeb: Debian package versioning ([<epoch>:]<version>[-<release>])"
- " should confirm to \"^([0-9]+:)?[0-9][A-Za-z0-9.+~-]*$\" regex in"
- " order to satisfy Debian packaging rules.")
- endif()
- endif()
-
- if(CPACK_DEBIAN_PACKAGE_RELEASE)
- if(NOT CPACK_DEBIAN_PACKAGE_RELEASE MATCHES "^[A-Za-z0-9.+~]+$")
- message(FATAL_ERROR
- "CPackDeb: Debian package release must confirm to \"^[A-Za-z0-9.+~]+$\" regex!")
- endif()
- string(APPEND CPACK_DEBIAN_PACKAGE_VERSION
- "-${CPACK_DEBIAN_PACKAGE_RELEASE}")
- elseif(DEFINED CPACK_DEBIAN_PACKAGE_EPOCH)
- # only test the version format if CPACK_DEBIAN_PACKAGE_RELEASE or
- # CPACK_DEBIAN_PACKAGE_EPOCH is set - versions CPack/Deb generator before
- # CMake 3.10 did not check for version format so we have to preserve
- # backward compatibility
- if(CPACK_DEBIAN_PACKAGE_VERSION MATCHES ".*-.*")
- message(FATAL_ERROR
- "CPackDeb: Debian package version must not contain hyphens when CPACK_DEBIAN_PACKAGE_RELEASE is not provided!")
- endif()
- endif()
-
- if(CPACK_DEBIAN_PACKAGE_EPOCH)
- if(NOT CPACK_DEBIAN_PACKAGE_EPOCH MATCHES "^[0-9]+$")
- message(FATAL_ERROR
- "CPackDeb: Debian package epoch must confirm to \"^[0-9]+$\" regex!")
- endif()
- set(CPACK_DEBIAN_PACKAGE_VERSION
- "${CPACK_DEBIAN_PACKAGE_EPOCH}:${CPACK_DEBIAN_PACKAGE_VERSION}")
- endif()
-
- # Architecture: (mandatory)
- if(CPACK_DEB_PACKAGE_COMPONENT AND CPACK_DEBIAN_${_local_component_name}_PACKAGE_ARCHITECTURE)
- set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${CPACK_DEBIAN_${_local_component_name}_PACKAGE_ARCHITECTURE}")
- elseif(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
- # There is no such thing as i686 architecture on debian, you should use i386 instead
- # $ dpkg --print-architecture
- find_program(DPKG_CMD dpkg)
- if(NOT DPKG_CMD)
- message(STATUS "CPackDeb: Can not find dpkg in your path, default to i386.")
- set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE i386)
- endif()
- execute_process(COMMAND "${DPKG_CMD}" --print-architecture
- OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- endif()
-
- # Source: (optional)
- # in case several packages are constructed from a unique source
- # (multipackaging), the source may be indicated as well.
- # The source might contain a version if the generated package
- # version is different from the source version
- if(NOT CPACK_DEBIAN_PACKAGE_SOURCE)
- set(CPACK_DEBIAN_PACKAGE_SOURCE "")
- endif()
-
- # have a look at get_property(result GLOBAL PROPERTY ENABLED_FEATURES),
- # this returns the successful find_package() calls, maybe this can help
- # Depends:
- # You should set: DEBIAN_PACKAGE_DEPENDS
- # TODO: automate 'objdump -p | grep NEEDED'
-
- # if per-component variable, overrides the global CPACK_DEBIAN_PACKAGE_${variable_type_}
- # automatic dependency discovery will be performed afterwards.
- if(CPACK_DEB_PACKAGE_COMPONENT)
- foreach(value_type_ IN ITEMS DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE SECTION PRIORITY NAME)
- set(_component_var "CPACK_DEBIAN_${_local_component_name}_PACKAGE_${value_type_}")
-
- # if set, overrides the global variable
- if(DEFINED ${_component_var})
- set(CPACK_DEBIAN_PACKAGE_${value_type_} "${${_component_var}}")
- if(CPACK_DEBIAN_PACKAGE_DEBUG)
- message("CPackDeb Debug: component '${_local_component_name}' ${value_type_} "
- "value set to '${CPACK_DEBIAN_PACKAGE_${value_type_}}'")
- endif()
- endif()
- endforeach()
-
- if(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS)
- unset(COMPONENT_DEPENDS)
- foreach(_PACK IN LISTS CPACK_COMPONENT_${_local_component_name}_DEPENDS)
- get_component_package_name(_PACK_NAME "${_PACK}")
- list(PREPEND COMPONENT_DEPENDS "${_PACK_NAME} (= ${CPACK_DEBIAN_PACKAGE_VERSION})")
- endforeach()
- list(JOIN COMPONENT_DEPENDS ", " COMPONENT_DEPENDS)
- if(COMPONENT_DEPENDS)
- list(PREPEND CPACK_DEBIAN_PACKAGE_DEPENDS ${COMPONENT_DEPENDS})
- list(JOIN CPACK_DEBIAN_PACKAGE_DEPENDS ", " CPACK_DEBIAN_PACKAGE_DEPENDS)
- endif()
- endif()
- endif()
-
- # at this point, the CPACK_DEBIAN_PACKAGE_DEPENDS is properly set
- # to the minimal dependency of the package
- # Append automatically discovered dependencies .
- if(CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS)
- list(APPEND CPACK_DEBIAN_PACKAGE_DEPENDS ${CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS})
- list(JOIN CPACK_DEBIAN_PACKAGE_DEPENDS ", " CPACK_DEBIAN_PACKAGE_DEPENDS)
- endif()
-
- if(NOT CPACK_DEBIAN_PACKAGE_DEPENDS)
- message(STATUS "CPACK_DEBIAN_PACKAGE_DEPENDS not set, the package will have no dependencies.")
- endif()
-
- # Maintainer: (mandatory)
- if(NOT CPACK_DEBIAN_PACKAGE_MAINTAINER)
- if(NOT CPACK_PACKAGE_CONTACT)
- message(FATAL_ERROR "CPackDeb: Debian package requires a maintainer for a package, set CPACK_PACKAGE_CONTACT or CPACK_DEBIAN_PACKAGE_MAINTAINER")
- endif()
- set(CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_CONTACT})
- endif()
-
- # Description: (mandatory)
- # Try package description first
- if(CPACK_USED_DEFAULT_PACKAGE_DESCRIPTION_FILE)
- set(_desc_fallback)
- else()
- set(_desc_fallback "CPACK_PACKAGE_DESCRIPTION")
- endif()
- if(CPACK_DEB_PACKAGE_COMPONENT)
- cpack_deb_variable_fallback("CPACK_DEBIAN_PACKAGE_DESCRIPTION"
- "CPACK_DEBIAN_${_local_component_name}_DESCRIPTION"
- "CPACK_COMPONENT_${_local_component_name}_DESCRIPTION")
- else()
- cpack_deb_variable_fallback("CPACK_DEBIAN_PACKAGE_DESCRIPTION"
- "CPACK_DEBIAN_PACKAGE_DESCRIPTION"
- ${_desc_fallback})
- endif()
-
- # Still no description? ... and description file has set ...
- if(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION
- AND CPACK_PACKAGE_DESCRIPTION_FILE
- AND NOT CPACK_PACKAGE_DESCRIPTION_FILE STREQUAL CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE)
- # Read `CPACK_PACKAGE_DESCRIPTION_FILE` then...
- file(READ ${CPACK_PACKAGE_DESCRIPTION_FILE} CPACK_DEBIAN_PACKAGE_DESCRIPTION)
- endif()
-
- # Still no description? #2
- if(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION)
- # Try to get `CPACK_PACKAGE_DESCRIPTION_SUMMARY` as the last hope
- if(CPACK_PACKAGE_DESCRIPTION_SUMMARY)
- set(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
- else()
- # Giving up! Report an error...
- set(_description_failure_message
- "CPackDeb: Debian package requires a summary for a package, set CPACK_PACKAGE_DESCRIPTION_SUMMARY or CPACK_DEBIAN_PACKAGE_DESCRIPTION")
- if(CPACK_DEB_PACKAGE_COMPONENT)
- string(APPEND _description_failure_message
- " or CPACK_DEBIAN_${_local_component_name}_DESCRIPTION")
- endif()
- message(FATAL_ERROR _description_failure_message)
- endif()
-
- # Ok, description has set. According to the `Debian Policy Manual`_ the frist
- # line is a pacakge summary. Try to get it as well...
- # See also: https://www.debian.org/doc/debian-policy/ch-controlfields.html#description
- elseif(CPACK_PACKAGE_DESCRIPTION_SUMMARY AND
- NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY STREQUAL CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY)
- # Merge summary w/ the detailed description
- string(PREPEND CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}\n")
- endif()
- # assert(CPACK_DEBIAN_PACKAGE_DESCRIPTION)
-
- # Make sure description is properly formatted
- cpack_deb_format_package_description(
- "${CPACK_DEBIAN_PACKAGE_DESCRIPTION}"
- CPACK_DEBIAN_PACKAGE_DESCRIPTION
- )
-
- # Homepage: (optional)
- if(NOT CPACK_DEBIAN_PACKAGE_HOMEPAGE AND CMAKE_PROJECT_HOMEPAGE_URL)
- set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "${CMAKE_PROJECT_HOMEPAGE_URL}")
- endif()
-
- # Section: (recommended)
- if(NOT CPACK_DEBIAN_PACKAGE_SECTION)
- set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
- endif()
-
- # Priority: (recommended)
- if(NOT CPACK_DEBIAN_PACKAGE_PRIORITY)
- set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
- endif()
-
- if(CPACK_DEBIAN_ARCHIVE_TYPE)
- if(CPACK_DEBIAN_ARCHIVE_TYPE STREQUAL "paxr")
- message(DEPRECATION "CPACK_DEBIAN_ARCHIVE_TYPE set to old and invalid "
- "type 'paxr', mapping to 'gnutar'")
- set(CPACK_DEBIAN_ARCHIVE_TYPE "gnutar")
- elseif(NOT CPACK_DEBIAN_ARCHIVE_TYPE STREQUAL "gnutar")
- message(FATAL_ERROR "CPACK_DEBIAN_ARCHIVE_TYPE set to unsupported"
- "type ${CPACK_DEBIAN_ARCHIVE_TYPE}")
- endif()
- else()
- set(CPACK_DEBIAN_ARCHIVE_TYPE "gnutar")
- endif()
-
- # Compression: (recommended)
- if(NOT CPACK_DEBIAN_COMPRESSION_TYPE)
- set(CPACK_DEBIAN_COMPRESSION_TYPE "gzip")
- endif()
-
- # Recommends:
- # You should set: CPACK_DEBIAN_PACKAGE_RECOMMENDS
-
- # Suggests:
- # You should set: CPACK_DEBIAN_PACKAGE_SUGGESTS
-
- # CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
- # This variable allow advanced user to add custom script to the control.tar.gz (inside the .deb archive)
- # Typical examples are:
- # - conffiles
- # - postinst
- # - postrm
- # - prerm
- # Usage:
- # set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
- # "${CMAKE_CURRENT_SOURCE_DIR}/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm")
-
- # Are we packaging components ?
- if(CPACK_DEB_PACKAGE_COMPONENT)
- # override values with per component version if set
- foreach(VAR_NAME_ IN ITEMS PACKAGE_CONTROL_EXTRA PACKAGE_CONTROL_STRICT_PERMISSION)
- if(CPACK_DEBIAN_${_local_component_name}_${VAR_NAME_})
- set(CPACK_DEBIAN_${VAR_NAME_} "${CPACK_DEBIAN_${_local_component_name}_${VAR_NAME_}}")
- endif()
- endforeach()
- get_component_package_name(CPACK_DEBIAN_PACKAGE_NAME ${_local_component_name})
- endif()
-
- if(NOT CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY)
- set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY "=")
- endif()
-
- unset(CPACK_DEBIAN_PACKAGE_SHLIBS_LIST)
-
- if(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS)
- if(READELF_EXECUTABLE)
- foreach(_FILE IN LISTS CPACK_DEB_SHARED_OBJECT_FILES)
- extract_so_info("${_FILE}" libname soversion)
- if(libname AND DEFINED soversion)
- list(APPEND CPACK_DEBIAN_PACKAGE_SHLIBS_LIST
- "${libname} ${soversion} ${CPACK_DEBIAN_PACKAGE_NAME} (${CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY} ${CPACK_DEBIAN_PACKAGE_VERSION})")
- else()
- message(AUTHOR_WARNING "Shared library '${_FILE}' is missing soname or soversion. Library will not be added to DEBIAN/shlibs control file.")
- endif()
- endforeach()
- list(JOIN CPACK_DEBIAN_PACKAGE_SHLIBS_LIST "\n" CPACK_DEBIAN_PACKAGE_SHLIBS_LIST)
- else()
- message(FATAL_ERROR "Readelf utility is not available. CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS option is not available.")
- endif()
- endif()
-
- # add ldconfig call in default postrm and postint
- set(CPACK_ADD_LDCONFIG_CALL 0)
- foreach(_FILE IN LISTS CPACK_DEB_SHARED_OBJECT_FILES)
- get_filename_component(_DIR ${_FILE} DIRECTORY)
- # all files in CPACK_DEB_SHARED_OBJECT_FILES have dot at the beginning
- if(_DIR STREQUAL "./lib" OR _DIR STREQUAL "./usr/lib")
- set(CPACK_ADD_LDCONFIG_CALL 1)
- endif()
- endforeach()
-
- if(CPACK_ADD_LDCONFIG_CALL)
- set(CPACK_DEBIAN_GENERATE_POSTINST 1)
- set(CPACK_DEBIAN_GENERATE_POSTRM 1)
- foreach(f IN LISTS PACKAGE_CONTROL_EXTRA)
- get_filename_component(n "${f}" NAME)
- if(n STREQUAL "postinst")
- set(CPACK_DEBIAN_GENERATE_POSTINST 0)
- endif()
- if(n STREQUAL "postrm")
- set(CPACK_DEBIAN_GENERATE_POSTRM 0)
- endif()
- endforeach()
- else()
- set(CPACK_DEBIAN_GENERATE_POSTINST 0)
- set(CPACK_DEBIAN_GENERATE_POSTRM 0)
- endif()
-
- cpack_deb_variable_fallback("CPACK_DEBIAN_FILE_NAME"
- "CPACK_DEBIAN_${_local_component_name}_FILE_NAME"
- "CPACK_DEBIAN_FILE_NAME")
- if(CPACK_DEBIAN_FILE_NAME)
- if(CPACK_DEBIAN_FILE_NAME STREQUAL "DEB-DEFAULT")
- # Patch package file name to be in correct debian format:
- # <foo>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
- set(CPACK_OUTPUT_FILE_NAME
- "${CPACK_DEBIAN_PACKAGE_NAME}_${CPACK_DEBIAN_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb")
- set(CPACK_DBGSYM_OUTPUT_FILE_NAME
- "${CPACK_DEBIAN_PACKAGE_NAME}-dbgsym_${CPACK_DEBIAN_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.ddeb")
- else()
- if(NOT CPACK_DEBIAN_FILE_NAME MATCHES ".*\\.(deb|ipk)")
- message(FATAL_ERROR "'${CPACK_DEBIAN_FILE_NAME}' is not a valid DEB package file name as it must end with '.deb' or '.ipk'!")
- endif()
-
- set(CPACK_OUTPUT_FILE_NAME "${CPACK_DEBIAN_FILE_NAME}")
- string(REGEX REPLACE "\.deb$" "-dbgsym.ddeb" CPACK_DBGSYM_OUTPUT_FILE_NAME "${CPACK_DEBIAN_FILE_NAME}")
- endif()
-
- set(CPACK_TEMPORARY_PACKAGE_FILE_NAME "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_OUTPUT_FILE_NAME}")
- get_filename_component(BINARY_DIR "${CPACK_OUTPUT_FILE_PATH}" DIRECTORY)
- set(CPACK_OUTPUT_FILE_PATH "${BINARY_DIR}/${CPACK_OUTPUT_FILE_NAME}")
- else()
- # back compatibility - don't change the name
- string(REGEX REPLACE "\.deb$" "-dbgsym.ddeb" CPACK_DBGSYM_OUTPUT_FILE_NAME "${CPACK_OUTPUT_FILE_NAME}")
- endif()
-
- # Print out some debug information if we were asked for that
- if(CPACK_DEBIAN_PACKAGE_DEBUG)
- message("CPackDeb:Debug: CPACK_TOPLEVEL_DIRECTORY = '${CPACK_TOPLEVEL_DIRECTORY}'")
- message("CPackDeb:Debug: CPACK_TOPLEVEL_TAG = '${CPACK_TOPLEVEL_TAG}'")
- message("CPackDeb:Debug: CPACK_TEMPORARY_DIRECTORY = '${CPACK_TEMPORARY_DIRECTORY}'")
- message("CPackDeb:Debug: CPACK_OUTPUT_FILE_NAME = '${CPACK_OUTPUT_FILE_NAME}'")
- message("CPackDeb:Debug: CPACK_OUTPUT_FILE_PATH = '${CPACK_OUTPUT_FILE_PATH}'")
- message("CPackDeb:Debug: CPACK_PACKAGE_FILE_NAME = '${CPACK_PACKAGE_FILE_NAME}'")
- message("CPackDeb:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = '${CPACK_PACKAGE_INSTALL_DIRECTORY}'")
- message("CPackDeb:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = '${CPACK_TEMPORARY_PACKAGE_FILE_NAME}'")
- message("CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION = '${CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION}'")
- message("CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_SOURCE = '${CPACK_DEBIAN_PACKAGE_SOURCE}'")
- endif()
-
- # For debian source packages:
- # debian/control
- # http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-sourcecontrolfiles
-
- # .dsc
- # http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-debiansourcecontrolfiles
-
- # Builds-Depends:
- #if(NOT CPACK_DEBIAN_PACKAGE_BUILDS_DEPENDS)
- # set(CPACK_DEBIAN_PACKAGE_BUILDS_DEPENDS
- # "debhelper (>> 5.0.0), libncurses5-dev, tcl8.4"
- # )
- #endif()
-
- # move variables to parent scope so that they may be used to create debian package
- set(GEN_CPACK_OUTPUT_FILE_NAME "${CPACK_OUTPUT_FILE_NAME}" PARENT_SCOPE)
- set(GEN_CPACK_TEMPORARY_PACKAGE_FILE_NAME "${CPACK_TEMPORARY_PACKAGE_FILE_NAME}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_NAME "${CPACK_DEBIAN_PACKAGE_NAME}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_VERSION "${CPACK_DEBIAN_PACKAGE_VERSION}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_SECTION "${CPACK_DEBIAN_PACKAGE_SECTION}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_PRIORITY "${CPACK_DEBIAN_PACKAGE_PRIORITY}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_MAINTAINER "${CPACK_DEBIAN_PACKAGE_MAINTAINER}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_DEBIAN_PACKAGE_DESCRIPTION}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_ARCHIVE_TYPE "${CPACK_DEBIAN_ARCHIVE_TYPE}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_COMPRESSION_TYPE "${CPACK_DEBIAN_COMPRESSION_TYPE}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_RECOMMENDS "${CPACK_DEBIAN_PACKAGE_RECOMMENDS}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_SUGGESTS "${CPACK_DEBIAN_PACKAGE_SUGGESTS}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_HOMEPAGE "${CPACK_DEBIAN_PACKAGE_HOMEPAGE}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_PREDEPENDS "${CPACK_DEBIAN_PACKAGE_PREDEPENDS}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_ENHANCES "${CPACK_DEBIAN_PACKAGE_ENHANCES}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_BREAKS "${CPACK_DEBIAN_PACKAGE_BREAKS}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_CONFLICTS "${CPACK_DEBIAN_PACKAGE_CONFLICTS}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_PROVIDES "${CPACK_DEBIAN_PACKAGE_PROVIDES}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_REPLACES "${CPACK_DEBIAN_PACKAGE_REPLACES}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_SHLIBS "${CPACK_DEBIAN_PACKAGE_SHLIBS_LIST}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION
- "${CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_PACKAGE_SOURCE
- "${CPACK_DEBIAN_PACKAGE_SOURCE}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_GENERATE_POSTINST "${CPACK_DEBIAN_GENERATE_POSTINST}" PARENT_SCOPE)
- set(GEN_CPACK_DEBIAN_GENERATE_POSTRM "${CPACK_DEBIAN_GENERATE_POSTRM}" PARENT_SCOPE)
- set(GEN_WDIR "${WDIR}" PARENT_SCOPE)
-
- set(GEN_CPACK_DEBIAN_DEBUGINFO_PACKAGE "${CPACK_DEBIAN_DEBUGINFO_PACKAGE}" PARENT_SCOPE)
- if(BUILD_IDS)
- set(GEN_DBGSYMDIR "${DBGSYMDIR}" PARENT_SCOPE)
- set(GEN_CPACK_DBGSYM_OUTPUT_FILE_NAME "${CPACK_DBGSYM_OUTPUT_FILE_NAME}" PARENT_SCOPE)
- list(JOIN BUILD_IDS " " BUILD_IDS)
- set(GEN_BUILD_IDS "${BUILD_IDS}" PARENT_SCOPE)
- endif()
-endfunction()
-
-cpack_deb_prepare_package_vars()
-
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPackFreeBSD.cmake b/share/cmake-3.16/Modules/Internal/CPack/CPackFreeBSD.cmake
deleted file mode 100644
index 16f906c..0000000
--- a/share/cmake-3.16/Modules/Internal/CPack/CPackFreeBSD.cmake
+++ /dev/null
@@ -1,107 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-if(CMAKE_BINARY_DIR)
- message(FATAL_ERROR "CPackFreeBSD.cmake may only be used by CPack internally.")
-endif()
-
-if(NOT UNIX)
- message(FATAL_ERROR "CPackFreeBSD.cmake may only be used under UNIX.")
-endif()
-
-
-###
-#
-# These bits are copied from the Debian packaging file; slightly modified.
-# They are used for filling in FreeBSD-packaging variables that can take
-# on values from elsewhere -- e.g. the package description may as well be
-# copied from Debian.
-#
-function(_cpack_freebsd_fallback_var OUTPUT_VAR_NAME)
- set(FALLBACK_VAR_NAMES ${ARGN})
-
- set(VALUE "${${OUTPUT_VAR_NAME}}")
- if(VALUE)
- return()
- endif()
-
- foreach(variable_name IN LISTS FALLBACK_VAR_NAMES)
- if(${variable_name})
- set(${OUTPUT_VAR_NAME} "${${variable_name}}" PARENT_SCOPE)
- set(VALUE "${${variable_name}}")
- break()
- endif()
- endforeach()
- if(NOT VALUE)
- message(WARNING "Variable ${OUTPUT_VAR_NAME} could not be given a fallback value from any variable ${FALLBACK_VAR_NAMES}.")
- endif()
-endfunction()
-
-function(check_required_var VAR_NAME)
- if(NOT ${VAR_NAME})
- message(FATAL_ERROR "Variable ${VAR_NAME} is not set.")
- endif()
-endfunction()
-
-set(_cpack_freebsd_fallback_origin "misc/bogus")
-
-_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_NAME"
- "CPACK_PACKAGE_NAME"
- "CMAKE_PROJECT_NAME"
- )
-
-set(_cpack_freebsd_fallback_www "http://example.com/?pkg=${CPACK_FREEBSD_PACKAGE_NAME}")
-
-_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_COMMENT"
- "CPACK_PACKAGE_DESCRIPTION_SUMMARY"
- )
-
-# TODO: maybe read the PACKAGE_DESCRIPTION file for the longer
-# FreeBSD pkg-descr?
-_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_DESCRIPTION"
- "CPACK_DEBIAN_PACKAGE_DESCRIPTION"
- "CPACK_PACKAGE_DESCRIPTION_SUMMARY"
- "PACKAGE_DESCRIPTION"
- )
-
-# There's really only one homepage for a project, so
-# re-use the Debian setting if it's there.
-_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_WWW"
- "CMAKE_PROJECT_HOMEPAGE_URL"
- "CPACK_DEBIAN_PACKAGE_HOMEPAGE"
- "_cpack_freebsd_fallback_www"
- )
-
-_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_VERSION"
- "CMAKE_PROJECT_VERSION"
- "${CMAKE_PROJECT_NAME}_VERSION"
- "PROJECT_VERSION"
- "CPACK_PACKAGE_VERSION"
- "CPACK_PACKAGE_VERSION"
- )
-
-_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_MAINTAINER"
- "CPACK_PACKAGE_CONTACT"
- )
-
-_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_LICENSE"
- "CPACK_RPM_PACKAGE_LICENSE"
- )
-
-_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_ORIGIN"
- "_cpack_freebsd_fallback_origin"
- )
-
-if(NOT CPACK_FREEBSD_PACKAGE_CATEGORIES)
- string(REGEX REPLACE "/.*" "" CPACK_FREEBSD_PACKAGE_CATEGORIES ${CPACK_FREEBSD_PACKAGE_ORIGIN})
-endif()
-
-check_required_var("CPACK_FREEBSD_PACKAGE_NAME")
-check_required_var("CPACK_FREEBSD_PACKAGE_ORIGIN")
-check_required_var("CPACK_FREEBSD_PACKAGE_VERSION")
-check_required_var("CPACK_FREEBSD_PACKAGE_MAINTAINER")
-check_required_var("CPACK_FREEBSD_PACKAGE_COMMENT")
-check_required_var("CPACK_FREEBSD_PACKAGE_DESCRIPTION")
-check_required_var("CPACK_FREEBSD_PACKAGE_WWW")
-check_required_var("CPACK_FREEBSD_PACKAGE_LICENSE")
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPackNuGet.cmake b/share/cmake-3.16/Modules/Internal/CPack/CPackNuGet.cmake
deleted file mode 100644
index 82053b2..0000000
--- a/share/cmake-3.16/Modules/Internal/CPack/CPackNuGet.cmake
+++ /dev/null
@@ -1,363 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-# Author: Alex Turbov
-
-if(CMAKE_BINARY_DIR)
- message(FATAL_ERROR "CPackNuGet.cmake may only be used by CPack internally.")
-endif()
-
-function(_cpack_nuget_debug)
- if(CPACK_NUGET_PACKAGE_DEBUG)
- message("CPackNuGet:Debug: " ${ARGN})
- endif()
-endfunction()
-
-function(_cpack_nuget_debug_var NAME)
- if(CPACK_NUGET_PACKAGE_DEBUG)
- message("CPackNuGet:Debug: ${NAME}=`${${NAME}}`")
- endif()
-endfunction()
-
-function(_cpack_nuget_variable_fallback OUTPUT_VAR_NAME NUGET_VAR_NAME)
- if(ARGN)
- list(JOIN ARGN "`, `" _va_args)
- set(_va_args ", ARGN: `${_va_args}`")
- endif()
- _cpack_nuget_debug(
- "_cpack_nuget_variable_fallback: "
- "OUTPUT_VAR_NAME=`${OUTPUT_VAR_NAME}`, "
- "NUGET_VAR_NAME=`${NUGET_VAR_NAME}`"
- "${_va_args}"
- )
-
- set(_options USE_CDATA)
- set(_one_value_args LIST_GLUE)
- set(_multi_value_args FALLBACK_VARS)
- cmake_parse_arguments(PARSE_ARGV 0 _args "${_options}" "${_one_value_args}" "${_multi_value_args}")
-
- if(CPACK_NUGET_PACKAGE_COMPONENT)
- string(
- TOUPPER "${CPACK_NUGET_PACKAGE_COMPONENT}"
- CPACK_NUGET_PACKAGE_COMPONENT_UPPER
- )
- endif()
-
- if(CPACK_NUGET_PACKAGE_COMPONENT
- AND CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT}_PACKAGE_${NUGET_VAR_NAME}
- )
- set(
- _result
- "${CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT}_PACKAGE_${NUGET_VAR_NAME}}"
- )
- _cpack_nuget_debug(
- " CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT}_PACKAGE_${NUGET_VAR_NAME}: "
- "OUTPUT_VAR_NAME->${OUTPUT_VAR_NAME}=`${_result}`"
- )
-
- elseif(CPACK_NUGET_PACKAGE_COMPONENT_UPPER
- AND CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_${NUGET_VAR_NAME}
- )
- set(
- _result
- "${CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_${NUGET_VAR_NAME}}"
- )
- _cpack_nuget_debug(
- " CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_${NUGET_VAR_NAME}: "
- "OUTPUT_VAR_NAME->${OUTPUT_VAR_NAME}=`${_result}`"
- )
-
- elseif(CPACK_NUGET_PACKAGE_${NUGET_VAR_NAME})
- set(_result "${CPACK_NUGET_PACKAGE_${NUGET_VAR_NAME}}")
- _cpack_nuget_debug(
- " CPACK_NUGET_PACKAGE_${NUGET_VAR_NAME}: "
- "OUTPUT_VAR_NAME->${OUTPUT_VAR_NAME}=`${_result}`"
- )
-
- else()
- foreach(_var IN LISTS _args_FALLBACK_VARS)
- _cpack_nuget_debug(" Fallback: ${_var} ...")
- if(${_var})
- _cpack_nuget_debug(" ${_var}=`${${_var}}`")
- set(_result "${${_var}}")
- _cpack_nuget_debug(
- " ${_var}: OUTPUT_VAR_NAME->${OUTPUT_VAR_NAME}=`${_result}`"
- )
- break()
- endif()
- endforeach()
- endif()
-
- if(_result)
- if(_args_USE_CDATA)
- set(_value_before "<![CDATA[")
- set(_value_after "]]>")
- endif()
-
- list(LENGTH _result _result_len)
- if(_result_len GREATER 1 AND _args_LIST_GLUE)
- list(JOIN _result "${_args_LIST_GLUE}" _result)
- endif()
-
- set(${OUTPUT_VAR_NAME} "${_value_before}${_result}${_value_after}" PARENT_SCOPE)
- endif()
-
-endfunction()
-
-function(_cpack_nuget_variable_fallback_and_wrap_into_element ELEMENT NUGET_VAR_NAME)
- set(_options)
- set(_one_value_args)
- set(_multi_value_args FALLBACK_VARS)
- cmake_parse_arguments(PARSE_ARGV 0 _args "${_options}" "${_one_value_args}" "${_multi_value_args}")
-
- _cpack_nuget_variable_fallback(_value ${NUGET_VAR_NAME} ${ARGN} USE_CDATA)
-
- if(_value)
- string(TOUPPER "${ELEMENT}" _ELEMENT_UP)
- set(
- _CPACK_NUGET_${_ELEMENT_UP}_TAG
- "<${ELEMENT}>${_value}</${ELEMENT}>"
- PARENT_SCOPE
- )
- endif()
-endfunction()
-
-# Print some debug info
-_cpack_nuget_debug("---[CPack NuGet Input Variables]---")
-_cpack_nuget_debug_var(CPACK_PACKAGE_NAME)
-_cpack_nuget_debug_var(CPACK_PACKAGE_VERSION)
-_cpack_nuget_debug_var(CPACK_TOPLEVEL_TAG)
-_cpack_nuget_debug_var(CPACK_TOPLEVEL_DIRECTORY)
-_cpack_nuget_debug_var(CPACK_TEMPORARY_DIRECTORY)
-_cpack_nuget_debug_var(CPACK_NUGET_GROUPS)
-if(CPACK_NUGET_GROUPS)
- foreach(_group IN LISTS CPACK_NUGET_GROUPS)
- string(MAKE_C_IDENTIFIER "${_group}" _group_up)
- string(TOUPPER "${_group_up}" _group_up)
- _cpack_nuget_debug_var(CPACK_NUGET_${_group_up}_GROUP_COMPONENTS)
- endforeach()
-endif()
-_cpack_nuget_debug_var(CPACK_NUGET_COMPONENTS)
-_cpack_nuget_debug_var(CPACK_NUGET_ALL_IN_ONE)
-_cpack_nuget_debug_var(CPACK_NUGET_ORDINAL_MONOLITIC)
-_cpack_nuget_debug("-----------------------------------")
-
-function(_cpack_nuget_render_spec)
- # Make a variable w/ upper-cased component name
- if(CPACK_NUGET_PACKAGE_COMPONENT)
- string(TOUPPER "${CPACK_NUGET_PACKAGE_COMPONENT}" CPACK_NUGET_PACKAGE_COMPONENT_UPPER)
- endif()
-
- # Set mandatory variables (not wrapped into XML elements)
- # https://docs.microsoft.com/en-us/nuget/reference/nuspec#required-metadata-elements
- if(CPACK_NUGET_PACKAGE_COMPONENT)
- if(CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_NAME)
- set(
- CPACK_NUGET_PACKAGE_NAME
- "${CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_NAME}"
- )
- elseif(NOT CPACK_NUGET_PACKAGE_COMPONENT STREQUAL "Unspecified")
- set(
- CPACK_NUGET_PACKAGE_NAME
- "${CPACK_PACKAGE_NAME}.${CPACK_NUGET_PACKAGE_COMPONENT}"
- )
- else()
- set(CPACK_NUGET_PACKAGE_NAME "${CPACK_PACKAGE_NAME}")
- endif()
- elseif(NOT CPACK_NUGET_PACKAGE_NAME)
- set(CPACK_NUGET_PACKAGE_NAME "${CPACK_PACKAGE_NAME}")
- endif()
-
- _cpack_nuget_variable_fallback(
- CPACK_NUGET_PACKAGE_VERSION VERSION
- FALLBACK_VARS
- CPACK_PACKAGE_VERSION
- )
- _cpack_nuget_variable_fallback(
- CPACK_NUGET_PACKAGE_DESCRIPTION DESCRIPTION
- FALLBACK_VARS
- CPACK_COMPONENT_${CPACK_NUGET_PACKAGE_COMPONENT}_DESCRIPTION
- CPACK_COMPONENT_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_DESCRIPTION
- CPACK_COMPONENT_GROUP_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_DESCRIPTION
- CPACK_PACKAGE_DESCRIPTION
- USE_CDATA
- )
- _cpack_nuget_variable_fallback(
- CPACK_NUGET_PACKAGE_AUTHORS AUTHORS
- FALLBACK_VARS
- CPACK_PACKAGE_VENDOR
- USE_CDATA
- LIST_GLUE ","
- )
-
- # Set optional variables (wrapped into XML elements)
- # https://docs.microsoft.com/en-us/nuget/reference/nuspec#optional-metadata-elements
- _cpack_nuget_variable_fallback_and_wrap_into_element(
- title
- TITLE
- FALLBACK_VARS
- CPACK_COMPONENT_${CPACK_NUGET_PACKAGE_COMPONENT}_DISPLAY_NAME
- CPACK_COMPONENT_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_DISPLAY_NAME
- CPACK_COMPONENT_GROUP_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_DISPLAY_NAME
- )
- _cpack_nuget_variable_fallback_and_wrap_into_element(owners OWNERS LIST_GLUE ",")
- _cpack_nuget_variable_fallback_and_wrap_into_element(
- projectUrl
- HOMEPAGE_URL
- FALLBACK_VARS
- CPACK_PACKAGE_HOMEPAGE_URL
- )
- _cpack_nuget_variable_fallback_and_wrap_into_element(licenseUrl LICENSEURL)
- _cpack_nuget_variable_fallback_and_wrap_into_element(iconUrl ICONURL)
- _cpack_nuget_variable_fallback_and_wrap_into_element(
- summary DESCRIPTION_SUMMARY
- FALLBACK_VARS
- CPACK_PACKAGE_DESCRIPTION_SUMMARY
- )
- if(CPACK_NUGET_PACKAGE_REQUIRE_LICENSE_ACCEPTANCE)
- set(
- _CPACK_NUGET_REQUIRELICENSEACCEPTANCE_TAG
- "<requireLicenseAcceptance>true</requireLicenseAcceptance>"
- )
- endif()
- _cpack_nuget_variable_fallback_and_wrap_into_element(releaseNotes RELEASE_NOTES)
- _cpack_nuget_variable_fallback_and_wrap_into_element(copyright COPYRIGHT)
- _cpack_nuget_variable_fallback_and_wrap_into_element(tags TAGS LIST_GLUE " ")
-
- # Handle dependencies
- _cpack_nuget_variable_fallback(_deps DEPENDENCIES)
- set(_collected_deps)
- foreach(_dep IN LISTS _deps)
- _cpack_nuget_debug(" checking dependency `${_dep}`")
-
- string(MAKE_C_IDENTIFIER "${_dep}" _dep_id)
-
- _cpack_nuget_variable_fallback(_ver DEPENDENCIES_${_dep_id}_VERSION)
-
- if(NOT _ver)
- string(TOUPPER "${_dep_id}" _dep_id)
- _cpack_nuget_variable_fallback(_ver DEPENDENCIES_${_dep_id}_VERSION)
- endif()
-
- if(_ver)
- _cpack_nuget_debug(" got `${_dep}` dependency version ${_ver}")
- list(APPEND _collected_deps "<dependency id=\"${_dep}\" version=\"${_ver}\" />")
- endif()
- endforeach()
-
- # Render deps into the variable
- if(_collected_deps)
- set(_CPACK_NUGET_DEPENDENCIES_TAG "<dependencies>\n")
- foreach(_line IN LISTS _collected_deps)
- string(
- APPEND _CPACK_NUGET_DEPENDENCIES_TAG
- " ${_line}\n"
- )
- endforeach()
- string(APPEND _CPACK_NUGET_DEPENDENCIES_TAG " </dependencies>")
- endif()
-
- # Render the spec file
- # NOTE The spec filename doesn't matter. Being included into a package,
- # NuGet will name it properly.
- _cpack_nuget_debug("Rendering `${CPACK_TEMPORARY_DIRECTORY}/CPack.NuGet.nuspec` file...")
- configure_file(
- "${CMAKE_ROOT}/Modules/Internal/CPack/CPack.NuGet.nuspec.in"
- "${CPACK_TEMPORARY_DIRECTORY}/CPack.NuGet.nuspec"
- @ONLY
- )
-endfunction()
-
-function(_cpack_nuget_make_files_tag)
- set(_files)
- foreach(_comp IN LISTS ARGN)
- string(APPEND _files " <file src=\"${_comp}\\**\" target=\".\" />\n")
- endforeach()
- set(_CPACK_NUGET_FILES_TAG "<files>\n${_files} </files>" PARENT_SCOPE)
-endfunction()
-
-find_program(NUGET_EXECUTABLE nuget)
-_cpack_nuget_debug_var(NUGET_EXECUTABLE)
-if(NOT NUGET_EXECUTABLE)
- message(FATAL_ERROR "NuGet executable not found")
-endif()
-
-# Add details for debug run
-if(CPACK_NUGET_PACKAGE_DEBUG)
- list(APPEND CPACK_NUGET_PACK_ADDITIONAL_OPTIONS "-Verbosity" "detailed")
-endif()
-
-# Case one: ordinal all-in-one package
-if(CPACK_NUGET_ORDINAL_MONOLITIC)
- # This variable `CPACK_NUGET_ALL_IN_ONE` set by C++ code:
- # Meaning to pack all installed files into a single package
- _cpack_nuget_debug("---[Making an ordinal monolitic package]---")
- _cpack_nuget_render_spec()
- execute_process(
- COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS}
- WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
- )
-
-elseif(CPACK_NUGET_ALL_IN_ONE)
- # This variable `CPACK_NUGET_ALL_IN_ONE` set by C++ code:
- # Meaning to pack all installed components into a single package
- _cpack_nuget_debug("---[Making a monolitic package from installed components]---")
-
- # Prepare the `files` element which include files from several components
- _cpack_nuget_make_files_tag(${CPACK_NUGET_COMPONENTS})
- _cpack_nuget_render_spec()
- execute_process(
- COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS}
- WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
- )
-
-else()
- # Is there any grouped component?
- if(CPACK_NUGET_GROUPS)
- _cpack_nuget_debug("---[Making grouped component(s) package(s)]---")
- foreach(_group IN LISTS CPACK_NUGET_GROUPS)
- _cpack_nuget_debug("Starting to make the package for group `${_group}`")
- string(MAKE_C_IDENTIFIER "${_group}" _group_up)
- string(TOUPPER "${_group_up}" _group_up)
-
- # Render a spec file which includes all components in the current group
- unset(_CPACK_NUGET_FILES_TAG)
- _cpack_nuget_make_files_tag(${CPACK_NUGET_${_group_up}_GROUP_COMPONENTS})
- # Temporary set `CPACK_NUGET_PACKAGE_COMPONENT` to the group name
- # to properly collect various per group settings
- set(CPACK_NUGET_PACKAGE_COMPONENT ${_group})
- _cpack_nuget_render_spec()
- unset(CPACK_NUGET_PACKAGE_COMPONENT)
- execute_process(
- COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS}
- WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
- )
- endforeach()
- endif()
- # Is there any single component package needed?
- if(CPACK_NUGET_COMPONENTS)
- _cpack_nuget_debug("---[Making single-component(s) package(s)]---")
- foreach(_comp IN LISTS CPACK_NUGET_COMPONENTS)
- _cpack_nuget_debug("Starting to make the package for component `${_comp}`")
- # Render a spec file which includes only given component
- unset(_CPACK_NUGET_FILES_TAG)
- _cpack_nuget_make_files_tag(${_comp})
- # Temporary set `CPACK_NUGET_PACKAGE_COMPONENT` to the current
- # component name to properly collect various per group settings
- set(CPACK_NUGET_PACKAGE_COMPONENT ${_comp})
- _cpack_nuget_render_spec()
- unset(CPACK_NUGET_PACKAGE_COMPONENT)
- execute_process(
- COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS}
- WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
- )
- endforeach()
- endif()
-endif()
-
-file(GLOB_RECURSE GEN_CPACK_OUTPUT_FILES "${CPACK_TEMPORARY_DIRECTORY}/*.nupkg")
-if(NOT GEN_CPACK_OUTPUT_FILES)
- message(FATAL_ERROR "NuGet package was not generated at `${CPACK_TEMPORARY_DIRECTORY}`!")
-endif()
-
-_cpack_nuget_debug("Generated files: ${GEN_CPACK_OUTPUT_FILES}")
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPackRPM.cmake b/share/cmake-3.16/Modules/Internal/CPack/CPackRPM.cmake
deleted file mode 100644
index ffb24e2..0000000
--- a/share/cmake-3.16/Modules/Internal/CPack/CPackRPM.cmake
+++ /dev/null
@@ -1,1881 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-# Author: Eric Noulard with the help of Alexander Neundorf.
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0057 NEW) # if IN_LIST
-
-function(get_file_permissions FILE RETURN_VAR)
- execute_process(COMMAND ls -l ${FILE}
- OUTPUT_VARIABLE permissions_
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- string(REPLACE " " ";" permissions_ "${permissions_}")
- list(GET permissions_ 0 permissions_)
-
- unset(text_notation_)
- set(any_chars_ ".")
- foreach(PERMISSION_TYPE "OWNER" "GROUP" "WORLD")
- if(permissions_ MATCHES "${any_chars_}r.*")
- list(APPEND text_notation_ "${PERMISSION_TYPE}_READ")
- endif()
- string(APPEND any_chars_ ".")
- if(permissions_ MATCHES "${any_chars_}w.*")
- list(APPEND text_notation_ "${PERMISSION_TYPE}_WRITE")
- endif()
- string(APPEND any_chars_ ".")
- if(permissions_ MATCHES "${any_chars_}x.*")
- list(APPEND text_notation_ "${PERMISSION_TYPE}_EXECUTE")
- endif()
- endforeach()
-
- set(${RETURN_VAR} "${text_notation_}" PARENT_SCOPE)
-endfunction()
-
-function(get_unix_permissions_octal_notation PERMISSIONS_VAR RETURN_VAR)
- set(PERMISSIONS ${${PERMISSIONS_VAR}})
- list(LENGTH PERMISSIONS PERM_LEN_PRE)
- list(REMOVE_DUPLICATES PERMISSIONS)
- list(LENGTH PERMISSIONS PERM_LEN_POST)
-
- if(NOT ${PERM_LEN_PRE} EQUAL ${PERM_LEN_POST})
- message(FATAL_ERROR "${PERMISSIONS_VAR} contains duplicate values.")
- endif()
-
- foreach(PERMISSION_TYPE "OWNER" "GROUP" "WORLD")
- set(${PERMISSION_TYPE}_PERMISSIONS 0)
-
- foreach(PERMISSION ${PERMISSIONS})
- if("${PERMISSION}" STREQUAL "${PERMISSION_TYPE}_READ")
- math(EXPR ${PERMISSION_TYPE}_PERMISSIONS "${${PERMISSION_TYPE}_PERMISSIONS} + 4")
- elseif("${PERMISSION}" STREQUAL "${PERMISSION_TYPE}_WRITE")
- math(EXPR ${PERMISSION_TYPE}_PERMISSIONS "${${PERMISSION_TYPE}_PERMISSIONS} + 2")
- elseif("${PERMISSION}" STREQUAL "${PERMISSION_TYPE}_EXECUTE")
- math(EXPR ${PERMISSION_TYPE}_PERMISSIONS "${${PERMISSION_TYPE}_PERMISSIONS} + 1")
- elseif(PERMISSION MATCHES "${PERMISSION_TYPE}.*")
- message(FATAL_ERROR "${PERMISSIONS_VAR} contains invalid values.")
- endif()
- endforeach()
- endforeach()
-
- set(${RETURN_VAR} "${OWNER_PERMISSIONS}${GROUP_PERMISSIONS}${WORLD_PERMISSIONS}" PARENT_SCOPE)
-endfunction()
-
-function(cpack_rpm_exact_regex regex_var string)
- string(REGEX REPLACE "([][+.*()^])" "\\\\\\1" regex "${string}")
- set("${regex_var}" "${regex}" PARENT_SCOPE)
-endfunction()
-
-function(cpack_rpm_prepare_relocation_paths)
- # set appropriate prefix, remove possible trailing slash and convert backslashes to slashes
- if(CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_PREFIX)
- file(TO_CMAKE_PATH "${CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_PREFIX}" PATH_PREFIX)
- elseif(CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_PREFIX)
- file(TO_CMAKE_PATH "${CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_PREFIX}" PATH_PREFIX)
- else()
- file(TO_CMAKE_PATH "${CPACK_PACKAGING_INSTALL_PREFIX}" PATH_PREFIX)
- endif()
-
- set(RPM_RELOCATION_PATHS "${CPACK_RPM_RELOCATION_PATHS}")
- list(REMOVE_DUPLICATES RPM_RELOCATION_PATHS)
-
- # set base path prefix
- if(EXISTS "${WDIR}/${PATH_PREFIX}")
- if(NOT CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION AND
- NOT CPACK_RPM_NO_${CPACK_RPM_PACKAGE_COMPONENT}_INSTALL_PREFIX_RELOCATION AND
- NOT CPACK_RPM_NO_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_INSTALL_PREFIX_RELOCATION)
- string(APPEND TMP_RPM_PREFIXES "Prefix: ${PATH_PREFIX}\n")
- list(APPEND RPM_USED_PACKAGE_PREFIXES "${PATH_PREFIX}")
-
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: removing '${PATH_PREFIX}' from relocation paths")
- endif()
- endif()
- endif()
-
- # set other path prefixes
- foreach(RELOCATION_PATH ${RPM_RELOCATION_PATHS})
- if(IS_ABSOLUTE "${RELOCATION_PATH}")
- set(PREPARED_RELOCATION_PATH "${RELOCATION_PATH}")
- elseif(PATH_PREFIX STREQUAL "/")
- # don't prefix path with a second slash as "//" is treated as network path
- # by get_filename_component() so it remains in path even inside rpm
- # package where it may cause problems with relocation
- set(PREPARED_RELOCATION_PATH "/${RELOCATION_PATH}")
- else()
- set(PREPARED_RELOCATION_PATH "${PATH_PREFIX}/${RELOCATION_PATH}")
- endif()
-
- # handle cases where path contains extra slashes (e.g. /a//b/ instead of
- # /a/b)
- get_filename_component(PREPARED_RELOCATION_PATH
- "${PREPARED_RELOCATION_PATH}" ABSOLUTE)
-
- if(EXISTS "${WDIR}/${PREPARED_RELOCATION_PATH}")
- string(APPEND TMP_RPM_PREFIXES "Prefix: ${PREPARED_RELOCATION_PATH}\n")
- list(APPEND RPM_USED_PACKAGE_PREFIXES "${PREPARED_RELOCATION_PATH}")
- endif()
- endforeach()
-
- # warn about all the paths that are not relocatable
- file(GLOB_RECURSE FILE_PATHS_ "${WDIR}/*")
- foreach(TMP_PATH ${FILE_PATHS_})
- string(LENGTH "${WDIR}" WDIR_LEN)
- string(SUBSTRING "${TMP_PATH}" ${WDIR_LEN} -1 TMP_PATH)
- unset(TMP_PATH_FOUND_)
-
- foreach(RELOCATION_PATH ${RPM_USED_PACKAGE_PREFIXES})
- file(RELATIVE_PATH REL_PATH_ "${RELOCATION_PATH}" "${TMP_PATH}")
- string(SUBSTRING "${REL_PATH_}" 0 2 PREFIX_)
-
- if(NOT "${PREFIX_}" STREQUAL "..")
- set(TPM_PATH_FOUND_ TRUE)
- break()
- endif()
- endforeach()
-
- if(NOT TPM_PATH_FOUND_)
- message(AUTHOR_WARNING "CPackRPM:Warning: Path ${TMP_PATH} is not on one of the relocatable paths! Package will be partially relocatable.")
- endif()
- endforeach()
-
- set(RPM_USED_PACKAGE_PREFIXES "${RPM_USED_PACKAGE_PREFIXES}" PARENT_SCOPE)
- set(TMP_RPM_PREFIXES "${TMP_RPM_PREFIXES}" PARENT_SCOPE)
-endfunction()
-
-function(cpack_rpm_prepare_content_list)
- # get files list
- file(GLOB_RECURSE CPACK_RPM_INSTALL_FILES LIST_DIRECTORIES true RELATIVE "${WDIR}" "${WDIR}/*")
- set(CPACK_RPM_INSTALL_FILES "/${CPACK_RPM_INSTALL_FILES}")
- string(REPLACE ";" ";/" CPACK_RPM_INSTALL_FILES "${CPACK_RPM_INSTALL_FILES}")
-
- # if we are creating a relocatable package, omit parent directories of
- # CPACK_RPM_PACKAGE_PREFIX. This is achieved by building a "filter list"
- # which is passed to the find command that generates the content-list
- if(CPACK_RPM_PACKAGE_RELOCATABLE)
- # get a list of the elements in CPACK_RPM_PACKAGE_PREFIXES that are
- # destinct parent paths of other relocation paths and remove the
- # final element (so the install-prefix dir itself is not omitted
- # from the RPM's content-list)
- list(SORT RPM_USED_PACKAGE_PREFIXES)
- set(_DISTINCT_PATH "NOT_SET")
- foreach(_RPM_RELOCATION_PREFIX ${RPM_USED_PACKAGE_PREFIXES})
- if(NOT "${_RPM_RELOCATION_PREFIX}" MATCHES "${_DISTINCT_PATH}/.*")
- set(_DISTINCT_PATH "${_RPM_RELOCATION_PREFIX}")
-
- string(REPLACE "/" ";" _CPACK_RPM_PACKAGE_PREFIX_ELEMS " ${_RPM_RELOCATION_PREFIX}")
- list(REMOVE_AT _CPACK_RPM_PACKAGE_PREFIX_ELEMS -1)
- unset(_TMP_LIST)
- # Now generate all of the parent dirs of the relocation path
- foreach(_PREFIX_PATH_ELEM ${_CPACK_RPM_PACKAGE_PREFIX_ELEMS})
- list(APPEND _TMP_LIST "${_PREFIX_PATH_ELEM}")
- string(REPLACE ";" "/" _OMIT_DIR "${_TMP_LIST}")
- separate_arguments(_OMIT_DIR)
- list(APPEND _RPM_DIRS_TO_OMIT ${_OMIT_DIR})
- endforeach()
- endif()
- endforeach()
- endif()
-
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: Initial list of path to OMIT in RPM: ${_RPM_DIRS_TO_OMIT}")
- endif()
-
- if(NOT DEFINED CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST)
- set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST /etc /etc/init.d /usr /usr/bin
- /usr/include /usr/lib /usr/libx32 /usr/lib64
- /usr/share /usr/share/aclocal /usr/share/doc )
- if(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION)
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: Adding ${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION} to builtin omit list.")
- endif()
- list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST "${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION}")
- endif()
- endif()
-
- if(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST)
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST= ${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST}")
- endif()
- list(APPEND _RPM_DIRS_TO_OMIT ${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST})
- endif()
-
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: Final list of path to OMIT in RPM: ${_RPM_DIRS_TO_OMIT}")
- endif()
-
- list(REMOVE_ITEM CPACK_RPM_INSTALL_FILES ${_RPM_DIRS_TO_OMIT})
-
- # add man paths that will be compressed
- # (copied from /usr/lib/rpm/brp-compress - script that does the actual
- # compressing)
- list(APPEND MAN_LOCATIONS "/usr/man/man.*" "/usr/man/.*/man.*" "/usr/info.*"
- "/usr/share/man/man.*" "/usr/share/man/.*/man.*" "/usr/share/info.*"
- "/usr/kerberos/man.*" "/usr/X11R6/man/man.*" "/usr/lib/perl5/man/man.*"
- "/usr/share/doc/.*/man/man.*" "/usr/lib/.*/man/man.*")
-
- if(CPACK_RPM_ADDITIONAL_MAN_DIRS)
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: CPACK_RPM_ADDITIONAL_MAN_DIRS= ${CPACK_RPM_ADDITIONAL_MAN_DIRS}")
- endif()
- list(APPEND MAN_LOCATIONS ${CPACK_RPM_ADDITIONAL_MAN_DIRS})
- endif()
-
- foreach(PACK_LOCATION IN LISTS CPACK_RPM_INSTALL_FILES)
- foreach(MAN_LOCATION IN LISTS MAN_LOCATIONS)
- # man pages are files inside a certain location
- if(PACK_LOCATION MATCHES "${MAN_LOCATION}/"
- AND NOT IS_DIRECTORY "${WDIR}${PACK_LOCATION}"
- AND NOT IS_SYMLINK "${WDIR}${PACK_LOCATION}")
- list(FIND CPACK_RPM_INSTALL_FILES "${PACK_LOCATION}" INDEX)
- # insert file location that covers compressed man pages
- # even if using a wildcard causes duplicates as those are
- # handled by RPM and we still keep the same file list
- # in spec file - wildcard only represents file type (e.g. .gz)
- list(INSERT CPACK_RPM_INSTALL_FILES ${INDEX} "${PACK_LOCATION}*")
- # remove file location that doesn't cover compressed man pages
- math(EXPR INDEX ${INDEX}+1)
- list(REMOVE_AT CPACK_RPM_INSTALL_FILES ${INDEX})
-
- break()
- endif()
- endforeach()
- endforeach()
-
- set(CPACK_RPM_INSTALL_FILES "${CPACK_RPM_INSTALL_FILES}" PARENT_SCOPE)
-endfunction()
-
-function(cpack_rpm_symlink_get_relocation_prefixes LOCATION PACKAGE_PREFIXES RETURN_VARIABLE)
- foreach(PKG_PREFIX IN LISTS PACKAGE_PREFIXES)
- string(REGEX MATCH "^${PKG_PREFIX}/.*" FOUND_ "${LOCATION}")
- if(FOUND_)
- list(APPEND TMP_PREFIXES "${PKG_PREFIX}")
- endif()
- endforeach()
-
- set(${RETURN_VARIABLE} "${TMP_PREFIXES}" PARENT_SCOPE)
-endfunction()
-
-function(cpack_rpm_symlink_create_relocation_script PACKAGE_PREFIXES)
- list(LENGTH PACKAGE_PREFIXES LAST_INDEX)
- set(SORTED_PACKAGE_PREFIXES "${PACKAGE_PREFIXES}")
- list(SORT SORTED_PACKAGE_PREFIXES)
- list(REVERSE SORTED_PACKAGE_PREFIXES)
- math(EXPR LAST_INDEX ${LAST_INDEX}-1)
-
- foreach(SYMLINK_INDEX RANGE ${LAST_INDEX})
- list(GET SORTED_PACKAGE_PREFIXES ${SYMLINK_INDEX} SRC_PATH)
- list(FIND PACKAGE_PREFIXES "${SRC_PATH}" SYMLINK_INDEX) # reverse magic
- string(LENGTH "${SRC_PATH}" SRC_PATH_LEN)
-
- set(PARTS_CNT 0)
- set(SCRIPT_PART "if [ \"$RPM_INSTALL_PREFIX${SYMLINK_INDEX}\" != \"${SRC_PATH}\" ]; then\n")
-
- # both paths relocated
- foreach(POINT_INDEX RANGE ${LAST_INDEX})
- list(GET SORTED_PACKAGE_PREFIXES ${POINT_INDEX} POINT_PATH)
- list(FIND PACKAGE_PREFIXES "${POINT_PATH}" POINT_INDEX) # reverse magic
- string(LENGTH "${POINT_PATH}" POINT_PATH_LEN)
-
- if(_RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_${POINT_INDEX})
- if("${SYMLINK_INDEX}" EQUAL "${POINT_INDEX}")
- set(INDENT "")
- else()
- string(APPEND SCRIPT_PART " if [ \"$RPM_INSTALL_PREFIX${POINT_INDEX}\" != \"${POINT_PATH}\" ]; then\n")
- set(INDENT " ")
- endif()
-
- foreach(RELOCATION_NO IN LISTS _RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_${POINT_INDEX})
- math(EXPR PARTS_CNT ${PARTS_CNT}+1)
-
- math(EXPR RELOCATION_INDEX ${RELOCATION_NO}-1)
- list(GET _RPM_RELOCATION_SCRIPT_PAIRS ${RELOCATION_INDEX} RELOCATION_SCRIPT_PAIR)
- string(FIND "${RELOCATION_SCRIPT_PAIR}" ":" SPLIT_INDEX)
-
- math(EXPR SRC_PATH_END ${SPLIT_INDEX}-${SRC_PATH_LEN})
- string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} ${SRC_PATH_LEN} ${SRC_PATH_END} SYMLINK_)
-
- math(EXPR POINT_PATH_START ${SPLIT_INDEX}+1+${POINT_PATH_LEN})
- string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} ${POINT_PATH_START} -1 POINT_)
-
- string(APPEND SCRIPT_PART " ${INDENT}if [ -z \"$CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}\" ]; then\n")
- string(APPEND SCRIPT_PART " ${INDENT}ln -s \"$RPM_INSTALL_PREFIX${POINT_INDEX}${POINT_}\" \"$RPM_INSTALL_PREFIX${SYMLINK_INDEX}${SYMLINK_}\"\n")
- string(APPEND SCRIPT_PART " ${INDENT}CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}=true\n")
- string(APPEND SCRIPT_PART " ${INDENT}fi\n")
- endforeach()
-
- if(NOT "${SYMLINK_INDEX}" EQUAL "${POINT_INDEX}")
- string(APPEND SCRIPT_PART " fi\n")
- endif()
- endif()
- endforeach()
-
- # source path relocated
- if(_RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_X)
- foreach(RELOCATION_NO IN LISTS _RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_X)
- math(EXPR PARTS_CNT ${PARTS_CNT}+1)
-
- math(EXPR RELOCATION_INDEX ${RELOCATION_NO}-1)
- list(GET _RPM_RELOCATION_SCRIPT_PAIRS ${RELOCATION_INDEX} RELOCATION_SCRIPT_PAIR)
- string(FIND "${RELOCATION_SCRIPT_PAIR}" ":" SPLIT_INDEX)
-
- math(EXPR SRC_PATH_END ${SPLIT_INDEX}-${SRC_PATH_LEN})
- string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} ${SRC_PATH_LEN} ${SRC_PATH_END} SYMLINK_)
-
- math(EXPR POINT_PATH_START ${SPLIT_INDEX}+1)
- string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} ${POINT_PATH_START} -1 POINT_)
-
- string(APPEND SCRIPT_PART " if [ -z \"$CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}\" ]; then\n")
- string(APPEND SCRIPT_PART " ln -s \"${POINT_}\" \"$RPM_INSTALL_PREFIX${SYMLINK_INDEX}${SYMLINK_}\"\n")
- string(APPEND SCRIPT_PART " CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}=true\n")
- string(APPEND SCRIPT_PART " fi\n")
- endforeach()
- endif()
-
- if(PARTS_CNT)
- set(SCRIPT "${SCRIPT_PART}")
- string(APPEND SCRIPT "fi\n")
- endif()
- endforeach()
-
- # point path relocated
- foreach(POINT_INDEX RANGE ${LAST_INDEX})
- list(GET SORTED_PACKAGE_PREFIXES ${POINT_INDEX} POINT_PATH)
- list(FIND PACKAGE_PREFIXES "${POINT_PATH}" POINT_INDEX) # reverse magic
- string(LENGTH "${POINT_PATH}" POINT_PATH_LEN)
-
- if(_RPM_RELOCATION_SCRIPT_X_${POINT_INDEX})
- string(APPEND SCRIPT "if [ \"$RPM_INSTALL_PREFIX${POINT_INDEX}\" != \"${POINT_PATH}\" ]; then\n")
-
- foreach(RELOCATION_NO IN LISTS _RPM_RELOCATION_SCRIPT_X_${POINT_INDEX})
- math(EXPR RELOCATION_INDEX ${RELOCATION_NO}-1)
- list(GET _RPM_RELOCATION_SCRIPT_PAIRS ${RELOCATION_INDEX} RELOCATION_SCRIPT_PAIR)
- string(FIND "${RELOCATION_SCRIPT_PAIR}" ":" SPLIT_INDEX)
-
- string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} 0 ${SPLIT_INDEX} SYMLINK_)
-
- math(EXPR POINT_PATH_START ${SPLIT_INDEX}+1+${POINT_PATH_LEN})
- string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} ${POINT_PATH_START} -1 POINT_)
-
- string(APPEND SCRIPT " if [ -z \"$CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}\" ]; then\n")
- string(APPEND SCRIPT " ln -s \"$RPM_INSTALL_PREFIX${POINT_INDEX}${POINT_}\" \"${SYMLINK_}\"\n")
- string(APPEND SCRIPT " CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}=true\n")
- string(APPEND SCRIPT " fi\n")
- endforeach()
-
- string(APPEND SCRIPT "fi\n")
- endif()
- endforeach()
-
- # no path relocated
- if(_RPM_RELOCATION_SCRIPT_X_X)
- foreach(RELOCATION_NO IN LISTS _RPM_RELOCATION_SCRIPT_X_X)
- math(EXPR RELOCATION_INDEX ${RELOCATION_NO}-1)
- list(GET _RPM_RELOCATION_SCRIPT_PAIRS ${RELOCATION_INDEX} RELOCATION_SCRIPT_PAIR)
- string(FIND "${RELOCATION_SCRIPT_PAIR}" ":" SPLIT_INDEX)
-
- string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} 0 ${SPLIT_INDEX} SYMLINK_)
-
- math(EXPR POINT_PATH_START ${SPLIT_INDEX}+1)
- string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} ${POINT_PATH_START} -1 POINT_)
-
- string(APPEND SCRIPT "if [ -z \"$CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}\" ]; then\n")
- string(APPEND SCRIPT " ln -s \"${POINT_}\" \"${SYMLINK_}\"\n")
- string(APPEND SCRIPT "fi\n")
- endforeach()
- endif()
-
- set(RPM_SYMLINK_POSTINSTALL "${SCRIPT}" PARENT_SCOPE)
-endfunction()
-
-function(cpack_rpm_symlink_add_for_relocation_script PACKAGE_PREFIXES SYMLINK SYMLINK_RELOCATION_PATHS POINT POINT_RELOCATION_PATHS)
- list(LENGTH SYMLINK_RELOCATION_PATHS SYMLINK_PATHS_COUTN)
- list(LENGTH POINT_RELOCATION_PATHS POINT_PATHS_COUNT)
-
- list(APPEND _RPM_RELOCATION_SCRIPT_PAIRS "${SYMLINK}:${POINT}")
- list(LENGTH _RPM_RELOCATION_SCRIPT_PAIRS PAIR_NO)
-
- if(SYMLINK_PATHS_COUTN)
- foreach(SYMLINK_RELOC_PATH IN LISTS SYMLINK_RELOCATION_PATHS)
- list(FIND PACKAGE_PREFIXES "${SYMLINK_RELOC_PATH}" SYMLINK_INDEX)
-
- # source path relocated
- list(APPEND _RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_X "${PAIR_NO}")
- list(APPEND RELOCATION_VARS "_RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_X")
-
- foreach(POINT_RELOC_PATH IN LISTS POINT_RELOCATION_PATHS)
- list(FIND PACKAGE_PREFIXES "${POINT_RELOC_PATH}" POINT_INDEX)
-
- # both paths relocated
- list(APPEND _RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_${POINT_INDEX} "${PAIR_NO}")
- list(APPEND RELOCATION_VARS "_RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_${POINT_INDEX}")
-
- # point path relocated
- list(APPEND _RPM_RELOCATION_SCRIPT_X_${POINT_INDEX} "${PAIR_NO}")
- list(APPEND RELOCATION_VARS "_RPM_RELOCATION_SCRIPT_X_${POINT_INDEX}")
- endforeach()
- endforeach()
- elseif(POINT_PATHS_COUNT)
- foreach(POINT_RELOC_PATH IN LISTS POINT_RELOCATION_PATHS)
- list(FIND PACKAGE_PREFIXES "${POINT_RELOC_PATH}" POINT_INDEX)
-
- # point path relocated
- list(APPEND _RPM_RELOCATION_SCRIPT_X_${POINT_INDEX} "${PAIR_NO}")
- list(APPEND RELOCATION_VARS "_RPM_RELOCATION_SCRIPT_X_${POINT_INDEX}")
- endforeach()
- endif()
-
- # no path relocated
- list(APPEND _RPM_RELOCATION_SCRIPT_X_X "${PAIR_NO}")
- list(APPEND RELOCATION_VARS "_RPM_RELOCATION_SCRIPT_X_X")
-
- # place variables into parent scope
- foreach(VAR IN LISTS RELOCATION_VARS)
- set(${VAR} "${${VAR}}" PARENT_SCOPE)
- endforeach()
- set(_RPM_RELOCATION_SCRIPT_PAIRS "${_RPM_RELOCATION_SCRIPT_PAIRS}" PARENT_SCOPE)
- set(REQUIRES_SYMLINK_RELOCATION_SCRIPT "true" PARENT_SCOPE)
- set(DIRECTIVE "%ghost " PARENT_SCOPE)
-endfunction()
-
-function(cpack_rpm_prepare_install_files INSTALL_FILES_LIST WDIR PACKAGE_PREFIXES IS_RELOCATABLE)
- # Prepend directories in ${CPACK_RPM_INSTALL_FILES} with %dir
- # This is necessary to avoid duplicate files since rpmbuild does
- # recursion on its own when encountering a pathname which is a directory
- # which is not flagged as %dir
- string(STRIP "${INSTALL_FILES_LIST}" INSTALL_FILES_LIST)
- string(REPLACE "\n" ";" INSTALL_FILES_LIST
- "${INSTALL_FILES_LIST}")
- string(REPLACE "\"" "" INSTALL_FILES_LIST
- "${INSTALL_FILES_LIST}")
- string(LENGTH "${WDIR}" WDR_LEN_)
-
- list(SORT INSTALL_FILES_LIST) # make file order consistent on all platforms
-
- foreach(F IN LISTS INSTALL_FILES_LIST)
- unset(DIRECTIVE)
-
- if(IS_SYMLINK "${WDIR}/${F}")
- if(IS_RELOCATABLE)
- # check that symlink has relocatable format
- get_filename_component(SYMLINK_LOCATION_ "${WDIR}/${F}" DIRECTORY)
- execute_process(COMMAND ls -la "${WDIR}/${F}"
- WORKING_DIRECTORY "${WDIR}"
- OUTPUT_VARIABLE SYMLINK_POINT_
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- string(FIND "${SYMLINK_POINT_}" "->" SYMLINK_POINT_INDEX_ REVERSE)
- math(EXPR SYMLINK_POINT_INDEX_ ${SYMLINK_POINT_INDEX_}+3)
- string(LENGTH "${SYMLINK_POINT_}" SYMLINK_POINT_LENGTH_)
-
- # get destination path
- string(SUBSTRING "${SYMLINK_POINT_}" ${SYMLINK_POINT_INDEX_} ${SYMLINK_POINT_LENGTH_} SYMLINK_POINT_)
-
- # check if path is relative or absolute
- string(SUBSTRING "${SYMLINK_POINT_}" 0 1 SYMLINK_IS_ABSOLUTE_)
-
- if(${SYMLINK_IS_ABSOLUTE_} STREQUAL "/")
- # prevent absolute paths from having /../ or /./ section inside of them
- get_filename_component(SYMLINK_POINT_ "${SYMLINK_POINT_}" ABSOLUTE)
- else()
- # handle relative path
- get_filename_component(SYMLINK_POINT_ "${SYMLINK_LOCATION_}/${SYMLINK_POINT_}" ABSOLUTE)
- endif()
-
- # recalculate path length after conversion to canonical form
- string(LENGTH "${SYMLINK_POINT_}" SYMLINK_POINT_LENGTH_)
-
- cpack_rpm_exact_regex(IN_SYMLINK_POINT_REGEX "${WDIR}")
- string(APPEND IN_SYMLINK_POINT_REGEX "/.*")
- if(SYMLINK_POINT_ MATCHES "${IN_SYMLINK_POINT_REGEX}")
- # only symlinks that are pointing inside the packaging structure should be checked for relocation
- string(SUBSTRING "${SYMLINK_POINT_}" ${WDR_LEN_} -1 SYMLINK_POINT_WD_)
- cpack_rpm_symlink_get_relocation_prefixes("${F}" "${PACKAGE_PREFIXES}" "SYMLINK_RELOCATIONS")
- cpack_rpm_symlink_get_relocation_prefixes("${SYMLINK_POINT_WD_}" "${PACKAGE_PREFIXES}" "POINT_RELOCATIONS")
-
- list(LENGTH SYMLINK_RELOCATIONS SYMLINK_RELOCATIONS_COUNT)
- list(LENGTH POINT_RELOCATIONS POINT_RELOCATIONS_COUNT)
- else()
- # location pointed to is outside WDR so it should be treated as a permanent symlink
- set(SYMLINK_POINT_WD_ "${SYMLINK_POINT_}")
-
- unset(SYMLINK_RELOCATIONS)
- unset(POINT_RELOCATIONS)
- unset(SYMLINK_RELOCATIONS_COUNT)
- unset(POINT_RELOCATIONS_COUNT)
-
- message(AUTHOR_WARNING "CPackRPM:Warning: Symbolic link '${F}' points to location that is outside packaging path! Link will possibly not be relocatable.")
- endif()
-
- if(SYMLINK_RELOCATIONS_COUNT AND POINT_RELOCATIONS_COUNT)
- # find matching
- foreach(SYMLINK_RELOCATION_PREFIX IN LISTS SYMLINK_RELOCATIONS)
- list(FIND POINT_RELOCATIONS "${SYMLINK_RELOCATION_PREFIX}" FOUND_INDEX)
- if(NOT ${FOUND_INDEX} EQUAL -1)
- break()
- endif()
- endforeach()
-
- if(NOT ${FOUND_INDEX} EQUAL -1)
- # symlinks have the same subpath
- if(${SYMLINK_RELOCATIONS_COUNT} EQUAL 1 AND ${POINT_RELOCATIONS_COUNT} EQUAL 1)
- # permanent symlink
- get_filename_component(SYMLINK_LOCATION_ "${F}" DIRECTORY)
- file(RELATIVE_PATH FINAL_PATH_ ${SYMLINK_LOCATION_} ${SYMLINK_POINT_WD_})
- execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink "${FINAL_PATH_}" "${WDIR}/${F}")
- else()
- # relocation subpaths
- cpack_rpm_symlink_add_for_relocation_script("${PACKAGE_PREFIXES}" "${F}" "${SYMLINK_RELOCATIONS}"
- "${SYMLINK_POINT_WD_}" "${POINT_RELOCATIONS}")
- endif()
- else()
- # not on the same relocation path
- cpack_rpm_symlink_add_for_relocation_script("${PACKAGE_PREFIXES}" "${F}" "${SYMLINK_RELOCATIONS}"
- "${SYMLINK_POINT_WD_}" "${POINT_RELOCATIONS}")
- endif()
- elseif(POINT_RELOCATIONS_COUNT)
- # point is relocatable
- cpack_rpm_symlink_add_for_relocation_script("${PACKAGE_PREFIXES}" "${F}" "${SYMLINK_RELOCATIONS}"
- "${SYMLINK_POINT_WD_}" "${POINT_RELOCATIONS}")
- else()
- # is not relocatable or points to non relocatable path - permanent symlink
- execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink "${SYMLINK_POINT_WD_}" "${WDIR}/${F}")
- endif()
- endif()
- elseif(IS_DIRECTORY "${WDIR}/${F}")
- set(DIRECTIVE "%dir ")
- endif()
-
- string(APPEND INSTALL_FILES "${DIRECTIVE}\"${F}\"\n")
- endforeach()
-
- if(REQUIRES_SYMLINK_RELOCATION_SCRIPT)
- cpack_rpm_symlink_create_relocation_script("${PACKAGE_PREFIXES}")
- endif()
-
- set(RPM_SYMLINK_POSTINSTALL "${RPM_SYMLINK_POSTINSTALL}" PARENT_SCOPE)
- set(CPACK_RPM_INSTALL_FILES "${INSTALL_FILES}" PARENT_SCOPE)
-endfunction()
-
-if(CMAKE_BINARY_DIR)
- message(FATAL_ERROR "CPackRPM.cmake may only be used by CPack internally.")
-endif()
-
-if(NOT UNIX)
- message(FATAL_ERROR "CPackRPM.cmake may only be used under UNIX.")
-endif()
-
-# We need to check if the binaries were compiled with debug symbols
-# because without them the package will be useless
-function(cpack_rpm_debugsymbol_check INSTALL_FILES WORKING_DIR)
- if(NOT CPACK_BUILD_SOURCE_DIRS)
- message(FATAL_ERROR "CPackRPM: CPACK_BUILD_SOURCE_DIRS variable is not set!"
- " Required for debuginfo packaging. See documentation of"
- " CPACK_RPM_DEBUGINFO_PACKAGE variable for details.")
- endif()
-
- # With objdump we should check the debug symbols
- find_program(OBJDUMP_EXECUTABLE objdump)
- if(NOT OBJDUMP_EXECUTABLE)
- message(FATAL_ERROR "CPackRPM: objdump binary could not be found!"
- " Required for debuginfo packaging. See documentation of"
- " CPACK_RPM_DEBUGINFO_PACKAGE variable for details.")
- endif()
-
- # With debugedit we prepare source files list
- find_program(DEBUGEDIT_EXECUTABLE debugedit "/usr/lib/rpm/")
- if(NOT DEBUGEDIT_EXECUTABLE)
- message(FATAL_ERROR "CPackRPM: debugedit binary could not be found!"
- " Required for debuginfo packaging. See documentation of"
- " CPACK_RPM_DEBUGINFO_PACKAGE variable for details.")
- endif()
-
- unset(mkdir_list_)
- unset(cp_list_)
- unset(additional_sources_)
-
- foreach(F IN LISTS INSTALL_FILES)
- if(IS_DIRECTORY "${WORKING_DIR}/${F}" OR IS_SYMLINK "${WORKING_DIR}/${F}")
- continue()
- endif()
-
- execute_process(COMMAND "${OBJDUMP_EXECUTABLE}" -h ${WORKING_DIR}/${F}
- WORKING_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}"
- RESULT_VARIABLE OBJDUMP_EXEC_RESULT
- OUTPUT_VARIABLE OBJDUMP_OUT
- ERROR_QUIET)
- # Check if the given file is an executable or not
- if(NOT OBJDUMP_EXEC_RESULT)
- string(FIND "${OBJDUMP_OUT}" "debug" FIND_RESULT)
- if(FIND_RESULT GREATER -1)
- set(index_ 0)
- foreach(source_dir_ IN LISTS CPACK_BUILD_SOURCE_DIRS)
- string(LENGTH "${source_dir_}" source_dir_len_)
- string(LENGTH "${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}" debuginfo_dir_len)
- if(source_dir_len_ LESS debuginfo_dir_len)
- message(FATAL_ERROR "CPackRPM: source dir path '${source_dir_}' is"
- " shorter than debuginfo sources dir path '${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}'!"
- " Source dir path must be longer than debuginfo sources dir path."
- " Set CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX variable to a shorter value"
- " or make source dir path longer."
- " Required for debuginfo packaging. See documentation of"
- " CPACK_RPM_DEBUGINFO_PACKAGE variable for details.")
- endif()
-
- file(REMOVE "${CPACK_RPM_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}/debugsources_add.list")
- execute_process(COMMAND "${DEBUGEDIT_EXECUTABLE}" -b "${source_dir_}" -d "${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}" -i -l "${CPACK_RPM_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}/debugsources_add.list" "${WORKING_DIR}/${F}"
- RESULT_VARIABLE res_
- OUTPUT_VARIABLE opt_
- ERROR_VARIABLE err_
- )
-
- file(STRINGS
- "${CPACK_RPM_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}/debugsources_add.list"
- sources_)
- list(REMOVE_DUPLICATES sources_)
-
- foreach(source_ IN LISTS sources_)
- if(EXISTS "${source_dir_}/${source_}" AND NOT IS_DIRECTORY "${source_dir_}/${source_}")
- get_filename_component(path_part_ "${source_}" DIRECTORY)
- list(APPEND mkdir_list_ "%{buildroot}${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}/${path_part_}")
- list(APPEND cp_list_ "cp \"${source_dir_}/${source_}\" \"%{buildroot}${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}/${path_part_}\"")
-
- list(APPEND additional_sources_ "${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}/${source_}")
- endif()
- endforeach()
-
- math(EXPR index_ "${index_} + 1")
- endforeach()
- else()
- message(WARNING "CPackRPM: File: ${F} does not contain debug symbols. They will possibly be missing from debuginfo package!")
- endif()
-
- get_file_permissions("${WORKING_DIR}/${F}" permissions_)
- if(NOT "USER_EXECUTE" IN_LIST permissions_ AND
- NOT "GROUP_EXECUTE" IN_LIST permissions_ AND
- NOT "WORLD_EXECUTE" IN_LIST permissions_)
- if(CPACK_RPM_INSTALL_WITH_EXEC)
- execute_process(COMMAND chmod a+x ${WORKING_DIR}/${F}
- RESULT_VARIABLE res_
- ERROR_VARIABLE err_
- OUTPUT_QUIET)
-
- if(res_)
- message(FATAL_ERROR "CPackRPM: could not apply execute permissions "
- "requested by CPACK_RPM_INSTALL_WITH_EXEC variable on "
- "'${WORKING_DIR}/${F}'! Reason: '${err_}'")
- endif()
- else()
- message(AUTHOR_WARNING "CPackRPM: File: ${WORKING_DIR}/${F} does not "
- "have execute permissions. Debuginfo symbols will not be extracted"
- "! Missing debuginfo may cause packaging failure. Consider setting "
- "execute permissions or setting 'CPACK_RPM_INSTALL_WITH_EXEC' "
- "variable.")
- endif()
- endif()
- endif()
- endforeach()
-
- list(LENGTH mkdir_list_ len_)
- if(len_)
- list(REMOVE_DUPLICATES mkdir_list_)
- unset(TMP_RPM_DEBUGINFO_INSTALL)
- foreach(part_ IN LISTS mkdir_list_)
- string(APPEND TMP_RPM_DEBUGINFO_INSTALL "mkdir -p \"${part_}\"\n")
- endforeach()
- endif()
-
- list(LENGTH cp_list_ len_)
- if(len_)
- list(REMOVE_DUPLICATES cp_list_)
- foreach(part_ IN LISTS cp_list_)
- string(APPEND TMP_RPM_DEBUGINFO_INSTALL "${part_}\n")
- endforeach()
- endif()
-
- if(NOT DEFINED CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS)
- set(CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS /usr /usr/src /usr/src/debug)
- if(CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION)
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: Adding ${CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION} to builtin omit list.")
- endif()
- list(APPEND CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS "${CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION}")
- endif()
- endif()
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS= ${CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS}")
- endif()
-
- list(LENGTH additional_sources_ len_)
- if(len_)
- list(REMOVE_DUPLICATES additional_sources_)
- unset(additional_sources_all_)
- foreach(source_ IN LISTS additional_sources_)
- string(REPLACE "/" ";" split_source_ " ${source_}")
- list(REMOVE_AT split_source_ 0)
- unset(tmp_path_)
- # Now generate all segments of the path
- foreach(segment_ IN LISTS split_source_)
- string(APPEND tmp_path_ "/${segment_}")
- list(APPEND additional_sources_all_ "${tmp_path_}")
- endforeach()
- endforeach()
-
- list(REMOVE_DUPLICATES additional_sources_all_)
- list(REMOVE_ITEM additional_sources_all_
- ${CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS})
-
- unset(TMP_DEBUGINFO_ADDITIONAL_SOURCES)
- foreach(source_ IN LISTS additional_sources_all_)
- string(APPEND TMP_DEBUGINFO_ADDITIONAL_SOURCES "${source_}\n")
- endforeach()
- endif()
-
- set(TMP_RPM_DEBUGINFO_INSTALL "${TMP_RPM_DEBUGINFO_INSTALL}" PARENT_SCOPE)
- set(TMP_DEBUGINFO_ADDITIONAL_SOURCES "${TMP_DEBUGINFO_ADDITIONAL_SOURCES}"
- PARENT_SCOPE)
-endfunction()
-
-function(cpack_rpm_variable_fallback OUTPUT_VAR_NAME)
- set(FALLBACK_VAR_NAMES ${ARGN})
-
- foreach(variable_name IN LISTS FALLBACK_VAR_NAMES)
- if(${variable_name})
- set(${OUTPUT_VAR_NAME} "${${variable_name}}" PARENT_SCOPE)
- break()
- endif()
- endforeach()
-endfunction()
-
-function(cpack_rpm_generate_package)
- # rpmbuild is the basic command for building RPM package
- # it may be a simple (symbolic) link to rpm command.
- find_program(RPMBUILD_EXECUTABLE rpmbuild)
-
- # Check version of the rpmbuild tool this would be easier to
- # track bugs with users and CPackRPM debug mode.
- # We may use RPM version in order to check for available version dependent features
- if(RPMBUILD_EXECUTABLE)
- execute_process(COMMAND ${RPMBUILD_EXECUTABLE} --version
- OUTPUT_VARIABLE _TMP_VERSION
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- string(REGEX REPLACE "^.* " ""
- RPMBUILD_EXECUTABLE_VERSION
- ${_TMP_VERSION})
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: rpmbuild version is <${RPMBUILD_EXECUTABLE_VERSION}>")
- endif()
- endif()
-
- if(NOT RPMBUILD_EXECUTABLE)
- message(FATAL_ERROR "RPM package requires rpmbuild executable")
- endif()
-
- # Display lsb_release output if DEBUG mode enable
- # This will help to diagnose problem with CPackRPM
- # because we will know on which kind of Linux we are
- if(CPACK_RPM_PACKAGE_DEBUG)
- find_program(LSB_RELEASE_EXECUTABLE lsb_release)
- if(LSB_RELEASE_EXECUTABLE)
- execute_process(COMMAND ${LSB_RELEASE_EXECUTABLE} -a
- OUTPUT_VARIABLE _TMP_LSB_RELEASE_OUTPUT
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- string(REGEX REPLACE "\n" ", "
- LSB_RELEASE_OUTPUT
- ${_TMP_LSB_RELEASE_OUTPUT})
- else ()
- set(LSB_RELEASE_OUTPUT "lsb_release not installed/found!")
- endif()
- message("CPackRPM:Debug: LSB_RELEASE = ${LSB_RELEASE_OUTPUT}")
- endif()
-
- # We may use RPM version in the future in order
- # to shut down warning about space in buildtree
- # some recent RPM version should support space in different places.
- # not checked [yet].
- if(CPACK_TOPLEVEL_DIRECTORY MATCHES ".* .*")
- message(FATAL_ERROR "${RPMBUILD_EXECUTABLE} can't handle paths with spaces, use a build directory without spaces for building RPMs.")
- endif()
-
- # If rpmbuild is found
- # we try to discover alien since we may be on non RPM distro like Debian.
- # In this case we may try to to use more advanced features
- # like generating RPM directly from DEB using alien.
- # FIXME feature not finished (yet)
- find_program(ALIEN_EXECUTABLE alien)
- if(ALIEN_EXECUTABLE)
- message(STATUS "alien found, we may be on a Debian based distro.")
- endif()
-
- # Are we packaging components ?
- if(CPACK_RPM_PACKAGE_COMPONENT)
- string(TOUPPER ${CPACK_RPM_PACKAGE_COMPONENT} CPACK_RPM_PACKAGE_COMPONENT_UPPER)
- endif()
-
- set(WDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}")
-
- #
- # Use user-defined RPM specific variables value
- # or generate reasonable default value from
- # CPACK_xxx generic values.
- # The variables comes from the needed (mandatory or not)
- # values found in the RPM specification file aka ".spec" file.
- # The variables which may/should be defined are:
- #
-
- # CPACK_RPM_PACKAGE_SUMMARY (mandatory)
-
- if(CPACK_RPM_PACKAGE_COMPONENT)
- cpack_rpm_variable_fallback("CPACK_RPM_PACKAGE_SUMMARY"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_SUMMARY"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_SUMMARY")
- endif()
-
- if(NOT CPACK_RPM_PACKAGE_SUMMARY)
- if(CPACK_PACKAGE_DESCRIPTION_SUMMARY)
- set(CPACK_RPM_PACKAGE_SUMMARY ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
- else()
- # if neither var is defined lets use the name as summary
- string(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_RPM_PACKAGE_SUMMARY)
- endif()
- endif()
-
- if(NOT CPACK_RPM_PACKAGE_URL AND CMAKE_PROJECT_HOMEPAGE_URL)
- set(CPACK_RPM_PACKAGE_URL "${CMAKE_PROJECT_HOMEPAGE_URL}")
- endif()
-
- # CPACK_RPM_PACKAGE_NAME (mandatory)
- if(NOT CPACK_RPM_PACKAGE_NAME)
- string(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_RPM_PACKAGE_NAME)
- endif()
-
- if(CPACK_RPM_PACKAGE_COMPONENT)
- string(TOUPPER "${CPACK_RPM_MAIN_COMPONENT}"
- CPACK_RPM_MAIN_COMPONENT_UPPER)
-
- if(NOT CPACK_RPM_MAIN_COMPONENT_UPPER STREQUAL CPACK_RPM_PACKAGE_COMPONENT_UPPER)
- string(APPEND CPACK_RPM_PACKAGE_NAME "-${CPACK_RPM_PACKAGE_COMPONENT}")
-
- cpack_rpm_variable_fallback("CPACK_RPM_PACKAGE_NAME"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_NAME"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_NAME")
- endif()
- endif()
-
- # CPACK_RPM_PACKAGE_VERSION (mandatory)
- if(NOT CPACK_RPM_PACKAGE_VERSION)
- if(NOT CPACK_PACKAGE_VERSION)
- message(FATAL_ERROR "RPM package requires a package version")
- endif()
- set(CPACK_RPM_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
- endif()
- # Replace '-' in version with '_'
- # '-' character is an Illegal RPM version character
- # it is illegal because it is used to separate
- # RPM "Version" from RPM "Release"
- string(REPLACE "-" "_" CPACK_RPM_PACKAGE_VERSION ${CPACK_RPM_PACKAGE_VERSION})
-
- # CPACK_RPM_PACKAGE_ARCHITECTURE (mandatory)
- if(NOT CPACK_RPM_PACKAGE_ARCHITECTURE)
- execute_process(COMMAND uname "-m"
- OUTPUT_VARIABLE CPACK_RPM_PACKAGE_ARCHITECTURE
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- else()
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: using user-specified build arch = ${CPACK_RPM_PACKAGE_ARCHITECTURE}")
- endif()
- endif()
-
- if(CPACK_RPM_PACKAGE_COMPONENT)
- cpack_rpm_variable_fallback("CPACK_RPM_PACKAGE_ARCHITECTURE"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_ARCHITECTURE"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_ARCHITECTURE")
-
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: using component build arch = ${CPACK_RPM_PACKAGE_ARCHITECTURE}")
- endif()
- endif()
-
- if(${CPACK_RPM_PACKAGE_ARCHITECTURE} STREQUAL "noarch")
- set(TMP_RPM_BUILDARCH "Buildarch: ${CPACK_RPM_PACKAGE_ARCHITECTURE}")
- else()
- set(TMP_RPM_BUILDARCH "")
- endif()
-
- # CPACK_RPM_PACKAGE_RELEASE
- # The RPM release is the numbering of the RPM package ITSELF
- # this is the version of the PACKAGING and NOT the version
- # of the CONTENT of the package.
- # You may well need to generate a new RPM package release
- # without changing the version of the packaged software.
- # This is the case when the packaging is buggy (not) the software :=)
- # If not set, 1 is a good candidate
- if(NOT CPACK_RPM_PACKAGE_RELEASE)
- set(CPACK_RPM_PACKAGE_RELEASE "1")
- endif()
-
- if(CPACK_RPM_PACKAGE_RELEASE_DIST)
- string(APPEND CPACK_RPM_PACKAGE_RELEASE "%{?dist}")
- endif()
-
- # CPACK_RPM_PACKAGE_LICENSE
- if(NOT CPACK_RPM_PACKAGE_LICENSE)
- set(CPACK_RPM_PACKAGE_LICENSE "unknown")
- endif()
-
- # CPACK_RPM_PACKAGE_GROUP
- if(CPACK_RPM_PACKAGE_COMPONENT)
- cpack_rpm_variable_fallback("CPACK_RPM_PACKAGE_GROUP"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_GROUP"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_GROUP")
- endif()
-
- if(NOT CPACK_RPM_PACKAGE_GROUP)
- set(CPACK_RPM_PACKAGE_GROUP "unknown")
- endif()
-
- # CPACK_RPM_PACKAGE_VENDOR
- if(NOT CPACK_RPM_PACKAGE_VENDOR)
- if(CPACK_PACKAGE_VENDOR)
- set(CPACK_RPM_PACKAGE_VENDOR "${CPACK_PACKAGE_VENDOR}")
- else()
- set(CPACK_RPM_PACKAGE_VENDOR "unknown")
- endif()
- endif()
-
- # CPACK_RPM_PACKAGE_SOURCE
- # The name of the source tarball in case we generate a source RPM
-
- # CPACK_RPM_PACKAGE_DESCRIPTION
- # The variable content may be either
- # - explicitly given by the user or
- # - filled with the content of CPACK_PACKAGE_DESCRIPTION_FILE
- # if it is defined
- # - set to a default value
- #
-
- if(CPACK_RPM_PACKAGE_COMPONENT)
- cpack_rpm_variable_fallback("CPACK_RPM_PACKAGE_DESCRIPTION"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_DESCRIPTION"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_DESCRIPTION"
- "CPACK_COMPONENT_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DESCRIPTION")
- endif()
-
- if(NOT CPACK_RPM_PACKAGE_DESCRIPTION)
- if(CPACK_PACKAGE_DESCRIPTION_FILE)
- file(READ ${CPACK_PACKAGE_DESCRIPTION_FILE} CPACK_RPM_PACKAGE_DESCRIPTION)
- else ()
- set(CPACK_RPM_PACKAGE_DESCRIPTION "no package description available")
- endif ()
- endif ()
-
- # CPACK_RPM_COMPRESSION_TYPE
- #
- if (CPACK_RPM_COMPRESSION_TYPE)
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: User Specified RPM compression type: ${CPACK_RPM_COMPRESSION_TYPE}")
- endif()
- if(CPACK_RPM_COMPRESSION_TYPE STREQUAL "lzma")
- set(CPACK_RPM_COMPRESSION_TYPE_TMP "%define _binary_payload w9.lzdio")
- endif()
- if(CPACK_RPM_COMPRESSION_TYPE STREQUAL "xz")
- set(CPACK_RPM_COMPRESSION_TYPE_TMP "%define _binary_payload w7.xzdio")
- endif()
- if(CPACK_RPM_COMPRESSION_TYPE STREQUAL "bzip2")
- set(CPACK_RPM_COMPRESSION_TYPE_TMP "%define _binary_payload w9.bzdio")
- endif()
- if(CPACK_RPM_COMPRESSION_TYPE STREQUAL "gzip")
- set(CPACK_RPM_COMPRESSION_TYPE_TMP "%define _binary_payload w9.gzdio")
- endif()
- else()
- set(CPACK_RPM_COMPRESSION_TYPE_TMP "")
- endif()
-
- if(NOT CPACK_RPM_PACKAGE_SOURCES)
- if(CPACK_PACKAGE_RELOCATABLE OR CPACK_RPM_PACKAGE_RELOCATABLE)
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: Trying to build a relocatable package")
- endif()
- if(CPACK_SET_DESTDIR AND (NOT CPACK_SET_DESTDIR STREQUAL "I_ON"))
- message("CPackRPM:Warning: CPACK_SET_DESTDIR is set (=${CPACK_SET_DESTDIR}) while requesting a relocatable package (CPACK_RPM_PACKAGE_RELOCATABLE is set): this is not supported, the package won't be relocatable.")
- set(CPACK_RPM_PACKAGE_RELOCATABLE FALSE)
- else()
- set(CPACK_RPM_PACKAGE_PREFIX ${CPACK_PACKAGING_INSTALL_PREFIX}) # kept for back compatibility (provided external RPM spec files)
- cpack_rpm_prepare_relocation_paths()
- set(CPACK_RPM_PACKAGE_RELOCATABLE TRUE)
- endif()
- endif()
- else()
- if(CPACK_RPM_PACKAGE_COMPONENT)
- message(FATAL_ERROR "CPACK_RPM_PACKAGE_SOURCES parameter can not be used"
- " in combination with CPACK_RPM_PACKAGE_COMPONENT parameter!")
- endif()
-
- set(CPACK_RPM_PACKAGE_RELOCATABLE FALSE) # disable relocatable option if building source RPM
- endif()
-
- execute_process(
- COMMAND "${RPMBUILD_EXECUTABLE}" --querytags
- OUTPUT_VARIABLE RPMBUILD_TAG_LIST
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- string(REPLACE "\n" ";" RPMBUILD_TAG_LIST "${RPMBUILD_TAG_LIST}")
-
- if(CPACK_RPM_PACKAGE_EPOCH)
- set(TMP_RPM_EPOCH "Epoch: ${CPACK_RPM_PACKAGE_EPOCH}")
- endif()
-
- # Check if additional fields for RPM spec header are given
- # There may be some COMPONENT specific variables as well
- # If component specific var is not provided we use the global one
- # for each component
- foreach(_RPM_SPEC_HEADER URL REQUIRES SUGGESTS PROVIDES OBSOLETES PREFIX CONFLICTS AUTOPROV AUTOREQ AUTOREQPROV REQUIRES_PRE REQUIRES_POST REQUIRES_PREUN REQUIRES_POSTUN)
-
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: processing ${_RPM_SPEC_HEADER}")
- endif()
-
- if(CPACK_RPM_PACKAGE_COMPONENT)
- cpack_rpm_variable_fallback("CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_${_RPM_SPEC_HEADER}"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_${_RPM_SPEC_HEADER}")
- endif()
-
- if(DEFINED CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER})
- # Prefix can be replaced by Prefixes but the old version still works so we'll ignore it for now
- # Requires* is a special case because it gets transformed to Requires(pre/post/preun/postun)
- # Auto* is a special case because the tags can not be queried by querytags rpmbuild flag
- set(special_case_tags_ PREFIX REQUIRES_PRE REQUIRES_POST REQUIRES_PREUN REQUIRES_POSTUN AUTOPROV AUTOREQ AUTOREQPROV)
- if(NOT _RPM_SPEC_HEADER IN_LIST RPMBUILD_TAG_LIST AND NOT _RPM_SPEC_HEADER IN_LIST special_case_tags_)
- message(AUTHOR_WARNING "CPackRPM:Warning: ${_RPM_SPEC_HEADER} not "
- "supported in provided rpmbuild. Tag will not be used.")
- continue()
- endif()
-
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: using CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}")
- endif()
-
- set(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP ${CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}})
- endif()
-
- # Treat the RPM Spec keyword iff it has been properly defined
- if(DEFINED CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP)
- # Transform NAME --> Name e.g. PROVIDES --> Provides
- # The Upper-case first letter and lowercase tail is the
- # appropriate value required in the final RPM spec file.
- string(SUBSTRING ${_RPM_SPEC_HEADER} 1 -1 _PACKAGE_HEADER_TAIL)
- string(TOLOWER "${_PACKAGE_HEADER_TAIL}" _PACKAGE_HEADER_TAIL)
- string(SUBSTRING ${_RPM_SPEC_HEADER} 0 1 _PACKAGE_HEADER_NAME)
- string(APPEND _PACKAGE_HEADER_NAME "${_PACKAGE_HEADER_TAIL}")
- # The following keywords require parentheses around the "pre" or "post" suffix in the final RPM spec file.
- set(SCRIPTS_REQUIREMENTS_LIST REQUIRES_PRE REQUIRES_POST REQUIRES_PREUN REQUIRES_POSTUN)
- list(FIND SCRIPTS_REQUIREMENTS_LIST ${_RPM_SPEC_HEADER} IS_SCRIPTS_REQUIREMENT_FOUND)
- if(NOT ${IS_SCRIPTS_REQUIREMENT_FOUND} EQUAL -1)
- string(REPLACE "_" "(" _PACKAGE_HEADER_NAME "${_PACKAGE_HEADER_NAME}")
- string(APPEND _PACKAGE_HEADER_NAME ")")
- endif()
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: User defined ${_PACKAGE_HEADER_NAME}:\n ${CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP}")
- endif()
- set(TMP_RPM_${_RPM_SPEC_HEADER} "${_PACKAGE_HEADER_NAME}: ${CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP}")
- unset(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP)
- endif()
- endforeach()
-
- # CPACK_RPM_SPEC_INSTALL_POST
- # May be used to define a RPM post intallation script
- # for example setting it to "/bin/true" may prevent
- # rpmbuild from stripping binaries.
- if(CPACK_RPM_SPEC_INSTALL_POST)
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: User defined CPACK_RPM_SPEC_INSTALL_POST = ${CPACK_RPM_SPEC_INSTALL_POST}")
- endif()
- set(TMP_RPM_SPEC_INSTALL_POST "%define __spec_install_post ${CPACK_RPM_SPEC_INSTALL_POST}")
- endif()
-
- # CPACK_RPM_POST_INSTALL_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_POST_INSTALL_SCRIPT_FILE)
- # CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_POST_UNINSTALL_SCRIPT_FILE)
- # May be used to embed a post (un)installation script in the spec file.
- # The referred script file(s) will be read and directly
- # put after the %post or %postun section
- # ----------------------------------------------------------------
- # CPACK_RPM_PRE_INSTALL_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_PRE_INSTALL_SCRIPT_FILE)
- # CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_PRE_UNINSTALL_SCRIPT_FILE)
- # May be used to embed a pre (un)installation script in the spec file.
- # The referred script file(s) will be read and directly
- # put after the %pre or %preun section
- foreach(RPM_SCRIPT_FILE_TYPE_ "INSTALL" "UNINSTALL")
- foreach(RPM_SCRIPT_FILE_TIME_ "PRE" "POST")
- set("CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_READ_FILE"
- "${CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_SCRIPT_FILE}")
-
- if(CPACK_RPM_PACKAGE_COMPONENT)
- cpack_rpm_variable_fallback("CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_READ_FILE"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_SCRIPT_FILE"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_SCRIPT_FILE")
- endif()
-
- # Handle file if it has been specified
- if(CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_READ_FILE)
- if(EXISTS ${CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_READ_FILE})
- file(READ ${CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_READ_FILE}
- "CPACK_RPM_SPEC_${RPM_SCRIPT_FILE_TIME_}${RPM_SCRIPT_FILE_TYPE_}")
- else()
- message("CPackRPM:Warning: CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_SCRIPT_FILE <${CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_READ_FILE}> does not exists - ignoring")
- endif()
- else()
- # reset SPEC var value if no file has been specified
- # (either globally or component-wise)
- set("CPACK_RPM_SPEC_${RPM_SCRIPT_FILE_TIME_}${RPM_SCRIPT_FILE_TYPE_}" "")
- endif()
- endforeach()
- endforeach()
-
- # CPACK_RPM_CHANGELOG_FILE
- # May be used to embed a changelog in the spec file.
- # The referred file will be read and directly put after the %changelog section
- if(CPACK_RPM_CHANGELOG_FILE)
- if(EXISTS ${CPACK_RPM_CHANGELOG_FILE})
- file(READ ${CPACK_RPM_CHANGELOG_FILE} CPACK_RPM_SPEC_CHANGELOG)
- else()
- message(SEND_ERROR "CPackRPM:Warning: CPACK_RPM_CHANGELOG_FILE <${CPACK_RPM_CHANGELOG_FILE}> does not exists - ignoring")
- endif()
- else()
- set(CPACK_RPM_SPEC_CHANGELOG "* Sun Jul 4 2010 Eric Noulard <eric.noulard@gmail.com> - ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}\n Generated by CPack RPM (no Changelog file were provided)")
- endif()
-
- # CPACK_RPM_SPEC_MORE_DEFINE
- # This is a generated spec rpm file spaceholder
- if(CPACK_RPM_SPEC_MORE_DEFINE)
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: User defined more define spec line specified:\n ${CPACK_RPM_SPEC_MORE_DEFINE}")
- endif()
- endif()
-
- # Now we may create the RPM build tree structure
- set(CPACK_RPM_ROOTDIR "${CPACK_TOPLEVEL_DIRECTORY}")
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: Using CPACK_RPM_ROOTDIR=${CPACK_RPM_ROOTDIR}")
- endif()
- # Prepare RPM build tree
- file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR})
- file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/tmp)
- file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/BUILD)
- file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/RPMS)
- file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/SOURCES)
- file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/SPECS)
- file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/SRPMS)
-
- # it seems rpmbuild can't handle spaces in the path
- # neither escaping (as below) nor putting quotes around the path seem to help
- #string(REGEX REPLACE " " "\\\\ " CPACK_RPM_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}")
- set(CPACK_RPM_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}")
-
- cpack_rpm_prepare_content_list()
-
- # In component case, put CPACK_ABSOLUTE_DESTINATION_FILES_<COMPONENT>
- # into CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL
- # otherwise, put CPACK_ABSOLUTE_DESTINATION_FILES
- # This must be done BEFORE the CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL handling
- if(CPACK_RPM_PACKAGE_COMPONENT)
- if(CPACK_ABSOLUTE_DESTINATION_FILES)
- cpack_rpm_variable_fallback("COMPONENT_FILES_TAG"
- "CPACK_ABSOLUTE_DESTINATION_FILES_${CPACK_RPM_PACKAGE_COMPONENT}"
- "CPACK_ABSOLUTE_DESTINATION_FILES_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}")
- set(CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL "${${COMPONENT_FILES_TAG}}")
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: Handling Absolute Destination Files: <${CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL}>")
- message("CPackRPM:Debug: in component = ${CPACK_RPM_PACKAGE_COMPONENT}")
- endif()
- endif()
- else()
- if(CPACK_ABSOLUTE_DESTINATION_FILES)
- set(CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL "${CPACK_ABSOLUTE_DESTINATION_FILES}")
- endif()
- endif()
-
- # In component case, set CPACK_RPM_USER_FILELIST_INTERNAL with CPACK_RPM_<COMPONENT>_USER_FILELIST.
- set(CPACK_RPM_USER_FILELIST_INTERNAL "")
- if(CPACK_RPM_PACKAGE_COMPONENT)
- cpack_rpm_variable_fallback("CPACK_RPM_USER_FILELIST_INTERNAL"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_USER_FILELIST"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_USER_FILELIST")
-
- if(CPACK_RPM_PACKAGE_DEBUG AND CPACK_RPM_USER_FILELIST_INTERNAL)
- message("CPackRPM:Debug: Handling User Filelist: <${CPACK_RPM_USER_FILELIST_INTERNAL}>")
- message("CPackRPM:Debug: in component = ${CPACK_RPM_PACKAGE_COMPONENT}")
- endif()
- elseif(CPACK_RPM_USER_FILELIST)
- set(CPACK_RPM_USER_FILELIST_INTERNAL "${CPACK_RPM_USER_FILELIST}")
- endif()
-
- # Handle user specified file line list in CPACK_RPM_USER_FILELIST_INTERNAL
- # Remove those files from CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL
- # or CPACK_RPM_INSTALL_FILES,
- # hence it must be done before these auto-generated lists are processed.
- if(CPACK_RPM_USER_FILELIST_INTERNAL)
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: Handling User Filelist: <${CPACK_RPM_USER_FILELIST_INTERNAL}>")
- endif()
-
- # Create CMake list from CPACK_RPM_INSTALL_FILES
- string(STRIP "${CPACK_RPM_INSTALL_FILES}" CPACK_RPM_INSTALL_FILES_LIST)
- string(REPLACE "\n" ";" CPACK_RPM_INSTALL_FILES_LIST
- "${CPACK_RPM_INSTALL_FILES_LIST}")
- string(REPLACE "\"" "" CPACK_RPM_INSTALL_FILES_LIST
- "${CPACK_RPM_INSTALL_FILES_LIST}")
-
- set(CPACK_RPM_USER_INSTALL_FILES "")
- foreach(F IN LISTS CPACK_RPM_USER_FILELIST_INTERNAL)
- string(REGEX REPLACE "%[A-Za-z]+(\\([^()]*\\))? " "" F_PATH ${F})
- string(REGEX MATCH "(%[A-Za-z]+(\\([^()]*\\))? )*" F_PREFIX ${F})
- string(STRIP ${F_PREFIX} F_PREFIX)
-
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: F_PREFIX=<${F_PREFIX}>, F_PATH=<${F_PATH}>")
- endif()
- if(F_PREFIX)
- string(APPEND F_PREFIX " ")
- endif()
- # Rebuild the user list file
- string(APPEND CPACK_RPM_USER_INSTALL_FILES "${F_PREFIX}\"${F_PATH}\"\n")
-
- # Remove from CPACK_RPM_INSTALL_FILES and CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL
- list(REMOVE_ITEM CPACK_RPM_INSTALL_FILES_LIST ${F_PATH})
- # ABSOLUTE destination files list may not exists at all
- if (CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL)
- list(REMOVE_ITEM CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL ${F_PATH})
- endif()
- endforeach()
-
- # Rebuild CPACK_RPM_INSTALL_FILES
- set(CPACK_RPM_INSTALL_FILES "")
- foreach(F IN LISTS CPACK_RPM_INSTALL_FILES_LIST)
- string(APPEND CPACK_RPM_INSTALL_FILES "\"${F}\"\n")
- endforeach()
- else()
- set(CPACK_RPM_USER_INSTALL_FILES "")
- endif()
-
- if (CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL)
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: Handling Absolute Destination Files: ${CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL}")
- endif()
- # Remove trailing space
- string(STRIP "${CPACK_RPM_INSTALL_FILES}" CPACK_RPM_INSTALL_FILES_LIST)
- # Transform endline separated - string into CMake List
- string(REPLACE "\n" ";" CPACK_RPM_INSTALL_FILES_LIST "${CPACK_RPM_INSTALL_FILES_LIST}")
- # Remove unnecessary quotes
- string(REPLACE "\"" "" CPACK_RPM_INSTALL_FILES_LIST "${CPACK_RPM_INSTALL_FILES_LIST}")
- # Remove ABSOLUTE install file from INSTALL FILE LIST
- list(REMOVE_ITEM CPACK_RPM_INSTALL_FILES_LIST ${CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL})
- # Rebuild INSTALL_FILES
- set(CPACK_RPM_INSTALL_FILES "")
- foreach(F IN LISTS CPACK_RPM_INSTALL_FILES_LIST)
- string(APPEND CPACK_RPM_INSTALL_FILES "\"${F}\"\n")
- endforeach()
- # Build ABSOLUTE_INSTALL_FILES
- set(CPACK_RPM_ABSOLUTE_INSTALL_FILES "")
- foreach(F IN LISTS CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL)
- string(APPEND CPACK_RPM_ABSOLUTE_INSTALL_FILES "%config \"${F}\"\n")
- endforeach()
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: CPACK_RPM_ABSOLUTE_INSTALL_FILES=${CPACK_RPM_ABSOLUTE_INSTALL_FILES}")
- message("CPackRPM:Debug: CPACK_RPM_INSTALL_FILES=${CPACK_RPM_INSTALL_FILES}")
- endif()
- else()
- # reset vars in order to avoid leakage of value(s) from one component to another
- set(CPACK_RPM_ABSOLUTE_INSTALL_FILES "")
- endif()
-
- cpack_rpm_variable_fallback("CPACK_RPM_DEBUGINFO_PACKAGE"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_DEBUGINFO_PACKAGE"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEBUGINFO_PACKAGE"
- "CPACK_RPM_DEBUGINFO_PACKAGE")
- if(CPACK_RPM_DEBUGINFO_PACKAGE OR (CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE AND NOT GENERATE_SPEC_PARTS))
- cpack_rpm_variable_fallback("CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_BUILD_SOURCE_DIRS_PREFIX"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_BUILD_SOURCE_DIRS_PREFIX"
- "CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX")
- if(NOT CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX)
- set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}")
- endif()
-
- # handle cases where path contains extra slashes (e.g. /a//b/ instead of
- # /a/b)
- get_filename_component(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX
- "${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}" ABSOLUTE)
-
- if(CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE AND GENERATE_SPEC_PARTS)
- file(WRITE "${CPACK_RPM_ROOTDIR}/SPECS/${CPACK_RPM_PACKAGE_COMPONENT}.files"
- "${CPACK_RPM_INSTALL_FILES}")
- else()
- if(CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE AND CPACK_RPM_PACKAGE_COMPONENT)
- # this part is only required by components packaging - with monolithic
- # packages we can be certain that there are no other components present
- # so CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE is a noop
- if(CPACK_RPM_DEBUGINFO_PACKAGE)
- # only add current package files to debuginfo list if debuginfo
- # generation is enabled for current package
- string(STRIP "${CPACK_RPM_INSTALL_FILES}" install_files_)
- string(REPLACE "\n" ";" install_files_ "${install_files_}")
- string(REPLACE "\"" "" install_files_ "${install_files_}")
- else()
- unset(install_files_)
- endif()
-
- file(GLOB files_ "${CPACK_RPM_DIRECTORY}/SPECS/*.files")
-
- foreach(f_ IN LISTS files_)
- file(READ "${f_}" tmp_)
- string(APPEND install_files_ ";${tmp_}")
- endforeach()
-
- # if there were other components/groups so we need to move files from them
- # to current component otherwise those files won't be found
- file(GLOB components_ LIST_DIRECTORIES true RELATIVE
- "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}"
- "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/*")
- foreach(component_ IN LISTS components_)
- string(TOUPPER "${component_}" component_dir_upper_)
- if(component_dir_upper_ STREQUAL CPACK_RPM_PACKAGE_COMPONENT_UPPER)
- # skip current component
- continue()
- endif()
-
- file(GLOB_RECURSE files_for_move_ LIST_DIRECTORIES false RELATIVE
- "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${component_}"
- "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${component_}/*")
-
- foreach(f_ IN LISTS files_for_move_)
- get_filename_component(dir_path_ "${f_}" DIRECTORY)
- set(src_file_
- "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${component_}/${f_}")
-
- # check that we are not overriding an existing file that doesn't
- # match the file that we want to copy
- if(EXISTS "${src_file_}" AND EXISTS "${WDIR}/${f_}")
- execute_process(
- COMMAND ${CMAKE_COMMAND} -E compare_files "${src_file_}" "${WDIR}/${f_}"
- RESULT_VARIABLE res_
- )
- if(res_)
- message(FATAL_ERROR "CPackRPM:Error: File on path '${WDIR}/${f_}'"
- " already exists but is a different than the one in component"
- " '${component_}'! Packages will not be generated.")
- endif()
- endif()
-
- file(MAKE_DIRECTORY "${WDIR}/${dir_path_}")
- file(RENAME "${src_file_}"
- "${WDIR}/${f_}")
- endforeach()
- endforeach()
-
- cpack_rpm_debugsymbol_check("${install_files_}" "${WDIR}")
- else()
- string(STRIP "${CPACK_RPM_INSTALL_FILES}" install_files_)
- string(REPLACE "\n" ";" install_files_ "${install_files_}")
- string(REPLACE "\"" "" install_files_ "${install_files_}")
-
- cpack_rpm_debugsymbol_check("${install_files_}" "${WDIR}")
- endif()
-
- if(TMP_DEBUGINFO_ADDITIONAL_SOURCES)
- set(TMP_RPM_DEBUGINFO "
-# Modified version of %%debug_package macro
-# defined in /usr/lib/rpm/macros as that one
-# can't handle injection of extra source files.
-%ifnarch noarch
-%global __debug_package 1
-%package debuginfo
-Summary: Debug information for package %{name}
-Group: Development/Debug
-AutoReqProv: 0
-%description debuginfo
-This package provides debug information for package %{name}.
-Debug information is useful when developing applications that use this
-package or when debugging this package.
-%files debuginfo -f debugfiles.list
-%defattr(-,root,root)
-${TMP_DEBUGINFO_ADDITIONAL_SOURCES}
-%endif
-")
- elseif(CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE)
- message(AUTHOR_WARNING "CPackRPM:Warning: debuginfo package was requested"
- " but will not be generated as no source files were found!")
- else()
- message(AUTHOR_WARNING "CPackRPM:Warning: debuginfo package was requested"
- " but will not be generated as no source files were found! Component: '"
- "${CPACK_RPM_PACKAGE_COMPONENT}'.")
- endif()
- endif()
- endif()
-
- # Prepare install files
- cpack_rpm_prepare_install_files(
- "${CPACK_RPM_INSTALL_FILES}"
- "${WDIR}"
- "${RPM_USED_PACKAGE_PREFIXES}"
- "${CPACK_RPM_PACKAGE_RELOCATABLE}"
- )
-
- # set default user and group
- foreach(_PERM_TYPE "USER" "GROUP")
- if(CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEFAULT_${_PERM_TYPE})
- set(TMP_DEFAULT_${_PERM_TYPE} "${CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEFAULT_${_PERM_TYPE}}")
- elseif(CPACK_RPM_DEFAULT_${_PERM_TYPE})
- set(TMP_DEFAULT_${_PERM_TYPE} "${CPACK_RPM_DEFAULT_${_PERM_TYPE}}")
- else()
- set(TMP_DEFAULT_${_PERM_TYPE} "root")
- endif()
- endforeach()
-
- # set default file and dir permissions
- foreach(_PERM_TYPE "FILE" "DIR")
- if(CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEFAULT_${_PERM_TYPE}_PERMISSIONS)
- get_unix_permissions_octal_notation("CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEFAULT_${_PERM_TYPE}_PERMISSIONS" "TMP_DEFAULT_${_PERM_TYPE}_PERMISSIONS")
- set(_PERMISSIONS_VAR "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEFAULT_${_PERM_TYPE}_PERMISSIONS")
- elseif(CPACK_RPM_DEFAULT_${_PERM_TYPE}_PERMISSIONS)
- get_unix_permissions_octal_notation("CPACK_RPM_DEFAULT_${_PERM_TYPE}_PERMISSIONS" "TMP_DEFAULT_${_PERM_TYPE}_PERMISSIONS")
- set(_PERMISSIONS_VAR "CPACK_RPM_DEFAULT_${_PERM_TYPE}_PERMISSIONS")
- else()
- set(TMP_DEFAULT_${_PERM_TYPE}_PERMISSIONS "-")
- endif()
- endforeach()
-
- # The name of the final spec file to be used by rpmbuild
- set(CPACK_RPM_BINARY_SPECFILE "${CPACK_RPM_ROOTDIR}/SPECS/${CPACK_RPM_PACKAGE_NAME}.spec")
-
- # Print out some debug information if we were asked for that
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: CPACK_TOPLEVEL_DIRECTORY = ${CPACK_TOPLEVEL_DIRECTORY}")
- message("CPackRPM:Debug: CPACK_TOPLEVEL_TAG = ${CPACK_TOPLEVEL_TAG}")
- message("CPackRPM:Debug: CPACK_TEMPORARY_DIRECTORY = ${CPACK_TEMPORARY_DIRECTORY}")
- message("CPackRPM:Debug: CPACK_OUTPUT_FILE_NAME = ${CPACK_OUTPUT_FILE_NAME}")
- message("CPackRPM:Debug: CPACK_OUTPUT_FILE_PATH = ${CPACK_OUTPUT_FILE_PATH}")
- message("CPackRPM:Debug: CPACK_PACKAGE_FILE_NAME = ${CPACK_PACKAGE_FILE_NAME}")
- message("CPackRPM:Debug: CPACK_RPM_BINARY_SPECFILE = ${CPACK_RPM_BINARY_SPECFILE}")
- message("CPackRPM:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = ${CPACK_PACKAGE_INSTALL_DIRECTORY}")
- message("CPackRPM:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}")
- endif()
-
- #
- # USER generated/provided spec file handling.
- #
-
- # We can have a component specific spec file.
- if(CPACK_RPM_PACKAGE_COMPONENT)
- cpack_rpm_variable_fallback("CPACK_RPM_USER_BINARY_SPECFILE"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_USER_BINARY_SPECFILE"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_USER_BINARY_SPECFILE")
- endif()
-
- cpack_rpm_variable_fallback("CPACK_RPM_FILE_NAME"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_FILE_NAME"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_FILE_NAME"
- "CPACK_RPM_FILE_NAME")
- if(NOT CPACK_RPM_FILE_NAME STREQUAL "RPM-DEFAULT")
- if(CPACK_RPM_FILE_NAME)
- if(NOT CPACK_RPM_FILE_NAME MATCHES ".*\\.rpm")
- message(FATAL_ERROR "'${CPACK_RPM_FILE_NAME}' is not a valid RPM package file name as it must end with '.rpm'!")
- endif()
- else()
- # old file name format for back compatibility
- string(TOUPPER "${CPACK_RPM_MAIN_COMPONENT}"
- CPACK_RPM_MAIN_COMPONENT_UPPER)
-
- if(CPACK_RPM_MAIN_COMPONENT_UPPER STREQUAL CPACK_RPM_PACKAGE_COMPONENT_UPPER)
- # this is the main component so ignore the component filename part
- set(CPACK_RPM_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.rpm")
- else()
- set(CPACK_RPM_FILE_NAME "${CPACK_OUTPUT_FILE_NAME}")
- endif()
- endif()
- # else example:
- #set(CPACK_RPM_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}-${CPACK_RPM_PACKAGE_ARCHITECTURE}.rpm")
-
- if(CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE AND GENERATE_SPEC_PARTS)
- string(TOLOWER "${CPACK_RPM_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.*\\.rpm" expected_filename_)
-
- file(WRITE "${CPACK_RPM_ROOTDIR}/SPECS/${CPACK_RPM_PACKAGE_COMPONENT}.rpm_name"
- "${expected_filename_};${CPACK_RPM_FILE_NAME}")
- elseif(NOT CPACK_RPM_DEBUGINFO_PACKAGE)
- set(FILE_NAME_DEFINE "%define _rpmfilename ${CPACK_RPM_FILE_NAME}")
- endif()
- endif()
-
- if(CPACK_RPM_PACKAGE_SOURCES) # source rpm
- set(archive_name_ "${CPACK_RPM_PACKAGE_NAME}-${CPACK_RPM_PACKAGE_VERSION}")
-
- execute_process(
- COMMAND ${CMAKE_COMMAND} -E tar "cfvz" "${CPACK_RPM_DIRECTORY}/SOURCES/${archive_name_}.tar.gz" "${CPACK_PACKAGE_FILE_NAME}"
- WORKING_DIRECTORY ${CPACK_RPM_DIRECTORY}
- )
- set(TMP_RPM_SOURCE "Source: ${archive_name_}.tar.gz")
-
- if(CPACK_RPM_BUILDREQUIRES)
- set(TMP_RPM_BUILD_REQUIRES "BuildRequires: ${CPACK_RPM_BUILDREQUIRES}")
- endif()
-
- # Disable debuginfo packages - srpm generates invalid packages due to
- # releasing control to cpack to generate binary packages.
- # Note however that this doesn't prevent cpack to generate debuginfo
- # packages when run from srpm with --rebuild.
- set(TMP_RPM_DISABLE_DEBUGINFO "%define debug_package %{nil}")
-
- if(NOT CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX)
- set(CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX "/")
- endif()
-
- set(TMP_RPM_BUILD
- "
-%build
-mkdir cpack_rpm_build_dir
-cd cpack_rpm_build_dir
-'${CMAKE_COMMAND}' ${CPACK_RPM_SOURCE_PKG_BUILD_PARAMS} -DCPACK_PACKAGING_INSTALL_PREFIX=${CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX} ../${CPACK_PACKAGE_FILE_NAME}
-make %{?_smp_mflags}" # %{?_smp_mflags} -> -j option
- )
- set(TMP_RPM_INSTALL
- "
-cd cpack_rpm_build_dir
-cpack -G RPM
-mv *.rpm %_rpmdir"
- )
- set(TMP_RPM_PREP "%setup -c")
-
- set(RPMBUILD_FLAGS "-bs")
-
- file(WRITE ${CPACK_RPM_BINARY_SPECFILE}.in
- "# Restore old style debuginfo creation for rpm >= 4.14.
-%undefine _debugsource_packages
-%undefine _debuginfo_subpackages
-
-# -*- rpm-spec -*-
-BuildRoot: %_topdir/\@CPACK_PACKAGE_FILE_NAME\@
-Summary: \@CPACK_RPM_PACKAGE_SUMMARY\@
-Name: \@CPACK_RPM_PACKAGE_NAME\@
-Version: \@CPACK_RPM_PACKAGE_VERSION\@
-Release: \@CPACK_RPM_PACKAGE_RELEASE\@
-License: \@CPACK_RPM_PACKAGE_LICENSE\@
-Group: \@CPACK_RPM_PACKAGE_GROUP\@
-Vendor: \@CPACK_RPM_PACKAGE_VENDOR\@
-
-\@TMP_RPM_SOURCE\@
-\@TMP_RPM_BUILD_REQUIRES\@
-\@TMP_RPM_BUILDARCH\@
-\@TMP_RPM_PREFIXES\@
-
-\@TMP_RPM_DISABLE_DEBUGINFO\@
-
-%define _rpmdir %_topdir/RPMS
-%define _srcrpmdir %_topdir/SRPMS
-\@FILE_NAME_DEFINE\@
-%define _unpackaged_files_terminate_build 0
-\@TMP_RPM_SPEC_INSTALL_POST\@
-\@CPACK_RPM_SPEC_MORE_DEFINE\@
-\@CPACK_RPM_COMPRESSION_TYPE_TMP\@
-
-%description
-\@CPACK_RPM_PACKAGE_DESCRIPTION\@
-
-# This is a shortcutted spec file generated by CMake RPM generator
-# we skip _install step because CPack does that for us.
-# We do only save CPack installed tree in _prepr
-# and then restore it in build.
-%prep
-\@TMP_RPM_PREP\@
-
-\@TMP_RPM_BUILD\@
-
-#p build
-
-%install
-\@TMP_RPM_INSTALL\@
-
-%clean
-
-%changelog
-\@CPACK_RPM_SPEC_CHANGELOG\@
-"
- )
-
- elseif(GENERATE_SPEC_PARTS) # binary rpm with single debuginfo package
- file(WRITE ${CPACK_RPM_BINARY_SPECFILE}.in
- "# -*- rpm-spec -*-
-%package -n \@CPACK_RPM_PACKAGE_NAME\@
-Summary: \@CPACK_RPM_PACKAGE_SUMMARY\@
-Version: \@CPACK_RPM_PACKAGE_VERSION\@
-Release: \@CPACK_RPM_PACKAGE_RELEASE\@
-License: \@CPACK_RPM_PACKAGE_LICENSE\@
-Group: \@CPACK_RPM_PACKAGE_GROUP\@
-Vendor: \@CPACK_RPM_PACKAGE_VENDOR\@
-
-\@TMP_RPM_URL\@
-\@TMP_RPM_REQUIRES\@
-\@TMP_RPM_REQUIRES_PRE\@
-\@TMP_RPM_REQUIRES_POST\@
-\@TMP_RPM_REQUIRES_PREUN\@
-\@TMP_RPM_REQUIRES_POSTUN\@
-\@TMP_RPM_PROVIDES\@
-\@TMP_RPM_OBSOLETES\@
-\@TMP_RPM_CONFLICTS\@
-\@TMP_RPM_SUGGESTS\@
-\@TMP_RPM_AUTOPROV\@
-\@TMP_RPM_AUTOREQ\@
-\@TMP_RPM_AUTOREQPROV\@
-\@TMP_RPM_BUILDARCH\@
-\@TMP_RPM_PREFIXES\@
-\@TMP_RPM_EPOCH\@
-
-%description -n \@CPACK_RPM_PACKAGE_NAME\@
-\@CPACK_RPM_PACKAGE_DESCRIPTION\@
-
-%files -n \@CPACK_RPM_PACKAGE_NAME\@
-%defattr(\@TMP_DEFAULT_FILE_PERMISSIONS\@,\@TMP_DEFAULT_USER\@,\@TMP_DEFAULT_GROUP\@,\@TMP_DEFAULT_DIR_PERMISSIONS\@)
-\@CPACK_RPM_INSTALL_FILES\@
-\@CPACK_RPM_ABSOLUTE_INSTALL_FILES\@
-\@CPACK_RPM_USER_INSTALL_FILES\@
-"
- )
-
- else() # binary rpm
- if(CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE)
- # find generated spec file and take its name
- file(GLOB spec_files_ "${CPACK_RPM_DIRECTORY}/SPECS/*.spec")
-
- foreach(f_ IN LISTS spec_files_)
- file(READ "${f_}" tmp_)
- string(APPEND TMP_OTHER_COMPONENTS "\n${tmp_}\n")
- endforeach()
- endif()
-
- # We should generate a USER spec file template:
- # - either because the user asked for it : CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
- # - or the user did not provide one : NOT CPACK_RPM_USER_BINARY_SPECFILE
- set(RPMBUILD_FLAGS "-bb")
- if(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE OR NOT CPACK_RPM_USER_BINARY_SPECFILE)
-
- file(WRITE ${CPACK_RPM_BINARY_SPECFILE}.in
- "# Restore old style debuginfo creation for rpm >= 4.14.
-%undefine _debugsource_packages
-%undefine _debuginfo_subpackages
-
-# -*- rpm-spec -*-
-BuildRoot: %_topdir/\@CPACK_PACKAGE_FILE_NAME\@\@CPACK_RPM_PACKAGE_COMPONENT_PART_PATH\@
-Summary: \@CPACK_RPM_PACKAGE_SUMMARY\@
-Name: \@CPACK_RPM_PACKAGE_NAME\@
-Version: \@CPACK_RPM_PACKAGE_VERSION\@
-Release: \@CPACK_RPM_PACKAGE_RELEASE\@
-License: \@CPACK_RPM_PACKAGE_LICENSE\@
-Group: \@CPACK_RPM_PACKAGE_GROUP\@
-Vendor: \@CPACK_RPM_PACKAGE_VENDOR\@
-
-\@TMP_RPM_URL\@
-\@TMP_RPM_REQUIRES\@
-\@TMP_RPM_REQUIRES_PRE\@
-\@TMP_RPM_REQUIRES_POST\@
-\@TMP_RPM_REQUIRES_PREUN\@
-\@TMP_RPM_REQUIRES_POSTUN\@
-\@TMP_RPM_PROVIDES\@
-\@TMP_RPM_OBSOLETES\@
-\@TMP_RPM_CONFLICTS\@
-\@TMP_RPM_SUGGESTS\@
-\@TMP_RPM_AUTOPROV\@
-\@TMP_RPM_AUTOREQ\@
-\@TMP_RPM_AUTOREQPROV\@
-\@TMP_RPM_BUILDARCH\@
-\@TMP_RPM_PREFIXES\@
-\@TMP_RPM_EPOCH\@
-
-\@TMP_RPM_DEBUGINFO\@
-
-%define _rpmdir %_topdir/RPMS
-%define _srcrpmdir %_topdir/SRPMS
-\@FILE_NAME_DEFINE\@
-%define _unpackaged_files_terminate_build 0
-\@TMP_RPM_SPEC_INSTALL_POST\@
-\@CPACK_RPM_SPEC_MORE_DEFINE\@
-\@CPACK_RPM_COMPRESSION_TYPE_TMP\@
-
-%description
-\@CPACK_RPM_PACKAGE_DESCRIPTION\@
-
-# This is a shortcutted spec file generated by CMake RPM generator
-# we skip _install step because CPack does that for us.
-# We do only save CPack installed tree in _prepr
-# and then restore it in build.
-%prep
-mv $RPM_BUILD_ROOT %_topdir/tmpBBroot
-
-%install
-if [ -e $RPM_BUILD_ROOT ];
-then
- rm -rf $RPM_BUILD_ROOT
-fi
-mv %_topdir/tmpBBroot $RPM_BUILD_ROOT
-
-\@TMP_RPM_DEBUGINFO_INSTALL\@
-
-%clean
-
-%post
-\@RPM_SYMLINK_POSTINSTALL\@
-\@CPACK_RPM_SPEC_POSTINSTALL\@
-
-%postun
-\@CPACK_RPM_SPEC_POSTUNINSTALL\@
-
-%pre
-\@CPACK_RPM_SPEC_PREINSTALL\@
-
-%preun
-\@CPACK_RPM_SPEC_PREUNINSTALL\@
-
-%files
-%defattr(\@TMP_DEFAULT_FILE_PERMISSIONS\@,\@TMP_DEFAULT_USER\@,\@TMP_DEFAULT_GROUP\@,\@TMP_DEFAULT_DIR_PERMISSIONS\@)
-\@CPACK_RPM_INSTALL_FILES\@
-\@CPACK_RPM_ABSOLUTE_INSTALL_FILES\@
-\@CPACK_RPM_USER_INSTALL_FILES\@
-
-%changelog
-\@CPACK_RPM_SPEC_CHANGELOG\@
-
-\@TMP_OTHER_COMPONENTS\@
-"
- )
- endif()
-
- # Stop here if we were asked to only generate a template USER spec file
- # The generated file may then be used as a template by user who wants
- # to customize their own spec file.
- if(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE)
- message(FATAL_ERROR "CPackRPM: STOP here Generated USER binary spec file template is: ${CPACK_RPM_BINARY_SPECFILE}.in")
- endif()
- endif()
-
- # After that we may either use a user provided spec file
- # or generate one using appropriate variables value.
- if(CPACK_RPM_USER_BINARY_SPECFILE)
- # User may have specified SPECFILE just use it
- message("CPackRPM: Will use USER specified spec file: ${CPACK_RPM_USER_BINARY_SPECFILE}")
- # The user provided file is processed for @var replacement
- configure_file(${CPACK_RPM_USER_BINARY_SPECFILE} ${CPACK_RPM_BINARY_SPECFILE} @ONLY)
- else()
- # No User specified spec file, will use the generated spec file
- message("CPackRPM: Will use GENERATED spec file: ${CPACK_RPM_BINARY_SPECFILE}")
- # Note the just created file is processed for @var replacement
- configure_file(${CPACK_RPM_BINARY_SPECFILE}.in ${CPACK_RPM_BINARY_SPECFILE} @ONLY)
- endif()
-
- if(NOT GENERATE_SPEC_PARTS) # generate package
- if(RPMBUILD_EXECUTABLE)
- # Now call rpmbuild using the SPECFILE
- execute_process(
- COMMAND "${RPMBUILD_EXECUTABLE}" ${RPMBUILD_FLAGS}
- --define "_topdir ${CPACK_RPM_DIRECTORY}"
- --buildroot "%_topdir/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}"
- --target "${CPACK_RPM_PACKAGE_ARCHITECTURE}"
- "${CPACK_RPM_BINARY_SPECFILE}"
- WORKING_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}"
- RESULT_VARIABLE CPACK_RPMBUILD_EXEC_RESULT
- ERROR_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild${CPACK_RPM_PACKAGE_NAME}.err"
- OUTPUT_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild${CPACK_RPM_PACKAGE_NAME}.out")
- if(CPACK_RPM_PACKAGE_DEBUG OR CPACK_RPMBUILD_EXEC_RESULT)
- file(READ ${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild${CPACK_RPM_PACKAGE_NAME}.err RPMBUILDERR)
- file(READ ${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild${CPACK_RPM_PACKAGE_NAME}.out RPMBUILDOUT)
- message("CPackRPM:Debug: You may consult rpmbuild logs in: ")
- message("CPackRPM:Debug: - ${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild${CPACK_RPM_PACKAGE_NAME}.err")
- message("CPackRPM:Debug: *** ${RPMBUILDERR} ***")
- message("CPackRPM:Debug: - ${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild${CPACK_RPM_PACKAGE_NAME}.out")
- message("CPackRPM:Debug: *** ${RPMBUILDOUT} ***")
- endif()
- else()
- if(ALIEN_EXECUTABLE)
- message(FATAL_ERROR "RPM packaging through alien not done (yet)")
- endif()
- endif()
-
- # find generated rpm files and take their names
- file(GLOB_RECURSE GENERATED_FILES "${CPACK_RPM_DIRECTORY}/RPMS/*.rpm"
- "${CPACK_RPM_DIRECTORY}/SRPMS/*.rpm")
-
- if(NOT GENERATED_FILES)
- message(FATAL_ERROR "RPM package was not generated! ${CPACK_RPM_DIRECTORY}")
- endif()
-
- unset(expected_filenames_)
- unset(filenames_)
- if(CPACK_RPM_DEBUGINFO_PACKAGE AND NOT CPACK_RPM_FILE_NAME STREQUAL "RPM-DEFAULT")
- list(APPEND expected_filenames_
- "${CPACK_RPM_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.*\\.rpm")
- list(APPEND filenames_ "${CPACK_RPM_FILE_NAME}")
- endif()
-
- if(CPACK_RPM_DEBUGINFO_PACKAGE)
- cpack_rpm_variable_fallback("CPACK_RPM_DEBUGINFO_FILE_NAME"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_DEBUGINFO_FILE_NAME"
- "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEBUGINFO_FILE_NAME"
- "CPACK_RPM_DEBUGINFO_FILE_NAME")
-
- if(CPACK_RPM_DEBUGINFO_FILE_NAME AND
- NOT CPACK_RPM_DEBUGINFO_FILE_NAME STREQUAL "RPM-DEFAULT")
- list(APPEND expected_filenames_
- "${CPACK_RPM_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}.*\\.rpm")
- string(REPLACE "@cpack_component@" "${CPACK_RPM_PACKAGE_COMPONENT}"
- CPACK_RPM_DEBUGINFO_FILE_NAME "${CPACK_RPM_DEBUGINFO_FILE_NAME}")
- list(APPEND filenames_ "${CPACK_RPM_DEBUGINFO_FILE_NAME}")
- endif()
- endif()
-
- # check if other files have to be renamed
- file(GLOB rename_files_ "${CPACK_RPM_DIRECTORY}/SPECS/*.rpm_name")
- if(rename_files_)
- foreach(f_ IN LISTS rename_files_)
- file(READ "${f_}" tmp_)
- list(GET tmp_ 0 efn_)
- list(APPEND expected_filenames_ "${efn_}")
- list(GET tmp_ 1 fn_)
- list(APPEND filenames_ "${fn_}")
- endforeach()
- endif()
-
- if(expected_filenames_)
- foreach(F IN LISTS GENERATED_FILES)
- unset(matched_)
- foreach(expected_ IN LISTS expected_filenames_)
- if(F MATCHES ".*/${expected_}")
- list(FIND expected_filenames_ "${expected_}" idx_)
- list(GET filenames_ ${idx_} filename_)
- get_filename_component(FILE_PATH "${F}" DIRECTORY)
- file(RENAME "${F}" "${FILE_PATH}/${filename_}")
- list(APPEND new_files_list_ "${FILE_PATH}/${filename_}")
- set(matched_ "YES")
-
- break()
- endif()
- endforeach()
-
- if(NOT matched_)
- list(APPEND new_files_list_ "${F}")
- endif()
- endforeach()
-
- set(GENERATED_FILES "${new_files_list_}")
- endif()
- endif()
-
- set(GEN_CPACK_OUTPUT_FILES "${GENERATED_FILES}" PARENT_SCOPE)
-
- if(CPACK_RPM_PACKAGE_DEBUG)
- message("CPackRPM:Debug: GEN_CPACK_OUTPUT_FILES = ${GENERATED_FILES}")
- endif()
-endfunction()
-
-cpack_rpm_generate_package()
-
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/Internal/CPack/NSIS.template.in b/share/cmake-3.16/Modules/Internal/CPack/NSIS.template.in
deleted file mode 100644
index f75ae78..0000000
--- a/share/cmake-3.16/Modules/Internal/CPack/NSIS.template.in
+++ /dev/null
@@ -1,972 +0,0 @@
-; CPack install script designed for a nmake build
-
-;--------------------------------
-; You must define these values
-
- !define VERSION "@CPACK_PACKAGE_VERSION@"
- !define PATCH "@CPACK_PACKAGE_VERSION_PATCH@"
- !define INST_DIR "@CPACK_TEMPORARY_DIRECTORY@"
-
-;--------------------------------
-;Variables
-
- Var MUI_TEMP
- Var STARTMENU_FOLDER
- Var SV_ALLUSERS
- Var START_MENU
- Var DO_NOT_ADD_TO_PATH
- Var ADD_TO_PATH_ALL_USERS
- Var ADD_TO_PATH_CURRENT_USER
- Var INSTALL_DESKTOP
- Var IS_DEFAULT_INSTALLDIR
-;--------------------------------
-;Include Modern UI
-
- !include "MUI.nsh"
-
- ;Default installation folder
- InstallDir "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
-
-;--------------------------------
-;General
-
- ;Name and file
- Name "@CPACK_NSIS_PACKAGE_NAME@"
- OutFile "@CPACK_TOPLEVEL_DIRECTORY@/@CPACK_OUTPUT_FILE_NAME@"
-
- ;Set compression
- SetCompressor @CPACK_NSIS_COMPRESSOR@
-
- ;Require administrator access
- RequestExecutionLevel admin
-
-@CPACK_NSIS_DEFINES@
-
- !include Sections.nsh
-
-;--- Component support macros: ---
-; The code for the add/remove functionality is from:
-; http://nsis.sourceforge.net/Add/Remove_Functionality
-; It has been modified slightly and extended to provide
-; inter-component dependencies.
-Var AR_SecFlags
-Var AR_RegFlags
-@CPACK_NSIS_SECTION_SELECTED_VARS@
-
-; Loads the "selected" flag for the section named SecName into the
-; variable VarName.
-!macro LoadSectionSelectedIntoVar SecName VarName
- SectionGetFlags ${${SecName}} $${VarName}
- IntOp $${VarName} $${VarName} & ${SF_SELECTED} ;Turn off all other bits
-!macroend
-
-; Loads the value of a variable... can we get around this?
-!macro LoadVar VarName
- IntOp $R0 0 + $${VarName}
-!macroend
-
-; Sets the value of a variable
-!macro StoreVar VarName IntValue
- IntOp $${VarName} 0 + ${IntValue}
-!macroend
-
-!macro InitSection SecName
- ; This macro reads component installed flag from the registry and
- ;changes checked state of the section on the components page.
- ;Input: section index constant name specified in Section command.
-
- ClearErrors
- ;Reading component status from registry
- ReadRegDWORD $AR_RegFlags HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" "Installed"
- IfErrors "default_${SecName}"
- ;Status will stay default if registry value not found
- ;(component was never installed)
- IntOp $AR_RegFlags $AR_RegFlags & ${SF_SELECTED} ;Turn off all other bits
- SectionGetFlags ${${SecName}} $AR_SecFlags ;Reading default section flags
- IntOp $AR_SecFlags $AR_SecFlags & 0xFFFE ;Turn lowest (enabled) bit off
- IntOp $AR_SecFlags $AR_RegFlags | $AR_SecFlags ;Change lowest bit
-
- ; Note whether this component was installed before
- !insertmacro StoreVar ${SecName}_was_installed $AR_RegFlags
- IntOp $R0 $AR_RegFlags & $AR_RegFlags
-
- ;Writing modified flags
- SectionSetFlags ${${SecName}} $AR_SecFlags
-
- "default_${SecName}:"
- !insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected
-!macroend
-
-!macro FinishSection SecName
- ; This macro reads section flag set by user and removes the section
- ;if it is not selected.
- ;Then it writes component installed flag to registry
- ;Input: section index constant name specified in Section command.
-
- SectionGetFlags ${${SecName}} $AR_SecFlags ;Reading section flags
- ;Checking lowest bit:
- IntOp $AR_SecFlags $AR_SecFlags & ${SF_SELECTED}
- IntCmp $AR_SecFlags 1 "leave_${SecName}"
- ;Section is not selected:
- ;Calling Section uninstall macro and writing zero installed flag
- !insertmacro "Remove_${${SecName}}"
- WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \
- "Installed" 0
- Goto "exit_${SecName}"
-
- "leave_${SecName}:"
- ;Section is selected:
- WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \
- "Installed" 1
-
- "exit_${SecName}:"
-!macroend
-
-!macro RemoveSection_CPack SecName
- ; This macro is used to call section's Remove_... macro
- ;from the uninstaller.
- ;Input: section index constant name specified in Section command.
-
- !insertmacro "Remove_${${SecName}}"
-!macroend
-
-; Determine whether the selection of SecName changed
-!macro MaybeSelectionChanged SecName
- !insertmacro LoadVar ${SecName}_selected
- SectionGetFlags ${${SecName}} $R1
- IntOp $R1 $R1 & ${SF_SELECTED} ;Turn off all other bits
-
- ; See if the status has changed:
- IntCmp $R0 $R1 "${SecName}_unchanged"
- !insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected
-
- IntCmp $R1 ${SF_SELECTED} "${SecName}_was_selected"
- !insertmacro "Deselect_required_by_${SecName}"
- goto "${SecName}_unchanged"
-
- "${SecName}_was_selected:"
- !insertmacro "Select_${SecName}_depends"
-
- "${SecName}_unchanged:"
-!macroend
-;--- End of Add/Remove macros ---
-
-;--------------------------------
-;Interface Settings
-
- !define MUI_HEADERIMAGE
- !define MUI_ABORTWARNING
-
-;----------------------------------------
-; based upon a script of "Written by KiCHiK 2003-01-18 05:57:02"
-;----------------------------------------
-!verbose 3
-!include "WinMessages.NSH"
-!verbose 4
-;====================================================
-; get_NT_environment
-; Returns: the selected environment
-; Output : head of the stack
-;====================================================
-!macro select_NT_profile UN
-Function ${UN}select_NT_profile
- StrCmp $ADD_TO_PATH_ALL_USERS "1" 0 environment_single
- DetailPrint "Selected environment for all users"
- Push "all"
- Return
- environment_single:
- DetailPrint "Selected environment for current user only."
- Push "current"
- Return
-FunctionEnd
-!macroend
-!insertmacro select_NT_profile ""
-!insertmacro select_NT_profile "un."
-;----------------------------------------------------
-!define NT_current_env 'HKCU "Environment"'
-!define NT_all_env 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
-
-!ifndef WriteEnvStr_RegKey
- !ifdef ALL_USERS
- !define WriteEnvStr_RegKey \
- 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
- !else
- !define WriteEnvStr_RegKey 'HKCU "Environment"'
- !endif
-!endif
-
-; AddToPath - Adds the given dir to the search path.
-; Input - head of the stack
-; Note - Win9x systems requires reboot
-
-Function AddToPath
- Exch $0
- Push $1
- Push $2
- Push $3
-
- # don't add if the path doesn't exist
- IfFileExists "$0\*.*" "" AddToPath_done
-
- ReadEnvStr $1 PATH
- ; if the path is too long for a NSIS variable NSIS will return a 0
- ; length string. If we find that, then warn and skip any path
- ; modification as it will trash the existing path.
- StrLen $2 $1
- IntCmp $2 0 CheckPathLength_ShowPathWarning CheckPathLength_Done CheckPathLength_Done
- CheckPathLength_ShowPathWarning:
- Messagebox MB_OK|MB_ICONEXCLAMATION "Warning! PATH too long installer unable to modify PATH!"
- Goto AddToPath_done
- CheckPathLength_Done:
- Push "$1;"
- Push "$0;"
- Call StrStr
- Pop $2
- StrCmp $2 "" "" AddToPath_done
- Push "$1;"
- Push "$0\;"
- Call StrStr
- Pop $2
- StrCmp $2 "" "" AddToPath_done
- GetFullPathName /SHORT $3 $0
- Push "$1;"
- Push "$3;"
- Call StrStr
- Pop $2
- StrCmp $2 "" "" AddToPath_done
- Push "$1;"
- Push "$3\;"
- Call StrStr
- Pop $2
- StrCmp $2 "" "" AddToPath_done
-
- Call IsNT
- Pop $1
- StrCmp $1 1 AddToPath_NT
- ; Not on NT
- StrCpy $1 $WINDIR 2
- FileOpen $1 "$1\autoexec.bat" a
- FileSeek $1 -1 END
- FileReadByte $1 $2
- IntCmp $2 26 0 +2 +2 # DOS EOF
- FileSeek $1 -1 END # write over EOF
- FileWrite $1 "$\r$\nSET PATH=%PATH%;$3$\r$\n"
- FileClose $1
- SetRebootFlag true
- Goto AddToPath_done
-
- AddToPath_NT:
- StrCmp $ADD_TO_PATH_ALL_USERS "1" ReadAllKey
- ReadRegStr $1 ${NT_current_env} "PATH"
- Goto DoTrim
- ReadAllKey:
- ReadRegStr $1 ${NT_all_env} "PATH"
- DoTrim:
- StrCmp $1 "" AddToPath_NTdoIt
- Push $1
- Call Trim
- Pop $1
- StrCpy $0 "$1;$0"
- AddToPath_NTdoIt:
- StrCmp $ADD_TO_PATH_ALL_USERS "1" WriteAllKey
- WriteRegExpandStr ${NT_current_env} "PATH" $0
- Goto DoSend
- WriteAllKey:
- WriteRegExpandStr ${NT_all_env} "PATH" $0
- DoSend:
- SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
-
- AddToPath_done:
- Pop $3
- Pop $2
- Pop $1
- Pop $0
-FunctionEnd
-
-
-; RemoveFromPath - Remove a given dir from the path
-; Input: head of the stack
-
-Function un.RemoveFromPath
- Exch $0
- Push $1
- Push $2
- Push $3
- Push $4
- Push $5
- Push $6
-
- IntFmt $6 "%c" 26 # DOS EOF
-
- Call un.IsNT
- Pop $1
- StrCmp $1 1 unRemoveFromPath_NT
- ; Not on NT
- StrCpy $1 $WINDIR 2
- FileOpen $1 "$1\autoexec.bat" r
- GetTempFileName $4
- FileOpen $2 $4 w
- GetFullPathName /SHORT $0 $0
- StrCpy $0 "SET PATH=%PATH%;$0"
- Goto unRemoveFromPath_dosLoop
-
- unRemoveFromPath_dosLoop:
- FileRead $1 $3
- StrCpy $5 $3 1 -1 # read last char
- StrCmp $5 $6 0 +2 # if DOS EOF
- StrCpy $3 $3 -1 # remove DOS EOF so we can compare
- StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoopRemoveLine
- StrCmp $3 "$0$\n" unRemoveFromPath_dosLoopRemoveLine
- StrCmp $3 "$0" unRemoveFromPath_dosLoopRemoveLine
- StrCmp $3 "" unRemoveFromPath_dosLoopEnd
- FileWrite $2 $3
- Goto unRemoveFromPath_dosLoop
- unRemoveFromPath_dosLoopRemoveLine:
- SetRebootFlag true
- Goto unRemoveFromPath_dosLoop
-
- unRemoveFromPath_dosLoopEnd:
- FileClose $2
- FileClose $1
- StrCpy $1 $WINDIR 2
- Delete "$1\autoexec.bat"
- CopyFiles /SILENT $4 "$1\autoexec.bat"
- Delete $4
- Goto unRemoveFromPath_done
-
- unRemoveFromPath_NT:
- StrCmp $ADD_TO_PATH_ALL_USERS "1" unReadAllKey
- ReadRegStr $1 ${NT_current_env} "PATH"
- Goto unDoTrim
- unReadAllKey:
- ReadRegStr $1 ${NT_all_env} "PATH"
- unDoTrim:
- StrCpy $5 $1 1 -1 # copy last char
- StrCmp $5 ";" +2 # if last char != ;
- StrCpy $1 "$1;" # append ;
- Push $1
- Push "$0;"
- Call un.StrStr ; Find `$0;` in $1
- Pop $2 ; pos of our dir
- StrCmp $2 "" unRemoveFromPath_done
- ; else, it is in path
- # $0 - path to add
- # $1 - path var
- StrLen $3 "$0;"
- StrLen $4 $2
- StrCpy $5 $1 -$4 # $5 is now the part before the path to remove
- StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove
- StrCpy $3 $5$6
-
- StrCpy $5 $3 1 -1 # copy last char
- StrCmp $5 ";" 0 +2 # if last char == ;
- StrCpy $3 $3 -1 # remove last char
-
- StrCmp $ADD_TO_PATH_ALL_USERS "1" unWriteAllKey
- WriteRegExpandStr ${NT_current_env} "PATH" $3
- Goto unDoSend
- unWriteAllKey:
- WriteRegExpandStr ${NT_all_env} "PATH" $3
- unDoSend:
- SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
-
- unRemoveFromPath_done:
- Pop $6
- Pop $5
- Pop $4
- Pop $3
- Pop $2
- Pop $1
- Pop $0
-FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Uninstall sutff
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-###########################################
-# Utility Functions #
-###########################################
-
-;====================================================
-; IsNT - Returns 1 if the current system is NT, 0
-; otherwise.
-; Output: head of the stack
-;====================================================
-; IsNT
-; no input
-; output, top of the stack = 1 if NT or 0 if not
-;
-; Usage:
-; Call IsNT
-; Pop $R0
-; ($R0 at this point is 1 or 0)
-
-!macro IsNT un
-Function ${un}IsNT
- Push $0
- ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
- StrCmp $0 "" 0 IsNT_yes
- ; we are not NT.
- Pop $0
- Push 0
- Return
-
- IsNT_yes:
- ; NT!!!
- Pop $0
- Push 1
-FunctionEnd
-!macroend
-!insertmacro IsNT ""
-!insertmacro IsNT "un."
-
-; StrStr
-; input, top of stack = string to search for
-; top of stack-1 = string to search in
-; output, top of stack (replaces with the portion of the string remaining)
-; modifies no other variables.
-;
-; Usage:
-; Push "this is a long ass string"
-; Push "ass"
-; Call StrStr
-; Pop $R0
-; ($R0 at this point is "ass string")
-
-!macro StrStr un
-Function ${un}StrStr
-Exch $R1 ; st=haystack,old$R1, $R1=needle
- Exch ; st=old$R1,haystack
- Exch $R2 ; st=old$R1,old$R2, $R2=haystack
- Push $R3
- Push $R4
- Push $R5
- StrLen $R3 $R1
- StrCpy $R4 0
- ; $R1=needle
- ; $R2=haystack
- ; $R3=len(needle)
- ; $R4=cnt
- ; $R5=tmp
- loop:
- StrCpy $R5 $R2 $R3 $R4
- StrCmp $R5 $R1 done
- StrCmp $R5 "" done
- IntOp $R4 $R4 + 1
- Goto loop
-done:
- StrCpy $R1 $R2 "" $R4
- Pop $R5
- Pop $R4
- Pop $R3
- Pop $R2
- Exch $R1
-FunctionEnd
-!macroend
-!insertmacro StrStr ""
-!insertmacro StrStr "un."
-
-Function Trim ; Added by Pelaca
- Exch $R1
- Push $R2
-Loop:
- StrCpy $R2 "$R1" 1 -1
- StrCmp "$R2" " " RTrim
- StrCmp "$R2" "$\n" RTrim
- StrCmp "$R2" "$\r" RTrim
- StrCmp "$R2" ";" RTrim
- GoTo Done
-RTrim:
- StrCpy $R1 "$R1" -1
- Goto Loop
-Done:
- Pop $R2
- Exch $R1
-FunctionEnd
-
-Function ConditionalAddToRegisty
- Pop $0
- Pop $1
- StrCmp "$0" "" ConditionalAddToRegisty_EmptyString
- WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" \
- "$1" "$0"
- ;MessageBox MB_OK "Set Registry: '$1' to '$0'"
- DetailPrint "Set install registry entry: '$1' to '$0'"
- ConditionalAddToRegisty_EmptyString:
-FunctionEnd
-
-;--------------------------------
-
-!ifdef CPACK_USES_DOWNLOAD
-Function DownloadFile
- IfFileExists $INSTDIR\* +2
- CreateDirectory $INSTDIR
- Pop $0
-
- ; Skip if already downloaded
- IfFileExists $INSTDIR\$0 0 +2
- Return
-
- StrCpy $1 "@CPACK_DOWNLOAD_SITE@"
-
- try_again:
- NSISdl::download "$1/$0" "$INSTDIR\$0"
-
- Pop $1
- StrCmp $1 "success" success
- StrCmp $1 "Cancelled" cancel
- MessageBox MB_OK "Download failed: $1"
- cancel:
- Return
- success:
-FunctionEnd
-!endif
-
-;--------------------------------
-; Installation types
-@CPACK_NSIS_INSTALLATION_TYPES@
-
-;--------------------------------
-; Component sections
-@CPACK_NSIS_COMPONENT_SECTIONS@
-
-;--------------------------------
-; Define some macro setting for the gui
-@CPACK_NSIS_INSTALLER_MUI_ICON_CODE@
-@CPACK_NSIS_INSTALLER_ICON_CODE@
-@CPACK_NSIS_INSTALLER_MUI_WELCOMEFINISH_CODE@
-@CPACK_NSIS_INSTALLER_MUI_UNWELCOMEFINISH_CODE@
-@CPACK_NSIS_INSTALLER_MUI_COMPONENTS_DESC@
-@CPACK_NSIS_INSTALLER_MUI_FINISHPAGE_RUN_CODE@
-
-;--------------------------------
-;Pages
- !insertmacro MUI_PAGE_WELCOME
-
- !insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@"
- Page custom InstallOptionsPage
- !insertmacro MUI_PAGE_DIRECTORY
-
- ;Start Menu Folder Page Configuration
- !define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX"
- !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
- !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
- !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
-
- @CPACK_NSIS_PAGE_COMPONENTS@
-
- !insertmacro MUI_PAGE_INSTFILES
- !insertmacro MUI_PAGE_FINISH
-
- !insertmacro MUI_UNPAGE_CONFIRM
- !insertmacro MUI_UNPAGE_INSTFILES
-
-;--------------------------------
-;Languages
-
- !insertmacro MUI_LANGUAGE "English" ;first language is the default language
- !insertmacro MUI_LANGUAGE "Albanian"
- !insertmacro MUI_LANGUAGE "Arabic"
- !insertmacro MUI_LANGUAGE "Basque"
- !insertmacro MUI_LANGUAGE "Belarusian"
- !insertmacro MUI_LANGUAGE "Bosnian"
- !insertmacro MUI_LANGUAGE "Breton"
- !insertmacro MUI_LANGUAGE "Bulgarian"
- !insertmacro MUI_LANGUAGE "Croatian"
- !insertmacro MUI_LANGUAGE "Czech"
- !insertmacro MUI_LANGUAGE "Danish"
- !insertmacro MUI_LANGUAGE "Dutch"
- !insertmacro MUI_LANGUAGE "Estonian"
- !insertmacro MUI_LANGUAGE "Farsi"
- !insertmacro MUI_LANGUAGE "Finnish"
- !insertmacro MUI_LANGUAGE "French"
- !insertmacro MUI_LANGUAGE "German"
- !insertmacro MUI_LANGUAGE "Greek"
- !insertmacro MUI_LANGUAGE "Hebrew"
- !insertmacro MUI_LANGUAGE "Hungarian"
- !insertmacro MUI_LANGUAGE "Icelandic"
- !insertmacro MUI_LANGUAGE "Indonesian"
- !insertmacro MUI_LANGUAGE "Irish"
- !insertmacro MUI_LANGUAGE "Italian"
- !insertmacro MUI_LANGUAGE "Japanese"
- !insertmacro MUI_LANGUAGE "Korean"
- !insertmacro MUI_LANGUAGE "Kurdish"
- !insertmacro MUI_LANGUAGE "Latvian"
- !insertmacro MUI_LANGUAGE "Lithuanian"
- !insertmacro MUI_LANGUAGE "Luxembourgish"
- !insertmacro MUI_LANGUAGE "Macedonian"
- !insertmacro MUI_LANGUAGE "Malay"
- !insertmacro MUI_LANGUAGE "Mongolian"
- !insertmacro MUI_LANGUAGE "Norwegian"
- !insertmacro MUI_LANGUAGE "Polish"
- !insertmacro MUI_LANGUAGE "Portuguese"
- !insertmacro MUI_LANGUAGE "PortugueseBR"
- !insertmacro MUI_LANGUAGE "Romanian"
- !insertmacro MUI_LANGUAGE "Russian"
- !insertmacro MUI_LANGUAGE "Serbian"
- !insertmacro MUI_LANGUAGE "SerbianLatin"
- !insertmacro MUI_LANGUAGE "SimpChinese"
- !insertmacro MUI_LANGUAGE "Slovak"
- !insertmacro MUI_LANGUAGE "Slovenian"
- !insertmacro MUI_LANGUAGE "Spanish"
- !insertmacro MUI_LANGUAGE "Swedish"
- !insertmacro MUI_LANGUAGE "Thai"
- !insertmacro MUI_LANGUAGE "TradChinese"
- !insertmacro MUI_LANGUAGE "Turkish"
- !insertmacro MUI_LANGUAGE "Ukrainian"
- !insertmacro MUI_LANGUAGE "Welsh"
-
-
-;--------------------------------
-;Reserve Files
-
- ;These files should be inserted before other files in the data block
- ;Keep these lines before any File command
- ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)
-
- ReserveFile "NSIS.InstallOptions.ini"
- !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
-
-;--------------------------------
-;Installer Sections
-
-Section "-Core installation"
- ;Use the entire tree produced by the INSTALL target. Keep the
- ;list of directories here in sync with the RMDir commands below.
- SetOutPath "$INSTDIR"
- @CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS@
- @CPACK_NSIS_FULL_INSTALL@
-
- ;Store installation folder
- WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR
-
- ;Create uninstaller
- WriteUninstaller "$INSTDIR\Uninstall.exe"
- Push "DisplayName"
- Push "@CPACK_NSIS_DISPLAY_NAME@"
- Call ConditionalAddToRegisty
- Push "DisplayVersion"
- Push "@CPACK_PACKAGE_VERSION@"
- Call ConditionalAddToRegisty
- Push "Publisher"
- Push "@CPACK_PACKAGE_VENDOR@"
- Call ConditionalAddToRegisty
- Push "UninstallString"
- Push "$INSTDIR\Uninstall.exe"
- Call ConditionalAddToRegisty
- Push "NoRepair"
- Push "1"
- Call ConditionalAddToRegisty
-
- !ifdef CPACK_NSIS_ADD_REMOVE
- ;Create add/remove functionality
- Push "ModifyPath"
- Push "$INSTDIR\AddRemove.exe"
- Call ConditionalAddToRegisty
- !else
- Push "NoModify"
- Push "1"
- Call ConditionalAddToRegisty
- !endif
-
- ; Optional registration
- Push "DisplayIcon"
- Push "$INSTDIR\@CPACK_NSIS_INSTALLED_ICON_NAME@"
- Call ConditionalAddToRegisty
- Push "HelpLink"
- Push "@CPACK_NSIS_HELP_LINK@"
- Call ConditionalAddToRegisty
- Push "URLInfoAbout"
- Push "@CPACK_NSIS_URL_INFO_ABOUT@"
- Call ConditionalAddToRegisty
- Push "Contact"
- Push "@CPACK_NSIS_CONTACT@"
- Call ConditionalAddToRegisty
- !insertmacro MUI_INSTALLOPTIONS_READ $INSTALL_DESKTOP "NSIS.InstallOptions.ini" "Field 5" "State"
- !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
-
- ;Create shortcuts
- CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
-@CPACK_NSIS_CREATE_ICONS@
-@CPACK_NSIS_CREATE_ICONS_EXTRA@
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
-
- ;Read a value from an InstallOptions INI file
- !insertmacro MUI_INSTALLOPTIONS_READ $DO_NOT_ADD_TO_PATH "NSIS.InstallOptions.ini" "Field 2" "State"
- !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_ALL_USERS "NSIS.InstallOptions.ini" "Field 3" "State"
- !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_CURRENT_USER "NSIS.InstallOptions.ini" "Field 4" "State"
-
- ; Write special uninstall registry entries
- Push "StartMenu"
- Push "$STARTMENU_FOLDER"
- Call ConditionalAddToRegisty
- Push "DoNotAddToPath"
- Push "$DO_NOT_ADD_TO_PATH"
- Call ConditionalAddToRegisty
- Push "AddToPathAllUsers"
- Push "$ADD_TO_PATH_ALL_USERS"
- Call ConditionalAddToRegisty
- Push "AddToPathCurrentUser"
- Push "$ADD_TO_PATH_CURRENT_USER"
- Call ConditionalAddToRegisty
- Push "InstallToDesktop"
- Push "$INSTALL_DESKTOP"
- Call ConditionalAddToRegisty
-
- !insertmacro MUI_STARTMENU_WRITE_END
-
-@CPACK_NSIS_EXTRA_INSTALL_COMMANDS@
-
-SectionEnd
-
-Section "-Add to path"
- Push $INSTDIR\bin
- StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 doNotAddToPath
- StrCmp $DO_NOT_ADD_TO_PATH "1" doNotAddToPath 0
- Call AddToPath
- doNotAddToPath:
-SectionEnd
-
-;--------------------------------
-; Create custom pages
-Function InstallOptionsPage
- !insertmacro MUI_HEADER_TEXT "Install Options" "Choose options for installing @CPACK_NSIS_PACKAGE_NAME@"
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "NSIS.InstallOptions.ini"
-
-FunctionEnd
-
-;--------------------------------
-; determine admin versus local install
-Function un.onInit
-
- ClearErrors
- UserInfo::GetName
- IfErrors noLM
- Pop $0
- UserInfo::GetAccountType
- Pop $1
- StrCmp $1 "Admin" 0 +3
- SetShellVarContext all
- ;MessageBox MB_OK 'User "$0" is in the Admin group'
- Goto done
- StrCmp $1 "Power" 0 +3
- SetShellVarContext all
- ;MessageBox MB_OK 'User "$0" is in the Power Users group'
- Goto done
-
- noLM:
- ;Get installation folder from registry if available
-
- done:
-
-FunctionEnd
-
-;--- Add/Remove callback functions: ---
-!macro SectionList MacroName
- ;This macro used to perform operation on multiple sections.
- ;List all of your components in following manner here.
-@CPACK_NSIS_COMPONENT_SECTION_LIST@
-!macroend
-
-Section -FinishComponents
- ;Removes unselected components and writes component status to registry
- !insertmacro SectionList "FinishSection"
-
-!ifdef CPACK_NSIS_ADD_REMOVE
- ; Get the name of the installer executable
- System::Call 'kernel32::GetModuleFileNameA(i 0, t .R0, i 1024) i r1'
- StrCpy $R3 $R0
-
- ; Strip off the last 13 characters, to see if we have AddRemove.exe
- StrLen $R1 $R0
- IntOp $R1 $R0 - 13
- StrCpy $R2 $R0 13 $R1
- StrCmp $R2 "AddRemove.exe" addremove_installed
-
- ; We're not running AddRemove.exe, so install it
- CopyFiles $R3 $INSTDIR\AddRemove.exe
-
- addremove_installed:
-!endif
-SectionEnd
-;--- End of Add/Remove callback functions ---
-
-;--------------------------------
-; Component dependencies
-Function .onSelChange
- !insertmacro SectionList MaybeSelectionChanged
-FunctionEnd
-
-;--------------------------------
-;Uninstaller Section
-
-Section "Uninstall"
- ReadRegStr $START_MENU SHCTX \
- "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "StartMenu"
- ;MessageBox MB_OK "Start menu is in: $START_MENU"
- ReadRegStr $DO_NOT_ADD_TO_PATH SHCTX \
- "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "DoNotAddToPath"
- ReadRegStr $ADD_TO_PATH_ALL_USERS SHCTX \
- "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "AddToPathAllUsers"
- ReadRegStr $ADD_TO_PATH_CURRENT_USER SHCTX \
- "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "AddToPathCurrentUser"
- ;MessageBox MB_OK "Add to path: $DO_NOT_ADD_TO_PATH all users: $ADD_TO_PATH_ALL_USERS"
- ReadRegStr $INSTALL_DESKTOP SHCTX \
- "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "InstallToDesktop"
- ;MessageBox MB_OK "Install to desktop: $INSTALL_DESKTOP "
-
-@CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS@
-
- ;Remove files we installed.
- ;Keep the list of directories here in sync with the File commands above.
-@CPACK_NSIS_DELETE_FILES@
-@CPACK_NSIS_DELETE_DIRECTORIES@
-
-!ifdef CPACK_NSIS_ADD_REMOVE
- ;Remove the add/remove program
- Delete "$INSTDIR\AddRemove.exe"
-!endif
-
- ;Remove the uninstaller itself.
- Delete "$INSTDIR\Uninstall.exe"
- DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
-
- ;Remove the installation directory if it is empty.
- RMDir "$INSTDIR"
-
- ; Remove the registry entries.
- DeleteRegKey SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
-
- ; Removes all optional components
- !insertmacro SectionList "RemoveSection_CPack"
-
- !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
-
- Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
-@CPACK_NSIS_DELETE_ICONS@
-@CPACK_NSIS_DELETE_ICONS_EXTRA@
-
- ;Delete empty start menu parent directories
- StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
-
- startMenuDeleteLoop:
- ClearErrors
- RMDir $MUI_TEMP
- GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
-
- IfErrors startMenuDeleteLoopDone
-
- StrCmp "$MUI_TEMP" "$SMPROGRAMS" startMenuDeleteLoopDone startMenuDeleteLoop
- startMenuDeleteLoopDone:
-
- ; If the user changed the shortcut, then untinstall may not work. This should
- ; try to fix it.
- StrCpy $MUI_TEMP "$START_MENU"
- Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
-@CPACK_NSIS_DELETE_ICONS_EXTRA@
-
- ;Delete empty start menu parent directories
- StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
-
- secondStartMenuDeleteLoop:
- ClearErrors
- RMDir $MUI_TEMP
- GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
-
- IfErrors secondStartMenuDeleteLoopDone
-
- StrCmp "$MUI_TEMP" "$SMPROGRAMS" secondStartMenuDeleteLoopDone secondStartMenuDeleteLoop
- secondStartMenuDeleteLoopDone:
-
- DeleteRegKey /ifempty SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
-
- Push $INSTDIR\bin
- StrCmp $DO_NOT_ADD_TO_PATH_ "1" doNotRemoveFromPath 0
- Call un.RemoveFromPath
- doNotRemoveFromPath:
-SectionEnd
-
-;--------------------------------
-; determine admin versus local install
-; Is install for "AllUsers" or "JustMe"?
-; Default to "JustMe" - set to "AllUsers" if admin or on Win9x
-; This function is used for the very first "custom page" of the installer.
-; This custom page does not show up visibly, but it executes prior to the
-; first visible page and sets up $INSTDIR properly...
-; Choose different default installation folder based on SV_ALLUSERS...
-; "Program Files" for AllUsers, "My Documents" for JustMe...
-
-Function .onInit
- StrCmp "@CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL@" "ON" 0 inst
-
- ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "UninstallString"
- StrCmp $0 "" inst
-
- MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION \
- "@CPACK_NSIS_PACKAGE_NAME@ is already installed. $\n$\nDo you want to uninstall the old version before installing the new one?" \
- /SD IDYES IDYES uninst IDNO inst
- Abort
-
-;Run the uninstaller
-uninst:
- ClearErrors
- StrLen $2 "\Uninstall.exe"
- StrCpy $3 $0 -$2 # remove "\Uninstall.exe" from UninstallString to get path
- ExecWait '"$0" /S _?=$3' ;Do not copy the uninstaller to a temp file
-
- IfErrors uninst_failed inst
-uninst_failed:
- MessageBox MB_OK|MB_ICONSTOP "Uninstall failed."
- Abort
-
-
-inst:
- ; Reads components status for registry
- !insertmacro SectionList "InitSection"
-
- ; check to see if /D has been used to change
- ; the install directory by comparing it to the
- ; install directory that is expected to be the
- ; default
- StrCpy $IS_DEFAULT_INSTALLDIR 0
- StrCmp "$INSTDIR" "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@" 0 +2
- StrCpy $IS_DEFAULT_INSTALLDIR 1
-
- StrCpy $SV_ALLUSERS "JustMe"
- ; if default install dir then change the default
- ; if it is installed for JustMe
- StrCmp "$IS_DEFAULT_INSTALLDIR" "1" 0 +2
- StrCpy $INSTDIR "$DOCUMENTS\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
-
- ClearErrors
- UserInfo::GetName
- IfErrors noLM
- Pop $0
- UserInfo::GetAccountType
- Pop $1
- StrCmp $1 "Admin" 0 +4
- SetShellVarContext all
- ;MessageBox MB_OK 'User "$0" is in the Admin group'
- StrCpy $SV_ALLUSERS "AllUsers"
- Goto done
- StrCmp $1 "Power" 0 +4
- SetShellVarContext all
- ;MessageBox MB_OK 'User "$0" is in the Power Users group'
- StrCpy $SV_ALLUSERS "AllUsers"
- Goto done
-
- noLM:
- StrCpy $SV_ALLUSERS "AllUsers"
- ;Get installation folder from registry if available
-
- done:
- StrCmp $SV_ALLUSERS "AllUsers" 0 +3
- StrCmp "$IS_DEFAULT_INSTALLDIR" "1" 0 +2
- StrCpy $INSTDIR "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
-
- StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 noOptionsPage
- !insertmacro MUI_INSTALLOPTIONS_EXTRACT "NSIS.InstallOptions.ini"
-
- noOptionsPage:
-FunctionEnd
diff --git a/share/cmake-3.16/Modules/Internal/FeatureTesting.cmake b/share/cmake-3.16/Modules/Internal/FeatureTesting.cmake
deleted file mode 100644
index 75be473..0000000
--- a/share/cmake-3.16/Modules/Internal/FeatureTesting.cmake
+++ /dev/null
@@ -1,105 +0,0 @@
-
-macro(_record_compiler_features lang compile_flags feature_list)
- include("${CMAKE_ROOT}/Modules/Compiler/${CMAKE_${lang}_COMPILER_ID}-${lang}-FeatureTests.cmake" OPTIONAL)
-
- string(TOLOWER ${lang} lang_lc)
- file(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.bin")
- file(WRITE "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}" "
- const char features[] = {\"\\n\"\n")
-
- get_property(known_features GLOBAL PROPERTY CMAKE_${lang}_KNOWN_FEATURES)
-
- foreach(feature ${known_features})
- if (_cmake_feature_test_${feature})
- if (${_cmake_feature_test_${feature}} STREQUAL 1)
- set(_feature_condition "\"1\" ")
- else()
- set(_feature_condition "#if ${_cmake_feature_test_${feature}}\n\"1\"\n#else\n\"0\"\n#endif\n")
- endif()
- file(APPEND "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}" "\"${lang}_FEATURE:\"\n${_feature_condition}\"${feature}\\n\"\n")
- endif()
- endforeach()
- file(APPEND "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}"
- "\n};\n\nint main(int argc, char** argv) { (void)argv; return features[argc]; }\n")
-
- if(CMAKE_${lang}_LINK_WITH_STANDARD_COMPILE_OPTION)
- # This toolchain requires use of the language standard flag
- # when linking in order to use the matching standard library.
- set(compile_flags_for_link "${compile_flags}")
- else()
- set(compile_flags_for_link "")
- endif()
-
- try_compile(CMAKE_${lang}_FEATURE_TEST
- ${CMAKE_BINARY_DIR} "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}"
- COMPILE_DEFINITIONS "${compile_flags}"
- LINK_LIBRARIES "${compile_flags_for_link}"
- OUTPUT_VARIABLE _output
- COPY_FILE "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.bin"
- COPY_FILE_ERROR _copy_error
- )
- if(CMAKE_${lang}_FEATURE_TEST AND NOT _copy_error)
- set(_result 0)
- else()
- set(_result 255)
- endif()
- unset(CMAKE_${lang}_FEATURE_TEST CACHE)
- unset(compile_flags_for_link)
-
- if (_result EQUAL 0)
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "\n\nDetecting ${lang} [${compile_flags}] compiler features compiled with the following output:\n${_output}\n\n")
- if(EXISTS "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.bin")
- file(STRINGS "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.bin"
- features REGEX "${lang}_FEATURE:.*")
- foreach(info ${features})
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- " Feature record: ${info}\n")
- string(REPLACE "${lang}_FEATURE:" "" info ${info})
- string(SUBSTRING ${info} 0 1 has_feature)
- if(has_feature)
- string(REGEX REPLACE "^1" "" feature ${info})
- list(APPEND ${feature_list} ${feature})
- endif()
- endforeach()
- endif()
- else()
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Detecting ${lang} [${compile_flags}] compiler features failed to compile with the following output:\n${_output}\n${_copy_error}\n\n")
- endif()
-endmacro()
-
-macro(_record_compiler_features_c std)
- list(APPEND CMAKE_C${std}_COMPILE_FEATURES c_std_${std})
-
- get_property(lang_level_has_features GLOBAL PROPERTY CMAKE_C${std}_KNOWN_FEATURES)
- if(lang_level_has_features)
- _record_compiler_features(C "${CMAKE_C${std}_STANDARD_COMPILE_OPTION}" CMAKE_C${std}_COMPILE_FEATURES)
- endif()
- unset(lang_level_has_features)
-endmacro()
-
-macro(_record_compiler_features_cxx std)
- list(APPEND CMAKE_CXX${std}_COMPILE_FEATURES cxx_std_${std})
-
- get_property(lang_level_has_features GLOBAL PROPERTY CMAKE_CXX${std}_KNOWN_FEATURES)
- if(lang_level_has_features)
- _record_compiler_features(CXX "${CMAKE_CXX${std}_STANDARD_COMPILE_OPTION}" CMAKE_CXX${std}_COMPILE_FEATURES)
- endif()
- unset(lang_level_has_features)
-endmacro()
-
-macro(_has_compiler_features lang level compile_flags feature_list)
- # presume all known features are supported
- get_property(known_features GLOBAL PROPERTY CMAKE_${lang}${level}_KNOWN_FEATURES)
- list(APPEND ${feature_list} ${known_features})
-endmacro()
-
-macro(_has_compiler_features_c std)
- list(APPEND CMAKE_C${std}_COMPILE_FEATURES c_std_${std})
- _has_compiler_features(C ${std} "${CMAKE_C${std}_STANDARD_COMPILE_OPTION}" CMAKE_C${std}_COMPILE_FEATURES)
-endmacro()
-macro(_has_compiler_features_cxx std)
- list(APPEND CMAKE_CXX${std}_COMPILE_FEATURES cxx_std_${std})
- _has_compiler_features(CXX ${std} "${CMAKE_CXX${std}_STANDARD_COMPILE_OPTION}" CMAKE_CXX${std}_COMPILE_FEATURES)
-endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/AIX-GNU.cmake b/share/cmake-3.16/Modules/Platform/AIX-GNU.cmake
deleted file mode 100644
index 61d213a..0000000
--- a/share/cmake-3.16/Modules/Platform/AIX-GNU.cmake
+++ /dev/null
@@ -1,33 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This module is shared by multiple languages; use include blocker.
-if(__AIX_COMPILER_GNU)
- return()
-endif()
-set(__AIX_COMPILER_GNU 1)
-
-macro(__aix_compiler_gnu lang)
- set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-blibpath:")
- set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":")
- string(APPEND CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS " -Wl,-bnoipath")
- set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,-bexpall") # CMP0065 old behavior
- set(CMAKE_${lang}_USE_IMPLICIT_LINK_DIRECTORIES_IN_RUNTIME_PATH 1)
-
- set(CMAKE_${lang}_LINK_FLAGS "-Wl,-bnoipath")
- if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 7 OR CMAKE_SYSTEM_VERSION VERSION_LESS 7.1)
- unset(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY)
- endif()
-
- # Construct the export list ourselves to pass only the object files so
- # that we export only the symbols actually provided by the sources.
- set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
- "\"${CMAKE_ROOT}/Modules/Platform/AIX/ExportImportList\" -o <OBJECT_DIR>/objects.exp <OBJECTS>"
- "<CMAKE_${lang}_COMPILER> <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> -Wl,-bE:<OBJECT_DIR>/objects.exp <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>"
- )
-
- set(CMAKE_${lang}_LINK_EXECUTABLE_WITH_EXPORTS
- "\"${CMAKE_ROOT}/Modules/Platform/AIX/ExportImportList\" -o <TARGET_IMPLIB> -l . <OBJECTS>"
- "<CMAKE_${lang}_COMPILER> <FLAGS> <CMAKE_${lang}_LINK_FLAGS> -Wl,-bE:<TARGET_IMPLIB> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/AIX-XL.cmake b/share/cmake-3.16/Modules/Platform/AIX-XL.cmake
deleted file mode 100644
index 2a67c4f..0000000
--- a/share/cmake-3.16/Modules/Platform/AIX-XL.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This module is shared by multiple languages; use include blocker.
-if(__AIX_COMPILER_XL)
- return()
-endif()
-set(__AIX_COMPILER_XL 1)
-
-macro(__aix_compiler_xl lang)
- set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-blibpath:")
- set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":")
- string(APPEND CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS " -Wl,-bnoipath")
- set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,-bexpall") # CMP0065 old behavior
- set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS " ")
- set(CMAKE_SHARED_MODULE_${lang}_FLAGS " ")
-
- set(CMAKE_${lang}_LINK_FLAGS "-Wl,-bnoipath")
-
- set(_OBJECTS " <OBJECTS>")
- if(DEFINED CMAKE_XL_CreateExportList AND CMAKE_XL_CreateExportList STREQUAL "")
- # Prior to CMake 3.16, CMAKE_XL_CreateExportList held the path to the XL CreateExportList tool.
- # Users could set it to an empty value to skip automatic exports in favor of manual -bE: flags.
- # Preserve that behavior for compatibility (even though it was undocumented).
- set(_OBJECTS "")
- endif()
-
- # Construct the export list ourselves to pass only the object files so
- # that we export only the symbols actually provided by the sources.
- set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
- "\"${CMAKE_ROOT}/Modules/Platform/AIX/ExportImportList\" -o <OBJECT_DIR>/objects.exp${_OBJECTS}"
- "<CMAKE_${lang}_COMPILER> <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> -Wl,-bE:<OBJECT_DIR>/objects.exp <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>"
- )
-
- set(CMAKE_${lang}_LINK_EXECUTABLE_WITH_EXPORTS
- "\"${CMAKE_ROOT}/Modules/Platform/AIX/ExportImportList\" -o <TARGET_IMPLIB> -l . <OBJECTS>"
- "<CMAKE_${lang}_COMPILER> <FLAGS> <CMAKE_${lang}_LINK_FLAGS> -Wl,-bE:<TARGET_IMPLIB> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-
- unset(_OBJECTS)
-endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/AIX/ExportImportList b/share/cmake-3.16/Modules/Platform/AIX/ExportImportList
deleted file mode 100644
index 4f67ef5..0000000
--- a/share/cmake-3.16/Modules/Platform/AIX/ExportImportList
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-# This script is internal to CMake and meant only to be
-# invoked by CMake-generated build systems on AIX.
-
-usage='usage: ExportImportList -o <out-file> [-l <lib>] [--] <objects>...'
-
-die() {
- echo "$@" 1>&2; exit 1
-}
-
-# Process command-line arguments.
-out=''
-lib=''
-while test "$#" != 0; do
- case "$1" in
- -l) shift; lib="$1" ;;
- -o) shift; out="$1" ;;
- --) shift; break ;;
- -*) die "$usage" ;;
- *) break ;;
- esac
- shift
-done
-test -n "$out" || die "$usage"
-
-# Collect symbols exported from all object files.
-out_tmp="$out.tmp$$"
-trap 'rm -f "$out_tmp"' EXIT INT TERM
-for f in "$@"; do
- dump -tov -X 32_64 "$f" |
- awk '
- BEGIN {
- V["EXPORTED"]=" export"
- V["PROTECTED"]=" protected"
- }
- /^\[[0-9]+\]\tm +[^ ]+ +\.(text|data|bss) +[^ ]+ +(extern|weak) +(EXPORTED|PROTECTED| ) / {
- if (!match($NF,/^(\.|__sinit|__sterm|__[0-9]+__)/)) {
- print $NF V[$(NF-1)]
- }
- }
- '
-done > "$out_tmp"
-
-# Generate the export/import file.
-{
- if test -n "$lib"; then
- echo "#! $lib"
- fi
- sort -u "$out_tmp"
-} > "$out"
diff --git a/share/cmake-3.16/Modules/Platform/Android-Clang.cmake b/share/cmake-3.16/Modules/Platform/Android-Clang.cmake
deleted file mode 100644
index 847178f..0000000
--- a/share/cmake-3.16/Modules/Platform/Android-Clang.cmake
+++ /dev/null
@@ -1,48 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-# This module is shared by multiple languages; use include blocker.
-if(__ANDROID_COMPILER_CLANG)
- return()
-endif()
-set(__ANDROID_COMPILER_CLANG 1)
-
-# Support for NVIDIA Nsight Tegra Visual Studio Edition was previously
-# implemented in the CMake VS IDE generators. Avoid interfering with
-# that functionality for now. Later we may try to integrate this.
-if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
- macro(__android_compiler_clang lang)
- endmacro()
- return()
-endif()
-
-# Commonly used Android toolchain files that pre-date CMake upstream support
-# set CMAKE_SYSTEM_VERSION to 1. Avoid interfering with them.
-if(CMAKE_SYSTEM_VERSION EQUAL 1)
- macro(__android_compiler_clang lang)
- endmacro()
- return()
-endif()
-
-include(Platform/Android-Common)
-
-# The NDK toolchain configuration files at:
-#
-# <ndk>/[build/core/]toolchains/*-clang*/setup.mk
-#
-# contain logic to set LLVM_TRIPLE for Clang-based toolchains for each target.
-# We need to produce the same target here to produce compatible binaries.
-include(Platform/Android/abi-${CMAKE_ANDROID_ARCH_ABI}-Clang)
-
-macro(__android_compiler_clang lang)
- if(NOT "x${lang}" STREQUAL "xASM")
- __android_compiler_common(${lang})
- endif()
- if(NOT CMAKE_${lang}_COMPILER_TARGET)
- set(CMAKE_${lang}_COMPILER_TARGET "${_ANDROID_ABI_CLANG_TARGET}")
- if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
- string(APPEND CMAKE_${lang}_COMPILER_TARGET "${CMAKE_SYSTEM_VERSION}")
- endif()
- list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "--target=${CMAKE_${lang}_COMPILER_TARGET}")
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/Android-Determine.cmake b/share/cmake-3.16/Modules/Platform/Android-Determine.cmake
deleted file mode 100644
index e7c1b48..0000000
--- a/share/cmake-3.16/Modules/Platform/Android-Determine.cmake
+++ /dev/null
@@ -1,414 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-# When CMAKE_SYSTEM_NAME is "Android", CMakeDetermineSystem loads this module.
-# This module detects platform-wide information about the Android target
-# in order to store it in "CMakeSystem.cmake".
-
-# Support for NVIDIA Nsight Tegra Visual Studio Edition was previously
-# implemented in the CMake VS IDE generators. Avoid interfering with
-# that functionality for now. Later we may try to integrate this.
-if(CMAKE_GENERATOR MATCHES "Visual Studio")
- return()
-endif()
-
-# Commonly used Android toolchain files that pre-date CMake upstream support
-# set CMAKE_SYSTEM_VERSION to 1. Avoid interfering with them.
-if(CMAKE_SYSTEM_VERSION EQUAL 1)
- return()
-endif()
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0057 NEW) # if IN_LIST
-
-# If the user provided CMAKE_SYSROOT for us, extract information from it.
-set(_ANDROID_SYSROOT_NDK "")
-set(_ANDROID_SYSROOT_API "")
-set(_ANDROID_SYSROOT_ARCH "")
-set(_ANDROID_SYSROOT_STANDALONE_TOOLCHAIN "")
-if(CMAKE_SYSROOT)
- if(NOT IS_DIRECTORY "${CMAKE_SYSROOT}")
- message(FATAL_ERROR
- "Android: The specified CMAKE_SYSROOT:\n"
- " ${CMAKE_SYSROOT}\n"
- "is not an existing directory."
- )
- endif()
- if(CMAKE_SYSROOT MATCHES "^([^\\\n]*)/platforms/android-([0-9]+)/arch-([a-z0-9_]+)$")
- set(_ANDROID_SYSROOT_NDK "${CMAKE_MATCH_1}")
- set(_ANDROID_SYSROOT_API "${CMAKE_MATCH_2}")
- set(_ANDROID_SYSROOT_ARCH "${CMAKE_MATCH_3}")
- elseif(CMAKE_SYSROOT MATCHES "^([^\\\n]*)/sysroot$")
- set(_ANDROID_SYSROOT_STANDALONE_TOOLCHAIN "${CMAKE_MATCH_1}")
- else()
- message(FATAL_ERROR
- "The value of CMAKE_SYSROOT:\n"
- " ${CMAKE_SYSROOT}\n"
- "does not match any of the forms:\n"
- " <ndk>/platforms/android-<api>/arch-<arch>\n"
- " <standalone-toolchain>/sysroot\n"
- "where:\n"
- " <ndk> = Android NDK directory (with forward slashes)\n"
- " <api> = Android API version number (decimal digits)\n"
- " <arch> = Android ARCH name (lower case)\n"
- " <standalone-toolchain> = Path to standalone toolchain prefix\n"
- )
- endif()
-endif()
-
-# Find the Android NDK.
-if(CMAKE_ANDROID_NDK)
- if(NOT IS_DIRECTORY "${CMAKE_ANDROID_NDK}")
- message(FATAL_ERROR
- "Android: The NDK root directory specified by CMAKE_ANDROID_NDK:\n"
- " ${CMAKE_ANDROID_NDK}\n"
- "does not exist."
- )
- endif()
-elseif(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
- if(NOT IS_DIRECTORY "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}")
- message(FATAL_ERROR
- "Android: The standalone toolchain directory specified by CMAKE_ANDROID_STANDALONE_TOOLCHAIN:\n"
- " ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}\n"
- "does not exist."
- )
- endif()
- if(NOT EXISTS "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot/usr/include/android/api-level.h")
- message(FATAL_ERROR
- "Android: The standalone toolchain directory specified by CMAKE_ANDROID_STANDALONE_TOOLCHAIN:\n"
- " ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}\n"
- "does not contain a sysroot with a known layout. The file:\n"
- " ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot/usr/include/android/api-level.h\n"
- "does not exist."
- )
- endif()
-else()
- if(IS_DIRECTORY "${_ANDROID_SYSROOT_NDK}")
- set(CMAKE_ANDROID_NDK "${_ANDROID_SYSROOT_NDK}")
- elseif(IS_DIRECTORY "${_ANDROID_SYSROOT_STANDALONE_TOOLCHAIN}")
- set(CMAKE_ANDROID_STANDALONE_TOOLCHAIN "${_ANDROID_SYSROOT_STANDALONE_TOOLCHAIN}")
- elseif(IS_DIRECTORY "${ANDROID_NDK}")
- file(TO_CMAKE_PATH "${ANDROID_NDK}" CMAKE_ANDROID_NDK)
- elseif(IS_DIRECTORY "${ANDROID_STANDALONE_TOOLCHAIN}")
- file(TO_CMAKE_PATH "${ANDROID_STANDALONE_TOOLCHAIN}" CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
- elseif(IS_DIRECTORY "$ENV{ANDROID_NDK_ROOT}")
- file(TO_CMAKE_PATH "$ENV{ANDROID_NDK_ROOT}" CMAKE_ANDROID_NDK)
- elseif(IS_DIRECTORY "$ENV{ANDROID_NDK}")
- file(TO_CMAKE_PATH "$ENV{ANDROID_NDK}" CMAKE_ANDROID_NDK)
- elseif(IS_DIRECTORY "$ENV{ANDROID_STANDALONE_TOOLCHAIN}")
- file(TO_CMAKE_PATH "$ENV{ANDROID_STANDALONE_TOOLCHAIN}" CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
- endif()
- # TODO: Search harder for the NDK or standalone toolchain.
-endif()
-
-set(_ANDROID_STANDALONE_TOOLCHAIN_API "")
-if(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
- # Try to read the API level from the toolchain launcher.
- if(EXISTS "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/clang")
- set(_ANDROID_API_LEVEL_CLANG_REGEX "__ANDROID_API__=([0-9]+)")
- file(STRINGS "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/clang" _ANDROID_STANDALONE_TOOLCHAIN_BIN_CLANG
- REGEX "${_ANDROID_API_LEVEL_CLANG_REGEX}" LIMIT_COUNT 1 LIMIT_INPUT 65536)
- if(_ANDROID_STANDALONE_TOOLCHAIN_BIN_CLANG MATCHES "${_ANDROID_API_LEVEL_CLANG_REGEX}")
- set(_ANDROID_STANDALONE_TOOLCHAIN_API "${CMAKE_MATCH_1}")
- endif()
- unset(_ANDROID_STANDALONE_TOOLCHAIN_BIN_CLANG)
- unset(_ANDROID_API_LEVEL_CLANG_REGEX)
- endif()
- if(NOT _ANDROID_STANDALONE_TOOLCHAIN_API)
- # The compiler launcher does not know __ANDROID_API__. Assume this
- # is not unified headers and look for it in the api-level.h header.
- set(_ANDROID_API_LEVEL_H_REGEX "^[\t ]*#[\t ]*define[\t ]+__ANDROID_API__[\t ]+([0-9]+)")
- file(STRINGS "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot/usr/include/android/api-level.h"
- _ANDROID_API_LEVEL_H_CONTENT REGEX "${_ANDROID_API_LEVEL_H_REGEX}")
- if(_ANDROID_API_LEVEL_H_CONTENT MATCHES "${_ANDROID_API_LEVEL_H_REGEX}")
- set(_ANDROID_STANDALONE_TOOLCHAIN_API "${CMAKE_MATCH_1}")
- endif()
- endif()
- if(NOT _ANDROID_STANDALONE_TOOLCHAIN_API)
- message(WARNING
- "Android: Did not detect API level from\n"
- " ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/clang\n"
- "or\n"
- " ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot/usr/include/android/api-level.h\n"
- )
- endif()
-endif()
-
-if(NOT CMAKE_ANDROID_NDK AND NOT CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
- message(FATAL_ERROR "Android: Neither the NDK or a standalone toolchain was found.")
-endif()
-
-# Select an API.
-if(CMAKE_SYSTEM_VERSION)
- set(_ANDROID_API_VAR CMAKE_SYSTEM_VERSION)
-elseif(CMAKE_ANDROID_API)
- set(CMAKE_SYSTEM_VERSION "${CMAKE_ANDROID_API}")
- set(_ANDROID_API_VAR CMAKE_ANDROID_API)
-elseif(_ANDROID_SYSROOT_API)
- set(CMAKE_SYSTEM_VERSION "${_ANDROID_SYSROOT_API}")
- set(_ANDROID_API_VAR CMAKE_SYSROOT)
-elseif(_ANDROID_STANDALONE_TOOLCHAIN_API)
- set(CMAKE_SYSTEM_VERSION "${_ANDROID_STANDALONE_TOOLCHAIN_API}")
-endif()
-if(CMAKE_SYSTEM_VERSION)
- if(CMAKE_ANDROID_API AND NOT "x${CMAKE_ANDROID_API}" STREQUAL "x${CMAKE_SYSTEM_VERSION}")
- message(FATAL_ERROR
- "Android: The API specified by CMAKE_ANDROID_API='${CMAKE_ANDROID_API}' is not consistent with CMAKE_SYSTEM_VERSION='${CMAKE_SYSTEM_VERSION}'."
- )
- endif()
- if(_ANDROID_SYSROOT_API)
- foreach(v CMAKE_ANDROID_API CMAKE_SYSTEM_VERSION)
- if(${v} AND NOT "x${_ANDROID_SYSROOT_API}" STREQUAL "x${${v}}")
- message(FATAL_ERROR
- "Android: The API specified by ${v}='${${v}}' is not consistent with CMAKE_SYSROOT:\n"
- " ${CMAKE_SYSROOT}"
- )
- endif()
- endforeach()
- endif()
- if(CMAKE_ANDROID_NDK AND NOT IS_DIRECTORY "${CMAKE_ANDROID_NDK}/platforms/android-${CMAKE_SYSTEM_VERSION}")
- message(FATAL_ERROR
- "Android: The API specified by ${_ANDROID_API_VAR}='${${_ANDROID_API_VAR}}' does not exist in the NDK. "
- "The directory:\n"
- " ${CMAKE_ANDROID_NDK}/platforms/android-${CMAKE_SYSTEM_VERSION}\n"
- "does not exist."
- )
- endif()
-elseif(CMAKE_ANDROID_NDK)
- file(GLOB _ANDROID_APIS_1 RELATIVE "${CMAKE_ANDROID_NDK}/platforms" "${CMAKE_ANDROID_NDK}/platforms/android-[0-9]")
- file(GLOB _ANDROID_APIS_2 RELATIVE "${CMAKE_ANDROID_NDK}/platforms" "${CMAKE_ANDROID_NDK}/platforms/android-[0-9][0-9]")
- list(SORT _ANDROID_APIS_1)
- list(SORT _ANDROID_APIS_2)
- set(_ANDROID_APIS ${_ANDROID_APIS_1} ${_ANDROID_APIS_2})
- unset(_ANDROID_APIS_1)
- unset(_ANDROID_APIS_2)
- if(_ANDROID_APIS STREQUAL "")
- message(FATAL_ERROR
- "Android: No APIs found in the NDK. No\n"
- " ${CMAKE_ANDROID_NDK}/platforms/android-*\n"
- "directories exist."
- )
- endif()
- string(REPLACE "android-" "" _ANDROID_APIS "${_ANDROID_APIS}")
- list(REVERSE _ANDROID_APIS)
- list(GET _ANDROID_APIS 0 CMAKE_SYSTEM_VERSION)
- unset(_ANDROID_APIS)
-endif()
-if(NOT CMAKE_SYSTEM_VERSION MATCHES "^[0-9]+$")
- message(FATAL_ERROR "Android: The API specified by CMAKE_SYSTEM_VERSION='${CMAKE_SYSTEM_VERSION}' is not an integer.")
-endif()
-
-if(CMAKE_ANDROID_NDK)
- # Identify the host platform.
- if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
- if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")
- set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "darwin-x86_64")
- else()
- set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "darwin-x86")
- endif()
- elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
- if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")
- set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "linux-x86_64")
- else()
- set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "linux-x86")
- endif()
- elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
- if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "AMD64")
- set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "windows-x86_64")
- else()
- set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "windows")
- endif()
- else()
- message(FATAL_ERROR "Android: Builds hosted on '${CMAKE_HOST_SYSTEM_NAME}' not supported.")
- endif()
-
- # Look for a unified toolchain/sysroot provided with the NDK.
- set(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED "${CMAKE_ANDROID_NDK}/toolchains/llvm/prebuilt/${CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG}")
- if(NOT IS_DIRECTORY "${CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED}/sysroot")
- set(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED "")
- endif()
-else()
- set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "")
- set(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED "")
-endif()
-
-# https://developer.android.com/ndk/guides/abis.html
-
-set(_ANDROID_ABI_arm64-v8a_PROC "aarch64")
-set(_ANDROID_ABI_arm64-v8a_ARCH "arm64")
-set(_ANDROID_ABI_arm64-v8a_TRIPLE "aarch64-linux-android")
-set(_ANDROID_ABI_armeabi-v7a_PROC "armv7-a")
-set(_ANDROID_ABI_armeabi-v7a_ARCH "arm")
-set(_ANDROID_ABI_armeabi-v7a_TRIPLE "arm-linux-androideabi")
-set(_ANDROID_ABI_armeabi-v6_PROC "armv6")
-set(_ANDROID_ABI_armeabi-v6_ARCH "arm")
-set(_ANDROID_ABI_armeabi-v6_TRIPLE "arm-linux-androideabi")
-set(_ANDROID_ABI_armeabi_PROC "armv5te")
-set(_ANDROID_ABI_armeabi_ARCH "arm")
-set(_ANDROID_ABI_armeabi_TRIPLE "arm-linux-androideabi")
-set(_ANDROID_ABI_mips_PROC "mips")
-set(_ANDROID_ABI_mips_ARCH "mips")
-set(_ANDROID_ABI_mips_TRIPLE "mipsel-linux-android")
-set(_ANDROID_ABI_mips64_PROC "mips64")
-set(_ANDROID_ABI_mips64_ARCH "mips64")
-set(_ANDROID_ABI_mips64_TRIPLE "mips64el-linux-android")
-set(_ANDROID_ABI_x86_PROC "i686")
-set(_ANDROID_ABI_x86_ARCH "x86")
-set(_ANDROID_ABI_x86_TRIPLE "i686-linux-android")
-set(_ANDROID_ABI_x86_64_PROC "x86_64")
-set(_ANDROID_ABI_x86_64_ARCH "x86_64")
-set(_ANDROID_ABI_x86_64_TRIPLE "x86_64-linux-android")
-
-set(_ANDROID_PROC_aarch64_ARCH_ABI "arm64-v8a")
-set(_ANDROID_PROC_armv7-a_ARCH_ABI "armeabi-v7a")
-set(_ANDROID_PROC_armv6_ARCH_ABI "armeabi-v6")
-set(_ANDROID_PROC_armv5te_ARCH_ABI "armeabi")
-set(_ANDROID_PROC_i686_ARCH_ABI "x86")
-set(_ANDROID_PROC_mips_ARCH_ABI "mips")
-set(_ANDROID_PROC_mips64_ARCH_ABI "mips64")
-set(_ANDROID_PROC_x86_64_ARCH_ABI "x86_64")
-
-set(_ANDROID_ARCH_arm64_ABI "arm64-v8a")
-set(_ANDROID_ARCH_arm_ABI "armeabi")
-set(_ANDROID_ARCH_mips_ABI "mips")
-set(_ANDROID_ARCH_mips64_ABI "mips64")
-set(_ANDROID_ARCH_x86_ABI "x86")
-set(_ANDROID_ARCH_x86_64_ABI "x86_64")
-
-# Validate inputs.
-if(CMAKE_ANDROID_ARCH_ABI AND NOT DEFINED "_ANDROID_ABI_${CMAKE_ANDROID_ARCH_ABI}_PROC")
- message(FATAL_ERROR "Android: Unknown ABI CMAKE_ANDROID_ARCH_ABI='${CMAKE_ANDROID_ARCH_ABI}'.")
-endif()
-if(CMAKE_SYSTEM_PROCESSOR AND NOT DEFINED "_ANDROID_PROC_${CMAKE_SYSTEM_PROCESSOR}_ARCH_ABI")
- message(FATAL_ERROR "Android: Unknown processor CMAKE_SYSTEM_PROCESSOR='${CMAKE_SYSTEM_PROCESSOR}'.")
-endif()
-if(_ANDROID_SYSROOT_ARCH AND NOT DEFINED "_ANDROID_ARCH_${_ANDROID_SYSROOT_ARCH}_ABI")
- message(FATAL_ERROR
- "Android: Unknown architecture '${_ANDROID_SYSROOT_ARCH}' specified in CMAKE_SYSROOT:\n"
- " ${CMAKE_SYSROOT}"
- )
-endif()
-
-# Select an ABI.
-if(NOT CMAKE_ANDROID_ARCH_ABI)
- if(CMAKE_SYSTEM_PROCESSOR)
- set(CMAKE_ANDROID_ARCH_ABI "${_ANDROID_PROC_${CMAKE_SYSTEM_PROCESSOR}_ARCH_ABI}")
- elseif(_ANDROID_SYSROOT_ARCH)
- set(CMAKE_ANDROID_ARCH_ABI "${_ANDROID_ARCH_${_ANDROID_SYSROOT_ARCH}_ABI}")
- else()
- # https://developer.android.com/ndk/guides/application_mk.html
- # Default is the oldest ARM ABI.
-
- # Lookup the available ABIs among all toolchains.
- set(_ANDROID_ABIS "")
- file(GLOB _ANDROID_CONFIG_MKS
- "${CMAKE_ANDROID_NDK}/build/core/toolchains/*/config.mk"
- "${CMAKE_ANDROID_NDK}/toolchains/*/config.mk"
- )
- foreach(config_mk IN LISTS _ANDROID_CONFIG_MKS)
- file(STRINGS "${config_mk}" _ANDROID_TOOL_ABIS REGEX "^TOOLCHAIN_ABIS :=")
- string(REPLACE "TOOLCHAIN_ABIS :=" "" _ANDROID_TOOL_ABIS "${_ANDROID_TOOL_ABIS}")
- separate_arguments(_ANDROID_TOOL_ABIS UNIX_COMMAND "${_ANDROID_TOOL_ABIS}")
- list(APPEND _ANDROID_ABIS ${_ANDROID_TOOL_ABIS})
- unset(_ANDROID_TOOL_ABIS)
- endforeach()
- unset(_ANDROID_CONFIG_MKS)
-
- # Choose the oldest among the available arm ABIs.
- if(_ANDROID_ABIS)
- list(REMOVE_DUPLICATES _ANDROID_ABIS)
- cmake_policy(PUSH)
- cmake_policy(SET CMP0057 NEW)
- foreach(abi armeabi armeabi-v7a arm64-v8a)
- if("${abi}" IN_LIST _ANDROID_ABIS)
- set(CMAKE_ANDROID_ARCH_ABI "${abi}")
- break()
- endif()
- endforeach()
- cmake_policy(POP)
- endif()
- unset(_ANDROID_ABIS)
-
- if(NOT CMAKE_ANDROID_ARCH_ABI)
- set(CMAKE_ANDROID_ARCH_ABI "armeabi")
- endif()
- endif()
-endif()
-set(CMAKE_ANDROID_ARCH "${_ANDROID_ABI_${CMAKE_ANDROID_ARCH_ABI}_ARCH}")
-if(_ANDROID_SYSROOT_ARCH AND NOT "x${_ANDROID_SYSROOT_ARCH}" STREQUAL "x${CMAKE_ANDROID_ARCH}")
- message(FATAL_ERROR
- "Android: Architecture '${_ANDROID_SYSROOT_ARCH}' specified in CMAKE_SYSROOT:\n"
- " ${CMAKE_SYSROOT}\n"
- "does not match architecture '${CMAKE_ANDROID_ARCH}' for the ABI '${CMAKE_ANDROID_ARCH_ABI}'."
- )
-endif()
-set(CMAKE_ANDROID_ARCH_TRIPLE "${_ANDROID_ABI_${CMAKE_ANDROID_ARCH_ABI}_TRIPLE}")
-
-# Select a processor.
-if(NOT CMAKE_SYSTEM_PROCESSOR)
- set(CMAKE_SYSTEM_PROCESSOR "${_ANDROID_ABI_${CMAKE_ANDROID_ARCH_ABI}_PROC}")
-endif()
-
-# If the user specified both an ABI and a processor then they might not match.
-if(NOT _ANDROID_ABI_${CMAKE_ANDROID_ARCH_ABI}_PROC STREQUAL CMAKE_SYSTEM_PROCESSOR)
- message(FATAL_ERROR "Android: The specified CMAKE_ANDROID_ARCH_ABI='${CMAKE_ANDROID_ARCH_ABI}' and CMAKE_SYSTEM_PROCESSOR='${CMAKE_SYSTEM_PROCESSOR}' is not a valid combination.")
-endif()
-
-if(CMAKE_ANDROID_NDK AND NOT DEFINED CMAKE_ANDROID_NDK_DEPRECATED_HEADERS)
- if(IS_DIRECTORY "${CMAKE_ANDROID_NDK}/sysroot/usr/include/${CMAKE_ANDROID_ARCH_TRIPLE}")
- # Unified headers exist so we use them by default.
- set(CMAKE_ANDROID_NDK_DEPRECATED_HEADERS 0)
- else()
- # Unified headers do not exist so use the deprecated headers.
- set(CMAKE_ANDROID_NDK_DEPRECATED_HEADERS 1)
- endif()
-endif()
-
-# Save the Android-specific information in CMakeSystem.cmake.
-set(CMAKE_SYSTEM_CUSTOM_CODE "
-set(CMAKE_ANDROID_NDK \"${CMAKE_ANDROID_NDK}\")
-set(CMAKE_ANDROID_STANDALONE_TOOLCHAIN \"${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}\")
-set(CMAKE_ANDROID_ARCH \"${CMAKE_ANDROID_ARCH}\")
-set(CMAKE_ANDROID_ARCH_ABI \"${CMAKE_ANDROID_ARCH_ABI}\")
-")
-
-if(CMAKE_ANDROID_NDK)
- string(APPEND CMAKE_SYSTEM_CUSTOM_CODE
- "set(CMAKE_ANDROID_ARCH_TRIPLE \"${CMAKE_ANDROID_ARCH_TRIPLE}\")\n"
- "set(CMAKE_ANDROID_NDK_DEPRECATED_HEADERS \"${CMAKE_ANDROID_NDK_DEPRECATED_HEADERS}\")\n"
- "set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG \"${CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG}\")\n"
- "set(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED \"${CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED}\")\n"
- )
-endif()
-
-# Select an ARM variant.
-if(CMAKE_ANDROID_ARCH_ABI MATCHES "^armeabi")
- if(CMAKE_ANDROID_ARM_MODE)
- set(CMAKE_ANDROID_ARM_MODE 1)
- else()
- set(CMAKE_ANDROID_ARM_MODE 0)
- endif()
- string(APPEND CMAKE_SYSTEM_CUSTOM_CODE
- "set(CMAKE_ANDROID_ARM_MODE \"${CMAKE_ANDROID_ARM_MODE}\")\n"
- )
-elseif(DEFINED CMAKE_ANDROID_ARM_MODE)
- message(FATAL_ERROR "Android: CMAKE_ANDROID_ARM_MODE is set but is valid only for 'armeabi' architectures.")
-endif()
-
-if(CMAKE_ANDROID_ARCH_ABI STREQUAL "armeabi-v7a")
- if(CMAKE_ANDROID_ARM_NEON)
- set(CMAKE_ANDROID_ARM_NEON 1)
- else()
- set(CMAKE_ANDROID_ARM_NEON 0)
- endif()
- string(APPEND CMAKE_SYSTEM_CUSTOM_CODE
- "set(CMAKE_ANDROID_ARM_NEON \"${CMAKE_ANDROID_ARM_NEON}\")\n"
- )
-elseif(DEFINED CMAKE_ANDROID_ARM_NEON)
- message(FATAL_ERROR "Android: CMAKE_ANDROID_ARM_NEON is set but is valid only for 'armeabi-v7a' architecture.")
-endif()
-
-# Report the chosen architecture.
-message(STATUS "Android: Targeting API '${CMAKE_SYSTEM_VERSION}' with architecture '${CMAKE_ANDROID_ARCH}', ABI '${CMAKE_ANDROID_ARCH_ABI}', and processor '${CMAKE_SYSTEM_PROCESSOR}'")
-
-cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/Platform/Android-Initialize.cmake b/share/cmake-3.16/Modules/Platform/Android-Initialize.cmake
deleted file mode 100644
index a5d2820..0000000
--- a/share/cmake-3.16/Modules/Platform/Android-Initialize.cmake
+++ /dev/null
@@ -1,49 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-# When CMAKE_SYSTEM_NAME is "Android", CMakeSystemSpecificInitialize loads this
-# module.
-
-# Support for NVIDIA Nsight Tegra Visual Studio Edition was previously
-# implemented in the CMake VS IDE generators. Avoid interfering with
-# that functionality for now. Later we may try to integrate this.
-if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
- return()
-endif()
-
-# Commonly used Android toolchain files that pre-date CMake upstream support
-# set CMAKE_SYSTEM_VERSION to 1. Avoid interfering with them.
-if(CMAKE_SYSTEM_VERSION EQUAL 1)
- return()
-endif()
-
-set(CMAKE_BUILD_TYPE_INIT Debug)
-
-# Skip sysroot selection if the NDK has a unified toolchain.
-if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
- return()
-endif()
-
-if(NOT CMAKE_SYSROOT)
- if(CMAKE_ANDROID_NDK)
- set(CMAKE_SYSROOT "${CMAKE_ANDROID_NDK}/platforms/android-${CMAKE_SYSTEM_VERSION}/arch-${CMAKE_ANDROID_ARCH}")
- if(NOT CMAKE_ANDROID_NDK_DEPRECATED_HEADERS)
- set(CMAKE_SYSROOT_COMPILE "${CMAKE_ANDROID_NDK}/sysroot")
- endif()
- elseif(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
- set(CMAKE_SYSROOT "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot")
- endif()
-endif()
-
-if(CMAKE_SYSROOT)
- if(NOT IS_DIRECTORY "${CMAKE_SYSROOT}")
- message(FATAL_ERROR
- "Android: The system root directory needed for the selected Android version and architecture does not exist:\n"
- " ${CMAKE_SYSROOT}\n"
- )
- endif()
-else()
- message(FATAL_ERROR
- "Android: No CMAKE_SYSROOT was selected."
- )
-endif()
diff --git a/share/cmake-3.16/Modules/Platform/Android.cmake b/share/cmake-3.16/Modules/Platform/Android.cmake
deleted file mode 100644
index f08f841..0000000
--- a/share/cmake-3.16/Modules/Platform/Android.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-include(Platform/Linux)
-
-set(ANDROID 1)
-
-# Conventionally Android does not use versioned soname
-# But in modern versions it is acceptable
-if(NOT DEFINED CMAKE_PLATFORM_NO_VERSIONED_SONAME)
- set(CMAKE_PLATFORM_NO_VERSIONED_SONAME 1)
-endif()
-
-# Android reportedly ignores RPATH, and we cannot predict the install
-# location anyway.
-set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "")
-
-# Nsight Tegra Visual Studio Edition takes care of
-# prefixing library names with '-l'.
-if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
- set(CMAKE_LINK_LIBRARY_FLAG "")
-endif()
diff --git a/share/cmake-3.16/Modules/Platform/Android/Determine-Compiler.cmake b/share/cmake-3.16/Modules/Platform/Android/Determine-Compiler.cmake
deleted file mode 100644
index 5c6b97b..0000000
--- a/share/cmake-3.16/Modules/Platform/Android/Determine-Compiler.cmake
+++ /dev/null
@@ -1,75 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-# This module is shared by multiple languages; use include blocker.
-if(__ANDROID_DETERMINE_COMPILER)
- return()
-endif()
-set(__ANDROID_DETERMINE_COMPILER 1)
-
-# Support for NVIDIA Nsight Tegra Visual Studio Edition was previously
-# implemented in the CMake VS IDE generators. Avoid interfering with
-# that functionality for now. Later we may try to integrate this.
-if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
- macro(__android_determine_compiler lang)
- endmacro()
- return()
-endif()
-
-# Commonly used Android toolchain files that pre-date CMake upstream support
-# set CMAKE_SYSTEM_VERSION to 1. Avoid interfering with them.
-if(CMAKE_SYSTEM_VERSION EQUAL 1)
- macro(__android_determine_compiler lang)
- endmacro()
- return()
-endif()
-
-# Identify the host platform.
-if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
- set(_ANDROID_HOST_EXT "")
-elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
- set(_ANDROID_HOST_EXT "")
-elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
- set(_ANDROID_HOST_EXT ".exe")
-else()
- message(FATAL_ERROR "Android: Builds hosted on '${CMAKE_HOST_SYSTEM_NAME}' not supported.")
-endif()
-
-if(CMAKE_ANDROID_NDK)
- include(Platform/Android/Determine-Compiler-NDK)
-elseif(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
- include(Platform/Android/Determine-Compiler-Standalone)
-else()
- set(_ANDROID_TOOL_NDK_TOOLCHAIN_VERSION "")
- set(_ANDROID_TOOL_C_COMPILER "")
- set(_ANDROID_TOOL_C_TOOLCHAIN_MACHINE "")
- set(_ANDROID_TOOL_C_TOOLCHAIN_VERSION "")
- set(_ANDROID_TOOL_C_COMPILER_EXTERNAL_TOOLCHAIN "")
- set(_ANDROID_TOOL_C_TOOLCHAIN_PREFIX "")
- set(_ANDROID_TOOL_C_TOOLCHAIN_SUFFIX "")
- set(_ANDROID_TOOL_CXX_COMPILER "")
- set(_ANDROID_TOOL_CXX_TOOLCHAIN_MACHINE "")
- set(_ANDROID_TOOL_CXX_TOOLCHAIN_VERSION "")
- set(_ANDROID_TOOL_CXX_COMPILER_EXTERNAL_TOOLCHAIN "")
- set(_ANDROID_TOOL_CXX_TOOLCHAIN_PREFIX "")
- set(_ANDROID_TOOL_CXX_TOOLCHAIN_SUFFIX "")
-endif()
-
-unset(_ANDROID_HOST_EXT)
-
-macro(__android_determine_compiler lang)
- if(_ANDROID_TOOL_${lang}_COMPILER)
- set(CMAKE_${lang}_COMPILER "${_ANDROID_TOOL_${lang}_COMPILER}")
- set(CMAKE_${lang}_COMPILER_EXTERNAL_TOOLCHAIN "${_ANDROID_TOOL_${lang}_COMPILER_EXTERNAL_TOOLCHAIN}")
-
- # Save the Android-specific information in CMake${lang}Compiler.cmake.
- set(CMAKE_${lang}_COMPILER_CUSTOM_CODE "
-set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION \"${_ANDROID_TOOL_NDK_TOOLCHAIN_VERSION}\")
-set(CMAKE_${lang}_ANDROID_TOOLCHAIN_MACHINE \"${_ANDROID_TOOL_${lang}_TOOLCHAIN_MACHINE}\")
-set(CMAKE_${lang}_ANDROID_TOOLCHAIN_VERSION \"${_ANDROID_TOOL_${lang}_TOOLCHAIN_VERSION}\")
-set(CMAKE_${lang}_COMPILER_EXTERNAL_TOOLCHAIN \"${_ANDROID_TOOL_${lang}_COMPILER_EXTERNAL_TOOLCHAIN}\")
-set(CMAKE_${lang}_ANDROID_TOOLCHAIN_PREFIX \"${_ANDROID_TOOL_${lang}_TOOLCHAIN_PREFIX}\")
-set(CMAKE_${lang}_ANDROID_TOOLCHAIN_SUFFIX \"${_ANDROID_TOOL_${lang}_TOOLCHAIN_SUFFIX}\")
-")
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/Apple-GNU.cmake b/share/cmake-3.16/Modules/Platform/Apple-GNU.cmake
deleted file mode 100644
index 0eb8168..0000000
--- a/share/cmake-3.16/Modules/Platform/Apple-GNU.cmake
+++ /dev/null
@@ -1,57 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This module is shared by multiple languages; use include blocker.
-include_guard()
-
-macro(__apple_compiler_gnu lang)
- set(CMAKE_${lang}_VERBOSE_FLAG "-v -Wl,-v") # also tell linker to print verbose output
- # GNU does not have -shared on OS X
- set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names")
- set(CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS "-bundle -Wl,-headerpad_max_install_names")
-
- if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.3)
- set(CMAKE_${lang}_SYSTEM_FRAMEWORK_SEARCH_FLAG "-iframework ")
- endif()
-endmacro()
-
-macro(cmake_gnu_set_sysroot_flag lang)
- if(NOT DEFINED CMAKE_${lang}_SYSROOT_FLAG)
- set(_doc "${lang} compiler has -isysroot")
- message(STATUS "Checking whether ${_doc}")
- execute_process(
- COMMAND ${CMAKE_${lang}_COMPILER} "-v" "--help"
- OUTPUT_VARIABLE _gcc_help
- ERROR_VARIABLE _gcc_help
- )
- if("${_gcc_help}" MATCHES "isysroot")
- message(STATUS "Checking whether ${_doc} - yes")
- set(CMAKE_${lang}_SYSROOT_FLAG "-isysroot")
- else()
- message(STATUS "Checking whether ${_doc} - no")
- set(CMAKE_${lang}_SYSROOT_FLAG "")
- endif()
- set(CMAKE_${lang}_SYSROOT_FLAG_CODE "set(CMAKE_${lang}_SYSROOT_FLAG \"${CMAKE_${lang}_SYSROOT_FLAG}\")")
- endif()
-endmacro()
-
-macro(cmake_gnu_set_osx_deployment_target_flag lang)
- if(NOT DEFINED CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG)
- set(_doc "${lang} compiler supports OSX deployment target flag")
- message(STATUS "Checking whether ${_doc}")
- execute_process(
- COMMAND ${CMAKE_${lang}_COMPILER} "-v" "--help"
- OUTPUT_VARIABLE _gcc_help
- ERROR_VARIABLE _gcc_help
- )
- if("${_gcc_help}" MATCHES "macosx-version-min")
- message(STATUS "Checking whether ${_doc} - yes")
- set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG "-mmacosx-version-min=")
- else()
- message(STATUS "Checking whether ${_doc} - no")
- set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG "")
- endif()
- set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG_CODE "set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG \"${CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG}\")")
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/Darwin-Initialize.cmake b/share/cmake-3.16/Modules/Platform/Darwin-Initialize.cmake
deleted file mode 100644
index 2d797f6..0000000
--- a/share/cmake-3.16/Modules/Platform/Darwin-Initialize.cmake
+++ /dev/null
@@ -1,153 +0,0 @@
-# Ask xcode-select where to find /Developer or fall back to ancient location.
-execute_process(COMMAND xcode-select -print-path
- OUTPUT_VARIABLE _stdout
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_VARIABLE _stderr
- RESULT_VARIABLE _failed)
-if(NOT _failed AND IS_DIRECTORY ${_stdout})
- set(OSX_DEVELOPER_ROOT ${_stdout})
-elseif(IS_DIRECTORY "/Developer")
- set(OSX_DEVELOPER_ROOT "/Developer")
-else()
- set(OSX_DEVELOPER_ROOT "")
-endif()
-
-execute_process(COMMAND sw_vers -productVersion
- OUTPUT_VARIABLE CURRENT_OSX_VERSION
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
-# Save CMAKE_OSX_ARCHITECTURES from the environment.
-set(CMAKE_OSX_ARCHITECTURES "$ENV{CMAKE_OSX_ARCHITECTURES}" CACHE STRING
- "Build architectures for OSX")
-
-# macOS, iOS, tvOS, and watchOS should lookup compilers from
-# Platform/Apple-${CMAKE_CXX_COMPILER_ID}-<LANG>
-set(CMAKE_EFFECTIVE_SYSTEM_NAME "Apple")
-
-#----------------------------------------------------------------------------
-# _CURRENT_OSX_VERSION - as a two-component string: 10.5, 10.6, ...
-#
-string(REGEX REPLACE "^([0-9]+\\.[0-9]+).*$" "\\1"
- _CURRENT_OSX_VERSION "${CURRENT_OSX_VERSION}")
-
-#----------------------------------------------------------------------------
-# CMAKE_OSX_DEPLOYMENT_TARGET
-
-# Set cache variable - end user may change this during ccmake or cmake-gui configure.
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND _CURRENT_OSX_VERSION VERSION_GREATER 10.3)
- set(CMAKE_OSX_DEPLOYMENT_TARGET "$ENV{MACOSX_DEPLOYMENT_TARGET}" CACHE STRING
- "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value.")
-endif()
-
-#----------------------------------------------------------------------------
-# CMAKE_OSX_SYSROOT
-
-if(CMAKE_OSX_SYSROOT)
- # Use the existing value without further computation to choose a default.
- set(_CMAKE_OSX_SYSROOT_DEFAULT "${CMAKE_OSX_SYSROOT}")
-elseif(NOT "x$ENV{SDKROOT}" STREQUAL "x" AND
- (NOT "x$ENV{SDKROOT}" MATCHES "/" OR IS_DIRECTORY "$ENV{SDKROOT}"))
- # Use the value of SDKROOT from the environment.
- set(_CMAKE_OSX_SYSROOT_DEFAULT "$ENV{SDKROOT}")
-elseif(CMAKE_SYSTEM_NAME STREQUAL iOS)
- set(_CMAKE_OSX_SYSROOT_DEFAULT "iphoneos")
-elseif(CMAKE_SYSTEM_NAME STREQUAL tvOS)
- set(_CMAKE_OSX_SYSROOT_DEFAULT "appletvos")
-elseif(CMAKE_SYSTEM_NAME STREQUAL watchOS)
- set(_CMAKE_OSX_SYSROOT_DEFAULT "watchos")
-elseif("${CMAKE_GENERATOR}" MATCHES Xcode
- OR CMAKE_OSX_DEPLOYMENT_TARGET
- OR CMAKE_OSX_ARCHITECTURES MATCHES "[^;]"
- OR NOT EXISTS "/usr/include/sys/types.h")
- # Find installed SDKs in either Xcode-4.3+ or pre-4.3 SDKs directory.
- set(_CMAKE_OSX_SDKS_DIR "")
- if(OSX_DEVELOPER_ROOT)
- foreach(d Platforms/MacOSX.platform/Developer/SDKs SDKs)
- file(GLOB _CMAKE_OSX_SDKS ${OSX_DEVELOPER_ROOT}/${d}/*)
- if(_CMAKE_OSX_SDKS)
- set(_CMAKE_OSX_SDKS_DIR ${OSX_DEVELOPER_ROOT}/${d})
- break()
- endif()
- endforeach()
- endif()
-
- if(_CMAKE_OSX_SDKS_DIR)
- # Select SDK for current OSX version accounting for the known
- # specially named SDKs.
- set(_CMAKE_OSX_SDKS_VER_SUFFIX_10.4 "u")
- set(_CMAKE_OSX_SDKS_VER_SUFFIX_10.3 ".9")
-
- # find the latest SDK
- set(_CMAKE_OSX_LATEST_SDK_VERSION "0.0")
- file(GLOB _CMAKE_OSX_SDKS RELATIVE "${_CMAKE_OSX_SDKS_DIR}" "${_CMAKE_OSX_SDKS_DIR}/MacOSX*.sdk")
- foreach(_SDK ${_CMAKE_OSX_SDKS})
- if(_SDK MATCHES "MacOSX([0-9]+\\.[0-9]+)[^/]*\\.sdk" AND CMAKE_MATCH_1 VERSION_GREATER ${_CMAKE_OSX_LATEST_SDK_VERSION})
- set(_CMAKE_OSX_LATEST_SDK_VERSION "${CMAKE_MATCH_1}")
- endif()
- endforeach()
-
- # pick an SDK that works
- set(_CMAKE_OSX_SYSROOT_DEFAULT)
- foreach(ver ${CMAKE_OSX_DEPLOYMENT_TARGET}
- ${_CURRENT_OSX_VERSION}
- ${_CMAKE_OSX_LATEST_SDK_VERSION})
- set(_CMAKE_OSX_DEPLOYMENT_TARGET ${ver})
- set(_CMAKE_OSX_SDKS_VER ${_CMAKE_OSX_DEPLOYMENT_TARGET}${_CMAKE_OSX_SDKS_VER_SUFFIX_${_CMAKE_OSX_DEPLOYMENT_TARGET}})
- set(_CMAKE_OSX_SYSROOT_CHECK "${_CMAKE_OSX_SDKS_DIR}/MacOSX${_CMAKE_OSX_SDKS_VER}.sdk")
- if(IS_DIRECTORY "${_CMAKE_OSX_SYSROOT_CHECK}")
- set(_CMAKE_OSX_SYSROOT_DEFAULT "${_CMAKE_OSX_SYSROOT_CHECK}")
- break()
- endif()
- endforeach()
-
- if(NOT CMAKE_CROSSCOMPILING AND NOT CMAKE_OSX_DEPLOYMENT_TARGET AND _CURRENT_OSX_VERSION VERSION_LESS _CMAKE_OSX_DEPLOYMENT_TARGET)
- set(CMAKE_OSX_DEPLOYMENT_TARGET ${_CURRENT_OSX_VERSION} CACHE STRING
- "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value." FORCE)
- endif()
- else()
- # Assume developer files are in root (such as Xcode 4.5 command-line tools).
- set(_CMAKE_OSX_SYSROOT_DEFAULT "")
- endif()
-endif()
-
-# Set cache variable - end user may change this during ccmake or cmake-gui configure.
-# Choose the type based on the current value.
-set(_CMAKE_OSX_SYSROOT_TYPE STRING)
-foreach(v CMAKE_OSX_SYSROOT _CMAKE_OSX_SYSROOT_DEFAULT)
- if("x${${v}}" MATCHES "/")
- set(_CMAKE_OSX_SYSROOT_TYPE PATH)
- break()
- endif()
-endforeach()
-set(CMAKE_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_DEFAULT}" CACHE ${_CMAKE_OSX_SYSROOT_TYPE}
- "The product will be built against the headers and libraries located inside the indicated SDK.")
-
-# Transform the cached value to something we can use.
-set(_CMAKE_OSX_SYSROOT_PATH "")
-if(CMAKE_OSX_SYSROOT)
- if("x${CMAKE_OSX_SYSROOT}" MATCHES "/")
- # This is a path to the SDK. Make sure it exists.
- if(NOT IS_DIRECTORY "${CMAKE_OSX_SYSROOT}")
- message(WARNING "Ignoring CMAKE_OSX_SYSROOT value:\n ${CMAKE_OSX_SYSROOT}\n"
- "because the directory does not exist.")
- set(CMAKE_OSX_SYSROOT "")
- endif()
- set(_CMAKE_OSX_SYSROOT_PATH "${CMAKE_OSX_SYSROOT}")
- else()
- # Transform the sdk name into a path.
- execute_process(
- COMMAND xcodebuild -sdk ${CMAKE_OSX_SYSROOT} -version Path
- OUTPUT_VARIABLE _stdout
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_VARIABLE _stderr
- RESULT_VARIABLE _failed
- )
- if(NOT _failed AND IS_DIRECTORY "${_stdout}")
- set(_CMAKE_OSX_SYSROOT_PATH "${_stdout}")
- # For non-Xcode generators use the path.
- if(NOT "${CMAKE_GENERATOR}" MATCHES "Xcode")
- set(CMAKE_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_PATH}")
- endif()
- endif()
- endif()
-endif()
diff --git a/share/cmake-3.16/Modules/Platform/Darwin.cmake b/share/cmake-3.16/Modules/Platform/Darwin.cmake
deleted file mode 100644
index e5a57b5..0000000
--- a/share/cmake-3.16/Modules/Platform/Darwin.cmake
+++ /dev/null
@@ -1,220 +0,0 @@
-set(APPLE 1)
-
-if(CMAKE_SYSTEM_NAME STREQUAL "iOS" OR CMAKE_SYSTEM_NAME STREQUAL "tvOS" OR CMAKE_SYSTEM_NAME STREQUAL "watchOS")
- if(NOT DEFINED CMAKE_MACOSX_BUNDLE)
- set(CMAKE_MACOSX_BUNDLE ON)
- endif()
-
- list(APPEND CMAKE_FIND_ROOT_PATH "${_CMAKE_OSX_SYSROOT_PATH}")
- if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_LIBRARY)
- set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
- endif()
- if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
- set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
- endif()
- if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PACKAGE)
- set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
- endif()
-endif()
-
-# Darwin versions:
-# 6.x == Mac OSX 10.2 (Jaguar)
-# 7.x == Mac OSX 10.3 (Panther)
-# 8.x == Mac OSX 10.4 (Tiger)
-# 9.x == Mac OSX 10.5 (Leopard)
-# 10.x == Mac OSX 10.6 (Snow Leopard)
-# 11.x == Mac OSX 10.7 (Lion)
-# 12.x == Mac OSX 10.8 (Mountain Lion)
-string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_VERSION "${CMAKE_SYSTEM_VERSION}")
-string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\2" DARWIN_MINOR_VERSION "${CMAKE_SYSTEM_VERSION}")
-
-# Do not use the "-Wl,-search_paths_first" flag with the OSX 10.2 compiler.
-# Done this way because it is too early to do a TRY_COMPILE.
-if(NOT DEFINED HAVE_FLAG_SEARCH_PATHS_FIRST)
- set(HAVE_FLAG_SEARCH_PATHS_FIRST 0)
- if("${DARWIN_MAJOR_VERSION}" GREATER 6)
- set(HAVE_FLAG_SEARCH_PATHS_FIRST 1)
- endif()
-endif()
-# More desirable, but does not work:
- #include(CheckCXXCompilerFlag)
- #CHECK_CXX_COMPILER_FLAG("-Wl,-search_paths_first" HAVE_FLAG_SEARCH_PATHS_FIRST)
-
-set(CMAKE_SHARED_LIBRARY_PREFIX "lib")
-set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib")
-set(CMAKE_SHARED_MODULE_PREFIX "lib")
-set(CMAKE_SHARED_MODULE_SUFFIX ".so")
-set(CMAKE_MODULE_EXISTS 1)
-set(CMAKE_DL_LIBS "")
-
-# Enable rpath support for 10.5 and greater where it is known to work.
-if("${DARWIN_MAJOR_VERSION}" GREATER 8)
- set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
-endif()
-
-foreach(lang C CXX OBJC OBJCXX)
- set(CMAKE_${lang}_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ")
- set(CMAKE_${lang}_OSX_CURRENT_VERSION_FLAG "-current_version ")
- set(CMAKE_${lang}_LINK_FLAGS "-Wl,-headerpad_max_install_names")
-
- if(HAVE_FLAG_SEARCH_PATHS_FIRST)
- set(CMAKE_${lang}_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_${lang}_LINK_FLAGS}")
- endif()
-
- set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names")
- set(CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS "-bundle -Wl,-headerpad_max_install_names")
- set(CMAKE_SHARED_MODULE_LOADER_${lang}_FLAG "-Wl,-bundle_loader,")
-endforeach()
-
-set(CMAKE_PLATFORM_HAS_INSTALLNAME 1)
-set(CMAKE_FIND_LIBRARY_SUFFIXES ".tbd" ".dylib" ".so" ".a")
-
-# hack: if a new cmake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old build tree
-# (where install_name_tool was hardcoded) and where CMAKE_INSTALL_NAME_TOOL isn't in the cache
-# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun)
-# hardcode CMAKE_INSTALL_NAME_TOOL here to install_name_tool, so it behaves as it did before, Alex
-if(NOT DEFINED CMAKE_INSTALL_NAME_TOOL)
- find_program(CMAKE_INSTALL_NAME_TOOL install_name_tool)
- mark_as_advanced(CMAKE_INSTALL_NAME_TOOL)
-endif()
-
-# Enable shared library versioning.
-set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name")
-
-if("${_CURRENT_OSX_VERSION}" VERSION_LESS "10.5")
- # Need to list dependent shared libraries on link line. When building
- # with -isysroot (for universal binaries), the linker always looks for
- # dependent libraries under the sysroot. Listing them on the link
- # line works around the problem.
- set(CMAKE_LINK_DEPENDENT_LIBRARY_FILES 1)
-endif()
-
-foreach(lang C CXX Fortran OBJC OBJCXX)
- # Xcode does not support -isystem yet.
- if(XCODE)
- set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang})
- endif()
-
- set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
- "<CMAKE_${lang}_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> <LINK_FLAGS> -o <TARGET> <SONAME_FLAG> <TARGET_INSTALLNAME_DIR><TARGET_SONAME> <OBJECTS> <LINK_LIBRARIES>")
-
- set(CMAKE_${lang}_CREATE_SHARED_MODULE
- "<CMAKE_${lang}_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS> <LINK_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
-
- set(CMAKE_${lang}_CREATE_MACOSX_FRAMEWORK
- "<CMAKE_${lang}_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> <LINK_FLAGS> -o <TARGET> <SONAME_FLAG> <TARGET_INSTALLNAME_DIR><TARGET_SONAME> <OBJECTS> <LINK_LIBRARIES>")
-
- # Set default framework search path flag for languages known to use a
- # preprocessor that may find headers in frameworks.
- set(CMAKE_${lang}_FRAMEWORK_SEARCH_FLAG -F)
-endforeach()
-
-# default to searching for frameworks first
-if(NOT DEFINED CMAKE_FIND_FRAMEWORK)
- set(CMAKE_FIND_FRAMEWORK FIRST)
-endif()
-
-# Older OS X linkers do not report their framework search path
-# with -v but "man ld" documents the following locations.
-set(CMAKE_PLATFORM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- ${_CMAKE_OSX_SYSROOT_PATH}/Library/Frameworks
- ${_CMAKE_OSX_SYSROOT_PATH}/System/Library/Frameworks
- )
-if(_CMAKE_OSX_SYSROOT_PATH)
- # Treat some paths as implicit so we do not override the SDK versions.
- list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- /System/Library/Frameworks)
-endif()
-if("${_CURRENT_OSX_VERSION}" VERSION_LESS "10.5")
- # Older OS X tools had more implicit paths.
- list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- ${_CMAKE_OSX_SYSROOT_PATH}/Network/Library/Frameworks)
-endif()
-
-# set up the default search directories for frameworks
-set(CMAKE_SYSTEM_FRAMEWORK_PATH
- ~/Library/Frameworks
- )
-if(_CMAKE_OSX_SYSROOT_PATH)
- list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH
- ${_CMAKE_OSX_SYSROOT_PATH}/Library/Frameworks
- ${_CMAKE_OSX_SYSROOT_PATH}/Network/Library/Frameworks
- ${_CMAKE_OSX_SYSROOT_PATH}/System/Library/Frameworks
- )
- # add platform developer framework path if exists
- foreach(_path
- # Xcode 6
- ${_CMAKE_OSX_SYSROOT_PATH}/../../Library/Frameworks
- # Xcode 5 iOS
- ${_CMAKE_OSX_SYSROOT_PATH}/Developer/Library/Frameworks
- # Xcode 5 OSX
- ${_CMAKE_OSX_SYSROOT_PATH}/../../../../../Library/Frameworks
- )
- get_filename_component(_abolute_path "${_path}" ABSOLUTE)
- if(EXISTS "${_abolute_path}")
- list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH "${_abolute_path}")
- break()
- endif()
- endforeach()
-endif()
-if (OSX_DEVELOPER_ROOT AND EXISTS "${OSX_DEVELOPER_ROOT}/Library/Frameworks")
- list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH
- ${OSX_DEVELOPER_ROOT}/Library/Frameworks)
-endif()
-list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH
- /Library/Frameworks
- /Network/Library/Frameworks
- /System/Library/Frameworks)
-
-# Warn about known system mis-configuration case.
-if(CMAKE_OSX_SYSROOT)
- get_property(_IN_TC GLOBAL PROPERTY IN_TRY_COMPILE)
- if(NOT _IN_TC AND
- NOT IS_SYMLINK "${CMAKE_OSX_SYSROOT}/Library/Frameworks"
- AND IS_SYMLINK "${CMAKE_OSX_SYSROOT}/Library/Frameworks/Frameworks")
- message(WARNING "The SDK Library/Frameworks path\n"
- " ${CMAKE_OSX_SYSROOT}/Library/Frameworks\n"
- "is not set up correctly on this system. "
- "This is known to occur when installing Xcode 3.2.6:\n"
- " http://bugs.python.org/issue14018\n"
- "The problem may cause build errors that report missing system frameworks. "
- "Fix your SDK symlinks to resolve this issue and avoid this warning."
- )
- endif()
-endif()
-
-# default to searching for application bundles first
-if(NOT DEFINED CMAKE_FIND_APPBUNDLE)
- set(CMAKE_FIND_APPBUNDLE FIRST)
-endif()
-# set up the default search directories for application bundles
-set(_apps_paths)
-foreach(_path
- "~/Applications"
- "/Applications"
- "${OSX_DEVELOPER_ROOT}/../Applications" # Xcode 4.3+
- "${OSX_DEVELOPER_ROOT}/Applications" # pre-4.3
- )
- get_filename_component(_apps "${_path}" ABSOLUTE)
- if(EXISTS "${_apps}")
- list(APPEND _apps_paths "${_apps}")
- endif()
-endforeach()
-if(_apps_paths)
- list(REMOVE_DUPLICATES _apps_paths)
-endif()
-set(CMAKE_SYSTEM_APPBUNDLE_PATH
- ${_apps_paths})
-unset(_apps_paths)
-
-include(Platform/UnixPaths)
-if(_CMAKE_OSX_SYSROOT_PATH AND EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/include)
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${_CMAKE_OSX_SYSROOT_PATH}/usr)
- foreach(lang C CXX OBJC OBJCXX)
- list(APPEND _CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT ${_CMAKE_OSX_SYSROOT_PATH}/usr/include)
- endforeach()
-endif()
-list(APPEND CMAKE_SYSTEM_PREFIX_PATH
- /sw # Fink
- /opt/local # MacPorts
- )
diff --git a/share/cmake-3.16/Modules/Platform/Generic-SDCC-C.cmake b/share/cmake-3.16/Modules/Platform/Generic-SDCC-C.cmake
deleted file mode 100644
index aef4abf..0000000
--- a/share/cmake-3.16/Modules/Platform/Generic-SDCC-C.cmake
+++ /dev/null
@@ -1,55 +0,0 @@
-
-# This file implements basic support for sdcc (http://sdcc.sourceforge.net/)
-# a free C compiler for 8 and 16 bit microcontrollers.
-# To use it either a toolchain file is required or cmake has to be run like this:
-# cmake -DCMAKE_C_COMPILER=sdcc -DCMAKE_SYSTEM_NAME=Generic <dir...>
-# Since sdcc doesn't support C++, C++ support should be disabled in the
-# CMakeLists.txt using the project() command:
-# project(my_project C)
-
-set(CMAKE_STATIC_LIBRARY_PREFIX "")
-set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
-set(CMAKE_SHARED_LIBRARY_PREFIX "") # lib
-set(CMAKE_SHARED_LIBRARY_SUFFIX ".lib") # .so
-set(CMAKE_IMPORT_LIBRARY_PREFIX )
-set(CMAKE_IMPORT_LIBRARY_SUFFIX )
-set(CMAKE_EXECUTABLE_SUFFIX ".ihx") # intel hex file
-set(CMAKE_LINK_LIBRARY_SUFFIX ".lib")
-set(CMAKE_DL_LIBS "")
-
-set(CMAKE_C_OUTPUT_EXTENSION ".rel")
-
-# find sdcclib as CMAKE_AR
-# since cmake may already have searched for "ar", sdcclib has to
-# be searched with a different variable name (SDCCLIB_EXECUTABLE)
-# and must then be forced into the cache
-get_filename_component(SDCC_LOCATION "${CMAKE_C_COMPILER}" PATH)
-find_program(SDCCLIB_EXECUTABLE sdcclib PATHS "${SDCC_LOCATION}" NO_DEFAULT_PATH)
-find_program(SDCCLIB_EXECUTABLE sdcclib)
-set(CMAKE_AR "${SDCCLIB_EXECUTABLE}" CACHE FILEPATH "The sdcc librarian" FORCE)
-
-# CMAKE_C_FLAGS_INIT and CMAKE_EXE_LINKER_FLAGS_INIT should be set in a CMAKE_SYSTEM_PROCESSOR file
-if(NOT DEFINED CMAKE_C_FLAGS_INIT)
- string(APPEND CMAKE_C_FLAGS_INIT " -mmcs51 --model-small")
-endif()
-
-if(NOT DEFINED CMAKE_EXE_LINKER_FLAGS_INIT)
- set (CMAKE_EXE_LINKER_FLAGS_INIT --model-small)
-endif()
-
-set(CMAKE_C_LINKER_WRAPPER_FLAG "-Wl" ",")
-
-# compile a C file into an object file
-set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
-
-# link object files to an executable
-set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> <FLAGS> <OBJECTS> -o <TARGET> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>")
-
-# needs sdcc 2.7.0 + sddclib from cvs
-set(CMAKE_C_CREATE_STATIC_LIBRARY
- "\"${CMAKE_COMMAND}\" -E remove <TARGET>"
- "<CMAKE_AR> -a <TARGET> <LINK_FLAGS> <OBJECTS> ")
-
-# not supported by sdcc
-set(CMAKE_C_CREATE_SHARED_LIBRARY "")
-set(CMAKE_C_CREATE_MODULE_LIBRARY "")
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Clang.cmake b/share/cmake-3.16/Modules/Platform/Windows-Clang.cmake
deleted file mode 100644
index 02864c6..0000000
--- a/share/cmake-3.16/Modules/Platform/Windows-Clang.cmake
+++ /dev/null
@@ -1,157 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This module is shared by multiple languages; use include blocker.
-if(__WINDOWS_CLANG)
- return()
-endif()
-set(__WINDOWS_CLANG 1)
-
-macro(__windows_compiler_clang_gnu lang)
- set(CMAKE_LIBRARY_PATH_FLAG "-L")
- set(CMAKE_LINK_LIBRARY_FLAG "-l")
-
- set(CMAKE_IMPORT_LIBRARY_PREFIX "")
- set(CMAKE_SHARED_LIBRARY_PREFIX "")
- set(CMAKE_SHARED_MODULE_PREFIX "")
- set(CMAKE_STATIC_LIBRARY_PREFIX "")
- set(CMAKE_EXECUTABLE_SUFFIX ".exe")
- set(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib")
- set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
- set(CMAKE_SHARED_MODULE_SUFFIX ".dll")
- set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
- set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT <OBJECT> -MF <DEPFILE>")
-
- set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib")
- set(CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS 1)
- set (CMAKE_LINK_DEF_FILE_FLAG "-Xlinker /DEF:")
-
- if("${CMAKE_${lang}_SIMULATE_VERSION}" MATCHES "^([0-9]+)\\.([0-9]+)")
- math(EXPR MSVC_VERSION "${CMAKE_MATCH_1}*100 + ${CMAKE_MATCH_2}")
- endif()
-
- # No -fPIC on Windows
- set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "")
- set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "")
- set(_CMAKE_${lang}_PIE_MAY_BE_SUPPORTED_BY_LINKER NO)
- set(CMAKE_${lang}_LINK_OPTIONS_PIE "")
- set(CMAKE_${lang}_LINK_OPTIONS_NO_PIE "")
- set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "")
-
- set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 1)
- set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_LIBRARIES 1)
- set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1)
-
- set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto")
- set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
- set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
- set(CMAKE_${lang}_ARCHIVE_CREATE_IPO "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS>")
- set(CMAKE_${lang}_ARCHIVE_APPEND_IPO "<CMAKE_AR> r <TARGET> <LINK_FLAGS> <OBJECTS>")
- set(CMAKE_${lang}_ARCHIVE_FINISH_IPO "<CMAKE_RANLIB> <TARGET>")
-
- # Create archiving rules to support large object file lists for static libraries.
- set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
- set(CMAKE_${lang}_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
- set(CMAKE_${lang}_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
- set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
- "<CMAKE_${lang}_COMPILER> -fuse-ld=lld-link -nostartfiles -nostdlib <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} -Xlinker /implib:<TARGET_IMPLIB> -Xlinker /pdb:<TARGET_PDB> -Xlinker /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <OBJECTS> <LINK_LIBRARIES>")
- set(CMAKE_${lang}_CREATE_SHARED_MODULE ${CMAKE_${lang}_CREATE_SHARED_LIBRARY})
- set(CMAKE_${lang}_LINK_EXECUTABLE
- "<CMAKE_${lang}_COMPILER> -fuse-ld=lld-link -nostartfiles -nostdlib <FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -Xlinker /implib:<TARGET_IMPLIB> -Xlinker /pdb:<TARGET_PDB> -Xlinker /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES>")
-
- set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded -Xclang -flto-visibility-public-std -D_MT -Xclang --dependent-lib=libcmt)
- set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL -D_DLL -D_MT -Xclang --dependent-lib=msvcrt)
- set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug -D_DEBUG -Xclang -flto-visibility-public-std -D_MT -Xclang --dependent-lib=libcmtd)
- set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd)
-
- if(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT)
- set(__ADDED_FLAGS "")
- set(__ADDED_FLAGS_DEBUG "")
- else()
- set(__ADDED_FLAGS_DEBUG "-D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd")
- set(__ADDED_FLAGS "-D_DLL -D_MT -Xclang --dependent-lib=msvcrt")
- endif()
-
- string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g -Xclang -gcodeview -O0 ${__ADDED_FLAGS_DEBUG}")
- string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os -DNDEBUG ${__ADDED_FLAGS}")
- string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3 -DNDEBUG ${__ADDED_FLAGS}")
- string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g -DNDEBUG -Xclang -gcodeview ${__ADDED_FLAGS}")
- set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
-
- set(CMAKE_PCH_EXTENSION .pch)
- set(CMAKE_PCH_PROLOGUE "#pragma clang system_header")
- set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Xclang -include-pch -Xclang <PCH_FILE>)
- set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Xclang -emit-pch -Xclang -include -Xclang <PCH_HEADER>)
-
- unset(__ADDED_FLAGS)
- unset(__ADDED_FLAGS_DEBUG)
- string(TOLOWER "${CMAKE_BUILD_TYPE}" BUILD_TYPE_LOWER)
- set(CMAKE_${lang}_STANDARD_LIBRARIES_INIT "-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -loldnames")
-
- enable_language(RC)
-endmacro()
-
-if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC"
- OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
-
- if ( DEFINED CMAKE_C_COMPILER_ID AND DEFINED CMAKE_CXX_COMPILER_ID
- AND NOT "x${CMAKE_C_COMPILER_ID}" STREQUAL "x${CMAKE_CXX_COMPILER_ID}")
- message(FATAL_ERROR "The current configuration mixes Clang and MSVC or "
- "some other CL compatible compiler tool. This is not supported. "
- "Use either clang or MSVC as both C and C++ compilers.")
- endif()
-
- if ( DEFINED CMAKE_C_COMPILER_FRONTEND_VARIANT AND DEFINED CMAKE_CXX_COMPILER_FRONTEND_VARIANT
- AND NOT "x${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}")
- message(FATAL_ERROR "The current configuration uses the Clang compiler "
- "tool with mixed frontend variants, both the GNU and in MSVC CL "
- "like variants. This is not supported. Use either clang/clang++ "
- "or clang-cl as both C and C++ compilers.")
- endif()
-
- if(NOT CMAKE_RC_COMPILER_INIT)
- # Check if rc is already in the path
- # This may happen in cases where the user is already in a visual studio environment when CMake is invoked
- find_program(__RC_COMPILER_PATH NAMES rc)
-
- # Default to rc if it's available, otherwise fall back to llvm-rc
- if(__RC_COMPILER_PATH)
- set(CMAKE_RC_COMPILER_INIT rc)
- else()
- set(CMAKE_RC_COMPILER_INIT llvm-rc)
- endif()
-
- unset(__RC_COMPILER_PATH CACHE)
- endif()
-
- if ( "x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC" OR "x${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC" )
- include(Platform/Windows-MSVC)
-
- macro(__windows_compiler_clang lang)
- set(_COMPILE_${lang} "${_COMPILE_${lang}_MSVC}")
- __windows_compiler_msvc(${lang})
- endmacro()
- else()
- cmake_policy(GET CMP0091 __WINDOWS_CLANG_CMP0091)
- if(__WINDOWS_CLANG_CMP0091 STREQUAL "NEW")
- set(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
- else()
- set(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT "")
- endif()
- unset(__WINDOWS_CLANG_CMP0091)
-
- set(CMAKE_BUILD_TYPE_INIT Debug)
-
- macro(__windows_compiler_clang lang)
- __windows_compiler_clang_gnu(${lang})
- endmacro()
- endif()
-
-else()
- include(Platform/Windows-GNU)
- macro(__windows_compiler_clang lang)
- __windows_compiler_gnu(${lang})
- endmacro()
-endif()
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Embarcadero.cmake b/share/cmake-3.16/Modules/Platform/Windows-Embarcadero.cmake
deleted file mode 100644
index 370b56e..0000000
--- a/share/cmake-3.16/Modules/Platform/Windows-Embarcadero.cmake
+++ /dev/null
@@ -1,136 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This module is shared by multiple languages; use include blocker.
-if(__WINDOWS_EMBARCADERO)
- return()
-endif()
-set(__WINDOWS_EMBARCADERO 1)
-
-set(BORLAND 1)
-
-if("${CMAKE_${_lang}_COMPILER_VERSION}" VERSION_LESS 6.30)
- # Borland target type flags (bcc32 -h -t):
- set(_tW "-tW") # -tW GUI App (implies -U__CONSOLE__)
- set(_tC "-tWC") # -tWC Console App (implies -D__CONSOLE__=1)
- set(_tD "-tWD") # -tWD Build a DLL (implies -D__DLL__=1 -D_DLL=1)
- set(_tM "-tWM") # -tWM Enable threads (implies -D__MT__=1 -D_MT=1)
- set(_tR "-tWR -tW-") # -tWR Use DLL runtime (implies -D_RTLDLL, and '-tW' too!!)
- # Notes:
- # - The flags affect linking so we pass them to the linker.
- # - The flags affect preprocessing so we pass them to the compiler.
- # - Since '-tWR' implies '-tW' we use '-tWR -tW-' instead.
- # - Since '-tW-' disables '-tWD' we use '-tWR -tW- -tWD' for DLLs.
-else()
- set(EMBARCADERO 1)
- set(_tC "-tC") # Target is a console application
- set(_tD "-tD") # Target is a shared library
- set(_tM "-tM") # Target is multi-threaded
- set(_tR "-tR") # Target uses the dynamic RTL
- set(_tW "-tW") # Target is a Windows application
-endif()
-set(_COMPILE_C "-c")
-set(_COMPILE_CXX "-P -c")
-
-set(CMAKE_LIBRARY_PATH_FLAG "-L")
-set(CMAKE_LINK_LIBRARY_FLAG "")
-
-set(CMAKE_FIND_LIBRARY_SUFFIXES "-bcc.lib" ".lib")
-
-# uncomment these out to debug makefiles
-#set(CMAKE_START_TEMP_FILE "")
-#set(CMAKE_END_TEMP_FILE "")
-#set(CMAKE_VERBOSE_MAKEFILE 1)
-
-# Borland cannot handle + in the file name, so mangle object file name
-set (CMAKE_MANGLE_OBJECT_FILE_NAMES "ON")
-
-# extra flags for a win32 exe
-set(CMAKE_CREATE_WIN32_EXE "${_tW}" )
-# extra flags for a console app
-set(CMAKE_CREATE_CONSOLE_EXE "${_tC}" )
-
-set (CMAKE_BUILD_TYPE Debug CACHE STRING
- "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel.")
-
-foreach(t EXE SHARED MODULE)
- string(APPEND CMAKE_${t}_LINKER_FLAGS_INIT " ${_tM} -lS:1048576 -lSc:4098 -lH:1048576 -lHc:8192 ")
- string(APPEND CMAKE_${t}_LINKER_FLAGS_DEBUG_INIT " -v")
- string(APPEND CMAKE_${t}_LINKER_FLAGS_RELWITHDEBINFO_INIT " -v")
-endforeach()
-
-# The Borland link tool does not support multiple concurrent
-# invocations within a single working directory.
-if(NOT DEFINED CMAKE_JOB_POOL_LINK)
- set(CMAKE_JOB_POOL_LINK BCC32LinkPool)
- get_property(_bccjp GLOBAL PROPERTY JOB_POOLS)
- if(NOT _bccjp MATCHES "BCC32LinkPool=")
- set_property(GLOBAL APPEND PROPERTY JOB_POOLS BCC32LinkPool=1)
- endif()
- unset(_bccjp)
-endif()
-
-macro(__embarcadero_language lang)
- set(CMAKE_${lang}_COMPILE_OPTIONS_DLL "${_tD}") # Note: This variable is a ';' separated list
- set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "${_tD}") # ... while this is a space separated string.
- set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1)
-
- set (CMAKE_${lang}_LINKER_WRAPPER_FLAG "-l")
-
- # compile a source file into an object file
- # place <DEFINES> outside the response file because Borland refuses
- # to parse quotes from the response file.
- set(CMAKE_${lang}_COMPILE_OBJECT
- "<CMAKE_${lang}_COMPILER> ${_tR} -DWIN32 <DEFINES> <INCLUDES> <FLAGS> -o<OBJECT> ${_COMPILE_${lang}} <SOURCE>"
- )
-
- set(CMAKE_${lang}_LINK_EXECUTABLE
- "<CMAKE_${lang}_COMPILER> ${_tR} -e<TARGET> <LINK_FLAGS> <FLAGS> ${CMAKE_START_TEMP_FILE} <LINK_LIBRARIES> <OBJECTS>${CMAKE_END_TEMP_FILE}"
- # "implib -c -w <TARGET_IMPLIB> <TARGET>"
- )
-
- # place <DEFINES> outside the response file because Borland refuses
- # to parse quotes from the response file.
- set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE
- "cpp32 -DWIN32 <DEFINES> <INCLUDES> <FLAGS> -o<PREPROCESSED_SOURCE> ${_COMPILE_${lang}} <SOURCE>"
- )
- # Borland >= 5.6 allows -P option for cpp32, <= 5.5 does not
-
- # Create a module library.
- set(CMAKE_${lang}_CREATE_SHARED_MODULE
- "<CMAKE_${lang}_COMPILER> ${_tR} ${_tD} ${CMAKE_START_TEMP_FILE}-e<TARGET> <LINK_FLAGS> <LINK_LIBRARIES> <OBJECTS>${CMAKE_END_TEMP_FILE}"
- )
-
- # Create an import library for another target.
- set(CMAKE_${lang}_CREATE_IMPORT_LIBRARY
- "implib -c -w <TARGET_IMPLIB> <TARGET>"
- )
-
- # Create a shared library.
- # First create a module and then its import library.
- set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
- ${CMAKE_${lang}_CREATE_SHARED_MODULE}
- ${CMAKE_${lang}_CREATE_IMPORT_LIBRARY}
- )
-
- # create a static library
- set(CMAKE_${lang}_CREATE_STATIC_LIBRARY
- "tlib ${CMAKE_START_TEMP_FILE}/p512 <LINK_FLAGS> /a <TARGET_QUOTED> <OBJECTS>${CMAKE_END_TEMP_FILE}"
- )
-
- # Precompile Headers
- if (EMBARCADERO)
- set(CMAKE_PCH_EXTENSION .pch)
- set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Xclang -include-pch -Xclang <PCH_FILE>)
- set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Xclang -emit-pch -Xclang -include -Xclang <PCH_HEADER>)
- endif()
-
- # Initial configuration flags.
- string(APPEND CMAKE_${lang}_FLAGS_INIT " ${_tM}")
- string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -Od -v")
- string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -O1 -DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O2 -DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -Od")
- set(CMAKE_${lang}_STANDARD_LIBRARIES_INIT "import32.lib")
-endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/Windows-GNU.cmake b/share/cmake-3.16/Modules/Platform/Windows-GNU.cmake
deleted file mode 100644
index 6bf245c..0000000
--- a/share/cmake-3.16/Modules/Platform/Windows-GNU.cmake
+++ /dev/null
@@ -1,210 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This module is shared by multiple languages; use include blocker.
-if(__WINDOWS_GNU)
- return()
-endif()
-set(__WINDOWS_GNU 1)
-
-set(CMAKE_IMPORT_LIBRARY_PREFIX "lib")
-set(CMAKE_SHARED_LIBRARY_PREFIX "lib")
-set(CMAKE_SHARED_MODULE_PREFIX "lib")
-set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
-
-set(CMAKE_EXECUTABLE_SUFFIX ".exe")
-set(CMAKE_IMPORT_LIBRARY_SUFFIX ".dll.a")
-set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
-set(CMAKE_SHARED_MODULE_SUFFIX ".dll")
-set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
-
-if(MSYS OR MINGW)
- set(CMAKE_EXTRA_LINK_EXTENSIONS ".lib") # MinGW can also link to a MS .lib
-endif()
-
-if(MINGW)
- set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib")
- set(CMAKE_C_STANDARD_LIBRARIES_INIT "-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32")
- set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}")
-endif()
-
-set(CMAKE_DL_LIBS "")
-set(CMAKE_LIBRARY_PATH_FLAG "-L")
-set(CMAKE_LINK_LIBRARY_FLAG "-l")
-set(CMAKE_LINK_DEF_FILE_FLAG "") # Empty string: passing the file is enough
-set(CMAKE_LINK_LIBRARY_SUFFIX "")
-set(CMAKE_CREATE_WIN32_EXE "-mwindows")
-
-set(CMAKE_GNULD_IMAGE_VERSION
- "-Wl,--major-image-version,<TARGET_VERSION_MAJOR>,--minor-image-version,<TARGET_VERSION_MINOR>")
-
-# Check if GNU ld is too old to support @FILE syntax.
-set(__WINDOWS_GNU_LD_RESPONSE 1)
-execute_process(COMMAND ld -v OUTPUT_VARIABLE _help ERROR_VARIABLE _help)
-if("${_help}" MATCHES "GNU ld .* 2\\.1[1-6]")
- set(__WINDOWS_GNU_LD_RESPONSE 0)
-endif()
-
-if(NOT CMAKE_GENERATOR_RC AND CMAKE_GENERATOR MATCHES "Unix Makefiles")
- set(CMAKE_GENERATOR_RC windres)
-endif()
-
-macro(__windows_compiler_gnu lang)
-
- if(MSYS OR MINGW)
- # Create archiving rules to support large object file lists for static libraries.
- set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
- set(CMAKE_${lang}_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
- set(CMAKE_${lang}_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
-
- # Initialize C link type selection flags. These flags are used when
- # building a shared library, shared module, or executable that links
- # to other libraries to select whether to use the static or shared
- # versions of the libraries.
- foreach(type SHARED_LIBRARY SHARED_MODULE EXE)
- set(CMAKE_${type}_LINK_STATIC_${lang}_FLAGS "-Wl,-Bstatic")
- set(CMAKE_${type}_LINK_DYNAMIC_${lang}_FLAGS "-Wl,-Bdynamic")
- endforeach()
- endif()
-
- # No -fPIC on Windows
- set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "")
- set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "")
- set(_CMAKE_${lang}_PIE_MAY_BE_SUPPORTED_BY_LINKER NO)
- set(CMAKE_${lang}_LINK_OPTIONS_PIE "")
- set(CMAKE_${lang}_LINK_OPTIONS_NO_PIE "")
- set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "")
-
- set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS ${__WINDOWS_GNU_LD_RESPONSE})
- set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_LIBRARIES ${__WINDOWS_GNU_LD_RESPONSE})
- set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1)
-
- # We prefer "@" for response files but it is not supported by gcc 3.
- execute_process(COMMAND ${CMAKE_${lang}_COMPILER} --version OUTPUT_VARIABLE _ver ERROR_VARIABLE _ver)
- if("${_ver}" MATCHES "\\(GCC\\) 3\\.")
- if("${lang}" STREQUAL "Fortran")
- # The GNU Fortran compiler reports an error:
- # no input files; unwilling to write output files
- # when the response file is passed with "-Wl,@".
- set(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_OBJECTS 0)
- else()
- # Use "-Wl,@" to pass the response file to the linker.
- set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "-Wl,@")
- endif()
- # The GNU 3.x compilers do not support response files (only linkers).
- set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 0)
- # Link libraries are generated only for the front-end.
- set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_LIBRARIES 0)
- else()
- # Use "@" to pass the response file to the front-end.
- set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "@")
- endif()
-
- # Binary link rules.
- set(CMAKE_${lang}_CREATE_SHARED_MODULE
- "<CMAKE_${lang}_COMPILER> <CMAKE_SHARED_MODULE_${lang}_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} <OBJECTS> <LINK_LIBRARIES>")
- set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
- "<CMAKE_${lang}_COMPILER> <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> -o <TARGET> -Wl,--out-implib,<TARGET_IMPLIB> ${CMAKE_GNULD_IMAGE_VERSION} <OBJECTS> <LINK_LIBRARIES>")
- set(CMAKE_${lang}_LINK_EXECUTABLE
- "<CMAKE_${lang}_COMPILER> <FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -Wl,--out-implib,<TARGET_IMPLIB> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES>")
-
- list(APPEND CMAKE_${lang}_ABI_FILES "Platform/Windows-GNU-${lang}-ABI")
-
- # Support very long lists of object files.
- # TODO: check for which gcc versions this is still needed, not needed for gcc >= 4.4.
- # Ninja generator doesn't support this work around.
- if("${CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG}" STREQUAL "@" AND NOT CMAKE_GENERATOR MATCHES "Ninja")
- foreach(rule CREATE_SHARED_MODULE CREATE_SHARED_LIBRARY LINK_EXECUTABLE)
- # The gcc/collect2/ld toolchain does not use response files
- # internally so we cannot pass long object lists. Instead pass
- # the object file list in a response file to the archiver to put
- # them in a temporary archive. Hand the archive to the linker.
- string(REPLACE "<OBJECTS>" "-Wl,--whole-archive <OBJECT_DIR>/objects.a -Wl,--no-whole-archive"
- CMAKE_${lang}_${rule} "${CMAKE_${lang}_${rule}}")
- set(CMAKE_${lang}_${rule}
- "<CMAKE_COMMAND> -E remove -f <OBJECT_DIR>/objects.a"
- "<CMAKE_AR> cr <OBJECT_DIR>/objects.a <OBJECTS>"
- "${CMAKE_${lang}_${rule}}"
- )
- endforeach()
- endif()
-
- if(NOT CMAKE_RC_COMPILER_INIT AND NOT CMAKE_GENERATOR_RC)
- set(CMAKE_RC_COMPILER_INIT windres)
- endif()
-
- enable_language(RC)
-endmacro()
-
-macro(__windows_compiler_gnu_abi lang)
- if(CMAKE_NO_GNUtoMS)
- set(CMAKE_GNUtoMS 0)
- else()
- option(CMAKE_GNUtoMS "Convert GNU import libraries to MS format (requires Visual Studio)" OFF)
- endif()
-
- if(CMAKE_GNUtoMS AND NOT CMAKE_GNUtoMS_LIB)
- # Find MS development environment setup script for this architecture.
- # We need to use the MS Librarian tool (lib.exe).
- # Find the most recent version available.
-
- # Query the VS Installer tool for locations of VS 2017 and above.
- set(_vs_installer_paths "")
- foreach(vs RANGE 16 15 -1) # change the first number to the largest supported version
- cmake_host_system_information(RESULT _vs_dir QUERY VS_${vs}_DIR)
- if(_vs_dir)
- list(APPEND _vs_installer_paths "${_vs_dir}/VC/Auxiliary/Build")
- endif()
- endforeach(vs)
-
- if("${CMAKE_SIZEOF_VOID_P}" EQUAL 4)
- find_program(CMAKE_GNUtoMS_VCVARS NAMES vcvars32.bat
- DOC "Visual Studio vcvars32.bat"
- PATHS
- ${_vs_installer_paths}
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\14.0\\Setup\\VC;ProductDir]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\12.0\\Setup\\VC;ProductDir]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0\\Setup\\VC;ProductDir]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0\\Setup\\VC;ProductDir]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\Setup\\VC;ProductDir]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.1\\Setup\\VC;ProductDir]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Setup\\Microsoft Visual C++;ProductDir]/bin"
- )
- set(CMAKE_GNUtoMS_ARCH x86)
- elseif("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
- find_program(CMAKE_GNUtoMS_VCVARS NAMES vcvars64.bat vcvarsamd64.bat
- DOC "Visual Studio vcvarsamd64.bat"
- PATHS
- ${_vs_installer_paths}
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\14.0\\Setup\\VC;ProductDir]/bin/amd64"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\12.0\\Setup\\VC;ProductDir]/bin/amd64"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0\\Setup\\VC;ProductDir]/bin/amd64"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0\\Setup\\VC;ProductDir]/bin/amd64"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\Setup\\VC;ProductDir]/bin/amd64"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/bin/amd64"
- )
- set(CMAKE_GNUtoMS_ARCH amd64)
- endif()
- unset(_vs_installer_paths)
- set_property(CACHE CMAKE_GNUtoMS_VCVARS PROPERTY ADVANCED 1)
- if(CMAKE_GNUtoMS_VCVARS)
- # Create helper script to run lib.exe from MS environment.
- string(REPLACE "/" "\\" CMAKE_GNUtoMS_BAT "${CMAKE_GNUtoMS_VCVARS}")
- set(CMAKE_GNUtoMS_LIB ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeGNUtoMS_lib.bat)
- configure_file(${CMAKE_ROOT}/Modules/Platform/GNUtoMS_lib.bat.in ${CMAKE_GNUtoMS_LIB})
- else()
- message(WARNING "Disabling CMAKE_GNUtoMS option because CMAKE_GNUtoMS_VCVARS is not set.")
- set(CMAKE_GNUtoMS 0)
- endif()
- endif()
-
- if(CMAKE_GNUtoMS)
- # Teach CMake how to create a MS import library at link time.
- set(CMAKE_${lang}_GNUtoMS_RULE " -Wl,--output-def,<TARGET_NAME>.def"
- "<CMAKE_COMMAND> -Dlib=\"${CMAKE_GNUtoMS_LIB}\" -Ddef=<TARGET_NAME>.def -Ddll=<TARGET> -Dimp=<TARGET_IMPLIB> -P \"${CMAKE_ROOT}/Modules/Platform/GNUtoMS_lib.cmake\""
- )
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/Windows-MSVC.cmake b/share/cmake-3.16/Modules/Platform/Windows-MSVC.cmake
deleted file mode 100644
index 34f5d03..0000000
--- a/share/cmake-3.16/Modules/Platform/Windows-MSVC.cmake
+++ /dev/null
@@ -1,443 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This module is shared by multiple languages; use include blocker.
-if(__WINDOWS_MSVC)
- return()
-endif()
-set(__WINDOWS_MSVC 1)
-
-set(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:")
-set(CMAKE_LINK_LIBRARY_FLAG "")
-set(MSVC 1)
-
-# hack: if a new cmake (which uses CMAKE_LINKER) runs on an old build tree
-# (where link was hardcoded) and where CMAKE_LINKER isn't in the cache
-# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun)
-# hardcode CMAKE_LINKER here to link, so it behaves as it did before, Alex
-if(NOT DEFINED CMAKE_LINKER)
- set(CMAKE_LINKER link)
-endif()
-
-if(CMAKE_VERBOSE_MAKEFILE)
- set(CMAKE_CL_NOLOGO)
-else()
- set(CMAKE_CL_NOLOGO "/nologo")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "WindowsCE")
- set(CMAKE_CREATE_WIN32_EXE "/entry:WinMainCRTStartup")
- set(CMAKE_CREATE_CONSOLE_EXE "/entry:mainACRTStartup")
- set(_PLATFORM_LINK_FLAGS " /subsystem:windowsce")
-else()
- set(CMAKE_CREATE_WIN32_EXE "/subsystem:windows")
- set(CMAKE_CREATE_CONSOLE_EXE "/subsystem:console")
- set(_PLATFORM_LINK_FLAGS "")
-endif()
-
-set(CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS 1)
-if(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio")
- set (CMAKE_NO_BUILD_TYPE 1)
-endif()
-
-if("${CMAKE_GENERATOR}" MATCHES "Visual Studio")
- set(MSVC_IDE 1)
-else()
- set(MSVC_IDE 0)
-endif()
-
-if(NOT MSVC_VERSION)
- if("x${CMAKE_C_COMPILER_ID}" STREQUAL "xMSVC")
- set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
- elseif("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
- set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
- elseif(CMAKE_C_SIMULATE_VERSION)
- set(_compiler_version ${CMAKE_C_SIMULATE_VERSION})
- elseif(CMAKE_CXX_SIMULATE_VERSION)
- set(_compiler_version ${CMAKE_CXX_SIMULATE_VERSION})
- elseif(CMAKE_Fortran_SIMULATE_VERSION)
- set(_compiler_version ${CMAKE_Fortran_SIMULATE_VERSION})
- elseif(CMAKE_CUDA_SIMULATE_VERSION)
- set(_compiler_version ${CMAKE_CUDA_SIMULATE_VERSION})
- elseif(CMAKE_C_COMPILER_VERSION)
- set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
- else()
- set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
- endif()
- if("${_compiler_version}" MATCHES "^([0-9]+)\\.([0-9]+)")
- math(EXPR MSVC_VERSION "${CMAKE_MATCH_1}*100 + ${CMAKE_MATCH_2}")
- else()
- message(FATAL_ERROR "MSVC compiler version not detected properly: ${_compiler_version}")
- endif()
-
- if(MSVC_VERSION GREATER_EQUAL 1920)
- # VS 2019 or greater
- set(MSVC_TOOLSET_VERSION 142)
- elseif(MSVC_VERSION GREATER_EQUAL 1910)
- # VS 2017 or greater
- set(MSVC_TOOLSET_VERSION 141)
- elseif(MSVC_VERSION EQUAL 1900)
- # VS 2015
- set(MSVC_TOOLSET_VERSION 140)
- elseif(MSVC_VERSION EQUAL 1800)
- # VS 2013
- set(MSVC_TOOLSET_VERSION 120)
- elseif(MSVC_VERSION EQUAL 1700)
- # VS 2012
- set(MSVC_TOOLSET_VERSION 110)
- elseif(MSVC_VERSION EQUAL 1600)
- # VS 2010
- set(MSVC_TOOLSET_VERSION 100)
- elseif(MSVC_VERSION EQUAL 1500)
- # VS 2008
- set(MSVC_TOOLSET_VERSION 90)
- elseif(MSVC_VERSION EQUAL 1400)
- # VS 2005
- set(MSVC_TOOLSET_VERSION 80)
- else()
- # We don't support MSVC_TOOLSET_VERSION for earlier compiler.
- endif()
-
- set(MSVC10)
- set(MSVC11)
- set(MSVC12)
- set(MSVC14)
- set(MSVC60)
- set(MSVC70)
- set(MSVC71)
- set(MSVC80)
- set(MSVC90)
- set(CMAKE_COMPILER_2005)
- set(CMAKE_COMPILER_SUPPORTS_PDBTYPE)
- if(NOT "${_compiler_version}" VERSION_LESS 20)
- # We no longer provide per-version variables. Use MSVC_VERSION instead.
- elseif(NOT "${_compiler_version}" VERSION_LESS 19)
- set(MSVC14 1)
- elseif(NOT "${_compiler_version}" VERSION_LESS 18)
- set(MSVC12 1)
- elseif(NOT "${_compiler_version}" VERSION_LESS 17)
- set(MSVC11 1)
- elseif(NOT "${_compiler_version}" VERSION_LESS 16)
- set(MSVC10 1)
- elseif(NOT "${_compiler_version}" VERSION_LESS 15)
- set(MSVC90 1)
- elseif(NOT "${_compiler_version}" VERSION_LESS 14)
- set(MSVC80 1)
- set(CMAKE_COMPILER_2005 1)
- elseif(NOT "${_compiler_version}" VERSION_LESS 13.10)
- set(MSVC71 1)
- elseif(NOT "${_compiler_version}" VERSION_LESS 13)
- set(MSVC70 1)
- else()
- set(MSVC60 1)
- set(CMAKE_COMPILER_SUPPORTS_PDBTYPE 1)
- endif()
-endif()
-
-if(MSVC_C_ARCHITECTURE_ID MATCHES 64 OR MSVC_CXX_ARCHITECTURE_ID MATCHES 64)
- set(CMAKE_CL_64 1)
-else()
- set(CMAKE_CL_64 0)
-endif()
-if(CMAKE_FORCE_WIN64 OR CMAKE_FORCE_IA64)
- set(CMAKE_CL_64 1)
-endif()
-
-if("${MSVC_VERSION}" GREATER 1599)
- set(MSVC_INCREMENTAL_DEFAULT ON)
-endif()
-
-# default to Debug builds
-set(CMAKE_BUILD_TYPE_INIT Debug)
-
-# Compute an architecture family from the architecture id.
-foreach(lang C CXX)
- set(_MSVC_${lang}_ARCHITECTURE_FAMILY "${MSVC_${lang}_ARCHITECTURE_ID}")
- if(_MSVC_${lang}_ARCHITECTURE_FAMILY MATCHES "^ARM64")
- set(_MSVC_${lang}_ARCHITECTURE_FAMILY "ARM64")
- elseif(_MSVC_${lang}_ARCHITECTURE_FAMILY MATCHES "^ARM")
- set(_MSVC_${lang}_ARCHITECTURE_FAMILY "ARM")
- elseif(_MSVC_${lang}_ARCHITECTURE_FAMILY MATCHES "^SH")
- set(_MSVC_${lang}_ARCHITECTURE_FAMILY "SHx")
- endif()
-endforeach()
-
-if(WINCE)
- foreach(lang C CXX)
- string(TOUPPER "${_MSVC_${lang}_ARCHITECTURE_FAMILY}" _MSVC_${lang}_ARCHITECTURE_FAMILY_UPPER)
- endforeach()
-
- if("${CMAKE_SYSTEM_VERSION}" MATCHES "^([0-9]+)\\.([0-9]+)")
- math(EXPR _CE_VERSION "${CMAKE_MATCH_1}*100 + ${CMAKE_MATCH_2}")
- elseif("${CMAKE_SYSTEM_VERSION}" STREQUAL "")
- set(_CE_VERSION "500")
- else()
- message(FATAL_ERROR "Invalid Windows CE version: ${CMAKE_SYSTEM_VERSION}")
- endif()
-
- set(_PLATFORM_DEFINES "/D_WIN32_WCE=0x${_CE_VERSION} /DUNDER_CE /DWINCE")
- set(_PLATFORM_DEFINES_C " /D${_MSVC_C_ARCHITECTURE_FAMILY} /D_${_MSVC_C_ARCHITECTURE_FAMILY_UPPER}_")
- set(_PLATFORM_DEFINES_CXX " /D${_MSVC_CXX_ARCHITECTURE_FAMILY} /D_${_MSVC_CXX_ARCHITECTURE_FAMILY_UPPER}_")
-
- set(_RTC1 "")
- set(_FLAGS_C "")
- set(_FLAGS_CXX " /GR /EHsc")
-
- foreach(lang C CXX)
- if(_MSVC_${lang}_ARCHITECTURE_FAMILY STREQUAL "ARM")
- string(APPEND _PLATFORM_DEFINES_${lang} " /D${MSVC_${lang}_ARCHITECTURE_ID}")
- if(MSVC_${lang}_ARCHITECTURE_ID MATCHES "^ARMV([45])I$")
- string(APPEND _FLAGS_${lang} " /QRarch${CMAKE_MATCH_1}T")
- endif()
- endif()
- endforeach()
-
- set(CMAKE_C_STANDARD_LIBRARIES_INIT "coredll.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib")
- foreach(t EXE SHARED MODULE)
- string(APPEND CMAKE_${t}_LINKER_FLAGS_INIT " /NODEFAULTLIB:libc.lib /NODEFAULTLIB:oldnames.lib")
- endforeach()
-
- if (MSVC_VERSION LESS 1600)
- string(APPEND CMAKE_C_STANDARD_LIBRARIES_INIT " corelibc.lib")
- endif ()
-elseif(WINDOWS_PHONE OR WINDOWS_STORE)
- set(_PLATFORM_DEFINES "/DWIN32")
- set(_FLAGS_C " /DUNICODE /D_UNICODE")
- set(_FLAGS_CXX " /DUNICODE /D_UNICODE /GR /EHsc")
- if(WINDOWS_STORE AND MSVC_VERSION GREATER 1899)
- set(CMAKE_C_STANDARD_LIBRARIES_INIT "WindowsApp.lib")
- elseif(WINDOWS_PHONE)
- set(CMAKE_C_STANDARD_LIBRARIES_INIT "WindowsPhoneCore.lib RuntimeObject.lib PhoneAppModelHost.lib")
- elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM" OR _MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM" OR _MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM64" OR _MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM64")
- set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib")
- else()
- set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib")
- endif()
-else()
- set(_PLATFORM_DEFINES "/DWIN32")
-
- if(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM" OR _MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM" OR _MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM64" OR _MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM64")
- set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib")
- elseif(MSVC_VERSION GREATER 1310)
- if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "v[0-9]+_clang_.*")
- # Clang/C2 in MSVC14 Update 1 seems to not support -fsantinize (yet?)
- # set(_RTC1 "-fsantinize=memory,safe-stack")
- set(_FLAGS_CXX " -frtti -fexceptions")
- else()
- set(_RTC1 "/RTC1")
- set(_FLAGS_CXX " /GR /EHsc")
- endif()
- set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib")
- else()
- set(_RTC1 "/GZ")
- set(_FLAGS_CXX " /GR /GX")
- set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib")
- endif()
-
- if(MSVC_VERSION LESS 1310)
- set(_FLAGS_C " /Zm1000${_FLAGS_C}")
- set(_FLAGS_CXX " /Zm1000${_FLAGS_CXX}")
- endif()
-endif()
-
-set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}")
-
-# executable linker flags
-set (CMAKE_LINK_DEF_FILE_FLAG "/DEF:")
-# set the machine type
-if(MSVC_C_ARCHITECTURE_ID)
- if(MSVC_C_ARCHITECTURE_ID MATCHES "^ARMV.I")
- set(_MACHINE_ARCH_FLAG "/machine:THUMB")
- elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM64")
- set(_MACHINE_ARCH_FLAG "/machine:ARM64")
- elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM")
- set(_MACHINE_ARCH_FLAG "/machine:ARM")
- else()
- set(_MACHINE_ARCH_FLAG "/machine:${MSVC_C_ARCHITECTURE_ID}")
- endif()
-elseif(MSVC_CXX_ARCHITECTURE_ID)
- if(MSVC_CXX_ARCHITECTURE_ID MATCHES "^ARMV.I")
- set(_MACHINE_ARCH_FLAG "/machine:THUMB")
- elseif(_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM64")
- set(_MACHINE_ARCH_FLAG "/machine:ARM64")
- elseif(_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM")
- set(_MACHINE_ARCH_FLAG "/machine:ARM")
- else()
- set(_MACHINE_ARCH_FLAG "/machine:${MSVC_CXX_ARCHITECTURE_ID}")
- endif()
-elseif(MSVC_Fortran_ARCHITECTURE_ID)
- set(_MACHINE_ARCH_FLAG "/machine:${MSVC_Fortran_ARCHITECTURE_ID}")
-endif()
-
-# add /debug and /INCREMENTAL:YES to DEBUG and RELWITHDEBINFO also add pdbtype
-# on versions that support it
-set( MSVC_INCREMENTAL_YES_FLAG "")
-if(NOT WINDOWS_PHONE AND NOT WINDOWS_STORE)
- if(NOT MSVC_INCREMENTAL_DEFAULT)
- set( MSVC_INCREMENTAL_YES_FLAG "/INCREMENTAL:YES")
- else()
- set( MSVC_INCREMENTAL_YES_FLAG "/INCREMENTAL" )
- endif()
-endif()
-
-foreach(t EXE SHARED MODULE)
- string(APPEND CMAKE_${t}_LINKER_FLAGS_INIT " ${_MACHINE_ARCH_FLAG}")
- if (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
- string(APPEND CMAKE_${t}_LINKER_FLAGS_DEBUG_INIT " /debug /pdbtype:sept ${MSVC_INCREMENTAL_YES_FLAG}")
- string(APPEND CMAKE_${t}_LINKER_FLAGS_RELWITHDEBINFO_INIT " /debug /pdbtype:sept ${MSVC_INCREMENTAL_YES_FLAG}")
- else ()
- string(APPEND CMAKE_${t}_LINKER_FLAGS_DEBUG_INIT " /debug ${MSVC_INCREMENTAL_YES_FLAG}")
- string(APPEND CMAKE_${t}_LINKER_FLAGS_RELWITHDEBINFO_INIT " /debug ${MSVC_INCREMENTAL_YES_FLAG}")
- endif ()
- # for release and minsize release default to no incremental linking
- string(APPEND CMAKE_${t}_LINKER_FLAGS_MINSIZEREL_INIT " /INCREMENTAL:NO")
- string(APPEND CMAKE_${t}_LINKER_FLAGS_RELEASE_INIT " /INCREMENTAL:NO")
-endforeach()
-
-string(APPEND CMAKE_STATIC_LINKER_FLAGS_INIT " ${_MACHINE_ARCH_FLAG}")
-unset(_MACHINE_ARCH_FLAG)
-
-cmake_policy(GET CMP0091 __WINDOWS_MSVC_CMP0091)
-if(__WINDOWS_MSVC_CMP0091 STREQUAL "NEW")
- set(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
-else()
- set(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT "")
-endif()
-unset(__WINDOWS_MSVC_CMP0091)
-
-macro(__windows_compiler_msvc lang)
- if(NOT MSVC_VERSION LESS 1400)
- # for 2005 make sure the manifest is put in the dll with mt
- set(_CMAKE_VS_LINK_DLL "<CMAKE_COMMAND> -E vs_link_dll --intdir=<OBJECT_DIR> --rc=<CMAKE_RC_COMPILER> --mt=<CMAKE_MT> --manifests <MANIFESTS> -- ")
- set(_CMAKE_VS_LINK_EXE "<CMAKE_COMMAND> -E vs_link_exe --intdir=<OBJECT_DIR> --rc=<CMAKE_RC_COMPILER> --mt=<CMAKE_MT> --manifests <MANIFESTS> -- ")
- endif()
- set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
- "${_CMAKE_VS_LINK_DLL}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /dll /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR>${_PLATFORM_LINK_FLAGS} <LINK_FLAGS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
-
- set(CMAKE_${lang}_CREATE_SHARED_MODULE ${CMAKE_${lang}_CREATE_SHARED_LIBRARY})
- set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_LINKER> /lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
-
- set(CMAKE_${lang}_COMPILE_OBJECT
- "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <DEFINES> <INCLUDES> <FLAGS> /Fo<OBJECT> /Fd<TARGET_COMPILE_PDB>${_FS_${lang}} -c <SOURCE>${CMAKE_END_TEMP_FILE}")
- set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE
- "<CMAKE_${lang}_COMPILER> > <PREPROCESSED_SOURCE> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE>${CMAKE_END_TEMP_FILE}")
- set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE
- "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <DEFINES> <INCLUDES> <FLAGS> /FoNUL /FAs /Fa<ASSEMBLY_SOURCE> /c <SOURCE>${CMAKE_END_TEMP_FILE}")
-
- set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 1)
- set(CMAKE_${lang}_LINK_EXECUTABLE
- "${_CMAKE_VS_LINK_EXE}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR>${_PLATFORM_LINK_FLAGS} <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
-
- set(CMAKE_PCH_EXTENSION .pch)
- set(CMAKE_LINK_PCH ON)
- if(MSVC_VERSION GREATER_EQUAL 1910)
- # VS 2017 or greater
- if (NOT ${CMAKE_${lang}_COMPILER_ID} STREQUAL "Clang")
- set(CMAKE_PCH_PROLOGUE "#pragma system_header")
- else()
- set(CMAKE_PCH_PROLOGUE "#pragma clang system_header")
- endif()
- endif()
- if (NOT ${CMAKE_${lang}_COMPILER_ID} STREQUAL "Clang")
- set(CMAKE_PCH_COPY_COMPILE_PDB ON)
- endif()
- set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH /Yu<PCH_HEADER> /Fp<PCH_FILE> /FI<PCH_HEADER>)
- set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH /Yc<PCH_HEADER> /Fp<PCH_FILE> /FI<PCH_HEADER>)
-
- if("x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xMSVC")
- set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
- set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
-
- set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "/GL")
- set(CMAKE_${lang}_LINK_OPTIONS_IPO "/INCREMENTAL:NO" "/LTCG")
- string(REPLACE "<LINK_FLAGS> " "/LTCG <LINK_FLAGS> "
- CMAKE_${lang}_CREATE_STATIC_LIBRARY_IPO "${CMAKE_${lang}_CREATE_STATIC_LIBRARY}")
- elseif("x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xClang" OR
- "x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xFlang")
- set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
- set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
-
- # '-flto=thin' available since Clang 3.9 and Xcode 8
- # * http://clang.llvm.org/docs/ThinLTO.html#clang-llvm
- # * https://trac.macports.org/wiki/XcodeVersionInfo
- set(_CMAKE_LTO_THIN TRUE)
- if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.9)
- set(_CMAKE_LTO_THIN FALSE)
- endif()
-
- if(_CMAKE_LTO_THIN)
- set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto=thin")
- else()
- set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto")
- endif()
- endif()
-
- if("x${lang}" STREQUAL "xC" OR
- "x${lang}" STREQUAL "xCXX")
- if(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT)
- set(_MDd "")
- set(_MD "")
- else()
- set(_MDd " /MDd")
- set(_MD " /MD")
- endif()
-
- cmake_policy(GET CMP0092 _cmp0092)
- if(_cmp0092 STREQUAL "NEW")
- set(_W3 "")
- set(_Wall "")
- else()
- set(_W3 " /W3")
- set(_Wall " -Wall")
- endif()
- unset(_cmp0092)
-
- if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "v[0-9]+_clang_.*")
- # note: MSVC 14 2015 Update 1 sets -fno-ms-compatibility by default, but this does not allow one to compile many projects
- # that include MS's own headers. CMake itself is affected project too.
- string(APPEND CMAKE_${lang}_FLAGS_INIT " ${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_${lang}} -fms-extensions -fms-compatibility -D_WINDOWS${_Wall}${_FLAGS_${lang}}")
- string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT "${_MDd} -gline-tables-only -fno-inline -O0 ${_RTC1}")
- string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT "${_MD} -O2 -DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "${_MD} -gline-tables-only -O2 -fno-inline -DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "${_MD} -DNDEBUG") # TODO: Add '-Os' once VS generator maps it properly for Clang
- else()
- string(APPEND CMAKE_${lang}_FLAGS_INIT " ${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_${lang}} /D_WINDOWS${_W3}${_FLAGS_${lang}}")
- string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT "${_MDd} /Zi /Ob0 /Od ${_RTC1}")
- string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT "${_MD} /O2 /Ob2 /DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "${_MD} /Zi /O2 /Ob1 /DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "${_MD} /O1 /Ob1 /DNDEBUG")
- endif()
- unset(_Wall)
- unset(_W3)
- unset(_MDd)
- unset(_MD)
-
- set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded -MT)
- set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL -MD)
- set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug -MTd)
- set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL -MDd)
- endif()
- set(CMAKE_${lang}_LINKER_SUPPORTS_PDB ON)
- set(CMAKE_NINJA_DEPTYPE_${lang} msvc)
- __windows_compiler_msvc_enable_rc("${_PLATFORM_DEFINES} ${_PLATFORM_DEFINES_${lang}}")
-endmacro()
-
-macro(__windows_compiler_msvc_enable_rc flags)
- if(NOT CMAKE_RC_COMPILER_INIT)
- set(CMAKE_RC_COMPILER_INIT rc)
- endif()
- if(NOT CMAKE_RC_FLAGS_INIT)
- # llvm-rc fails when flags are specified with /D and no space after
- string(REPLACE " /D" " -D" fixed_flags " ${flags}")
- string(APPEND CMAKE_RC_FLAGS_INIT " ${fixed_flags}")
- endif()
- if(NOT CMAKE_RC_FLAGS_DEBUG_INIT)
- string(APPEND CMAKE_RC_FLAGS_DEBUG_INIT " -D_DEBUG")
- endif()
-
- enable_language(RC)
- if(NOT DEFINED CMAKE_NINJA_CMCLDEPS_RC)
- set(CMAKE_NINJA_CMCLDEPS_RC 1)
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/Windows-NVIDIA-CUDA.cmake b/share/cmake-3.16/Modules/Platform/Windows-NVIDIA-CUDA.cmake
deleted file mode 100644
index 94d77b9..0000000
--- a/share/cmake-3.16/Modules/Platform/Windows-NVIDIA-CUDA.cmake
+++ /dev/null
@@ -1,95 +0,0 @@
-include(Platform/Windows-MSVC)
-
-set(CMAKE_CUDA_COMPILE_PTX_COMPILATION
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -ptx <SOURCE> -o <OBJECT> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS")
-set(CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -dc <SOURCE> -o <OBJECT> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS")
-set(CMAKE_CUDA_COMPILE_WHOLE_COMPILATION
- "<CMAKE_CUDA_COMPILER> ${CMAKE_CUDA_HOST_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -c <SOURCE> -o <OBJECT> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS")
-
-set(__IMPLICT_LINKS )
-foreach(dir ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
- string(APPEND __IMPLICT_LINKS " -LIBPATH:\"${dir}\"")
-endforeach()
-foreach(lib ${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES})
- string(APPEND __IMPLICT_LINKS " \"${lib}\"")
-endforeach()
-set(CMAKE_CUDA_LINK_EXECUTABLE
- "<CMAKE_CUDA_HOST_LINK_LAUNCHER> <LINK_FLAGS> <OBJECTS> /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <LINK_LIBRARIES>${__IMPLICT_LINKS}")
-
-set(_CMAKE_VS_LINK_DLL "<CMAKE_COMMAND> -E vs_link_dll --intdir=<OBJECT_DIR> --rc=<CMAKE_RC_COMPILER> --mt=<CMAKE_MT> --manifests <MANIFESTS> -- ")
-set(_CMAKE_VS_LINK_EXE "<CMAKE_COMMAND> -E vs_link_exe --intdir=<OBJECT_DIR> --rc=<CMAKE_RC_COMPILER> --mt=<CMAKE_MT> --manifests <MANIFESTS> -- ")
-set(CMAKE_CUDA_CREATE_SHARED_LIBRARY
- "${_CMAKE_VS_LINK_DLL}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /dll /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR>${_PLATFORM_LINK_FLAGS} <LINK_FLAGS> <LINK_LIBRARIES>${__IMPLICT_LINKS} ${CMAKE_END_TEMP_FILE}")
-
-set(CMAKE_CUDA_CREATE_SHARED_MODULE ${CMAKE_CUDA_CREATE_SHARED_LIBRARY})
-set(CMAKE_CUDA_CREATE_STATIC_LIBRARY "<CMAKE_LINKER> /lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
-set(CMAKE_CUDA_LINKER_SUPPORTS_PDB ON)
-set(CMAKE_CUDA_LINK_EXECUTABLE
- "${_CMAKE_VS_LINK_EXE}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR>${_PLATFORM_LINK_FLAGS} <LINK_FLAGS> <LINK_LIBRARIES>${__IMPLICT_LINKS} ${CMAKE_END_TEMP_FILE}")
-unset(_CMAKE_VS_LINK_EXE)
-unset(_CMAKE_VS_LINK_EXE)
-
-if(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "8.0.0")
- set(_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS "-Wno-deprecated-gpu-targets")
-else()
- set(_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS "")
-endif()
-
-# Add implicit host link directories that contain device libraries
-# to the device link line.
-set(__IMPLICT_DLINK_DIRS ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
-if(__IMPLICT_DLINK_DIRS)
- list(REMOVE_ITEM __IMPLICT_DLINK_DIRS ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
-endif()
-set(__IMPLICT_DLINK_FLAGS )
-foreach(dir ${__IMPLICT_DLINK_DIRS})
- if(EXISTS "${dir}/curand_static.lib")
- string(APPEND __IMPLICT_DLINK_FLAGS " -L\"${dir}\"")
- endif()
-endforeach()
-unset(__IMPLICT_DLINK_DIRS)
-
-set(CMAKE_CUDA_DEVICE_LINK_LIBRARY
- "<CMAKE_CUDA_COMPILER> <LANGUAGE_COMPILE_FLAGS> ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS${__IMPLICT_DLINK_FLAGS}")
-set(CMAKE_CUDA_DEVICE_LINK_EXECUTABLE
- "<CMAKE_CUDA_COMPILER> <FLAGS> ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS${__IMPLICT_DLINK_FLAGS}")
-
-unset(_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS)
-unset(__IMPLICT_DLINK_FLAGS)
-
-string(REPLACE "/D" "-D" _PLATFORM_DEFINES_CUDA "${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_CXX}")
-
-if(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT)
- set(_MDd "")
- set(_MD "")
-else()
- set(_MDd "-MDd ")
- set(_MD "-MD ")
-endif()
-
-cmake_policy(GET CMP0092 _cmp0092)
-if(_cmp0092 STREQUAL "NEW")
- set(_W3 "")
-else()
- set(_W3 "/W3")
-endif()
-unset(_cmp0092)
-
-string(APPEND CMAKE_CUDA_FLAGS_INIT " ${PLATFORM_DEFINES_CUDA} -D_WINDOWS -Xcompiler=\"${_W3}${_FLAGS_CXX}\"")
-string(APPEND CMAKE_CUDA_FLAGS_DEBUG_INIT " -Xcompiler=\"${_MDd}-Zi -Ob0 -Od ${_RTC1}\"")
-string(APPEND CMAKE_CUDA_FLAGS_RELEASE_INIT " -Xcompiler=\"${_MD}-O2 -Ob2\" -DNDEBUG")
-string(APPEND CMAKE_CUDA_FLAGS_RELWITHDEBINFO_INIT " -Xcompiler=\"${_MD}-Zi -O2 -Ob1\" -DNDEBUG")
-string(APPEND CMAKE_CUDA_FLAGS_MINSIZEREL_INIT " -Xcompiler=\"${_MD}-O1 -Ob1\" -DNDEBUG")
-unset(_W3)
-unset(_MDd)
-unset(_MD)
-
-set(CMAKE_CUDA_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded -Xcompiler=-MT)
-set(CMAKE_CUDA_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL -Xcompiler=-MD)
-set(CMAKE_CUDA_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug -Xcompiler=-MTd)
-set(CMAKE_CUDA_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL -Xcompiler=-MDd)
-
-set(CMAKE_CUDA_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}")
-
-__windows_compiler_msvc_enable_rc("${_PLATFORM_DEFINES} ${_PLATFORM_DEFINES_CXX}")
diff --git a/share/cmake-3.16/Modules/Platform/Windows-PGI.cmake b/share/cmake-3.16/Modules/Platform/Windows-PGI.cmake
deleted file mode 100644
index ad77e8a..0000000
--- a/share/cmake-3.16/Modules/Platform/Windows-PGI.cmake
+++ /dev/null
@@ -1,48 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# This module is shared by multiple languages; use include blocker.
-if(__WINDOWS_COMPILER_PGI)
- return()
-endif()
-set(__WINDOWS_COMPILER_PGI 1)
-
-# PGI on Windows doesn't support parallel compile processes
-if(NOT DEFINED CMAKE_JOB_POOL_LINK OR NOT DEFINED CMAKE_JOB_POOL_COMPILE)
- set(CMAKE_JOB_POOL_LINK PGITaskPool)
- set(CMAKE_JOB_POOL_COMPILE PGITaskPool)
- get_property(_pgijp GLOBAL PROPERTY JOB_POOLS)
- if(NOT _pgijp MATCHES "PGITaskPool=")
- set_property(GLOBAL APPEND PROPERTY JOB_POOLS PGITaskPool=1)
- endif()
- unset(_pgijp)
-endif()
-
-set(CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS 1)
-set(CMAKE_LINK_DEF_FILE_FLAG "-def:")
-# The link flags for PGI are the raw filename to add a file
-# and the UNIX -L syntax to link directories.
-set(CMAKE_LINK_LIBRARY_FLAG "")
-set(CMAKE_LINK_STARTFILE "pgimain[mx][xpt]+[.]obj")
-
-# Default to Debug builds, mirroring Windows-MSVC behavior
-set(CMAKE_BUILD_TYPE_INIT Debug)
-
-if(CMAKE_VERBOSE_MAKEFILE)
- set(CMAKE_CL_NOLOGO)
-else()
- set(CMAKE_CL_NOLOGO "/nologo")
-endif()
-
-macro(__windows_compiler_pgi lang)
- # Shared library compile and link rules.
- set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
- set(CMAKE_${lang}_CREATE_SHARED_LIBRARY "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} -Mmakedll -implib:<TARGET_IMPLIB> -Xlinker -pdb:<TARGET_PDB> -Xlinker -version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <LINK_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
- set(CMAKE_${lang}_CREATE_SHARED_MODULE "${CMAKE_${lang}_CREATE_SHARED_LIBRARY}")
- set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} -implib:<TARGET_IMPLIB> -Xlinker -pdb:<TARGET_PDB> -Xlinker -version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
-
- if("${lang}" MATCHES "C|CXX")
- set(CMAKE_${lang}_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib")
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/Qt4Macros.cmake b/share/cmake-3.16/Modules/Qt4Macros.cmake
deleted file mode 100644
index 33cacf1..0000000
--- a/share/cmake-3.16/Modules/Qt4Macros.cmake
+++ /dev/null
@@ -1,514 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-Qt4Macros
----------
-
-
-
-This file is included by FindQt4.cmake, don't include it directly.
-#]=======================================================================]
-
-######################################
-#
-# Macros for building Qt files
-#
-######################################
-
-
-macro (QT4_EXTRACT_OPTIONS _qt4_files _qt4_options _qt4_target)
- set(${_qt4_files})
- set(${_qt4_options})
- set(_QT4_DOING_OPTIONS FALSE)
- set(_QT4_DOING_TARGET FALSE)
- foreach(_currentArg ${ARGN})
- if ("x${_currentArg}" STREQUAL "xOPTIONS")
- set(_QT4_DOING_OPTIONS TRUE)
- elseif ("x${_currentArg}" STREQUAL "xTARGET")
- set(_QT4_DOING_TARGET TRUE)
- else ()
- if(_QT4_DOING_TARGET)
- set(${_qt4_target} "${_currentArg}")
- elseif(_QT4_DOING_OPTIONS)
- list(APPEND ${_qt4_options} "${_currentArg}")
- else()
- list(APPEND ${_qt4_files} "${_currentArg}")
- endif()
- endif ()
- endforeach()
-endmacro ()
-
-
-# macro used to create the names of output files preserving relative dirs
-macro (QT4_MAKE_OUTPUT_FILE infile prefix ext outfile )
- string(LENGTH ${CMAKE_CURRENT_BINARY_DIR} _binlength)
- string(LENGTH ${infile} _infileLength)
- set(_checkinfile ${CMAKE_CURRENT_SOURCE_DIR})
- if(_infileLength GREATER _binlength)
- string(SUBSTRING "${infile}" 0 ${_binlength} _checkinfile)
- if(_checkinfile STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
- file(RELATIVE_PATH rel ${CMAKE_CURRENT_BINARY_DIR} ${infile})
- else()
- file(RELATIVE_PATH rel ${CMAKE_CURRENT_SOURCE_DIR} ${infile})
- endif()
- else()
- file(RELATIVE_PATH rel ${CMAKE_CURRENT_SOURCE_DIR} ${infile})
- endif()
- if(WIN32 AND rel MATCHES "^([a-zA-Z]):(.*)$") # absolute path
- set(rel "${CMAKE_MATCH_1}_${CMAKE_MATCH_2}")
- endif()
- set(_outfile "${CMAKE_CURRENT_BINARY_DIR}/${rel}")
- string(REPLACE ".." "__" _outfile ${_outfile})
- get_filename_component(outpath ${_outfile} PATH)
- get_filename_component(_outfile ${_outfile} NAME_WE)
- file(MAKE_DIRECTORY ${outpath})
- set(${outfile} ${outpath}/${prefix}${_outfile}.${ext})
-endmacro ()
-
-
-macro (QT4_GET_MOC_FLAGS _moc_flags)
- set(${_moc_flags})
- get_directory_property(_inc_DIRS INCLUDE_DIRECTORIES)
-
- foreach(_current ${_inc_DIRS})
- if("${_current}" MATCHES "\\.framework/?$")
- string(REGEX REPLACE "/[^/]+\\.framework" "" framework_path "${_current}")
- set(${_moc_flags} ${${_moc_flags}} "-F${framework_path}")
- else()
- set(${_moc_flags} ${${_moc_flags}} "-I${_current}")
- endif()
- endforeach()
-
- get_directory_property(_defines COMPILE_DEFINITIONS)
- foreach(_current ${_defines})
- set(${_moc_flags} ${${_moc_flags}} "-D${_current}")
- endforeach()
-
- if(Q_WS_WIN)
- set(${_moc_flags} ${${_moc_flags}} -DWIN32)
- endif()
-
-endmacro()
-
-
-# helper macro to set up a moc rule
-function (QT4_CREATE_MOC_COMMAND infile outfile moc_flags moc_options moc_target)
- # For Windows, create a parameters file to work around command line length limit
- # Pass the parameters in a file. Set the working directory to
- # be that containing the parameters file and reference it by
- # just the file name. This is necessary because the moc tool on
- # MinGW builds does not seem to handle spaces in the path to the
- # file given with the @ syntax.
- get_filename_component(_moc_outfile_name "${outfile}" NAME)
- get_filename_component(_moc_outfile_dir "${outfile}" PATH)
- if(_moc_outfile_dir)
- set(_moc_working_dir WORKING_DIRECTORY ${_moc_outfile_dir})
- endif()
- set (_moc_parameters_file ${outfile}_parameters)
- set (_moc_parameters ${moc_flags} ${moc_options} -o "${outfile}" "${infile}")
- string (REPLACE ";" "\n" _moc_parameters "${_moc_parameters}")
-
- if(moc_target)
- set (_moc_parameters_file ${_moc_parameters_file}$<$<BOOL:$<CONFIGURATION>>:_$<CONFIGURATION>>)
- set(targetincludes "$<TARGET_PROPERTY:${moc_target},INCLUDE_DIRECTORIES>")
- set(targetdefines "$<TARGET_PROPERTY:${moc_target},COMPILE_DEFINITIONS>")
-
- set(targetincludes "$<$<BOOL:${targetincludes}>:-I$<JOIN:${targetincludes},\n-I>\n>")
- set(targetdefines "$<$<BOOL:${targetdefines}>:-D$<JOIN:${targetdefines},\n-D>\n>")
-
- file (GENERATE
- OUTPUT ${_moc_parameters_file}
- CONTENT "${targetdefines}${targetincludes}${_moc_parameters}\n"
- )
-
- set(targetincludes)
- set(targetdefines)
- else()
- set(CMAKE_CONFIGURABLE_FILE_CONTENT "${_moc_parameters}")
- configure_file("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
- "${_moc_parameters_file}" @ONLY)
- endif()
-
- set(_moc_extra_parameters_file @${_moc_parameters_file})
- add_custom_command(OUTPUT ${outfile}
- COMMAND Qt4::moc ${_moc_extra_parameters_file}
- DEPENDS ${infile} ${_moc_parameters_file}
- ${_moc_working_dir}
- VERBATIM)
-endfunction ()
-
-
-macro (QT4_GENERATE_MOC infile outfile )
- # get include dirs and flags
- QT4_GET_MOC_FLAGS(moc_flags)
- get_filename_component(abs_infile ${infile} ABSOLUTE)
- set(_outfile "${outfile}")
- if(NOT IS_ABSOLUTE "${outfile}")
- set(_outfile "${CMAKE_CURRENT_BINARY_DIR}/${outfile}")
- endif()
-
- if (${ARGC} GREATER 3 AND "x${ARGV2}" STREQUAL "xTARGET")
- set(moc_target ${ARGV3})
- endif()
- QT4_CREATE_MOC_COMMAND(${abs_infile} ${_outfile} "${moc_flags}" "" "${moc_target}")
- set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file
- set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file
-endmacro ()
-
-
-# QT4_WRAP_CPP(outfiles inputfile ... )
-
-macro (QT4_WRAP_CPP outfiles )
- # get include dirs
- QT4_GET_MOC_FLAGS(moc_flags)
- QT4_EXTRACT_OPTIONS(moc_files moc_options moc_target ${ARGN})
-
- foreach (it ${moc_files})
- get_filename_component(it ${it} ABSOLUTE)
- QT4_MAKE_OUTPUT_FILE(${it} moc_ cxx outfile)
- QT4_CREATE_MOC_COMMAND(${it} ${outfile} "${moc_flags}" "${moc_options}" "${moc_target}")
- set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file
- set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file
- set(${outfiles} ${${outfiles}} ${outfile})
- endforeach()
-
-endmacro ()
-
-
-# QT4_WRAP_UI(outfiles inputfile ... )
-
-macro (QT4_WRAP_UI outfiles )
- QT4_EXTRACT_OPTIONS(ui_files ui_options ui_target ${ARGN})
-
- foreach (it ${ui_files})
- get_filename_component(outfile ${it} NAME_WE)
- get_filename_component(infile ${it} ABSOLUTE)
- set(outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${outfile}.h)
- add_custom_command(OUTPUT ${outfile}
- COMMAND Qt4::uic
- ARGS ${ui_options} -o ${outfile} ${infile}
- MAIN_DEPENDENCY ${infile} VERBATIM)
- set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file
- set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file
- set(${outfiles} ${${outfiles}} ${outfile})
- endforeach ()
-
-endmacro ()
-
-
-# QT4_ADD_RESOURCES(outfiles inputfile ... )
-
-macro (QT4_ADD_RESOURCES outfiles )
- QT4_EXTRACT_OPTIONS(rcc_files rcc_options rcc_target ${ARGN})
-
- foreach (it ${rcc_files})
- get_filename_component(outfilename ${it} NAME_WE)
- get_filename_component(infile ${it} ABSOLUTE)
- get_filename_component(rc_path ${infile} PATH)
- set(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cxx)
-
- set(_RC_DEPENDS)
- if(EXISTS "${infile}")
- # parse file for dependencies
- # all files are absolute paths or relative to the location of the qrc file
- file(READ "${infile}" _RC_FILE_CONTENTS)
- string(REGEX MATCHALL "<file[^<]+" _RC_FILES "${_RC_FILE_CONTENTS}")
- foreach(_RC_FILE ${_RC_FILES})
- string(REGEX REPLACE "^<file[^>]*>" "" _RC_FILE "${_RC_FILE}")
- if(NOT IS_ABSOLUTE "${_RC_FILE}")
- set(_RC_FILE "${rc_path}/${_RC_FILE}")
- endif()
- set(_RC_DEPENDS ${_RC_DEPENDS} "${_RC_FILE}")
- endforeach()
- unset(_RC_FILES)
- unset(_RC_FILE_CONTENTS)
- # Since this cmake macro is doing the dependency scanning for these files,
- # let's make a configured file and add it as a dependency so cmake is run
- # again when dependencies need to be recomputed.
- QT4_MAKE_OUTPUT_FILE("${infile}" "" "qrc.depends" out_depends)
- configure_file("${infile}" "${out_depends}" COPYONLY)
- else()
- # The .qrc file does not exist (yet). Let's add a dependency and hope
- # that it will be generated later
- set(out_depends)
- endif()
-
- add_custom_command(OUTPUT ${outfile}
- COMMAND Qt4::rcc
- ARGS ${rcc_options} -name ${outfilename} -o ${outfile} ${infile}
- MAIN_DEPENDENCY ${infile}
- DEPENDS ${_RC_DEPENDS} "${out_depends}" VERBATIM)
- set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file
- set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file
- set(${outfiles} ${${outfiles}} ${outfile})
- endforeach ()
-
-endmacro ()
-
-
-macro(QT4_ADD_DBUS_INTERFACE _sources _interface _basename)
- get_filename_component(_infile ${_interface} ABSOLUTE)
- set(_header "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h")
- set(_impl "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp")
- set(_moc "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc")
-
- get_property(_nonamespace SOURCE ${_interface} PROPERTY NO_NAMESPACE)
- if(_nonamespace)
- set(_params -N -m)
- else()
- set(_params -m)
- endif()
-
- get_property(_classname SOURCE ${_interface} PROPERTY CLASSNAME)
- if(_classname)
- set(_params ${_params} -c ${_classname})
- endif()
-
- get_property(_include SOURCE ${_interface} PROPERTY INCLUDE)
- if(_include)
- set(_params ${_params} -i ${_include})
- endif()
-
- add_custom_command(OUTPUT "${_impl}" "${_header}"
- COMMAND Qt4::qdbusxml2cpp ${_params} -p ${_basename} ${_infile}
- DEPENDS ${_infile} VERBATIM)
-
- set_property(SOURCE ${_impl} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file
- set_property(SOURCE ${_impl} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file
-
- QT4_GENERATE_MOC("${_header}" "${_moc}")
-
- list(APPEND ${_sources} "${_impl}" "${_header}" "${_moc}")
- MACRO_ADD_FILE_DEPENDENCIES("${_impl}" "${_moc}")
-
-endmacro()
-
-
-macro(QT4_ADD_DBUS_INTERFACES _sources)
- foreach (_current_FILE ${ARGN})
- get_filename_component(_infile ${_current_FILE} ABSOLUTE)
- get_filename_component(_basename ${_current_FILE} NAME)
- # get the part before the ".xml" suffix
- string(TOLOWER ${_basename} _basename)
- string(REGEX REPLACE "(.*\\.)?([^\\.]+)\\.xml" "\\2" _basename ${_basename})
- QT4_ADD_DBUS_INTERFACE(${_sources} ${_infile} ${_basename}interface)
- endforeach ()
-endmacro()
-
-
-macro(QT4_GENERATE_DBUS_INTERFACE _header) # _customName OPTIONS -some -options )
- QT4_EXTRACT_OPTIONS(_customName _qt4_dbus_options _qt4_dbus_target ${ARGN})
-
- get_filename_component(_in_file ${_header} ABSOLUTE)
- get_filename_component(_basename ${_header} NAME_WE)
-
- if (_customName)
- if (IS_ABSOLUTE ${_customName})
- get_filename_component(_containingDir ${_customName} PATH)
- if (NOT EXISTS ${_containingDir})
- file(MAKE_DIRECTORY "${_containingDir}")
- endif()
- set(_target ${_customName})
- else()
- set(_target ${CMAKE_CURRENT_BINARY_DIR}/${_customName})
- endif()
- else ()
- set(_target ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.xml)
- endif ()
-
- add_custom_command(OUTPUT ${_target}
- COMMAND Qt4::qdbuscpp2xml ${_qt4_dbus_options} ${_in_file} -o ${_target}
- DEPENDS ${_in_file} VERBATIM
- )
-endmacro()
-
-
-macro(QT4_ADD_DBUS_ADAPTOR _sources _xml_file _include _parentClass) # _optionalBasename _optionalClassName)
- get_filename_component(_infile ${_xml_file} ABSOLUTE)
-
- unset(_optionalBasename)
- if(${ARGC} GREATER 4)
- set(_optionalBasename "${ARGV4}")
- endif()
- if (_optionalBasename)
- set(_basename ${_optionalBasename} )
- else ()
- string(REGEX REPLACE "(.*[/\\.])?([^\\.]+)\\.xml" "\\2adaptor" _basename ${_infile})
- string(TOLOWER ${_basename} _basename)
- endif ()
-
- unset(_optionalClassName)
- if(${ARGC} GREATER 5)
- set(_optionalClassName "${ARGV5}")
- endif()
- set(_header "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h")
- set(_impl "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp")
- set(_moc "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc")
-
- if(_optionalClassName)
- add_custom_command(OUTPUT "${_impl}" "${_header}"
- COMMAND Qt4::qdbusxml2cpp -m -a ${_basename} -c ${_optionalClassName} -i ${_include} -l ${_parentClass} ${_infile}
- DEPENDS ${_infile} VERBATIM
- )
- else()
- add_custom_command(OUTPUT "${_impl}" "${_header}"
- COMMAND Qt4::qdbusxml2cpp -m -a ${_basename} -i ${_include} -l ${_parentClass} ${_infile}
- DEPENDS ${_infile} VERBATIM
- )
- endif()
-
- QT4_GENERATE_MOC("${_header}" "${_moc}")
- set_property(SOURCE ${_impl} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file
- set_property(SOURCE ${_impl} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file
- MACRO_ADD_FILE_DEPENDENCIES("${_impl}" "${_moc}")
-
- list(APPEND ${_sources} "${_impl}" "${_header}" "${_moc}")
-endmacro()
-
-
-macro(QT4_AUTOMOC)
- if(NOT CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.11)
- message(DEPRECATION "The qt4_automoc macro is obsolete. Use the CMAKE_AUTOMOC feature instead.")
- endif()
- QT4_GET_MOC_FLAGS(_moc_INCS)
-
- set(_matching_FILES )
- foreach (_current_FILE ${ARGN})
-
- get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE)
- # if "SKIP_AUTOMOC" is set to true, we will not handle this file here.
- # This is required to make uic work correctly:
- # we need to add generated .cpp files to the sources (to compile them),
- # but we cannot let automoc handle them, as the .cpp files don't exist yet when
- # cmake is run for the very first time on them -> however the .cpp files might
- # exist at a later run. at that time we need to skip them, so that we don't add two
- # different rules for the same moc file
- get_property(_skip SOURCE ${_abs_FILE} PROPERTY SKIP_AUTOMOC)
-
- if ( NOT _skip AND EXISTS ${_abs_FILE} )
-
- file(READ ${_abs_FILE} _contents)
-
- get_filename_component(_abs_PATH ${_abs_FILE} PATH)
-
- string(REGEX MATCHALL "# *include +[^ ]+\\.moc[\">]" _match "${_contents}")
- if(_match)
- foreach (_current_MOC_INC ${_match})
- string(REGEX MATCH "[^ <\"]+\\.moc" _current_MOC "${_current_MOC_INC}")
-
- get_filename_component(_basename ${_current_MOC} NAME_WE)
- if(EXISTS ${_abs_PATH}/${_basename}.hpp)
- set(_header ${_abs_PATH}/${_basename}.hpp)
- else()
- set(_header ${_abs_PATH}/${_basename}.h)
- endif()
- set(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC})
- QT4_CREATE_MOC_COMMAND(${_header} ${_moc} "${_moc_INCS}" "" "")
- MACRO_ADD_FILE_DEPENDENCIES(${_abs_FILE} ${_moc})
- endforeach ()
- endif()
- endif ()
- endforeach ()
-endmacro()
-
-
-macro(QT4_CREATE_TRANSLATION _qm_files)
- QT4_EXTRACT_OPTIONS(_lupdate_files _lupdate_options _lupdate_target ${ARGN})
- set(_my_sources)
- set(_my_dirs)
- set(_my_tsfiles)
- set(_ts_pro)
- foreach (_file ${_lupdate_files})
- get_filename_component(_ext ${_file} EXT)
- get_filename_component(_abs_FILE ${_file} ABSOLUTE)
- if(_ext MATCHES "ts")
- list(APPEND _my_tsfiles ${_abs_FILE})
- else()
- if(NOT _ext)
- list(APPEND _my_dirs ${_abs_FILE})
- else()
- list(APPEND _my_sources ${_abs_FILE})
- endif()
- endif()
- endforeach()
- foreach(_ts_file ${_my_tsfiles})
- if(_my_sources)
- # make a .pro file to call lupdate on, so we don't make our commands too
- # long for some systems
- get_filename_component(_ts_name ${_ts_file} NAME_WE)
- set(_ts_pro ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_ts_name}_lupdate.pro)
- set(_pro_srcs)
- foreach(_pro_src ${_my_sources})
- string(APPEND _pro_srcs " \\\n \"${_pro_src}\"")
- endforeach()
- set(_pro_includes)
- get_directory_property(_inc_DIRS INCLUDE_DIRECTORIES)
- list(REMOVE_DUPLICATES _inc_DIRS)
- foreach(_pro_include ${_inc_DIRS})
- get_filename_component(_abs_include "${_pro_include}" ABSOLUTE)
- string(APPEND _pro_includes " \\\n \"${_abs_include}\"")
- endforeach()
- file(GENERATE OUTPUT ${_ts_pro} CONTENT "SOURCES =${_pro_srcs}\nINCLUDEPATH =${_pro_includes}\n")
- endif()
- add_custom_command(OUTPUT ${_ts_file}
- COMMAND Qt4::lupdate
- ARGS ${_lupdate_options} ${_ts_pro} ${_my_dirs} -ts ${_ts_file}
- DEPENDS ${_my_sources} ${_ts_pro} VERBATIM)
- endforeach()
- QT4_ADD_TRANSLATION(${_qm_files} ${_my_tsfiles})
-endmacro()
-
-
-macro(QT4_ADD_TRANSLATION _qm_files)
- foreach (_current_FILE ${ARGN})
- get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE)
- get_filename_component(qm ${_abs_FILE} NAME_WE)
- get_property(output_location SOURCE ${_abs_FILE} PROPERTY OUTPUT_LOCATION)
- if(output_location)
- file(MAKE_DIRECTORY "${output_location}")
- set(qm "${output_location}/${qm}.qm")
- else()
- set(qm "${CMAKE_CURRENT_BINARY_DIR}/${qm}.qm")
- endif()
-
- add_custom_command(OUTPUT ${qm}
- COMMAND Qt4::lrelease
- ARGS ${_abs_FILE} -qm ${qm}
- DEPENDS ${_abs_FILE} VERBATIM
- )
- set(${_qm_files} ${${_qm_files}} ${qm})
- endforeach ()
-endmacro()
-
-function(qt4_use_modules _target _link_type)
- if(NOT CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.11)
- message(DEPRECATION "The qt4_use_modules function is obsolete. Use target_link_libraries with IMPORTED targets instead.")
- endif()
- if ("${_link_type}" STREQUAL "LINK_PUBLIC" OR "${_link_type}" STREQUAL "LINK_PRIVATE")
- set(modules ${ARGN})
- set(link_type ${_link_type})
- else()
- set(modules ${_link_type} ${ARGN})
- endif()
- foreach(_module ${modules})
- string(TOUPPER ${_module} _ucmodule)
- set(_targetPrefix QT_QT${_ucmodule})
- if (_ucmodule STREQUAL QAXCONTAINER OR _ucmodule STREQUAL QAXSERVER)
- if (NOT QT_Q${_ucmodule}_FOUND)
- message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
- endif()
- set(_targetPrefix QT_Q${_ucmodule})
- else()
- if (NOT QT_QT${_ucmodule}_FOUND)
- message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
- endif()
- if ("${_ucmodule}" STREQUAL "MAIN")
- message(FATAL_ERROR "Can not use \"${_module}\" module with qt4_use_modules.")
- endif()
- endif()
- target_link_libraries(${_target} ${link_type} ${${_targetPrefix}_LIBRARIES})
- set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${${_targetPrefix}_INCLUDE_DIR} ${QT_HEADERS_DIR} ${QT_MKSPECS_DIR}/default)
- set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${${_targetPrefix}_COMPILE_DEFINITIONS})
- endforeach()
-endfunction()
diff --git a/share/cmake-3.16/Modules/TestBigEndian.cmake b/share/cmake-3.16/Modules/TestBigEndian.cmake
deleted file mode 100644
index 0c6e188..0000000
--- a/share/cmake-3.16/Modules/TestBigEndian.cmake
+++ /dev/null
@@ -1,122 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-TestBigEndian
--------------
-
-Define macro to determine endian type
-
-Check if the system is big endian or little endian
-
-::
-
- TEST_BIG_ENDIAN(VARIABLE)
- VARIABLE - variable to store the result to
-#]=======================================================================]
-
-include(CheckTypeSize)
-
-macro(TEST_BIG_ENDIAN VARIABLE)
- if(NOT DEFINED HAVE_${VARIABLE})
- message(STATUS "Check if the system is big endian")
- message(STATUS "Searching 16 bit integer")
-
- if(CMAKE_C_COMPILER_LOADED)
- set(_test_language "C")
- elseif(CMAKE_CXX_COMPILER_LOADED)
- set(_test_language "CXX")
- else()
- message(FATAL_ERROR "TEST_BIG_ENDIAN needs either C or CXX language enabled")
- endif()
-
- CHECK_TYPE_SIZE("unsigned short" CMAKE_SIZEOF_UNSIGNED_SHORT LANGUAGE ${_test_language})
- if(CMAKE_SIZEOF_UNSIGNED_SHORT EQUAL 2)
- message(STATUS "Using unsigned short")
- set(CMAKE_16BIT_TYPE "unsigned short")
- else()
- CHECK_TYPE_SIZE("unsigned int" CMAKE_SIZEOF_UNSIGNED_INT LANGUAGE ${_test_language})
- if(CMAKE_SIZEOF_UNSIGNED_INT)
- message(STATUS "Using unsigned int")
- set(CMAKE_16BIT_TYPE "unsigned int")
-
- else()
-
- CHECK_TYPE_SIZE("unsigned long" CMAKE_SIZEOF_UNSIGNED_LONG LANGUAGE ${_test_language})
- if(CMAKE_SIZEOF_UNSIGNED_LONG)
- message(STATUS "Using unsigned long")
- set(CMAKE_16BIT_TYPE "unsigned long")
- else()
- message(FATAL_ERROR "no suitable type found")
- endif()
-
- endif()
-
- endif()
-
- if(_test_language STREQUAL "CXX")
- set(_test_file "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/TestEndianess.cpp")
- else()
- set(_test_file "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/TestEndianess.c")
- endif()
-
- configure_file("${CMAKE_ROOT}/Modules/TestEndianess.c.in"
- ${_test_file}
- @ONLY)
-
- file(READ ${_test_file} TEST_ENDIANESS_FILE_CONTENT)
-
- try_compile(HAVE_${VARIABLE}
- "${CMAKE_BINARY_DIR}"
- ${_test_file}
- OUTPUT_VARIABLE OUTPUT
- COPY_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/TestEndianess.bin" )
-
- if(HAVE_${VARIABLE})
-
- file(STRINGS "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/TestEndianess.bin"
- CMAKE_TEST_ENDIANESS_STRINGS_LE LIMIT_COUNT 1 REGEX "THIS IS LITTLE ENDIAN")
-
- file(STRINGS "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/TestEndianess.bin"
- CMAKE_TEST_ENDIANESS_STRINGS_BE LIMIT_COUNT 1 REGEX "THIS IS BIG ENDIAN")
-
- # on mac, if there are universal binaries built both will be true
- # return the result depending on the machine on which cmake runs
- if(CMAKE_TEST_ENDIANESS_STRINGS_BE AND CMAKE_TEST_ENDIANESS_STRINGS_LE)
- if(CMAKE_SYSTEM_PROCESSOR MATCHES powerpc)
- set(CMAKE_TEST_ENDIANESS_STRINGS_BE TRUE)
- set(CMAKE_TEST_ENDIANESS_STRINGS_LE FALSE)
- else()
- set(CMAKE_TEST_ENDIANESS_STRINGS_BE FALSE)
- set(CMAKE_TEST_ENDIANESS_STRINGS_LE TRUE)
- endif()
- message(STATUS "TEST_BIG_ENDIAN found different results, consider setting CMAKE_OSX_ARCHITECTURES or CMAKE_TRY_COMPILE_OSX_ARCHITECTURES to one or no architecture !")
- endif()
-
- if(CMAKE_TEST_ENDIANESS_STRINGS_LE)
- set(${VARIABLE} 0 CACHE INTERNAL "Result of TEST_BIG_ENDIAN" FORCE)
- message(STATUS "Check if the system is big endian - little endian")
- endif()
-
- if(CMAKE_TEST_ENDIANESS_STRINGS_BE)
- set(${VARIABLE} 1 CACHE INTERNAL "Result of TEST_BIG_ENDIAN" FORCE)
- message(STATUS "Check if the system is big endian - big endian")
- endif()
-
- if(NOT CMAKE_TEST_ENDIANESS_STRINGS_BE AND NOT CMAKE_TEST_ENDIANESS_STRINGS_LE)
- message(SEND_ERROR "TEST_BIG_ENDIAN found no result!")
- endif()
-
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the system is big endian passed with the following output:\n${OUTPUT}\nTestEndianess.c:\n${TEST_ENDIANESS_FILE_CONTENT}\n\n")
-
- else()
- message(STATUS "Check if the system is big endian - failed")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the system is big endian failed with the following output:\n${OUTPUT}\nTestEndianess.c:\n${TEST_ENDIANESS_FILE_CONTENT}\n\n")
- set(${VARIABLE})
- endif()
- endif()
-endmacro()
-
-
diff --git a/share/cmake-3.16/Modules/TestCXXAcceptsFlag.cmake b/share/cmake-3.16/Modules/TestCXXAcceptsFlag.cmake
deleted file mode 100644
index 92a362e..0000000
--- a/share/cmake-3.16/Modules/TestCXXAcceptsFlag.cmake
+++ /dev/null
@@ -1,44 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-TestCXXAcceptsFlag
-------------------
-
-.. deprecated:: 3.0
-
- See :module:`CheckCXXCompilerFlag`.
-
-Check if the CXX compiler accepts a flag.
-
-.. code-block:: cmake
-
- CHECK_CXX_ACCEPTS_FLAG(<flags> <variable>)
-
-``<flags>``
- the flags to try
-``<variable>``
- variable to store the result
-#]=======================================================================]
-
-macro(CHECK_CXX_ACCEPTS_FLAG FLAGS VARIABLE)
- if(NOT DEFINED ${VARIABLE})
- message(STATUS "Checking to see if CXX compiler accepts flag ${FLAGS}")
- try_compile(${VARIABLE}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_ROOT}/Modules/DummyCXXFile.cxx
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${FLAGS}
- OUTPUT_VARIABLE OUTPUT)
- if(${VARIABLE})
- message(STATUS "Checking to see if CXX compiler accepts flag ${FLAGS} - yes")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the CXX compiler accepts the flag ${FLAGS} passed with "
- "the following output:\n${OUTPUT}\n\n")
- else()
- message(STATUS "Checking to see if CXX compiler accepts flag ${FLAGS} - no")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the CXX compiler accepts the flag ${FLAGS} failed with "
- "the following output:\n${OUTPUT}\n\n")
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.16/Modules/TestForANSIForScope.cmake b/share/cmake-3.16/Modules/TestForANSIForScope.cmake
deleted file mode 100644
index 272e4ec..0000000
--- a/share/cmake-3.16/Modules/TestForANSIForScope.cmake
+++ /dev/null
@@ -1,43 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-TestForANSIForScope
--------------------
-
-Check for ANSI for scope support
-
-Check if the compiler restricts the scope of variables declared in a
-for-init-statement to the loop body.
-
-::
-
- CMAKE_NO_ANSI_FOR_SCOPE - holds result
-#]=======================================================================]
-
-if(NOT DEFINED CMAKE_ANSI_FOR_SCOPE)
- message(STATUS "Check for ANSI scope")
- try_compile(CMAKE_ANSI_FOR_SCOPE ${CMAKE_BINARY_DIR}
- ${CMAKE_ROOT}/Modules/TestForAnsiForScope.cxx
- OUTPUT_VARIABLE OUTPUT)
- if (CMAKE_ANSI_FOR_SCOPE)
- message(STATUS "Check for ANSI scope - found")
- set (CMAKE_NO_ANSI_FOR_SCOPE 0 CACHE INTERNAL
- "Does the compiler support ansi for scope.")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the CXX compiler understands ansi for scopes passed with "
- "the following output:\n${OUTPUT}\n\n")
- else ()
- message(STATUS "Check for ANSI scope - not found")
- set (CMAKE_NO_ANSI_FOR_SCOPE 1 CACHE INTERNAL
- "Does the compiler support ansi for scope.")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the CXX compiler understands ansi for scopes failed with "
- "the following output:\n${OUTPUT}\n\n")
- endif ()
-endif()
-
-
-
-
-
diff --git a/share/cmake-3.16/Modules/TestForSSTREAM.cmake b/share/cmake-3.16/Modules/TestForSSTREAM.cmake
deleted file mode 100644
index e70df00..0000000
--- a/share/cmake-3.16/Modules/TestForSSTREAM.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-TestForSSTREAM
---------------
-
-Test for compiler support of ANSI sstream header
-
-check if the compiler supports the standard ANSI sstream header
-
-::
-
- CMAKE_NO_ANSI_STRING_STREAM - defined by the results
-#]=======================================================================]
-
-if(NOT DEFINED CMAKE_HAS_ANSI_STRING_STREAM)
- message(STATUS "Check for sstream")
- try_compile(CMAKE_HAS_ANSI_STRING_STREAM ${CMAKE_BINARY_DIR}
- ${CMAKE_ROOT}/Modules/TestForSSTREAM.cxx
- OUTPUT_VARIABLE OUTPUT)
- if (CMAKE_HAS_ANSI_STRING_STREAM)
- message(STATUS "Check for sstream - found")
- set (CMAKE_NO_ANSI_STRING_STREAM 0 CACHE INTERNAL
- "Does the compiler support sstream")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the CXX compiler has sstream passed with "
- "the following output:\n${OUTPUT}\n\n")
- else ()
- message(STATUS "Check for sstream - not found")
- set (CMAKE_NO_ANSI_STRING_STREAM 1 CACHE INTERNAL
- "Does the compiler support sstream")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the CXX compiler has sstream failed with "
- "the following output:\n${OUTPUT}\n\n")
- endif ()
-endif()
-
-
-
-
diff --git a/share/cmake-3.16/Modules/TestForSTDNamespace.cmake b/share/cmake-3.16/Modules/TestForSTDNamespace.cmake
deleted file mode 100644
index 703e631..0000000
--- a/share/cmake-3.16/Modules/TestForSTDNamespace.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-TestForSTDNamespace
--------------------
-
-Test for std:: namespace support
-
-check if the compiler supports std:: on stl classes
-
-::
-
- CMAKE_NO_STD_NAMESPACE - defined by the results
-#]=======================================================================]
-
-if(NOT DEFINED CMAKE_STD_NAMESPACE)
- message(STATUS "Check for STD namespace")
- try_compile(CMAKE_STD_NAMESPACE ${CMAKE_BINARY_DIR}
- ${CMAKE_ROOT}/Modules/TestForSTDNamespace.cxx
- OUTPUT_VARIABLE OUTPUT)
- if (CMAKE_STD_NAMESPACE)
- message(STATUS "Check for STD namespace - found")
- set (CMAKE_NO_STD_NAMESPACE 0 CACHE INTERNAL
- "Does the compiler support std::.")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if the CXX compiler has std namespace passed with "
- "the following output:\n${OUTPUT}\n\n")
- else ()
- message(STATUS "Check for STD namespace - not found")
- set (CMAKE_NO_STD_NAMESPACE 1 CACHE INTERNAL
- "Does the compiler support std::.")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if the CXX compiler has std namespace failed with "
- "the following output:\n${OUTPUT}\n\n")
- endif ()
-endif()
-
-
-
-
diff --git a/share/cmake-3.16/Modules/UseJava.cmake b/share/cmake-3.16/Modules/UseJava.cmake
deleted file mode 100644
index 0798488..0000000
--- a/share/cmake-3.16/Modules/UseJava.cmake
+++ /dev/null
@@ -1,1446 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-UseJava
--------
-
-Use Module for Java
-
-This file provides functions for Java. It is assumed that
-:module:`FindJava` has already been loaded. See :module:`FindJava` for
-information on how to load Java into your CMake project.
-
-Creating And Installing JARs
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: cmake
-
- add_jar(<target_name>
- [SOURCES] <source1> [<source2>...] [<resource1>...]
- [INCLUDE_JARS <jar1> [<jar2>...]]
- [ENTRY_POINT <entry>]
- [VERSION <version>]
- [OUTPUT_NAME <name>]
- [OUTPUT_DIR <dir>]
- [GENERATE_NATIVE_HEADERS <target> [DESTINATION <dir>]]
- )
-
-This command creates a ``<target_name>.jar``. It compiles the given
-``<source>`` files and adds the given ``<resource>`` files to
-the jar file. Source files can be java files or listing files
-(prefixed by ``@``). If only resource files are given then just a jar file
-is created. The list of ``INCLUDE_JARS`` are added to the classpath when
-compiling the java sources and also to the dependencies of the target.
-``INCLUDE_JARS`` also accepts other target names created by ``add_jar()``.
-For backwards compatibility, jar files listed as sources are ignored (as
-they have been since the first version of this module).
-
-The default ``OUTPUT_DIR`` can also be changed by setting the variable
-``CMAKE_JAVA_TARGET_OUTPUT_DIR``.
-
-Optionally, using option ``GENERATE_NATIVE_HEADERS``, native header files can
-be generated for methods declared as native. These files provide the
-connective glue that allow your Java and C code to interact. An INTERFACE
-target will be created for an easy usage of generated files. Sub-option
-``DESTINATION`` can be used to specify the output directory for generated
-header files.
-
-``GENERATE_NATIVE_HEADERS`` option requires, at least, version 1.8 of the JDK.
-
-The ``add_jar()`` function sets the following target properties on
-``<target_name>``:
-
-``INSTALL_FILES``
- The files which should be installed. This is used by ``install_jar()``.
-``JNI_SYMLINK``
- The JNI symlink which should be installed. This is used by
- ``install_jni_symlink()``.
-``JAR_FILE``
- The location of the jar file so that you can include it.
-``CLASSDIR``
- The directory where the class files can be found. For example to use them
- with ``javah``.
-
-.. code-block:: cmake
-
- install_jar(<target_name> <destination>)
- install_jar(<target_name> DESTINATION <destination> [COMPONENT <component>])
-
-This command installs the ``<target_name>`` files to the given
-``<destination>``. It should be called in the same scope as ``add_jar()`` or
-it will fail.
-
-The ``install_jar()`` function sets the ``INSTALL_DESTINATION`` target
-property on jars so installed. This property holds the ``<destination>`` as
-described above, and is used by ``install_jar_exports()``. You can get this
-information with :command:`get_property` and the ``INSTALL_DESTINATION``
-property key.
-
-.. code-block:: cmake
-
- install_jni_symlink(<target_name> <destination>)
- install_jni_symlink(<target_name> DESTINATION <destination> [COMPONENT <component>])
-
-This command installs the ``<target_name>`` JNI symlinks to the given
-``<destination>``. It should be called in the same scope as ``add_jar()`` or
-it will fail.
-
-.. code-block:: cmake
-
- install_jar_exports(TARGETS <jars>...
- [NAMESPACE <namespace>]
- FILE <filename>
- DESTINATION <destination> [COMPONENT <component>])
-
-This command installs a target export file ``<filename>`` for the named jar
-targets to the given ``<destination>`` directory. Its function is similar to
-that of :command:`install(EXPORTS)`.
-
-.. code-block:: cmake
-
- export_jars(TARGETS <jars>...
- [NAMESPACE <namespace>]
- FILE <filename>)
-
-This command writes a target export file ``<filename>`` for the named ``<jars>``
-targets. Its function is similar to that of :command:`export`.
-
-
-Examples
-""""""""
-
-To add compile flags to the target you can set these flags with the following
-variable:
-
-.. code-block:: cmake
-
- set(CMAKE_JAVA_COMPILE_FLAGS -nowarn)
-
-
-To add a path or a jar file to the class path you can do this with the
-``CMAKE_JAVA_INCLUDE_PATH`` variable.
-
-.. code-block:: cmake
-
- set(CMAKE_JAVA_INCLUDE_PATH /usr/share/java/shibboleet.jar)
-
-To use a different output name for the target you can set it with:
-
-.. code-block:: cmake
-
- add_jar(foobar foobar.java OUTPUT_NAME shibboleet.jar)
-
-To use a different output directory than ``CMAKE_CURRENT_BINARY_DIR`` you can
-set it with:
-
-.. code-block:: cmake
-
- add_jar(foobar foobar.java OUTPUT_DIR ${PROJECT_BINARY_DIR}/bin)
-
-To define an entry point in your jar you can set it with the ``ENTRY_POINT``
-named argument:
-
-.. code-block:: cmake
-
- add_jar(example ENTRY_POINT com/examples/MyProject/Main)
-
-To define a custom manifest for the jar, you can set it with the ``MANIFEST``
-named argument:
-
-.. code-block:: cmake
-
- add_jar(example MANIFEST /path/to/manifest)
-
-To add a version to the target output name you can set it using the ``VERSION``
-named argument to ``add_jar()``. The following example will create a jar file
-with the name ``shibboleet-1.0.0.jar`` and will create a symlink
-``shibboleet.jar`` pointing to the jar with the version information.
-
-.. code-block:: cmake
-
- add_jar(shibboleet shibbotleet.java VERSION 1.2.0)
-
-If the target is a JNI library, utilize the following commands to
-create a JNI symbolic link:
-
-.. code-block:: cmake
-
- set(CMAKE_JNI_TARGET TRUE)
- add_jar(shibboleet shibbotleet.java VERSION 1.2.0)
- install_jar(shibboleet ${LIB_INSTALL_DIR}/shibboleet)
- install_jni_symlink(shibboleet ${JAVA_LIB_INSTALL_DIR})
-
-If a single target needs to produce more than one jar from its
-java source code, to prevent the accumulation of duplicate class
-files in subsequent jars, set/reset ``CMAKE_JAR_CLASSES_PREFIX`` prior
-to calling the ``add_jar()`` function:
-
-.. code-block:: cmake
-
- set(CMAKE_JAR_CLASSES_PREFIX com/redhat/foo)
- add_jar(foo foo.java)
-
- set(CMAKE_JAR_CLASSES_PREFIX com/redhat/bar)
- add_jar(bar bar.java)
-
-For an optimum usage of option ``GENERATE_NATIVE_HEADERS``, it is recommended to
-include module JNI before any call to ``add_jar()``. The produced target for
-native headers can then be used to compile C/C++ sources with the
-:command:`target_link_libraries` command.
-
-.. code-block:: cmake
-
- find_package(JNI)
- add_jar(foo foo.java GENERATE_NATIVE_HEADERS foo-native)
- add_library(bar bar.cpp)
- target_link_libraries(bar PRIVATE foo-native)
-
-
-Finding JARs
-^^^^^^^^^^^^
-
-.. code-block:: cmake
-
- find_jar(<VAR>
- <name> | NAMES <name1> [<name2>...]
- [PATHS <path1> [<path2>... ENV <var>]]
- [VERSIONS <version1> [<version2>]]
- [DOC "cache documentation string"]
- )
-
-This command is used to find a full path to the named jar. A cache
-entry named by ``<VAR>`` is created to store the result of this command.
-If the full path to a jar is found the result is stored in the
-variable and the search will not repeated unless the variable is
-cleared. If nothing is found, the result will be ``<VAR>-NOTFOUND``, and
-the search will be attempted again next time ``find_jar()`` is invoked with
-the same variable. The name of the full path to a file that is
-searched for is specified by the names listed after ``NAMES`` argument.
-Additional search locations can be specified after the ``PATHS`` argument.
-If you require special a version of a jar file you can specify it with
-the ``VERSIONS`` argument. The argument after ``DOC`` will be used for the
-documentation string in the cache.
-
-
-Javadoc
-^^^^^^^
-
-The ``create_javadoc()`` command can be used to create java documentation
-based on files or packages. For more details please read the javadoc manpage.
-
-There are two main signatures for ``create_javadoc()``. The first signature
-works with package names on a path with source files.
-
-.. code-block:: cmake
-
- create_javadoc(<VAR>
- PACKAGES <pkg1> [<pkg2>...]
- [SOURCEPATH <sourcepath>]
- [CLASSPATH <classpath>]
- [INSTALLPATH <install path>]
- [DOCTITLE "the documentation title"]
- [WINDOWTITLE "the title of the document"]
- [AUTHOR TRUE|FALSE]
- [USE TRUE|FALSE]
- [VERSION TRUE|FALSE]
- )
-
-For example:
-
-.. code-block:: cmake
-
- create_javadoc(my_example_doc
- PACKAGES com.example.foo com.example.bar
- SOURCEPATH "${CMAKE_CURRENT_SOURCE_DIR}"
- CLASSPATH ${CMAKE_JAVA_INCLUDE_PATH}
- WINDOWTITLE "My example"
- DOCTITLE "<h1>My example</h1>"
- AUTHOR TRUE
- USE TRUE
- VERSION TRUE
- )
-
-The second signature for ``create_javadoc()`` works on a given list of
-files.
-
-.. code-block:: cmake
-
- create_javadoc(<VAR>
- FILES <file1> [<file2>...]
- [CLASSPATH <classpath>]
- [INSTALLPATH <install path>]
- [DOCTITLE "the documentation title"]
- [WINDOWTITLE "the title of the document"]
- [AUTHOR TRUE|FALSE]
- [USE TRUE|FALSE]
- [VERSION TRUE|FALSE]
- )
-
-For example:
-
-.. code-block:: cmake
-
- create_javadoc(my_example_doc
- FILES ${example_SRCS}
- CLASSPATH ${CMAKE_JAVA_INCLUDE_PATH}
- WINDOWTITLE "My example"
- DOCTITLE "<h1>My example</h1>"
- AUTHOR TRUE
- USE TRUE
- VERSION TRUE
- )
-
-Both signatures share most of the options. These options are the same
-as what you can find in the javadoc manpage. Please look at the
-manpage for ``CLASSPATH``, ``DOCTITLE``, ``WINDOWTITLE``, ``AUTHOR``, ``USE``
-and ``VERSION``.
-
-If you don't set the ``INSTALLPATH``, then by default the documentation will
-be installed to :
-
-::
-
- ${CMAKE_INSTALL_PREFIX}/share/javadoc/<VAR>
-
-
-Header Generation
-^^^^^^^^^^^^^^^^^
-
-.. code-block:: cmake
-
- create_javah(TARGET <target> | GENERATED_FILES <VAR>
- CLASSES <class>...
- [CLASSPATH <classpath>...]
- [DEPENDS <depend>...]
- [OUTPUT_NAME <path>|OUTPUT_DIR <path>]
- )
-
-Create C header files from java classes. These files provide the connective glue
-that allow your Java and C code to interact.
-
-.. deprecated:: 3.11
-
-.. note::
-
- This command will no longer be supported starting with version 10 of the JDK
- due to the `suppression of javah tool <http://openjdk.java.net/jeps/313>`_.
- The ``add_jar(GENERATE_NATIVE_HEADERS)`` command should be used instead.
-
-There are two main signatures for ``create_javah()``. The first signature
-returns generated files through variable specified by the ``GENERATED_FILES``
-option. For example:
-
-.. code-block:: cmake
-
- create_javah(GENERATED_FILES files_headers
- CLASSES org.cmake.HelloWorld
- CLASSPATH hello.jar
- )
-
-The second signature for ``create_javah()`` creates a target which encapsulates
-header files generation. E.g.
-
-.. code-block:: cmake
-
- create_javah(TARGET target_headers
- CLASSES org.cmake.HelloWorld
- CLASSPATH hello.jar
- )
-
-Both signatures share same options.
-
-``CLASSES <class>...``
- Specifies Java classes used to generate headers.
-
-``CLASSPATH <classpath>...``
- Specifies various paths to look up classes. Here .class files, jar files or
- targets created by command add_jar can be used.
-
-``DEPENDS <depend>...``
- Targets on which the javah target depends.
-
-``OUTPUT_NAME <path>``
- Concatenates the resulting header files for all the classes listed by option
- ``CLASSES`` into ``<path>``. Same behavior as option ``-o`` of javah tool.
-
-``OUTPUT_DIR <path>``
- Sets the directory where the header files will be generated. Same behavior
- as option ``-d`` of javah tool. If not specified,
- :variable:`CMAKE_CURRENT_BINARY_DIR` is used as the output directory.
-#]=======================================================================]
-
-function (__java_copy_file src dest comment)
- add_custom_command(
- OUTPUT ${dest}
- COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ARGS ${src}
- ${dest}
- DEPENDS ${src}
- COMMENT ${comment})
-endfunction ()
-
-function(__java_lcat VAR)
- foreach(_line IN LISTS ARGN)
- string(APPEND ${VAR} "${_line}\n")
- endforeach()
-
- set(${VAR} "${${VAR}}" PARENT_SCOPE)
-endfunction()
-
-function(__java_export_jar VAR TARGET PATH)
- get_target_property(_jarpath ${TARGET} JAR_FILE)
- get_filename_component(_jarname ${_jarpath} NAME)
- set(_target "${_jar_NAMESPACE}${TARGET}")
- __java_lcat(${VAR}
- "# Create imported target ${_target}"
- "add_library(${_target} IMPORTED STATIC)"
- "set_target_properties(${_target} PROPERTIES"
- " IMPORTED_LOCATION \"${PATH}/${_jarname}\""
- " JAR_FILE \"${PATH}/${_jarname}\")"
- ""
- )
- set(${VAR} "${${VAR}}" PARENT_SCOPE)
-endfunction()
-
-# define helper scripts
-set(_JAVA_EXPORT_TARGETS_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/javaTargets.cmake.in)
-set(_JAVA_CLASS_FILELIST_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/UseJavaClassFilelist.cmake)
-set(_JAVA_SYMLINK_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/UseJavaSymlinks.cmake)
-
-function(add_jar _TARGET_NAME)
-
- cmake_parse_arguments(_add_jar
- ""
- "VERSION;OUTPUT_DIR;OUTPUT_NAME;ENTRY_POINT;MANIFEST"
- "SOURCES;INCLUDE_JARS;GENERATE_NATIVE_HEADERS"
- ${ARGN}
- )
-
- # In CMake < 2.8.12, add_jar used variables which were set prior to calling
- # add_jar for customizing the behavior of add_jar. In order to be backwards
- # compatible, check if any of those variables are set, and use them to
- # initialize values of the named arguments. (Giving the corresponding named
- # argument will override the value set here.)
- #
- # New features should use named arguments only.
- if(NOT DEFINED _add_jar_VERSION AND DEFINED CMAKE_JAVA_TARGET_VERSION)
- set(_add_jar_VERSION "${CMAKE_JAVA_TARGET_VERSION}")
- endif()
- if(NOT DEFINED _add_jar_OUTPUT_DIR AND DEFINED CMAKE_JAVA_TARGET_OUTPUT_DIR)
- set(_add_jar_OUTPUT_DIR "${CMAKE_JAVA_TARGET_OUTPUT_DIR}")
- endif()
- if(NOT DEFINED _add_jar_OUTPUT_NAME AND DEFINED CMAKE_JAVA_TARGET_OUTPUT_NAME)
- set(_add_jar_OUTPUT_NAME "${CMAKE_JAVA_TARGET_OUTPUT_NAME}")
- # reset
- set(CMAKE_JAVA_TARGET_OUTPUT_NAME)
- endif()
- if(NOT DEFINED _add_jar_ENTRY_POINT AND DEFINED CMAKE_JAVA_JAR_ENTRY_POINT)
- set(_add_jar_ENTRY_POINT "${CMAKE_JAVA_JAR_ENTRY_POINT}")
- endif()
-
- set(_JAVA_SOURCE_FILES ${_add_jar_SOURCES} ${_add_jar_UNPARSED_ARGUMENTS})
-
- if (NOT DEFINED _add_jar_OUTPUT_DIR)
- set(_add_jar_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
- else()
- get_filename_component(_add_jar_OUTPUT_DIR ${_add_jar_OUTPUT_DIR} ABSOLUTE)
- endif()
- # ensure output directory exists
- file (MAKE_DIRECTORY "${_add_jar_OUTPUT_DIR}")
-
- if (_add_jar_ENTRY_POINT)
- set(_ENTRY_POINT_OPTION e)
- set(_ENTRY_POINT_VALUE ${_add_jar_ENTRY_POINT})
- endif ()
-
- if (_add_jar_MANIFEST)
- set(_MANIFEST_OPTION m)
- get_filename_component (_MANIFEST_VALUE "${_add_jar_MANIFEST}" ABSOLUTE)
- endif ()
-
- unset (_GENERATE_NATIVE_HEADERS)
- if (_add_jar_GENERATE_NATIVE_HEADERS)
- # Raise an error if JDK version is less than 1.8 because javac -h is not supported
- # by earlier versions.
- if (Java_VERSION VERSION_LESS 1.8)
- message (FATAL_ERROR "ADD_JAR: GENERATE_NATIVE_HEADERS is not supported with this version of Java.")
- endif()
- cmake_parse_arguments (_add_jar_GENERATE_NATIVE_HEADERS "" "DESTINATION" "" ${_add_jar_GENERATE_NATIVE_HEADERS})
- if (NOT _add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS)
- message (FATAL_ERROR "ADD_JAR: GENERATE_NATIVE_HEADERS: missing required argument.")
- endif()
- list (LENGTH _add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS length)
- if (length GREATER 1)
- list (REMOVE_AT _add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS 0)
- message (FATAL_ERROR "ADD_JAR: GENERATE_NATIVE_HEADERS: ${_add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS}: unexpected argument(s).")
- endif()
- if (NOT _add_jar_GENERATE_NATIVE_HEADERS_DESTINATION)
- set (_add_jar_GENERATE_NATIVE_HEADERS_DESTINATION "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_TARGET_NAME}.dir/native_headers")
- endif()
-
- set (_GENERATE_NATIVE_HEADERS_TARGET ${_add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS})
- set (_GENERATE_NATIVE_HEADERS_OUTPUT_DIR "${_add_jar_GENERATE_NATIVE_HEADERS_DESTINATION}")
- set (_GENERATE_NATIVE_HEADERS -h "${_GENERATE_NATIVE_HEADERS_OUTPUT_DIR}")
- endif()
-
- if (LIBRARY_OUTPUT_PATH)
- set(CMAKE_JAVA_LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH})
- else ()
- set(CMAKE_JAVA_LIBRARY_OUTPUT_PATH ${_add_jar_OUTPUT_DIR})
- endif ()
-
- set(CMAKE_JAVA_INCLUDE_PATH
- ${CMAKE_JAVA_INCLUDE_PATH}
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_JAVA_OBJECT_OUTPUT_PATH}
- ${CMAKE_JAVA_LIBRARY_OUTPUT_PATH}
- )
-
- if (CMAKE_HOST_WIN32 AND NOT CYGWIN AND CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
- set(CMAKE_JAVA_INCLUDE_FLAG_SEP ";")
- else ()
- set(CMAKE_JAVA_INCLUDE_FLAG_SEP ":")
- endif()
-
- foreach (JAVA_INCLUDE_DIR IN LISTS CMAKE_JAVA_INCLUDE_PATH)
- string(APPEND CMAKE_JAVA_INCLUDE_PATH_FINAL "${CMAKE_JAVA_INCLUDE_FLAG_SEP}${JAVA_INCLUDE_DIR}")
- endforeach()
-
- set(CMAKE_JAVA_CLASS_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_TARGET_NAME}.dir")
-
- set(_JAVA_TARGET_OUTPUT_NAME "${_TARGET_NAME}.jar")
- if (_add_jar_OUTPUT_NAME AND _add_jar_VERSION)
- set(_JAVA_TARGET_OUTPUT_NAME "${_add_jar_OUTPUT_NAME}-${_add_jar_VERSION}.jar")
- set(_JAVA_TARGET_OUTPUT_LINK "${_add_jar_OUTPUT_NAME}.jar")
- elseif (_add_jar_VERSION)
- set(_JAVA_TARGET_OUTPUT_NAME "${_TARGET_NAME}-${_add_jar_VERSION}.jar")
- set(_JAVA_TARGET_OUTPUT_LINK "${_TARGET_NAME}.jar")
- elseif (_add_jar_OUTPUT_NAME)
- set(_JAVA_TARGET_OUTPUT_NAME "${_add_jar_OUTPUT_NAME}.jar")
- endif ()
-
- set(_JAVA_CLASS_FILES)
- set(_JAVA_COMPILE_FILES)
- set(_JAVA_COMPILE_FILELISTS)
- set(_JAVA_DEPENDS)
- set(_JAVA_COMPILE_DEPENDS)
- set(_JAVA_RESOURCE_FILES)
- set(_JAVA_RESOURCE_FILES_RELATIVE)
- foreach(_JAVA_SOURCE_FILE IN LISTS _JAVA_SOURCE_FILES)
- get_filename_component(_JAVA_EXT ${_JAVA_SOURCE_FILE} EXT)
- get_filename_component(_JAVA_FILE ${_JAVA_SOURCE_FILE} NAME_WE)
- get_filename_component(_JAVA_PATH ${_JAVA_SOURCE_FILE} PATH)
- get_filename_component(_JAVA_FULL ${_JAVA_SOURCE_FILE} ABSOLUTE)
-
- if (_JAVA_SOURCE_FILE MATCHES "^@(.+)$")
- get_filename_component(_JAVA_FULL ${CMAKE_MATCH_1} ABSOLUTE)
- list(APPEND _JAVA_COMPILE_FILELISTS ${_JAVA_FULL})
-
- elseif (_JAVA_EXT MATCHES ".java")
- file(RELATIVE_PATH _JAVA_REL_BINARY_PATH ${CMAKE_CURRENT_BINARY_DIR} ${_JAVA_FULL})
- file(RELATIVE_PATH _JAVA_REL_SOURCE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${_JAVA_FULL})
- string(LENGTH ${_JAVA_REL_BINARY_PATH} _BIN_LEN)
- string(LENGTH ${_JAVA_REL_SOURCE_PATH} _SRC_LEN)
- if (_BIN_LEN LESS _SRC_LEN)
- set(_JAVA_REL_PATH ${_JAVA_REL_BINARY_PATH})
- else ()
- set(_JAVA_REL_PATH ${_JAVA_REL_SOURCE_PATH})
- endif ()
- get_filename_component(_JAVA_REL_PATH ${_JAVA_REL_PATH} PATH)
-
- list(APPEND _JAVA_COMPILE_FILES ${_JAVA_SOURCE_FILE})
- set(_JAVA_CLASS_FILE "${CMAKE_JAVA_CLASS_OUTPUT_PATH}/${_JAVA_REL_PATH}/${_JAVA_FILE}.class")
- set(_JAVA_CLASS_FILES ${_JAVA_CLASS_FILES} ${_JAVA_CLASS_FILE})
-
- elseif (_JAVA_EXT MATCHES ".jar"
- OR _JAVA_EXT MATCHES ".war"
- OR _JAVA_EXT MATCHES ".ear"
- OR _JAVA_EXT MATCHES ".sar")
- # Ignored for backward compatibility
-
- elseif (_JAVA_EXT STREQUAL "")
- list(APPEND CMAKE_JAVA_INCLUDE_PATH ${JAVA_JAR_TARGET_${_JAVA_SOURCE_FILE}} ${JAVA_JAR_TARGET_${_JAVA_SOURCE_FILE}_CLASSPATH})
- list(APPEND _JAVA_DEPENDS ${JAVA_JAR_TARGET_${_JAVA_SOURCE_FILE}})
-
- else ()
- __java_copy_file(${CMAKE_CURRENT_SOURCE_DIR}/${_JAVA_SOURCE_FILE}
- ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/${_JAVA_SOURCE_FILE}
- "Copying ${_JAVA_SOURCE_FILE} to the build directory")
- list(APPEND _JAVA_RESOURCE_FILES ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/${_JAVA_SOURCE_FILE})
- list(APPEND _JAVA_RESOURCE_FILES_RELATIVE ${_JAVA_SOURCE_FILE})
- endif ()
- endforeach()
-
- foreach(_JAVA_INCLUDE_JAR IN LISTS _add_jar_INCLUDE_JARS)
- if (TARGET ${_JAVA_INCLUDE_JAR})
- get_target_property(_JAVA_JAR_PATH ${_JAVA_INCLUDE_JAR} JAR_FILE)
- if (_JAVA_JAR_PATH)
- string(APPEND CMAKE_JAVA_INCLUDE_PATH_FINAL "${CMAKE_JAVA_INCLUDE_FLAG_SEP}${_JAVA_JAR_PATH}")
- list(APPEND CMAKE_JAVA_INCLUDE_PATH ${_JAVA_JAR_PATH})
- list(APPEND _JAVA_DEPENDS ${_JAVA_INCLUDE_JAR})
- list(APPEND _JAVA_COMPILE_DEPENDS ${_JAVA_JAR_PATH})
- else ()
- message(SEND_ERROR "add_jar: INCLUDE_JARS target ${_JAVA_INCLUDE_JAR} is not a jar")
- endif ()
- else ()
- string(APPEND CMAKE_JAVA_INCLUDE_PATH_FINAL "${CMAKE_JAVA_INCLUDE_FLAG_SEP}${_JAVA_INCLUDE_JAR}")
- list(APPEND CMAKE_JAVA_INCLUDE_PATH "${_JAVA_INCLUDE_JAR}")
- list(APPEND _JAVA_DEPENDS "${_JAVA_INCLUDE_JAR}")
- list(APPEND _JAVA_COMPILE_DEPENDS "${_JAVA_INCLUDE_JAR}")
- endif ()
- endforeach()
-
- if (_JAVA_COMPILE_FILES OR _JAVA_COMPILE_FILELISTS)
- set (_JAVA_SOURCES_FILELISTS)
-
- if (_JAVA_COMPILE_FILES)
- # Create the list of files to compile.
- set(_JAVA_SOURCES_FILE ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_sources)
- string(REPLACE ";" "\"\n\"" _JAVA_COMPILE_STRING "\"${_JAVA_COMPILE_FILES}\"")
- file(WRITE ${_JAVA_SOURCES_FILE} ${_JAVA_COMPILE_STRING})
- list (APPEND _JAVA_SOURCES_FILELISTS "@${_JAVA_SOURCES_FILE}")
- endif()
- if (_JAVA_COMPILE_FILELISTS)
- foreach (_JAVA_FILELIST IN LISTS _JAVA_COMPILE_FILELISTS)
- list (APPEND _JAVA_SOURCES_FILELISTS "@${_JAVA_FILELIST}")
- endforeach()
- endif()
-
- # Compile the java files and create a list of class files
- add_custom_command(
- # NOTE: this command generates an artificial dependency file
- OUTPUT ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
- COMMAND ${Java_JAVAC_EXECUTABLE}
- ${CMAKE_JAVA_COMPILE_FLAGS}
- -classpath "${CMAKE_JAVA_INCLUDE_PATH_FINAL}"
- -d ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
- ${_GENERATE_NATIVE_HEADERS}
- ${_JAVA_SOURCES_FILELISTS}
- COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
- DEPENDS ${_JAVA_COMPILE_FILES} ${_JAVA_COMPILE_FILELISTS} ${_JAVA_COMPILE_DEPENDS}
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- COMMENT "Building Java objects for ${_TARGET_NAME}.jar"
- )
- add_custom_command(
- OUTPUT ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
- COMMAND ${CMAKE_COMMAND}
- -DCMAKE_JAVA_CLASS_OUTPUT_PATH=${CMAKE_JAVA_CLASS_OUTPUT_PATH}
- -DCMAKE_JAR_CLASSES_PREFIX="${CMAKE_JAR_CLASSES_PREFIX}"
- -P ${_JAVA_CLASS_FILELIST_SCRIPT}
- DEPENDS ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- )
- else ()
- # create an empty java_class_filelist
- if (NOT EXISTS ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist)
- file(WRITE ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist "")
- endif()
- endif ()
-
- # create the jar file
- set(_JAVA_JAR_OUTPUT_PATH
- "${_add_jar_OUTPUT_DIR}/${_JAVA_TARGET_OUTPUT_NAME}")
- if (CMAKE_JNI_TARGET)
- add_custom_command(
- OUTPUT ${_JAVA_JAR_OUTPUT_PATH}
- COMMAND ${Java_JAR_EXECUTABLE}
- -cf${_ENTRY_POINT_OPTION}${_MANIFEST_OPTION} ${_JAVA_JAR_OUTPUT_PATH} ${_ENTRY_POINT_VALUE} ${_MANIFEST_VALUE}
- ${_JAVA_RESOURCE_FILES_RELATIVE} @java_class_filelist
- COMMAND ${CMAKE_COMMAND}
- -D_JAVA_TARGET_DIR=${_add_jar_OUTPUT_DIR}
- -D_JAVA_TARGET_OUTPUT_NAME=${_JAVA_TARGET_OUTPUT_NAME}
- -D_JAVA_TARGET_OUTPUT_LINK=${_JAVA_TARGET_OUTPUT_LINK}
- -P ${_JAVA_SYMLINK_SCRIPT}
- COMMAND ${CMAKE_COMMAND}
- -D_JAVA_TARGET_DIR=${_add_jar_OUTPUT_DIR}
- -D_JAVA_TARGET_OUTPUT_NAME=${_JAVA_JAR_OUTPUT_PATH}
- -D_JAVA_TARGET_OUTPUT_LINK=${_JAVA_TARGET_OUTPUT_LINK}
- -P ${_JAVA_SYMLINK_SCRIPT}
- DEPENDS ${_JAVA_RESOURCE_FILES} ${_JAVA_DEPENDS} ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
- WORKING_DIRECTORY ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
- COMMENT "Creating Java archive ${_JAVA_TARGET_OUTPUT_NAME}"
- )
- else ()
- add_custom_command(
- OUTPUT ${_JAVA_JAR_OUTPUT_PATH}
- COMMAND ${Java_JAR_EXECUTABLE}
- -cf${_ENTRY_POINT_OPTION}${_MANIFEST_OPTION} ${_JAVA_JAR_OUTPUT_PATH} ${_ENTRY_POINT_VALUE} ${_MANIFEST_VALUE}
- ${_JAVA_RESOURCE_FILES_RELATIVE} @java_class_filelist
- COMMAND ${CMAKE_COMMAND}
- -D_JAVA_TARGET_DIR=${_add_jar_OUTPUT_DIR}
- -D_JAVA_TARGET_OUTPUT_NAME=${_JAVA_TARGET_OUTPUT_NAME}
- -D_JAVA_TARGET_OUTPUT_LINK=${_JAVA_TARGET_OUTPUT_LINK}
- -P ${_JAVA_SYMLINK_SCRIPT}
- WORKING_DIRECTORY ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
- DEPENDS ${_JAVA_RESOURCE_FILES} ${_JAVA_DEPENDS} ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
- COMMENT "Creating Java archive ${_JAVA_TARGET_OUTPUT_NAME}"
- )
- endif ()
-
- # Add the target and make sure we have the latest resource files.
- add_custom_target(${_TARGET_NAME} ALL DEPENDS ${_JAVA_JAR_OUTPUT_PATH})
-
- set_property(
- TARGET
- ${_TARGET_NAME}
- PROPERTY
- INSTALL_FILES
- ${_JAVA_JAR_OUTPUT_PATH}
- )
-
- if (_JAVA_TARGET_OUTPUT_LINK)
- set_property(
- TARGET
- ${_TARGET_NAME}
- PROPERTY
- INSTALL_FILES
- ${_JAVA_JAR_OUTPUT_PATH}
- ${_add_jar_OUTPUT_DIR}/${_JAVA_TARGET_OUTPUT_LINK}
- )
-
- if (CMAKE_JNI_TARGET)
- set_property(
- TARGET
- ${_TARGET_NAME}
- PROPERTY
- JNI_SYMLINK
- ${_add_jar_OUTPUT_DIR}/${_JAVA_TARGET_OUTPUT_LINK}
- )
- endif ()
- endif ()
-
- set_property(
- TARGET
- ${_TARGET_NAME}
- PROPERTY
- JAR_FILE
- ${_JAVA_JAR_OUTPUT_PATH}
- )
-
- set_property(
- TARGET
- ${_TARGET_NAME}
- PROPERTY
- CLASSDIR
- ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
- )
-
- if (_GENERATE_NATIVE_HEADERS)
- # create an INTERFACE library encapsulating include directory for generated headers
- add_library (${_GENERATE_NATIVE_HEADERS_TARGET} INTERFACE)
- target_include_directories (${_GENERATE_NATIVE_HEADERS_TARGET} INTERFACE
- "${_GENERATE_NATIVE_HEADERS_OUTPUT_DIR}"
- ${JNI_INCLUDE_DIRS})
- # this INTERFACE library depends on jar generation
- add_dependencies (${_GENERATE_NATIVE_HEADERS_TARGET} ${_TARGET_NAME})
-
- set_property (DIRECTORY APPEND PROPERTY ADDITIONAL_CLEAN_FILES
- "${_GENERATE_NATIVE_HEADERS_OUTPUT_DIR}")
- endif()
-endfunction()
-
-function(INSTALL_JAR _TARGET_NAME)
- if (ARGC EQUAL 2)
- set (_DESTINATION ${ARGV1})
- else()
- cmake_parse_arguments(_install_jar
- ""
- "DESTINATION;COMPONENT"
- ""
- ${ARGN})
- if (_install_jar_DESTINATION)
- set (_DESTINATION ${_install_jar_DESTINATION})
- else()
- message(SEND_ERROR "install_jar: ${_TARGET_NAME}: DESTINATION must be specified.")
- endif()
-
- if (_install_jar_COMPONENT)
- set (_COMPONENT COMPONENT ${_install_jar_COMPONENT})
- endif()
- endif()
-
- get_property(__FILES
- TARGET
- ${_TARGET_NAME}
- PROPERTY
- INSTALL_FILES
- )
- set_property(
- TARGET
- ${_TARGET_NAME}
- PROPERTY
- INSTALL_DESTINATION
- ${_DESTINATION}
- )
-
- if (__FILES)
- install(
- FILES
- ${__FILES}
- DESTINATION
- ${_DESTINATION}
- ${_COMPONENT}
- )
- else ()
- message(SEND_ERROR "install_jar: The target ${_TARGET_NAME} is not known in this scope.")
- endif ()
-endfunction()
-
-function(INSTALL_JNI_SYMLINK _TARGET_NAME)
- if (ARGC EQUAL 2)
- set (_DESTINATION ${ARGV1})
- else()
- cmake_parse_arguments(_install_jni_symlink
- ""
- "DESTINATION;COMPONENT"
- ""
- ${ARGN})
- if (_install_jni_symlink_DESTINATION)
- set (_DESTINATION ${_install_jni_symlink_DESTINATION})
- else()
- message(SEND_ERROR "install_jni_symlink: ${_TARGET_NAME}: DESTINATION must be specified.")
- endif()
-
- if (_install_jni_symlink_COMPONENT)
- set (_COMPONENT COMPONENT ${_install_jni_symlink_COMPONENT})
- endif()
- endif()
-
- get_property(__SYMLINK
- TARGET
- ${_TARGET_NAME}
- PROPERTY
- JNI_SYMLINK
- )
-
- if (__SYMLINK)
- install(
- FILES
- ${__SYMLINK}
- DESTINATION
- ${_DESTINATION}
- ${_COMPONENT}
- )
- else ()
- message(SEND_ERROR "install_jni_symlink: The target ${_TARGET_NAME} is not known in this scope.")
- endif ()
-endfunction()
-
-function (find_jar VARIABLE)
- set(_jar_names)
- set(_jar_files)
- set(_jar_versions)
- set(_jar_paths
- /usr/share/java/
- /usr/local/share/java/
- ${Java_JAR_PATHS})
- set(_jar_doc "NOTSET")
-
- set(_state "name")
-
- foreach (arg IN LISTS ARGN)
- if (_state STREQUAL "name")
- if (arg STREQUAL "VERSIONS")
- set(_state "versions")
- elseif (arg STREQUAL "NAMES")
- set(_state "names")
- elseif (arg STREQUAL "PATHS")
- set(_state "paths")
- elseif (arg STREQUAL "DOC")
- set(_state "doc")
- else ()
- set(_jar_names ${arg})
- if (_jar_doc STREQUAL "NOTSET")
- set(_jar_doc "Finding ${arg} jar")
- endif ()
- endif ()
- elseif (_state STREQUAL "versions")
- if (arg STREQUAL "NAMES")
- set(_state "names")
- elseif (arg STREQUAL "PATHS")
- set(_state "paths")
- elseif (arg STREQUAL "DOC")
- set(_state "doc")
- else ()
- set(_jar_versions ${_jar_versions} ${arg})
- endif ()
- elseif (_state STREQUAL "names")
- if (arg STREQUAL "VERSIONS")
- set(_state "versions")
- elseif (arg STREQUAL "PATHS")
- set(_state "paths")
- elseif (arg STREQUAL "DOC")
- set(_state "doc")
- else ()
- set(_jar_names ${_jar_names} ${arg})
- if (_jar_doc STREQUAL "NOTSET")
- set(_jar_doc "Finding ${arg} jar")
- endif ()
- endif ()
- elseif (_state STREQUAL "paths")
- if (arg STREQUAL "VERSIONS")
- set(_state "versions")
- elseif (arg STREQUAL "NAMES")
- set(_state "names")
- elseif (arg STREQUAL "DOC")
- set(_state "doc")
- else ()
- set(_jar_paths ${_jar_paths} ${arg})
- endif ()
- elseif (_state STREQUAL "doc")
- if (arg STREQUAL "VERSIONS")
- set(_state "versions")
- elseif (arg STREQUAL "NAMES")
- set(_state "names")
- elseif (arg STREQUAL "PATHS")
- set(_state "paths")
- else ()
- set(_jar_doc ${arg})
- endif ()
- endif ()
- endforeach ()
-
- if (NOT _jar_names)
- message(FATAL_ERROR "find_jar: No name to search for given")
- endif ()
-
- foreach (jar_name IN LISTS _jar_names)
- foreach (version IN LISTS _jar_versions)
- set(_jar_files ${_jar_files} ${jar_name}-${version}.jar)
- endforeach ()
- set(_jar_files ${_jar_files} ${jar_name}.jar)
- endforeach ()
-
- find_file(${VARIABLE}
- NAMES ${_jar_files}
- PATHS ${_jar_paths}
- DOC ${_jar_doc}
- NO_DEFAULT_PATH)
-endfunction ()
-
-function(create_javadoc _target)
- set(_javadoc_packages)
- set(_javadoc_files)
- set(_javadoc_sourcepath)
- set(_javadoc_classpath)
- set(_javadoc_installpath "${CMAKE_INSTALL_PREFIX}/share/javadoc")
- set(_javadoc_doctitle)
- set(_javadoc_windowtitle)
- set(_javadoc_author FALSE)
- set(_javadoc_version FALSE)
- set(_javadoc_use FALSE)
-
- set(_state "package")
-
- foreach (arg IN LISTS ARGN)
- if (_state STREQUAL "package")
- if (arg STREQUAL "PACKAGES")
- set(_state "packages")
- elseif (arg STREQUAL "FILES")
- set(_state "files")
- elseif (arg STREQUAL "SOURCEPATH")
- set(_state "sourcepath")
- elseif (arg STREQUAL "CLASSPATH")
- set(_state "classpath")
- elseif (arg STREQUAL "INSTALLPATH")
- set(_state "installpath")
- elseif (arg STREQUAL "DOCTITLE")
- set(_state "doctitle")
- elseif (arg STREQUAL "WINDOWTITLE")
- set(_state "windowtitle")
- elseif (arg STREQUAL "AUTHOR")
- set(_state "author")
- elseif (arg STREQUAL "USE")
- set(_state "use")
- elseif (arg STREQUAL "VERSION")
- set(_state "version")
- else ()
- set(_javadoc_packages ${arg})
- set(_state "packages")
- endif ()
- elseif (_state STREQUAL "packages")
- if (arg STREQUAL "FILES")
- set(_state "files")
- elseif (arg STREQUAL "SOURCEPATH")
- set(_state "sourcepath")
- elseif (arg STREQUAL "CLASSPATH")
- set(_state "classpath")
- elseif (arg STREQUAL "INSTALLPATH")
- set(_state "installpath")
- elseif (arg STREQUAL "DOCTITLE")
- set(_state "doctitle")
- elseif (arg STREQUAL "WINDOWTITLE")
- set(_state "windowtitle")
- elseif (arg STREQUAL "AUTHOR")
- set(_state "author")
- elseif (arg STREQUAL "USE")
- set(_state "use")
- elseif (arg STREQUAL "VERSION")
- set(_state "version")
- else ()
- list(APPEND _javadoc_packages ${arg})
- endif ()
- elseif (_state STREQUAL "files")
- if (arg STREQUAL "PACKAGES")
- set(_state "packages")
- elseif (arg STREQUAL "SOURCEPATH")
- set(_state "sourcepath")
- elseif (arg STREQUAL "CLASSPATH")
- set(_state "classpath")
- elseif (arg STREQUAL "INSTALLPATH")
- set(_state "installpath")
- elseif (arg STREQUAL "DOCTITLE")
- set(_state "doctitle")
- elseif (arg STREQUAL "WINDOWTITLE")
- set(_state "windowtitle")
- elseif (arg STREQUAL "AUTHOR")
- set(_state "author")
- elseif (arg STREQUAL "USE")
- set(_state "use")
- elseif (arg STREQUAL "VERSION")
- set(_state "version")
- else ()
- list(APPEND _javadoc_files ${arg})
- endif ()
- elseif (_state STREQUAL "sourcepath")
- if (arg STREQUAL "PACKAGES")
- set(_state "packages")
- elseif (arg STREQUAL "FILES")
- set(_state "files")
- elseif (arg STREQUAL "CLASSPATH")
- set(_state "classpath")
- elseif (arg STREQUAL "INSTALLPATH")
- set(_state "installpath")
- elseif (arg STREQUAL "DOCTITLE")
- set(_state "doctitle")
- elseif (arg STREQUAL "WINDOWTITLE")
- set(_state "windowtitle")
- elseif (arg STREQUAL "AUTHOR")
- set(_state "author")
- elseif (arg STREQUAL "USE")
- set(_state "use")
- elseif (arg STREQUAL "VERSION")
- set(_state "version")
- else ()
- list(APPEND _javadoc_sourcepath ${arg})
- endif ()
- elseif (_state STREQUAL "classpath")
- if (arg STREQUAL "PACKAGES")
- set(_state "packages")
- elseif (arg STREQUAL "FILES")
- set(_state "files")
- elseif (arg STREQUAL "SOURCEPATH")
- set(_state "sourcepath")
- elseif (arg STREQUAL "INSTALLPATH")
- set(_state "installpath")
- elseif (arg STREQUAL "DOCTITLE")
- set(_state "doctitle")
- elseif (arg STREQUAL "WINDOWTITLE")
- set(_state "windowtitle")
- elseif (arg STREQUAL "AUTHOR")
- set(_state "author")
- elseif (arg STREQUAL "USE")
- set(_state "use")
- elseif (arg STREQUAL "VERSION")
- set(_state "version")
- else ()
- list(APPEND _javadoc_classpath ${arg})
- endif ()
- elseif (_state STREQUAL "installpath")
- if (arg STREQUAL "PACKAGES")
- set(_state "packages")
- elseif (arg STREQUAL "FILES")
- set(_state "files")
- elseif (arg STREQUAL "SOURCEPATH")
- set(_state "sourcepath")
- elseif (arg STREQUAL "DOCTITLE")
- set(_state "doctitle")
- elseif (arg STREQUAL "WINDOWTITLE")
- set(_state "windowtitle")
- elseif (arg STREQUAL "AUTHOR")
- set(_state "author")
- elseif (arg STREQUAL "USE")
- set(_state "use")
- elseif (arg STREQUAL "VERSION")
- set(_state "version")
- else ()
- set(_javadoc_installpath ${arg})
- endif ()
- elseif (_state STREQUAL "doctitle")
- if (${arg} STREQUAL "PACKAGES")
- set(_state "packages")
- elseif (arg STREQUAL "FILES")
- set(_state "files")
- elseif (arg STREQUAL "SOURCEPATH")
- set(_state "sourcepath")
- elseif (arg STREQUAL "INSTALLPATH")
- set(_state "installpath")
- elseif (arg STREQUAL "CLASSPATH")
- set(_state "classpath")
- elseif (arg STREQUAL "WINDOWTITLE")
- set(_state "windowtitle")
- elseif (arg STREQUAL "AUTHOR")
- set(_state "author")
- elseif (arg STREQUAL "USE")
- set(_state "use")
- elseif (arg STREQUAL "VERSION")
- set(_state "version")
- else ()
- set(_javadoc_doctitle ${arg})
- endif ()
- elseif (_state STREQUAL "windowtitle")
- if (${arg} STREQUAL "PACKAGES")
- set(_state "packages")
- elseif (arg STREQUAL "FILES")
- set(_state "files")
- elseif (arg STREQUAL "SOURCEPATH")
- set(_state "sourcepath")
- elseif (arg STREQUAL "CLASSPATH")
- set(_state "classpath")
- elseif (arg STREQUAL "INSTALLPATH")
- set(_state "installpath")
- elseif (arg STREQUAL "DOCTITLE")
- set(_state "doctitle")
- elseif (arg STREQUAL "AUTHOR")
- set(_state "author")
- elseif (arg STREQUAL "USE")
- set(_state "use")
- elseif (arg STREQUAL "VERSION")
- set(_state "version")
- else ()
- set(_javadoc_windowtitle ${arg})
- endif ()
- elseif (_state STREQUAL "author")
- if (arg STREQUAL "PACKAGES")
- set(_state "packages")
- elseif (arg STREQUAL "FILES")
- set(_state "files")
- elseif (arg STREQUAL "SOURCEPATH")
- set(_state "sourcepath")
- elseif (arg STREQUAL "CLASSPATH")
- set(_state "classpath")
- elseif (arg STREQUAL "INSTALLPATH")
- set(_state "installpath")
- elseif (arg STREQUAL "DOCTITLE")
- set(_state "doctitle")
- elseif (arg STREQUAL "WINDOWTITLE")
- set(_state "windowtitle")
- elseif (arg STREQUAL "AUTHOR")
- set(_state "author")
- elseif (arg STREQUAL "USE")
- set(_state "use")
- elseif (arg STREQUAL "VERSION")
- set(_state "version")
- else ()
- set(_javadoc_author ${arg})
- endif ()
- elseif (_state STREQUAL "use")
- if (arg STREQUAL "PACKAGES")
- set(_state "packages")
- elseif (arg STREQUAL "FILES")
- set(_state "files")
- elseif (arg STREQUAL "SOURCEPATH")
- set(_state "sourcepath")
- elseif (arg STREQUAL "CLASSPATH")
- set(_state "classpath")
- elseif (arg STREQUAL "INSTALLPATH")
- set(_state "installpath")
- elseif (arg STREQUAL "DOCTITLE")
- set(_state "doctitle")
- elseif (arg STREQUAL "WINDOWTITLE")
- set(_state "windowtitle")
- elseif (arg STREQUAL "AUTHOR")
- set(_state "author")
- elseif (arg STREQUAL "USE")
- set(_state "use")
- elseif (arg STREQUAL "VERSION")
- set(_state "version")
- else ()
- set(_javadoc_use ${arg})
- endif ()
- elseif (_state STREQUAL "version")
- if (arg STREQUAL "PACKAGES")
- set(_state "packages")
- elseif (arg STREQUAL "FILES")
- set(_state "files")
- elseif (arg STREQUAL "SOURCEPATH")
- set(_state "sourcepath")
- elseif (arg STREQUAL "CLASSPATH")
- set(_state "classpath")
- elseif (arg STREQUAL "INSTALLPATH")
- set(_state "installpath")
- elseif (arg STREQUAL "DOCTITLE")
- set(_state "doctitle")
- elseif (arg STREQUAL "WINDOWTITLE")
- set(_state "windowtitle")
- elseif (arg STREQUAL "AUTHOR")
- set(_state "author")
- elseif (arg STREQUAL "USE")
- set(_state "use")
- elseif (arg STREQUAL "VERSION")
- set(_state "version")
- else ()
- set(_javadoc_version ${arg})
- endif ()
- endif ()
- endforeach ()
-
- set(_javadoc_builddir ${CMAKE_CURRENT_BINARY_DIR}/javadoc/${_target})
- set(_javadoc_options -d ${_javadoc_builddir})
-
- if (_javadoc_sourcepath)
- set(_start TRUE)
- foreach(_path IN LISTS _javadoc_sourcepath)
- if (_start)
- set(_sourcepath ${_path})
- set(_start FALSE)
- else ()
- set(_sourcepath ${_sourcepath}:${_path})
- endif ()
- endforeach()
- set(_javadoc_options ${_javadoc_options} -sourcepath ${_sourcepath})
- endif ()
-
- if (_javadoc_classpath)
- set(_start TRUE)
- foreach(_path IN LISTS _javadoc_classpath)
- if (_start)
- set(_classpath ${_path})
- set(_start FALSE)
- else ()
- set(_classpath ${_classpath}:${_path})
- endif ()
- endforeach()
- set(_javadoc_options ${_javadoc_options} -classpath "${_classpath}")
- endif ()
-
- if (_javadoc_doctitle)
- set(_javadoc_options ${_javadoc_options} -doctitle '${_javadoc_doctitle}')
- endif ()
-
- if (_javadoc_windowtitle)
- set(_javadoc_options ${_javadoc_options} -windowtitle '${_javadoc_windowtitle}')
- endif ()
-
- if (_javadoc_author)
- set(_javadoc_options ${_javadoc_options} -author)
- endif ()
-
- if (_javadoc_use)
- set(_javadoc_options ${_javadoc_options} -use)
- endif ()
-
- if (_javadoc_version)
- set(_javadoc_options ${_javadoc_options} -version)
- endif ()
-
- add_custom_target(${_target}_javadoc ALL
- COMMAND ${Java_JAVADOC_EXECUTABLE} ${_javadoc_options}
- ${_javadoc_files}
- ${_javadoc_packages}
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- )
-
- install(
- DIRECTORY ${_javadoc_builddir}
- DESTINATION ${_javadoc_installpath}
- )
-endfunction()
-
-function (create_javah)
- if (Java_VERSION VERSION_GREATER_EQUAL 10)
- message (FATAL_ERROR "create_javah: not supported with this Java version. Use add_jar(GENERATE_NATIVE_HEADERS) instead.")
- elseif (Java_VERSION VERSION_GREATER_EQUAL 1.8)
- message (DEPRECATION "create_javah: this command will no longer be supported starting with version 10 of JDK. Update your project by using command add_jar(GENERATE_NATIVE_HEADERS) instead.")
- endif()
-
- cmake_parse_arguments(_create_javah
- ""
- "TARGET;GENERATED_FILES;OUTPUT_NAME;OUTPUT_DIR"
- "CLASSES;CLASSPATH;DEPENDS"
- ${ARGN})
-
- # ckeck parameters
- if (NOT _create_javah_TARGET AND NOT _create_javah_GENERATED_FILES)
- message (FATAL_ERROR "create_javah: TARGET or GENERATED_FILES must be specified.")
- endif()
- if (_create_javah_OUTPUT_NAME AND _create_javah_OUTPUT_DIR)
- message (FATAL_ERROR "create_javah: OUTPUT_NAME and OUTPUT_DIR are mutually exclusive.")
- endif()
-
- if (NOT _create_javah_CLASSES)
- message (FATAL_ERROR "create_javah: CLASSES is a required parameter.")
- endif()
-
- set (_output_files)
- if (WIN32 AND NOT CYGWIN AND CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
- set(_classpath_sep "$<SEMICOLON>")
- else ()
- set(_classpath_sep ":")
- endif()
-
- # handle javah options
- set (_javah_options)
-
- if (_create_javah_CLASSPATH)
- # CLASSPATH can specify directories, jar files or targets created with add_jar command
- set (_classpath)
- foreach (_path IN LISTS _create_javah_CLASSPATH)
- if (TARGET ${_path})
- get_target_property (_jar_path ${_path} JAR_FILE)
- if (_jar_path)
- list (APPEND _classpath "${_jar_path}")
- list (APPEND _create_javah_DEPENDS "${_path}")
- else()
- message(SEND_ERROR "create_javah: CLASSPATH target ${_path} is not a jar.")
- endif()
- elseif (EXISTS "${_path}")
- list (APPEND _classpath "${_path}")
- if (NOT IS_DIRECTORY "${_path}")
- list (APPEND _create_javah_DEPENDS "${_path}")
- endif()
- else()
- message(SEND_ERROR "create_javah: CLASSPATH entry ${_path} does not exist.")
- endif()
- endforeach()
- string (REPLACE ";" "${_classpath_sep}" _classpath "${_classpath}")
- list (APPEND _javah_options -classpath "${_classpath}")
- endif()
-
- if (_create_javah_OUTPUT_DIR)
- list (APPEND _javah_options -d "${_create_javah_OUTPUT_DIR}")
- endif()
-
- if (_create_javah_OUTPUT_NAME)
- list (APPEND _javah_options -o "${_create_javah_OUTPUT_NAME}")
- set (_output_files "${_create_javah_OUTPUT_NAME}")
-
- get_filename_component (_create_javah_OUTPUT_DIR "${_create_javah_OUTPUT_NAME}" DIRECTORY)
- get_filename_component (_create_javah_OUTPUT_DIR "${_create_javah_OUTPUT_DIR}" ABSOLUTE)
- endif()
-
- if (NOT _create_javah_OUTPUT_DIR)
- set (_create_javah_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}")
- endif()
-
- if (NOT _create_javah_OUTPUT_NAME)
- # compute output names
- foreach (_class IN LISTS _create_javah_CLASSES)
- string (REPLACE "." "_" _c_header "${_class}")
- set (_c_header "${_create_javah_OUTPUT_DIR}/${_c_header}.h")
- list (APPEND _output_files "${_c_header}")
- endforeach()
- endif()
-
- # finalize custom command arguments
- if (_create_javah_DEPENDS)
- list (INSERT _create_javah_DEPENDS 0 DEPENDS)
- endif()
-
- add_custom_command (OUTPUT ${_output_files}
- COMMAND "${Java_JAVAH_EXECUTABLE}" ${_javah_options} -jni ${_create_javah_CLASSES}
- ${_create_javah_DEPENDS}
- WORKING_DIRECTORY ${_create_javah_OUTPUT_DIR}
- COMMENT "Building C header files from classes...")
-
- if (_create_javah_TARGET)
- add_custom_target (${_create_javah_TARGET} ALL DEPENDS ${_output_files})
- endif()
- if (_create_javah_GENERATED_FILES)
- set (${_create_javah_GENERATED_FILES} ${_output_files} PARENT_SCOPE)
- endif()
-endfunction()
-
-function(export_jars)
- # Parse and validate arguments
- cmake_parse_arguments(_export_jars
- ""
- "FILE;NAMESPACE"
- "TARGETS"
- ${ARGN}
- )
- if (NOT _export_jars_FILE)
- message(SEND_ERROR "export_jars: FILE must be specified.")
- endif()
- if (NOT _export_jars_TARGETS)
- message(SEND_ERROR "export_jars: TARGETS must be specified.")
- endif()
- set(_jar_NAMESPACE "${_export_jars_NAMESPACE}")
-
- # Set content of generated exports file
- string(REPLACE ";" " " __targets__ "${_export_jars_TARGETS}")
- set(__targetdefs__ "")
- foreach(_target IN LISTS _export_jars_TARGETS)
- get_target_property(_jarpath ${_target} JAR_FILE)
- get_filename_component(_jarpath ${_jarpath} PATH)
- __java_export_jar(__targetdefs__ ${_target} "${_jarpath}")
- endforeach()
-
- # Generate exports file
- configure_file(
- ${_JAVA_EXPORT_TARGETS_SCRIPT}
- ${_export_jars_FILE}
- @ONLY
- )
-endfunction()
-
-function(install_jar_exports)
- # Parse and validate arguments
- cmake_parse_arguments(_install_jar_exports
- ""
- "FILE;DESTINATION;COMPONENT;NAMESPACE"
- "TARGETS"
- ${ARGN}
- )
- if (NOT _install_jar_exports_FILE)
- message(SEND_ERROR "install_jar_exports: FILE must be specified.")
- endif()
- if (NOT _install_jar_exports_DESTINATION)
- message(SEND_ERROR "install_jar_exports: DESTINATION must be specified.")
- endif()
- if (NOT _install_jar_exports_TARGETS)
- message(SEND_ERROR "install_jar_exports: TARGETS must be specified.")
- endif()
- set(_jar_NAMESPACE "${_install_jar_exports_NAMESPACE}")
-
- if (_install_jar_exports_COMPONENT)
- set (_COMPONENT COMPONENT ${_install_jar_exports_COMPONENT})
- endif()
-
- # Determine relative path from installed export file to install prefix
- if(IS_ABSOLUTE "${_install_jar_exports_DESTINATION}")
- file(RELATIVE_PATH _relpath
- ${_install_jar_exports_DESTINATION}
- ${CMAKE_INSTALL_PREFIX}
- )
- else()
- file(RELATIVE_PATH _relpath
- ${CMAKE_INSTALL_PREFIX}/${_install_jar_exports_DESTINATION}
- ${CMAKE_INSTALL_PREFIX}
- )
- endif()
-
- # Set up unique location for generated exports file
- string(SHA256 _hash "${_install_jar_exports_DESTINATION}")
- set(_tmpdir ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/JavaExports/${_hash})
-
- # Set content of generated exports file
- string(REPLACE ";" " " __targets__ "${_install_jar_exports_TARGETS}")
- set(__targetdefs__ "set(_prefix \${CMAKE_CURRENT_LIST_DIR}/${_relpath})\n\n")
- foreach(_target IN LISTS _install_jar_exports_TARGETS)
- get_target_property(_dir ${_target} INSTALL_DESTINATION)
- __java_export_jar(__targetdefs__ ${_target} "\${_prefix}/${_dir}")
- endforeach()
- __java_lcat(__targetdefs__ "\nunset(_prefix)")
-
- # Generate and install exports file
- configure_file(
- ${_JAVA_EXPORT_TARGETS_SCRIPT}
- ${_tmpdir}/${_install_jar_exports_FILE}
- @ONLY
- )
- install(FILES ${_tmpdir}/${_install_jar_exports_FILE}
- DESTINATION ${_install_jar_exports_DESTINATION}
- ${_COMPONENT})
-endfunction()
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_Cuda.json b/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_Cuda.json
deleted file mode 100644
index 1831b8a..0000000
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_Cuda.json
+++ /dev/null
@@ -1,224 +0,0 @@
-[
- {
- "name": "AdditionalCompilerOptions",
- "switch": "Xcompiler=",
- "comment": "Host compiler options",
- "value": "",
- "flags": [
- "UserValue",
- "SpaceAppendable"
- ]
- },
- {
- "name": "AdditionalCompilerOptions",
- "switch": "Xcompiler",
- "comment": "Host compiler options",
- "value": "",
- "flags": [
- "UserFollowing",
- "SpaceAppendable"
- ]
- },
- {
- "name": "CudaRuntime",
- "switch": "cudart=none",
- "comment": "No CUDA runtime library",
- "value": "None",
- "flags": []
- },
- {
- "name": "CudaRuntime",
- "switch": "cudart=shared",
- "comment": "Shared/dynamic CUDA runtime library",
- "value": "Shared",
- "flags": []
- },
- {
- "name": "CudaRuntime",
- "switch": "cudart=static",
- "comment": "Static CUDA runtime library",
- "value": "Static",
- "flags": []
- },
- {
- "name": "CudaRuntime",
- "switch": "cudart",
- "comment": "CUDA runtime library",
- "value": "",
- "flags": [
- "UserFollowing"
- ]
- },
- {
- "name": "cmake-temp-gencode",
- "switch": "gencode=",
- "comment": "",
- "value": "",
- "flags": [
- "UserValue",
- "SemicolonAppendable"
- ]
- },
- {
- "name": "cmake-temp-gencode",
- "switch": "gencode",
- "comment": "",
- "value": "",
- "flags": [
- "UserFollowing",
- "SemicolonAppendable"
- ]
- },
- {
- "name": "cmake-temp-gencode",
- "switch": "-generate-code=",
- "comment": "",
- "value": "",
- "flags": [
- "UserValue",
- "SemicolonAppendable"
- ]
- },
- {
- "name": "cmake-temp-gencode",
- "switch": "-generate-code",
- "comment": "",
- "value": "",
- "flags": [
- "UserFollowing",
- "SemicolonAppendable"
- ]
- },
- {
- "name": "cmake-temp-code",
- "switch": "code=",
- "comment": "",
- "value": "",
- "flags": [
- "UserValue"
- ]
- },
- {
- "name": "cmake-temp-code",
- "switch": "code",
- "comment": "",
- "value": "",
- "flags": [
- "UserFollowing"
- ]
- },
- {
- "name": "cmake-temp-code",
- "switch": "-gpu-code=",
- "comment": "",
- "value": "",
- "flags": [
- "UserValue"
- ]
- },
- {
- "name": "cmake-temp-code",
- "switch": "-gpu-code",
- "comment": "",
- "value": "",
- "flags": [
- "UserFollowing"
- ]
- },
- {
- "name": "cmake-temp-arch",
- "switch": "arch=",
- "comment": "",
- "value": "",
- "flags": [
- "UserValue"
- ]
- },
- {
- "name": "cmake-temp-arch",
- "switch": "arch",
- "comment": "",
- "value": "",
- "flags": [
- "UserFollowing"
- ]
- },
- {
- "name": "cmake-temp-arch",
- "switch": "-gpu-architecture=",
- "comment": "",
- "value": "",
- "flags": [
- "UserValue"
- ]
- },
- {
- "name": "cmake-temp-arch",
- "switch": "-gpu-architecture",
- "comment": "",
- "value": "",
- "flags": [
- "UserFollowing"
- ]
- },
- {
- "name": "FastMath",
- "switch": "use_fast_math",
- "comment": "",
- "value": "true",
- "flags": []
- },
- {
- "name": "FastMath",
- "switch": "-use_fast_math",
- "comment": "",
- "value": "true",
- "flags": []
- },
- {
- "name": "GPUDebugInfo",
- "switch": "G",
- "comment": "",
- "value": "true",
- "flags": []
- },
- {
- "name": "GPUDebugInfo",
- "switch": "-device-debug",
- "comment": "",
- "value": "true",
- "flags": []
- },
- {
- "name": "HostDebugInfo",
- "switch": "g",
- "comment": "",
- "value": "true",
- "flags": []
- },
- {
- "name": "HostDebugInfo",
- "switch": "-debug",
- "comment": "",
- "value": "true",
- "flags": []
- },
- {
- "name": "MaxRegCount",
- "switch": "maxrregcount=",
- "comment": "",
- "value": "",
- "flags": [
- "UserValue"
- ]
- },
- {
- "name": "MaxRegCount",
- "switch": "maxrregcount",
- "comment": "",
- "value": "",
- "flags": [
- "UserFollowing"
- ]
- }
-]
diff --git a/share/cmake-3.16/editors/vim/syntax/cmake.vim b/share/cmake-3.16/editors/vim/syntax/cmake.vim
deleted file mode 100644
index 5de117b..0000000
--- a/share/cmake-3.16/editors/vim/syntax/cmake.vim
+++ /dev/null
@@ -1,3363 +0,0 @@
-" Vim syntax file
-" Program: CMake - Cross-Platform Makefile Generator
-" Version: cmake version 3.14.20190529-g067a4f
-" 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: 2019 May 29
-"
-" Licence: The CMake license applies to this file. See
-" https://cmake.org/licensing
-" This implies that distribution with Vim is allowed
-
-if exists("b:current_syntax")
- finish
-endif
-let s:keepcpo= &cpo
-set cpo&vim
-
-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
-
-syn region cmakeGeneratorExpression start="$<" end=">" contained oneline contains=cmakeVariableValue,cmakeProperty,cmakeGeneratorExpressions,cmakeTodo
-
-syn region cmakeString start='"' end='"' contained contains=cmakeTodo,cmakeVariableValue,cmakeEscaped
-
-syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo,cmakeVariableValue
-
-syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo
-
-syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeGeneratorExpressions,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeCommandManuallyAdded,cmakeArguments,cmakeTodo
-
-syn case match
-
-syn keyword cmakeProperty contained
- \ ABSTRACT
- \ ADDITIONAL_CLEAN_FILES
- \ 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_ORIGIN_DEPENDS
- \ AUTOGEN_PARALLEL
- \ AUTOGEN_SOURCE_GROUP
- \ AUTOGEN_TARGETS_FOLDER
- \ AUTOGEN_TARGET_DEPENDS
- \ AUTOMOC
- \ AUTOMOC_COMPILER_PREDEFINES
- \ AUTOMOC_DEPEND_FILTERS
- \ AUTOMOC_EXECUTABLE
- \ AUTOMOC_MACRO_NAMES
- \ AUTOMOC_MOC_OPTIONS
- \ AUTOMOC_SOURCE_GROUP
- \ AUTOMOC_TARGETS_FOLDER
- \ AUTORCC
- \ AUTORCC_EXECUTABLE
- \ AUTORCC_OPTIONS
- \ AUTORCC_SOURCE_GROUP
- \ AUTOUIC
- \ AUTOUIC_EXECUTABLE
- \ AUTOUIC_OPTIONS
- \ AUTOUIC_SEARCH_PATHS
- \ BINARY_DIR
- \ BUILDSYSTEM_TARGETS
- \ BUILD_RPATH
- \ BUILD_RPATH_USE_ORIGIN
- \ 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
- \ CMAKE_ROLE
- \ 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
- \ GHS_INTEGRITY_APP
- \ GHS_NO_SOURCE_GROUP_FILE
- \ 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
- \ MSVC_RUNTIME_LIBRARY
- \ 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_REGULAR_EXPRESSION
- \ SKIP_RETURN_CODE
- \ SOURCES
- \ SOURCE_DIR
- \ SOVERSION
- \ STATIC_LIBRARY_FLAGS
- \ STATIC_LIBRARY_OPTIONS
- \ STRINGS
- \ SUBDIRECTORIES
- \ SUFFIX
- \ SYMBOLIC
- \ Swift_DEPENDENCIES_FILE
- \ Swift_DIAGNOSTICS_FILE
- \ Swift_MODULE_DIRECTORY
- \ Swift_MODULE_NAME
- \ 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_JUST_MY_CODE_DEBUGGING
- \ VS_KEYWORD
- \ VS_MOBILE_EXTENSIONS_VERSION
- \ VS_NO_SOLUTION_DEPLOY
- \ VS_PROJECT_IMPORT
- \ 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_GENERATE_SCHEME
- \ XCODE_LAST_KNOWN_FILE_TYPE
- \ XCODE_PRODUCT_TYPE
- \ XCODE_SCHEME_ADDRESS_SANITIZER
- \ XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
- \ XCODE_SCHEME_ARGUMENTS
- \ XCODE_SCHEME_DEBUG_AS_ROOT
- \ XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
- \ XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
- \ XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
- \ XCODE_SCHEME_ENVIRONMENT
- \ XCODE_SCHEME_EXECUTABLE
- \ XCODE_SCHEME_GUARD_MALLOC
- \ XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
- \ XCODE_SCHEME_MALLOC_GUARD_EDGES
- \ XCODE_SCHEME_MALLOC_SCRIBBLE
- \ XCODE_SCHEME_MALLOC_STACK
- \ XCODE_SCHEME_THREAD_SANITIZER
- \ XCODE_SCHEME_THREAD_SANITIZER_STOP
- \ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
- \ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
- \ XCODE_SCHEME_ZOMBIE_OBJECTS
- \ XCTEST
-
-syn keyword cmakeVariable contained
- \ ANDROID
- \ APPLE
- \ BORLAND
- \ BUILD_SHARED_LIBS
- \ CACHE
- \ CMAKE_ABSOLUTE_DESTINATION_FILES
- \ CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS
- \ CMAKE_ANDROID_API
- \ CMAKE_ANDROID_API_MIN
- \ CMAKE_ANDROID_ARCH
- \ CMAKE_ANDROID_ARCH_ABI
- \ CMAKE_ANDROID_ARM_MODE
- \ CMAKE_ANDROID_ARM_NEON
- \ CMAKE_ANDROID_ASSETS_DIRECTORIES
- \ CMAKE_ANDROID_GUI
- \ CMAKE_ANDROID_JAR_DEPENDENCIES
- \ CMAKE_ANDROID_JAR_DIRECTORIES
- \ CMAKE_ANDROID_JAVA_SOURCE_DIR
- \ CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES
- \ CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES
- \ CMAKE_ANDROID_NDK
- \ CMAKE_ANDROID_NDK_DEPRECATED_HEADERS
- \ CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG
- \ CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION
- \ CMAKE_ANDROID_PROCESS_MAX
- \ CMAKE_ANDROID_PROGUARD
- \ CMAKE_ANDROID_PROGUARD_CONFIG_PATH
- \ CMAKE_ANDROID_SECURE_PROPS_PATH
- \ CMAKE_ANDROID_SKIP_ANT_STEP
- \ CMAKE_ANDROID_STANDALONE_TOOLCHAIN
- \ CMAKE_ANDROID_STL_TYPE
- \ CMAKE_APPBUNDLE_PATH
- \ CMAKE_AR
- \ CMAKE_ARCHIVE_OUTPUT_DIRECTORY
- \ CMAKE_ARGC
- \ CMAKE_ARGV0
- \ CMAKE_ASM
- \ CMAKE_ASM_ANDROID_TOOLCHAIN_MACHINE
- \ CMAKE_ASM_ANDROID_TOOLCHAIN_PREFIX
- \ CMAKE_ASM_ANDROID_TOOLCHAIN_SUFFIX
- \ CMAKE_ASM_ARCHIVE_APPEND
- \ CMAKE_ASM_ARCHIVE_CREATE
- \ CMAKE_ASM_ARCHIVE_FINISH
- \ CMAKE_ASM_CLANG_TIDY
- \ CMAKE_ASM_COMPILER
- \ CMAKE_ASM_COMPILER_ABI
- \ CMAKE_ASM_COMPILER_AR
- \ CMAKE_ASM_COMPILER_ARCHITECTURE_ID
- \ CMAKE_ASM_COMPILER_EXTERNAL_TOOLCHAIN
- \ CMAKE_ASM_COMPILER_ID
- \ CMAKE_ASM_COMPILER_LAUNCHER
- \ CMAKE_ASM_COMPILER_LOADED
- \ CMAKE_ASM_COMPILER_PREDEFINES_COMMAND
- \ CMAKE_ASM_COMPILER_RANLIB
- \ CMAKE_ASM_COMPILER_TARGET
- \ CMAKE_ASM_COMPILER_VERSION
- \ CMAKE_ASM_COMPILER_VERSION_INTERNAL
- \ CMAKE_ASM_COMPILE_OBJECT
- \ CMAKE_ASM_CPPCHECK
- \ CMAKE_ASM_CPPLINT
- \ CMAKE_ASM_CREATE_SHARED_LIBRARY
- \ CMAKE_ASM_CREATE_SHARED_MODULE
- \ CMAKE_ASM_CREATE_STATIC_LIBRARY
- \ CMAKE_ASM_FLAGS
- \ CMAKE_ASM_FLAGS_DEBUG
- \ CMAKE_ASM_FLAGS_DEBUG_INIT
- \ CMAKE_ASM_FLAGS_INIT
- \ CMAKE_ASM_FLAGS_MINSIZEREL
- \ CMAKE_ASM_FLAGS_MINSIZEREL_INIT
- \ CMAKE_ASM_FLAGS_RELEASE
- \ CMAKE_ASM_FLAGS_RELEASE_INIT
- \ CMAKE_ASM_FLAGS_RELWITHDEBINFO
- \ CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT
- \ CMAKE_ASM_IGNORE_EXTENSIONS
- \ CMAKE_ASM_IMPLICIT_INCLUDE_DIRECTORIES
- \ CMAKE_ASM_IMPLICIT_LINK_DIRECTORIES
- \ CMAKE_ASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- \ CMAKE_ASM_IMPLICIT_LINK_LIBRARIES
- \ CMAKE_ASM_INCLUDE_WHAT_YOU_USE
- \ CMAKE_ASM_INIT
- \ CMAKE_ASM_LIBRARY_ARCHITECTURE
- \ CMAKE_ASM_LINKER_PREFERENCE
- \ CMAKE_ASM_LINKER_PREFERENCE_PROPAGATES
- \ CMAKE_ASM_LINKER_WRAPPER_FLAG
- \ CMAKE_ASM_LINKER_WRAPPER_FLAG_SEP
- \ CMAKE_ASM_LINK_EXECUTABLE
- \ CMAKE_ASM_MASM
- \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_MACHINE
- \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_PREFIX
- \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_SUFFIX
- \ CMAKE_ASM_MASM_ARCHIVE_APPEND
- \ CMAKE_ASM_MASM_ARCHIVE_CREATE
- \ CMAKE_ASM_MASM_ARCHIVE_FINISH
- \ CMAKE_ASM_MASM_CLANG_TIDY
- \ CMAKE_ASM_MASM_COMPILER
- \ CMAKE_ASM_MASM_COMPILER_ABI
- \ CMAKE_ASM_MASM_COMPILER_AR
- \ CMAKE_ASM_MASM_COMPILER_ARCHITECTURE_ID
- \ CMAKE_ASM_MASM_COMPILER_EXTERNAL_TOOLCHAIN
- \ CMAKE_ASM_MASM_COMPILER_ID
- \ CMAKE_ASM_MASM_COMPILER_LAUNCHER
- \ CMAKE_ASM_MASM_COMPILER_LOADED
- \ CMAKE_ASM_MASM_COMPILER_PREDEFINES_COMMAND
- \ CMAKE_ASM_MASM_COMPILER_RANLIB
- \ CMAKE_ASM_MASM_COMPILER_TARGET
- \ CMAKE_ASM_MASM_COMPILER_VERSION
- \ CMAKE_ASM_MASM_COMPILER_VERSION_INTERNAL
- \ CMAKE_ASM_MASM_COMPILE_OBJECT
- \ CMAKE_ASM_MASM_CPPCHECK
- \ CMAKE_ASM_MASM_CPPLINT
- \ CMAKE_ASM_MASM_CREATE_SHARED_LIBRARY
- \ CMAKE_ASM_MASM_CREATE_SHARED_MODULE
- \ CMAKE_ASM_MASM_CREATE_STATIC_LIBRARY
- \ CMAKE_ASM_MASM_FLAGS
- \ CMAKE_ASM_MASM_FLAGS_DEBUG
- \ CMAKE_ASM_MASM_FLAGS_DEBUG_INIT
- \ CMAKE_ASM_MASM_FLAGS_INIT
- \ CMAKE_ASM_MASM_FLAGS_MINSIZEREL
- \ CMAKE_ASM_MASM_FLAGS_MINSIZEREL_INIT
- \ CMAKE_ASM_MASM_FLAGS_RELEASE
- \ CMAKE_ASM_MASM_FLAGS_RELEASE_INIT
- \ CMAKE_ASM_MASM_FLAGS_RELWITHDEBINFO
- \ CMAKE_ASM_MASM_FLAGS_RELWITHDEBINFO_INIT
- \ CMAKE_ASM_MASM_IGNORE_EXTENSIONS
- \ CMAKE_ASM_MASM_IMPLICIT_INCLUDE_DIRECTORIES
- \ CMAKE_ASM_MASM_IMPLICIT_LINK_DIRECTORIES
- \ CMAKE_ASM_MASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- \ CMAKE_ASM_MASM_IMPLICIT_LINK_LIBRARIES
- \ CMAKE_ASM_MASM_INCLUDE_WHAT_YOU_USE
- \ CMAKE_ASM_MASM_INIT
- \ CMAKE_ASM_MASM_LIBRARY_ARCHITECTURE
- \ CMAKE_ASM_MASM_LINKER_PREFERENCE
- \ CMAKE_ASM_MASM_LINKER_PREFERENCE_PROPAGATES
- \ CMAKE_ASM_MASM_LINKER_WRAPPER_FLAG
- \ CMAKE_ASM_MASM_LINKER_WRAPPER_FLAG_SEP
- \ CMAKE_ASM_MASM_LINK_EXECUTABLE
- \ CMAKE_ASM_MASM_OUTPUT_EXTENSION
- \ CMAKE_ASM_MASM_PLATFORM_ID
- \ CMAKE_ASM_MASM_SIMULATE_ID
- \ CMAKE_ASM_MASM_SIMULATE_VERSION
- \ CMAKE_ASM_MASM_SIZEOF_DATA_PTR
- \ CMAKE_ASM_MASM_SOURCE_FILE_EXTENSIONS
- \ CMAKE_ASM_MASM_STANDARD_INCLUDE_DIRECTORIES
- \ CMAKE_ASM_MASM_STANDARD_LIBRARIES
- \ CMAKE_ASM_MASM_VISIBILITY_PRESET
- \ CMAKE_ASM_NASM
- \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_MACHINE
- \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_PREFIX
- \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_SUFFIX
- \ CMAKE_ASM_NASM_ARCHIVE_APPEND
- \ CMAKE_ASM_NASM_ARCHIVE_CREATE
- \ CMAKE_ASM_NASM_ARCHIVE_FINISH
- \ CMAKE_ASM_NASM_CLANG_TIDY
- \ CMAKE_ASM_NASM_COMPILER
- \ CMAKE_ASM_NASM_COMPILER_ABI
- \ CMAKE_ASM_NASM_COMPILER_AR
- \ CMAKE_ASM_NASM_COMPILER_ARCHITECTURE_ID
- \ CMAKE_ASM_NASM_COMPILER_EXTERNAL_TOOLCHAIN
- \ CMAKE_ASM_NASM_COMPILER_ID
- \ CMAKE_ASM_NASM_COMPILER_LAUNCHER
- \ CMAKE_ASM_NASM_COMPILER_LOADED
- \ CMAKE_ASM_NASM_COMPILER_PREDEFINES_COMMAND
- \ CMAKE_ASM_NASM_COMPILER_RANLIB
- \ CMAKE_ASM_NASM_COMPILER_TARGET
- \ CMAKE_ASM_NASM_COMPILER_VERSION
- \ CMAKE_ASM_NASM_COMPILER_VERSION_INTERNAL
- \ CMAKE_ASM_NASM_COMPILE_OBJECT
- \ CMAKE_ASM_NASM_CPPCHECK
- \ CMAKE_ASM_NASM_CPPLINT
- \ CMAKE_ASM_NASM_CREATE_SHARED_LIBRARY
- \ CMAKE_ASM_NASM_CREATE_SHARED_MODULE
- \ CMAKE_ASM_NASM_CREATE_STATIC_LIBRARY
- \ CMAKE_ASM_NASM_FLAGS
- \ CMAKE_ASM_NASM_FLAGS_DEBUG
- \ CMAKE_ASM_NASM_FLAGS_DEBUG_INIT
- \ CMAKE_ASM_NASM_FLAGS_INIT
- \ CMAKE_ASM_NASM_FLAGS_MINSIZEREL
- \ CMAKE_ASM_NASM_FLAGS_MINSIZEREL_INIT
- \ CMAKE_ASM_NASM_FLAGS_RELEASE
- \ CMAKE_ASM_NASM_FLAGS_RELEASE_INIT
- \ CMAKE_ASM_NASM_FLAGS_RELWITHDEBINFO
- \ CMAKE_ASM_NASM_FLAGS_RELWITHDEBINFO_INIT
- \ CMAKE_ASM_NASM_IGNORE_EXTENSIONS
- \ CMAKE_ASM_NASM_IMPLICIT_INCLUDE_DIRECTORIES
- \ CMAKE_ASM_NASM_IMPLICIT_LINK_DIRECTORIES
- \ CMAKE_ASM_NASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- \ CMAKE_ASM_NASM_IMPLICIT_LINK_LIBRARIES
- \ CMAKE_ASM_NASM_INCLUDE_WHAT_YOU_USE
- \ CMAKE_ASM_NASM_INIT
- \ CMAKE_ASM_NASM_LIBRARY_ARCHITECTURE
- \ CMAKE_ASM_NASM_LINKER_PREFERENCE
- \ CMAKE_ASM_NASM_LINKER_PREFERENCE_PROPAGATES
- \ CMAKE_ASM_NASM_LINKER_WRAPPER_FLAG
- \ CMAKE_ASM_NASM_LINKER_WRAPPER_FLAG_SEP
- \ CMAKE_ASM_NASM_LINK_EXECUTABLE
- \ CMAKE_ASM_NASM_OUTPUT_EXTENSION
- \ CMAKE_ASM_NASM_PLATFORM_ID
- \ CMAKE_ASM_NASM_SIMULATE_ID
- \ CMAKE_ASM_NASM_SIMULATE_VERSION
- \ CMAKE_ASM_NASM_SIZEOF_DATA_PTR
- \ CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS
- \ CMAKE_ASM_NASM_STANDARD_INCLUDE_DIRECTORIES
- \ CMAKE_ASM_NASM_STANDARD_LIBRARIES
- \ CMAKE_ASM_NASM_VISIBILITY_PRESET
- \ CMAKE_ASM_OUTPUT_EXTENSION
- \ CMAKE_ASM_PLATFORM_ID
- \ CMAKE_ASM_SIMULATE_ID
- \ CMAKE_ASM_SIMULATE_VERSION
- \ CMAKE_ASM_SIZEOF_DATA_PTR
- \ CMAKE_ASM_SOURCE_FILE_EXTENSIONS
- \ CMAKE_ASM_STANDARD_INCLUDE_DIRECTORIES
- \ CMAKE_ASM_STANDARD_LIBRARIES
- \ CMAKE_ASM_VISIBILITY_PRESET
- \ CMAKE_AUTOGEN_ORIGIN_DEPENDS
- \ 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_RPATH_USE_ORIGIN
- \ CMAKE_BUILD_TOOL
- \ CMAKE_BUILD_TYPE
- \ CMAKE_BUILD_WITH_INSTALL_NAME_DIR
- \ CMAKE_BUILD_WITH_INSTALL_RPATH
- \ CMAKE_C
- \ 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_CSharp
- \ CMAKE_CSharp_ANDROID_TOOLCHAIN_MACHINE
- \ CMAKE_CSharp_ANDROID_TOOLCHAIN_PREFIX
- \ CMAKE_CSharp_ANDROID_TOOLCHAIN_SUFFIX
- \ CMAKE_CSharp_ARCHIVE_APPEND
- \ CMAKE_CSharp_ARCHIVE_CREATE
- \ CMAKE_CSharp_ARCHIVE_FINISH
- \ CMAKE_CSharp_CLANG_TIDY
- \ CMAKE_CSharp_COMPILER
- \ CMAKE_CSharp_COMPILER_ABI
- \ CMAKE_CSharp_COMPILER_AR
- \ CMAKE_CSharp_COMPILER_ARCHITECTURE_ID
- \ CMAKE_CSharp_COMPILER_EXTERNAL_TOOLCHAIN
- \ CMAKE_CSharp_COMPILER_ID
- \ CMAKE_CSharp_COMPILER_LAUNCHER
- \ CMAKE_CSharp_COMPILER_LOADED
- \ CMAKE_CSharp_COMPILER_PREDEFINES_COMMAND
- \ CMAKE_CSharp_COMPILER_RANLIB
- \ CMAKE_CSharp_COMPILER_TARGET
- \ CMAKE_CSharp_COMPILER_VERSION
- \ CMAKE_CSharp_COMPILER_VERSION_INTERNAL
- \ CMAKE_CSharp_COMPILE_OBJECT
- \ CMAKE_CSharp_CPPCHECK
- \ CMAKE_CSharp_CPPLINT
- \ CMAKE_CSharp_CREATE_SHARED_LIBRARY
- \ CMAKE_CSharp_CREATE_SHARED_MODULE
- \ CMAKE_CSharp_CREATE_STATIC_LIBRARY
- \ CMAKE_CSharp_FLAGS
- \ CMAKE_CSharp_FLAGS_DEBUG
- \ CMAKE_CSharp_FLAGS_DEBUG_INIT
- \ CMAKE_CSharp_FLAGS_INIT
- \ CMAKE_CSharp_FLAGS_MINSIZEREL
- \ CMAKE_CSharp_FLAGS_MINSIZEREL_INIT
- \ CMAKE_CSharp_FLAGS_RELEASE
- \ CMAKE_CSharp_FLAGS_RELEASE_INIT
- \ CMAKE_CSharp_FLAGS_RELWITHDEBINFO
- \ CMAKE_CSharp_FLAGS_RELWITHDEBINFO_INIT
- \ CMAKE_CSharp_IGNORE_EXTENSIONS
- \ CMAKE_CSharp_IMPLICIT_INCLUDE_DIRECTORIES
- \ CMAKE_CSharp_IMPLICIT_LINK_DIRECTORIES
- \ CMAKE_CSharp_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- \ CMAKE_CSharp_IMPLICIT_LINK_LIBRARIES
- \ CMAKE_CSharp_INCLUDE_WHAT_YOU_USE
- \ CMAKE_CSharp_INIT
- \ CMAKE_CSharp_LIBRARY_ARCHITECTURE
- \ CMAKE_CSharp_LINKER_PREFERENCE
- \ CMAKE_CSharp_LINKER_PREFERENCE_PROPAGATES
- \ CMAKE_CSharp_LINKER_WRAPPER_FLAG
- \ CMAKE_CSharp_LINKER_WRAPPER_FLAG_SEP
- \ CMAKE_CSharp_LINK_EXECUTABLE
- \ CMAKE_CSharp_OUTPUT_EXTENSION
- \ CMAKE_CSharp_PLATFORM_ID
- \ CMAKE_CSharp_SIMULATE_ID
- \ CMAKE_CSharp_SIMULATE_VERSION
- \ CMAKE_CSharp_SIZEOF_DATA_PTR
- \ CMAKE_CSharp_SOURCE_FILE_EXTENSIONS
- \ CMAKE_CSharp_STANDARD_INCLUDE_DIRECTORIES
- \ CMAKE_CSharp_STANDARD_LIBRARIES
- \ CMAKE_CSharp_VISIBILITY_PRESET
- \ CMAKE_CTEST_COMMAND
- \ CMAKE_CUDA
- \ CMAKE_CUDA_ANDROID_TOOLCHAIN_MACHINE
- \ CMAKE_CUDA_ANDROID_TOOLCHAIN_PREFIX
- \ CMAKE_CUDA_ANDROID_TOOLCHAIN_SUFFIX
- \ CMAKE_CUDA_ARCHIVE_APPEND
- \ CMAKE_CUDA_ARCHIVE_CREATE
- \ CMAKE_CUDA_ARCHIVE_FINISH
- \ CMAKE_CUDA_CLANG_TIDY
- \ CMAKE_CUDA_COMPILER
- \ CMAKE_CUDA_COMPILER_ABI
- \ CMAKE_CUDA_COMPILER_AR
- \ CMAKE_CUDA_COMPILER_ARCHITECTURE_ID
- \ CMAKE_CUDA_COMPILER_EXTERNAL_TOOLCHAIN
- \ CMAKE_CUDA_COMPILER_ID
- \ CMAKE_CUDA_COMPILER_LAUNCHER
- \ CMAKE_CUDA_COMPILER_LOADED
- \ CMAKE_CUDA_COMPILER_PREDEFINES_COMMAND
- \ CMAKE_CUDA_COMPILER_RANLIB
- \ CMAKE_CUDA_COMPILER_TARGET
- \ CMAKE_CUDA_COMPILER_VERSION
- \ CMAKE_CUDA_COMPILER_VERSION_INTERNAL
- \ CMAKE_CUDA_COMPILE_OBJECT
- \ CMAKE_CUDA_CPPCHECK
- \ CMAKE_CUDA_CPPLINT
- \ CMAKE_CUDA_CREATE_SHARED_LIBRARY
- \ CMAKE_CUDA_CREATE_SHARED_MODULE
- \ CMAKE_CUDA_CREATE_STATIC_LIBRARY
- \ CMAKE_CUDA_EXTENSIONS
- \ CMAKE_CUDA_FLAGS
- \ CMAKE_CUDA_FLAGS_DEBUG
- \ CMAKE_CUDA_FLAGS_DEBUG_INIT
- \ CMAKE_CUDA_FLAGS_INIT
- \ CMAKE_CUDA_FLAGS_MINSIZEREL
- \ CMAKE_CUDA_FLAGS_MINSIZEREL_INIT
- \ CMAKE_CUDA_FLAGS_RELEASE
- \ CMAKE_CUDA_FLAGS_RELEASE_INIT
- \ CMAKE_CUDA_FLAGS_RELWITHDEBINFO
- \ CMAKE_CUDA_FLAGS_RELWITHDEBINFO_INIT
- \ CMAKE_CUDA_HOST_COMPILER
- \ CMAKE_CUDA_IGNORE_EXTENSIONS
- \ CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES
- \ CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES
- \ CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- \ CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES
- \ CMAKE_CUDA_INCLUDE_WHAT_YOU_USE
- \ CMAKE_CUDA_INIT
- \ CMAKE_CUDA_LIBRARY_ARCHITECTURE
- \ CMAKE_CUDA_LINKER_PREFERENCE
- \ CMAKE_CUDA_LINKER_PREFERENCE_PROPAGATES
- \ CMAKE_CUDA_LINKER_WRAPPER_FLAG
- \ CMAKE_CUDA_LINKER_WRAPPER_FLAG_SEP
- \ CMAKE_CUDA_LINK_EXECUTABLE
- \ CMAKE_CUDA_OUTPUT_EXTENSION
- \ CMAKE_CUDA_PLATFORM_ID
- \ CMAKE_CUDA_SEPARABLE_COMPILATION
- \ CMAKE_CUDA_SIMULATE_ID
- \ CMAKE_CUDA_SIMULATE_VERSION
- \ CMAKE_CUDA_SIZEOF_DATA_PTR
- \ CMAKE_CUDA_SOURCE_FILE_EXTENSIONS
- \ CMAKE_CUDA_STANDARD
- \ CMAKE_CUDA_STANDARD_INCLUDE_DIRECTORIES
- \ CMAKE_CUDA_STANDARD_LIBRARIES
- \ CMAKE_CUDA_STANDARD_REQUIRED
- \ CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES
- \ CMAKE_CUDA_VISIBILITY_PRESET
- \ CMAKE_CURRENT_BINARY_DIR
- \ CMAKE_CURRENT_LIST_DIR
- \ CMAKE_CURRENT_LIST_FILE
- \ CMAKE_CURRENT_LIST_LINE
- \ CMAKE_CURRENT_SOURCE_DIR
- \ CMAKE_CXX
- \ CMAKE_CXX_ANDROID_TOOLCHAIN_MACHINE
- \ CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX
- \ CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX
- \ CMAKE_CXX_ARCHIVE_APPEND
- \ CMAKE_CXX_ARCHIVE_CREATE
- \ CMAKE_CXX_ARCHIVE_FINISH
- \ CMAKE_CXX_CLANG_TIDY
- \ CMAKE_CXX_COMPILER
- \ CMAKE_CXX_COMPILER_ABI
- \ CMAKE_CXX_COMPILER_AR
- \ CMAKE_CXX_COMPILER_ARCHITECTURE_ID
- \ CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN
- \ CMAKE_CXX_COMPILER_ID
- \ CMAKE_CXX_COMPILER_LAUNCHER
- \ CMAKE_CXX_COMPILER_LOADED
- \ CMAKE_CXX_COMPILER_PREDEFINES_COMMAND
- \ CMAKE_CXX_COMPILER_RANLIB
- \ CMAKE_CXX_COMPILER_TARGET
- \ CMAKE_CXX_COMPILER_VERSION
- \ CMAKE_CXX_COMPILER_VERSION_INTERNAL
- \ CMAKE_CXX_COMPILE_FEATURES
- \ CMAKE_CXX_COMPILE_OBJECT
- \ CMAKE_CXX_CPPCHECK
- \ CMAKE_CXX_CPPLINT
- \ CMAKE_CXX_CREATE_SHARED_LIBRARY
- \ CMAKE_CXX_CREATE_SHARED_MODULE
- \ CMAKE_CXX_CREATE_STATIC_LIBRARY
- \ CMAKE_CXX_EXTENSIONS
- \ CMAKE_CXX_FLAGS
- \ CMAKE_CXX_FLAGS_DEBUG
- \ CMAKE_CXX_FLAGS_DEBUG_INIT
- \ CMAKE_CXX_FLAGS_INIT
- \ CMAKE_CXX_FLAGS_MINSIZEREL
- \ CMAKE_CXX_FLAGS_MINSIZEREL_INIT
- \ CMAKE_CXX_FLAGS_RELEASE
- \ CMAKE_CXX_FLAGS_RELEASE_INIT
- \ CMAKE_CXX_FLAGS_RELWITHDEBINFO
- \ CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT
- \ CMAKE_CXX_IGNORE_EXTENSIONS
- \ CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
- \ CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES
- \ CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- \ CMAKE_CXX_IMPLICIT_LINK_LIBRARIES
- \ CMAKE_CXX_INCLUDE_WHAT_YOU_USE
- \ CMAKE_CXX_INIT
- \ CMAKE_CXX_LIBRARY_ARCHITECTURE
- \ CMAKE_CXX_LINKER_PREFERENCE
- \ CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES
- \ CMAKE_CXX_LINKER_WRAPPER_FLAG
- \ CMAKE_CXX_LINKER_WRAPPER_FLAG_SEP
- \ CMAKE_CXX_LINK_EXECUTABLE
- \ CMAKE_CXX_OUTPUT_EXTENSION
- \ CMAKE_CXX_PLATFORM_ID
- \ CMAKE_CXX_SIMULATE_ID
- \ CMAKE_CXX_SIMULATE_VERSION
- \ CMAKE_CXX_SIZEOF_DATA_PTR
- \ CMAKE_CXX_SOURCE_FILE_EXTENSIONS
- \ CMAKE_CXX_STANDARD
- \ CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
- \ CMAKE_CXX_STANDARD_LIBRARIES
- \ CMAKE_CXX_STANDARD_REQUIRED
- \ CMAKE_CXX_VISIBILITY_PRESET
- \ CMAKE_C_ANDROID_TOOLCHAIN_MACHINE
- \ CMAKE_C_ANDROID_TOOLCHAIN_PREFIX
- \ CMAKE_C_ANDROID_TOOLCHAIN_SUFFIX
- \ CMAKE_C_ARCHIVE_APPEND
- \ CMAKE_C_ARCHIVE_CREATE
- \ CMAKE_C_ARCHIVE_FINISH
- \ CMAKE_C_CLANG_TIDY
- \ CMAKE_C_COMPILER
- \ CMAKE_C_COMPILER_ABI
- \ CMAKE_C_COMPILER_AR
- \ CMAKE_C_COMPILER_ARCHITECTURE_ID
- \ CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN
- \ CMAKE_C_COMPILER_ID
- \ CMAKE_C_COMPILER_LAUNCHER
- \ CMAKE_C_COMPILER_LOADED
- \ CMAKE_C_COMPILER_PREDEFINES_COMMAND
- \ CMAKE_C_COMPILER_RANLIB
- \ CMAKE_C_COMPILER_TARGET
- \ CMAKE_C_COMPILER_VERSION
- \ CMAKE_C_COMPILER_VERSION_INTERNAL
- \ CMAKE_C_COMPILE_FEATURES
- \ CMAKE_C_COMPILE_OBJECT
- \ CMAKE_C_CPPCHECK
- \ CMAKE_C_CPPLINT
- \ CMAKE_C_CREATE_SHARED_LIBRARY
- \ CMAKE_C_CREATE_SHARED_MODULE
- \ CMAKE_C_CREATE_STATIC_LIBRARY
- \ CMAKE_C_EXTENSIONS
- \ CMAKE_C_FLAGS
- \ CMAKE_C_FLAGS_DEBUG
- \ CMAKE_C_FLAGS_DEBUG_INIT
- \ CMAKE_C_FLAGS_INIT
- \ CMAKE_C_FLAGS_MINSIZEREL
- \ CMAKE_C_FLAGS_MINSIZEREL_INIT
- \ CMAKE_C_FLAGS_RELEASE
- \ CMAKE_C_FLAGS_RELEASE_INIT
- \ CMAKE_C_FLAGS_RELWITHDEBINFO
- \ CMAKE_C_FLAGS_RELWITHDEBINFO_INIT
- \ CMAKE_C_IGNORE_EXTENSIONS
- \ CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
- \ CMAKE_C_IMPLICIT_LINK_DIRECTORIES
- \ CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- \ CMAKE_C_IMPLICIT_LINK_LIBRARIES
- \ CMAKE_C_INCLUDE_WHAT_YOU_USE
- \ CMAKE_C_INIT
- \ CMAKE_C_LIBRARY_ARCHITECTURE
- \ CMAKE_C_LINKER_PREFERENCE
- \ CMAKE_C_LINKER_PREFERENCE_PROPAGATES
- \ CMAKE_C_LINKER_WRAPPER_FLAG
- \ CMAKE_C_LINKER_WRAPPER_FLAG_SEP
- \ CMAKE_C_LINK_EXECUTABLE
- \ CMAKE_C_OUTPUT_EXTENSION
- \ CMAKE_C_PLATFORM_ID
- \ CMAKE_C_SIMULATE_ID
- \ CMAKE_C_SIMULATE_VERSION
- \ CMAKE_C_SIZEOF_DATA_PTR
- \ CMAKE_C_SOURCE_FILE_EXTENSIONS
- \ CMAKE_C_STANDARD
- \ CMAKE_C_STANDARD_INCLUDE_DIRECTORIES
- \ CMAKE_C_STANDARD_LIBRARIES
- \ CMAKE_C_STANDARD_REQUIRED
- \ CMAKE_C_VISIBILITY_PRESET
- \ 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_RESOURCE_ENCODING
- \ CMAKE_ECLIPSE_VERSION
- \ CMAKE_EDIT_COMMAND
- \ CMAKE_ENABLE_EXPORTS
- \ CMAKE_ERROR_DEPRECATED
- \ CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
- \ CMAKE_EXECUTABLE_SUFFIX
- \ CMAKE_EXECUTE_PROCESS_COMMAND_ECHO
- \ CMAKE_EXE_LINKER_FLAGS
- \ CMAKE_EXE_LINKER_FLAGS_INIT
- \ CMAKE_EXPORT_COMPILE_COMMANDS
- \ CMAKE_EXPORT_NO_PACKAGE_REGISTRY
- \ CMAKE_EXPORT_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_PREFER_CONFIG
- \ CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS
- \ 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_FIND_USE_CMAKE_ENVIRONMENT_PATH
- \ CMAKE_FIND_USE_CMAKE_PATH
- \ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH
- \ CMAKE_FIND_USE_PACKAGE_REGISTRY
- \ CMAKE_FIND_USE_PACKAGE_ROOT_PATH
- \ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH
- \ CMAKE_FOLDER
- \ CMAKE_FRAMEWORK
- \ CMAKE_FRAMEWORK_PATH
- \ CMAKE_Fortran
- \ CMAKE_Fortran_ANDROID_TOOLCHAIN_MACHINE
- \ CMAKE_Fortran_ANDROID_TOOLCHAIN_PREFIX
- \ CMAKE_Fortran_ANDROID_TOOLCHAIN_SUFFIX
- \ CMAKE_Fortran_ARCHIVE_APPEND
- \ CMAKE_Fortran_ARCHIVE_CREATE
- \ CMAKE_Fortran_ARCHIVE_FINISH
- \ CMAKE_Fortran_CLANG_TIDY
- \ CMAKE_Fortran_COMPILER
- \ CMAKE_Fortran_COMPILER_ABI
- \ CMAKE_Fortran_COMPILER_AR
- \ CMAKE_Fortran_COMPILER_ARCHITECTURE_ID
- \ CMAKE_Fortran_COMPILER_EXTERNAL_TOOLCHAIN
- \ CMAKE_Fortran_COMPILER_ID
- \ CMAKE_Fortran_COMPILER_LAUNCHER
- \ CMAKE_Fortran_COMPILER_LOADED
- \ CMAKE_Fortran_COMPILER_PREDEFINES_COMMAND
- \ CMAKE_Fortran_COMPILER_RANLIB
- \ CMAKE_Fortran_COMPILER_TARGET
- \ CMAKE_Fortran_COMPILER_VERSION
- \ CMAKE_Fortran_COMPILER_VERSION_INTERNAL
- \ CMAKE_Fortran_COMPILE_OBJECT
- \ CMAKE_Fortran_CPPCHECK
- \ CMAKE_Fortran_CPPLINT
- \ CMAKE_Fortran_CREATE_SHARED_LIBRARY
- \ CMAKE_Fortran_CREATE_SHARED_MODULE
- \ CMAKE_Fortran_CREATE_STATIC_LIBRARY
- \ CMAKE_Fortran_FLAGS
- \ CMAKE_Fortran_FLAGS_DEBUG
- \ CMAKE_Fortran_FLAGS_DEBUG_INIT
- \ CMAKE_Fortran_FLAGS_INIT
- \ CMAKE_Fortran_FLAGS_MINSIZEREL
- \ CMAKE_Fortran_FLAGS_MINSIZEREL_INIT
- \ CMAKE_Fortran_FLAGS_RELEASE
- \ CMAKE_Fortran_FLAGS_RELEASE_INIT
- \ CMAKE_Fortran_FLAGS_RELWITHDEBINFO
- \ CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT
- \ CMAKE_Fortran_FORMAT
- \ CMAKE_Fortran_IGNORE_EXTENSIONS
- \ CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES
- \ CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES
- \ CMAKE_Fortran_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- \ CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES
- \ CMAKE_Fortran_INCLUDE_WHAT_YOU_USE
- \ CMAKE_Fortran_INIT
- \ CMAKE_Fortran_LIBRARY_ARCHITECTURE
- \ CMAKE_Fortran_LINKER_PREFERENCE
- \ CMAKE_Fortran_LINKER_PREFERENCE_PROPAGATES
- \ CMAKE_Fortran_LINKER_WRAPPER_FLAG
- \ CMAKE_Fortran_LINKER_WRAPPER_FLAG_SEP
- \ CMAKE_Fortran_LINK_EXECUTABLE
- \ CMAKE_Fortran_MODDIR_DEFAULT
- \ CMAKE_Fortran_MODDIR_FLAG
- \ CMAKE_Fortran_MODOUT_FLAG
- \ CMAKE_Fortran_MODULE_DIRECTORY
- \ CMAKE_Fortran_OUTPUT_EXTENSION
- \ CMAKE_Fortran_PLATFORM_ID
- \ CMAKE_Fortran_SIMULATE_ID
- \ CMAKE_Fortran_SIMULATE_VERSION
- \ CMAKE_Fortran_SIZEOF_DATA_PTR
- \ CMAKE_Fortran_SOURCE_FILE_EXTENSIONS
- \ CMAKE_Fortran_STANDARD_INCLUDE_DIRECTORIES
- \ CMAKE_Fortran_STANDARD_LIBRARIES
- \ CMAKE_Fortran_VISIBILITY_PRESET
- \ CMAKE_GENERATOR
- \ CMAKE_GENERATOR_INSTANCE
- \ CMAKE_GENERATOR_PLATFORM
- \ CMAKE_GENERATOR_TOOLSET
- \ CMAKE_GHS_NO_SOURCE_GROUP_FILE
- \ CMAKE_GLOBAL_AUTOGEN_TARGET
- \ CMAKE_GLOBAL_AUTOGEN_TARGET_NAME
- \ CMAKE_GLOBAL_AUTORCC_TARGET
- \ CMAKE_GLOBAL_AUTORCC_TARGET_NAME
- \ 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_Java
- \ CMAKE_Java_ANDROID_TOOLCHAIN_MACHINE
- \ CMAKE_Java_ANDROID_TOOLCHAIN_PREFIX
- \ CMAKE_Java_ANDROID_TOOLCHAIN_SUFFIX
- \ CMAKE_Java_ARCHIVE_APPEND
- \ CMAKE_Java_ARCHIVE_CREATE
- \ CMAKE_Java_ARCHIVE_FINISH
- \ CMAKE_Java_CLANG_TIDY
- \ CMAKE_Java_COMPILER
- \ CMAKE_Java_COMPILER_ABI
- \ CMAKE_Java_COMPILER_AR
- \ CMAKE_Java_COMPILER_ARCHITECTURE_ID
- \ CMAKE_Java_COMPILER_EXTERNAL_TOOLCHAIN
- \ CMAKE_Java_COMPILER_ID
- \ CMAKE_Java_COMPILER_LAUNCHER
- \ CMAKE_Java_COMPILER_LOADED
- \ CMAKE_Java_COMPILER_PREDEFINES_COMMAND
- \ CMAKE_Java_COMPILER_RANLIB
- \ CMAKE_Java_COMPILER_TARGET
- \ CMAKE_Java_COMPILER_VERSION
- \ CMAKE_Java_COMPILER_VERSION_INTERNAL
- \ CMAKE_Java_COMPILE_OBJECT
- \ CMAKE_Java_CPPCHECK
- \ CMAKE_Java_CPPLINT
- \ CMAKE_Java_CREATE_SHARED_LIBRARY
- \ CMAKE_Java_CREATE_SHARED_MODULE
- \ CMAKE_Java_CREATE_STATIC_LIBRARY
- \ CMAKE_Java_FLAGS
- \ CMAKE_Java_FLAGS_DEBUG
- \ CMAKE_Java_FLAGS_DEBUG_INIT
- \ CMAKE_Java_FLAGS_INIT
- \ CMAKE_Java_FLAGS_MINSIZEREL
- \ CMAKE_Java_FLAGS_MINSIZEREL_INIT
- \ CMAKE_Java_FLAGS_RELEASE
- \ CMAKE_Java_FLAGS_RELEASE_INIT
- \ CMAKE_Java_FLAGS_RELWITHDEBINFO
- \ CMAKE_Java_FLAGS_RELWITHDEBINFO_INIT
- \ CMAKE_Java_IGNORE_EXTENSIONS
- \ CMAKE_Java_IMPLICIT_INCLUDE_DIRECTORIES
- \ CMAKE_Java_IMPLICIT_LINK_DIRECTORIES
- \ CMAKE_Java_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- \ CMAKE_Java_IMPLICIT_LINK_LIBRARIES
- \ CMAKE_Java_INCLUDE_WHAT_YOU_USE
- \ CMAKE_Java_INIT
- \ CMAKE_Java_LIBRARY_ARCHITECTURE
- \ CMAKE_Java_LINKER_PREFERENCE
- \ CMAKE_Java_LINKER_PREFERENCE_PROPAGATES
- \ CMAKE_Java_LINKER_WRAPPER_FLAG
- \ CMAKE_Java_LINKER_WRAPPER_FLAG_SEP
- \ CMAKE_Java_LINK_EXECUTABLE
- \ CMAKE_Java_OUTPUT_EXTENSION
- \ CMAKE_Java_PLATFORM_ID
- \ CMAKE_Java_SIMULATE_ID
- \ CMAKE_Java_SIMULATE_VERSION
- \ CMAKE_Java_SIZEOF_DATA_PTR
- \ CMAKE_Java_SOURCE_FILE_EXTENSIONS
- \ CMAKE_Java_STANDARD_INCLUDE_DIRECTORIES
- \ CMAKE_Java_STANDARD_LIBRARIES
- \ CMAKE_Java_VISIBILITY_PRESET
- \ 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_MAXIMUM_RECURSION_DEPTH
- \ 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_MSVC_RUNTIME_LIBRARY
- \ 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_INCLUDE
- \ CMAKE_PROJECT_INCLUDE_BEFORE
- \ 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_RC
- \ CMAKE_RC_ANDROID_TOOLCHAIN_MACHINE
- \ CMAKE_RC_ANDROID_TOOLCHAIN_PREFIX
- \ CMAKE_RC_ANDROID_TOOLCHAIN_SUFFIX
- \ CMAKE_RC_ARCHIVE_APPEND
- \ CMAKE_RC_ARCHIVE_CREATE
- \ CMAKE_RC_ARCHIVE_FINISH
- \ CMAKE_RC_CLANG_TIDY
- \ CMAKE_RC_COMPILER
- \ CMAKE_RC_COMPILER_ABI
- \ CMAKE_RC_COMPILER_AR
- \ CMAKE_RC_COMPILER_ARCHITECTURE_ID
- \ CMAKE_RC_COMPILER_EXTERNAL_TOOLCHAIN
- \ CMAKE_RC_COMPILER_ID
- \ CMAKE_RC_COMPILER_LAUNCHER
- \ CMAKE_RC_COMPILER_LOADED
- \ CMAKE_RC_COMPILER_PREDEFINES_COMMAND
- \ CMAKE_RC_COMPILER_RANLIB
- \ CMAKE_RC_COMPILER_TARGET
- \ CMAKE_RC_COMPILER_VERSION
- \ CMAKE_RC_COMPILER_VERSION_INTERNAL
- \ CMAKE_RC_COMPILE_OBJECT
- \ CMAKE_RC_CPPCHECK
- \ CMAKE_RC_CPPLINT
- \ CMAKE_RC_CREATE_SHARED_LIBRARY
- \ CMAKE_RC_CREATE_SHARED_MODULE
- \ CMAKE_RC_CREATE_STATIC_LIBRARY
- \ CMAKE_RC_FLAGS
- \ CMAKE_RC_FLAGS_DEBUG
- \ CMAKE_RC_FLAGS_DEBUG_INIT
- \ CMAKE_RC_FLAGS_INIT
- \ CMAKE_RC_FLAGS_MINSIZEREL
- \ CMAKE_RC_FLAGS_MINSIZEREL_INIT
- \ CMAKE_RC_FLAGS_RELEASE
- \ CMAKE_RC_FLAGS_RELEASE_INIT
- \ CMAKE_RC_FLAGS_RELWITHDEBINFO
- \ CMAKE_RC_FLAGS_RELWITHDEBINFO_INIT
- \ CMAKE_RC_IGNORE_EXTENSIONS
- \ CMAKE_RC_IMPLICIT_INCLUDE_DIRECTORIES
- \ CMAKE_RC_IMPLICIT_LINK_DIRECTORIES
- \ CMAKE_RC_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- \ CMAKE_RC_IMPLICIT_LINK_LIBRARIES
- \ CMAKE_RC_INCLUDE_WHAT_YOU_USE
- \ CMAKE_RC_INIT
- \ CMAKE_RC_LIBRARY_ARCHITECTURE
- \ CMAKE_RC_LINKER_PREFERENCE
- \ CMAKE_RC_LINKER_PREFERENCE_PROPAGATES
- \ CMAKE_RC_LINKER_WRAPPER_FLAG
- \ CMAKE_RC_LINKER_WRAPPER_FLAG_SEP
- \ CMAKE_RC_LINK_EXECUTABLE
- \ CMAKE_RC_OUTPUT_EXTENSION
- \ CMAKE_RC_PLATFORM_ID
- \ CMAKE_RC_SIMULATE_ID
- \ CMAKE_RC_SIMULATE_VERSION
- \ CMAKE_RC_SIZEOF_DATA_PTR
- \ CMAKE_RC_SOURCE_FILE_EXTENSIONS
- \ CMAKE_RC_STANDARD_INCLUDE_DIRECTORIES
- \ CMAKE_RC_STANDARD_LIBRARIES
- \ CMAKE_RC_VISIBILITY_PRESET
- \ 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
- \ CMAKE_Swift_ANDROID_TOOLCHAIN_MACHINE
- \ CMAKE_Swift_ANDROID_TOOLCHAIN_PREFIX
- \ CMAKE_Swift_ANDROID_TOOLCHAIN_SUFFIX
- \ CMAKE_Swift_ARCHIVE_APPEND
- \ CMAKE_Swift_ARCHIVE_CREATE
- \ CMAKE_Swift_ARCHIVE_FINISH
- \ CMAKE_Swift_CLANG_TIDY
- \ CMAKE_Swift_COMPILER
- \ CMAKE_Swift_COMPILER_ABI
- \ CMAKE_Swift_COMPILER_AR
- \ CMAKE_Swift_COMPILER_ARCHITECTURE_ID
- \ CMAKE_Swift_COMPILER_EXTERNAL_TOOLCHAIN
- \ CMAKE_Swift_COMPILER_ID
- \ CMAKE_Swift_COMPILER_LAUNCHER
- \ CMAKE_Swift_COMPILER_LOADED
- \ CMAKE_Swift_COMPILER_PREDEFINES_COMMAND
- \ CMAKE_Swift_COMPILER_RANLIB
- \ CMAKE_Swift_COMPILER_TARGET
- \ CMAKE_Swift_COMPILER_VERSION
- \ CMAKE_Swift_COMPILER_VERSION_INTERNAL
- \ CMAKE_Swift_COMPILE_OBJECT
- \ CMAKE_Swift_CPPCHECK
- \ CMAKE_Swift_CPPLINT
- \ CMAKE_Swift_CREATE_SHARED_LIBRARY
- \ CMAKE_Swift_CREATE_SHARED_MODULE
- \ CMAKE_Swift_CREATE_STATIC_LIBRARY
- \ CMAKE_Swift_FLAGS
- \ CMAKE_Swift_FLAGS_DEBUG
- \ CMAKE_Swift_FLAGS_DEBUG_INIT
- \ CMAKE_Swift_FLAGS_INIT
- \ CMAKE_Swift_FLAGS_MINSIZEREL
- \ CMAKE_Swift_FLAGS_MINSIZEREL_INIT
- \ CMAKE_Swift_FLAGS_RELEASE
- \ CMAKE_Swift_FLAGS_RELEASE_INIT
- \ CMAKE_Swift_FLAGS_RELWITHDEBINFO
- \ CMAKE_Swift_FLAGS_RELWITHDEBINFO_INIT
- \ CMAKE_Swift_IGNORE_EXTENSIONS
- \ CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES
- \ CMAKE_Swift_IMPLICIT_LINK_DIRECTORIES
- \ CMAKE_Swift_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
- \ CMAKE_Swift_IMPLICIT_LINK_LIBRARIES
- \ CMAKE_Swift_INCLUDE_WHAT_YOU_USE
- \ CMAKE_Swift_INIT
- \ CMAKE_Swift_LANGUAGE_VERSION
- \ CMAKE_Swift_LIBRARY_ARCHITECTURE
- \ CMAKE_Swift_LINKER_PREFERENCE
- \ CMAKE_Swift_LINKER_PREFERENCE_PROPAGATES
- \ CMAKE_Swift_LINKER_WRAPPER_FLAG
- \ CMAKE_Swift_LINKER_WRAPPER_FLAG_SEP
- \ CMAKE_Swift_LINK_EXECUTABLE
- \ CMAKE_Swift_MODULE_DIRECTORY
- \ CMAKE_Swift_OUTPUT_EXTENSION
- \ CMAKE_Swift_PLATFORM_ID
- \ CMAKE_Swift_SIMULATE_ID
- \ CMAKE_Swift_SIMULATE_VERSION
- \ CMAKE_Swift_SIZEOF_DATA_PTR
- \ CMAKE_Swift_SOURCE_FILE_EXTENSIONS
- \ CMAKE_Swift_STANDARD_INCLUDE_DIRECTORIES
- \ CMAKE_Swift_STANDARD_LIBRARIES
- \ CMAKE_Swift_VISIBILITY_PRESET
- \ 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_USER_MAKE_RULES_OVERRIDE_ASM
- \ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM_MASM
- \ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM_NASM
- \ CMAKE_USER_MAKE_RULES_OVERRIDE_C
- \ CMAKE_USER_MAKE_RULES_OVERRIDE_CSharp
- \ CMAKE_USER_MAKE_RULES_OVERRIDE_CUDA
- \ CMAKE_USER_MAKE_RULES_OVERRIDE_CXX
- \ CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran
- \ CMAKE_USER_MAKE_RULES_OVERRIDE_Java
- \ CMAKE_USER_MAKE_RULES_OVERRIDE_RC
- \ CMAKE_USER_MAKE_RULES_OVERRIDE_Swift
- \ 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_JUST_MY_CODE_DEBUGGING
- \ CMAKE_VS_MSBUILD_COMMAND
- \ CMAKE_VS_NsightTegra_VERSION
- \ CMAKE_VS_PLATFORM_NAME
- \ CMAKE_VS_PLATFORM_NAME_DEFAULT
- \ 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_TESTS_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_SUBMIT_URL
- \ 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_UPDATE_VERSION_OVERRIDE
- \ CTEST_USE_LAUNCHERS
- \ CYGWIN
- \ ENV
- \ EXECUTABLE_OUTPUT_PATH
- \ GHS-MULTI
- \ IOS
- \ LIBRARY_OUTPUT_PATH
- \ MINGW
- \ MSVC
- \ MSVC10
- \ MSVC11
- \ MSVC12
- \ MSVC14
- \ MSVC60
- \ MSVC70
- \ MSVC71
- \ MSVC80
- \ MSVC90
- \ MSVC_IDE
- \ MSVC_TOOLSET_VERSION
- \ MSVC_VERSION
- \ MSYS
- \ PROJECT_BINARY_DIR
- \ PROJECT_DESCRIPTION
- \ PROJECT_HOMEPAGE_URL
- \ PROJECT_NAME
- \ PROJECT_SOURCE_DIR
- \ PROJECT_VERSION
- \ PROJECT_VERSION_MAJOR
- \ PROJECT_VERSION_MINOR
- \ PROJECT_VERSION_PATCH
- \ PROJECT_VERSION_TWEAK
- \ UNIX
- \ WIN32
- \ WINCE
- \ WINDOWS_PHONE
- \ WINDOWS_STORE
- \ XCODE
- \ XCODE_VERSION
-
-syn keyword cmakeModule contained
- \ ExternalProject
-
-syn keyword cmakeKWExternalProject contained
- \ AWS
- \ BINARY_DIR
- \ BUILD_ALWAYS
- \ BUILD_BYPRODUCTS
- \ BUILD_COMMAND
- \ BUILD_IN_SOURCE
- \ CMAKE_ARGS
- \ CMAKE_CACHE_ARGS
- \ CMAKE_CACHE_DEFAULT_ARGS
- \ CMAKE_TLS_CAINFO
- \ CMAKE_TLS_VERIFY
- \ COMMENT
- \ CONFIGURE_COMMAND
- \ CVS
- \ CVSROOT
- \ CVS_MODULE
- \ CVS_REPOSITORY
- \ CVS_TAG
- \ DEPENDEES
- \ DEPENDERS
- \ DEPENDS
- \ DOWNLOADED_FILE
- \ DOWNLOAD_COMMAND
- \ DOWNLOAD_DIR
- \ DOWNLOAD_NAME
- \ DOWNLOAD_NO_EXTRACT
- \ DOWNLOAD_NO_PROGRESS
- \ EP_BASE
- \ EP_INDEPENDENT_STEP_TARGETS
- \ EP_PREFIX
- \ EP_STEP_TARGETS
- \ EP_UPDATE_DISCONNECTED
- \ EXCLUDE_FROM_ALL
- \ FORCE
- \ GHS
- \ 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_BUILD
- \ LOG_CONFIGURE
- \ LOG_DIR
- \ LOG_DOWNLOAD
- \ LOG_INSTALL
- \ LOG_MERGED_STDOUTERR
- \ LOG_OUTPUT_ON_FAILURE
- \ LOG_PATCH
- \ LOG_TEST
- \ LOG_UPDATE
- \ MAKE_EXE
- \ MULTI
- \ 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
- \ WX
-
-syn keyword cmakeKWadd_custom_command contained
- \ APPEND
- \ ARGS
- \ BYPRODUCTS
- \ CC
- \ COMMAND
- \ COMMAND_EXPAND_LISTS
- \ COMMENT
- \ CROSSCOMPILING_EMULATOR
- \ DEPENDS
- \ DEPFILE
- \ GENERATED
- \ IMPLICIT_DEPENDS
- \ INCLUDE_DIRECTORIES
- \ JOB_POOL
- \ JOB_POOLS
- \ 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
- \ JOB_POOL
- \ JOB_POOLS
- \ JOIN
- \ SOURCES
- \ TARGET_PROPERTY
- \ USES_TERMINAL
- \ VERBATIM
- \ WORKING_DIRECTORY
-
-syn keyword cmakeKWadd_definitions contained
- \ COMPILE_DEFINITIONS
-
-syn keyword cmakeKWadd_dependencies contained
- \ 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
-
-syn keyword cmakeKWadd_library contained
- \ ALIAS
- \ ARCHIVE_OUTPUT_DIRECTORY
- \ CLI
- \ CONFIG
- \ DLL
- \ EXCLUDE_FROM_ALL
- \ FRAMEWORK
- \ GLOBAL
- \ HEADER_FILE_ONLY
- \ IMPORTED
- \ IMPORTED_
- \ IMPORTED_LOCATION
- \ IMPORTED_LOCATION_
- \ IMPORTED_OBJECTS
- \ IMPORTED_OBJECTS_
- \ INTERFACE_
- \ LIBRARY_OUTPUT_DIRECTORY
- \ MODULE
- \ OBJECT
- \ ON
- \ OUTPUT_NAME
- \ POSITION_INDEPENDENT_CODE
- \ POST_BUILD
- \ PRE_BUILD
- \ PRE_LINK
- \ PUBLIC_HEADER
- \ RUNTIME_OUTPUT_DIRECTORY
- \ SHARED
- \ STATIC
- \ TARGET_OBJECTS
- \ UNKNOWN
-
-syn keyword cmakeKWadd_link_options contained
- \ CMAKE_
- \ GCC
- \ GNU
- \ LANG
- \ LINKER
- \ LINK_OPTIONS
- \ SHELL
- \ STATIC_LIBRARY_OPTIONS
- \ 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
- \ OFF
- \ PASS_REGULAR_EXPRESSION
- \ SKIP_REGULAR_EXPRESSION
- \ TARGET_FILE
- \ WILL_FAIL
- \ WORKING_DIRECTORY
-
-syn keyword cmakeKWbuild_command contained
- \ CONFIGURATION
- \ TARGET
-
-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
-
-syn keyword cmakeKWcmake_minimum_required contained
- \ 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_KEYWORDS_MISSING_VALUES
- \ MY_INSTALL_OPTIONAL
- \ MY_INSTALL_RENAME
- \ MY_INSTALL_TARGETS
- \ MY_INSTALL_UNPARSED_ARGUMENTS
- \ OPTIONAL
- \ PARSE_ARGV
- \ RENAME
- \ TARGETS
- \ TRUE
- \ UNDEFINED
- \ _KEYWORDS_MISSING_VALUES
- \ _UNPARSED_ARGUMENTS
-
-syn keyword cmakeKWcmake_policy contained
- \ 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
-
-syn keyword cmakeKWcreate_test_sourcelist contained
- \ 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
- \ FLAGS
- \ NUMBER_ERRORS
- \ NUMBER_WARNINGS
- \ QUIET
- \ RETURN_VALUE
- \ TARGET
-
-syn keyword cmakeKWctest_configure contained
- \ APPEND
- \ BUILD
- \ CAPTURE_CMAKE_ERROR
- \ OPTIONS
- \ QUIET
- \ RETURN_VALUE
- \ SOURCE
-
-syn keyword cmakeKWctest_coverage contained
- \ APPEND
- \ BUILD
- \ CAPTURE_CMAKE_ERROR
- \ LABELS
- \ QUIET
- \ RETURN_VALUE
-
-syn keyword cmakeKWctest_memcheck contained
- \ 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
-
-syn keyword cmakeKWctest_start contained
- \ APPEND
- \ QUIET
- \ TAG
- \ TRACK
-
-syn keyword cmakeKWctest_submit contained
- \ API
- \ BUILD_ID
- \ 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
- \ SUBMIT_URL
-
-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
-
-syn keyword cmakeKWctest_update contained
- \ CAPTURE_CMAKE_ERROR
- \ QUIET
- \ RETURN_VALUE
- \ SOURCE
-
-syn keyword cmakeKWctest_upload contained
- \ CAPTURE_CMAKE_ERROR
- \ FILES
- \ QUIET
-
-syn keyword cmakeKWdefine_property contained
- \ APPEND
- \ APPEND_STRING
- \ BRIEF_DOCS
- \ CACHED_VARIABLE
- \ DIRECTORY
- \ FULL_DOCS
- \ GLOBAL
- \ INHERITED
- \ PROPERTY
- \ SOURCE
- \ TARGET
- \ TEST
- \ VARIABLE
-
-syn keyword cmakeKWenable_language contained
- \ ASM
- \ CUDA
- \ OPTIONAL
-
-syn keyword cmakeKWenable_testing contained
- \ BUILD_TESTING
-
-syn keyword cmakeKWexec_program contained
- \ ARGS
- \ OUTPUT_VARIABLE
- \ RETURN_VALUE
-
-syn keyword cmakeKWexecute_process contained
- \ ANSI
- \ AUTO
- \ COMMAND
- \ COMMAND_ECHO
- \ 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
- \ STDERR
- \ STDOUT
- \ 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
-
-syn keyword cmakeKWexport_library_dependencies contained
- \ APPEND
- \ EXPORT
- \ INCLUDE
- \ LINK_INTERFACE_LIBRARIES
- \ SET
-
-syn keyword cmakeKWfile contained
- \ ALGO
- \ APPEND
- \ ASCII
- \ CMAKE_TLS_CAINFO
- \ CMAKE_TLS_VERIFY
- \ CONDITION
- \ CONFIG
- \ CONFIGURE_DEPENDS
- \ CONTENT
- \ COPY
- \ COPY_ON_ERROR
- \ CREATE_LINK
- \ DESTINATION
- \ DIRECTORY_PERMISSIONS
- \ DOWNLOAD
- \ ENCODING
- \ EXCLUDE
- \ EXPECTED_HASH
- \ FILES_MATCHING
- \ FILE_PERMISSIONS
- \ FOLLOW_SYMLINKS
- \ FOLLOW_SYMLINK_CHAIN
- \ FUNCTION
- \ GENERATE
- \ GLOB
- \ GLOB_RECURSE
- \ GUARD
- \ HASH
- \ HEX
- \ HTTPHEADER
- \ IGNORED
- \ INACTIVITY_TIMEOUT
- \ INSTALL
- \ IS_ABSOLUTE
- \ LENGTH_MAXIMUM
- \ LENGTH_MINIMUM
- \ LF
- \ LIMIT
- \ LIMIT_COUNT
- \ LIMIT_INPUT
- \ LIMIT_OUTPUT
- \ LIST_DIRECTORIES
- \ LOCK
- \ LOG
- \ MAKE_DIRECTORY
- \ NETRC
- \ NETRC_FILE
- \ NEWLINE_CONSUME
- \ NOT
- \ NO_HEX_CONVERSION
- \ NO_SOURCE_PERMISSIONS
- \ OFFSET
- \ OLD
- \ OPTIONAL
- \ OUTPUT
- \ PATTERN
- \ PROCESS
- \ READ
- \ READ_SYMLINK
- \ REGEX
- \ RELATIVE_PATH
- \ RELEASE
- \ REMOVE
- \ REMOVE_RECURSE
- \ RENAME
- \ REQUIRED
- \ RESULT
- \ RESULT_VARIABLE
- \ SHOW_PROGRESS
- \ SIZE
- \ SSL
- \ STATUS
- \ STRINGS
- \ SYMBOLIC
- \ TIMESTAMP
- \ TLS_CAINFO
- \ TLS_VERIFY
- \ TOUCH
- \ TOUCH_NOCREATE
- \ TO_CMAKE_PATH
- \ TO_NATIVE_PATH
- \ UPLOAD
- \ URL
- \ USERPWD
- \ USE_SOURCE_PERMISSIONS
- \ UTC
- \ UTF
- \ WRITE
-
-syn keyword cmakeKWfind_file contained
- \ CMAKE_FIND_ROOT_PATH_BOTH
- \ DOC
- \ DVAR
- \ HINTS
- \ INCLUDE
- \ NAMES
- \ NO_CMAKE_ENVIRONMENT_PATH
- \ NO_CMAKE_FIND_ROOT_PATH
- \ NO_CMAKE_PATH
- \ NO_CMAKE_SYSTEM_PATH
- \ NO_DEFAULT_PATH
- \ NO_PACKAGE_ROOT_PATH
- \ NO_SYSTEM_ENVIRONMENT_PATH
- \ ONLY_CMAKE_FIND_ROOT_PATH
- \ PATHS
- \ PATH_SUFFIXES
- \ VAR
-
-syn keyword cmakeKWfind_library contained
- \ CMAKE_FIND_ROOT_PATH_BOTH
- \ DOC
- \ DVAR
- \ HINTS
- \ LIB
- \ NAMES
- \ NAMES_PER_DIR
- \ NO_CMAKE_ENVIRONMENT_PATH
- \ NO_CMAKE_FIND_ROOT_PATH
- \ NO_CMAKE_PATH
- \ NO_CMAKE_SYSTEM_PATH
- \ NO_DEFAULT_PATH
- \ NO_PACKAGE_ROOT_PATH
- \ NO_SYSTEM_ENVIRONMENT_PATH
- \ ONLY_CMAKE_FIND_ROOT_PATH
- \ PATHS
- \ PATH_SUFFIXES
- \ VAR
-
-syn keyword cmakeKWfind_package contained
- \ ABI
- \ BUNDLE
- \ CMAKE_DISABLE_FIND_PACKAGE_
- \ CMAKE_FIND_ROOT_PATH_BOTH
- \ COMPONENTS
- \ CONFIG
- \ CONFIGS
- \ DEC
- \ DVAR
- \ EXACT
- \ FRAMEWORK
- \ HINTS
- \ MODULE
- \ NAMES
- \ NATURAL
- \ NO_CMAKE_BUILDS_PATH
- \ NO_CMAKE_ENVIRONMENT_PATH
- \ NO_CMAKE_FIND_ROOT_PATH
- \ NO_CMAKE_PACKAGE_REGISTRY
- \ NO_CMAKE_PATH
- \ NO_CMAKE_SYSTEM_PACKAGE_REGISTRY
- \ NO_CMAKE_SYSTEM_PATH
- \ NO_DEFAULT_PATH
- \ NO_MODULE
- \ NO_PACKAGE_ROOT_PATH
- \ NO_POLICY_SCOPE
- \ NO_SYSTEM_ENVIRONMENT_PATH
- \ ONLY_CMAKE_FIND_ROOT_PATH
- \ OPTIONAL_COMPONENTS
- \ PACKAGE_FIND_NAME
- \ PACKAGE_FIND_VERSION
- \ PACKAGE_FIND_VERSION_COUNT
- \ PACKAGE_FIND_VERSION_MAJOR
- \ PACKAGE_FIND_VERSION_MINOR
- \ PACKAGE_FIND_VERSION_PATCH
- \ PACKAGE_FIND_VERSION_TWEAK
- \ PACKAGE_VERSION
- \ PACKAGE_VERSION_COMPATIBLE
- \ PACKAGE_VERSION_EXACT
- \ PACKAGE_VERSION_UNSUITABLE
- \ PATHS
- \ PATH_SUFFIXES
- \ QUIET
- \ REQUIRED
- \ SET
- \ TRUE
- \ _CONFIG
- \ _CONSIDERED_CONFIGS
- \ _CONSIDERED_VERSIONS
- \ _DIR
- \ _FIND_COMPONENTS
- \ _FIND_QUIETLY
- \ _FIND_REQUIRED
- \ _FIND_REQUIRED_
- \ _FIND_VERSION_EXACT
- \ _FOUND
-
-syn keyword cmakeKWfind_path contained
- \ CMAKE_FIND_ROOT_PATH_BOTH
- \ DOC
- \ DVAR
- \ HINTS
- \ INCLUDE
- \ NAMES
- \ NO_CMAKE_ENVIRONMENT_PATH
- \ NO_CMAKE_FIND_ROOT_PATH
- \ NO_CMAKE_PATH
- \ NO_CMAKE_SYSTEM_PATH
- \ NO_DEFAULT_PATH
- \ NO_PACKAGE_ROOT_PATH
- \ NO_SYSTEM_ENVIRONMENT_PATH
- \ ONLY_CMAKE_FIND_ROOT_PATH
- \ PATHS
- \ PATH_SUFFIXES
- \ VAR
-
-syn keyword cmakeKWfind_program contained
- \ CMAKE_FIND_ROOT_PATH_BOTH
- \ DOC
- \ DVAR
- \ HINTS
- \ NAMES
- \ NAMES_PER_DIR
- \ NO_CMAKE_ENVIRONMENT_PATH
- \ NO_CMAKE_FIND_ROOT_PATH
- \ NO_CMAKE_PATH
- \ NO_CMAKE_SYSTEM_PATH
- \ NO_DEFAULT_PATH
- \ NO_PACKAGE_ROOT_PATH
- \ NO_SYSTEM_ENVIRONMENT_PATH
- \ ONLY_CMAKE_FIND_ROOT_PATH
- \ PATHS
- \ PATH_SUFFIXES
- \ VAR
-
-syn keyword cmakeKWfltk_wrap_ui contained
- \ FLTK
-
-syn keyword cmakeKWforeach contained
- \ IN
- \ ITEMS
- \ LISTS
- \ RANGE
- \ STATUS
-
-syn keyword cmakeKWfunction contained
- \ ARGC
- \ ARGN
- \ ARGV
- \ FOO
- \ PARENT_SCOPE
-
-syn keyword cmakeKWget_cmake_property contained
- \ COMPONENTS
- \ GLOBAL
- \ MACROS
- \ VARIABLES
-
-syn keyword cmakeKWget_directory_property contained
- \ DEFINITION
- \ DIRECTORY
- \ INHERITED
-
-syn keyword cmakeKWget_filename_component contained
- \ ABSOLUTE
- \ BASE_DIR
- \ DIRECTORY
- \ EXT
- \ LAST_EXT
- \ NAME
- \ NAME_WE
- \ NAME_WLE
- \ PATH
- \ PROGRAM
- \ PROGRAM_ARGS
- \ REALPATH
-
-syn keyword cmakeKWget_property contained
- \ BRIEF_DOCS
- \ DEFINED
- \ DIRECTORY
- \ FULL_DOCS
- \ GLOBAL
- \ INSTALL
- \ PROPERTY
- \ SET
- \ SOURCE
- \ TARGET
- \ TEST
- \ VARIABLE
-
-syn keyword cmakeKWget_source_file_property contained
- \ INHERITED
- \ LOCATION
- \ VAR
-
-syn keyword cmakeKWget_target_property contained
- \ INHERITED
- \ VAR
-
-syn keyword cmakeKWget_test_property contained
- \ INHERITED
- \ VAR
-
-syn keyword cmakeKWif contained
- \ 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
- \ TRUE
- \ VERSION_EQUAL
- \ VERSION_GREATER
- \ VERSION_GREATER_EQUAL
- \ VERSION_LESS
- \ VERSION_LESS_EQUAL
- \ YES
-
-syn keyword cmakeKWinclude contained
- \ NO_POLICY_SCOPE
- \ OPTIONAL
- \ RESULT_VARIABLE
-
-syn keyword cmakeKWinclude_directories contained
- \ AFTER
- \ BEFORE
- \ INCLUDE_DIRECTORIES
- \ ON
- \ SYSTEM
-
-syn keyword cmakeKWinclude_external_msproject contained
- \ GUID
- \ MAP_IMPORTED_CONFIG_
- \ PLATFORM
- \ TYPE
- \ WIX
-
-syn keyword cmakeKWinclude_guard contained
- \ DIRECTORY
- \ GLOBAL
- \ TRUE
- \ __CURRENT_FILE_VAR__
-
-syn keyword cmakeKWinstall contained
- \ AFTER
- \ APT
- \ ARCHIVE
- \ BEFORE
- \ BUILD_TYPE
- \ BUNDLE
- \ CMAKE_INSTALL_BINDIR
- \ CMAKE_INSTALL_DATADIR
- \ CMAKE_INSTALL_DATAROOTDIR
- \ CMAKE_INSTALL_DOCDIR
- \ CMAKE_INSTALL_INCLUDEDIR
- \ CMAKE_INSTALL_INFODIR
- \ CMAKE_INSTALL_LIBDIR
- \ CMAKE_INSTALL_LOCALEDIR
- \ CMAKE_INSTALL_LOCALSTATEDIR
- \ CMAKE_INSTALL_MANDIR
- \ CMAKE_INSTALL_RUNSTATEDIR
- \ CMAKE_INSTALL_SBINDIR
- \ CMAKE_INSTALL_SHARESTATEDIR
- \ CMAKE_INSTALL_SYSCONFDIR
- \ CODE
- \ COMPONENT
- \ CONFIGURATIONS
- \ CVS
- \ DATA
- \ DATAROOT
- \ DBUILD_TYPE
- \ DCOMPONENT
- \ DESTDIR
- \ DESTINATION
- \ DIRECTORY
- \ DIRECTORY_PERMISSIONS
- \ DLL
- \ DOC
- \ EXCLUDE_FROM_ALL
- \ EXPORT
- \ EXPORT_ANDROID_MK
- \ EXPORT_LINK_INTERFACE_LIBRARIES
- \ EXPORT_NAME
- \ FILES
- \ FILES_MATCHING
- \ FILE_PERMISSIONS
- \ FRAMEWORK
- \ GROUP_EXECUTE
- \ GROUP_READ
- \ GROUP_WRITE
- \ IMPORTED_
- \ INCLUDES
- \ INFO
- \ INSTALL_PREFIX
- \ INTERFACE_INCLUDE_DIRECTORIES
- \ LIBRARY
- \ LOCALE
- \ LOCALSTATE
- \ MACOSX_BUNDLE
- \ MAN
- \ 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
- \ PROPERTIES
- \ PUBLIC_HEADER
- \ REGEX
- \ RENAME
- \ RESOURCE
- \ RPM
- \ RUNSTATE
- \ RUNTIME
- \ SBIN
- \ SCRIPT
- \ SETGID
- \ SETUID
- \ SHAREDSTATE
- \ SOVERSION
- \ STATIC
- \ SYSCONF
- \ TARGETS
- \ TRUE
- \ TYPE
- \ USE_SOURCE_PERMISSIONS
- \ VERSION
- \ WORLD_EXECUTE
- \ WORLD_READ
- \ WORLD_WRITE
-
-syn keyword cmakeKWinstall_files contained
- \ FILES
- \ GLOB
-
-syn keyword cmakeKWinstall_programs contained
- \ FILES
- \ GLOB
- \ PROGRAMS
- \ TARGETS
-
-syn keyword cmakeKWinstall_targets contained
- \ DLL
- \ RUNTIME_DIRECTORY
-
-syn keyword cmakeKWlink_directories contained
- \ AFTER
- \ BEFORE
- \ LINK_DIRECTORIES
- \ ON
- \ ORIGIN
- \ RPATH
-
-syn keyword cmakeKWlist contained
- \ ACTION
- \ APPEND
- \ ASCENDING
- \ CASE
- \ COMPARE
- \ DESCENDING
- \ EXCLUDE
- \ FILE_BASENAME
- \ FILTER
- \ FIND
- \ GENEX_STRIP
- \ GET
- \ INCLUDE
- \ INSENSITIVE
- \ INSERT
- \ INTERNAL
- \ JOIN
- \ LENGTH
- \ ORDER
- \ OUTPUT_VARIABLE
- \ PARENT_SCOPE
- \ POP_BACK
- \ POP_FRONT
- \ 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
-
-syn keyword cmakeKWload_command contained
- \ CMAKE_LOADED_COMMAND_
- \ COMMAND_NAME
-
-syn keyword cmakeKWmacro contained
- \ ARGC
- \ ARGN
- \ ARGV
- \ DEFINED
- \ FOO
- \ GREATER
- \ LISTS
- \ NOT
-
-syn keyword cmakeKWmark_as_advanced contained
- \ CLEAR
- \ FORCE
-
-syn keyword cmakeKWmath contained
- \ EXPR
- \ HEXADECIMAL
- \ OUTPUT_FORMAT
-
-syn keyword cmakeKWmessage contained
- \ AUTHOR_WARNING
- \ DEBUG
- \ DEPRECATION
- \ FATAL_ERROR
- \ GUI
- \ NOTICE
- \ SEND_ERROR
- \ STATUS
- \ TRACE
- \ VERBOSE
- \ WARNING
-
-syn keyword cmakeKWoption contained
- \ OFF
- \ ON
-
-syn keyword cmakeKWproject contained
- \ ASM
- \ CMAKE_PROJECT_
- \ CUDA
- \ DESCRIPTION
- \ HOMEPAGE_URL
- \ LANGUAGES
- \ NAME
- \ NONE
- \ PROJECT
- \ VERSION
- \ _BINARY_DIR
- \ _DESCRIPTION
- \ _HOMEPAGE_URL
- \ _INCLUDE
- \ _SOURCE_DIR
- \ _VERSION
- \ _VERSION_MAJOR
- \ _VERSION_MINOR
- \ _VERSION_PATCH
- \ _VERSION_TWEAK
-
-syn keyword cmakeKWqt_wrap_cpp contained
- \ AUTOMOC
-
-syn keyword cmakeKWqt_wrap_ui contained
- \ AUTOUIC
-
-syn keyword cmakeKWremove contained
- \ VALUE
- \ VAR
-
-syn keyword cmakeKWseparate_arguments contained
- \ MSDN
- \ NATIVE_COMMAND
- \ UNIX_COMMAND
- \ WINDOWS_COMMAND
-
-syn keyword cmakeKWset contained
- \ BOOL
- \ FILEPATH
- \ FORCE
- \ INTERNAL
- \ OFF
- \ ON
- \ PARENT_SCOPE
- \ STRING
- \ STRINGS
-
-syn keyword cmakeKWset_directory_properties contained
- \ DIRECTORY
- \ PROPERTIES
-
-syn keyword cmakeKWset_property contained
- \ APPEND
- \ APPEND_STRING
- \ DIRECTORY
- \ GLOBAL
- \ INHERITED
- \ INSTALL
- \ PROPERTY
- \ SOURCE
- \ TARGET
- \ TEST
- \ WIX
-
-syn keyword cmakeKWset_source_files_properties contained
- \ PROPERTIES
- \ SOURCE
-
-syn keyword cmakeKWset_target_properties contained
- \ PROPERTIES
- \ TARGET
-
-syn keyword cmakeKWset_tests_properties contained
- \ PROPERTIES
- \ TEST
-
-syn keyword cmakeKWsource_group contained
- \ FILES
- \ PREFIX
- \ REGULAR_EXPRESSION
- \ TREE
-
-syn keyword cmakeKWstring contained
- \ ALPHABET
- \ APPEND
- \ ASCII
- \ CMAKE_MATCH_
- \ COMPARE
- \ CONCAT
- \ CONFIGURE
- \ EQUAL
- \ ESCAPE_QUOTES
- \ FIND
- \ GENEX_STRIP
- \ GREATER
- \ GREATER_EQUAL
- \ GUID
- \ HASH
- \ JOIN
- \ LENGTH
- \ LESS
- \ LESS_EQUAL
- \ MAKE_C_IDENTIFIER
- \ MATCH
- \ MATCHALL
- \ MATCHES
- \ NAMESPACE
- \ NOTEQUAL
- \ ONLY
- \ PREPEND
- \ RANDOM
- \ RANDOM_SEED
- \ REGEX
- \ REPEAT
- \ 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
-
-syn keyword cmakeKWtarget_compile_definitions contained
- \ 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
-
-syn keyword cmakeKWtarget_compile_options contained
- \ 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
-
-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
- \ 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
- \ 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
- \ STATIC_LIBRARY_OPTIONS
- \ UNIX_COMMAND
- \ _LINKER_WRAPPER_FLAG
- \ _LINKER_WRAPPER_FLAG_SEP
-
-syn keyword cmakeKWtarget_sources contained
- \ 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
- \ EXECUTABLE
- \ FALSE
- \ GHS
- \ INCLUDE_DIRECTORIES
- \ LANG
- \ LINK_DIRECTORIES
- \ LINK_LIBRARIES
- \ LINK_OPTIONS
- \ MULTI
- \ NOT
- \ OUTPUT_VARIABLE
- \ PRIVATE
- \ SOURCES
- \ STATIC_LIBRARY
- \ STATIC_LIBRARY_OPTIONS
- \ TRUE
- \ TYPE
- \ VALUE
- \ _EXTENSIONS
- \ _STANDARD
- \ _STANDARD_REQUIRED
-
-syn keyword cmakeKWtry_run contained
- \ ARGS
- \ CMAKE_FLAGS
- \ COMPILE_DEFINITIONS
- \ COMPILE_OUTPUT_VARIABLE
- \ DLINK_LIBRARIES
- \ DVAR
- \ FAILED_TO_RUN
- \ FALSE
- \ INCLUDE_DIRECTORIES
- \ LINK_DIRECTORIES
- \ LINK_LIBRARIES
- \ LINK_OPTIONS
- \ RUN_OUTPUT_VARIABLE
- \ TRUE
- \ TYPE
- \ VALUE
- \ __TRYRUN_OUTPUT
-
-syn keyword cmakeKWunset contained
- \ PARENT_SCOPE
- \ VAR
-
-syn keyword cmakeKWuse_mangled_mesa contained
- \ GL
- \ OUTPUT_DIRECTORY
- \ PATH_TO_MESA
-
-syn keyword cmakeKWvariable_requires contained
- \ RESULT_VARIABLE
- \ TEST_VARIABLE
-
-syn keyword cmakeKWvariable_watch contained
- \ COMMAND
-
-syn keyword cmakeKWwrite_file contained
- \ APPEND
- \ CONFIGURE_FILE
- \ NOTE
- \ WRITE
-
-
-syn keyword cmakeGeneratorExpressions contained
- \ AND
- \ ANGLE
- \ ARCHIVE_OUTPUT_NAME
- \ ARCHIVE_OUTPUT_NAME_
- \ BAR
- \ BOOL
- \ BUILD_INTERFACE
- \ CMAKE_
- \ COMMA
- \ COMMAND
- \ COMPILE_DEFINITIONS
- \ COMPILE_FEATURES
- \ COMPILE_LANGUAGE
- \ COMPILE_LANG_AND_ID
- \ COMPILING_CUDA
- \ COMPILING_CXX_WITH_CLANG
- \ COMPILING_CXX_WITH_INTEL
- \ COMPILING_C_WITH_CLANG
- \ CONFIG
- \ CONFIGURATION
- \ CUDA_COMPILER_ID
- \ CUDA_COMPILER_VERSION
- \ CUSTOM_KEYS
- \ CXX_COMPILER_ID
- \ CXX_COMPILER_VERSION
- \ CXX_STANDARD
- \ C_COMPILER_ID
- \ C_COMPILER_VERSION
- \ C_STANDARD
- \ DEBUG_MODE
- \ DEBUG_POSTFIX
- \ EXCLUDE
- \ EXPORT
- \ FALSE
- \ FILTER
- \ FOO_EXTRA_THINGS
- \ Fortran_COMPILER_ID
- \ Fortran_COMPILER_VERSION
- \ GENERATE
- \ GENEX_EVAL
- \ GNU
- \ IF
- \ IGNORE
- \ IMPORT_PREFIX
- \ IMPORT_SUFFIX
- \ INCLUDE_DIRECTORIES
- \ INSTALL_INTERFACE
- \ INSTALL_PREFIX
- \ INTERFACE_LINK_LIBRARIES
- \ IN_LIST
- \ JOIN
- \ LANG
- \ LANG_COMPILER_ID
- \ LIBRARY_OUTPUT_NAME
- \ LIBRARY_OUTPUT_NAME_
- \ LINK_LIBRARIES
- \ LINK_ONLY
- \ LOWER_CASE
- \ MAKE_C_IDENTIFIER
- \ MAP_IMPORTED_CONFIG_
- \ NO
- \ NOT
- \ OFF
- \ OLD_COMPILER
- \ OUTPUT_NAME
- \ OUTPUT_NAME_
- \ PDB_NAME
- \ PDB_NAME_
- \ PDB_OUTPUT_DIRECTORY
- \ PDB_OUTPUT_DIRECTORY_
- \ PLATFORM_ID
- \ POSIX
- \ PRIVATE
- \ PUBLIC
- \ REMOVE_DUPLICATES
- \ RUNTIME_OUTPUT_NAME
- \ RUNTIME_OUTPUT_NAME_
- \ SDK
- \ SEMICOLON
- \ SHELL_PATH
- \ STREQUAL
- \ TARGET_BUNDLE_CONTENT_DIR
- \ TARGET_BUNDLE_DIR
- \ TARGET_EXISTS
- \ TARGET_FILE
- \ TARGET_FILE_BASE_NAME
- \ TARGET_FILE_DIR
- \ TARGET_FILE_NAME
- \ TARGET_FILE_PREFIX
- \ TARGET_FILE_SUFFIX
- \ TARGET_GENEX_EVAL
- \ TARGET_LINKER_FILE
- \ TARGET_LINKER_FILE_BASE_NAME
- \ TARGET_LINKER_FILE_DIR
- \ TARGET_LINKER_FILE_NAME
- \ TARGET_LINKER_FILE_PREFIX
- \ TARGET_LINKER_FILE_SUFFIX
- \ TARGET_NAME_IF_EXISTS
- \ TARGET_OBJECTS
- \ TARGET_PDB_FILE
- \ TARGET_PDB_FILE_BASE_NAME
- \ 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
- \ _POSTFIX
-
-syn case ignore
-
-syn keyword cmakeCommand
- \ add_compile_definitions
- \ add_compile_options
- \ add_custom_command
- \ add_custom_target
- \ add_definitions
- \ add_dependencies
- \ add_executable
- \ add_library
- \ add_link_options
- \ add_subdirectory
- \ add_test
- \ aux_source_directory
- \ break
- \ build_command
- \ cmake_host_system_information
- \ cmake_minimum_required
- \ cmake_parse_arguments
- \ cmake_policy
- \ configure_file
- \ continue
- \ create_test_sourcelist
- \ ctest_build
- \ ctest_configure
- \ ctest_coverage
- \ ctest_empty_binary_directory
- \ ctest_memcheck
- \ ctest_read_custom_files
- \ ctest_run_script
- \ ctest_sleep
- \ ctest_start
- \ ctest_submit
- \ ctest_test
- \ ctest_update
- \ ctest_upload
- \ define_property
- \ enable_language
- \ enable_testing
- \ endfunction
- \ endmacro
- \ execute_process
- \ export
- \ file
- \ find_file
- \ find_library
- \ find_package
- \ find_path
- \ find_program
- \ fltk_wrap_ui
- \ function
- \ get_cmake_property
- \ get_directory_property
- \ get_filename_component
- \ get_property
- \ get_source_file_property
- \ get_target_property
- \ get_test_property
- \ include
- \ include_directories
- \ include_external_msproject
- \ include_guard
- \ include_regular_expression
- \ install
- \ link_directories
- \ list
- \ load_cache
- \ load_command
- \ macro
- \ mark_as_advanced
- \ math
- \ message
- \ option
- \ project
- \ qt_wrap_cpp
- \ qt_wrap_ui
- \ remove_definitions
- \ return
- \ separate_arguments
- \ set
- \ set_directory_properties
- \ set_property
- \ set_source_files_properties
- \ set_target_properties
- \ set_tests_properties
- \ site_name
- \ source_group
- \ string
- \ target_compile_definitions
- \ target_compile_features
- \ target_compile_options
- \ target_include_directories
- \ target_link_directories
- \ target_link_libraries
- \ target_link_options
- \ target_sources
- \ try_compile
- \ try_run
- \ unset
- \ variable_watch
- \ nextgroup=cmakeArguments
-
-syn keyword cmakeCommandConditional
- \ else
- \ elseif
- \ endif
- \ if
- \ nextgroup=cmakeArguments
-
-syn keyword cmakeCommandRepeat
- \ 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
- \ nextgroup=cmakeArguments
-
-syn case match
-
-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
-hi def link cmakeCommandRepeat Repeat
-hi def link cmakeComment Comment
-hi def link cmakeEnvironment Special
-hi def link cmakeEscaped Special
-hi def link cmakeGeneratorExpression WarningMsg
-hi def link cmakeGeneratorExpressions Constant
-hi def link cmakeModule Include
-hi def link cmakeProperty Constant
-hi def link cmakeRegistry Underlined
-hi def link cmakeString String
-hi def link cmakeTodo TODO
-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
-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
-hi def link cmakeKWcmake_host_system_information ModeMsg
-hi def link cmakeKWcmake_minimum_required ModeMsg
-hi def link cmakeKWcmake_parse_arguments ModeMsg
-hi def link cmakeKWcmake_policy ModeMsg
-hi def link cmakeKWconfigure_file ModeMsg
-hi def link cmakeKWcreate_test_sourcelist ModeMsg
-hi def link cmakeKWctest_build ModeMsg
-hi def link cmakeKWctest_configure ModeMsg
-hi def link cmakeKWctest_coverage ModeMsg
-hi def link cmakeKWctest_memcheck ModeMsg
-hi def link cmakeKWctest_run_script ModeMsg
-hi def link cmakeKWctest_start ModeMsg
-hi def link cmakeKWctest_submit ModeMsg
-hi def link cmakeKWctest_test ModeMsg
-hi def link cmakeKWctest_update ModeMsg
-hi def link cmakeKWctest_upload ModeMsg
-hi def link cmakeKWdefine_property ModeMsg
-hi def link cmakeKWenable_language ModeMsg
-hi def link cmakeKWenable_testing ModeMsg
-hi def link cmakeKWexec_program ModeMsg
-hi def link cmakeKWexecute_process ModeMsg
-hi def link cmakeKWexport ModeMsg
-hi def link cmakeKWexport_library_dependencies ModeMsg
-hi def link cmakeKWfile ModeMsg
-hi def link cmakeKWfind_file ModeMsg
-hi def link cmakeKWfind_library ModeMsg
-hi def link cmakeKWfind_package ModeMsg
-hi def link cmakeKWfind_path ModeMsg
-hi def link cmakeKWfind_program ModeMsg
-hi def link cmakeKWfltk_wrap_ui ModeMsg
-hi def link cmakeKWforeach ModeMsg
-hi def link cmakeKWfunction ModeMsg
-hi def link cmakeKWget_cmake_property ModeMsg
-hi def link cmakeKWget_directory_property ModeMsg
-hi def link cmakeKWget_filename_component ModeMsg
-hi def link cmakeKWget_property ModeMsg
-hi def link cmakeKWget_source_file_property ModeMsg
-hi def link cmakeKWget_target_property ModeMsg
-hi def link cmakeKWget_test_property ModeMsg
-hi def link cmakeKWif ModeMsg
-hi def link cmakeKWinclude ModeMsg
-hi def link cmakeKWinclude_directories ModeMsg
-hi def link cmakeKWinclude_external_msproject ModeMsg
-hi def link cmakeKWinclude_guard ModeMsg
-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
-hi def link cmakeKWmacro ModeMsg
-hi def link cmakeKWmark_as_advanced ModeMsg
-hi def link cmakeKWmath ModeMsg
-hi def link cmakeKWmessage ModeMsg
-hi def link cmakeKWoption ModeMsg
-hi def link cmakeKWproject ModeMsg
-hi def link cmakeKWqt_wrap_cpp ModeMsg
-hi def link cmakeKWqt_wrap_ui ModeMsg
-hi def link cmakeKWremove ModeMsg
-hi def link cmakeKWseparate_arguments ModeMsg
-hi def link cmakeKWset ModeMsg
-hi def link cmakeKWset_directory_properties ModeMsg
-hi def link cmakeKWset_property ModeMsg
-hi def link cmakeKWset_source_files_properties ModeMsg
-hi def link cmakeKWset_target_properties ModeMsg
-hi def link cmakeKWset_tests_properties ModeMsg
-hi def link cmakeKWsource_group ModeMsg
-hi def link cmakeKWstring ModeMsg
-hi def link cmakeKWsubdirs ModeMsg
-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
-hi def link cmakeKWunset ModeMsg
-hi def link cmakeKWuse_mangled_mesa ModeMsg
-hi def link cmakeKWvariable_requires ModeMsg
-hi def link cmakeKWvariable_watch 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
-unlet s:keepcpo
-
-" vim: set nowrap:
diff --git a/share/cmake-3.16/include/cmCPluginAPI.h b/share/cmake-3.16/include/cmCPluginAPI.h
deleted file mode 100644
index 6a95148..0000000
--- a/share/cmake-3.16/include/cmCPluginAPI.h
+++ /dev/null
@@ -1,236 +0,0 @@
-/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
-/* This header file defines the API that loadable commands can use. In many
- of these commands C++ instances of cmMakefile of cmSourceFile are passed
- in as arguments or returned. In these cases they are passed as a void *
- argument. In the function prototypes mf is used to represent a makefile
- and sf is used to represent a source file. The functions are grouped
- loosely into four groups 1) Utility 2) cmMakefile 3) cmSourceFile 4)
- cmSystemTools. Within each grouping functions are listed alphabetically */
-/*=========================================================================*/
-#ifndef cmCPluginAPI_h
-#define cmCPluginAPI_h
-
-#define CMAKE_VERSION_MAJOR 2
-#define CMAKE_VERSION_MINOR 5
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __WATCOMC__
-# define CCONV __cdecl
-#else
-# define CCONV
-#endif
-/*=========================================================================
-this is the structure of function entry points that a plugin may call. This
-structure must be kept in sync with the static decaled at the bottom of
-cmCPLuginAPI.cxx
-=========================================================================*/
-/* NOLINTNEXTLINE(modernize-use-using) */
-typedef struct
-{
- /*=========================================================================
- Here we define the set of functions that a plugin may call. The first goup
- of functions are utility functions that are specific to the plugin API
- =========================================================================*/
- /* set/Get the ClientData in the cmLoadedCommandInfo structure, this is how
- information is passed from the InitialPass to FInalPass for commands
- that need a FinalPass and need information from the InitialPass */
- void*(CCONV* GetClientData)(void* info);
- /* return the summed size in characters of all the arguments */
- int(CCONV* GetTotalArgumentSize)(int argc, char** argv);
- /* free all the memory associated with an argc, argv pair */
- void(CCONV* FreeArguments)(int argc, char** argv);
- /* set/Get the ClientData in the cmLoadedCommandInfo structure, this is how
- information is passed from the InitialPass to FInalPass for commands
- that need a FinalPass and need information from the InitialPass */
- void(CCONV* SetClientData)(void* info, void* cd);
- /* when an error occurs, call this function to set the error string */
- void(CCONV* SetError)(void* info, const char* err);
-
- /*=========================================================================
- The following functions all directly map to methods in the cmMakefile
- class. See cmMakefile.h for descriptions of what each method does. All of
- these methods take the void * makefile pointer as their first argument.
- =========================================================================*/
- void(CCONV* AddCacheDefinition)(void* mf, const char* name,
- const char* value, const char* doc,
- int cachetype);
- void(CCONV* AddCustomCommand)(void* mf, const char* source,
- const char* command, int numArgs,
- const char** args, int numDepends,
- const char** depends, int numOutputs,
- const char** outputs, const char* target);
- void(CCONV* AddDefineFlag)(void* mf, const char* definition);
- void(CCONV* AddDefinition)(void* mf, const char* name, const char* value);
- void(CCONV* AddExecutable)(void* mf, const char* exename, int numSrcs,
- const char** srcs, int win32);
- void(CCONV* AddLibrary)(void* mf, const char* libname, int shared,
- int numSrcs, const char** srcs);
- void(CCONV* AddLinkDirectoryForTarget)(void* mf, const char* tgt,
- const char* d);
- void(CCONV* AddLinkLibraryForTarget)(void* mf, const char* tgt,
- const char* libname, int libtype);
- void(CCONV* AddUtilityCommand)(void* mf, const char* utilityName,
- const char* command, const char* arguments,
- int all, int numDepends, const char** depends,
- int numOutputs, const char** outputs);
- int(CCONV* CommandExists)(void* mf, const char* name);
- int(CCONV* ExecuteCommand)(void* mf, const char* name, int numArgs,
- const char** args);
- void(CCONV* ExpandSourceListArguments)(void* mf, int argc, const char** argv,
- int* resArgc, char*** resArgv,
- unsigned int startArgumentIndex);
- char*(CCONV* ExpandVariablesInString)(void* mf, const char* source,
- int escapeQuotes, int atOnly);
- unsigned int(CCONV* GetCacheMajorVersion)(void* mf);
- unsigned int(CCONV* GetCacheMinorVersion)(void* mf);
- const char*(CCONV* GetCurrentDirectory)(void* mf);
- const char*(CCONV* GetCurrentOutputDirectory)(void* mf);
- const char*(CCONV* GetDefinition)(void* mf, const char* def);
- const char*(CCONV* GetHomeDirectory)(void* mf);
- const char*(CCONV* GetHomeOutputDirectory)(void* mf);
- unsigned int(CCONV* GetMajorVersion)(void* mf);
- unsigned int(CCONV* GetMinorVersion)(void* mf);
- const char*(CCONV* GetProjectName)(void* mf);
- const char*(CCONV* GetStartDirectory)(void* mf);
- const char*(CCONV* GetStartOutputDirectory)(void* mf);
- int(CCONV* IsOn)(void* mf, const char* name);
-
- /*=========================================================================
- The following functions are designed to operate or manipulate
- cmSourceFiles. Please see cmSourceFile.h for additional information on many
- of these methods. Some of these methods are in cmMakefile.h.
- =========================================================================*/
- void*(CCONV* AddSource)(void* mf, void* sf);
- void*(CCONV* CreateSourceFile)();
- void(CCONV* DestroySourceFile)(void* sf);
- void*(CCONV* GetSource)(void* mf, const char* sourceName);
- void(CCONV* SourceFileAddDepend)(void* sf, const char* depend);
- const char*(CCONV* SourceFileGetProperty)(void* sf, const char* prop);
- int(CCONV* SourceFileGetPropertyAsBool)(void* sf, const char* prop);
- const char*(CCONV* SourceFileGetSourceName)(void* sf);
- const char*(CCONV* SourceFileGetFullPath)(void* sf);
- void(CCONV* SourceFileSetName)(void* sf, const char* name, const char* dir,
- int numSourceExtensions,
- const char** sourceExtensions,
- int numHeaderExtensions,
- const char** headerExtensions);
- void(CCONV* SourceFileSetName2)(void* sf, const char* name, const char* dir,
- const char* ext, int headerFileOnly);
- void(CCONV* SourceFileSetProperty)(void* sf, const char* prop,
- const char* value);
-
- /*=========================================================================
- The following methods are from cmSystemTools.h see that file for specific
- documentation on each method.
- =========================================================================*/
- char*(CCONV* Capitalized)(const char*);
- void(CCONV* CopyFileIfDifferent)(const char* f1, const char* f2);
- char*(CCONV* GetFilenameWithoutExtension)(const char*);
- char*(CCONV* GetFilenamePath)(const char*);
- void(CCONV* RemoveFile)(const char* f1);
- void(CCONV* Free)(void*);
-
- /*=========================================================================
- The following are new functions added after 1.6
- =========================================================================*/
- void(CCONV* AddCustomCommandToOutput)(void* mf, const char* output,
- const char* command, int numArgs,
- const char** args,
- const char* main_dependency,
- int numDepends, const char** depends);
- void(CCONV* AddCustomCommandToTarget)(void* mf, const char* target,
- const char* command, int numArgs,
- const char** args, int commandType);
-
- /* display status information */
- void(CCONV* DisplaySatus)(void* info, const char* message);
-
- /* new functions added after 2.4 */
- void*(CCONV* CreateNewSourceFile)(void* mf);
- void(CCONV* DefineSourceFileProperty)(void* mf, const char* name,
- const char* briefDocs,
- const char* longDocs, int chained);
-
- /* this is the end of the C function stub API structure */
-} cmCAPI;
-
-/*=========================================================================
-CM_PLUGIN_EXPORT should be used by plugins
-=========================================================================*/
-#ifdef _WIN32
-# define CM_PLUGIN_EXPORT __declspec(dllexport)
-#else
-# define CM_PLUGIN_EXPORT
-#endif
-
-/*=========================================================================
-define the different types of cache entries, see cmCacheManager.h for more
-information
-=========================================================================*/
-#define CM_CACHE_BOOL 0
-#define CM_CACHE_PATH 1
-#define CM_CACHE_FILEPATH 2
-#define CM_CACHE_STRING 3
-#define CM_CACHE_INTERNAL 4
-#define CM_CACHE_STATIC 5
-
-/*=========================================================================
-define the different types of compiles a library may be
-=========================================================================*/
-#define CM_LIBRARY_GENERAL 0
-#define CM_LIBRARY_DEBUG 1
-#define CM_LIBRARY_OPTIMIZED 2
-
-/*=========================================================================
-define the different types of custom commands for a target
-=========================================================================*/
-#define CM_PRE_BUILD 0
-#define CM_PRE_LINK 1
-#define CM_POST_BUILD 2
-
-/*=========================================================================
-Finally we define the key data structures and function prototypes
-=========================================================================*/
-
-/* NOLINTNEXTLINE(modernize-use-using) */
-typedef const char*(CCONV* CM_DOC_FUNCTION)();
-
-/* NOLINTNEXTLINE(modernize-use-using) */
-typedef int(CCONV* CM_INITIAL_PASS_FUNCTION)(void* info, void* mf, int argc,
- char* []);
-
-/* NOLINTNEXTLINE(modernize-use-using) */
-typedef void(CCONV* CM_FINAL_PASS_FUNCTION)(void* info, void* mf);
-
-/* NOLINTNEXTLINE(modernize-use-using) */
-typedef void(CCONV* CM_DESTRUCTOR_FUNCTION)(void* info);
-
-/* NOLINTNEXTLINE(modernize-use-using) */
-typedef struct
-{
- unsigned long reserved1; /* Reserved for future use. DO NOT USE. */
- unsigned long reserved2; /* Reserved for future use. DO NOT USE. */
- cmCAPI* CAPI;
- int m_Inherited; /* this ivar is no longer used in CMake 2.2 or later */
- CM_INITIAL_PASS_FUNCTION InitialPass;
- CM_FINAL_PASS_FUNCTION FinalPass;
- CM_DESTRUCTOR_FUNCTION Destructor;
- CM_DOC_FUNCTION GetTerseDocumentation;
- CM_DOC_FUNCTION GetFullDocumentation;
- const char* Name;
- char* Error;
- void* ClientData;
-} cmLoadedCommandInfo;
-
-/* NOLINTNEXTLINE(modernize-use-using) */
-typedef void(CCONV* CM_INIT_FUNCTION)(cmLoadedCommandInfo*);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/share/cmake-3.16/Help/command/FIND_XXX.txt b/share/cmake-3.17/Help/command/FIND_XXX.txt
index 42bf52b..42bf52b 100644
--- a/share/cmake-3.16/Help/command/FIND_XXX.txt
+++ b/share/cmake-3.17/Help/command/FIND_XXX.txt
diff --git a/share/cmake-3.16/Help/command/FIND_XXX_ORDER.txt b/share/cmake-3.17/Help/command/FIND_XXX_ORDER.txt
index bac2419..bac2419 100644
--- a/share/cmake-3.16/Help/command/FIND_XXX_ORDER.txt
+++ b/share/cmake-3.17/Help/command/FIND_XXX_ORDER.txt
diff --git a/share/cmake-3.16/Help/command/FIND_XXX_ROOT.txt b/share/cmake-3.17/Help/command/FIND_XXX_ROOT.txt
index fab2303..fab2303 100644
--- a/share/cmake-3.16/Help/command/FIND_XXX_ROOT.txt
+++ b/share/cmake-3.17/Help/command/FIND_XXX_ROOT.txt
diff --git a/share/cmake-3.16/Help/command/LINK_OPTIONS_LINKER.txt b/share/cmake-3.17/Help/command/LINK_OPTIONS_LINKER.txt
index 3f66181..3f66181 100644
--- a/share/cmake-3.16/Help/command/LINK_OPTIONS_LINKER.txt
+++ b/share/cmake-3.17/Help/command/LINK_OPTIONS_LINKER.txt
diff --git a/share/cmake-3.16/Help/command/OPTIONS_SHELL.txt b/share/cmake-3.17/Help/command/OPTIONS_SHELL.txt
index 0f8ec32..0f8ec32 100644
--- a/share/cmake-3.16/Help/command/OPTIONS_SHELL.txt
+++ b/share/cmake-3.17/Help/command/OPTIONS_SHELL.txt
diff --git a/share/cmake-3.16/Help/command/add_compile_definitions.rst b/share/cmake-3.17/Help/command/add_compile_definitions.rst
index 8225da7..8225da7 100644
--- a/share/cmake-3.16/Help/command/add_compile_definitions.rst
+++ b/share/cmake-3.17/Help/command/add_compile_definitions.rst
diff --git a/share/cmake-3.16/Help/command/add_compile_options.rst b/share/cmake-3.17/Help/command/add_compile_options.rst
index 43805c3..43805c3 100644
--- a/share/cmake-3.16/Help/command/add_compile_options.rst
+++ b/share/cmake-3.17/Help/command/add_compile_options.rst
diff --git a/share/cmake-3.17/Help/command/add_custom_command.rst b/share/cmake-3.17/Help/command/add_custom_command.rst
new file mode 100644
index 0000000..9279748
--- /dev/null
+++ b/share/cmake-3.17/Help/command/add_custom_command.rst
@@ -0,0 +1,281 @@
+add_custom_command
+------------------
+
+Add a custom build rule to the generated build system.
+
+There are two main signatures for ``add_custom_command``.
+
+Generating Files
+^^^^^^^^^^^^^^^^
+
+The first signature is for adding a custom command to produce an output:
+
+.. code-block:: cmake
+
+ add_custom_command(OUTPUT output1 [output2 ...]
+ COMMAND command1 [ARGS] [args1...]
+ [COMMAND command2 [ARGS] [args2...] ...]
+ [MAIN_DEPENDENCY depend]
+ [DEPENDS [depends...]]
+ [BYPRODUCTS [files...]]
+ [IMPLICIT_DEPENDS <lang1> depend1
+ [<lang2> depend2] ...]
+ [WORKING_DIRECTORY dir]
+ [COMMENT comment]
+ [DEPFILE depfile]
+ [JOB_POOL job_pool]
+ [VERBATIM] [APPEND] [USES_TERMINAL]
+ [COMMAND_EXPAND_LISTS])
+
+This defines a command to generate specified ``OUTPUT`` file(s).
+A target created in the same directory (``CMakeLists.txt`` file)
+that specifies any output of the custom command as a source file
+is given a rule to generate the file using the command at build time.
+Do not list the output in more than one independent target that
+may build in parallel or the two instances of the rule may conflict
+(instead use the :command:`add_custom_target` command to drive the
+command and make the other targets depend on that one).
+In makefile terms this creates a new target in the following form::
+
+ OUTPUT: MAIN_DEPENDENCY DEPENDS
+ COMMAND
+
+The options are:
+
+``APPEND``
+ Append the ``COMMAND`` and ``DEPENDS`` option values to the custom
+ command for the first output specified. There must have already
+ been a previous call to this command with the same output.
+ The ``COMMENT``, ``MAIN_DEPENDENCY``, and ``WORKING_DIRECTORY``
+ options are currently ignored when APPEND is given, but may be
+ used in the future.
+
+``BYPRODUCTS``
+ Specify the files the command is expected to produce but whose
+ modification time may or may not be newer than the dependencies.
+ If a byproduct name is a relative path it will be interpreted
+ relative to the build tree directory corresponding to the
+ current source directory.
+ Each byproduct file will be marked with the :prop_sf:`GENERATED`
+ source file property automatically.
+
+ Explicit specification of byproducts is supported by the
+ :generator:`Ninja` generator to tell the ``ninja`` build tool
+ how to regenerate byproducts when they are missing. It is
+ also useful when other build rules (e.g. custom commands)
+ depend on the byproducts. Ninja requires a build rule for any
+ generated file on which another rule depends even if there are
+ order-only dependencies to ensure the byproducts will be
+ available before their dependents build.
+
+ The :ref:`Makefile Generators` will remove ``BYPRODUCTS`` and other
+ :prop_sf:`GENERATED` files during ``make clean``.
+
+``COMMAND``
+ Specify the command-line(s) to execute at build time.
+ If more than one ``COMMAND`` is specified they will be executed in order,
+ but *not* necessarily composed into a stateful shell or batch script.
+ (To run a full script, use the :command:`configure_file` command or the
+ :command:`file(GENERATE)` command to create it, and then specify
+ a ``COMMAND`` to launch it.)
+ The optional ``ARGS`` argument is for backward compatibility and
+ will be ignored.
+
+ If ``COMMAND`` specifies an executable target name (created by the
+ :command:`add_executable` command), it will automatically be replaced
+ by the location of the executable created at build time if either of
+ the following is true:
+
+ * The target is not being cross-compiled (i.e. the
+ :variable:`CMAKE_CROSSCOMPILING` variable is not set to true).
+ * The target is being cross-compiled and an emulator is provided (i.e.
+ its :prop_tgt:`CROSSCOMPILING_EMULATOR` target property is set).
+ In this case, the contents of :prop_tgt:`CROSSCOMPILING_EMULATOR` will be
+ prepended to the command before the location of the target executable.
+
+ If neither of the above conditions are met, it is assumed that the
+ command name is a program to be found on the ``PATH`` at build time.
+
+ Arguments to ``COMMAND`` may use
+ :manual:`generator expressions <cmake-generator-expressions(7)>`.
+ Use the ``TARGET_FILE`` generator expression to refer to the location of
+ a target later in the command line (i.e. as a command argument rather
+ than as the command to execute).
+
+ Whenever a target is used as a command to execute or is mentioned in a
+ generator expression as a command argument, a target-level dependency
+ will be added automatically so that the mentioned target will be built
+ before any target using this custom command. However this does NOT add
+ a file-level dependency that would cause the custom command to re-run
+ whenever the executable is recompiled. List target names with
+ the ``DEPENDS`` option to add such file-level dependencies.
+
+``COMMENT``
+ Display the given message before the commands are executed at
+ build time.
+
+``DEPENDS``
+ Specify files on which the command depends. Each argument is converted
+ to a dependency as follows:
+
+ 1. If the argument is the name of a target (created by the
+ :command:`add_custom_target`, :command:`add_executable`, or
+ :command:`add_library` command) a target-level dependency is
+ created to make sure the target is built before any target
+ using this custom command. Additionally, if the target is an
+ executable or library, a file-level dependency is created to
+ cause the custom command to re-run whenever the target is
+ recompiled.
+
+ 2. If the argument is an absolute path, a file-level dependency
+ is created on that path.
+
+ 3. If the argument is the name of a source file that has been
+ added to a target or on which a source file property has been set,
+ a file-level dependency is created on that source file.
+
+ 4. If the argument is a relative path and it exists in the current
+ source directory, a file-level dependency is created on that
+ file in the current source directory.
+
+ 5. Otherwise, a file-level dependency is created on that path relative
+ to the current binary directory.
+
+ If any dependency is an ``OUTPUT`` of another custom command in the same
+ directory (``CMakeLists.txt`` file), CMake automatically brings the other
+ custom command into the target in which this command is built.
+ A target-level dependency is added if any dependency is listed as
+ ``BYPRODUCTS`` of a target or any of its build events in the same
+ directory to ensure the byproducts will be available.
+
+ If ``DEPENDS`` is not specified, the command will run whenever
+ the ``OUTPUT`` is missing; if the command does not actually
+ create the ``OUTPUT``, the rule will always run.
+
+ Arguments to ``DEPENDS`` may use
+ :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+``COMMAND_EXPAND_LISTS``
+ Lists in ``COMMAND`` arguments will be expanded, including those
+ created with
+ :manual:`generator expressions <cmake-generator-expressions(7)>`,
+ allowing ``COMMAND`` arguments such as
+ ``${CC} "-I$<JOIN:$<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>,;-I>" foo.cc``
+ to be properly expanded.
+
+``IMPLICIT_DEPENDS``
+ Request scanning of implicit dependencies of an input file.
+ The language given specifies the programming language whose
+ corresponding dependency scanner should be used.
+ Currently only ``C`` and ``CXX`` language scanners are supported.
+ The language has to be specified for every file in the
+ ``IMPLICIT_DEPENDS`` list. Dependencies discovered from the
+ scanning are added to those of the custom command at build time.
+ Note that the ``IMPLICIT_DEPENDS`` option is currently supported
+ only for Makefile generators and will be ignored by other generators.
+
+``JOB_POOL``
+ Specify a :prop_gbl:`pool <JOB_POOLS>` for the :generator:`Ninja`
+ generator. Incompatible with ``USES_TERMINAL``, which implies
+ the ``console`` pool.
+ Using a pool that is not defined by :prop_gbl:`JOB_POOLS` causes
+ an error by ninja at build time.
+
+``MAIN_DEPENDENCY``
+ Specify the primary input source file to the command. This is
+ treated just like any value given to the ``DEPENDS`` option
+ but also suggests to Visual Studio generators where to hang
+ the custom command. Each source file may have at most one command
+ specifying it as its main dependency. A compile command (i.e. for a
+ library or an executable) counts as an implicit main dependency which
+ gets silently overwritten by a custom command specification.
+
+``OUTPUT``
+ Specify the output files the command is expected to produce.
+ If an output name is a relative path it will be interpreted
+ relative to the build tree directory corresponding to the
+ current source directory.
+ Each output file will be marked with the :prop_sf:`GENERATED`
+ source file property automatically.
+ If the output of the custom command is not actually created
+ as a file on disk it should be marked with the :prop_sf:`SYMBOLIC`
+ source file property.
+
+``USES_TERMINAL``
+ The command will be given direct access to the terminal if possible.
+ With the :generator:`Ninja` generator, this places the command in
+ the ``console`` :prop_gbl:`pool <JOB_POOLS>`.
+
+``VERBATIM``
+ All arguments to the commands will be escaped properly for the
+ build tool so that the invoked command receives each argument
+ unchanged. Note that one level of escapes is still used by the
+ CMake language processor before add_custom_command even sees the
+ arguments. Use of ``VERBATIM`` is recommended as it enables
+ correct behavior. When ``VERBATIM`` is not given the behavior
+ is platform specific because there is no protection of
+ tool-specific special characters.
+
+``WORKING_DIRECTORY``
+ Execute the command with the given current working directory.
+ If it is a relative path it will be interpreted relative to the
+ build tree directory corresponding to the current source directory.
+
+ Arguments to ``WORKING_DIRECTORY`` may use
+ :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+``DEPFILE``
+ Specify a ``.d`` depfile for the :generator:`Ninja` generator.
+ A ``.d`` file holds dependencies usually emitted by the custom
+ command itself.
+ Using ``DEPFILE`` with other generators than Ninja is an error.
+
+Build Events
+^^^^^^^^^^^^
+
+The second signature adds a custom command to a target such as a
+library or executable. This is useful for performing an operation
+before or after building the target. The command becomes part of the
+target and will only execute when the target itself is built. If the
+target is already built, the command will not execute.
+
+.. code-block:: cmake
+
+ add_custom_command(TARGET <target>
+ PRE_BUILD | PRE_LINK | POST_BUILD
+ COMMAND command1 [ARGS] [args1...]
+ [COMMAND command2 [ARGS] [args2...] ...]
+ [BYPRODUCTS [files...]]
+ [WORKING_DIRECTORY dir]
+ [COMMENT comment]
+ [VERBATIM] [USES_TERMINAL]
+ [COMMAND_EXPAND_LISTS])
+
+This defines a new command that will be associated with building the
+specified ``<target>``. The ``<target>`` must be defined in the current
+directory; targets defined in other directories may not be specified.
+
+When the command will happen is determined by which
+of the following is specified:
+
+``PRE_BUILD``
+ On :ref:`Visual Studio Generators`, run before any other rules are
+ executed within the target.
+ On other generators, run just before ``PRE_LINK`` commands.
+``PRE_LINK``
+ Run after sources have been compiled but before linking the binary
+ or running the librarian or archiver tool of a static library.
+ This is not defined for targets created by the
+ :command:`add_custom_target` command.
+``POST_BUILD``
+ Run after all other rules within the target have been executed.
+
+.. note::
+ Because generator expressions can be used in custom commands,
+ it is possible to define ``COMMAND`` lines or whole custom commands
+ which evaluate to empty strings for certain configurations.
+ For **Visual Studio 2010 (and newer)** generators these command
+ lines or custom commands will be omitted for the specific
+ configuration and no "empty-string-command" will be added.
+
+ This allows to add individual build events for every configuration.
diff --git a/share/cmake-3.17/Help/command/add_custom_target.rst b/share/cmake-3.17/Help/command/add_custom_target.rst
new file mode 100644
index 0000000..56ab414
--- /dev/null
+++ b/share/cmake-3.17/Help/command/add_custom_target.rst
@@ -0,0 +1,149 @@
+add_custom_target
+-----------------
+
+Add a target with no output so it will always be built.
+
+.. code-block:: cmake
+
+ add_custom_target(Name [ALL] [command1 [args1...]]
+ [COMMAND command2 [args2...] ...]
+ [DEPENDS depend depend depend ... ]
+ [BYPRODUCTS [files...]]
+ [WORKING_DIRECTORY dir]
+ [COMMENT comment]
+ [JOB_POOL job_pool]
+ [VERBATIM] [USES_TERMINAL]
+ [COMMAND_EXPAND_LISTS]
+ [SOURCES src1 [src2...]])
+
+Adds a target with the given name that executes the given commands.
+The target has no output file and is *always considered out of date*
+even if the commands try to create a file with the name of the target.
+Use the :command:`add_custom_command` command to generate a file with
+dependencies. By default nothing depends on the custom target. Use
+the :command:`add_dependencies` command to add dependencies to or
+from other targets.
+
+The options are:
+
+``ALL``
+ Indicate that this target should be added to the default build
+ target so that it will be run every time (the command cannot be
+ called ``ALL``).
+
+``BYPRODUCTS``
+ Specify the files the command is expected to produce but whose
+ modification time may or may not be updated on subsequent builds.
+ If a byproduct name is a relative path it will be interpreted
+ relative to the build tree directory corresponding to the
+ current source directory.
+ Each byproduct file will be marked with the :prop_sf:`GENERATED`
+ source file property automatically.
+
+ Explicit specification of byproducts is supported by the
+ :generator:`Ninja` generator to tell the ``ninja`` build tool
+ how to regenerate byproducts when they are missing. It is
+ also useful when other build rules (e.g. custom commands)
+ depend on the byproducts. Ninja requires a build rule for any
+ generated file on which another rule depends even if there are
+ order-only dependencies to ensure the byproducts will be
+ available before their dependents build.
+
+ The :ref:`Makefile Generators` will remove ``BYPRODUCTS`` and other
+ :prop_sf:`GENERATED` files during ``make clean``.
+
+``COMMAND``
+ Specify the command-line(s) to execute at build time.
+ If more than one ``COMMAND`` is specified they will be executed in order,
+ but *not* necessarily composed into a stateful shell or batch script.
+ (To run a full script, use the :command:`configure_file` command or the
+ :command:`file(GENERATE)` command to create it, and then specify
+ a ``COMMAND`` to launch it.)
+
+ If ``COMMAND`` specifies an executable target name (created by the
+ :command:`add_executable` command), it will automatically be replaced
+ by the location of the executable created at build time if either of
+ the following is true:
+
+ * The target is not being cross-compiled (i.e. the
+ :variable:`CMAKE_CROSSCOMPILING` variable is not set to true).
+ * The target is being cross-compiled and an emulator is provided (i.e.
+ its :prop_tgt:`CROSSCOMPILING_EMULATOR` target property is set).
+ In this case, the contents of :prop_tgt:`CROSSCOMPILING_EMULATOR` will be
+ prepended to the command before the location of the target executable.
+
+ If neither of the above conditions are met, it is assumed that the
+ command name is a program to be found on the ``PATH`` at build time.
+
+ Arguments to ``COMMAND`` may use
+ :manual:`generator expressions <cmake-generator-expressions(7)>`.
+ Use the ``TARGET_FILE`` generator expression to refer to the location of
+ a target later in the command line (i.e. as a command argument rather
+ than as the command to execute).
+
+ Whenever a target is used as a command to execute or is mentioned in a
+ generator expression as a command argument, a target-level dependency
+ will be added automatically so that the mentioned target will be built
+ before this custom target.
+
+ The command and arguments are optional and if not specified an empty
+ target will be created.
+
+``COMMENT``
+ Display the given message before the commands are executed at
+ build time.
+
+``DEPENDS``
+ Reference files and outputs of custom commands created with
+ :command:`add_custom_command` command calls in the same directory
+ (``CMakeLists.txt`` file). They will be brought up to date when
+ the target is built.
+ A target-level dependency is added if any dependency is a byproduct
+ of a target or any of its build events in the same directory to ensure
+ the byproducts will be available before this target is built.
+
+ Use the :command:`add_dependencies` command to add dependencies
+ on other targets.
+
+``COMMAND_EXPAND_LISTS``
+ Lists in ``COMMAND`` arguments will be expanded, including those
+ created with
+ :manual:`generator expressions <cmake-generator-expressions(7)>`,
+ allowing ``COMMAND`` arguments such as
+ ``${CC} "-I$<JOIN:$<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>,;-I>" foo.cc``
+ to be properly expanded.
+
+``JOB_POOL``
+ Specify a :prop_gbl:`pool <JOB_POOLS>` for the :generator:`Ninja`
+ generator. Incompatible with ``USES_TERMINAL``, which implies
+ the ``console`` pool.
+ Using a pool that is not defined by :prop_gbl:`JOB_POOLS` causes
+ an error by ninja at build time.
+
+``SOURCES``
+ Specify additional source files to be included in the custom target.
+ Specified source files will be added to IDE project files for
+ convenience in editing even if they have no build rules.
+
+``VERBATIM``
+ All arguments to the commands will be escaped properly for the
+ build tool so that the invoked command receives each argument
+ unchanged. Note that one level of escapes is still used by the
+ CMake language processor before ``add_custom_target`` even sees
+ the arguments. Use of ``VERBATIM`` is recommended as it enables
+ correct behavior. When ``VERBATIM`` is not given the behavior
+ is platform specific because there is no protection of
+ tool-specific special characters.
+
+``USES_TERMINAL``
+ The command will be given direct access to the terminal if possible.
+ With the :generator:`Ninja` generator, this places the command in
+ the ``console`` :prop_gbl:`pool <JOB_POOLS>`.
+
+``WORKING_DIRECTORY``
+ Execute the command with the given current working directory.
+ If it is a relative path it will be interpreted relative to the
+ build tree directory corresponding to the current source directory.
+
+ Arguments to ``WORKING_DIRECTORY`` may use
+ :manual:`generator expressions <cmake-generator-expressions(7)>`.
diff --git a/share/cmake-3.16/Help/command/add_definitions.rst b/share/cmake-3.17/Help/command/add_definitions.rst
index d06b01c..d06b01c 100644
--- a/share/cmake-3.16/Help/command/add_definitions.rst
+++ b/share/cmake-3.17/Help/command/add_definitions.rst
diff --git a/share/cmake-3.16/Help/command/add_dependencies.rst b/share/cmake-3.17/Help/command/add_dependencies.rst
index de219a5..de219a5 100644
--- a/share/cmake-3.16/Help/command/add_dependencies.rst
+++ b/share/cmake-3.17/Help/command/add_dependencies.rst
diff --git a/share/cmake-3.16/Help/command/add_executable.rst b/share/cmake-3.17/Help/command/add_executable.rst
index 0a7d7e1..0a7d7e1 100644
--- a/share/cmake-3.16/Help/command/add_executable.rst
+++ b/share/cmake-3.17/Help/command/add_executable.rst
diff --git a/share/cmake-3.16/Help/command/add_library.rst b/share/cmake-3.17/Help/command/add_library.rst
index 7274e44..7274e44 100644
--- a/share/cmake-3.16/Help/command/add_library.rst
+++ b/share/cmake-3.17/Help/command/add_library.rst
diff --git a/share/cmake-3.16/Help/command/add_link_options.rst b/share/cmake-3.17/Help/command/add_link_options.rst
index a83005b..a83005b 100644
--- a/share/cmake-3.16/Help/command/add_link_options.rst
+++ b/share/cmake-3.17/Help/command/add_link_options.rst
diff --git a/share/cmake-3.16/Help/command/add_subdirectory.rst b/share/cmake-3.17/Help/command/add_subdirectory.rst
index 8dba986..8dba986 100644
--- a/share/cmake-3.16/Help/command/add_subdirectory.rst
+++ b/share/cmake-3.17/Help/command/add_subdirectory.rst
diff --git a/share/cmake-3.16/Help/command/add_test.rst b/share/cmake-3.17/Help/command/add_test.rst
index a77ba37..a77ba37 100644
--- a/share/cmake-3.16/Help/command/add_test.rst
+++ b/share/cmake-3.17/Help/command/add_test.rst
diff --git a/share/cmake-3.16/Help/command/aux_source_directory.rst b/share/cmake-3.17/Help/command/aux_source_directory.rst
index 9619f35..9619f35 100644
--- a/share/cmake-3.16/Help/command/aux_source_directory.rst
+++ b/share/cmake-3.17/Help/command/aux_source_directory.rst
diff --git a/share/cmake-3.16/Help/command/break.rst b/share/cmake-3.17/Help/command/break.rst
index 4875a2b..4875a2b 100644
--- a/share/cmake-3.16/Help/command/break.rst
+++ b/share/cmake-3.17/Help/command/break.rst
diff --git a/share/cmake-3.16/Help/command/build_command.rst b/share/cmake-3.17/Help/command/build_command.rst
index 6659005..6659005 100644
--- a/share/cmake-3.16/Help/command/build_command.rst
+++ b/share/cmake-3.17/Help/command/build_command.rst
diff --git a/share/cmake-3.16/Help/command/build_name.rst b/share/cmake-3.17/Help/command/build_name.rst
index 2a1fbae..2a1fbae 100644
--- a/share/cmake-3.16/Help/command/build_name.rst
+++ b/share/cmake-3.17/Help/command/build_name.rst
diff --git a/share/cmake-3.16/Help/command/cmake_host_system_information.rst b/share/cmake-3.17/Help/command/cmake_host_system_information.rst
index 2e9563a..2e9563a 100644
--- a/share/cmake-3.16/Help/command/cmake_host_system_information.rst
+++ b/share/cmake-3.17/Help/command/cmake_host_system_information.rst
diff --git a/share/cmake-3.16/Help/command/cmake_minimum_required.rst b/share/cmake-3.17/Help/command/cmake_minimum_required.rst
index e6ebcf0..e6ebcf0 100644
--- a/share/cmake-3.16/Help/command/cmake_minimum_required.rst
+++ b/share/cmake-3.17/Help/command/cmake_minimum_required.rst
diff --git a/share/cmake-3.16/Help/command/cmake_parse_arguments.rst b/share/cmake-3.17/Help/command/cmake_parse_arguments.rst
index fcd36d0..fcd36d0 100644
--- a/share/cmake-3.16/Help/command/cmake_parse_arguments.rst
+++ b/share/cmake-3.17/Help/command/cmake_parse_arguments.rst
diff --git a/share/cmake-3.16/Help/command/cmake_policy.rst b/share/cmake-3.17/Help/command/cmake_policy.rst
index 4bc7807..4bc7807 100644
--- a/share/cmake-3.16/Help/command/cmake_policy.rst
+++ b/share/cmake-3.17/Help/command/cmake_policy.rst
diff --git a/share/cmake-3.16/Help/command/configure_file.rst b/share/cmake-3.17/Help/command/configure_file.rst
index 29e85bd..29e85bd 100644
--- a/share/cmake-3.16/Help/command/configure_file.rst
+++ b/share/cmake-3.17/Help/command/configure_file.rst
diff --git a/share/cmake-3.16/Help/command/continue.rst b/share/cmake-3.17/Help/command/continue.rst
index 31c7089..31c7089 100644
--- a/share/cmake-3.16/Help/command/continue.rst
+++ b/share/cmake-3.17/Help/command/continue.rst
diff --git a/share/cmake-3.16/Help/command/create_test_sourcelist.rst b/share/cmake-3.17/Help/command/create_test_sourcelist.rst
index 77e37c5..77e37c5 100644
--- a/share/cmake-3.16/Help/command/create_test_sourcelist.rst
+++ b/share/cmake-3.17/Help/command/create_test_sourcelist.rst
diff --git a/share/cmake-3.16/Help/command/ctest_build.rst b/share/cmake-3.17/Help/command/ctest_build.rst
index 66e1844..66e1844 100644
--- a/share/cmake-3.16/Help/command/ctest_build.rst
+++ b/share/cmake-3.17/Help/command/ctest_build.rst
diff --git a/share/cmake-3.16/Help/command/ctest_configure.rst b/share/cmake-3.17/Help/command/ctest_configure.rst
index 2dea07b..2dea07b 100644
--- a/share/cmake-3.16/Help/command/ctest_configure.rst
+++ b/share/cmake-3.17/Help/command/ctest_configure.rst
diff --git a/share/cmake-3.16/Help/command/ctest_coverage.rst b/share/cmake-3.17/Help/command/ctest_coverage.rst
index d50f634..d50f634 100644
--- a/share/cmake-3.16/Help/command/ctest_coverage.rst
+++ b/share/cmake-3.17/Help/command/ctest_coverage.rst
diff --git a/share/cmake-3.16/Help/command/ctest_empty_binary_directory.rst b/share/cmake-3.17/Help/command/ctest_empty_binary_directory.rst
index 7753667..7753667 100644
--- a/share/cmake-3.16/Help/command/ctest_empty_binary_directory.rst
+++ b/share/cmake-3.17/Help/command/ctest_empty_binary_directory.rst
diff --git a/share/cmake-3.16/Help/command/ctest_memcheck.rst b/share/cmake-3.17/Help/command/ctest_memcheck.rst
index 288b65a..288b65a 100644
--- a/share/cmake-3.16/Help/command/ctest_memcheck.rst
+++ b/share/cmake-3.17/Help/command/ctest_memcheck.rst
diff --git a/share/cmake-3.16/Help/command/ctest_read_custom_files.rst b/share/cmake-3.17/Help/command/ctest_read_custom_files.rst
index cf8e17a..cf8e17a 100644
--- a/share/cmake-3.16/Help/command/ctest_read_custom_files.rst
+++ b/share/cmake-3.17/Help/command/ctest_read_custom_files.rst
diff --git a/share/cmake-3.16/Help/command/ctest_run_script.rst b/share/cmake-3.17/Help/command/ctest_run_script.rst
index 5ec543e..5ec543e 100644
--- a/share/cmake-3.16/Help/command/ctest_run_script.rst
+++ b/share/cmake-3.17/Help/command/ctest_run_script.rst
diff --git a/share/cmake-3.16/Help/command/ctest_sleep.rst b/share/cmake-3.17/Help/command/ctest_sleep.rst
index 16a914c..16a914c 100644
--- a/share/cmake-3.16/Help/command/ctest_sleep.rst
+++ b/share/cmake-3.17/Help/command/ctest_sleep.rst
diff --git a/share/cmake-3.16/Help/command/ctest_start.rst b/share/cmake-3.17/Help/command/ctest_start.rst
index f0704ac..f0704ac 100644
--- a/share/cmake-3.16/Help/command/ctest_start.rst
+++ b/share/cmake-3.17/Help/command/ctest_start.rst
diff --git a/share/cmake-3.16/Help/command/ctest_submit.rst b/share/cmake-3.17/Help/command/ctest_submit.rst
index 983fc20..983fc20 100644
--- a/share/cmake-3.16/Help/command/ctest_submit.rst
+++ b/share/cmake-3.17/Help/command/ctest_submit.rst
diff --git a/share/cmake-3.17/Help/command/ctest_test.rst b/share/cmake-3.17/Help/command/ctest_test.rst
new file mode 100644
index 0000000..5c67b2c
--- /dev/null
+++ b/share/cmake-3.17/Help/command/ctest_test.rst
@@ -0,0 +1,140 @@
+ctest_test
+----------
+
+Perform the :ref:`CTest Test Step` as a :ref:`Dashboard Client`.
+
+::
+
+ ctest_test([BUILD <build-dir>] [APPEND]
+ [START <start-number>]
+ [END <end-number>]
+ [STRIDE <stride-number>]
+ [EXCLUDE <exclude-regex>]
+ [INCLUDE <include-regex>]
+ [EXCLUDE_LABEL <label-exclude-regex>]
+ [INCLUDE_LABEL <label-include-regex>]
+ [EXCLUDE_FIXTURE <regex>]
+ [EXCLUDE_FIXTURE_SETUP <regex>]
+ [EXCLUDE_FIXTURE_CLEANUP <regex>]
+ [PARALLEL_LEVEL <level>]
+ [RESOURCE_SPEC_FILE <file>]
+ [TEST_LOAD <threshold>]
+ [SCHEDULE_RANDOM <ON|OFF>]
+ [STOP_TIME <time-of-day>]
+ [RETURN_VALUE <result-var>]
+ [CAPTURE_CMAKE_ERROR <result-var>]
+ [REPEAT <mode>:<n>]
+ [QUIET]
+ )
+
+Run tests in the project build tree and store results in
+``Test.xml`` for submission with the :command:`ctest_submit` command.
+
+The options are:
+
+``BUILD <build-dir>``
+ Specify the top-level build directory. If not given, the
+ :variable:`CTEST_BINARY_DIRECTORY` variable is used.
+
+``APPEND``
+ Mark ``Test.xml`` for append to results previously submitted to a
+ dashboard server since the last :command:`ctest_start` call.
+ Append semantics are defined by the dashboard server in use.
+ This does *not* cause results to be appended to a ``.xml`` file
+ produced by a previous call to this command.
+
+``START <start-number>``
+ Specify the beginning of a range of test numbers.
+
+``END <end-number>``
+ Specify the end of a range of test numbers.
+
+``STRIDE <stride-number>``
+ Specify the stride by which to step across a range of test numbers.
+
+``EXCLUDE <exclude-regex>``
+ Specify a regular expression matching test names to exclude.
+
+``INCLUDE <include-regex>``
+ Specify a regular expression matching test names to include.
+ Tests not matching this expression are excluded.
+
+``EXCLUDE_LABEL <label-exclude-regex>``
+ Specify a regular expression matching test labels to exclude.
+
+``INCLUDE_LABEL <label-include-regex>``
+ Specify a regular expression matching test labels to include.
+ Tests not matching this expression are excluded.
+
+``EXCLUDE_FIXTURE <regex>``
+ If a test in the set of tests to be executed requires a particular fixture,
+ that fixture's setup and cleanup tests would normally be added to the test
+ set automatically. This option prevents adding setup or cleanup tests for
+ fixtures matching the ``<regex>``. Note that all other fixture behavior is
+ retained, including test dependencies and skipping tests that have fixture
+ setup tests that fail.
+
+``EXCLUDE_FIXTURE_SETUP <regex>``
+ Same as ``EXCLUDE_FIXTURE`` except only matching setup tests are excluded.
+
+``EXCLUDE_FIXTURE_CLEANUP <regex>``
+ Same as ``EXCLUDE_FIXTURE`` except only matching cleanup tests are excluded.
+
+``PARALLEL_LEVEL <level>``
+ Specify a positive number representing the number of tests to
+ be run in parallel.
+
+``RESOURCE_SPEC_FILE <file>``
+ Specify a
+ :ref:`resource specification file <ctest-resource-specification-file>`. See
+ :ref:`ctest-resource-allocation` for more information.
+
+``TEST_LOAD <threshold>``
+ While running tests in parallel, try not to start tests when they
+ may cause the CPU load to pass above a given threshold. If not
+ specified the :variable:`CTEST_TEST_LOAD` variable will be checked,
+ and then the ``--test-load`` command-line argument to :manual:`ctest(1)`.
+ See also the ``TestLoad`` setting in the :ref:`CTest Test Step`.
+
+``REPEAT <mode>:<n>``
+ Run tests repeatedly based on the given ``<mode>`` up to ``<n>`` times.
+ The modes are:
+
+ ``UNTIL_FAIL``
+ Require each test to run ``<n>`` times without failing in order to pass.
+ This is useful in finding sporadic failures in test cases.
+
+ ``UNTIL_PASS``
+ Allow each test to run up to ``<n>`` times in order to pass.
+ Repeats tests if they fail for any reason.
+ This is useful in tolerating sporadic failures in test cases.
+
+ ``AFTER_TIMEOUT``
+ Allow each test to run up to ``<n>`` times in order to pass.
+ Repeats tests only if they timeout.
+ This is useful in tolerating sporadic timeouts in test cases
+ on busy machines.
+
+``SCHEDULE_RANDOM <ON|OFF>``
+ Launch tests in a random order. This may be useful for detecting
+ implicit test dependencies.
+
+``STOP_TIME <time-of-day>``
+ Specify a time of day at which the tests should all stop running.
+
+``RETURN_VALUE <result-var>``
+ Store in the ``<result-var>`` variable ``0`` if all tests passed.
+ Store non-zero if anything went wrong.
+
+``CAPTURE_CMAKE_ERROR <result-var>``
+ Store in the ``<result-var>`` variable -1 if there are any errors running
+ the command and prevent ctest from returning non-zero if an error occurs.
+
+``QUIET``
+ Suppress any CTest-specific non-error messages that would have otherwise
+ been printed to the console. Output from the underlying test command is not
+ affected. Summary info detailing the percentage of passing tests is also
+ unaffected by the ``QUIET`` option.
+
+See also the :variable:`CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE`
+and :variable:`CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE` variables.
diff --git a/share/cmake-3.16/Help/command/ctest_update.rst b/share/cmake-3.17/Help/command/ctest_update.rst
index 96a11c9..96a11c9 100644
--- a/share/cmake-3.16/Help/command/ctest_update.rst
+++ b/share/cmake-3.17/Help/command/ctest_update.rst
diff --git a/share/cmake-3.16/Help/command/ctest_upload.rst b/share/cmake-3.17/Help/command/ctest_upload.rst
index 39d9de1..39d9de1 100644
--- a/share/cmake-3.16/Help/command/ctest_upload.rst
+++ b/share/cmake-3.17/Help/command/ctest_upload.rst
diff --git a/share/cmake-3.16/Help/command/define_property.rst b/share/cmake-3.17/Help/command/define_property.rst
index 8f7439b..8f7439b 100644
--- a/share/cmake-3.16/Help/command/define_property.rst
+++ b/share/cmake-3.17/Help/command/define_property.rst
diff --git a/share/cmake-3.16/Help/command/else.rst b/share/cmake-3.17/Help/command/else.rst
index a98fcd8..a98fcd8 100644
--- a/share/cmake-3.16/Help/command/else.rst
+++ b/share/cmake-3.17/Help/command/else.rst
diff --git a/share/cmake-3.16/Help/command/elseif.rst b/share/cmake-3.17/Help/command/elseif.rst
index 6bf8646..6bf8646 100644
--- a/share/cmake-3.16/Help/command/elseif.rst
+++ b/share/cmake-3.17/Help/command/elseif.rst
diff --git a/share/cmake-3.16/Help/command/enable_language.rst b/share/cmake-3.17/Help/command/enable_language.rst
index fdc44f2..fdc44f2 100644
--- a/share/cmake-3.16/Help/command/enable_language.rst
+++ b/share/cmake-3.17/Help/command/enable_language.rst
diff --git a/share/cmake-3.16/Help/command/enable_testing.rst b/share/cmake-3.17/Help/command/enable_testing.rst
index 3ac1a19..3ac1a19 100644
--- a/share/cmake-3.16/Help/command/enable_testing.rst
+++ b/share/cmake-3.17/Help/command/enable_testing.rst
diff --git a/share/cmake-3.16/Help/command/endforeach.rst b/share/cmake-3.17/Help/command/endforeach.rst
index fd923d5..fd923d5 100644
--- a/share/cmake-3.16/Help/command/endforeach.rst
+++ b/share/cmake-3.17/Help/command/endforeach.rst
diff --git a/share/cmake-3.16/Help/command/endfunction.rst b/share/cmake-3.17/Help/command/endfunction.rst
index e27129d..e27129d 100644
--- a/share/cmake-3.16/Help/command/endfunction.rst
+++ b/share/cmake-3.17/Help/command/endfunction.rst
diff --git a/share/cmake-3.16/Help/command/endif.rst b/share/cmake-3.17/Help/command/endif.rst
index fc4f038..fc4f038 100644
--- a/share/cmake-3.16/Help/command/endif.rst
+++ b/share/cmake-3.17/Help/command/endif.rst
diff --git a/share/cmake-3.16/Help/command/endmacro.rst b/share/cmake-3.17/Help/command/endmacro.rst
index 4290ba7..4290ba7 100644
--- a/share/cmake-3.16/Help/command/endmacro.rst
+++ b/share/cmake-3.17/Help/command/endmacro.rst
diff --git a/share/cmake-3.16/Help/command/endwhile.rst b/share/cmake-3.17/Help/command/endwhile.rst
index 5ef585b..5ef585b 100644
--- a/share/cmake-3.16/Help/command/endwhile.rst
+++ b/share/cmake-3.17/Help/command/endwhile.rst
diff --git a/share/cmake-3.16/Help/command/exec_program.rst b/share/cmake-3.17/Help/command/exec_program.rst
index bc9b069..bc9b069 100644
--- a/share/cmake-3.16/Help/command/exec_program.rst
+++ b/share/cmake-3.17/Help/command/exec_program.rst
diff --git a/share/cmake-3.16/Help/command/execute_process.rst b/share/cmake-3.17/Help/command/execute_process.rst
index 14f879d..14f879d 100644
--- a/share/cmake-3.16/Help/command/execute_process.rst
+++ b/share/cmake-3.17/Help/command/execute_process.rst
diff --git a/share/cmake-3.16/Help/command/export.rst b/share/cmake-3.17/Help/command/export.rst
index 2ca7056..2ca7056 100644
--- a/share/cmake-3.16/Help/command/export.rst
+++ b/share/cmake-3.17/Help/command/export.rst
diff --git a/share/cmake-3.16/Help/command/export_library_dependencies.rst b/share/cmake-3.17/Help/command/export_library_dependencies.rst
index 9753abf..9753abf 100644
--- a/share/cmake-3.16/Help/command/export_library_dependencies.rst
+++ b/share/cmake-3.17/Help/command/export_library_dependencies.rst
diff --git a/share/cmake-3.17/Help/command/file.rst b/share/cmake-3.17/Help/command/file.rst
new file mode 100644
index 0000000..df7d8ba
--- /dev/null
+++ b/share/cmake-3.17/Help/command/file.rst
@@ -0,0 +1,848 @@
+file
+----
+
+File manipulation command.
+
+Synopsis
+^^^^^^^^
+
+.. parsed-literal::
+
+ `Reading`_
+ file(`READ`_ <filename> <out-var> [...])
+ file(`STRINGS`_ <filename> <out-var> [...])
+ file(`\<HASH\> <HASH_>`_ <filename> <out-var>)
+ file(`TIMESTAMP`_ <filename> <out-var> [...])
+ file(`GET_RUNTIME_DEPENDENCIES`_ [...])
+
+ `Writing`_
+ file({`WRITE`_ | `APPEND`_} <filename> <content>...)
+ file({`TOUCH`_ | `TOUCH_NOCREATE`_} [<file>...])
+ file(`GENERATE`_ OUTPUT <output-file> [...])
+
+ `Filesystem`_
+ file({`GLOB`_ | `GLOB_RECURSE`_} <out-var> [...] [<globbing-expr>...])
+ file(`RENAME`_ <oldname> <newname>)
+ file({`REMOVE`_ | `REMOVE_RECURSE`_ } [<files>...])
+ file(`MAKE_DIRECTORY`_ [<dir>...])
+ file({`COPY`_ | `INSTALL`_} <file>... DESTINATION <dir> [...])
+ file(`SIZE`_ <filename> <out-var>)
+ file(`READ_SYMLINK`_ <linkname> <out-var>)
+ file(`CREATE_LINK`_ <original> <linkname> [...])
+
+ `Path Conversion`_
+ file(`RELATIVE_PATH`_ <out-var> <directory> <file>)
+ file({`TO_CMAKE_PATH`_ | `TO_NATIVE_PATH`_} <path> <out-var>)
+
+ `Transfer`_
+ file(`DOWNLOAD`_ <url> <file> [...])
+ file(`UPLOAD`_ <file> <url> [...])
+
+ `Locking`_
+ file(`LOCK`_ <path> [...])
+
+Reading
+^^^^^^^
+
+.. _READ:
+
+.. code-block:: cmake
+
+ file(READ <filename> <variable>
+ [OFFSET <offset>] [LIMIT <max-in>] [HEX])
+
+Read content from a file called ``<filename>`` and store it in a
+``<variable>``. Optionally start from the given ``<offset>`` and
+read at most ``<max-in>`` bytes. The ``HEX`` option causes data to
+be converted to a hexadecimal representation (useful for binary data).
+
+.. _STRINGS:
+
+.. code-block:: cmake
+
+ file(STRINGS <filename> <variable> [<options>...])
+
+Parse a list of ASCII strings from ``<filename>`` and store it in
+``<variable>``. Binary data in the file are ignored. Carriage return
+(``\r``, CR) characters are ignored. The options are:
+
+``LENGTH_MAXIMUM <max-len>``
+ Consider only strings of at most a given length.
+
+``LENGTH_MINIMUM <min-len>``
+ Consider only strings of at least a given length.
+
+``LIMIT_COUNT <max-num>``
+ Limit the number of distinct strings to be extracted.
+
+``LIMIT_INPUT <max-in>``
+ Limit the number of input bytes to read from the file.
+
+``LIMIT_OUTPUT <max-out>``
+ Limit the number of total bytes to store in the ``<variable>``.
+
+``NEWLINE_CONSUME``
+ Treat newline characters (``\n``, LF) as part of string content
+ instead of terminating at them.
+
+``NO_HEX_CONVERSION``
+ Intel Hex and Motorola S-record files are automatically converted to
+ binary while reading unless this option is given.
+
+``REGEX <regex>``
+ Consider only strings that match the given regular expression.
+
+``ENCODING <encoding-type>``
+ Consider strings of a given encoding. Currently supported encodings are:
+ UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE. If the ENCODING option
+ is not provided and the file has a Byte Order Mark, the ENCODING option
+ will be defaulted to respect the Byte Order Mark.
+
+For example, the code
+
+.. code-block:: cmake
+
+ file(STRINGS myfile.txt myfile)
+
+stores a list in the variable ``myfile`` in which each item is a line
+from the input file.
+
+.. _HASH:
+
+.. code-block:: cmake
+
+ file(<HASH> <filename> <variable>)
+
+Compute a cryptographic hash of the content of ``<filename>`` and
+store it in a ``<variable>``. The supported ``<HASH>`` algorithm names
+are those listed by the :ref:`string(\<HASH\>) <Supported Hash Algorithms>`
+command.
+
+.. _TIMESTAMP:
+
+.. code-block:: cmake
+
+ file(TIMESTAMP <filename> <variable> [<format>] [UTC])
+
+Compute a string representation of the modification time of ``<filename>``
+and store it in ``<variable>``. Should the command be unable to obtain a
+timestamp variable will be set to the empty string ("").
+
+See the :command:`string(TIMESTAMP)` command for documentation of
+the ``<format>`` and ``UTC`` options.
+
+.. _GET_RUNTIME_DEPENDENCIES:
+
+.. code-block:: cmake
+
+ file(GET_RUNTIME_DEPENDENCIES
+ [RESOLVED_DEPENDENCIES_VAR <deps_var>]
+ [UNRESOLVED_DEPENDENCIES_VAR <unresolved_deps_var>]
+ [CONFLICTING_DEPENDENCIES_PREFIX <conflicting_deps_prefix>]
+ [EXECUTABLES [<executable_files>...]]
+ [LIBRARIES [<library_files>...]]
+ [MODULES [<module_files>...]]
+ [DIRECTORIES [<directories>...]]
+ [BUNDLE_EXECUTABLE <bundle_executable_file>]
+ [PRE_INCLUDE_REGEXES [<regexes>...]]
+ [PRE_EXCLUDE_REGEXES [<regexes>...]]
+ [POST_INCLUDE_REGEXES [<regexes>...]]
+ [POST_EXCLUDE_REGEXES [<regexes>...]]
+ )
+
+Recursively get the list of libraries depended on by the given files.
+
+Please note that this sub-command is not intended to be used in project mode.
+Instead, use it in an :command:`install(CODE)` or :command:`install(SCRIPT)`
+block. For example:
+
+.. code-block:: cmake
+
+ install(CODE [[
+ file(GET_RUNTIME_DEPENDENCIES
+ # ...
+ )
+ ]])
+
+The arguments are as follows:
+
+``RESOLVED_DEPENDENCIES_VAR <deps_var>``
+ Name of the variable in which to store the list of resolved dependencies.
+
+``UNRESOLVED_DEPENDENCIES_VAR <unresolved_deps_var>``
+ Name of the variable in which to store the list of unresolved dependencies.
+ If this variable is not specified, and there are any unresolved dependencies,
+ an error is issued.
+
+``CONFLICTING_DEPENDENCIES_PREFIX <conflicting_deps_prefix>``
+ Variable prefix in which to store conflicting dependency information.
+ Dependencies are conflicting if two files with the same name are found in
+ two different directories. The list of filenames that conflict are stored in
+ ``<conflicting_deps_prefix>_FILENAMES``. For each filename, the list of paths
+ that were found for that filename are stored in
+ ``<conflicting_deps_prefix>_<filename>``.
+
+``EXECUTABLES <executable_files>``
+ List of executable files to read for dependencies. These are executables that
+ are typically created with :command:`add_executable`, but they do not have to
+ be created by CMake. On Apple platforms, the paths to these files determine
+ the value of ``@executable_path`` when recursively resolving the libraries.
+ Specifying any kind of library (``STATIC``, ``MODULE``, or ``SHARED``) here
+ will result in undefined behavior.
+
+``LIBRARIES <library_files>``
+ List of library files to read for dependencies. These are libraries that are
+ typically created with :command:`add_library(SHARED)`, but they do not have
+ to be created by CMake. Specifying ``STATIC`` libraries, ``MODULE``
+ libraries, or executables here will result in undefined behavior.
+
+``MODULES <module_files>``
+ List of loadable module files to read for dependencies. These are modules
+ that are typically created with :command:`add_library(MODULE)`, but they do
+ not have to be created by CMake. They are typically used by calling
+ ``dlopen()`` at runtime rather than linked at link time with ``ld -l``.
+ Specifying ``STATIC`` libraries, ``SHARED`` libraries, or executables here
+ will result in undefined behavior.
+
+``DIRECTORIES <directories>``
+ List of additional directories to search for dependencies. On Linux
+ platforms, these directories are searched if the dependency is not found in
+ any of the other usual paths. If it is found in such a directory, a warning
+ is issued, because it means that the file is incomplete (it does not list all
+ of the directories that contain its dependencies). On Windows platforms,
+ these directories are searched if the dependency is not found in any of the
+ other search paths, but no warning is issued, because searching other paths
+ is a normal part of Windows dependency resolution. On Apple platforms, this
+ argument has no effect.
+
+``BUNDLE_EXECUTABLE <bundle_executable_file>``
+ Executable to treat as the "bundle executable" when resolving libraries. On
+ Apple platforms, this argument determines the value of ``@executable_path``
+ when recursively resolving libraries for ``LIBRARIES`` and ``MODULES`` files.
+ It has no effect on ``EXECUTABLES`` files. On other platforms, it has no
+ effect. This is typically (but not always) one of the executables in the
+ ``EXECUTABLES`` argument which designates the "main" executable of the
+ package.
+
+The following arguments specify filters for including or excluding libraries to
+be resolved. See below for a full description of how they work.
+
+``PRE_INCLUDE_REGEXES <regexes>``
+ List of pre-include regexes through which to filter the names of
+ not-yet-resolved dependencies.
+
+``PRE_EXCLUDE_REGEXES <regexes>``
+ List of pre-exclude regexes through which to filter the names of
+ not-yet-resolved dependencies.
+
+``POST_INCLUDE_REGEXES <regexes>``
+ List of post-include regexes through which to filter the names of resolved
+ dependencies.
+
+``POST_EXCLUDE_REGEXES <regexes>``
+ List of post-exclude regexes through which to filter the names of resolved
+ dependencies.
+
+These arguments can be used to blacklist unwanted system libraries when
+resolving the dependencies, or to whitelist libraries from a specific
+directory. The filtering works as follows:
+
+1. If the not-yet-resolved dependency matches any of the
+ ``PRE_INCLUDE_REGEXES``, steps 2 and 3 are skipped, and the dependency
+ resolution proceeds to step 4.
+2. If the not-yet-resolved dependency matches any of the
+ ``PRE_EXCLUDE_REGEXES``, dependency resolution stops for that dependency.
+3. Otherwise, dependency resolution proceeds.
+4. ``file(GET_RUNTIME_DEPENDENCIES)`` searches for the dependency according to
+ the linking rules of the platform (see below).
+5. If the dependency is found, and its full path matches one of the
+ ``POST_INCLUDE_REGEXES``, the full path is added to the resolved
+ dependencies, and ``file(GET_RUNTIME_DEPENDENCIES)`` recursively resolves
+ that library's own dependencies. Otherwise, resolution proceeds to step 6.
+6. If the dependency is found, but its full path matches one of the
+ ``POST_EXCLUDE_REGEXES``, it is not added to the resolved dependencies, and
+ dependency resolution stops for that dependency.
+7. If the dependency is found, and its full path does not match either
+ ``POST_INCLUDE_REGEXES`` or ``POST_EXCLUDE_REGEXES``, the full path is added
+ to the resolved dependencies, and ``file(GET_RUNTIME_DEPENDENCIES)``
+ recursively resolves that library's own dependencies.
+
+Different platforms have different rules for how dependencies are resolved.
+These specifics are described here.
+
+On Linux platforms, library resolution works as follows:
+
+1. If the depending file does not have any ``RUNPATH`` entries, and the library
+ exists in one of the depending file's ``RPATH`` entries, or its parents', in
+ that order, the dependency is resolved to that file.
+2. Otherwise, if the depending file has any ``RUNPATH`` entries, and the
+ library exists in one of those entries, the dependency is resolved to that
+ file.
+3. Otherwise, if the library exists in one of the directories listed by
+ ``ldconfig``, the dependency is resolved to that file.
+4. Otherwise, if the library exists in one of the ``DIRECTORIES`` entries, the
+ dependency is resolved to that file. In this case, a warning is issued,
+ because finding a file in one of the ``DIRECTORIES`` means that the
+ depending file is not complete (it does not list all the directories from
+ which it pulls dependencies).
+5. Otherwise, the dependency is unresolved.
+
+On Windows platforms, library resolution works as follows:
+
+1. The dependent DLL name is converted to lowercase. Windows DLL names are
+ case-insensitive, and some linkers mangle the case of the DLL dependency
+ names. However, this makes it more difficult for ``PRE_INCLUDE_REGEXES``,
+ ``PRE_EXCLUDE_REGEXES``, ``POST_INCLUDE_REGEXES``, and
+ ``POST_EXCLUDE_REGEXES`` to properly filter DLL names - every regex would
+ have to check for both uppercase and lowercase letters. For example:
+
+ .. code-block:: cmake
+
+ file(GET_RUNTIME_DEPENDENCIES
+ # ...
+ PRE_INCLUDE_REGEXES "^[Mm][Yy][Ll][Ii][Bb][Rr][Aa][Rr][Yy]\\.[Dd][Ll][Ll]$"
+ )
+
+ Converting the DLL name to lowercase allows the regexes to only match
+ lowercase names, thus simplifying the regex. For example:
+
+ .. code-block:: cmake
+
+ file(GET_RUNTIME_DEPENDENCIES
+ # ...
+ PRE_INCLUDE_REGEXES "^mylibrary\\.dll$"
+ )
+
+ This regex will match ``mylibrary.dll`` regardless of how it is cased,
+ either on disk or in the depending file. (For example, it will match
+ ``mylibrary.dll``, ``MyLibrary.dll``, and ``MYLIBRARY.DLL``.)
+
+ Please note that the directory portion of any resolved DLLs retains its
+ casing and is not converted to lowercase. Only the filename portion is
+ converted.
+
+2. (**Not yet implemented**) If the depending file is a Windows Store app, and
+ the dependency is listed as a dependency in the application's package
+ manifest, the dependency is resolved to that file.
+3. Otherwise, if the library exists in the same directory as the depending
+ file, the dependency is resolved to that file.
+4. Otherwise, if the library exists in either the operating system's
+ ``system32`` directory or the ``Windows`` directory, in that order, the
+ dependency is resolved to that file.
+5. Otherwise, if the library exists in one of the directories specified by
+ ``DIRECTORIES``, in the order they are listed, the dependency is resolved to
+ that file. In this case, a warning is not issued, because searching other
+ directories is a normal part of Windows library resolution.
+6. Otherwise, the dependency is unresolved.
+
+On Apple platforms, library resolution works as follows:
+
+1. If the dependency starts with ``@executable_path/``, and an ``EXECUTABLES``
+ argument is in the process of being resolved, and replacing
+ ``@executable_path/`` with the directory of the executable yields an
+ existing file, the dependency is resolved to that file.
+2. Otherwise, if the dependency starts with ``@executable_path/``, and there is
+ a ``BUNDLE_EXECUTABLE`` argument, and replacing ``@executable_path/`` with
+ the directory of the bundle executable yields an existing file, the
+ dependency is resolved to that file.
+3. Otherwise, if the dependency starts with ``@loader_path/``, and replacing
+ ``@loader_path/`` with the directory of the depending file yields an
+ existing file, the dependency is resolved to that file.
+4. Otherwise, if the dependency starts with ``@rpath/``, and replacing
+ ``@rpath/`` with one of the ``RPATH`` entries of the depending file yields
+ an existing file, the dependency is resolved to that file. Note that
+ ``RPATH`` entries that start with ``@executable_path/`` or ``@loader_path/``
+ also have these items replaced with the appropriate path.
+5. Otherwise, if the dependency is an absolute file that exists, the dependency
+ is resolved to that file.
+6. Otherwise, the dependency is unresolved.
+
+This function accepts several variables that determine which tool is used for
+dependency resolution:
+
+.. variable:: CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM
+
+ Determines which operating system and executable format the files are built
+ for. This could be one of several values:
+
+ * ``linux+elf``
+ * ``windows+pe``
+ * ``macos+macho``
+
+ If this variable is not specified, it is determined automatically by system
+ introspection.
+
+.. variable:: CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL
+
+ Determines the tool to use for dependency resolution. It could be one of
+ several values, depending on the value of
+ :variable:`CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM`:
+
+ ================================================= =============================================
+ ``CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM`` ``CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL``
+ ================================================= =============================================
+ ``linux+elf`` ``objdump``
+ ``windows+pe`` ``dumpbin``
+ ``windows+pe`` ``objdump``
+ ``macos+macho`` ``otool``
+ ================================================= =============================================
+
+ If this variable is not specified, it is determined automatically by system
+ introspection.
+
+.. variable:: CMAKE_GET_RUNTIME_DEPENDENCIES_COMMAND
+
+ Determines the path to the tool to use for dependency resolution. This is the
+ actual path to ``objdump``, ``dumpbin``, or ``otool``.
+
+ If this variable is not specified, it is determined automatically by system
+ introspection.
+
+Writing
+^^^^^^^
+
+.. _WRITE:
+.. _APPEND:
+
+.. code-block:: cmake
+
+ file(WRITE <filename> <content>...)
+ file(APPEND <filename> <content>...)
+
+Write ``<content>`` into a file called ``<filename>``. If the file does
+not exist, it will be created. If the file already exists, ``WRITE``
+mode will overwrite it and ``APPEND`` mode will append to the end.
+Any directories in the path specified by ``<filename>`` that do not
+exist will be created.
+
+If the file is a build input, use the :command:`configure_file` command
+to update the file only when its content changes.
+
+.. _TOUCH:
+.. _TOUCH_NOCREATE:
+
+.. code-block:: cmake
+
+ file(TOUCH [<files>...])
+ file(TOUCH_NOCREATE [<files>...])
+
+Create a file with no content if it does not yet exist. If the file already
+exists, its access and/or modification will be updated to the time when the
+function call is executed.
+
+Use TOUCH_NOCREATE to touch a file if it exists but not create it. If a file
+does not exist it will be silently ignored.
+
+With TOUCH and TOUCH_NOCREATE the contents of an existing file will not be
+modified.
+
+.. _GENERATE:
+
+.. code-block:: cmake
+
+ file(GENERATE OUTPUT output-file
+ <INPUT input-file|CONTENT content>
+ [CONDITION expression])
+
+Generate an output file for each build configuration supported by the current
+:manual:`CMake Generator <cmake-generators(7)>`. Evaluate
+:manual:`generator expressions <cmake-generator-expressions(7)>`
+from the input content to produce the output content. The options are:
+
+``CONDITION <condition>``
+ Generate the output file for a particular configuration only if
+ the condition is true. The condition must be either ``0`` or ``1``
+ after evaluating generator expressions.
+
+``CONTENT <content>``
+ Use the content given explicitly as input.
+
+``INPUT <input-file>``
+ Use the content from a given file as input.
+ A relative path is treated with respect to the value of
+ :variable:`CMAKE_CURRENT_SOURCE_DIR`. See policy :policy:`CMP0070`.
+
+``OUTPUT <output-file>``
+ Specify the output file name to generate. Use generator expressions
+ such as ``$<CONFIG>`` to specify a configuration-specific output file
+ name. Multiple configurations may generate the same output file only
+ if the generated content is identical. Otherwise, the ``<output-file>``
+ must evaluate to an unique name for each configuration.
+ A relative path (after evaluating generator expressions) is treated
+ with respect to the value of :variable:`CMAKE_CURRENT_BINARY_DIR`.
+ See policy :policy:`CMP0070`.
+
+Exactly one ``CONTENT`` or ``INPUT`` option must be given. A specific
+``OUTPUT`` file may be named by at most one invocation of ``file(GENERATE)``.
+Generated files are modified and their timestamp updated on subsequent cmake
+runs only if their content is changed.
+
+Note also that ``file(GENERATE)`` does not create the output file until the
+generation phase. The output file will not yet have been written when the
+``file(GENERATE)`` command returns, it is written only after processing all
+of a project's ``CMakeLists.txt`` files.
+
+Filesystem
+^^^^^^^^^^
+
+.. _GLOB:
+.. _GLOB_RECURSE:
+
+.. code-block:: cmake
+
+ file(GLOB <variable>
+ [LIST_DIRECTORIES true|false] [RELATIVE <path>] [CONFIGURE_DEPENDS]
+ [<globbing-expressions>...])
+ file(GLOB_RECURSE <variable> [FOLLOW_SYMLINKS]
+ [LIST_DIRECTORIES true|false] [RELATIVE <path>] [CONFIGURE_DEPENDS]
+ [<globbing-expressions>...])
+
+Generate a list of files that match the ``<globbing-expressions>`` and
+store it into the ``<variable>``. Globbing expressions are similar to
+regular expressions, but much simpler. If ``RELATIVE`` flag is
+specified, the results will be returned as relative paths to the given
+path. The results will be ordered lexicographically.
+
+On Windows and macOS, globbing is case-insensitive even if the underlying
+filesystem is case-sensitive (both filenames and globbing expressions are
+converted to lowercase before matching). On other platforms, globbing is
+case-sensitive.
+
+If the ``CONFIGURE_DEPENDS`` flag is specified, CMake will add logic
+to the main build system check target to rerun the flagged ``GLOB`` commands
+at build time. If any of the outputs change, CMake will regenerate the build
+system.
+
+By default ``GLOB`` lists directories - directories are omitted in result if
+``LIST_DIRECTORIES`` is set to false.
+
+.. note::
+ We do not recommend using GLOB to collect a list of source files from
+ your source tree. If no CMakeLists.txt file changes when a source is
+ added or removed then the generated build system cannot know when to
+ ask CMake to regenerate.
+ The ``CONFIGURE_DEPENDS`` flag may not work reliably on all generators, or if
+ a new generator is added in the future that cannot support it, projects using
+ it will be stuck. Even if ``CONFIGURE_DEPENDS`` works reliably, there is
+ still a cost to perform the check on every rebuild.
+
+Examples of globbing expressions include::
+
+ *.cxx - match all files with extension cxx
+ *.vt? - match all files with extension vta,...,vtz
+ f[3-5].txt - match files f3.txt, f4.txt, f5.txt
+
+The ``GLOB_RECURSE`` mode will traverse all the subdirectories of the
+matched directory and match the files. Subdirectories that are symlinks
+are only traversed if ``FOLLOW_SYMLINKS`` is given or policy
+:policy:`CMP0009` is not set to ``NEW``.
+
+By default ``GLOB_RECURSE`` omits directories from result list - setting
+``LIST_DIRECTORIES`` to true adds directories to result list.
+If ``FOLLOW_SYMLINKS`` is given or policy :policy:`CMP0009` is not set to
+``NEW`` then ``LIST_DIRECTORIES`` treats symlinks as directories.
+
+Examples of recursive globbing include::
+
+ /dir/*.py - match all python files in /dir and subdirectories
+
+.. _RENAME:
+
+.. code-block:: cmake
+
+ file(RENAME <oldname> <newname>)
+
+Move a file or directory within a filesystem from ``<oldname>`` to
+``<newname>``, replacing the destination atomically.
+
+.. _REMOVE:
+.. _REMOVE_RECURSE:
+
+.. code-block:: cmake
+
+ file(REMOVE [<files>...])
+ file(REMOVE_RECURSE [<files>...])
+
+Remove the given files. The ``REMOVE_RECURSE`` mode will remove the given
+files and directories, also non-empty directories. No error is emitted if a
+given file does not exist. Relative input paths are evaluated with respect
+to the current source directory. Empty input paths are ignored with a warning.
+
+.. _MAKE_DIRECTORY:
+
+.. code-block:: cmake
+
+ file(MAKE_DIRECTORY [<directories>...])
+
+Create the given directories and their parents as needed.
+
+.. _COPY:
+.. _INSTALL:
+
+.. code-block:: cmake
+
+ file(<COPY|INSTALL> <files>... DESTINATION <dir>
+ [FILE_PERMISSIONS <permissions>...]
+ [DIRECTORY_PERMISSIONS <permissions>...]
+ [NO_SOURCE_PERMISSIONS] [USE_SOURCE_PERMISSIONS]
+ [FOLLOW_SYMLINK_CHAIN]
+ [FILES_MATCHING]
+ [[PATTERN <pattern> | REGEX <regex>]
+ [EXCLUDE] [PERMISSIONS <permissions>...]] [...])
+
+The ``COPY`` signature copies files, directories, and symlinks to a
+destination folder. Relative input paths are evaluated with respect
+to the current source directory, and a relative destination is
+evaluated with respect to the current build directory. Copying
+preserves input file timestamps, and optimizes out a file if it exists
+at the destination with the same timestamp. Copying preserves input
+permissions unless explicit permissions or ``NO_SOURCE_PERMISSIONS``
+are given (default is ``USE_SOURCE_PERMISSIONS``).
+
+If ``FOLLOW_SYMLINK_CHAIN`` is specified, ``COPY`` will recursively resolve
+the symlinks at the paths given until a real file is found, and install
+a corresponding symlink in the destination for each symlink encountered. For
+each symlink that is installed, the resolution is stripped of the directory,
+leaving only the filename, meaning that the new symlink points to a file in
+the same directory as the symlink. This feature is useful on some Unix systems,
+where libraries are installed as a chain of symlinks with version numbers, with
+less specific versions pointing to more specific versions.
+``FOLLOW_SYMLINK_CHAIN`` will install all of these symlinks and the library
+itself into the destination directory. For example, if you have the following
+directory structure:
+
+* ``/opt/foo/lib/libfoo.so.1.2.3``
+* ``/opt/foo/lib/libfoo.so.1.2 -> libfoo.so.1.2.3``
+* ``/opt/foo/lib/libfoo.so.1 -> libfoo.so.1.2``
+* ``/opt/foo/lib/libfoo.so -> libfoo.so.1``
+
+and you do:
+
+.. code-block:: cmake
+
+ file(COPY /opt/foo/lib/libfoo.so DESTINATION lib FOLLOW_SYMLINK_CHAIN)
+
+This will install all of the symlinks and ``libfoo.so.1.2.3`` itself into
+``lib``.
+
+See the :command:`install(DIRECTORY)` command for documentation of
+permissions, ``FILES_MATCHING``, ``PATTERN``, ``REGEX``, and
+``EXCLUDE`` options. Copying directories preserves the structure
+of their content even if options are used to select a subset of
+files.
+
+The ``INSTALL`` signature differs slightly from ``COPY``: it prints
+status messages (subject to the :variable:`CMAKE_INSTALL_MESSAGE` variable),
+and ``NO_SOURCE_PERMISSIONS`` is default.
+Installation scripts generated by the :command:`install` command
+use this signature (with some undocumented options for internal use).
+
+.. _SIZE:
+
+.. code-block:: cmake
+
+ file(SIZE <filename> <variable>)
+
+Determine the file size of the ``<filename>`` and put the result in
+``<variable>`` variable. Requires that ``<filename>`` is a valid path
+pointing to a file and is readable.
+
+.. _READ_SYMLINK:
+
+.. code-block:: cmake
+
+ file(READ_SYMLINK <linkname> <variable>)
+
+This subcommand queries the symlink ``<linkname>`` and stores the path it
+points to in the result ``<variable>``. If ``<linkname>`` does not exist or
+is not a symlink, CMake issues a fatal error.
+
+Note that this command returns the raw symlink path and does not resolve
+a relative path. The following is an example of how to ensure that an
+absolute path is obtained:
+
+.. code-block:: cmake
+
+ set(linkname "/path/to/foo.sym")
+ file(READ_SYMLINK "${linkname}" result)
+ if(NOT IS_ABSOLUTE "${result}")
+ get_filename_component(dir "${linkname}" DIRECTORY)
+ set(result "${dir}/${result}")
+ endif()
+
+.. _CREATE_LINK:
+
+.. code-block:: cmake
+
+ file(CREATE_LINK <original> <linkname>
+ [RESULT <result>] [COPY_ON_ERROR] [SYMBOLIC])
+
+Create a link ``<linkname>`` that points to ``<original>``.
+It will be a hard link by default, but providing the ``SYMBOLIC`` option
+results in a symbolic link instead. Hard links require that ``original``
+exists and is a file, not a directory. If ``<linkname>`` already exists,
+it will be overwritten.
+
+The ``<result>`` variable, if specified, receives the status of the operation.
+It is set to ``0`` upon success or an error message otherwise. If ``RESULT``
+is not specified and the operation fails, a fatal error is emitted.
+
+Specifying ``COPY_ON_ERROR`` enables copying the file as a fallback if
+creating the link fails. It can be useful for handling situations such as
+``<original>`` and ``<linkname>`` being on different drives or mount points,
+which would make them unable to support a hard link.
+
+Path Conversion
+^^^^^^^^^^^^^^^
+
+.. _RELATIVE_PATH:
+
+.. code-block:: cmake
+
+ file(RELATIVE_PATH <variable> <directory> <file>)
+
+Compute the relative path from a ``<directory>`` to a ``<file>`` and
+store it in the ``<variable>``.
+
+.. _TO_CMAKE_PATH:
+.. _TO_NATIVE_PATH:
+
+.. code-block:: cmake
+
+ file(TO_CMAKE_PATH "<path>" <variable>)
+ file(TO_NATIVE_PATH "<path>" <variable>)
+
+The ``TO_CMAKE_PATH`` mode converts a native ``<path>`` into a cmake-style
+path with forward-slashes (``/``). The input can be a single path or a
+system search path like ``$ENV{PATH}``. A search path will be converted
+to a cmake-style list separated by ``;`` characters.
+
+The ``TO_NATIVE_PATH`` mode converts a cmake-style ``<path>`` into a native
+path with platform-specific slashes (``\`` on Windows and ``/`` elsewhere).
+
+Always use double quotes around the ``<path>`` to be sure it is treated
+as a single argument to this command.
+
+Transfer
+^^^^^^^^
+
+.. _DOWNLOAD:
+.. _UPLOAD:
+
+.. code-block:: cmake
+
+ file(DOWNLOAD <url> <file> [<options>...])
+ file(UPLOAD <file> <url> [<options>...])
+
+The ``DOWNLOAD`` mode downloads the given ``<url>`` to a local ``<file>``.
+The ``UPLOAD`` mode uploads a local ``<file>`` to a given ``<url>``.
+
+Options to both ``DOWNLOAD`` and ``UPLOAD`` are:
+
+``INACTIVITY_TIMEOUT <seconds>``
+ Terminate the operation after a period of inactivity.
+
+``LOG <variable>``
+ Store a human-readable log of the operation in a variable.
+
+``SHOW_PROGRESS``
+ Print progress information as status messages until the operation is
+ complete.
+
+``STATUS <variable>``
+ Store the resulting status of the operation in a variable.
+ The status is a ``;`` separated list of length 2.
+ The first element is the numeric return value for the operation,
+ and the second element is a string value for the error.
+ A ``0`` numeric error means no error in the operation.
+
+``TIMEOUT <seconds>``
+ Terminate the operation after a given total time has elapsed.
+
+``USERPWD <username>:<password>``
+ Set username and password for operation.
+
+``HTTPHEADER <HTTP-header>``
+ HTTP header for operation. Suboption can be repeated several times.
+
+``NETRC <level>``
+ Specify whether the .netrc file is to be used for operation. If this
+ option is not specified, the value of the ``CMAKE_NETRC`` variable
+ will be used instead.
+ Valid levels are:
+
+ ``IGNORED``
+ The .netrc file is ignored.
+ This is the default.
+ ``OPTIONAL``
+ The .netrc file is optional, and information in the URL is preferred.
+ The file will be scanned to find which ever information is not specified
+ in the URL.
+ ``REQUIRED``
+ The .netrc file is required, and information in the URL is ignored.
+
+``NETRC_FILE <file>``
+ Specify an alternative .netrc file to the one in your home directory,
+ if the ``NETRC`` level is ``OPTIONAL`` or ``REQUIRED``. If this option
+ is not specified, the value of the ``CMAKE_NETRC_FILE`` variable will
+ be used instead.
+
+If neither ``NETRC`` option is given CMake will check variables
+``CMAKE_NETRC`` and ``CMAKE_NETRC_FILE``, respectively.
+
+Additional options to ``DOWNLOAD`` are:
+
+``EXPECTED_HASH ALGO=<value>``
+
+ Verify that the downloaded content hash matches the expected value, where
+ ``ALGO`` is one of the algorithms supported by ``file(<HASH>)``.
+ If it does not match, the operation fails with an error.
+
+``EXPECTED_MD5 <value>``
+ Historical short-hand for ``EXPECTED_HASH MD5=<value>``.
+
+``TLS_VERIFY <ON|OFF>``
+ Specify whether to verify the server certificate for ``https://`` URLs.
+ The default is to *not* verify.
+
+``TLS_CAINFO <file>``
+ Specify a custom Certificate Authority file for ``https://`` URLs.
+
+For ``https://`` URLs CMake must be built with OpenSSL support. ``TLS/SSL``
+certificates are not checked by default. Set ``TLS_VERIFY`` to ``ON`` to
+check certificates and/or use ``EXPECTED_HASH`` to verify downloaded content.
+If neither ``TLS`` option is given CMake will check variables
+``CMAKE_TLS_VERIFY`` and ``CMAKE_TLS_CAINFO``, respectively.
+
+Locking
+^^^^^^^
+
+.. _LOCK:
+
+.. code-block:: cmake
+
+ file(LOCK <path> [DIRECTORY] [RELEASE]
+ [GUARD <FUNCTION|FILE|PROCESS>]
+ [RESULT_VARIABLE <variable>]
+ [TIMEOUT <seconds>])
+
+Lock a file specified by ``<path>`` if no ``DIRECTORY`` option present and file
+``<path>/cmake.lock`` otherwise. File will be locked for scope defined by
+``GUARD`` option (default value is ``PROCESS``). ``RELEASE`` option can be used
+to unlock file explicitly. If option ``TIMEOUT`` is not specified CMake will
+wait until lock succeed or until fatal error occurs. If ``TIMEOUT`` is set to
+``0`` lock will be tried once and result will be reported immediately. If
+``TIMEOUT`` is not ``0`` CMake will try to lock file for the period specified
+by ``<seconds>`` value. Any errors will be interpreted as fatal if there is no
+``RESULT_VARIABLE`` option. Otherwise result will be stored in ``<variable>``
+and will be ``0`` on success or error message on failure.
+
+Note that lock is advisory - there is no guarantee that other processes will
+respect this lock, i.e. lock synchronize two or more CMake instances sharing
+some modifiable resources. Similar logic applied to ``DIRECTORY`` option -
+locking parent directory doesn't prevent other ``LOCK`` commands to lock any
+child directory or file.
+
+Trying to lock file twice is not allowed. Any intermediate directories and
+file itself will be created if they not exist. ``GUARD`` and ``TIMEOUT``
+options ignored on ``RELEASE`` operation.
diff --git a/share/cmake-3.16/Help/command/find_file.rst b/share/cmake-3.17/Help/command/find_file.rst
index 3f03f37..3f03f37 100644
--- a/share/cmake-3.16/Help/command/find_file.rst
+++ b/share/cmake-3.17/Help/command/find_file.rst
diff --git a/share/cmake-3.16/Help/command/find_library.rst b/share/cmake-3.17/Help/command/find_library.rst
index 8a55aca..8a55aca 100644
--- a/share/cmake-3.16/Help/command/find_library.rst
+++ b/share/cmake-3.17/Help/command/find_library.rst
diff --git a/share/cmake-3.16/Help/command/find_package.rst b/share/cmake-3.17/Help/command/find_package.rst
index 64a16f3..64a16f3 100644
--- a/share/cmake-3.16/Help/command/find_package.rst
+++ b/share/cmake-3.17/Help/command/find_package.rst
diff --git a/share/cmake-3.16/Help/command/find_path.rst b/share/cmake-3.17/Help/command/find_path.rst
index 52ffe3c..52ffe3c 100644
--- a/share/cmake-3.16/Help/command/find_path.rst
+++ b/share/cmake-3.17/Help/command/find_path.rst
diff --git a/share/cmake-3.16/Help/command/find_program.rst b/share/cmake-3.17/Help/command/find_program.rst
index e2ff693..e2ff693 100644
--- a/share/cmake-3.16/Help/command/find_program.rst
+++ b/share/cmake-3.17/Help/command/find_program.rst
diff --git a/share/cmake-3.16/Help/command/fltk_wrap_ui.rst b/share/cmake-3.17/Help/command/fltk_wrap_ui.rst
index 6675272..6675272 100644
--- a/share/cmake-3.16/Help/command/fltk_wrap_ui.rst
+++ b/share/cmake-3.17/Help/command/fltk_wrap_ui.rst
diff --git a/share/cmake-3.17/Help/command/foreach.rst b/share/cmake-3.17/Help/command/foreach.rst
new file mode 100644
index 0000000..a01a104
--- /dev/null
+++ b/share/cmake-3.17/Help/command/foreach.rst
@@ -0,0 +1,127 @@
+foreach
+-------
+
+Evaluate a group of commands for each value in a list.
+
+.. code-block:: cmake
+
+ foreach(<loop_var> <items>)
+ <commands>
+ endforeach()
+
+where ``<items>`` is a list of items that are separated by
+semicolon or whitespace.
+All commands between ``foreach`` and the matching ``endforeach`` are recorded
+without being invoked. Once the ``endforeach`` is evaluated, the recorded
+list of commands is invoked once for each item in ``<items>``.
+At the beginning of each iteration the variable ``loop_var`` will be set
+to the value of the current item.
+
+The commands :command:`break` and :command:`continue` provide means to
+escape from the normal control flow.
+
+Per legacy, the :command:`endforeach` command admits
+an optional ``<loop_var>`` argument.
+If used, it must be a verbatim
+repeat of the argument of the opening
+``foreach`` command.
+
+.. code-block:: cmake
+
+ foreach(<loop_var> RANGE <stop>)
+
+In this variant, ``foreach`` iterates over the numbers
+0, 1, ... up to (and including) the nonnegative integer ``<stop>``.
+
+.. code-block:: cmake
+
+ foreach(<loop_var> RANGE <start> <stop> [<step>])
+
+In this variant, ``foreach`` iterates over the numbers from
+``<start>`` up to at most ``<stop>`` in steps of ``<step>``.
+If ``<step>`` is not specified, then the step size is 1.
+The three arguments ``<start>`` ``<stop>`` ``<step>`` must
+all be nonnegative integers, and ``<stop>`` must not be
+smaller than ``<start>``; otherwise you enter the danger zone
+of undocumented behavior that may change in future releases.
+
+.. code-block:: cmake
+
+ foreach(<loop_var> IN [LISTS [<lists>]] [ITEMS [<items>]])
+
+In this variant, ``<lists>`` is a whitespace or semicolon
+separated list of list-valued variables. The ``foreach``
+command iterates over each item in each given list.
+The ``<items>`` following the ``ITEMS`` keyword are processed
+as in the first variant of the ``foreach`` command.
+The forms ``LISTS A`` and ``ITEMS ${A}`` are
+equivalent.
+
+The following example shows how the ``LISTS`` option is
+processed:
+
+.. code-block:: cmake
+
+ set(A 0;1)
+ set(B 2 3)
+ set(C "4 5")
+ set(D 6;7 8)
+ set(E "")
+ foreach(X IN LISTS A B C D E)
+ message(STATUS "X=${X}")
+ endforeach()
+
+yields
+::
+
+ -- X=0
+ -- X=1
+ -- X=2
+ -- X=3
+ -- X=4 5
+ -- X=6
+ -- X=7
+ -- X=8
+
+
+.. code-block:: cmake
+
+ foreach(<loop_var>... IN ZIP_LISTS <lists>)
+
+In this variant, ``<lists>`` is a whitespace or semicolon
+separated list of list-valued variables. The ``foreach``
+command iterates over each list simultaneously setting the
+iteration variables as follows:
+
+- if the only ``loop_var`` given, then it sets a series of
+ ``loop_var_N`` variables to the current item from the
+ corresponding list;
+- if multiple variable names passed, their count should match
+ the lists variables count;
+- if any of the lists are shorter, the corresponding iteration
+ variable is not defined for the current iteration.
+
+.. code-block:: cmake
+
+ list(APPEND English one two three four)
+ list(APPEND Bahasa satu dua tiga)
+
+ foreach(num IN ZIP_LISTS English Bahasa)
+ message(STATUS "num_0=${num_0}, num_1=${num_1}")
+ endforeach()
+
+ foreach(en ba IN ZIP_LISTS English Bahasa)
+ message(STATUS "en=${en}, ba=${ba}")
+ endforeach()
+
+yields
+::
+
+ -- num_0=one, num_1=satu
+ -- num_0=two, num_1=dua
+ -- num_0=three, num_1=tiga
+ -- num_0=four, num_1=
+ -- en=one, ba=satu
+ -- en=two, ba=dua
+ -- en=three, ba=tiga
+ -- en=four, ba=
diff --git a/share/cmake-3.16/Help/command/function.rst b/share/cmake-3.17/Help/command/function.rst
index 53ba754..53ba754 100644
--- a/share/cmake-3.16/Help/command/function.rst
+++ b/share/cmake-3.17/Help/command/function.rst
diff --git a/share/cmake-3.16/Help/command/get_cmake_property.rst b/share/cmake-3.17/Help/command/get_cmake_property.rst
index 96764a3..96764a3 100644
--- a/share/cmake-3.16/Help/command/get_cmake_property.rst
+++ b/share/cmake-3.17/Help/command/get_cmake_property.rst
diff --git a/share/cmake-3.16/Help/command/get_directory_property.rst b/share/cmake-3.17/Help/command/get_directory_property.rst
index 218efa9..218efa9 100644
--- a/share/cmake-3.16/Help/command/get_directory_property.rst
+++ b/share/cmake-3.17/Help/command/get_directory_property.rst
diff --git a/share/cmake-3.16/Help/command/get_filename_component.rst b/share/cmake-3.17/Help/command/get_filename_component.rst
index 9bbf877..9bbf877 100644
--- a/share/cmake-3.16/Help/command/get_filename_component.rst
+++ b/share/cmake-3.17/Help/command/get_filename_component.rst
diff --git a/share/cmake-3.16/Help/command/get_property.rst b/share/cmake-3.17/Help/command/get_property.rst
index c0f9b46..c0f9b46 100644
--- a/share/cmake-3.16/Help/command/get_property.rst
+++ b/share/cmake-3.17/Help/command/get_property.rst
diff --git a/share/cmake-3.16/Help/command/get_source_file_property.rst b/share/cmake-3.17/Help/command/get_source_file_property.rst
index decec19..decec19 100644
--- a/share/cmake-3.16/Help/command/get_source_file_property.rst
+++ b/share/cmake-3.17/Help/command/get_source_file_property.rst
diff --git a/share/cmake-3.16/Help/command/get_target_property.rst b/share/cmake-3.17/Help/command/get_target_property.rst
index 11e07ea..11e07ea 100644
--- a/share/cmake-3.16/Help/command/get_target_property.rst
+++ b/share/cmake-3.17/Help/command/get_target_property.rst
diff --git a/share/cmake-3.16/Help/command/get_test_property.rst b/share/cmake-3.17/Help/command/get_test_property.rst
index e02b9bc..e02b9bc 100644
--- a/share/cmake-3.16/Help/command/get_test_property.rst
+++ b/share/cmake-3.17/Help/command/get_test_property.rst
diff --git a/share/cmake-3.16/Help/command/if.rst b/share/cmake-3.17/Help/command/if.rst
index be992df..be992df 100644
--- a/share/cmake-3.16/Help/command/if.rst
+++ b/share/cmake-3.17/Help/command/if.rst
diff --git a/share/cmake-3.16/Help/command/include.rst b/share/cmake-3.17/Help/command/include.rst
index 80968da..80968da 100644
--- a/share/cmake-3.16/Help/command/include.rst
+++ b/share/cmake-3.17/Help/command/include.rst
diff --git a/share/cmake-3.16/Help/command/include_directories.rst b/share/cmake-3.17/Help/command/include_directories.rst
index fe281c3..fe281c3 100644
--- a/share/cmake-3.16/Help/command/include_directories.rst
+++ b/share/cmake-3.17/Help/command/include_directories.rst
diff --git a/share/cmake-3.16/Help/command/include_external_msproject.rst b/share/cmake-3.17/Help/command/include_external_msproject.rst
index 540a13a..540a13a 100644
--- a/share/cmake-3.16/Help/command/include_external_msproject.rst
+++ b/share/cmake-3.17/Help/command/include_external_msproject.rst
diff --git a/share/cmake-3.16/Help/command/include_guard.rst b/share/cmake-3.17/Help/command/include_guard.rst
index 877aa86..877aa86 100644
--- a/share/cmake-3.16/Help/command/include_guard.rst
+++ b/share/cmake-3.17/Help/command/include_guard.rst
diff --git a/share/cmake-3.16/Help/command/include_regular_expression.rst b/share/cmake-3.17/Help/command/include_regular_expression.rst
index dde8378..dde8378 100644
--- a/share/cmake-3.16/Help/command/include_regular_expression.rst
+++ b/share/cmake-3.17/Help/command/include_regular_expression.rst
diff --git a/share/cmake-3.16/Help/command/install.rst b/share/cmake-3.17/Help/command/install.rst
index 5affc5b..5affc5b 100644
--- a/share/cmake-3.16/Help/command/install.rst
+++ b/share/cmake-3.17/Help/command/install.rst
diff --git a/share/cmake-3.16/Help/command/install_files.rst b/share/cmake-3.17/Help/command/install_files.rst
index ff074a8..ff074a8 100644
--- a/share/cmake-3.16/Help/command/install_files.rst
+++ b/share/cmake-3.17/Help/command/install_files.rst
diff --git a/share/cmake-3.16/Help/command/install_programs.rst b/share/cmake-3.17/Help/command/install_programs.rst
index fab6482..fab6482 100644
--- a/share/cmake-3.16/Help/command/install_programs.rst
+++ b/share/cmake-3.17/Help/command/install_programs.rst
diff --git a/share/cmake-3.16/Help/command/install_targets.rst b/share/cmake-3.17/Help/command/install_targets.rst
index c9efdce..c9efdce 100644
--- a/share/cmake-3.16/Help/command/install_targets.rst
+++ b/share/cmake-3.17/Help/command/install_targets.rst
diff --git a/share/cmake-3.16/Help/command/link_directories.rst b/share/cmake-3.17/Help/command/link_directories.rst
index 9cb8faa..9cb8faa 100644
--- a/share/cmake-3.16/Help/command/link_directories.rst
+++ b/share/cmake-3.17/Help/command/link_directories.rst
diff --git a/share/cmake-3.16/Help/command/link_libraries.rst b/share/cmake-3.17/Help/command/link_libraries.rst
index 8665cb7..8665cb7 100644
--- a/share/cmake-3.16/Help/command/link_libraries.rst
+++ b/share/cmake-3.17/Help/command/link_libraries.rst
diff --git a/share/cmake-3.16/Help/command/list.rst b/share/cmake-3.17/Help/command/list.rst
index 50bf417..50bf417 100644
--- a/share/cmake-3.16/Help/command/list.rst
+++ b/share/cmake-3.17/Help/command/list.rst
diff --git a/share/cmake-3.16/Help/command/load_cache.rst b/share/cmake-3.17/Help/command/load_cache.rst
index b89eb61..b89eb61 100644
--- a/share/cmake-3.16/Help/command/load_cache.rst
+++ b/share/cmake-3.17/Help/command/load_cache.rst
diff --git a/share/cmake-3.16/Help/command/load_command.rst b/share/cmake-3.17/Help/command/load_command.rst
index dc23599..dc23599 100644
--- a/share/cmake-3.16/Help/command/load_command.rst
+++ b/share/cmake-3.17/Help/command/load_command.rst
diff --git a/share/cmake-3.17/Help/command/macro.rst b/share/cmake-3.17/Help/command/macro.rst
new file mode 100644
index 0000000..3f6f2f9
--- /dev/null
+++ b/share/cmake-3.17/Help/command/macro.rst
@@ -0,0 +1,146 @@
+macro
+-----
+
+Start recording a macro for later invocation as a command
+
+.. code-block:: cmake
+
+ macro(<name> [<arg1> ...])
+ <commands>
+ endmacro()
+
+Defines a macro named ``<name>`` that takes arguments named
+``<arg1>``, ... Commands listed after macro, but before the
+matching :command:`endmacro()`, are not executed until the macro
+is invoked.
+
+Per legacy, the :command:`endmacro` command admits an optional
+``<name>`` argument. If used, it must be a verbatim repeat of the
+argument of the opening ``macro`` command.
+
+See the :command:`cmake_policy()` command documentation for the behavior
+of policies inside macros.
+
+See the :ref:`Macro vs Function` section below for differences
+between CMake macros and :command:`functions <function>`.
+
+Invocation
+^^^^^^^^^^
+
+The macro invocation is case-insensitive. A macro defined as
+
+.. code-block:: cmake
+
+ macro(foo)
+ <commands>
+ endmacro()
+
+can be invoked through any of
+
+.. code-block:: cmake
+
+ foo()
+ Foo()
+ FOO()
+
+and so on. However, it is strongly recommended to stay with the
+case chosen in the macro definition. Typically macros use
+all-lowercase names.
+
+Arguments
+^^^^^^^^^
+
+When a macro is invoked, the commands recorded in the macro are
+first modified by replacing formal parameters (``${arg1}``, ...)
+with the arguments passed, and then invoked as normal commands.
+
+In addition to referencing the formal parameters you can reference the
+values ``${ARGC}`` which will be set to the number of arguments passed
+into the function as well as ``${ARGV0}``, ``${ARGV1}``, ``${ARGV2}``,
+... which will have the actual values of the arguments passed in.
+This facilitates creating macros with optional arguments.
+
+Furthermore, ``${ARGV}`` holds the list of all arguments given to the
+macro and ``${ARGN}`` holds the list of arguments past the last expected
+argument.
+Referencing to ``${ARGV#}`` arguments beyond ``${ARGC}`` have undefined
+behavior. Checking that ``${ARGC}`` is greater than ``#`` is the only
+way to ensure that ``${ARGV#}`` was passed to the function as an extra
+argument.
+
+.. _`Macro vs Function`:
+
+Macro vs Function
+^^^^^^^^^^^^^^^^^
+
+The ``macro`` command is very similar to the :command:`function` command.
+Nonetheless, there are a few important differences.
+
+In a function, ``ARGN``, ``ARGC``, ``ARGV`` and ``ARGV0``, ``ARGV1``, ...
+are true variables in the usual CMake sense. In a macro, they are not,
+they are string replacements much like the C preprocessor would do
+with a macro. This has a number of consequences, as explained in
+the :ref:`Argument Caveats` section below.
+
+Another difference between macros and functions is the control flow.
+A function is executed by transferring control from the calling
+statement to the function body. A macro is executed as if the macro
+body were pasted in place of the calling statement. This has the
+consequence that a :command:`return()` in a macro body does not
+just terminate execution of the macro; rather, control is returned
+from the scope of the macro call. To avoid confusion, it is recommended
+to avoid :command:`return()` in macros altogether.
+
+Unlike a function, the :variable:`CMAKE_CURRENT_FUNCTION`,
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_DIR`,
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_FILE`,
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_LINE` variables are not
+set for macro.
+
+.. _`Argument Caveats`:
+
+Argument Caveats
+^^^^^^^^^^^^^^^^
+
+Since ``ARGN``, ``ARGC``, ``ARGV``, ``ARGV0`` etc. are not variables,
+you will NOT be able to use commands like
+
+.. code-block:: cmake
+
+ if(ARGV1) # ARGV1 is not a variable
+ if(DEFINED ARGV2) # ARGV2 is not a variable
+ if(ARGC GREATER 2) # ARGC is not a variable
+ foreach(loop_var IN LISTS ARGN) # ARGN is not a variable
+
+In the first case, you can use ``if(${ARGV1})``. In the second and
+third case, the proper way to check if an optional variable was
+passed to the macro is to use ``if(${ARGC} GREATER 2)``. In the
+last case, you can use ``foreach(loop_var ${ARGN})`` but this will
+skip empty arguments. If you need to include them, you can use
+
+.. code-block:: cmake
+
+ set(list_var "${ARGN}")
+ foreach(loop_var IN LISTS list_var)
+
+Note that if you have a variable with the same name in the scope from
+which the macro is called, using unreferenced names will use the
+existing variable instead of the arguments. For example:
+
+.. code-block:: cmake
+
+ macro(bar)
+ foreach(arg IN LISTS ARGN)
+ <commands>
+ endforeach()
+ endmacro()
+
+ function(foo)
+ bar(x y z)
+ endfunction()
+
+ foo(a b c)
+
+Will loop over ``a;b;c`` and not over ``x;y;z`` as one might have expected.
+If you want true CMake variables and/or better CMake scope control you
+should look at the function command.
diff --git a/share/cmake-3.16/Help/command/make_directory.rst b/share/cmake-3.17/Help/command/make_directory.rst
index 8469b0a..8469b0a 100644
--- a/share/cmake-3.16/Help/command/make_directory.rst
+++ b/share/cmake-3.17/Help/command/make_directory.rst
diff --git a/share/cmake-3.17/Help/command/mark_as_advanced.rst b/share/cmake-3.17/Help/command/mark_as_advanced.rst
new file mode 100644
index 0000000..e52e623
--- /dev/null
+++ b/share/cmake-3.17/Help/command/mark_as_advanced.rst
@@ -0,0 +1,30 @@
+mark_as_advanced
+----------------
+
+Mark cmake cached variables as advanced.
+
+.. code-block:: cmake
+
+ mark_as_advanced([CLEAR|FORCE] <var1> ...)
+
+Sets the advanced/non-advanced state of the named
+cached variables.
+
+An advanced variable will not be displayed in any
+of the cmake GUIs unless the ``show advanced`` option is on.
+In script mode, the advanced/non-advanced state has no effect.
+
+If the keyword ``CLEAR`` is given
+then advanced variables are changed back to unadvanced.
+If the keyword ``FORCE`` is given
+then the variables are made advanced.
+If neither ``FORCE`` nor ``CLEAR`` is specified,
+new values will be marked as advanced, but if a
+variable already has an advanced/non-advanced state,
+it will not be changed.
+
+.. note::
+
+ Policy :policy:`CMP0102` affects the behavior of the ``mark_as_advanced``
+ call. When set to ``NEW``, variables passed to this command which are not
+ already in the cache are ignored. See policy :policy:`CMP0102`.
diff --git a/share/cmake-3.16/Help/command/math.rst b/share/cmake-3.17/Help/command/math.rst
index ddb1ec6..ddb1ec6 100644
--- a/share/cmake-3.16/Help/command/math.rst
+++ b/share/cmake-3.17/Help/command/math.rst
diff --git a/share/cmake-3.17/Help/command/message.rst b/share/cmake-3.17/Help/command/message.rst
new file mode 100644
index 0000000..6bc0e4c
--- /dev/null
+++ b/share/cmake-3.17/Help/command/message.rst
@@ -0,0 +1,182 @@
+message
+-------
+
+Log a message.
+
+Synopsis
+^^^^^^^^
+
+.. parsed-literal::
+
+ `General messages`_
+ message([<mode>] "message text" ...)
+
+ `Reporting checks`_
+ message(<checkState> "message text" ...)
+
+
+General messages
+^^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ message([<mode>] "message text" ...)
+
+Record the specified message text in the log. If more than one message
+string is given, they are concatenated into a single message with no
+separator between the strings.
+
+The optional ``<mode>`` keyword determines the type of message, which
+influences the way the message is handled:
+
+``FATAL_ERROR``
+ CMake Error, stop processing and generation.
+
+``SEND_ERROR``
+ CMake Error, continue processing, but skip generation.
+
+``WARNING``
+ CMake Warning, continue processing.
+
+``AUTHOR_WARNING``
+ CMake Warning (dev), continue processing.
+
+``DEPRECATION``
+ CMake Deprecation Error or Warning if variable
+ :variable:`CMAKE_ERROR_DEPRECATED` or :variable:`CMAKE_WARN_DEPRECATED`
+ is enabled, respectively, else no message.
+
+(none) or ``NOTICE``
+ Important message printed to stderr to attract user's attention.
+
+``STATUS``
+ The main interesting messages that project users might be interested in.
+ Ideally these should be concise, no more than a single line, but still
+ informative.
+
+``VERBOSE``
+ Detailed informational messages intended for project users. These messages
+ should provide additional details that won't be of interest in most cases,
+ but which may be useful to those building the project when they want deeper
+ insight into what's happening.
+
+``DEBUG``
+ Detailed informational messages intended for developers working on the
+ project itself as opposed to users who just want to build it. These messages
+ will not typically be of interest to other users building the project and
+ will often be closely related to internal implementation details.
+
+``TRACE``
+ Fine-grained messages with very low-level implementation details. Messages
+ using this log level would normally only be temporary and would expect to be
+ removed before releasing the project, packaging up the files, etc.
+
+The CMake command-line tool displays ``STATUS`` to ``TRACE`` messages on stdout
+with the message preceded by two hyphens and a space. All other message types
+are sent to stderr and are not prefixed with hyphens. The
+:manual:`CMake GUI <cmake-gui(1)>` displays all messages in its log area.
+The :manual:`curses interface <ccmake(1)>` shows ``STATUS`` to ``TRACE``
+messages one at a time on a status line and other messages in an
+interactive pop-up box. The ``--log-level`` command-line option to each of
+these tools can be used to control which messages will be shown.
+To make a log level persist between CMake runs, the
+:variable:`CMAKE_MESSAGE_LOG_LEVEL` variable can be set instead.
+Note that the command line option takes precedence over the cache variable.
+
+Messages of log levels ``NOTICE`` and below will have each line preceded
+by the content of the :variable:`CMAKE_MESSAGE_INDENT` variable (converted to
+a single string by concatenating its list items). For ``STATUS`` to ``TRACE``
+messages, this indenting content will be inserted after the hyphens.
+
+Messages of log levels ``NOTICE`` and below can also have each line preceded
+with context of the form ``[some.context.example]``. The content between the
+square brackets is obtained by converting the :variable:`CMAKE_MESSAGE_CONTEXT`
+list variable to a dot-separated string. The message context will always
+appear before any indenting content but after any automatically added leading
+hyphens. By default, message context is not shown, it has to be explicitly
+enabled by giving the :manual:`cmake <cmake(1)>` ``--log-context``
+command-line option or by setting the :variable:`CMAKE_MESSAGE_CONTEXT_SHOW`
+variable to true. See the :variable:`CMAKE_MESSAGE_CONTEXT` documentation for
+usage examples.
+
+CMake Warning and Error message text displays using a simple markup
+language. Non-indented text is formatted in line-wrapped paragraphs
+delimited by newlines. Indented text is considered pre-formatted.
+
+
+Reporting checks
+^^^^^^^^^^^^^^^^
+
+A common pattern in CMake output is a message indicating the start of some
+sort of check, followed by another message reporting the result of that check.
+For example:
+
+.. code-block:: cmake
+
+ message(STATUS "Looking for someheader.h")
+ #... do the checks, set checkSuccess with the result
+ if(checkSuccess)
+ message(STATUS "Looking for someheader.h - found")
+ else()
+ message(STATUS "Looking for someheader.h - not found")
+ endif()
+
+This can be more robustly and conveniently expressed using the ``CHECK_...``
+keyword form of the ``message()`` command:
+
+.. code-block:: cmake
+
+ message(<checkState> "message" ...)
+
+where ``<checkState>`` must be one of the following:
+
+ ``CHECK_START``
+ Record a concise message about the check about to be performed.
+
+ ``CHECK_PASS``
+ Record a successful result for a check.
+
+ ``CHECK_FAIL``
+ Record an unsuccessful result for a check.
+
+When recording a check result, the command repeats the message from the most
+recently started check for which no result has yet been reported, then some
+separator characters and then the message text provided after the
+``CHECK_PASS`` or ``CHECK_FAIL`` keyword. Check messages are always reported
+at ``STATUS`` log level.
+
+Checks may be nested and every ``CHECK_START`` should have exactly one
+matching ``CHECK_PASS`` or ``CHECK_FAIL``.
+The :variable:`CMAKE_MESSAGE_INDENT` variable can also be used to add
+indenting to nested checks if desired. For example:
+
+.. code-block:: cmake
+
+ message(CHECK_START "Finding my things")
+ list(APPEND CMAKE_MESSAGE_INDENT " ")
+ unset(missingComponents)
+
+ message(CHECK_START "Finding partA")
+ # ... do check, assume we find A
+ message(CHECK_PASS "found")
+
+ message(CHECK_START "Finding partB")
+ # ... do check, assume we don't find B
+ list(APPEND missingComponents B)
+ message(CHECK_FAIL "not found")
+
+ list(POP_BACK CMAKE_MESSAGE_INDENT)
+ if(missingComponents)
+ message(CHECK_FAIL "missing components: ${missingComponents}")
+ else()
+ message(CHECK_PASS "all components found")
+ endif()
+
+Output from the above would appear something like the following::
+
+ -- Finding my things
+ -- Finding partA
+ -- Finding partA - found
+ -- Finding partB
+ -- Finding partB - not found
+ -- Finding my things - missing components: B
diff --git a/share/cmake-3.16/Help/command/option.rst b/share/cmake-3.17/Help/command/option.rst
index 8956307..8956307 100644
--- a/share/cmake-3.16/Help/command/option.rst
+++ b/share/cmake-3.17/Help/command/option.rst
diff --git a/share/cmake-3.16/Help/command/output_required_files.rst b/share/cmake-3.17/Help/command/output_required_files.rst
index b3a6e86..b3a6e86 100644
--- a/share/cmake-3.16/Help/command/output_required_files.rst
+++ b/share/cmake-3.17/Help/command/output_required_files.rst
diff --git a/share/cmake-3.17/Help/command/project.rst b/share/cmake-3.17/Help/command/project.rst
new file mode 100644
index 0000000..b6093d3
--- /dev/null
+++ b/share/cmake-3.17/Help/command/project.rst
@@ -0,0 +1,133 @@
+project
+-------
+
+Set the name of the project.
+
+Synopsis
+^^^^^^^^
+
+.. code-block:: cmake
+
+ project(<PROJECT-NAME> [<language-name>...])
+ project(<PROJECT-NAME>
+ [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
+ [DESCRIPTION <project-description-string>]
+ [HOMEPAGE_URL <url-string>]
+ [LANGUAGES <language-name>...])
+
+Sets the name of the project, and stores it in the variable
+:variable:`PROJECT_NAME`. When called from the top-level
+``CMakeLists.txt`` also stores the project name in the
+variable :variable:`CMAKE_PROJECT_NAME`.
+
+Also sets the variables
+
+* :variable:`PROJECT_SOURCE_DIR`,
+ :variable:`<PROJECT-NAME>_SOURCE_DIR`
+* :variable:`PROJECT_BINARY_DIR`,
+ :variable:`<PROJECT-NAME>_BINARY_DIR`
+
+Further variables are set by the optional arguments described in the following.
+If any of these arguments is not used, then the corresponding variables are
+set to the empty string.
+
+Options
+^^^^^^^
+
+The options are:
+
+``VERSION <version>``
+ Optional; may not be used unless policy :policy:`CMP0048` is
+ set to ``NEW``.
+
+ Takes a ``<version>`` argument composed of non-negative integer components,
+ i.e. ``<major>[.<minor>[.<patch>[.<tweak>]]]``,
+ and sets the variables
+
+ * :variable:`PROJECT_VERSION`,
+ :variable:`<PROJECT-NAME>_VERSION`
+ * :variable:`PROJECT_VERSION_MAJOR`,
+ :variable:`<PROJECT-NAME>_VERSION_MAJOR`
+ * :variable:`PROJECT_VERSION_MINOR`,
+ :variable:`<PROJECT-NAME>_VERSION_MINOR`
+ * :variable:`PROJECT_VERSION_PATCH`,
+ :variable:`<PROJECT-NAME>_VERSION_PATCH`
+ * :variable:`PROJECT_VERSION_TWEAK`,
+ :variable:`<PROJECT-NAME>_VERSION_TWEAK`.
+
+ When the ``project()`` command is called from the top-level ``CMakeLists.txt``,
+ then the version is also stored in the variable :variable:`CMAKE_PROJECT_VERSION`.
+
+``DESCRIPTION <project-description-string>``
+ Optional.
+ Sets the variables
+
+ * :variable:`PROJECT_DESCRIPTION`, :variable:`<PROJECT-NAME>_DESCRIPTION`
+
+ to ``<project-description-string>``.
+ It is recommended that this description is a relatively short string,
+ usually no more than a few words.
+
+ When the ``project()`` command is called from the top-level ``CMakeLists.txt``,
+ then the description is also stored in the variable :variable:`CMAKE_PROJECT_DESCRIPTION`.
+
+``HOMEPAGE_URL <url-string>``
+ Optional.
+ Sets the variables
+
+ * :variable:`PROJECT_HOMEPAGE_URL`, :variable:`<PROJECT-NAME>_HOMEPAGE_URL`
+
+ to ``<url-string>``, which should be the canonical home URL for the project.
+
+ When the ``project()`` command is called from the top-level ``CMakeLists.txt``,
+ then the URL also is stored in the variable :variable:`CMAKE_PROJECT_HOMEPAGE_URL`.
+
+``LANGUAGES <language-name>...``
+ Optional.
+ Can also be specified without ``LANGUAGES`` keyword per the first, short signature.
+
+ Selects which programming languages are needed to build the project.
+ Supported languages include ``C``, ``CXX`` (i.e. C++), ``CUDA``,
+ ``OBJC`` (i.e. Objective-C), ``OBJCXX``, ``Fortran``, and ``ASM``.
+ By default ``C`` and ``CXX`` are enabled if no language options are given.
+ Specify language ``NONE``, or use the ``LANGUAGES`` keyword and list no languages,
+ to skip enabling any languages.
+
+ If enabling ``ASM``, list it last so that CMake can check whether
+ compilers for other languages like ``C`` work for assembly too.
+
+The variables set through the ``VERSION``, ``DESCRIPTION`` and ``HOMEPAGE_URL``
+options are intended for use as default values in package metadata and documentation.
+
+Code Injection
+^^^^^^^^^^^^^^
+
+If the :variable:`CMAKE_PROJECT_INCLUDE_BEFORE` or
+:variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE_BEFORE` variables are set,
+the files they point to will be included as the first step of the
+``project()`` command.
+If both are set, then :variable:`CMAKE_PROJECT_INCLUDE_BEFORE` will be
+included before :variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE_BEFORE`.
+
+If the :variable:`CMAKE_PROJECT_INCLUDE` or
+:variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE` variables are set, the files
+they point to will be included as the last step of the ``project()`` command.
+If both are set, then :variable:`CMAKE_PROJECT_INCLUDE` will be included before
+:variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE`.
+
+Usage
+^^^^^
+
+The top-level ``CMakeLists.txt`` file for a project must contain a
+literal, direct call to the ``project()`` command; loading one
+through the :command:`include` command is not sufficient. If no such
+call exists, CMake will issue a warning and pretend there is a
+``project(Project)`` at the top to enable the default languages
+(``C`` and ``CXX``).
+
+.. note::
+ Call the ``project()`` command near the top of the top-level
+ ``CMakeLists.txt``, but *after* calling :command:`cmake_minimum_required`.
+ It is important to establish version and policy settings before invoking
+ other commands whose behavior they may affect.
+ See also policy :policy:`CMP0000`.
diff --git a/share/cmake-3.16/Help/command/qt_wrap_cpp.rst b/share/cmake-3.17/Help/command/qt_wrap_cpp.rst
index ce11c2d..ce11c2d 100644
--- a/share/cmake-3.16/Help/command/qt_wrap_cpp.rst
+++ b/share/cmake-3.17/Help/command/qt_wrap_cpp.rst
diff --git a/share/cmake-3.16/Help/command/qt_wrap_ui.rst b/share/cmake-3.17/Help/command/qt_wrap_ui.rst
index efbbc54..efbbc54 100644
--- a/share/cmake-3.16/Help/command/qt_wrap_ui.rst
+++ b/share/cmake-3.17/Help/command/qt_wrap_ui.rst
diff --git a/share/cmake-3.16/Help/command/remove.rst b/share/cmake-3.17/Help/command/remove.rst
index 543d016..543d016 100644
--- a/share/cmake-3.16/Help/command/remove.rst
+++ b/share/cmake-3.17/Help/command/remove.rst
diff --git a/share/cmake-3.16/Help/command/remove_definitions.rst b/share/cmake-3.17/Help/command/remove_definitions.rst
index faad16d..faad16d 100644
--- a/share/cmake-3.16/Help/command/remove_definitions.rst
+++ b/share/cmake-3.17/Help/command/remove_definitions.rst
diff --git a/share/cmake-3.16/Help/command/return.rst b/share/cmake-3.17/Help/command/return.rst
index 830992c..830992c 100644
--- a/share/cmake-3.16/Help/command/return.rst
+++ b/share/cmake-3.17/Help/command/return.rst
diff --git a/share/cmake-3.16/Help/command/separate_arguments.rst b/share/cmake-3.17/Help/command/separate_arguments.rst
index fbca859..fbca859 100644
--- a/share/cmake-3.16/Help/command/separate_arguments.rst
+++ b/share/cmake-3.17/Help/command/separate_arguments.rst
diff --git a/share/cmake-3.16/Help/command/set.rst b/share/cmake-3.17/Help/command/set.rst
index c0e02e2..c0e02e2 100644
--- a/share/cmake-3.16/Help/command/set.rst
+++ b/share/cmake-3.17/Help/command/set.rst
diff --git a/share/cmake-3.16/Help/command/set_directory_properties.rst b/share/cmake-3.17/Help/command/set_directory_properties.rst
index f02a8e6..f02a8e6 100644
--- a/share/cmake-3.16/Help/command/set_directory_properties.rst
+++ b/share/cmake-3.17/Help/command/set_directory_properties.rst
diff --git a/share/cmake-3.16/Help/command/set_property.rst b/share/cmake-3.17/Help/command/set_property.rst
index ec08c8f..ec08c8f 100644
--- a/share/cmake-3.16/Help/command/set_property.rst
+++ b/share/cmake-3.17/Help/command/set_property.rst
diff --git a/share/cmake-3.16/Help/command/set_source_files_properties.rst b/share/cmake-3.17/Help/command/set_source_files_properties.rst
index ab95d70..ab95d70 100644
--- a/share/cmake-3.16/Help/command/set_source_files_properties.rst
+++ b/share/cmake-3.17/Help/command/set_source_files_properties.rst
diff --git a/share/cmake-3.16/Help/command/set_target_properties.rst b/share/cmake-3.17/Help/command/set_target_properties.rst
index 597be23..597be23 100644
--- a/share/cmake-3.16/Help/command/set_target_properties.rst
+++ b/share/cmake-3.17/Help/command/set_target_properties.rst
diff --git a/share/cmake-3.16/Help/command/set_tests_properties.rst b/share/cmake-3.17/Help/command/set_tests_properties.rst
index 9bc94ae..9bc94ae 100644
--- a/share/cmake-3.16/Help/command/set_tests_properties.rst
+++ b/share/cmake-3.17/Help/command/set_tests_properties.rst
diff --git a/share/cmake-3.16/Help/command/site_name.rst b/share/cmake-3.17/Help/command/site_name.rst
index 1bcaead..1bcaead 100644
--- a/share/cmake-3.16/Help/command/site_name.rst
+++ b/share/cmake-3.17/Help/command/site_name.rst
diff --git a/share/cmake-3.16/Help/command/source_group.rst b/share/cmake-3.17/Help/command/source_group.rst
index 6623c98..6623c98 100644
--- a/share/cmake-3.16/Help/command/source_group.rst
+++ b/share/cmake-3.17/Help/command/source_group.rst
diff --git a/share/cmake-3.16/Help/command/string.rst b/share/cmake-3.17/Help/command/string.rst
index 81a2061..81a2061 100644
--- a/share/cmake-3.16/Help/command/string.rst
+++ b/share/cmake-3.17/Help/command/string.rst
diff --git a/share/cmake-3.16/Help/command/subdir_depends.rst b/share/cmake-3.17/Help/command/subdir_depends.rst
index 0c1b3c1..0c1b3c1 100644
--- a/share/cmake-3.16/Help/command/subdir_depends.rst
+++ b/share/cmake-3.17/Help/command/subdir_depends.rst
diff --git a/share/cmake-3.16/Help/command/subdirs.rst b/share/cmake-3.17/Help/command/subdirs.rst
index 530951b..530951b 100644
--- a/share/cmake-3.16/Help/command/subdirs.rst
+++ b/share/cmake-3.17/Help/command/subdirs.rst
diff --git a/share/cmake-3.16/Help/command/target_compile_definitions.rst b/share/cmake-3.17/Help/command/target_compile_definitions.rst
index 9e9c690..9e9c690 100644
--- a/share/cmake-3.16/Help/command/target_compile_definitions.rst
+++ b/share/cmake-3.17/Help/command/target_compile_definitions.rst
diff --git a/share/cmake-3.17/Help/command/target_compile_features.rst b/share/cmake-3.17/Help/command/target_compile_features.rst
new file mode 100644
index 0000000..c5401e6
--- /dev/null
+++ b/share/cmake-3.17/Help/command/target_compile_features.rst
@@ -0,0 +1,33 @@
+target_compile_features
+-----------------------
+
+Add expected compiler features to a target.
+
+.. code-block:: cmake
+
+ target_compile_features(<target> <PRIVATE|PUBLIC|INTERFACE> <feature> [...])
+
+Specifies compiler features required when compiling a given target. If the
+feature is not listed in the :variable:`CMAKE_C_COMPILE_FEATURES`,
+:variable:`CMAKE_CUDA_COMPILE_FEATURES`, or :variable:`CMAKE_CXX_COMPILE_FEATURES`
+variables, then an error will be reported by CMake. If the use of the feature requires
+an additional compiler flag, such as ``-std=gnu++11``, the flag will be added
+automatically.
+
+The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to
+specify the scope of the features. ``PRIVATE`` and ``PUBLIC`` items will
+populate the :prop_tgt:`COMPILE_FEATURES` property of ``<target>``.
+``PUBLIC`` and ``INTERFACE`` items will populate the
+:prop_tgt:`INTERFACE_COMPILE_FEATURES` property of ``<target>``.
+(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items.)
+Repeated calls for the same ``<target>`` append items.
+
+The named ``<target>`` must have been created by a command such as
+:command:`add_executable` or :command:`add_library` and must not be an
+:ref:`ALIAS target <Alias Targets>`.
+
+Arguments to ``target_compile_features`` may use "generator expressions"
+with the syntax ``$<...>``.
+See the :manual:`cmake-generator-expressions(7)` manual for available
+expressions. See the :manual:`cmake-compile-features(7)` manual for
+information on compile features and a list of supported compilers.
diff --git a/share/cmake-3.16/Help/command/target_compile_options.rst b/share/cmake-3.17/Help/command/target_compile_options.rst
index 47e7d86..47e7d86 100644
--- a/share/cmake-3.16/Help/command/target_compile_options.rst
+++ b/share/cmake-3.17/Help/command/target_compile_options.rst
diff --git a/share/cmake-3.16/Help/command/target_include_directories.rst b/share/cmake-3.17/Help/command/target_include_directories.rst
index 660e15c..660e15c 100644
--- a/share/cmake-3.16/Help/command/target_include_directories.rst
+++ b/share/cmake-3.17/Help/command/target_include_directories.rst
diff --git a/share/cmake-3.16/Help/command/target_link_directories.rst b/share/cmake-3.17/Help/command/target_link_directories.rst
index 76da94d..76da94d 100644
--- a/share/cmake-3.16/Help/command/target_link_directories.rst
+++ b/share/cmake-3.17/Help/command/target_link_directories.rst
diff --git a/share/cmake-3.16/Help/command/target_link_libraries.rst b/share/cmake-3.17/Help/command/target_link_libraries.rst
index c2e7e8a..c2e7e8a 100644
--- a/share/cmake-3.16/Help/command/target_link_libraries.rst
+++ b/share/cmake-3.17/Help/command/target_link_libraries.rst
diff --git a/share/cmake-3.16/Help/command/target_link_options.rst b/share/cmake-3.17/Help/command/target_link_options.rst
index b5abbc4..b5abbc4 100644
--- a/share/cmake-3.16/Help/command/target_link_options.rst
+++ b/share/cmake-3.17/Help/command/target_link_options.rst
diff --git a/share/cmake-3.16/Help/command/target_precompile_headers.rst b/share/cmake-3.17/Help/command/target_precompile_headers.rst
index 569c7eb..569c7eb 100644
--- a/share/cmake-3.16/Help/command/target_precompile_headers.rst
+++ b/share/cmake-3.17/Help/command/target_precompile_headers.rst
diff --git a/share/cmake-3.16/Help/command/target_sources.rst b/share/cmake-3.17/Help/command/target_sources.rst
index 27e737b..27e737b 100644
--- a/share/cmake-3.16/Help/command/target_sources.rst
+++ b/share/cmake-3.17/Help/command/target_sources.rst
diff --git a/share/cmake-3.16/Help/command/try_compile.rst b/share/cmake-3.17/Help/command/try_compile.rst
index edbf92c..edbf92c 100644
--- a/share/cmake-3.16/Help/command/try_compile.rst
+++ b/share/cmake-3.17/Help/command/try_compile.rst
diff --git a/share/cmake-3.16/Help/command/try_run.rst b/share/cmake-3.17/Help/command/try_run.rst
index d401ebe..d401ebe 100644
--- a/share/cmake-3.16/Help/command/try_run.rst
+++ b/share/cmake-3.17/Help/command/try_run.rst
diff --git a/share/cmake-3.16/Help/command/unset.rst b/share/cmake-3.17/Help/command/unset.rst
index 7521052..7521052 100644
--- a/share/cmake-3.16/Help/command/unset.rst
+++ b/share/cmake-3.17/Help/command/unset.rst
diff --git a/share/cmake-3.16/Help/command/use_mangled_mesa.rst b/share/cmake-3.17/Help/command/use_mangled_mesa.rst
index 5b0e2ee..5b0e2ee 100644
--- a/share/cmake-3.16/Help/command/use_mangled_mesa.rst
+++ b/share/cmake-3.17/Help/command/use_mangled_mesa.rst
diff --git a/share/cmake-3.16/Help/command/utility_source.rst b/share/cmake-3.17/Help/command/utility_source.rst
index 94d6a4e..94d6a4e 100644
--- a/share/cmake-3.16/Help/command/utility_source.rst
+++ b/share/cmake-3.17/Help/command/utility_source.rst
diff --git a/share/cmake-3.16/Help/command/variable_requires.rst b/share/cmake-3.17/Help/command/variable_requires.rst
index 322b154..322b154 100644
--- a/share/cmake-3.16/Help/command/variable_requires.rst
+++ b/share/cmake-3.17/Help/command/variable_requires.rst
diff --git a/share/cmake-3.16/Help/command/variable_watch.rst b/share/cmake-3.17/Help/command/variable_watch.rst
index ce69bcf..ce69bcf 100644
--- a/share/cmake-3.16/Help/command/variable_watch.rst
+++ b/share/cmake-3.17/Help/command/variable_watch.rst
diff --git a/share/cmake-3.16/Help/command/while.rst b/share/cmake-3.17/Help/command/while.rst
index a4957c1..a4957c1 100644
--- a/share/cmake-3.16/Help/command/while.rst
+++ b/share/cmake-3.17/Help/command/while.rst
diff --git a/share/cmake-3.16/Help/command/write_file.rst b/share/cmake-3.17/Help/command/write_file.rst
index 4d476bd..4d476bd 100644
--- a/share/cmake-3.16/Help/command/write_file.rst
+++ b/share/cmake-3.17/Help/command/write_file.rst
diff --git a/share/cmake-3.16/Help/cpack_gen/archive.rst b/share/cmake-3.17/Help/cpack_gen/archive.rst
index d455f4b..d455f4b 100644
--- a/share/cmake-3.16/Help/cpack_gen/archive.rst
+++ b/share/cmake-3.17/Help/cpack_gen/archive.rst
diff --git a/share/cmake-3.16/Help/cpack_gen/bundle.rst b/share/cmake-3.17/Help/cpack_gen/bundle.rst
index b16dbda..b16dbda 100644
--- a/share/cmake-3.16/Help/cpack_gen/bundle.rst
+++ b/share/cmake-3.17/Help/cpack_gen/bundle.rst
diff --git a/share/cmake-3.16/Help/cpack_gen/cygwin.rst b/share/cmake-3.17/Help/cpack_gen/cygwin.rst
index 1c5f7af..1c5f7af 100644
--- a/share/cmake-3.16/Help/cpack_gen/cygwin.rst
+++ b/share/cmake-3.17/Help/cpack_gen/cygwin.rst
diff --git a/share/cmake-3.16/Help/cpack_gen/deb.rst b/share/cmake-3.17/Help/cpack_gen/deb.rst
index db71c87..db71c87 100644
--- a/share/cmake-3.16/Help/cpack_gen/deb.rst
+++ b/share/cmake-3.17/Help/cpack_gen/deb.rst
diff --git a/share/cmake-3.17/Help/cpack_gen/dmg.rst b/share/cmake-3.17/Help/cpack_gen/dmg.rst
new file mode 100644
index 0000000..cede0f2
--- /dev/null
+++ b/share/cmake-3.17/Help/cpack_gen/dmg.rst
@@ -0,0 +1,110 @@
+CPack DragNDrop Generator
+-------------------------
+
+The DragNDrop CPack generator (macOS) creates a DMG image.
+
+Variables specific to CPack DragNDrop generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The following variables are specific to the DragNDrop installers built
+on macOS:
+
+.. variable:: CPACK_DMG_VOLUME_NAME
+
+ The volume name of the generated disk image. Defaults to
+ CPACK_PACKAGE_FILE_NAME.
+
+.. variable:: CPACK_DMG_FORMAT
+
+ The disk image format. Common values are ``UDRO`` (UDIF read-only), ``UDZO`` (UDIF
+ zlib-compressed) or ``UDBZ`` (UDIF bzip2-compressed). Refer to ``hdiutil(1)`` for
+ more information on other available formats. Defaults to ``UDZO``.
+
+.. variable:: CPACK_DMG_DS_STORE
+
+ Path to a custom ``.DS_Store`` file. This ``.DS_Store`` file can be used to
+ specify the Finder window position/geometry and layout (such as hidden
+ toolbars, placement of the icons etc.). This file has to be generated by
+ the Finder (either manually or through AppleScript) using a normal folder
+ from which the ``.DS_Store`` file can then be extracted.
+
+.. variable:: CPACK_DMG_DS_STORE_SETUP_SCRIPT
+
+ Path to a custom AppleScript file. This AppleScript is used to generate
+ a ``.DS_Store`` file which specifies the Finder window position/geometry and
+ layout (such as hidden toolbars, placement of the icons etc.).
+ By specifying a custom AppleScript there is no need to use
+ ``CPACK_DMG_DS_STORE``, as the ``.DS_Store`` that is generated by the AppleScript
+ will be packaged.
+
+.. variable:: CPACK_DMG_BACKGROUND_IMAGE
+
+ Path to an image file to be used as the background. This file will be
+ copied to ``.background``/``background.<ext>``, where ``<ext>`` is the original image file
+ extension. The background image is installed into the image before
+ ``CPACK_DMG_DS_STORE_SETUP_SCRIPT`` is executed or ``CPACK_DMG_DS_STORE`` is
+ installed. By default no background image is set.
+
+.. variable:: CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK
+
+ Default behaviour is to include a symlink to ``/Applications`` in the DMG.
+ Set this option to ``ON`` to avoid adding the symlink.
+
+.. variable:: CPACK_DMG_SLA_DIR
+
+ Directory where license and menu files for different languages are stored.
+ Setting this causes CPack to look for a ``<language>.menu.txt`` and
+ ``<language>.license.txt`` or ``<language>.license.rtf`` file for every
+ language defined in ``CPACK_DMG_SLA_LANGUAGES``. If both this variable and
+ ``CPACK_RESOURCE_FILE_LICENSE`` are set, CPack will only look for the menu
+ files and use the same license file for all languages. If both
+ ``<language>.license.txt`` and ``<language>.license.rtf`` exist, the ``.txt``
+ file will be used.
+
+.. variable:: CPACK_DMG_SLA_LANGUAGES
+
+ Languages for which a license agreement is provided when mounting the
+ generated DMG. A menu file consists of 9 lines of text. The first line is
+ is the name of the language itself, uppercase, in English (e.g. German).
+ The other lines are translations of the following strings:
+
+ - Agree
+ - Disagree
+ - Print
+ - Save...
+ - You agree to the terms of the License Agreement when you click the
+ "Agree" button.
+ - Software License Agreement
+ - This text cannot be saved. The disk may be full or locked, or the file
+ may be locked.
+ - Unable to print. Make sure you have selected a printer.
+
+ For every language in this list, CPack will try to find files
+ ``<language>.menu.txt`` and ``<language>.license.txt`` in the directory
+ specified by the :variable:`CPACK_DMG_SLA_DIR` variable.
+
+.. variable:: CPACK_DMG_<component>_FILE_NAME
+
+ File name when packaging ``<component>`` as its own DMG
+ (``CPACK_COMPONENTS_GROUPING`` set to IGNORE).
+
+ - Default: ``CPACK_PACKAGE_FILE_NAME-<component>``
+
+.. variable:: CPACK_COMMAND_HDIUTIL
+
+ Path to the ``hdiutil(1)`` command used to operate on disk image files on
+ macOS. This variable can be used to override the automatically detected
+ command (or specify its location if the auto-detection fails to find it).
+
+.. variable:: CPACK_COMMAND_SETFILE
+
+ Path to the ``SetFile(1)`` command used to set extended attributes on files and
+ directories on macOS. This variable can be used to override the
+ automatically detected command (or specify its location if the
+ auto-detection fails to find it).
+
+.. variable:: CPACK_COMMAND_REZ
+
+ Path to the ``Rez(1)`` command used to compile resources on macOS. This
+ variable can be used to override the automatically detected command (or
+ specify its location if the auto-detection fails to find it).
diff --git a/share/cmake-3.16/Help/cpack_gen/external.rst b/share/cmake-3.17/Help/cpack_gen/external.rst
index 406f6be..406f6be 100644
--- a/share/cmake-3.16/Help/cpack_gen/external.rst
+++ b/share/cmake-3.17/Help/cpack_gen/external.rst
diff --git a/share/cmake-3.16/Help/cpack_gen/freebsd.rst b/share/cmake-3.17/Help/cpack_gen/freebsd.rst
index a8dd320..a8dd320 100644
--- a/share/cmake-3.16/Help/cpack_gen/freebsd.rst
+++ b/share/cmake-3.17/Help/cpack_gen/freebsd.rst
diff --git a/share/cmake-3.17/Help/cpack_gen/ifw.rst b/share/cmake-3.17/Help/cpack_gen/ifw.rst
new file mode 100644
index 0000000..4a9ab99
--- /dev/null
+++ b/share/cmake-3.17/Help/cpack_gen/ifw.rst
@@ -0,0 +1,334 @@
+CPack IFW Generator
+-------------------
+
+Overview
+^^^^^^^^
+
+This :manual:`cpack generator <cpack-generators(7)>` generates
+configuration and meta information for the `Qt Installer Framework
+<http://doc.qt.io/qtinstallerframework/index.html>`_ (QtIFW).
+
+QtIFW provides tools and utilities to create installers for
+the platforms supported by `Qt <https://www.qt.io>`_: Linux,
+Microsoft Windows, and macOS.
+
+To make use of this generator, QtIFW should also be installed.
+The module :module:`CPackIFW` looks for the location of the
+QtIFW command-line utilities.
+
+Hints
+^^^^^
+
+Generally, the CPack ``IFW`` generator automatically finds QtIFW tools,
+but if you don't use a default path for installation of the QtIFW tools,
+the path may be specified in either a CMake or an environment variable:
+
+.. variable:: CPACK_IFW_ROOT
+
+ An CMake variable which specifies the location of the QtIFW tool suite.
+
+ The variable will be cached in the ``CPackConfig.cmake`` file and used at
+ CPack runtime.
+
+.. variable:: QTIFWDIR
+
+ An environment variable which specifies the location of the QtIFW tool
+ suite.
+
+.. note::
+ The specified path should not contain "bin" at the end
+ (for example: "D:\\DevTools\\QtIFW2.0.5").
+
+The :variable:`CPACK_IFW_ROOT` variable has a higher priority and overrides
+the value of the :variable:`QTIFWDIR` variable.
+
+Internationalization
+^^^^^^^^^^^^^^^^^^^^
+
+Some variables and command arguments support internationalization via
+CMake script. This is an optional feature.
+
+Installers created by QtIFW tools have built-in support for
+internationalization and many phrases are localized to many languages,
+but this does not apply to the description of the your components and groups
+that will be distributed.
+
+Localization of the description of your components and groups is useful for
+users of your installers.
+
+A localized variable or argument can contain a single default value, and a
+set of pairs the name of the locale and the localized value.
+
+For example:
+
+.. code-block:: cmake
+
+ set(LOCALIZABLE_VARIABLE "Default value"
+ en "English value"
+ en_US "American value"
+ en_GB "Great Britain value"
+ )
+
+Variables
+^^^^^^^^^
+
+You can use the following variables to change behavior of CPack ``IFW``
+generator.
+
+Debug
+"""""
+
+.. variable:: CPACK_IFW_VERBOSE
+
+ Set to ``ON`` to enable addition debug output.
+ By default is ``OFF``.
+
+Package
+"""""""
+
+.. variable:: CPACK_IFW_PACKAGE_TITLE
+
+ Name of the installer as displayed on the title bar.
+ By default used :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY`.
+
+.. variable:: CPACK_IFW_PACKAGE_PUBLISHER
+
+ Publisher of the software (as shown in the Windows Control Panel).
+ By default used :variable:`CPACK_PACKAGE_VENDOR`.
+
+.. variable:: CPACK_IFW_PRODUCT_URL
+
+ URL to a page that contains product information on your web site.
+
+.. variable:: CPACK_IFW_PACKAGE_ICON
+
+ Filename for a custom installer icon. The actual file is '.icns' (macOS),
+ '.ico' (Windows). No functionality on Unix.
+
+.. variable:: CPACK_IFW_PACKAGE_WINDOW_ICON
+
+ Filename for a custom window icon in PNG format for the Installer
+ application.
+
+.. variable:: CPACK_IFW_PACKAGE_LOGO
+
+ Filename for a logo is used as QWizard::LogoPixmap.
+
+.. variable:: CPACK_IFW_PACKAGE_WATERMARK
+
+ Filename for a watermark is used as QWizard::WatermarkPixmap.
+
+.. variable:: CPACK_IFW_PACKAGE_BANNER
+
+ Filename for a banner is used as QWizard::BannerPixmap.
+
+.. variable:: CPACK_IFW_PACKAGE_BACKGROUND
+
+ Filename for an image used as QWizard::BackgroundPixmap (only used by MacStyle).
+
+.. variable:: CPACK_IFW_PACKAGE_WIZARD_STYLE
+
+ Wizard style to be used ("Modern", "Mac", "Aero" or "Classic").
+
+.. variable:: CPACK_IFW_PACKAGE_STYLE_SHEET
+
+ Filename for a stylesheet.
+
+.. variable:: CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH
+
+ Default width of the wizard in pixels. Setting a banner image will override this.
+
+.. variable:: CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT
+
+ Default height of the wizard in pixels. Setting a watermark image will override this.
+
+.. variable:: CPACK_IFW_PACKAGE_TITLE_COLOR
+
+ Color of the titles and subtitles (takes an HTML color code, such as "#88FF33").
+
+.. variable:: CPACK_IFW_PACKAGE_START_MENU_DIRECTORY
+
+ Name of the default program group for the product in the Windows Start menu.
+
+ By default used :variable:`CPACK_IFW_PACKAGE_NAME`.
+
+.. variable:: CPACK_IFW_TARGET_DIRECTORY
+
+ Default target directory for installation.
+ By default used
+ "@ApplicationsDir@/:variable:`CPACK_PACKAGE_INSTALL_DIRECTORY`"
+
+ You can use predefined variables.
+
+.. variable:: CPACK_IFW_ADMIN_TARGET_DIRECTORY
+
+ Default target directory for installation with administrator rights.
+
+ You can use predefined variables.
+
+.. variable:: CPACK_IFW_PACKAGE_GROUP
+
+ The group, which will be used to configure the root package
+
+.. variable:: CPACK_IFW_PACKAGE_NAME
+
+ The root package name, which will be used if configuration group is not
+ specified
+
+.. variable:: CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME
+
+ Filename of the generated maintenance tool.
+ The platform-specific executable file extension is appended.
+
+ By default used QtIFW defaults (``maintenancetool``).
+
+.. variable:: CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR
+
+ Set to ``OFF`` if the target directory should not be deleted when uninstalling.
+
+ Is ``ON`` by default
+
+.. variable:: CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE
+
+ Filename for the configuration of the generated maintenance tool.
+
+ By default used QtIFW defaults (``maintenancetool.ini``).
+
+.. variable:: CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS
+
+ Set to ``ON`` if the installation path can contain non-ASCII characters.
+
+ Is ``ON`` for QtIFW less 2.0 tools.
+
+.. variable:: CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH
+
+ Set to ``OFF`` if the installation path cannot contain space characters.
+
+ Is ``ON`` for QtIFW less 2.0 tools.
+
+.. variable:: CPACK_IFW_PACKAGE_CONTROL_SCRIPT
+
+ Filename for a custom installer control script.
+
+.. variable:: CPACK_IFW_PACKAGE_RESOURCES
+
+ List of additional resources ('.qrc' files) to include in the installer
+ binary.
+
+ You can use :command:`cpack_ifw_add_package_resources` command to resolve
+ relative paths.
+
+.. variable:: CPACK_IFW_PACKAGE_FILE_EXTENSION
+
+ The target binary extension.
+
+ On Linux, the name of the target binary is automatically extended with
+ '.run', if you do not specify the extension.
+
+ On Windows, the target is created as an application with the extension
+ '.exe', which is automatically added, if not supplied.
+
+ On Mac, the target is created as an DMG disk image with the extension
+ '.dmg', which is automatically added, if not supplied.
+
+.. variable:: CPACK_IFW_REPOSITORIES_ALL
+
+ The list of remote repositories.
+
+ The default value of this variable is computed by CPack and contains
+ all repositories added with command :command:`cpack_ifw_add_repository`
+ or updated with command :command:`cpack_ifw_update_repository`.
+
+.. variable:: CPACK_IFW_DOWNLOAD_ALL
+
+ If this is ``ON`` all components will be downloaded.
+ By default is ``OFF`` or used value
+ from ``CPACK_DOWNLOAD_ALL`` if set
+
+Components
+""""""""""
+
+.. variable:: CPACK_IFW_RESOLVE_DUPLICATE_NAMES
+
+ Resolve duplicate names when installing components with groups.
+
+.. variable:: CPACK_IFW_PACKAGES_DIRECTORIES
+
+ Additional prepared packages dirs that will be used to resolve
+ dependent components.
+
+.. variable:: CPACK_IFW_REPOSITORIES_DIRECTORIES
+
+ Additional prepared repository dirs that will be used to resolve and
+ repack dependent components. This feature available only
+ since QtIFW 3.1.
+
+Tools
+"""""
+
+.. variable:: CPACK_IFW_FRAMEWORK_VERSION
+
+ The version of used QtIFW tools.
+
+.. variable:: CPACK_IFW_BINARYCREATOR_EXECUTABLE
+
+ The path to "binarycreator" command line client.
+
+ This variable is cached and may be configured if needed.
+
+.. variable:: CPACK_IFW_REPOGEN_EXECUTABLE
+
+ The path to "repogen" command line client.
+
+ This variable is cached and may be configured if needed.
+
+.. variable:: CPACK_IFW_INSTALLERBASE_EXECUTABLE
+
+ The path to "installerbase" installer executable base.
+
+ This variable is cached and may be configured if needed.
+
+.. variable:: CPACK_IFW_DEVTOOL_EXECUTABLE
+
+ The path to "devtool" command line client.
+
+ This variable is cached and may be configured if needed.
+
+
+Online installer
+^^^^^^^^^^^^^^^^
+
+By default CPack IFW generator makes offline installer. This means that all
+components will be packaged into a binary file.
+
+To make a component downloaded, you must set the ``DOWNLOADED`` option in
+:command:`cpack_add_component`.
+
+Then you would use the command :command:`cpack_configure_downloads`.
+If you set ``ALL`` option all components will be downloaded.
+
+You also can use command :command:`cpack_ifw_add_repository` and
+variable :variable:`CPACK_IFW_DOWNLOAD_ALL` for more specific configuration.
+
+CPack IFW generator creates "repository" dir in current binary dir. You
+would copy content of this dir to specified ``site`` (``url``).
+
+See Also
+^^^^^^^^
+
+Qt Installer Framework Manual:
+
+* Index page:
+ http://doc.qt.io/qtinstallerframework/index.html
+
+* Component Scripting:
+ http://doc.qt.io/qtinstallerframework/scripting.html
+
+* Predefined Variables:
+ http://doc.qt.io/qtinstallerframework/scripting.html#predefined-variables
+
+* Promoting Updates:
+ http://doc.qt.io/qtinstallerframework/ifw-updates.html
+
+Download Qt Installer Framework for you platform from Qt site:
+ http://download.qt.io/official_releases/qt-installer-framework
diff --git a/share/cmake-3.17/Help/cpack_gen/nsis.rst b/share/cmake-3.17/Help/cpack_gen/nsis.rst
new file mode 100644
index 0000000..a310e9f
--- /dev/null
+++ b/share/cmake-3.17/Help/cpack_gen/nsis.rst
@@ -0,0 +1,155 @@
+CPack NSIS Generator
+--------------------
+
+CPack Nullsoft Scriptable Install System (NSIS) generator specific options
+
+Variables specific to CPack NSIS generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The following variables are specific to the graphical installers built
+on Windows Nullsoft Scriptable Install System.
+
+.. variable:: CPACK_NSIS_INSTALL_ROOT
+
+ The default installation directory presented to the end user by the NSIS
+ installer is under this root dir. The full directory presented to the end
+ user is: ``${CPACK_NSIS_INSTALL_ROOT}/${CPACK_PACKAGE_INSTALL_DIRECTORY}``
+
+.. variable:: CPACK_NSIS_MUI_ICON
+
+ An icon filename. The name of a ``*.ico`` file used as the main icon for the
+ generated install program.
+
+.. variable:: CPACK_NSIS_MUI_UNIICON
+
+ An icon filename. The name of a ``*.ico`` file used as the main icon for the
+ generated uninstall program.
+
+.. variable:: CPACK_NSIS_INSTALLER_MUI_ICON_CODE
+
+ undocumented.
+
+.. variable:: CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP
+
+ The filename of a bitmap to use as the NSIS ``MUI_WELCOMEFINISHPAGE_BITMAP``.
+
+.. variable:: CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP
+
+ The filename of a bitmap to use as the NSIS ``MUI_UNWELCOMEFINISHPAGE_BITMAP``.
+
+.. variable:: CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS
+
+ Extra NSIS commands that will be added to the beginning of the install
+ Section, before your install tree is available on the target system.
+
+.. variable:: CPACK_NSIS_EXTRA_INSTALL_COMMANDS
+
+ Extra NSIS commands that will be added to the end of the install Section,
+ after your install tree is available on the target system.
+
+.. variable:: CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS
+
+ Extra NSIS commands that will be added to the uninstall Section, before
+ your install tree is removed from the target system.
+
+.. variable:: CPACK_NSIS_COMPRESSOR
+
+ The arguments that will be passed to the NSIS `SetCompressor` command.
+
+.. variable:: CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL
+
+ Ask about uninstalling previous versions first. If this is set to ``ON``,
+ then an installer will look for previous installed versions and if one is
+ found, ask the user whether to uninstall it before proceeding with the
+ install.
+
+.. variable:: CPACK_NSIS_MODIFY_PATH
+
+ Modify ``PATH`` toggle. If this is set to ``ON``, then an extra page will appear
+ in the installer that will allow the user to choose whether the program
+ directory should be added to the system ``PATH`` variable.
+
+.. variable:: CPACK_NSIS_DISPLAY_NAME
+
+ The display name string that appears in the Windows `Apps & features`
+ in `Control Panel`
+
+.. variable:: CPACK_NSIS_PACKAGE_NAME
+
+ The title displayed at the top of the installer.
+
+.. variable:: CPACK_NSIS_INSTALLED_ICON_NAME
+
+ A path to the executable that contains the installer icon.
+
+.. variable:: CPACK_NSIS_HELP_LINK
+
+ URL to a web site providing assistance in installing your application.
+
+.. variable:: CPACK_NSIS_URL_INFO_ABOUT
+
+ URL to a web site providing more information about your application.
+
+.. variable:: CPACK_NSIS_CONTACT
+
+ Contact information for questions and comments about the installation
+ process.
+
+.. variable:: CPACK_NSIS_<compName>_INSTALL_DIRECTORY
+
+ Custom install directory for the specified component ``<compName>`` instead
+ of ``$INSTDIR``.
+
+.. variable:: CPACK_NSIS_CREATE_ICONS_EXTRA
+
+ Additional NSIS commands for creating `Start Menu` shortcuts.
+
+.. variable:: CPACK_NSIS_DELETE_ICONS_EXTRA
+
+ Additional NSIS commands to uninstall `Start Menu` shortcuts.
+
+.. variable:: CPACK_NSIS_EXECUTABLES_DIRECTORY
+
+ Creating NSIS `Start Menu` links assumes that they are in ``bin`` unless this
+ variable is set. For example, you would set this to ``exec`` if your
+ executables are in an exec directory.
+
+.. variable:: CPACK_NSIS_MUI_FINISHPAGE_RUN
+
+ Specify an executable to add an option to run on the finish page of the
+ NSIS installer.
+
+.. variable:: CPACK_NSIS_MENU_LINKS
+
+ Specify links in ``[application]`` menu. This should contain a list of pair
+ ``link`` ``link name``. The link may be a URL or a path relative to
+ installation prefix. Like::
+
+ set(CPACK_NSIS_MENU_LINKS
+ "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake.html"
+ "CMake Help" "https://cmake.org" "CMake Web Site")
+
+.. variable:: CPACK_NSIS_UNINSTALL_NAME
+
+ Specify the name of the program to uninstall the version.
+ Default is ``Uninstall``.
+
+.. variable:: CPACK_NSIS_WELCOME_TITLE
+
+ The title to display on the top of the page for the welcome page.
+
+.. variable:: CPACK_NSIS_WELCOME_TITLE_3LINES
+
+ Display the title in the welcome page on 3 lines instead of 2.
+
+.. variable:: CPACK_NSIS_FINISH_TITLE
+
+ The title to display on the top of the page for the finish page.
+
+.. variable:: CPACK_NSIS_FINISH_TITLE_3LINES
+
+ Display the title in the finish page on 3 lines instead of 2.
+
+.. variable:: CPACK_NSIS_MUI_HEADERIMAGE
+
+ The image to display on the header of installers pages.
diff --git a/share/cmake-3.16/Help/cpack_gen/nuget.rst b/share/cmake-3.17/Help/cpack_gen/nuget.rst
index f8aa626..f8aa626 100644
--- a/share/cmake-3.16/Help/cpack_gen/nuget.rst
+++ b/share/cmake-3.17/Help/cpack_gen/nuget.rst
diff --git a/share/cmake-3.17/Help/cpack_gen/packagemaker.rst b/share/cmake-3.17/Help/cpack_gen/packagemaker.rst
new file mode 100644
index 0000000..c2a450e
--- /dev/null
+++ b/share/cmake-3.17/Help/cpack_gen/packagemaker.rst
@@ -0,0 +1,79 @@
+CPack PackageMaker Generator
+----------------------------
+
+PackageMaker CPack generator (macOS).
+
+.. deprecated:: 3.17
+
+ Xcode no longer distributes the PackageMaker tools.
+ This CPack generator will be removed in a future version of CPack.
+
+Variables specific to CPack PackageMaker generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The following variable is specific to installers built on Mac
+macOS using PackageMaker:
+
+.. variable:: CPACK_OSX_PACKAGE_VERSION
+
+ The version of macOS that the resulting PackageMaker archive should be
+ compatible with. Different versions of macOS support different
+ features. For example, CPack can only build component-based installers for
+ macOS 10.4 or newer, and can only build installers that download
+ components on-the-fly for macOS 10.5 or newer. If left blank, this value
+ will be set to the minimum version of macOS that supports the requested
+ features. Set this variable to some value (e.g., 10.4) only if you want to
+ guarantee that your installer will work on that version of macOS, and
+ don't mind missing extra features available in the installer shipping with
+ later versions of macOS.
+
+.. variable:: CPACK_PACKAGEMAKER_BACKGROUND
+
+ Adds a background to Distribtion XML if specified. The value contains the
+ path to image in ``Resources`` directory.
+
+.. variable:: CPACK_PACKAGEMAKER_BACKGROUND_ALIGNMENT
+
+ Adds an ``alignment`` attribute to the background in Distribution XML.
+ Refer to Apple documentation for valid values.
+
+.. variable:: CPACK_PACKAGEMAKER_BACKGROUND_SCALING
+
+ Adds a ``scaling`` attribute to the background in Distribution XML.
+ Refer to Apple documentation for valid values.
+
+.. variable:: CPACK_PACKAGEMAKER_BACKGROUND_MIME_TYPE
+
+ Adds a ``mime-type`` attribute to the background in Distribution XML.
+ The option contains MIME type of an image.
+
+.. variable:: CPACK_PACKAGEMAKER_BACKGROUND_UTI
+
+ Adds an ``uti`` attribute to the background in Distribution XML.
+ The option contains UTI type of an image.
+
+.. variable:: CPACK_PACKAGEMAKER_BACKGROUND_DARKAQUA
+
+ Adds a background for the Dark Aqua theme to Distribution XML if
+ specified. The value contains the path to image in ``Resources``
+ directory.
+
+.. variable:: CPACK_PACKAGEMAKER_BACKGROUND_DARKAQUA_ALIGNMENT
+
+ Does the same as :variable:`CPACK_PACKAGEMAKER_BACKGROUND_ALIGNMENT` option,
+ but for the dark theme.
+
+.. variable:: CPACK_PACKAGEMAKER_BACKGROUND_DARKAQUA_SCALING
+
+ Does the same as :variable:`CPACK_PACKAGEMAKER_BACKGROUND_SCALING` option,
+ but for the dark theme.
+
+.. variable:: CPACK_PACKAGEMAKER_BACKGROUND_DARKAQUA_MIME_TYPE
+
+ Does the same as :variable:`CPACK_PACKAGEMAKER_BACKGROUND_MIME_TYPE` option,
+ but for the dark theme.
+
+.. variable:: CPACK_PACKAGEMAKER_BACKGROUND_DARKAQUA_UTI
+
+ Does the same as :variable:`CPACK_PACKAGEMAKER_BACKGROUND_UTI` option,
+ but for the dark theme.
diff --git a/share/cmake-3.17/Help/cpack_gen/productbuild.rst b/share/cmake-3.17/Help/cpack_gen/productbuild.rst
new file mode 100644
index 0000000..82b79ae
--- /dev/null
+++ b/share/cmake-3.17/Help/cpack_gen/productbuild.rst
@@ -0,0 +1,118 @@
+CPack productbuild Generator
+----------------------------
+
+productbuild CPack generator (macOS).
+
+Variables specific to CPack productbuild generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The following variable is specific to installers built on Mac
+macOS using ProductBuild:
+
+.. variable:: CPACK_COMMAND_PRODUCTBUILD
+
+ Path to the ``productbuild(1)`` command used to generate a product archive for
+ the macOS Installer or Mac App Store. This variable can be used to override
+ the automatically detected command (or specify its location if the
+ auto-detection fails to find it).
+
+.. variable:: CPACK_PRODUCTBUILD_IDENTITY_NAME
+
+ Adds a digital signature to the resulting package.
+
+
+.. variable:: CPACK_PRODUCTBUILD_KEYCHAIN_PATH
+
+ Specify a specific keychain to search for the signing identity.
+
+
+.. variable:: CPACK_COMMAND_PKGBUILD
+
+ Path to the ``pkgbuild(1)`` command used to generate an macOS component package
+ on macOS. This variable can be used to override the automatically detected
+ command (or specify its location if the auto-detection fails to find it).
+
+
+.. variable:: CPACK_PKGBUILD_IDENTITY_NAME
+
+ Adds a digital signature to the resulting package.
+
+
+.. variable:: CPACK_PKGBUILD_KEYCHAIN_PATH
+
+ Specify a specific keychain to search for the signing identity.
+
+
+.. variable:: CPACK_PREFLIGHT_<COMP>_SCRIPT
+
+ Full path to a file that will be used as the ``preinstall`` script for the
+ named ``<COMP>`` component's package, where ``<COMP>`` is the uppercased
+ component name. No ``preinstall`` script is added if this variable is not
+ defined for a given component.
+
+
+.. variable:: CPACK_POSTFLIGHT_<COMP>_SCRIPT
+
+ Full path to a file that will be used as the ``postinstall`` script for the
+ named ``<COMP>`` component's package, where ``<COMP>`` is the uppercased
+ component name. No ``postinstall`` script is added if this variable is not
+ defined for a given component.
+
+.. variable:: CPACK_PRODUCTBUILD_RESOURCES_DIR
+
+ If specified the productbuild generator copies files from this directory
+ (including subdirectories) to the ``Resources`` directory. This is done
+ before the :variable:`CPACK_RESOURCE_FILE_WELCOME`,
+ :variable:`CPACK_RESOURCE_FILE_README`, and
+ :variable:`CPACK_RESOURCE_FILE_LICENSE` files are copied.
+
+.. variable:: CPACK_PRODUCTBUILD_BACKGROUND
+
+ Adds a background to Distribtion XML if specified. The value contains the
+ path to image in ``Resources`` directory.
+
+.. variable:: CPACK_PRODUCTBUILD_BACKGROUND_ALIGNMENT
+
+ Adds an ``alignment`` attribute to the background in Distribution XML.
+ Refer to Apple documentation for valid values.
+
+.. variable:: CPACK_PRODUCTBUILD_BACKGROUND_SCALING
+
+ Adds a ``scaling`` attribute to the background in Distribution XML.
+ Refer to Apple documentation for valid values.
+
+.. variable:: CPACK_PRODUCTBUILD_BACKGROUND_MIME_TYPE
+
+ Adds a ``mime-type`` attribute to the background in Distribution XML.
+ The option contains MIME type of an image.
+
+.. variable:: CPACK_PRODUCTBUILD_BACKGROUND_UTI
+
+ Adds an ``uti`` attribute to the background in Distribution XML.
+ The option contains UTI type of an image.
+
+.. variable:: CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA
+
+ Adds a background for the Dark Aqua theme to Distribution XML if
+ specified. The value contains the path to image in ``Resources``
+ directory.
+
+.. variable:: CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_ALIGNMENT
+
+ Does the same as :variable:`CPACK_PRODUCTBUILD_BACKGROUND_ALIGNMENT` option,
+ but for the dark theme.
+
+.. variable:: CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_SCALING
+
+ Does the same as :variable:`CPACK_PRODUCTBUILD_BACKGROUND_SCALING` option,
+ but for the dark theme.
+
+.. variable:: CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_MIME_TYPE
+
+ Does the same as :variable:`CPACK_PRODUCTBUILD_BACKGROUND_MIME_TYPE` option,
+ but for the dark theme.
+
+.. variable:: CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_UTI
+
+ Does the same as :variable:`CPACK_PRODUCTBUILD_BACKGROUND_UTI` option,
+ but for the dark theme.
diff --git a/share/cmake-3.16/Help/cpack_gen/rpm.rst b/share/cmake-3.17/Help/cpack_gen/rpm.rst
index 2693c7b..2693c7b 100644
--- a/share/cmake-3.16/Help/cpack_gen/rpm.rst
+++ b/share/cmake-3.17/Help/cpack_gen/rpm.rst
diff --git a/share/cmake-3.16/Help/cpack_gen/wix.rst b/share/cmake-3.17/Help/cpack_gen/wix.rst
index 7fb5a12..7fb5a12 100644
--- a/share/cmake-3.16/Help/cpack_gen/wix.rst
+++ b/share/cmake-3.17/Help/cpack_gen/wix.rst
diff --git a/share/cmake-3.16/Help/envvar/ASM_DIALECT.rst b/share/cmake-3.17/Help/envvar/ASM_DIALECT.rst
index a06e3cb..a06e3cb 100644
--- a/share/cmake-3.16/Help/envvar/ASM_DIALECT.rst
+++ b/share/cmake-3.17/Help/envvar/ASM_DIALECT.rst
diff --git a/share/cmake-3.16/Help/envvar/ASM_DIALECTFLAGS.rst b/share/cmake-3.17/Help/envvar/ASM_DIALECTFLAGS.rst
index 3c3b02a..3c3b02a 100644
--- a/share/cmake-3.16/Help/envvar/ASM_DIALECTFLAGS.rst
+++ b/share/cmake-3.17/Help/envvar/ASM_DIALECTFLAGS.rst
diff --git a/share/cmake-3.16/Help/envvar/CC.rst b/share/cmake-3.17/Help/envvar/CC.rst
index ef12059..ef12059 100644
--- a/share/cmake-3.16/Help/envvar/CC.rst
+++ b/share/cmake-3.17/Help/envvar/CC.rst
diff --git a/share/cmake-3.16/Help/envvar/CFLAGS.rst b/share/cmake-3.17/Help/envvar/CFLAGS.rst
index fda9ccc..fda9ccc 100644
--- a/share/cmake-3.16/Help/envvar/CFLAGS.rst
+++ b/share/cmake-3.17/Help/envvar/CFLAGS.rst
diff --git a/share/cmake-3.16/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst b/share/cmake-3.17/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst
index 199ca3e..199ca3e 100644
--- a/share/cmake-3.16/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst
+++ b/share/cmake-3.17/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst
diff --git a/share/cmake-3.16/Help/envvar/CMAKE_CONFIG_TYPE.rst b/share/cmake-3.17/Help/envvar/CMAKE_CONFIG_TYPE.rst
index 168593d..168593d 100644
--- a/share/cmake-3.16/Help/envvar/CMAKE_CONFIG_TYPE.rst
+++ b/share/cmake-3.17/Help/envvar/CMAKE_CONFIG_TYPE.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst b/share/cmake-3.17/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst
new file mode 100644
index 0000000..e9e0810
--- /dev/null
+++ b/share/cmake-3.17/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst
@@ -0,0 +1,9 @@
+CMAKE_EXPORT_COMPILE_COMMANDS
+-----------------------------
+
+.. include:: ENV_VAR.txt
+
+The default value for :variable:`CMAKE_EXPORT_COMPILE_COMMANDS` when there
+is no explicit configuration given on the first run while creating a new
+build tree. On later runs in an existing build tree the value persists in
+the cache as :variable:`CMAKE_EXPORT_COMPILE_COMMANDS`.
diff --git a/share/cmake-3.16/Help/envvar/CMAKE_GENERATOR.rst b/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR.rst
index f2d055f..f2d055f 100644
--- a/share/cmake-3.16/Help/envvar/CMAKE_GENERATOR.rst
+++ b/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR.rst
diff --git a/share/cmake-3.16/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst b/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst
index 1654fa1..1654fa1 100644
--- a/share/cmake-3.16/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst
+++ b/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst
diff --git a/share/cmake-3.16/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst b/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst
index 917b30b..917b30b 100644
--- a/share/cmake-3.16/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst
+++ b/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst
diff --git a/share/cmake-3.16/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst b/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst
index 7ac3856..7ac3856 100644
--- a/share/cmake-3.16/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst
+++ b/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst b/share/cmake-3.17/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst
new file mode 100644
index 0000000..4f91e9a
--- /dev/null
+++ b/share/cmake-3.17/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst
@@ -0,0 +1,10 @@
+CMAKE_<LANG>_COMPILER_LAUNCHER
+------------------------------
+
+.. include:: ENV_VAR.txt
+
+Default compiler launcher to use for the specified language. Will only be used
+by CMake to initialize the variable on the first configuration. Afterwards, it
+is available through the cache setting of the variable of the same name. For
+any configuration run (including the first), the environment variable will be
+ignored if the :variable:`CMAKE_<LANG>_COMPILER_LAUNCHER` variable is defined.
diff --git a/share/cmake-3.16/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst b/share/cmake-3.17/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst
index 77ead4d..77ead4d 100644
--- a/share/cmake-3.16/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst
+++ b/share/cmake-3.17/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst
diff --git a/share/cmake-3.16/Help/envvar/CMAKE_NO_VERBOSE.rst b/share/cmake-3.17/Help/envvar/CMAKE_NO_VERBOSE.rst
index 149efbd..149efbd 100644
--- a/share/cmake-3.16/Help/envvar/CMAKE_NO_VERBOSE.rst
+++ b/share/cmake-3.17/Help/envvar/CMAKE_NO_VERBOSE.rst
diff --git a/share/cmake-3.16/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst b/share/cmake-3.17/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst
index ef7d547..ef7d547 100644
--- a/share/cmake-3.16/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst
+++ b/share/cmake-3.17/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst
diff --git a/share/cmake-3.16/Help/envvar/CSFLAGS.rst b/share/cmake-3.17/Help/envvar/CSFLAGS.rst
index 404bb59..404bb59 100644
--- a/share/cmake-3.16/Help/envvar/CSFLAGS.rst
+++ b/share/cmake-3.17/Help/envvar/CSFLAGS.rst
diff --git a/share/cmake-3.16/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst b/share/cmake-3.17/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst
index e1991b2..e1991b2 100644
--- a/share/cmake-3.16/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst
+++ b/share/cmake-3.17/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst
diff --git a/share/cmake-3.16/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst b/share/cmake-3.17/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst
index d8b4262..d8b4262 100644
--- a/share/cmake-3.16/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst
+++ b/share/cmake-3.17/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst
diff --git a/share/cmake-3.16/Help/envvar/CTEST_PARALLEL_LEVEL.rst b/share/cmake-3.17/Help/envvar/CTEST_PARALLEL_LEVEL.rst
index fd4936e..fd4936e 100644
--- a/share/cmake-3.16/Help/envvar/CTEST_PARALLEL_LEVEL.rst
+++ b/share/cmake-3.17/Help/envvar/CTEST_PARALLEL_LEVEL.rst
diff --git a/share/cmake-3.16/Help/envvar/CTEST_PROGRESS_OUTPUT.rst b/share/cmake-3.17/Help/envvar/CTEST_PROGRESS_OUTPUT.rst
index b36a6b8..b36a6b8 100644
--- a/share/cmake-3.16/Help/envvar/CTEST_PROGRESS_OUTPUT.rst
+++ b/share/cmake-3.17/Help/envvar/CTEST_PROGRESS_OUTPUT.rst
diff --git a/share/cmake-3.16/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst b/share/cmake-3.17/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst
index 79dbb79..79dbb79 100644
--- a/share/cmake-3.16/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst
+++ b/share/cmake-3.17/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst
diff --git a/share/cmake-3.16/Help/envvar/CUDACXX.rst b/share/cmake-3.17/Help/envvar/CUDACXX.rst
index 10c0f9d..10c0f9d 100644
--- a/share/cmake-3.16/Help/envvar/CUDACXX.rst
+++ b/share/cmake-3.17/Help/envvar/CUDACXX.rst
diff --git a/share/cmake-3.16/Help/envvar/CUDAFLAGS.rst b/share/cmake-3.17/Help/envvar/CUDAFLAGS.rst
index 4456d6b..4456d6b 100644
--- a/share/cmake-3.16/Help/envvar/CUDAFLAGS.rst
+++ b/share/cmake-3.17/Help/envvar/CUDAFLAGS.rst
diff --git a/share/cmake-3.16/Help/envvar/CUDAHOSTCXX.rst b/share/cmake-3.17/Help/envvar/CUDAHOSTCXX.rst
index b9f65bd..b9f65bd 100644
--- a/share/cmake-3.16/Help/envvar/CUDAHOSTCXX.rst
+++ b/share/cmake-3.17/Help/envvar/CUDAHOSTCXX.rst
diff --git a/share/cmake-3.16/Help/envvar/CXX.rst b/share/cmake-3.17/Help/envvar/CXX.rst
index d655350..d655350 100644
--- a/share/cmake-3.16/Help/envvar/CXX.rst
+++ b/share/cmake-3.17/Help/envvar/CXX.rst
diff --git a/share/cmake-3.16/Help/envvar/CXXFLAGS.rst b/share/cmake-3.17/Help/envvar/CXXFLAGS.rst
index d7296dc..d7296dc 100644
--- a/share/cmake-3.16/Help/envvar/CXXFLAGS.rst
+++ b/share/cmake-3.17/Help/envvar/CXXFLAGS.rst
diff --git a/share/cmake-3.16/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst b/share/cmake-3.17/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst
index 6a52d64..6a52d64 100644
--- a/share/cmake-3.16/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst
+++ b/share/cmake-3.17/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst
diff --git a/share/cmake-3.16/Help/envvar/DESTDIR.rst b/share/cmake-3.17/Help/envvar/DESTDIR.rst
index d2144ae..d2144ae 100644
--- a/share/cmake-3.16/Help/envvar/DESTDIR.rst
+++ b/share/cmake-3.17/Help/envvar/DESTDIR.rst
diff --git a/share/cmake-3.16/Help/envvar/ENV_VAR.txt b/share/cmake-3.17/Help/envvar/ENV_VAR.txt
index e1e70cd..e1e70cd 100644
--- a/share/cmake-3.16/Help/envvar/ENV_VAR.txt
+++ b/share/cmake-3.17/Help/envvar/ENV_VAR.txt
diff --git a/share/cmake-3.16/Help/envvar/FC.rst b/share/cmake-3.17/Help/envvar/FC.rst
index d6cabbc..d6cabbc 100644
--- a/share/cmake-3.16/Help/envvar/FC.rst
+++ b/share/cmake-3.17/Help/envvar/FC.rst
diff --git a/share/cmake-3.16/Help/envvar/FFLAGS.rst b/share/cmake-3.17/Help/envvar/FFLAGS.rst
index 02d3c34..02d3c34 100644
--- a/share/cmake-3.16/Help/envvar/FFLAGS.rst
+++ b/share/cmake-3.17/Help/envvar/FFLAGS.rst
diff --git a/share/cmake-3.16/Help/envvar/LDFLAGS.rst b/share/cmake-3.17/Help/envvar/LDFLAGS.rst
index 816d6ef..816d6ef 100644
--- a/share/cmake-3.16/Help/envvar/LDFLAGS.rst
+++ b/share/cmake-3.17/Help/envvar/LDFLAGS.rst
diff --git a/share/cmake-3.16/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst b/share/cmake-3.17/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst
index 662bd03..662bd03 100644
--- a/share/cmake-3.16/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst
+++ b/share/cmake-3.17/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst
diff --git a/share/cmake-3.16/Help/envvar/PackageName_ROOT.rst b/share/cmake-3.17/Help/envvar/PackageName_ROOT.rst
index 82b0a06..82b0a06 100644
--- a/share/cmake-3.16/Help/envvar/PackageName_ROOT.rst
+++ b/share/cmake-3.17/Help/envvar/PackageName_ROOT.rst
diff --git a/share/cmake-3.16/Help/envvar/RC.rst b/share/cmake-3.17/Help/envvar/RC.rst
index 557520e..557520e 100644
--- a/share/cmake-3.16/Help/envvar/RC.rst
+++ b/share/cmake-3.17/Help/envvar/RC.rst
diff --git a/share/cmake-3.16/Help/envvar/RCFLAGS.rst b/share/cmake-3.17/Help/envvar/RCFLAGS.rst
index 45419fe..45419fe 100644
--- a/share/cmake-3.16/Help/envvar/RCFLAGS.rst
+++ b/share/cmake-3.17/Help/envvar/RCFLAGS.rst
diff --git a/share/cmake-3.16/Help/envvar/SWIFTC.rst b/share/cmake-3.17/Help/envvar/SWIFTC.rst
index b12e51d..b12e51d 100644
--- a/share/cmake-3.16/Help/envvar/SWIFTC.rst
+++ b/share/cmake-3.17/Help/envvar/SWIFTC.rst
diff --git a/share/cmake-3.16/Help/envvar/VERBOSE.rst b/share/cmake-3.17/Help/envvar/VERBOSE.rst
index 2d775a5..2d775a5 100644
--- a/share/cmake-3.16/Help/envvar/VERBOSE.rst
+++ b/share/cmake-3.17/Help/envvar/VERBOSE.rst
diff --git a/share/cmake-3.16/Help/generator/Borland Makefiles.rst b/share/cmake-3.17/Help/generator/Borland Makefiles.rst
index c00d00a..c00d00a 100644
--- a/share/cmake-3.16/Help/generator/Borland Makefiles.rst
+++ b/share/cmake-3.17/Help/generator/Borland Makefiles.rst
diff --git a/share/cmake-3.16/Help/generator/CodeBlocks.rst b/share/cmake-3.17/Help/generator/CodeBlocks.rst
index d830542..d830542 100644
--- a/share/cmake-3.16/Help/generator/CodeBlocks.rst
+++ b/share/cmake-3.17/Help/generator/CodeBlocks.rst
diff --git a/share/cmake-3.16/Help/generator/CodeLite.rst b/share/cmake-3.17/Help/generator/CodeLite.rst
index 46fa5be..46fa5be 100644
--- a/share/cmake-3.16/Help/generator/CodeLite.rst
+++ b/share/cmake-3.17/Help/generator/CodeLite.rst
diff --git a/share/cmake-3.16/Help/generator/Eclipse CDT4.rst b/share/cmake-3.17/Help/generator/Eclipse CDT4.rst
index 634e2b6..634e2b6 100644
--- a/share/cmake-3.16/Help/generator/Eclipse CDT4.rst
+++ b/share/cmake-3.17/Help/generator/Eclipse CDT4.rst
diff --git a/share/cmake-3.16/Help/generator/Green Hills MULTI.rst b/share/cmake-3.17/Help/generator/Green Hills MULTI.rst
index dffc679..dffc679 100644
--- a/share/cmake-3.16/Help/generator/Green Hills MULTI.rst
+++ b/share/cmake-3.17/Help/generator/Green Hills MULTI.rst
diff --git a/share/cmake-3.16/Help/generator/Kate.rst b/share/cmake-3.17/Help/generator/Kate.rst
index 129bf63..129bf63 100644
--- a/share/cmake-3.16/Help/generator/Kate.rst
+++ b/share/cmake-3.17/Help/generator/Kate.rst
diff --git a/share/cmake-3.16/Help/generator/MSYS Makefiles.rst b/share/cmake-3.17/Help/generator/MSYS Makefiles.rst
index 75b9fe5..75b9fe5 100644
--- a/share/cmake-3.16/Help/generator/MSYS Makefiles.rst
+++ b/share/cmake-3.17/Help/generator/MSYS Makefiles.rst
diff --git a/share/cmake-3.16/Help/generator/MinGW Makefiles.rst b/share/cmake-3.17/Help/generator/MinGW Makefiles.rst
index 134ea70..134ea70 100644
--- a/share/cmake-3.16/Help/generator/MinGW Makefiles.rst
+++ b/share/cmake-3.17/Help/generator/MinGW Makefiles.rst
diff --git a/share/cmake-3.16/Help/generator/NMake Makefiles JOM.rst b/share/cmake-3.17/Help/generator/NMake Makefiles JOM.rst
index 3a8744c..3a8744c 100644
--- a/share/cmake-3.16/Help/generator/NMake Makefiles JOM.rst
+++ b/share/cmake-3.17/Help/generator/NMake Makefiles JOM.rst
diff --git a/share/cmake-3.16/Help/generator/NMake Makefiles.rst b/share/cmake-3.17/Help/generator/NMake Makefiles.rst
index 89f2479..89f2479 100644
--- a/share/cmake-3.16/Help/generator/NMake Makefiles.rst
+++ b/share/cmake-3.17/Help/generator/NMake Makefiles.rst
diff --git a/share/cmake-3.17/Help/generator/Ninja Multi-Config.rst b/share/cmake-3.17/Help/generator/Ninja Multi-Config.rst
new file mode 100644
index 0000000..1f68535
--- /dev/null
+++ b/share/cmake-3.17/Help/generator/Ninja Multi-Config.rst
@@ -0,0 +1,121 @@
+Ninja Multi-Config
+------------------
+
+Generates multiple ``build-<Config>.ninja`` files.
+
+This generator is very much like the :generator:`Ninja` generator, but with
+some key differences. Only these differences will be discussed in this
+document.
+
+Unlike the :generator:`Ninja` generator, ``Ninja Multi-Config`` generates
+multiple configurations at once with :variable:`CMAKE_CONFIGURATION_TYPES`
+instead of only one configuration with :variable:`CMAKE_BUILD_TYPE`. One
+``build-<Config>.ninja`` file will be generated for each of these
+configurations (with ``<Config>`` being the configuration name.) These files
+are intended to be run with ``ninja -f build-<Config>.ninja``. A
+``build.ninja`` file is also generated, using the configuration from either
+:variable:`CMAKE_DEFAULT_BUILD_TYPE` or the first item from
+:variable:`CMAKE_CONFIGURATION_TYPES`.
+
+``cmake --build . --config <Config>`` will always use ``build-<Config>.ninja``
+to build. If no ``--config`` argument is specified, ``cmake --build .`` will
+default to ``build-Debug.ninja``, unless a ``build.ninja`` is generated (see
+below), in which case that will be used instead.
+
+Each ``build-<Config>.ninja`` file contains ``<target>`` targets as well as
+``<target>:<Config>`` targets, where ``<Config>`` is the same as the
+configuration specified in ``build-<Config>.ninja`` Additionally, if
+cross-config mode is enabled, ``build-<Config>.ninja`` may contain
+``<target>:<OtherConfig>`` targets, where ``<OtherConfig>`` is a cross-config,
+as well as ``<target>:all``, which builds the target in all cross-configs. See
+below for how to enable cross-config mode.
+
+The ``Ninja Multi-Config`` generator recognizes the following variables:
+
+:variable:`CMAKE_CONFIGURATION_TYPES`
+ Specifies the total set of configurations to build. See the variable's
+ documentation for more information.
+
+:variable:`CMAKE_CROSS_CONFIGS`
+ Specifies a :ref:`semicolon-separated list <CMake Language Lists>` of
+ configurations available from all ``build-<Config>.ninja`` files.
+ This variable activates cross-config mode.
+ Targets from each config specified in this variable can be built from any
+ ``build-<Config>.ninja`` file. Custom commands will use the configuration
+ native to ``build-<Config>.ninja``. If it is set to ``all``, all
+ configurations from :variable:`CMAKE_CONFIGURATION_TYPES` are cross-configs.
+ If it is not specified, or empty, each ``build-<Config>.ninja`` file will
+ only contain build rules for its own configuration.
+
+ The value of this variable must be a subset of
+ :variable:`CMAKE_CONFIGURATION_TYPES`.
+
+:variable:`CMAKE_DEFAULT_BUILD_TYPE`
+ Specifies the configuration to use by default in a ``build.ninja`` file. If
+ this variable is specified, ``build.ninja`` uses build rules from
+ ``build-<Config>.ninja`` by default. All custom commands are executed with
+ this configuration. If the variable is not specified, the first item from
+ :variable:`CMAKE_CONFIGURATION_TYPES` is used instead.
+
+ The value of this variable must be one of the items from
+ :variable:`CMAKE_CONFIGURATION_TYPES`.
+
+:variable:`CMAKE_DEFAULT_CONFIGS`
+ Specifies a :ref:`semicolon-separated list <CMake Language Lists>` of
+ configurations to build for a target in ``build.ninja``
+ if no ``:<Config>`` suffix is specified. If it is set to ``all``, all
+ configurations from :variable:`CMAKE_CROSS_CONFIGS` are used. If
+ it is not specified, it defaults to
+ :variable:`CMAKE_DEFAULT_BUILD_TYPE`.
+
+ For example, if you set
+ :variable:`CMAKE_DEFAULT_BUILD_TYPE` to ``Release``, but
+ set :variable:`CMAKE_DEFAULT_CONFIGS` to ``Debug`` or ``all``,
+ all ``<target>`` aliases in ``build.ninja`` will resolve to
+ ``<target>:Debug`` or ``<target>:all``, but custom commands will still use
+ the ``Release`` configuration.
+
+ The value of this variable must be a subset of
+ :variable:`CMAKE_CROSS_CONFIGS` or be the same as
+ :variable:`CMAKE_DEFAULT_BUILD_TYPE`. It must not be
+ specified if :variable:`CMAKE_DEFAULT_BUILD_TYPE` or
+ :variable:`CMAKE_CROSS_CONFIGS` is not used.
+
+Consider the following example:
+
+.. code-block:: cmake
+
+ cmake_minimum_required(VERSION 3.16)
+ project(MultiConfigNinja C)
+
+ add_executable(generator generator.c)
+ add_custom_command(OUTPUT generated.c COMMAND generator generated.c)
+ add_library(generated ${CMAKE_BINARY_DIR}/generated.c)
+
+Now assume you configure the project with ``Ninja Multi-Config`` and run one of
+the following commands:
+
+.. code-block:: shell
+
+ ninja -f build-Debug.ninja generated
+ # OR
+ cmake --build . --config Debug --target generated
+
+This would build the ``Debug`` configuration of ``generator``, which would be
+used to generate ``generated.c``, which would be used to build the ``Debug``
+configuration of ``generated``.
+
+But if :variable:`CMAKE_CROSS_CONFIGS` is set to ``all``, and you run the
+following instead:
+
+.. code-block:: shell
+
+ ninja -f build-Release.ninja generated:Debug
+ # OR
+ cmake --build . --config Release --target generated:Debug
+
+This would build the ``Release`` configuration of ``generator``, which would be
+used to generate ``generated.c``, which would be used to build the ``Debug``
+configuration of ``generated``. This is useful for running a release-optimized
+version of a generator utility while still building the debug version of the
+targets built with the generated code.
diff --git a/share/cmake-3.17/Help/generator/Ninja.rst b/share/cmake-3.17/Help/generator/Ninja.rst
new file mode 100644
index 0000000..275055d
--- /dev/null
+++ b/share/cmake-3.17/Help/generator/Ninja.rst
@@ -0,0 +1,46 @@
+Ninja
+-----
+
+Generates ``build.ninja`` files.
+
+A ``build.ninja`` file is generated into the build tree. Use the ninja
+program to build the project through the ``all`` target and install the
+project through the ``install`` (or ``install/strip``) target.
+
+For each subdirectory ``sub/dir`` of the project, additional targets
+are generated:
+
+``sub/dir/all``
+ Depends on all targets required by the subdirectory.
+
+``sub/dir/install``
+ Runs the install step in the subdirectory, if any.
+
+``sub/dir/install/strip``
+ Runs the install step in the subdirectory followed by a ``CMAKE_STRIP`` command,
+ if any.
+
+ The ``CMAKE_STRIP`` variable will contain the platform's ``strip`` utility, which
+ removes symbols information from generated binaries.
+
+``sub/dir/test``
+ Runs the test step in the subdirectory, if any.
+
+``sub/dir/package``
+ Runs the package step in the subdirectory, if any.
+
+Fortran Support
+^^^^^^^^^^^^^^^
+
+The ``Ninja`` generator conditionally supports Fortran when the ``ninja``
+tool has the required features. As of this version of CMake the needed
+features have not been integrated into upstream Ninja. Kitware maintains
+a branch of Ninja with the required features on `github.com/Kitware/ninja`_.
+
+.. _`github.com/Kitware/ninja`: https://github.com/Kitware/ninja/tree/features-for-fortran#readme
+
+See Also
+^^^^^^^^
+
+The :generator:`Ninja Multi-Config` generator is similar to the ``Ninja``
+generator, but generates multiple configurations at once.
diff --git a/share/cmake-3.16/Help/generator/Sublime Text 2.rst b/share/cmake-3.17/Help/generator/Sublime Text 2.rst
index 0a07ea9..0a07ea9 100644
--- a/share/cmake-3.16/Help/generator/Sublime Text 2.rst
+++ b/share/cmake-3.17/Help/generator/Sublime Text 2.rst
diff --git a/share/cmake-3.16/Help/generator/Unix Makefiles.rst b/share/cmake-3.17/Help/generator/Unix Makefiles.rst
index dfe4ecb..dfe4ecb 100644
--- a/share/cmake-3.16/Help/generator/Unix Makefiles.rst
+++ b/share/cmake-3.17/Help/generator/Unix Makefiles.rst
diff --git a/share/cmake-3.16/Help/generator/VS_TOOLSET_HOST_ARCH.txt b/share/cmake-3.17/Help/generator/VS_TOOLSET_HOST_ARCH.txt
index 0293631..0293631 100644
--- a/share/cmake-3.16/Help/generator/VS_TOOLSET_HOST_ARCH.txt
+++ b/share/cmake-3.17/Help/generator/VS_TOOLSET_HOST_ARCH.txt
diff --git a/share/cmake-3.16/Help/generator/Visual Studio 10 2010.rst b/share/cmake-3.17/Help/generator/Visual Studio 10 2010.rst
index 4bf9a8f..4bf9a8f 100644
--- a/share/cmake-3.16/Help/generator/Visual Studio 10 2010.rst
+++ b/share/cmake-3.17/Help/generator/Visual Studio 10 2010.rst
diff --git a/share/cmake-3.16/Help/generator/Visual Studio 11 2012.rst b/share/cmake-3.17/Help/generator/Visual Studio 11 2012.rst
index 5d89a6e..5d89a6e 100644
--- a/share/cmake-3.16/Help/generator/Visual Studio 11 2012.rst
+++ b/share/cmake-3.17/Help/generator/Visual Studio 11 2012.rst
diff --git a/share/cmake-3.16/Help/generator/Visual Studio 12 2013.rst b/share/cmake-3.17/Help/generator/Visual Studio 12 2013.rst
index fb8e021..fb8e021 100644
--- a/share/cmake-3.16/Help/generator/Visual Studio 12 2013.rst
+++ b/share/cmake-3.17/Help/generator/Visual Studio 12 2013.rst
diff --git a/share/cmake-3.16/Help/generator/Visual Studio 14 2015.rst b/share/cmake-3.17/Help/generator/Visual Studio 14 2015.rst
index 7383f7a..7383f7a 100644
--- a/share/cmake-3.16/Help/generator/Visual Studio 14 2015.rst
+++ b/share/cmake-3.17/Help/generator/Visual Studio 14 2015.rst
diff --git a/share/cmake-3.16/Help/generator/Visual Studio 15 2017.rst b/share/cmake-3.17/Help/generator/Visual Studio 15 2017.rst
index 7e6f0fb..7e6f0fb 100644
--- a/share/cmake-3.16/Help/generator/Visual Studio 15 2017.rst
+++ b/share/cmake-3.17/Help/generator/Visual Studio 15 2017.rst
diff --git a/share/cmake-3.16/Help/generator/Visual Studio 16 2019.rst b/share/cmake-3.17/Help/generator/Visual Studio 16 2019.rst
index 4aec7f7..4aec7f7 100644
--- a/share/cmake-3.16/Help/generator/Visual Studio 16 2019.rst
+++ b/share/cmake-3.17/Help/generator/Visual Studio 16 2019.rst
diff --git a/share/cmake-3.16/Help/generator/Visual Studio 6.rst b/share/cmake-3.17/Help/generator/Visual Studio 6.rst
index 2dd07e0..2dd07e0 100644
--- a/share/cmake-3.16/Help/generator/Visual Studio 6.rst
+++ b/share/cmake-3.17/Help/generator/Visual Studio 6.rst
diff --git a/share/cmake-3.16/Help/generator/Visual Studio 7 .NET 2003.rst b/share/cmake-3.17/Help/generator/Visual Studio 7 .NET 2003.rst
index d4c7869..d4c7869 100644
--- a/share/cmake-3.16/Help/generator/Visual Studio 7 .NET 2003.rst
+++ b/share/cmake-3.17/Help/generator/Visual Studio 7 .NET 2003.rst
diff --git a/share/cmake-3.16/Help/generator/Visual Studio 7.rst b/share/cmake-3.17/Help/generator/Visual Studio 7.rst
index 54d29df..54d29df 100644
--- a/share/cmake-3.16/Help/generator/Visual Studio 7.rst
+++ b/share/cmake-3.17/Help/generator/Visual Studio 7.rst
diff --git a/share/cmake-3.16/Help/generator/Visual Studio 8 2005.rst b/share/cmake-3.17/Help/generator/Visual Studio 8 2005.rst
index 947e7a5..947e7a5 100644
--- a/share/cmake-3.16/Help/generator/Visual Studio 8 2005.rst
+++ b/share/cmake-3.17/Help/generator/Visual Studio 8 2005.rst
diff --git a/share/cmake-3.16/Help/generator/Visual Studio 9 2008.rst b/share/cmake-3.17/Help/generator/Visual Studio 9 2008.rst
index a09d047..a09d047 100644
--- a/share/cmake-3.16/Help/generator/Visual Studio 9 2008.rst
+++ b/share/cmake-3.17/Help/generator/Visual Studio 9 2008.rst
diff --git a/share/cmake-3.16/Help/generator/Watcom WMake.rst b/share/cmake-3.17/Help/generator/Watcom WMake.rst
index 09bdc3d..09bdc3d 100644
--- a/share/cmake-3.16/Help/generator/Watcom WMake.rst
+++ b/share/cmake-3.17/Help/generator/Watcom WMake.rst
diff --git a/share/cmake-3.16/Help/generator/Xcode.rst b/share/cmake-3.17/Help/generator/Xcode.rst
index d893ac5..d893ac5 100644
--- a/share/cmake-3.16/Help/generator/Xcode.rst
+++ b/share/cmake-3.17/Help/generator/Xcode.rst
diff --git a/share/cmake-3.16/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt b/share/cmake-3.17/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt
index 6797d0e..6797d0e 100644
--- a/share/cmake-3.16/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt
+++ b/share/cmake-3.17/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt
diff --git a/share/cmake-3.16/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt b/share/cmake-3.17/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt
index a54d728..a54d728 100644
--- a/share/cmake-3.16/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt
+++ b/share/cmake-3.17/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt
diff --git a/share/cmake-3.16/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt b/share/cmake-3.17/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt
index 46e84ac..46e84ac 100644
--- a/share/cmake-3.16/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt
+++ b/share/cmake-3.17/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt
diff --git a/share/cmake-3.17/Help/index.rst b/share/cmake-3.17/Help/index.rst
new file mode 100644
index 0000000..4d9a9c8
--- /dev/null
+++ b/share/cmake-3.17/Help/index.rst
@@ -0,0 +1,104 @@
+.. title:: CMake Reference Documentation
+
+Introduction
+############
+
+CMake is a tool to manage building of source code. Originally, CMake was
+designed as a generator for various dialects of ``Makefile``, today
+CMake generates modern buildsystems such as ``Ninja`` as well as project
+files for IDEs such as Visual Studio and Xcode.
+
+CMake is widely used for the C and C++ languages, but it may be used to
+build source code of other languages too.
+
+People encountering CMake for the first time may have different initial
+goals. To learn how to build a source code package downloaded from the
+internet, start with the :guide:`User Interaction Guide`.
+This will detail the steps needed to run the :manual:`cmake(1)` or
+:manual:`cmake-gui(1)` executable and how to choose a generator, and
+how to complete the build.
+
+The :guide:`Using Dependencies Guide` is aimed at developers
+wishing to get started using a third-party library.
+
+For developers starting a project using CMake, the :guide:`CMake Tutorial`
+is a suitable starting point. The :manual:`cmake-buildsystem(7)`
+manual is aimed at developers expanding their knowledge of maintaining
+a buildsystem and becoming familiar with the build targets that
+can be represented in CMake. The :manual:`cmake-packages(7)` manual
+explains how to create packages which can easily be consumed by
+third-party CMake-based buildsystems.
+
+Command-Line Tools
+##################
+
+.. toctree::
+ :maxdepth: 1
+
+ /manual/cmake.1
+ /manual/ctest.1
+ /manual/cpack.1
+
+Interactive Dialogs
+###################
+
+.. toctree::
+ :maxdepth: 1
+
+ /manual/cmake-gui.1
+ /manual/ccmake.1
+
+Reference Manuals
+#################
+
+.. toctree::
+ :maxdepth: 1
+
+ /manual/cmake-buildsystem.7
+ /manual/cmake-commands.7
+ /manual/cmake-compile-features.7
+ /manual/cmake-developer.7
+ /manual/cmake-env-variables.7
+ /manual/cmake-file-api.7
+ /manual/cmake-generator-expressions.7
+ /manual/cmake-generators.7
+ /manual/cmake-language.7
+ /manual/cmake-modules.7
+ /manual/cmake-packages.7
+ /manual/cmake-policies.7
+ /manual/cmake-properties.7
+ /manual/cmake-qt.7
+ /manual/cmake-server.7
+ /manual/cmake-toolchains.7
+ /manual/cmake-variables.7
+ /manual/cpack-generators.7
+
+.. only:: not man
+
+ Guides
+ ######
+
+ .. toctree::
+ :maxdepth: 1
+
+ /guide/tutorial/index
+ /guide/user-interaction/index
+ /guide/using-dependencies/index
+
+.. only:: html or text
+
+ Release Notes
+ #############
+
+ .. toctree::
+ :maxdepth: 1
+
+ /release/index
+
+.. only:: html
+
+ Index and Search
+ ################
+
+ * :ref:`genindex`
+ * :ref:`search`
diff --git a/share/cmake-3.17/Help/manual/ID_RESERVE.txt b/share/cmake-3.17/Help/manual/ID_RESERVE.txt
new file mode 100644
index 0000000..be2b163
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/ID_RESERVE.txt
@@ -0,0 +1,7 @@
+.. note::
+
+ CMake reserves identifiers that:
+
+ * begin with ``CMAKE_`` (upper-, lower-, or mixed-case), or
+ * begin with ``_CMAKE_`` (upper-, lower-, or mixed-case), or
+ * begin with ``_`` followed by the name of any :manual:`CMake Command <cmake-commands(7)>`.
diff --git a/share/cmake-3.16/Help/manual/LINKS.txt b/share/cmake-3.17/Help/manual/LINKS.txt
index 810fa0b..810fa0b 100644
--- a/share/cmake-3.16/Help/manual/LINKS.txt
+++ b/share/cmake-3.17/Help/manual/LINKS.txt
diff --git a/share/cmake-3.16/Help/manual/OPTIONS_BUILD.txt b/share/cmake-3.17/Help/manual/OPTIONS_BUILD.txt
index 0947e41..0947e41 100644
--- a/share/cmake-3.16/Help/manual/OPTIONS_BUILD.txt
+++ b/share/cmake-3.17/Help/manual/OPTIONS_BUILD.txt
diff --git a/share/cmake-3.16/Help/manual/OPTIONS_HELP.txt b/share/cmake-3.17/Help/manual/OPTIONS_HELP.txt
index feeca7d..feeca7d 100644
--- a/share/cmake-3.16/Help/manual/OPTIONS_HELP.txt
+++ b/share/cmake-3.17/Help/manual/OPTIONS_HELP.txt
diff --git a/share/cmake-3.17/Help/manual/VS-Choose-Arch.png b/share/cmake-3.17/Help/manual/VS-Choose-Arch.png
new file mode 100644
index 0000000..816b0f4
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/VS-Choose-Arch.png
Binary files differ
diff --git a/share/cmake-3.16/Help/manual/ccmake.1.rst b/share/cmake-3.17/Help/manual/ccmake.1.rst
index 60d45a3..60d45a3 100644
--- a/share/cmake-3.16/Help/manual/ccmake.1.rst
+++ b/share/cmake-3.17/Help/manual/ccmake.1.rst
diff --git a/share/cmake-3.16/Help/manual/cmake-buildsystem.7.rst b/share/cmake-3.17/Help/manual/cmake-buildsystem.7.rst
index d8142a2..d8142a2 100644
--- a/share/cmake-3.16/Help/manual/cmake-buildsystem.7.rst
+++ b/share/cmake-3.17/Help/manual/cmake-buildsystem.7.rst
diff --git a/share/cmake-3.16/Help/manual/cmake-commands.7.rst b/share/cmake-3.17/Help/manual/cmake-commands.7.rst
index 59ba897..59ba897 100644
--- a/share/cmake-3.16/Help/manual/cmake-commands.7.rst
+++ b/share/cmake-3.17/Help/manual/cmake-commands.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-compile-features.7.rst b/share/cmake-3.17/Help/manual/cmake-compile-features.7.rst
new file mode 100644
index 0000000..05dc038
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/cmake-compile-features.7.rst
@@ -0,0 +1,376 @@
+.. cmake-manual-description: CMake Compile Features Reference
+
+cmake-compile-features(7)
+*************************
+
+.. only:: html
+
+ .. contents::
+
+Introduction
+============
+
+Project source code may depend on, or be conditional on, the availability
+of certain features of the compiler. There are three use-cases which arise:
+`Compile Feature Requirements`_, `Optional Compile Features`_
+and `Conditional Compilation Options`_.
+
+While features are typically specified in programming language standards,
+CMake provides a primary user interface based on granular handling of
+the features, not the language standard that introduced the feature.
+
+The :prop_gbl:`CMAKE_C_KNOWN_FEATURES`, :prop_gbl:`CMAKE_CUDA_KNOWN_FEATURES`,
+and :prop_gbl:`CMAKE_CXX_KNOWN_FEATURES` global properties contain all the
+features known to CMake, regardless of compiler support for the feature.
+The :variable:`CMAKE_C_COMPILE_FEATURES`, :variable:`CMAKE_CUDA_COMPILE_FEATURES`
+, and :variable:`CMAKE_CXX_COMPILE_FEATURES` variables contain all features
+CMake knows are known to the compiler, regardless of language standard
+or compile flags needed to use them.
+
+Features known to CMake are named mostly following the same convention
+as the Clang feature test macros. There are some exceptions, such as
+CMake using ``cxx_final`` and ``cxx_override`` instead of the single
+``cxx_override_control`` used by Clang.
+
+Note that there are no separate compile features properties or variables for
+the ``OBJC`` or ``OBJCXX`` languages. These are based off ``C`` or ``C++``
+respectively, so the properties and variables for their corresponding base
+language should be used instead.
+
+Compile Feature Requirements
+============================
+
+Compile feature requirements may be specified with the
+:command:`target_compile_features` command. For example, if a target must
+be compiled with compiler support for the
+:prop_gbl:`cxx_constexpr <CMAKE_CXX_KNOWN_FEATURES>` feature:
+
+.. code-block:: cmake
+
+ add_library(mylib requires_constexpr.cpp)
+ target_compile_features(mylib PRIVATE cxx_constexpr)
+
+In processing the requirement for the ``cxx_constexpr`` feature,
+:manual:`cmake(1)` will ensure that the in-use C++ compiler is capable
+of the feature, and will add any necessary flags such as ``-std=gnu++11``
+to the compile lines of C++ files in the ``mylib`` target. A
+``FATAL_ERROR`` is issued if the compiler is not capable of the
+feature.
+
+The exact compile flags and language standard are deliberately not part
+of the user interface for this use-case. CMake will compute the
+appropriate compile flags to use by considering the features specified
+for each target.
+
+Such compile flags are added even if the compiler supports the
+particular feature without the flag. For example, the GNU compiler
+supports variadic templates (with a warning) even if ``-std=gnu++98`` is
+used. CMake adds the ``-std=gnu++11`` flag if ``cxx_variadic_templates``
+is specified as a requirement.
+
+In the above example, ``mylib`` requires ``cxx_constexpr`` when it
+is built itself, but consumers of ``mylib`` are not required to use a
+compiler which supports ``cxx_constexpr``. If the interface of
+``mylib`` does require the ``cxx_constexpr`` feature (or any other
+known feature), that may be specified with the ``PUBLIC`` or
+``INTERFACE`` signatures of :command:`target_compile_features`:
+
+.. code-block:: cmake
+
+ add_library(mylib requires_constexpr.cpp)
+ # cxx_constexpr is a usage-requirement
+ target_compile_features(mylib PUBLIC cxx_constexpr)
+
+ # main.cpp will be compiled with -std=gnu++11 on GNU for cxx_constexpr.
+ add_executable(myexe main.cpp)
+ target_link_libraries(myexe mylib)
+
+Feature requirements are evaluated transitively by consuming the link
+implementation. See :manual:`cmake-buildsystem(7)` for more on
+transitive behavior of build properties and usage requirements.
+
+Requiring Language Standards
+----------------------------
+
+In projects that use a large number of commonly available features from
+a particular language standard (e.g. C++ 11) one may specify a
+meta-feature (e.g. ``cxx_std_11``) that requires use of a compiler mode
+that is at minimum aware of that standard, but could be greater.
+This is simpler than specifying all the features individually, but does
+not guarantee the existence of any particular feature.
+Diagnosis of use of unsupported features will be delayed until compile time.
+
+For example, if C++ 11 features are used extensively in a project's
+header files, then clients must use a compiler mode that is no less
+than C++ 11. This can be requested with the code:
+
+.. code-block:: cmake
+
+ target_compile_features(mylib PUBLIC cxx_std_11)
+
+In this example, CMake will ensure the compiler is invoked in a mode
+of at-least C++ 11 (or C++ 14, C++ 17, ...), adding flags such as
+``-std=gnu++11`` if necessary. This applies to sources within ``mylib``
+as well as any dependents (that may include headers from ``mylib``).
+
+Availability of Compiler Extensions
+-----------------------------------
+
+Because the :prop_tgt:`CXX_EXTENSIONS` target property is ``ON`` by default,
+CMake uses extended variants of language dialects by default, such as
+``-std=gnu++11`` instead of ``-std=c++11``. That target property may be
+set to ``OFF`` to use the non-extended variant of the dialect flag. Note
+that because most compilers enable extensions by default, this could
+expose cross-platform bugs in user code or in the headers of third-party
+dependencies.
+
+Optional Compile Features
+=========================
+
+Compile features may be preferred if available, without creating a hard
+requirement. For example, a library may provides alternative
+implementations depending on whether the ``cxx_variadic_templates``
+feature is available:
+
+.. code-block:: c++
+
+ #if Foo_COMPILER_CXX_VARIADIC_TEMPLATES
+ template<int I, int... Is>
+ struct Interface;
+
+ template<int I>
+ struct Interface<I>
+ {
+ static int accumulate()
+ {
+ return I;
+ }
+ };
+
+ template<int I, int... Is>
+ struct Interface
+ {
+ static int accumulate()
+ {
+ return I + Interface<Is...>::accumulate();
+ }
+ };
+ #else
+ template<int I1, int I2 = 0, int I3 = 0, int I4 = 0>
+ struct Interface
+ {
+ static int accumulate() { return I1 + I2 + I3 + I4; }
+ };
+ #endif
+
+Such an interface depends on using the correct preprocessor defines for the
+compiler features. CMake can generate a header file containing such
+defines using the :module:`WriteCompilerDetectionHeader` module. The
+module contains the ``write_compiler_detection_header`` function which
+accepts parameters to control the content of the generated header file:
+
+.. code-block:: cmake
+
+ write_compiler_detection_header(
+ FILE "${CMAKE_CURRENT_BINARY_DIR}/foo_compiler_detection.h"
+ PREFIX Foo
+ COMPILERS GNU
+ FEATURES
+ cxx_variadic_templates
+ )
+
+Such a header file may be used internally in the source code of a project,
+and it may be installed and used in the interface of library code.
+
+For each feature listed in ``FEATURES``, a preprocessor definition
+is created in the header file, and defined to either ``1`` or ``0``.
+
+Additionally, some features call for additional defines, such as the
+``cxx_final`` and ``cxx_override`` features. Rather than being used in
+``#ifdef`` code, the ``final`` keyword is abstracted by a symbol
+which is defined to either ``final``, a compiler-specific equivalent, or
+to empty. That way, C++ code can be written to unconditionally use the
+symbol, and compiler support determines what it is expanded to:
+
+.. code-block:: c++
+
+ struct Interface {
+ virtual void Execute() = 0;
+ };
+
+ struct Concrete Foo_FINAL {
+ void Execute() Foo_OVERRIDE;
+ };
+
+In this case, ``Foo_FINAL`` will expand to ``final`` if the
+compiler supports the keyword, or to empty otherwise.
+
+In this use-case, the CMake code will wish to enable a particular language
+standard if available from the compiler. The :prop_tgt:`CXX_STANDARD`
+target property variable may be set to the desired language standard
+for a particular target, and the :variable:`CMAKE_CXX_STANDARD` may be
+set to influence all following targets:
+
+.. code-block:: cmake
+
+ write_compiler_detection_header(
+ FILE "${CMAKE_CURRENT_BINARY_DIR}/foo_compiler_detection.h"
+ PREFIX Foo
+ COMPILERS GNU
+ FEATURES
+ cxx_final cxx_override
+ )
+
+ # Includes foo_compiler_detection.h and uses the Foo_FINAL symbol
+ # which will expand to 'final' if the compiler supports the requested
+ # CXX_STANDARD.
+ add_library(foo foo.cpp)
+ set_property(TARGET foo PROPERTY CXX_STANDARD 11)
+
+ # Includes foo_compiler_detection.h and uses the Foo_FINAL symbol
+ # which will expand to 'final' if the compiler supports the feature,
+ # even though CXX_STANDARD is not set explicitly. The requirement of
+ # cxx_constexpr causes CMake to set CXX_STANDARD internally, which
+ # affects the compile flags.
+ add_library(foo_impl foo_impl.cpp)
+ target_compile_features(foo_impl PRIVATE cxx_constexpr)
+
+The ``write_compiler_detection_header`` function also creates compatibility
+code for other features which have standard equivalents. For example, the
+``cxx_static_assert`` feature is emulated with a template and abstracted
+via the ``<PREFIX>_STATIC_ASSERT`` and ``<PREFIX>_STATIC_ASSERT_MSG``
+function-macros.
+
+Conditional Compilation Options
+===============================
+
+Libraries may provide entirely different header files depending on
+requested compiler features.
+
+For example, a header at ``with_variadics/interface.h`` may contain:
+
+.. code-block:: c++
+
+ template<int I, int... Is>
+ struct Interface;
+
+ template<int I>
+ struct Interface<I>
+ {
+ static int accumulate()
+ {
+ return I;
+ }
+ };
+
+ template<int I, int... Is>
+ struct Interface
+ {
+ static int accumulate()
+ {
+ return I + Interface<Is...>::accumulate();
+ }
+ };
+
+while a header at ``no_variadics/interface.h`` may contain:
+
+.. code-block:: c++
+
+ template<int I1, int I2 = 0, int I3 = 0, int I4 = 0>
+ struct Interface
+ {
+ static int accumulate() { return I1 + I2 + I3 + I4; }
+ };
+
+It would be possible to write a abstraction ``interface.h`` header
+containing something like:
+
+.. code-block:: c++
+
+ #include "foo_compiler_detection.h"
+ #if Foo_COMPILER_CXX_VARIADIC_TEMPLATES
+ #include "with_variadics/interface.h"
+ #else
+ #include "no_variadics/interface.h"
+ #endif
+
+However this could be unmaintainable if there are many files to
+abstract. What is needed is to use alternative include directories
+depending on the compiler capabilities.
+
+CMake provides a ``COMPILE_FEATURES``
+:manual:`generator expression <cmake-generator-expressions(7)>` to implement
+such conditions. This may be used with the build-property commands such as
+:command:`target_include_directories` and :command:`target_link_libraries`
+to set the appropriate :manual:`buildsystem <cmake-buildsystem(7)>`
+properties:
+
+.. code-block:: cmake
+
+ add_library(foo INTERFACE)
+ set(with_variadics ${CMAKE_CURRENT_SOURCE_DIR}/with_variadics)
+ set(no_variadics ${CMAKE_CURRENT_SOURCE_DIR}/no_variadics)
+ target_include_directories(foo
+ INTERFACE
+ "$<$<COMPILE_FEATURES:cxx_variadic_templates>:${with_variadics}>"
+ "$<$<NOT:$<COMPILE_FEATURES:cxx_variadic_templates>>:${no_variadics}>"
+ )
+
+Consuming code then simply links to the ``foo`` target as usual and uses
+the feature-appropriate include directory
+
+.. code-block:: cmake
+
+ add_executable(consumer_with consumer_with.cpp)
+ target_link_libraries(consumer_with foo)
+ set_property(TARGET consumer_with CXX_STANDARD 11)
+
+ add_executable(consumer_no consumer_no.cpp)
+ target_link_libraries(consumer_no foo)
+
+Supported Compilers
+===================
+
+CMake is currently aware of the :prop_tgt:`C++ standards <CXX_STANDARD>`
+and :prop_gbl:`compile features <CMAKE_CXX_KNOWN_FEATURES>` available from
+the following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the
+versions specified for each:
+
+* ``AppleClang``: Apple Clang for Xcode versions 4.4+.
+* ``Clang``: Clang compiler versions 2.9+.
+* ``GNU``: GNU compiler versions 4.4+.
+* ``MSVC``: Microsoft Visual Studio versions 2010+.
+* ``SunPro``: Oracle SolarisStudio versions 12.4+.
+* ``Intel``: Intel compiler versions 12.1+.
+
+CMake is currently aware of the :prop_tgt:`C standards <C_STANDARD>`
+and :prop_gbl:`compile features <CMAKE_C_KNOWN_FEATURES>` available from
+the following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the
+versions specified for each:
+
+* all compilers and versions listed above for C++.
+* ``GNU``: GNU compiler versions 3.4+
+
+CMake is currently aware of the :prop_tgt:`C++ standards <CXX_STANDARD>` and
+their associated meta-features (e.g. ``cxx_std_11``) available from the
+following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the
+versions specified for each:
+
+* ``Cray``: Cray Compiler Environment version 8.1+.
+* ``PGI``: PGI version 12.10+.
+* ``XL``: IBM XL version 10.1+.
+
+CMake is currently aware of the :prop_tgt:`C standards <C_STANDARD>` and
+their associated meta-features (e.g. ``c_std_99``) available from the
+following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the
+versions specified for each:
+
+* all compilers and versions listed above with only meta-features for C++.
+* ``TI``: Texas Instruments compiler.
+
+CMake is currently aware of the :prop_tgt:`CUDA standards <CUDA_STANDARD>` and
+their associated meta-features (e.g. ``cuda_std_11``) available from the
+following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the
+versions specified for each:
+
+* ``NVIDIA``: NVIDIA nvcc compiler 7.5+.
diff --git a/share/cmake-3.16/Help/manual/cmake-developer.7.rst b/share/cmake-3.17/Help/manual/cmake-developer.7.rst
index 85ed935..85ed935 100644
--- a/share/cmake-3.16/Help/manual/cmake-developer.7.rst
+++ b/share/cmake-3.17/Help/manual/cmake-developer.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-env-variables.7.rst b/share/cmake-3.17/Help/manual/cmake-env-variables.7.rst
new file mode 100644
index 0000000..adfc39e
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/cmake-env-variables.7.rst
@@ -0,0 +1,75 @@
+.. cmake-manual-description: CMake Environment Variables Reference
+
+cmake-env-variables(7)
+**********************
+
+.. only:: html
+
+ .. contents::
+
+This page lists environment variables that have special
+meaning to CMake.
+
+For general information on environment variables, see the
+:ref:`Environment Variables <CMake Language Environment Variables>`
+section in the cmake-language manual.
+
+
+Environment Variables that Control the Build
+============================================
+
+.. toctree::
+ :maxdepth: 1
+
+ /envvar/CMAKE_BUILD_PARALLEL_LEVEL
+ /envvar/CMAKE_CONFIG_TYPE
+ /envvar/CMAKE_EXPORT_COMPILE_COMMANDS
+ /envvar/CMAKE_GENERATOR
+ /envvar/CMAKE_GENERATOR_INSTANCE
+ /envvar/CMAKE_GENERATOR_PLATFORM
+ /envvar/CMAKE_GENERATOR_TOOLSET
+ /envvar/CMAKE_LANG_COMPILER_LAUNCHER
+ /envvar/CMAKE_MSVCIDE_RUN_PATH
+ /envvar/CMAKE_NO_VERBOSE
+ /envvar/CMAKE_OSX_ARCHITECTURES
+ /envvar/DESTDIR
+ /envvar/LDFLAGS
+ /envvar/MACOSX_DEPLOYMENT_TARGET
+ /envvar/PackageName_ROOT
+ /envvar/VERBOSE
+
+Environment Variables for Languages
+===================================
+
+.. toctree::
+ :maxdepth: 1
+
+ /envvar/ASM_DIALECT
+ /envvar/ASM_DIALECTFLAGS
+ /envvar/CC
+ /envvar/CFLAGS
+ /envvar/CSFLAGS
+ /envvar/CUDACXX
+ /envvar/CUDAFLAGS
+ /envvar/CUDAHOSTCXX
+ /envvar/CXX
+ /envvar/CXXFLAGS
+ /envvar/FC
+ /envvar/FFLAGS
+ /envvar/RC
+ /envvar/RCFLAGS
+ /envvar/SWIFTC
+
+Environment Variables for CTest
+===============================
+
+.. toctree::
+ :maxdepth: 1
+
+ /envvar/CMAKE_CONFIG_TYPE
+ /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/share/cmake-3.17/Help/manual/cmake-file-api.7.rst b/share/cmake-3.17/Help/manual/cmake-file-api.7.rst
new file mode 100644
index 0000000..12eecd9
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/cmake-file-api.7.rst
@@ -0,0 +1,1117 @@
+.. cmake-manual-description: CMake File-Based API
+
+cmake-file-api(7)
+*****************
+
+.. only:: html
+
+ .. contents::
+
+Introduction
+============
+
+CMake provides a file-based API that clients may use to get semantic
+information about the buildsystems CMake generates. Clients may use
+the API by writing query files to a specific location in a build tree
+to request zero or more `Object Kinds`_. When CMake generates the
+buildsystem in that build tree it will read the query files and write
+reply files for the client to read.
+
+The file-based API uses a ``<build>/.cmake/api/`` directory at the top
+of a build tree. The API is versioned to support changes to the layout
+of files within the API directory. API file layout versioning is
+orthogonal to the versioning of `Object Kinds`_ used in replies.
+This version of CMake supports only one API version, `API v1`_.
+
+API v1
+======
+
+API v1 is housed in the ``<build>/.cmake/api/v1/`` directory.
+It has the following subdirectories:
+
+``query/``
+ Holds query files written by clients.
+ These may be `v1 Shared Stateless Query Files`_,
+ `v1 Client Stateless Query Files`_, or `v1 Client Stateful Query Files`_.
+
+``reply/``
+ Holds reply files written by CMake whenever it runs to generate a build
+ system. These are indexed by a `v1 Reply Index File`_ file that may
+ reference additional `v1 Reply Files`_. CMake owns all reply files.
+ Clients must never remove them.
+
+ Clients may look for and read a reply index file at any time.
+ Clients may optionally create the ``reply/`` directory at any time
+ and monitor it for the appearance of a new reply index file.
+
+v1 Shared Stateless Query Files
+-------------------------------
+
+Shared stateless query files allow clients to share requests for
+major versions of the `Object Kinds`_ and get all requested versions
+recognized by the CMake that runs.
+
+Clients may create shared requests by creating empty files in the
+``v1/query/`` directory. The form is::
+
+ <build>/.cmake/api/v1/query/<kind>-v<major>
+
+where ``<kind>`` is one of the `Object Kinds`_, ``-v`` is literal,
+and ``<major>`` is the major version number.
+
+Files of this form are stateless shared queries not owned by any specific
+client. Once created they should not be removed without external client
+coordination or human intervention.
+
+v1 Client Stateless Query Files
+-------------------------------
+
+Client stateless query files allow clients to create owned requests for
+major versions of the `Object Kinds`_ and get all requested versions
+recognized by the CMake that runs.
+
+Clients may create owned requests by creating empty files in
+client-specific query subdirectories. The form is::
+
+ <build>/.cmake/api/v1/query/client-<client>/<kind>-v<major>
+
+where ``client-`` is literal, ``<client>`` is a string uniquely
+identifying the client, ``<kind>`` is one of the `Object Kinds`_,
+``-v`` is literal, and ``<major>`` is the major version number.
+Each client must choose a unique ``<client>`` identifier via its
+own means.
+
+Files of this form are stateless queries owned by the client ``<client>``.
+The owning client may remove them at any time.
+
+v1 Client Stateful Query Files
+------------------------------
+
+Stateful query files allow clients to request a list of versions of
+each of the `Object Kinds`_ and get only the most recent version
+recognized by the CMake that runs.
+
+Clients may create owned stateful queries by creating ``query.json``
+files in client-specific query subdirectories. The form is::
+
+ <build>/.cmake/api/v1/query/client-<client>/query.json
+
+where ``client-`` is literal, ``<client>`` is a string uniquely
+identifying the client, and ``query.json`` is literal. Each client
+must choose a unique ``<client>`` identifier via its own means.
+
+``query.json`` files are stateful queries owned by the client ``<client>``.
+The owning client may update or remove them at any time. When a
+given client installation is updated it may then update the stateful
+query it writes to build trees to request newer object versions.
+This can be used to avoid asking CMake to generate multiple object
+versions unnecessarily.
+
+A ``query.json`` file must contain a JSON object:
+
+.. code-block:: json
+
+ {
+ "requests": [
+ { "kind": "<kind>" , "version": 1 },
+ { "kind": "<kind>" , "version": { "major": 1, "minor": 2 } },
+ { "kind": "<kind>" , "version": [2, 1] },
+ { "kind": "<kind>" , "version": [2, { "major": 1, "minor": 2 }] },
+ { "kind": "<kind>" , "version": 1, "client": {} },
+ { "kind": "..." }
+ ],
+ "client": {}
+ }
+
+The members are:
+
+``requests``
+ A JSON array containing zero or more requests. Each request is
+ a JSON object with members:
+
+ ``kind``
+ Specifies one of the `Object Kinds`_ to be included in the reply.
+
+ ``version``
+ Indicates the version(s) of the object kind that the client
+ understands. Versions have major and minor components following
+ semantic version conventions. The value must be
+
+ * a JSON integer specifying a (non-negative) major version number, or
+ * a JSON object containing ``major`` and (optionally) ``minor``
+ members specifying non-negative integer version components, or
+ * a JSON array whose elements are each one of the above.
+
+ ``client``
+ Optional member reserved for use by the client. This value is
+ preserved in the reply written for the client in the
+ `v1 Reply Index File`_ but is otherwise ignored. Clients may use
+ this to pass custom information with a request through to its reply.
+
+ For each requested object kind CMake will choose the *first* version
+ that it recognizes for that kind among those listed in the request.
+ The response will use the selected *major* version with the highest
+ *minor* version known to the running CMake for that major version.
+ Therefore clients should list all supported major versions in
+ preferred order along with the minimal minor version required
+ for each major version.
+
+``client``
+ Optional member reserved for use by the client. This value is
+ preserved in the reply written for the client in the
+ `v1 Reply Index File`_ but is otherwise ignored. Clients may use
+ this to pass custom information with a query through to its reply.
+
+Other ``query.json`` top-level members are reserved for future use.
+If present they are ignored for forward compatibility.
+
+v1 Reply Index File
+-------------------
+
+CMake writes an ``index-*.json`` file to the ``v1/reply/`` directory
+whenever it runs to generate a build system. Clients must read the
+reply index file first and may read other `v1 Reply Files`_ only by
+following references. The form of the reply index file name is::
+
+ <build>/.cmake/api/v1/reply/index-<unspecified>.json
+
+where ``index-`` is literal and ``<unspecified>`` is an unspecified
+name selected by CMake. Whenever a new index file is generated it
+is given a new name and any old one is deleted. During the short
+time between these steps there may be multiple index files present;
+the one with the largest name in lexicographic order is the current
+index file.
+
+The reply index file contains a JSON object:
+
+.. code-block:: json
+
+ {
+ "cmake": {
+ "version": {
+ "major": 3, "minor": 14, "patch": 0, "suffix": "",
+ "string": "3.14.0", "isDirty": false
+ },
+ "paths": {
+ "cmake": "/prefix/bin/cmake",
+ "ctest": "/prefix/bin/ctest",
+ "cpack": "/prefix/bin/cpack",
+ "root": "/prefix/share/cmake-3.14"
+ },
+ "generator": {
+ "multiConfig": false,
+ "name": "Unix Makefiles"
+ }
+ },
+ "objects": [
+ { "kind": "<kind>",
+ "version": { "major": 1, "minor": 0 },
+ "jsonFile": "<file>" },
+ { "...": "..." }
+ ],
+ "reply": {
+ "<kind>-v<major>": { "kind": "<kind>",
+ "version": { "major": 1, "minor": 0 },
+ "jsonFile": "<file>" },
+ "<unknown>": { "error": "unknown query file" },
+ "...": {},
+ "client-<client>": {
+ "<kind>-v<major>": { "kind": "<kind>",
+ "version": { "major": 1, "minor": 0 },
+ "jsonFile": "<file>" },
+ "<unknown>": { "error": "unknown query file" },
+ "...": {},
+ "query.json": {
+ "requests": [ {}, {}, {} ],
+ "responses": [
+ { "kind": "<kind>",
+ "version": { "major": 1, "minor": 0 },
+ "jsonFile": "<file>" },
+ { "error": "unknown query file" },
+ { "...": {} }
+ ],
+ "client": {}
+ }
+ }
+ }
+ }
+
+The members are:
+
+``cmake``
+ A JSON object containing information about the instance of CMake that
+ generated the reply. It contains members:
+
+ ``version``
+ A JSON object specifying the version of CMake with members:
+
+ ``major``, ``minor``, ``patch``
+ Integer values specifying the major, minor, and patch version components.
+ ``suffix``
+ A string specifying the version suffix, if any, e.g. ``g0abc3``.
+ ``string``
+ A string specifying the full version in the format
+ ``<major>.<minor>.<patch>[-<suffix>]``.
+ ``isDirty``
+ A boolean indicating whether the version was built from a version
+ controlled source tree with local modifications.
+
+ ``paths``
+ A JSON object specifying paths to things that come with CMake.
+ It has members for ``cmake``, ``ctest``, and ``cpack`` whose values
+ are JSON strings specifying the absolute path to each tool,
+ represented with forward slashes. It also has a ``root`` member for
+ the absolute path to the directory containing CMake resources like the
+ ``Modules/`` directory (see :variable:`CMAKE_ROOT`).
+
+ ``generator``
+ A JSON object describing the CMake generator used for the build.
+ It has members:
+
+ ``multiConfig``
+ A boolean specifying whether the generator supports multiple output
+ configurations.
+ ``name``
+ A string specifying the name of the generator.
+ ``platform``
+ If the generator supports :variable:`CMAKE_GENERATOR_PLATFORM`,
+ this is a string specifying the generator platform name.
+
+``objects``
+ A JSON array listing all versions of all `Object Kinds`_ generated
+ as part of the reply. Each array entry is a
+ `v1 Reply File Reference`_.
+
+``reply``
+ A JSON object mirroring the content of the ``query/`` directory
+ that CMake loaded to produce the reply. The members are of the form
+
+ ``<kind>-v<major>``
+ A member of this form appears for each of the
+ `v1 Shared Stateless Query Files`_ that CMake recognized as a
+ request for object kind ``<kind>`` with major version ``<major>``.
+ The value is a `v1 Reply File Reference`_ to the corresponding
+ reply file for that object kind and version.
+
+ ``<unknown>``
+ A member of this form appears for each of the
+ `v1 Shared Stateless Query Files`_ that CMake did not recognize.
+ The value is a JSON object with a single ``error`` member
+ containing a string with an error message indicating that the
+ query file is unknown.
+
+ ``client-<client>``
+ A member of this form appears for each client-owned directory
+ holding `v1 Client Stateless Query Files`_.
+ The value is a JSON object mirroring the content of the
+ ``query/client-<client>/`` directory. The members are of the form:
+
+ ``<kind>-v<major>``
+ A member of this form appears for each of the
+ `v1 Client Stateless Query Files`_ that CMake recognized as a
+ request for object kind ``<kind>`` with major version ``<major>``.
+ The value is a `v1 Reply File Reference`_ to the corresponding
+ reply file for that object kind and version.
+
+ ``<unknown>``
+ A member of this form appears for each of the
+ `v1 Client Stateless Query Files`_ that CMake did not recognize.
+ The value is a JSON object with a single ``error`` member
+ containing a string with an error message indicating that the
+ query file is unknown.
+
+ ``query.json``
+ This member appears for clients using
+ `v1 Client Stateful Query Files`_.
+ If the ``query.json`` file failed to read or parse as a JSON object,
+ this member is a JSON object with a single ``error`` member
+ containing a string with an error message. Otherwise, this member
+ is a JSON object mirroring the content of the ``query.json`` file.
+ The members are:
+
+ ``client``
+ A copy of the ``query.json`` file ``client`` member, if it exists.
+
+ ``requests``
+ A copy of the ``query.json`` file ``requests`` member, if it exists.
+
+ ``responses``
+ If the ``query.json`` file ``requests`` member is missing or invalid,
+ this member is a JSON object with a single ``error`` member
+ containing a string with an error message. Otherwise, this member
+ contains a JSON array with a response for each entry of the
+ ``requests`` array, in the same order. Each response is
+
+ * a JSON object with a single ``error`` member containing a string
+ with an error message, or
+ * a `v1 Reply File Reference`_ to the corresponding reply file for
+ the requested object kind and selected version.
+
+After reading the reply index file, clients may read the other
+`v1 Reply Files`_ it references.
+
+v1 Reply File Reference
+^^^^^^^^^^^^^^^^^^^^^^^
+
+The reply index file represents each reference to another reply file
+using a JSON object with members:
+
+``kind``
+ A string specifying one of the `Object Kinds`_.
+``version``
+ A JSON object with members ``major`` and ``minor`` specifying
+ integer version components of the object kind.
+``jsonFile``
+ A JSON string specifying a path relative to the reply index file
+ to another JSON file containing the object.
+
+v1 Reply Files
+--------------
+
+Reply files containing specific `Object Kinds`_ are written by CMake.
+The names of these files are unspecified and must not be interpreted
+by clients. Clients must first read the `v1 Reply Index File`_ and
+and follow references to the names of the desired response objects.
+
+Reply files (including the index file) will never be replaced by
+files of the same name but different content. This allows a client
+to read the files concurrently with a running CMake that may generate
+a new reply. However, after generating a new reply CMake will attempt
+to remove reply files from previous runs that it did not just write.
+If a client attempts to read a reply file referenced by the index but
+finds the file missing, that means a concurrent CMake has generated
+a new reply. The client may simply start again by reading the new
+reply index file.
+
+.. _`file-api object kinds`:
+
+Object Kinds
+============
+
+The CMake file-based API reports semantic information about the build
+system using the following kinds of JSON objects. Each kind of object
+is versioned independently using semantic versioning with major and
+minor components. Every kind of object has the form:
+
+.. code-block:: json
+
+ {
+ "kind": "<kind>",
+ "version": { "major": 1, "minor": 0 },
+ "...": {}
+ }
+
+The ``kind`` member is a string specifying the object kind name.
+The ``version`` member is a JSON object with ``major`` and ``minor``
+members specifying integer components of the object kind's version.
+Additional top-level members are specific to each object kind.
+
+Object Kind "codemodel"
+-----------------------
+
+The ``codemodel`` object kind describes the build system structure as
+modeled by CMake.
+
+There is only one ``codemodel`` object major version, version 2.
+Version 1 does not exist to avoid confusion with that from
+:manual:`cmake-server(7)` mode.
+
+"codemodel" version 2
+^^^^^^^^^^^^^^^^^^^^^
+
+``codemodel`` object version 2 is a JSON object:
+
+.. code-block:: json
+
+ {
+ "kind": "codemodel",
+ "version": { "major": 2, "minor": 0 },
+ "paths": {
+ "source": "/path/to/top-level-source-dir",
+ "build": "/path/to/top-level-build-dir"
+ },
+ "configurations": [
+ {
+ "name": "Debug",
+ "directories": [
+ {
+ "source": ".",
+ "build": ".",
+ "childIndexes": [ 1 ],
+ "projectIndex": 0,
+ "targetIndexes": [ 0 ],
+ "hasInstallRule": true,
+ "minimumCMakeVersion": {
+ "string": "3.14"
+ }
+ },
+ {
+ "source": "sub",
+ "build": "sub",
+ "parentIndex": 0,
+ "projectIndex": 0,
+ "targetIndexes": [ 1 ],
+ "minimumCMakeVersion": {
+ "string": "3.14"
+ }
+ }
+ ],
+ "projects": [
+ {
+ "name": "MyProject",
+ "directoryIndexes": [ 0, 1 ],
+ "targetIndexes": [ 0, 1 ]
+ }
+ ],
+ "targets": [
+ {
+ "name": "MyExecutable",
+ "directoryIndex": 0,
+ "projectIndex": 0,
+ "jsonFile": "<file>"
+ },
+ {
+ "name": "MyLibrary",
+ "directoryIndex": 1,
+ "projectIndex": 0,
+ "jsonFile": "<file>"
+ }
+ ]
+ }
+ ]
+ }
+
+The members specific to ``codemodel`` objects are:
+
+``paths``
+ A JSON object containing members:
+
+ ``source``
+ A string specifying the absolute path to the top-level source directory,
+ represented with forward slashes.
+
+ ``build``
+ A string specifying the absolute path to the top-level build directory,
+ represented with forward slashes.
+
+``configurations``
+ A JSON array of entries corresponding to available build configurations.
+ On single-configuration generators there is one entry for the value
+ of the :variable:`CMAKE_BUILD_TYPE` variable. For multi-configuration
+ generators there is an entry for each configuration listed in the
+ :variable:`CMAKE_CONFIGURATION_TYPES` variable.
+ Each entry is a JSON object containing members:
+
+ ``name``
+ A string specifying the name of the configuration, e.g. ``Debug``.
+
+ ``directories``
+ A JSON array of entries each corresponding to a build system directory
+ whose source directory contains a ``CMakeLists.txt`` file. The first
+ entry corresponds to the top-level directory. Each entry is a
+ JSON object containing members:
+
+ ``source``
+ A string specifying the path to the source directory, represented
+ with forward slashes. If the directory is inside the top-level
+ source directory then the path is specified relative to that
+ directory (with ``.`` for the top-level source directory itself).
+ Otherwise the path is absolute.
+
+ ``build``
+ A string specifying the path to the build directory, represented
+ with forward slashes. If the directory is inside the top-level
+ build directory then the path is specified relative to that
+ directory (with ``.`` for the top-level build directory itself).
+ Otherwise the path is absolute.
+
+ ``parentIndex``
+ Optional member that is present when the directory is not top-level.
+ The value is an unsigned integer 0-based index of another entry in
+ the main ``directories`` array that corresponds to the parent
+ directory that added this directory as a subdirectory.
+
+ ``childIndexes``
+ Optional member that is present when the directory has subdirectories.
+ The value is a JSON array of entries corresponding to child directories
+ created by the :command:`add_subdirectory` or :command:`subdirs`
+ command. Each entry is an unsigned integer 0-based index of another
+ entry in the main ``directories`` array.
+
+ ``projectIndex``
+ An unsigned integer 0-based index into the main ``projects`` array
+ indicating the build system project to which the this directory belongs.
+
+ ``targetIndexes``
+ Optional member that is present when the directory itself has targets,
+ excluding those belonging to subdirectories. The value is a JSON
+ array of entries corresponding to the targets. Each entry is an
+ unsigned integer 0-based index into the main ``targets`` array.
+
+ ``minimumCMakeVersion``
+ Optional member present when a minimum required version of CMake is
+ known for the directory. This is the ``<min>`` version given to the
+ most local call to the :command:`cmake_minimum_required(VERSION)`
+ command in the directory itself or one of its ancestors.
+ The value is a JSON object with one member:
+
+ ``string``
+ A string specifying the minimum required version in the format::
+
+ <major>.<minor>[.<patch>[.<tweak>]][<suffix>]
+
+ Each component is an unsigned integer and the suffix may be an
+ arbitrary string.
+
+ ``hasInstallRule``
+ Optional member that is present with boolean value ``true`` when
+ the directory or one of its subdirectories contains any
+ :command:`install` rules, i.e. whether a ``make install``
+ or equivalent rule is available.
+
+ ``projects``
+ A JSON array of entries corresponding to the top-level project
+ and sub-projects defined in the build system. Each (sub-)project
+ corresponds to a source directory whose ``CMakeLists.txt`` file
+ calls the :command:`project` command with a project name different
+ from its parent directory. The first entry corresponds to the
+ top-level project.
+
+ Each entry is a JSON object containing members:
+
+ ``name``
+ A string specifying the name given to the :command:`project` command.
+
+ ``parentIndex``
+ Optional member that is present when the project is not top-level.
+ The value is an unsigned integer 0-based index of another entry in
+ the main ``projects`` array that corresponds to the parent project
+ that added this project as a sub-project.
+
+ ``childIndexes``
+ Optional member that is present when the project has sub-projects.
+ The value is a JSON array of entries corresponding to the sub-projects.
+ Each entry is an unsigned integer 0-based index of another
+ entry in the main ``projects`` array.
+
+ ``directoryIndexes``
+ A JSON array of entries corresponding to build system directories
+ that are part of the project. The first entry corresponds to the
+ top-level directory of the project. Each entry is an unsigned
+ integer 0-based index into the main ``directories`` array.
+
+ ``targetIndexes``
+ Optional member that is present when the project itself has targets,
+ excluding those belonging to sub-projects. The value is a JSON
+ array of entries corresponding to the targets. Each entry is an
+ unsigned integer 0-based index into the main ``targets`` array.
+
+ ``targets``
+ A JSON array of entries corresponding to the build system targets.
+ Such targets are created by calls to :command:`add_executable`,
+ :command:`add_library`, and :command:`add_custom_target`, excluding
+ imported targets and interface libraries (which do not generate any
+ build rules). Each entry is a JSON object containing members:
+
+ ``name``
+ A string specifying the target name.
+
+ ``id``
+ A string uniquely identifying the target. This matches the ``id``
+ field in the file referenced by ``jsonFile``.
+
+ ``directoryIndex``
+ An unsigned integer 0-based index into the main ``directories`` array
+ indicating the build system directory in which the target is defined.
+
+ ``projectIndex``
+ An unsigned integer 0-based index into the main ``projects`` array
+ indicating the build system project in which the target is defined.
+
+ ``jsonFile``
+ A JSON string specifying a path relative to the codemodel file
+ to another JSON file containing a
+ `"codemodel" version 2 "target" object`_.
+
+"codemodel" version 2 "target" object
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A codemodel "target" object is referenced by a `"codemodel" version 2`_
+object's ``targets`` array. Each "target" object is a JSON object
+with members:
+
+``name``
+ A string specifying the logical name of the target.
+
+``id``
+ A string uniquely identifying the target. The format is unspecified
+ and should not be interpreted by clients.
+
+``type``
+ A string specifying the type of the target. The value is one of
+ ``EXECUTABLE``, ``STATIC_LIBRARY``, ``SHARED_LIBRARY``,
+ ``MODULE_LIBRARY``, ``OBJECT_LIBRARY``, or ``UTILITY``.
+
+``backtrace``
+ Optional member that is present when a CMake language backtrace to
+ the command in the source code that created the target is available.
+ The value is an unsigned integer 0-based index into the
+ ``backtraceGraph`` member's ``nodes`` array.
+
+``folder``
+ Optional member that is present when the :prop_tgt:`FOLDER` target
+ property is set. The value is a JSON object with one member:
+
+ ``name``
+ A string specifying the name of the target folder.
+
+``paths``
+ A JSON object containing members:
+
+ ``source``
+ A string specifying the path to the target's source directory,
+ represented with forward slashes. If the directory is inside the
+ top-level source directory then the path is specified relative to
+ that directory (with ``.`` for the top-level source directory itself).
+ Otherwise the path is absolute.
+
+ ``build``
+ A string specifying the path to the target's build directory,
+ represented with forward slashes. If the directory is inside the
+ top-level build directory then the path is specified relative to
+ that directory (with ``.`` for the top-level build directory itself).
+ Otherwise the path is absolute.
+
+``nameOnDisk``
+ Optional member that is present for executable and library targets
+ that are linked or archived into a single primary artifact.
+ The value is a string specifying the file name of that artifact on disk.
+
+``artifacts``
+ Optional member that is present for executable and library targets
+ that produce artifacts on disk meant for consumption by dependents.
+ The value is a JSON array of entries corresponding to the artifacts.
+ Each entry is a JSON object containing one member:
+
+ ``path``
+ A string specifying the path to the file on disk, represented with
+ forward slashes. If the file is inside the top-level build directory
+ then the path is specified relative to that directory.
+ Otherwise the path is absolute.
+
+``isGeneratorProvided``
+ Optional member that is present with boolean value ``true`` if the
+ target is provided by CMake's build system generator rather than by
+ a command in the source code.
+
+``install``
+ Optional member that is present when the target has an :command:`install`
+ rule. The value is a JSON object with members:
+
+ ``prefix``
+ A JSON object specifying the installation prefix. It has one member:
+
+ ``path``
+ A string specifying the value of :variable:`CMAKE_INSTALL_PREFIX`.
+
+ ``destinations``
+ A JSON array of entries specifying an install destination path.
+ Each entry is a JSON object with members:
+
+ ``path``
+ A string specifying the install destination path. The path may
+ be absolute or relative to the install prefix.
+
+ ``backtrace``
+ Optional member that is present when a CMake language backtrace to
+ the :command:`install` command invocation that specified this
+ destination is available. The value is an unsigned integer 0-based
+ index into the ``backtraceGraph`` member's ``nodes`` array.
+
+``link``
+ Optional member that is present for executables and shared library
+ targets that link into a runtime binary. The value is a JSON object
+ with members describing the link step:
+
+ ``language``
+ A string specifying the language (e.g. ``C``, ``CXX``, ``Fortran``)
+ of the toolchain is used to invoke the linker.
+
+ ``commandFragments``
+ Optional member that is present when fragments of the link command
+ line invocation are available. The value is a JSON array of entries
+ specifying ordered fragments. Each entry is a JSON object with members:
+
+ ``fragment``
+ A string specifying a fragment of the link command line invocation.
+ The value is encoded in the build system's native shell format.
+
+ ``role``
+ A string specifying the role of the fragment's content:
+
+ * ``flags``: link flags.
+ * ``libraries``: link library file paths or flags.
+ * ``libraryPath``: library search path flags.
+ * ``frameworkPath``: macOS framework search path flags.
+
+ ``lto``
+ Optional member that is present with boolean value ``true``
+ when link-time optimization (a.k.a. interprocedural optimization
+ or link-time code generation) is enabled.
+
+ ``sysroot``
+ Optional member that is present when the :variable:`CMAKE_SYSROOT_LINK`
+ or :variable:`CMAKE_SYSROOT` variable is defined. The value is a
+ JSON object with one member:
+
+ ``path``
+ A string specifying the absolute path to the sysroot, represented
+ with forward slashes.
+
+``archive``
+ Optional member that is present for static library targets. The value
+ is a JSON object with members describing the archive step:
+
+ ``commandFragments``
+ Optional member that is present when fragments of the archiver command
+ line invocation are available. The value is a JSON array of entries
+ specifying the fragments. Each entry is a JSON object with members:
+
+ ``fragment``
+ A string specifying a fragment of the archiver command line invocation.
+ The value is encoded in the build system's native shell format.
+
+ ``role``
+ A string specifying the role of the fragment's content:
+
+ * ``flags``: archiver flags.
+
+ ``lto``
+ Optional member that is present with boolean value ``true``
+ when link-time optimization (a.k.a. interprocedural optimization
+ or link-time code generation) is enabled.
+
+``dependencies``
+ Optional member that is present when the target depends on other targets.
+ The value is a JSON array of entries corresponding to the dependencies.
+ Each entry is a JSON object with members:
+
+ ``id``
+ A string uniquely identifying the target on which this target depends.
+ This matches the main ``id`` member of the other target.
+
+ ``backtrace``
+ Optional member that is present when a CMake language backtrace to
+ the :command:`add_dependencies`, :command:`target_link_libraries`,
+ or other command invocation that created this dependency is
+ available. The value is an unsigned integer 0-based index into
+ the ``backtraceGraph`` member's ``nodes`` array.
+
+``sources``
+ A JSON array of entries corresponding to the target's source files.
+ Each entry is a JSON object with members:
+
+ ``path``
+ A string specifying the path to the source file on disk, represented
+ with forward slashes. If the file is inside the top-level source
+ directory then the path is specified relative to that directory.
+ Otherwise the path is absolute.
+
+ ``compileGroupIndex``
+ Optional member that is present when the source is compiled.
+ The value is an unsigned integer 0-based index into the
+ ``compileGroups`` array.
+
+ ``sourceGroupIndex``
+ Optional member that is present when the source is part of a source
+ group either via the :command:`source_group` command or by default.
+ The value is an unsigned integer 0-based index into the
+ ``sourceGroups`` array.
+
+ ``isGenerated``
+ Optional member that is present with boolean value ``true`` if
+ the source is :prop_sf:`GENERATED`.
+
+ ``backtrace``
+ Optional member that is present when a CMake language backtrace to
+ the :command:`target_sources`, :command:`add_executable`,
+ :command:`add_library`, :command:`add_custom_target`, or other
+ command invocation that added this source to the target is
+ available. The value is an unsigned integer 0-based index into
+ the ``backtraceGraph`` member's ``nodes`` array.
+
+``sourceGroups``
+ Optional member that is present when sources are grouped together by
+ the :command:`source_group` command or by default. The value is a
+ JSON array of entries corresponding to the groups. Each entry is
+ a JSON object with members:
+
+ ``name``
+ A string specifying the name of the source group.
+
+ ``sourceIndexes``
+ A JSON array listing the sources belonging to the group.
+ Each entry is an unsigned integer 0-based index into the
+ main ``sources`` array for the target.
+
+``compileGroups``
+ Optional member that is present when the target has sources that compile.
+ The value is a JSON array of entries corresponding to groups of sources
+ that all compile with the same settings. Each entry is a JSON object
+ with members:
+
+ ``sourceIndexes``
+ A JSON array listing the sources belonging to the group.
+ Each entry is an unsigned integer 0-based index into the
+ main ``sources`` array for the target.
+
+ ``language``
+ A string specifying the language (e.g. ``C``, ``CXX``, ``Fortran``)
+ of the toolchain is used to compile the source file.
+
+ ``compileCommandFragments``
+ Optional member that is present when fragments of the compiler command
+ line invocation are available. The value is a JSON array of entries
+ specifying ordered fragments. Each entry is a JSON object with
+ one member:
+
+ ``fragment``
+ A string specifying a fragment of the compile command line invocation.
+ The value is encoded in the build system's native shell format.
+
+ ``includes``
+ Optional member that is present when there are include directories.
+ The value is a JSON array with an entry for each directory. Each
+ entry is a JSON object with members:
+
+ ``path``
+ A string specifying the path to the include directory,
+ represented with forward slashes.
+
+ ``isSystem``
+ Optional member that is present with boolean value ``true`` if
+ the include directory is marked as a system include directory.
+
+ ``backtrace``
+ Optional member that is present when a CMake language backtrace to
+ the :command:`target_include_directories` or other command invocation
+ that added this include directory is available. The value is
+ an unsigned integer 0-based index into the ``backtraceGraph``
+ member's ``nodes`` array.
+
+ ``defines``
+ Optional member that is present when there are preprocessor definitions.
+ The value is a JSON array with an entry for each definition. Each
+ entry is a JSON object with members:
+
+ ``define``
+ A string specifying the preprocessor definition in the format
+ ``<name>[=<value>]``, e.g. ``DEF`` or ``DEF=1``.
+
+ ``backtrace``
+ Optional member that is present when a CMake language backtrace to
+ the :command:`target_compile_definitions` or other command invocation
+ that added this preprocessor definition is available. The value is
+ an unsigned integer 0-based index into the ``backtraceGraph``
+ member's ``nodes`` array.
+
+ ``sysroot``
+ Optional member that is present when the
+ :variable:`CMAKE_SYSROOT_COMPILE` or :variable:`CMAKE_SYSROOT`
+ variable is defined. The value is a JSON object with one member:
+
+ ``path``
+ A string specifying the absolute path to the sysroot, represented
+ with forward slashes.
+
+``backtraceGraph``
+ A JSON object describing the graph of backtraces whose nodes are
+ referenced from ``backtrace`` members elsewhere. The members are:
+
+ ``nodes``
+ A JSON array listing nodes in the backtrace graph. Each entry
+ is a JSON object with members:
+
+ ``file``
+ An unsigned integer 0-based index into the backtrace ``files`` array.
+
+ ``line``
+ An optional member present when the node represents a line within
+ the file. The value is an unsigned integer 1-based line number.
+
+ ``command``
+ An optional member present when the node represents a command
+ invocation within the file. The value is an unsigned integer
+ 0-based index into the backtrace ``commands`` array.
+
+ ``parent``
+ An optional member present when the node is not the bottom of
+ the call stack. The value is an unsigned integer 0-based index
+ of another entry in the backtrace ``nodes`` array.
+
+ ``commands``
+ A JSON array listing command names referenced by backtrace nodes.
+ Each entry is a string specifying a command name.
+
+ ``files``
+ A JSON array listing CMake language files referenced by backtrace nodes.
+ Each entry is a string specifying the path to a file, represented
+ with forward slashes. If the file is inside the top-level source
+ directory then the path is specified relative to that directory.
+ Otherwise the path is absolute.
+
+Object Kind "cache"
+-------------------
+
+The ``cache`` object kind lists cache entries. These are the
+:ref:`CMake Language Variables` stored in the persistent cache
+(``CMakeCache.txt``) for the build tree.
+
+There is only one ``cache`` object major version, version 2.
+Version 1 does not exist to avoid confusion with that from
+:manual:`cmake-server(7)` mode.
+
+"cache" version 2
+^^^^^^^^^^^^^^^^^
+
+``cache`` object version 2 is a JSON object:
+
+.. code-block:: json
+
+ {
+ "kind": "cache",
+ "version": { "major": 2, "minor": 0 },
+ "entries": [
+ {
+ "name": "BUILD_SHARED_LIBS",
+ "value": "ON",
+ "type": "BOOL",
+ "properties": [
+ {
+ "name": "HELPSTRING",
+ "value": "Build shared libraries"
+ }
+ ]
+ },
+ {
+ "name": "CMAKE_GENERATOR",
+ "value": "Unix Makefiles",
+ "type": "INTERNAL",
+ "properties": [
+ {
+ "name": "HELPSTRING",
+ "value": "Name of generator."
+ }
+ ]
+ }
+ ]
+ }
+
+The members specific to ``cache`` objects are:
+
+``entries``
+ A JSON array whose entries are each a JSON object specifying a
+ cache entry. The members of each entry are:
+
+ ``name``
+ A string specifying the name of the entry.
+
+ ``value``
+ A string specifying the value of the entry.
+
+ ``type``
+ A string specifying the type of the entry used by
+ :manual:`cmake-gui(1)` to choose a widget for editing.
+
+ ``properties``
+ A JSON array of entries specifying associated
+ :ref:`cache entry properties <Cache Entry Properties>`.
+ Each entry is a JSON object containing members:
+
+ ``name``
+ A string specifying the name of the cache entry property.
+
+ ``value``
+ A string specifying the value of the cache entry property.
+
+Object Kind "cmakeFiles"
+------------------------
+
+The ``cmakeFiles`` object kind lists files used by CMake while
+configuring and generating the build system. These include the
+``CMakeLists.txt`` files as well as included ``.cmake`` files.
+
+There is only one ``cmakeFiles`` object major version, version 1.
+
+"cmakeFiles" version 1
+^^^^^^^^^^^^^^^^^^^^^^
+
+``cmakeFiles`` object version 1 is a JSON object:
+
+.. code-block:: json
+
+ {
+ "kind": "cmakeFiles",
+ "version": { "major": 1, "minor": 0 },
+ "paths": {
+ "build": "/path/to/top-level-build-dir",
+ "source": "/path/to/top-level-source-dir"
+ },
+ "inputs": [
+ {
+ "path": "CMakeLists.txt"
+ },
+ {
+ "isGenerated": true,
+ "path": "/path/to/top-level-build-dir/.../CMakeSystem.cmake"
+ },
+ {
+ "isExternal": true,
+ "path": "/path/to/external/third-party/module.cmake"
+ },
+ {
+ "isCMake": true,
+ "isExternal": true,
+ "path": "/path/to/cmake/Modules/CMakeGenericSystem.cmake"
+ }
+ ]
+ }
+
+The members specific to ``cmakeFiles`` objects are:
+
+``paths``
+ A JSON object containing members:
+
+ ``source``
+ A string specifying the absolute path to the top-level source directory,
+ represented with forward slashes.
+
+ ``build``
+ A string specifying the absolute path to the top-level build directory,
+ represented with forward slashes.
+
+``inputs``
+ A JSON array whose entries are each a JSON object specifying an input
+ file used by CMake when configuring and generating the build system.
+ The members of each entry are:
+
+ ``path``
+ A string specifying the path to an input file to CMake, represented
+ with forward slashes. If the file is inside the top-level source
+ directory then the path is specified relative to that directory.
+ Otherwise the path is absolute.
+
+ ``isGenerated``
+ Optional member that is present with boolean value ``true``
+ if the path specifies a file that is under the top-level
+ build directory and the build is out-of-source.
+ This member is not available on in-source builds.
+
+ ``isExternal``
+ Optional member that is present with boolean value ``true``
+ if the path specifies a file that is not under the top-level
+ source or build directories.
+
+ ``isCMake``
+ Optional member that is present with boolean value ``true``
+ if the path specifies a file in the CMake installation.
diff --git a/share/cmake-3.17/Help/manual/cmake-generator-expressions.7.rst b/share/cmake-3.17/Help/manual/cmake-generator-expressions.7.rst
new file mode 100644
index 0000000..691481b
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/cmake-generator-expressions.7.rst
@@ -0,0 +1,658 @@
+.. cmake-manual-description: CMake Generator Expressions
+
+cmake-generator-expressions(7)
+******************************
+
+.. only:: html
+
+ .. contents::
+
+Introduction
+============
+
+Generator expressions are evaluated during build system generation to produce
+information specific to each build configuration.
+
+Generator expressions are allowed in the context of many target properties,
+such as :prop_tgt:`LINK_LIBRARIES`, :prop_tgt:`INCLUDE_DIRECTORIES`,
+:prop_tgt:`COMPILE_DEFINITIONS` and others. They may also be used when using
+commands to populate those properties, such as :command:`target_link_libraries`,
+:command:`target_include_directories`, :command:`target_compile_definitions`
+and others.
+
+They enable conditional linking, conditional definitions used when compiling,
+conditional include directories, and more. The conditions may be based on
+the build configuration, target properties, platform information or any other
+queryable information.
+
+Generator expressions have the form ``$<...>``. To avoid confusion, this page
+deviates from most of the CMake documentation in that it omits angular brackets
+``<...>`` around placeholders like ``condition``, ``string``, ``target``,
+among others.
+
+Generator expressions can be nested, as shown in most of the examples below.
+
+.. _`Boolean Generator Expressions`:
+
+Boolean Generator Expressions
+=============================
+
+Boolean expressions evaluate to either ``0`` or ``1``.
+They are typically used to construct the condition in a :ref:`conditional
+generator expression<Conditional Generator Expressions>`.
+
+Available boolean expressions are:
+
+Logical Operators
+-----------------
+
+``$<BOOL:string>``
+ Converts ``string`` to ``0`` or ``1``. Evaluates to ``0`` if any of the
+ following is true:
+
+ * ``string`` is empty,
+ * ``string`` is a case-insensitive equal of
+ ``0``, ``FALSE``, ``OFF``, ``N``, ``NO``, ``IGNORE``, or ``NOTFOUND``, or
+ * ``string`` ends in the suffix ``-NOTFOUND`` (case-sensitive).
+
+ Otherwise evaluates to ``1``.
+
+``$<AND:conditions>``
+ where ``conditions`` is a comma-separated list of boolean expressions.
+ Evaluates to ``1`` if all conditions are ``1``.
+ Otherwise evaluates to ``0``.
+
+``$<OR:conditions>``
+ where ``conditions`` is a comma-separated list of boolean expressions.
+ Evaluates to ``1`` if at least one of the conditions is ``1``.
+ Otherwise evaluates to ``0``.
+
+``$<NOT:condition>``
+ ``0`` if ``condition`` is ``1``, else ``1``.
+
+String Comparisons
+------------------
+
+``$<STREQUAL:string1,string2>``
+ ``1`` if ``string1`` and ``string2`` are equal, else ``0``.
+ The comparison is case-sensitive. For a case-insensitive comparison,
+ combine with a :ref:`string transforming generator expression
+ <String Transforming Generator Expressions>`,
+
+ .. code-block:: cmake
+
+ $<STREQUAL:$<UPPER_CASE:${foo}>,"BAR"> # "1" if ${foo} is any of "BAR", "Bar", "bar", ...
+
+``$<EQUAL:value1,value2>``
+ ``1`` if ``value1`` and ``value2`` are numerically equal, else ``0``.
+``$<IN_LIST:string,list>``
+ ``1`` if ``string`` is member of the semicolon-separated ``list``, else ``0``.
+ Uses case-sensitive comparisons.
+``$<VERSION_LESS:v1,v2>``
+ ``1`` if ``v1`` is a version less than ``v2``, else ``0``.
+``$<VERSION_GREATER:v1,v2>``
+ ``1`` if ``v1`` is a version greater than ``v2``, else ``0``.
+``$<VERSION_EQUAL:v1,v2>``
+ ``1`` if ``v1`` is the same version as ``v2``, else ``0``.
+``$<VERSION_LESS_EQUAL:v1,v2>``
+ ``1`` if ``v1`` is a version less than or equal to ``v2``, else ``0``.
+``$<VERSION_GREATER_EQUAL:v1,v2>``
+ ``1`` if ``v1`` is a version greater than or equal to ``v2``, else ``0``.
+
+
+Variable Queries
+----------------
+
+``$<TARGET_EXISTS:target>``
+ ``1`` if ``target`` exists, else ``0``.
+``$<CONFIG:cfg>``
+ ``1`` if config is ``cfg``, else ``0``. This is a case-insensitive comparison.
+ The mapping in :prop_tgt:`MAP_IMPORTED_CONFIG_<CONFIG>` is also considered by
+ this expression when it is evaluated on a property on an :prop_tgt:`IMPORTED`
+ target.
+``$<PLATFORM_ID:platform_ids>``
+ where ``platform_ids`` is a comma-separated list.
+ ``1`` if the CMake's platform id matches any one of the entries in
+ ``platform_ids``, otherwise ``0``.
+ See also the :variable:`CMAKE_SYSTEM_NAME` variable.
+``$<C_COMPILER_ID:compiler_ids>``
+ where ``compiler_ids`` is a comma-separated list.
+ ``1`` if the CMake's compiler id of the C compiler matches any one
+ of the entries in ``compiler_ids``, otherwise ``0``.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
+``$<CXX_COMPILER_ID:compiler_ids>``
+ where ``compiler_ids`` is a comma-separated list.
+ ``1`` if the CMake's compiler id of the CXX compiler matches any one
+ of the entries in ``compiler_ids``, otherwise ``0``.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
+``$<CUDA_COMPILER_ID:compiler_ids>``
+ where ``compiler_ids`` is a comma-separated list.
+ ``1`` if the CMake's compiler id of the CUDA compiler matches any one
+ of the entries in ``compiler_ids``, otherwise ``0``.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
+``$<OBJC_COMPILER_ID:compiler_ids>``
+ where ``compiler_ids`` is a comma-separated list.
+ ``1`` if the CMake's compiler id of the Objective-C compiler matches any one
+ of the entries in ``compiler_ids``, otherwise ``0``.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
+``$<OBJCXX_COMPILER_ID:compiler_ids>``
+ where ``compiler_ids`` is a comma-separated list.
+ ``1`` if the CMake's compiler id of the Objective-C++ compiler matches any one
+ of the entries in ``compiler_ids``, otherwise ``0``.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
+``$<Fortran_COMPILER_ID:compiler_ids>``
+ where ``compiler_ids`` is a comma-separated list.
+ ``1`` if the CMake's compiler id of the Fortran compiler matches any one
+ of the entries in ``compiler_ids``, otherwise ``0``.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
+``$<C_COMPILER_VERSION:version>``
+ ``1`` if the version of the C compiler matches ``version``, otherwise ``0``.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
+``$<CXX_COMPILER_VERSION:version>``
+ ``1`` if the version of the CXX compiler matches ``version``, otherwise ``0``.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
+``$<CUDA_COMPILER_VERSION:version>``
+ ``1`` if the version of the CXX compiler matches ``version``, otherwise ``0``.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
+``$<OBJC_COMPILER_VERSION:version>``
+ ``1`` if the version of the OBJC compiler matches ``version``, otherwise ``0``.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
+``$<OBJCXX_COMPILER_VERSION:version>``
+ ``1`` if the version of the OBJCXX compiler matches ``version``, otherwise ``0``.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
+``$<Fortran_COMPILER_VERSION:version>``
+ ``1`` if the version of the Fortran compiler matches ``version``, otherwise ``0``.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
+``$<TARGET_POLICY:policy>``
+ ``1`` if the ``policy`` was NEW when the 'head' target was created,
+ else ``0``. If the ``policy`` was not set, the warning message for the policy
+ will be emitted. This generator expression only works for a subset of
+ policies.
+``$<COMPILE_FEATURES:features>``
+ where ``features`` is a comma-spearated list.
+ Evaluates to ``1`` if all of the ``features`` are available for the 'head'
+ target, and ``0`` otherwise. If this expression is used while evaluating
+ the link implementation of a target and if any dependency transitively
+ increases the required :prop_tgt:`C_STANDARD` or :prop_tgt:`CXX_STANDARD`
+ for the 'head' target, an error is reported. See the
+ :manual:`cmake-compile-features(7)` manual for information on
+ compile features and a list of supported compilers.
+
+.. _`Boolean COMPILE_LANGUAGE Generator Expression`:
+
+``$<COMPILE_LANG_AND_ID:language,compiler_ids>``
+ ``1`` when the language used for compilation unit matches ``language`` and
+ the CMake's compiler id of the language compiler matches any one of the
+ entries in ``compiler_ids``, otherwise ``0``. This expression is a short form
+ for the combination of ``$<COMPILE_LANGUAGE:language>`` and
+ ``$<LANG_COMPILER_ID:compiler_ids>``. This expression may be used to specify
+ compile options, compile definitions, and include directories for source files of a
+ particular language and compiler combination in a target. For example:
+
+ .. code-block:: cmake
+
+ add_executable(myapp main.cpp foo.c bar.cpp zot.cu)
+ target_compile_definitions(myapp
+ PRIVATE $<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:COMPILING_CXX_WITH_CLANG>
+ $<$<COMPILE_LANG_AND_ID:CXX,Intel>:COMPILING_CXX_WITH_INTEL>
+ $<$<COMPILE_LANG_AND_ID:C,Clang>:COMPILING_C_WITH_CLANG>
+ )
+
+ This specifies the use of different compile definitions based on both
+ the compiler id and compilation language. This example will have a
+ ``COMPILING_CXX_WITH_CLANG`` compile definition when Clang is the CXX
+ compiler, and ``COMPILING_CXX_WITH_INTEL`` when Intel is the CXX compiler.
+ Likewise when the C compiler is Clang it will only see the ``COMPILING_C_WITH_CLANG``
+ definition.
+
+ Without the ``COMPILE_LANG_AND_ID`` generator expression the same logic
+ would be expressed as:
+
+ .. code-block:: cmake
+
+ target_compile_definitions(myapp
+ PRIVATE $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:AppleClang,Clang>>:COMPILING_CXX_WITH_CLANG>
+ $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:Intel>>:COMPILING_CXX_WITH_INTEL>
+ $<$<AND:$<COMPILE_LANGUAGE:C>,$<C_COMPILER_ID:Clang>>:COMPILING_C_WITH_CLANG>
+ )
+
+``$<COMPILE_LANGUAGE:languages>``
+ ``1`` when the language used for compilation unit matches any of the entries
+ in ``languages``, otherwise ``0``. This expression may be used to specify
+ compile options, compile definitions, and include directories for source files of a
+ particular language in a target. For example:
+
+ .. code-block:: cmake
+
+ add_executable(myapp main.cpp foo.c bar.cpp zot.cu)
+ target_compile_options(myapp
+ PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>
+ )
+ target_compile_definitions(myapp
+ PRIVATE $<$<COMPILE_LANGUAGE:CXX>:COMPILING_CXX>
+ $<$<COMPILE_LANGUAGE:CUDA>:COMPILING_CUDA>
+ )
+ target_include_directories(myapp
+ PRIVATE $<$<COMPILE_LANGUAGE:CXX,CUDA>:/opt/foo/headers>
+ )
+
+ This specifies the use of the ``-fno-exceptions`` compile option,
+ ``COMPILING_CXX`` compile definition, and ``cxx_headers`` include
+ directory for C++ only (compiler id checks elided). It also specifies
+ a ``COMPILING_CUDA`` compile definition for CUDA.
+
+ Note that with :ref:`Visual Studio Generators` and :generator:`Xcode` there
+ is no way to represent target-wide compile definitions or include directories
+ separately for ``C`` and ``CXX`` languages.
+ Also, with :ref:`Visual Studio Generators` there is no way to represent
+ target-wide flags separately for ``C`` and ``CXX`` languages. Under these
+ generators, expressions for both C and C++ sources will be evaluated
+ using ``CXX`` if there are any C++ sources and otherwise using ``C``.
+ A workaround is to create separate libraries for each source file language
+ instead:
+
+ .. code-block:: cmake
+
+ add_library(myapp_c foo.c)
+ add_library(myapp_cxx bar.cpp)
+ target_compile_options(myapp_cxx PUBLIC -fno-exceptions)
+ add_executable(myapp main.cpp)
+ target_link_libraries(myapp myapp_c myapp_cxx)
+
+String-Valued Generator Expressions
+===================================
+
+These expressions expand to some string.
+For example,
+
+.. code-block:: cmake
+
+ include_directories(/usr/include/$<CXX_COMPILER_ID>/)
+
+expands to ``/usr/include/GNU/`` or ``/usr/include/Clang/`` etc, depending on
+the compiler identifier.
+
+String-valued expressions may also be combined with other expressions.
+Here an example for a string-valued expression within a boolean expressions
+within a conditional expression:
+
+.. code-block:: cmake
+
+ $<$<VERSION_LESS:$<CXX_COMPILER_VERSION>,4.2.0>:OLD_COMPILER>
+
+expands to ``OLD_COMPILER`` if the
+:variable:`CMAKE_CXX_COMPILER_VERSION <CMAKE_<LANG>_COMPILER_VERSION>` is less
+than 4.2.0.
+
+And here two nested string-valued expressions:
+
+.. code-block:: cmake
+
+ -I$<JOIN:$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>, -I>
+
+generates a string of the entries in the :prop_tgt:`INCLUDE_DIRECTORIES` target
+property with each entry preceded by ``-I``.
+
+Expanding on the previous example, if one first wants to check if the
+``INCLUDE_DIRECTORIES`` property is non-empty, then it is advisable to
+introduce a helper variable to keep the code readable:
+
+.. code-block:: cmake
+
+ set(prop "$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>") # helper variable
+ $<$<BOOL:${prop}>:-I$<JOIN:${prop}, -I>>
+
+The following string-valued generator expressions are available:
+
+Escaped Characters
+------------------
+
+String literals to escape the special meaning a character would otherwise have:
+
+``$<ANGLE-R>``
+ A literal ``>``. Used for example to compare strings that contain a ``>``.
+``$<COMMA>``
+ A literal ``,``. Used for example to compare strings which contain a ``,``.
+``$<SEMICOLON>``
+ A literal ``;``. Used to prevent list expansion on an argument with ``;``.
+
+.. _`Conditional Generator Expressions`:
+
+Conditional Expressions
+-----------------------
+
+Conditional generator expressions depend on a boolean condition
+that must be ``0`` or ``1``.
+
+``$<condition:true_string>``
+ Evaluates to ``true_string`` if ``condition`` is ``1``.
+ Otherwise evaluates to the empty string.
+
+``$<IF:condition,true_string,false_string>``
+ Evaluates to ``true_string`` if ``condition`` is ``1``.
+ Otherwise evaluates to ``false_string``.
+
+Typically, the ``condition`` is a :ref:`boolean generator expression
+<Boolean Generator Expressions>`. For instance,
+
+.. code-block:: cmake
+
+ $<$<CONFIG:Debug>:DEBUG_MODE>
+
+expands to ``DEBUG_MODE`` when the ``Debug`` configuration is used, and
+otherwise expands to the empty string.
+
+.. _`String Transforming Generator Expressions`:
+
+String Transformations
+----------------------
+
+``$<JOIN:list,string>``
+ Joins the list with the content of ``string``.
+``$<REMOVE_DUPLICATES:list>``
+ Removes duplicated items in the given ``list``.
+``$<FILTER:list,INCLUDE|EXCLUDE,regex>``
+ Includes or removes items from ``list`` that match the regular expression ``regex``.
+``$<LOWER_CASE:string>``
+ Content of ``string`` converted to lower case.
+``$<UPPER_CASE:string>``
+ Content of ``string`` converted to upper case.
+
+``$<GENEX_EVAL:expr>``
+ Content of ``expr`` evaluated as a generator expression in the current
+ context. This enables consumption of generator expressions whose
+ evaluation results itself in generator expressions.
+``$<TARGET_GENEX_EVAL:tgt,expr>``
+ Content of ``expr`` evaluated as a generator expression in the context of
+ ``tgt`` target. This enables consumption of custom target properties that
+ themselves contain generator expressions.
+
+ Having the capability to evaluate generator expressions is very useful when
+ you want to manage custom properties supporting generator expressions.
+ For example:
+
+ .. code-block:: cmake
+
+ add_library(foo ...)
+
+ set_property(TARGET foo PROPERTY
+ CUSTOM_KEYS $<$<CONFIG:DEBUG>:FOO_EXTRA_THINGS>
+ )
+
+ add_custom_target(printFooKeys
+ COMMAND ${CMAKE_COMMAND} -E echo $<TARGET_PROPERTY:foo,CUSTOM_KEYS>
+ )
+
+ This naive implementation of the ``printFooKeys`` custom command is wrong
+ because ``CUSTOM_KEYS`` target property is not evaluated and the content
+ is passed as is (i.e. ``$<$<CONFIG:DEBUG>:FOO_EXTRA_THINGS>``).
+
+ To have the expected result (i.e. ``FOO_EXTRA_THINGS`` if config is
+ ``Debug``), it is required to evaluate the output of
+ ``$<TARGET_PROPERTY:foo,CUSTOM_KEYS>``:
+
+ .. code-block:: cmake
+
+ add_custom_target(printFooKeys
+ COMMAND ${CMAKE_COMMAND} -E
+ echo $<TARGET_GENEX_EVAL:foo,$<TARGET_PROPERTY:foo,CUSTOM_KEYS>>
+ )
+
+Variable Queries
+----------------
+
+``$<CONFIG>``
+ Configuration name.
+``$<CONFIGURATION>``
+ Configuration name. Deprecated since CMake 3.0. Use ``CONFIG`` instead.
+``$<PLATFORM_ID>``
+ The current system's CMake platform id.
+ See also the :variable:`CMAKE_SYSTEM_NAME` variable.
+``$<C_COMPILER_ID>``
+ The CMake's compiler id of the C compiler used.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
+``$<CXX_COMPILER_ID>``
+ The CMake's compiler id of the CXX compiler used.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
+``$<CUDA_COMPILER_ID>``
+ The CMake's compiler id of the CUDA compiler used.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
+``$<OBJC_COMPILER_ID>``
+ The CMake's compiler id of the OBJC compiler used.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
+``$<OBJCXX_COMPILER_ID>``
+ The CMake's compiler id of the OBJCXX compiler used.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
+``$<Fortran_COMPILER_ID>``
+ The CMake's compiler id of the Fortran compiler used.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_ID` variable.
+``$<C_COMPILER_VERSION>``
+ The version of the C compiler used.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
+``$<CXX_COMPILER_VERSION>``
+ The version of the CXX compiler used.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
+``$<CUDA_COMPILER_VERSION>``
+ The version of the CUDA compiler used.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
+``$<OBJC_COMPILER_VERSION>``
+ The version of the OBJC compiler used.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
+``$<OBJCXX_COMPILER_VERSION>``
+ The version of the OBJCXX compiler used.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
+``$<Fortran_COMPILER_VERSION>``
+ The version of the Fortran compiler used.
+ See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` variable.
+``$<COMPILE_LANGUAGE>``
+ The compile language of source files when evaluating compile options.
+ See :ref:`the related boolean expression
+ <Boolean COMPILE_LANGUAGE Generator Expression>`
+ ``$<COMPILE_LANGUAGE:language>``
+ for notes about the portability of this generator expression.
+
+Target-Dependent Queries
+------------------------
+
+``$<TARGET_NAME_IF_EXISTS:tgt>``
+ Expands to the ``tgt`` if the given target exists, an empty string
+ otherwise.
+``$<TARGET_FILE:tgt>``
+ Full path to main file (.exe, .so.1.2, .a) where ``tgt`` is the name of a
+ target.
+``$<TARGET_FILE_BASE_NAME:tgt>``
+ Base name of main file where ``tgt`` is the name of a target.
+
+ The base name corresponds to the target file name (see
+ ``$<TARGET_FILE_NAME:tgt>``) without prefix and suffix. For example, if
+ target file name is ``libbase.so``, the base name is ``base``.
+
+ See also the :prop_tgt:`OUTPUT_NAME`, :prop_tgt:`ARCHIVE_OUTPUT_NAME`,
+ :prop_tgt:`LIBRARY_OUTPUT_NAME` and :prop_tgt:`RUNTIME_OUTPUT_NAME`
+ target properties and their configuration specific variants
+ :prop_tgt:`OUTPUT_NAME_<CONFIG>`, :prop_tgt:`ARCHIVE_OUTPUT_NAME_<CONFIG>`,
+ :prop_tgt:`LIBRARY_OUTPUT_NAME_<CONFIG>` and
+ :prop_tgt:`RUNTIME_OUTPUT_NAME_<CONFIG>`.
+
+ The :prop_tgt:`<CONFIG>_POSTFIX` and :prop_tgt:`DEBUG_POSTFIX` target
+ properties can also be considered.
+
+ Note that ``tgt`` is not added as a dependency of the target this
+ expression is evaluated on.
+``$<TARGET_FILE_PREFIX:tgt>``
+ Prefix of main file where ``tgt`` is the name of a target.
+
+ See also the :prop_tgt:`PREFIX` target property.
+
+ Note that ``tgt`` is not added as a dependency of the target this
+ expression is evaluated on.
+``$<TARGET_FILE_SUFFIX:tgt>``
+ Suffix of main file where ``tgt`` is the name of a target.
+
+ The suffix corresponds to the file extension (such as ".so" or ".exe").
+
+ See also the :prop_tgt:`SUFFIX` target property.
+
+ Note that ``tgt`` is not added as a dependency of the target this
+ expression is evaluated on.
+``$<TARGET_FILE_NAME:tgt>``
+ Name of main file (.exe, .so.1.2, .a).
+``$<TARGET_FILE_DIR:tgt>``
+ Directory of main file (.exe, .so.1.2, .a).
+``$<TARGET_LINKER_FILE:tgt>``
+ File used to link (.a, .lib, .so) where ``tgt`` is the name of a target.
+``$<TARGET_LINKER_FILE_BASE_NAME:tgt>``
+ Base name of file used to link where ``tgt`` is the name of a target.
+
+ The base name corresponds to the target linker file name (see
+ ``$<TARGET_LINKER_FILE_NAME:tgt>``) without prefix and suffix. For example,
+ if target file name is ``libbase.a``, the base name is ``base``.
+
+ See also the :prop_tgt:`OUTPUT_NAME`, :prop_tgt:`ARCHIVE_OUTPUT_NAME`,
+ and :prop_tgt:`LIBRARY_OUTPUT_NAME` target properties and their configuration
+ specific variants :prop_tgt:`OUTPUT_NAME_<CONFIG>`,
+ :prop_tgt:`ARCHIVE_OUTPUT_NAME_<CONFIG>` and
+ :prop_tgt:`LIBRARY_OUTPUT_NAME_<CONFIG>`.
+
+ The :prop_tgt:`<CONFIG>_POSTFIX` and :prop_tgt:`DEBUG_POSTFIX` target
+ properties can also be considered.
+
+ Note that ``tgt`` is not added as a dependency of the target this
+ expression is evaluated on.
+``$<TARGET_LINKER_FILE_PREFIX:tgt>``
+ Prefix of file used to link where ``tgt`` is the name of a target.
+
+ See also the :prop_tgt:`PREFIX` and :prop_tgt:`IMPORT_PREFIX` target
+ properties.
+
+ Note that ``tgt`` is not added as a dependency of the target this
+ expression is evaluated on.
+``$<TARGET_LINKER_FILE_SUFFIX:tgt>``
+ Suffix of file used to link where ``tgt`` is the name of a target.
+
+ The suffix corresponds to the file extension (such as ".so" or ".lib").
+
+ See also the :prop_tgt:`SUFFIX` and :prop_tgt:`IMPORT_SUFFIX` target
+ properties.
+
+ Note that ``tgt`` is not added as a dependency of the target this
+ expression is evaluated on.
+``$<TARGET_LINKER_FILE_NAME:tgt>``
+ Name of file used to link (.a, .lib, .so).
+``$<TARGET_LINKER_FILE_DIR:tgt>``
+ Directory of file used to link (.a, .lib, .so).
+``$<TARGET_SONAME_FILE:tgt>``
+ File with soname (.so.3) where ``tgt`` is the name of a target.
+``$<TARGET_SONAME_FILE_NAME:tgt>``
+ Name of file with soname (.so.3).
+``$<TARGET_SONAME_FILE_DIR:tgt>``
+ Directory of with soname (.so.3).
+``$<TARGET_PDB_FILE:tgt>``
+ Full path to the linker generated program database file (.pdb)
+ where ``tgt`` is the name of a target.
+
+ See also the :prop_tgt:`PDB_NAME` and :prop_tgt:`PDB_OUTPUT_DIRECTORY`
+ target properties and their configuration specific variants
+ :prop_tgt:`PDB_NAME_<CONFIG>` and :prop_tgt:`PDB_OUTPUT_DIRECTORY_<CONFIG>`.
+``$<TARGET_PDB_FILE_BASE_NAME:tgt>``
+ Base name of the linker generated program database file (.pdb)
+ where ``tgt`` is the name of a target.
+
+ The base name corresponds to the target PDB file name (see
+ ``$<TARGET_PDB_FILE_NAME:tgt>``) without prefix and suffix. For example,
+ if target file name is ``base.pdb``, the base name is ``base``.
+
+ See also the :prop_tgt:`PDB_NAME` target property and its configuration
+ specific variant :prop_tgt:`PDB_NAME_<CONFIG>`.
+
+ The :prop_tgt:`<CONFIG>_POSTFIX` and :prop_tgt:`DEBUG_POSTFIX` target
+ properties can also be considered.
+
+ Note that ``tgt`` is not added as a dependency of the target this
+ expression is evaluated on.
+``$<TARGET_PDB_FILE_NAME:tgt>``
+ Name of the linker generated program database file (.pdb).
+``$<TARGET_PDB_FILE_DIR:tgt>``
+ Directory of the linker generated program database file (.pdb).
+``$<TARGET_BUNDLE_DIR:tgt>``
+ Full path to the bundle directory (``my.app``, ``my.framework``, or
+ ``my.bundle``) where ``tgt`` is the name of a target.
+``$<TARGET_BUNDLE_CONTENT_DIR:tgt>``
+ Full path to the bundle content directory where ``tgt`` is the name of a
+ target. For the macOS SDK it leads to ``my.app/Contents``, ``my.framework``,
+ or ``my.bundle/Contents``. For all other SDKs (e.g. iOS) it leads to
+ ``my.app``, ``my.framework``, or ``my.bundle`` due to the flat bundle
+ structure.
+``$<TARGET_PROPERTY:tgt,prop>``
+ Value of the property ``prop`` on the target ``tgt``.
+
+ Note that ``tgt`` is not added as a dependency of the target this
+ expression is evaluated on.
+``$<TARGET_PROPERTY:prop>``
+ Value of the property ``prop`` on the target on which the generator
+ expression is evaluated. Note that for generator expressions in
+ :ref:`Target Usage Requirements` this is the value of the property
+ on the consuming target rather than the target specifying the
+ requirement.
+``$<INSTALL_PREFIX>``
+ Content of the install prefix when the target is exported via
+ :command:`install(EXPORT)`, or when evaluated in
+ :prop_tgt:`INSTALL_NAME_DIR`, and empty otherwise.
+
+Output-Related Expressions
+--------------------------
+
+``$<TARGET_NAME:...>``
+ Marks ``...`` as being the name of a target. This is required if exporting
+ targets to multiple dependent export sets. The ``...`` must be a literal
+ name of a target- it may not contain generator expressions.
+``$<LINK_ONLY:...>``
+ Content of ``...`` except when evaluated in a link interface while
+ propagating :ref:`Target Usage Requirements`, in which case it is the
+ empty string.
+ Intended for use only in an :prop_tgt:`INTERFACE_LINK_LIBRARIES` target
+ property, perhaps via the :command:`target_link_libraries` command,
+ to specify private link dependencies without other usage requirements.
+``$<INSTALL_INTERFACE:...>``
+ Content of ``...`` when the property is exported using :command:`install(EXPORT)`,
+ and empty otherwise.
+``$<BUILD_INTERFACE:...>``
+ Content of ``...`` when the property is exported using :command:`export`, or
+ when the target is used by another target in the same buildsystem. Expands to
+ the empty string otherwise.
+``$<MAKE_C_IDENTIFIER:...>``
+ Content of ``...`` converted to a C identifier. The conversion follows the
+ same behavior as :command:`string(MAKE_C_IDENTIFIER)`.
+``$<TARGET_OBJECTS:objLib>``
+ List of objects resulting from build of ``objLib``.
+``$<SHELL_PATH:...>``
+ Content of ``...`` converted to shell path style. For example, slashes are
+ converted to backslashes in Windows shells and drive letters are converted
+ to posix paths in MSYS shells. The ``...`` must be an absolute path.
+ The ``...`` may be a :ref:`semicolon-separated list <CMake Language Lists>`
+ of paths, in which case each path is converted individually and a result
+ list is generated using the shell path separator (``:`` on POSIX and
+ ``;`` on Windows). Be sure to enclose the argument containing this genex
+ in double quotes in CMake source code so that ``;`` does not split arguments.
+
+Debugging
+=========
+
+Since generator expressions are evaluated during generation of the buildsystem,
+and not during processing of ``CMakeLists.txt`` files, it is not possible to
+inspect their result with the :command:`message()` command.
+
+One possible way to generate debug messages is to add a custom target,
+
+.. code-block:: cmake
+
+ add_custom_target(genexdebug COMMAND ${CMAKE_COMMAND} -E echo "$<...>")
+
+The shell command ``make genexdebug`` (invoked after execution of ``cmake``)
+would then print the result of ``$<...>``.
+
+Another way is to write debug messages to a file:
+
+.. code-block:: cmake
+
+ file(GENERATE OUTPUT filename CONTENT "$<...>")
diff --git a/share/cmake-3.17/Help/manual/cmake-generators.7.rst b/share/cmake-3.17/Help/manual/cmake-generators.7.rst
new file mode 100644
index 0000000..6f88c0a
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/cmake-generators.7.rst
@@ -0,0 +1,118 @@
+.. cmake-manual-description: CMake Generators Reference
+
+cmake-generators(7)
+*******************
+
+.. only:: html
+
+ .. contents::
+
+Introduction
+============
+
+A *CMake Generator* is responsible for writing the input files for
+a native build system. Exactly one of the `CMake Generators`_ must be
+selected for a build tree to determine what native build system is to
+be used. Optionally one of the `Extra Generators`_ may be selected
+as a variant of some of the `Command-Line Build Tool Generators`_ to
+produce project files for an auxiliary IDE.
+
+CMake Generators are platform-specific so each may be available only
+on certain platforms. The :manual:`cmake(1)` command-line tool ``--help``
+output lists available generators on the current platform. Use its ``-G``
+option to specify the generator for a new build tree.
+The :manual:`cmake-gui(1)` offers interactive selection of a generator
+when creating a new build tree.
+
+CMake Generators
+================
+
+.. _`Command-Line Build Tool Generators`:
+
+Command-Line Build Tool Generators
+----------------------------------
+
+These generators support command-line build tools. In order to use them,
+one must launch CMake from a command-line prompt whose environment is
+already configured for the chosen compiler and build tool.
+
+.. _`Makefile Generators`:
+
+Makefile Generators
+^^^^^^^^^^^^^^^^^^^
+
+.. toctree::
+ :maxdepth: 1
+
+ /generator/Borland Makefiles
+ /generator/MSYS Makefiles
+ /generator/MinGW Makefiles
+ /generator/NMake Makefiles
+ /generator/NMake Makefiles JOM
+ /generator/Unix Makefiles
+ /generator/Watcom WMake
+
+Ninja Generators
+^^^^^^^^^^^^^^^^
+
+.. toctree::
+ :maxdepth: 1
+
+ /generator/Ninja
+ /generator/Ninja Multi-Config
+
+.. _`IDE Build Tool Generators`:
+
+IDE Build Tool Generators
+-------------------------
+
+These generators support Integrated Development Environment (IDE)
+project files. Since the IDEs configure their own environment
+one may launch CMake from any environment.
+
+.. _`Visual Studio Generators`:
+
+Visual Studio Generators
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. toctree::
+ :maxdepth: 1
+
+ /generator/Visual Studio 6
+ /generator/Visual Studio 7
+ /generator/Visual Studio 7 .NET 2003
+ /generator/Visual Studio 8 2005
+ /generator/Visual Studio 9 2008
+ /generator/Visual Studio 10 2010
+ /generator/Visual Studio 11 2012
+ /generator/Visual Studio 12 2013
+ /generator/Visual Studio 14 2015
+ /generator/Visual Studio 15 2017
+ /generator/Visual Studio 16 2019
+
+Other Generators
+^^^^^^^^^^^^^^^^
+
+.. toctree::
+ :maxdepth: 1
+
+ /generator/Green Hills MULTI
+ /generator/Xcode
+
+Extra Generators
+================
+
+Some of the `CMake Generators`_ listed in the :manual:`cmake(1)`
+command-line tool ``--help`` output may have variants that specify
+an extra generator for an auxiliary IDE tool. Such generator
+names have the form ``<extra-generator> - <main-generator>``.
+The following extra generators are known to CMake.
+
+.. toctree::
+ :maxdepth: 1
+
+ /generator/CodeBlocks
+ /generator/CodeLite
+ /generator/Eclipse CDT4
+ /generator/Kate
+ /generator/Sublime Text 2
diff --git a/share/cmake-3.16/Help/manual/cmake-gui.1.rst b/share/cmake-3.17/Help/manual/cmake-gui.1.rst
index ff8311b..ff8311b 100644
--- a/share/cmake-3.16/Help/manual/cmake-gui.1.rst
+++ b/share/cmake-3.17/Help/manual/cmake-gui.1.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-language.7.rst b/share/cmake-3.17/Help/manual/cmake-language.7.rst
new file mode 100644
index 0000000..b7f0861
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/cmake-language.7.rst
@@ -0,0 +1,629 @@
+.. cmake-manual-description: CMake Language Reference
+
+cmake-language(7)
+*****************
+
+.. only:: html
+
+ .. contents::
+
+Organization
+============
+
+CMake input files are written in the "CMake Language" in source files
+named ``CMakeLists.txt`` or ending in a ``.cmake`` file name extension.
+
+CMake Language source files in a project are organized into:
+
+* `Directories`_ (``CMakeLists.txt``),
+* `Scripts`_ (``<script>.cmake``), and
+* `Modules`_ (``<module>.cmake``).
+
+Directories
+-----------
+
+When CMake processes a project source tree, the entry point is
+a source file called ``CMakeLists.txt`` in the top-level source
+directory. This file may contain the entire build specification
+or use the :command:`add_subdirectory` command to add subdirectories
+to the build. Each subdirectory added by the command must also
+contain a ``CMakeLists.txt`` file as the entry point to that
+directory. For each source directory whose ``CMakeLists.txt`` file
+is processed CMake generates a corresponding directory in the build
+tree to act as the default working and output directory.
+
+Scripts
+-------
+
+An individual ``<script>.cmake`` source file may be processed
+in *script mode* by using the :manual:`cmake(1)` command-line tool
+with the ``-P`` option. Script mode simply runs the commands in
+the given CMake Language source file and does not generate a
+build system. It does not allow CMake commands that define build
+targets or actions.
+
+Modules
+-------
+
+CMake Language code in either `Directories`_ or `Scripts`_ may
+use the :command:`include` command to load a ``<module>.cmake``
+source file in the scope of the including context.
+See the :manual:`cmake-modules(7)` manual page for documentation
+of modules included with the CMake distribution.
+Project source trees may also provide their own modules and
+specify their location(s) in the :variable:`CMAKE_MODULE_PATH`
+variable.
+
+Syntax
+======
+
+.. _`CMake Language Encoding`:
+
+Encoding
+--------
+
+A CMake Language source file may be written in 7-bit ASCII text for
+maximum portability across all supported platforms. Newlines may be
+encoded as either ``\n`` or ``\r\n`` but will be converted to ``\n``
+as input files are read.
+
+Note that the implementation is 8-bit clean so source files may
+be encoded as UTF-8 on platforms with system APIs supporting this
+encoding. In addition, CMake 3.2 and above support source files
+encoded in UTF-8 on Windows (using UTF-16 to call system APIs).
+Furthermore, CMake 3.0 and above allow a leading UTF-8
+`Byte-Order Mark`_ in source files.
+
+.. _`Byte-Order Mark`: http://en.wikipedia.org/wiki/Byte_order_mark
+
+Source Files
+------------
+
+A CMake Language source file consists of zero or more
+`Command Invocations`_ separated by newlines and optionally
+spaces and `Comments`_:
+
+.. raw:: latex
+
+ \begin{small}
+
+.. productionlist::
+ file: `file_element`*
+ file_element: `command_invocation` `line_ending` |
+ : (`bracket_comment`|`space`)* `line_ending`
+ line_ending: `line_comment`? `newline`
+ space: <match '[ \t]+'>
+ newline: <match '\n'>
+
+.. raw:: latex
+
+ \end{small}
+
+Note that any source file line not inside `Command Arguments`_ or
+a `Bracket Comment`_ can end in a `Line Comment`_.
+
+.. _`Command Invocations`:
+
+Command Invocations
+-------------------
+
+A *command invocation* is a name followed by paren-enclosed arguments
+separated by whitespace:
+
+.. raw:: latex
+
+ \begin{small}
+
+.. productionlist::
+ command_invocation: `space`* `identifier` `space`* '(' `arguments` ')'
+ identifier: <match '[A-Za-z_][A-Za-z0-9_]*'>
+ arguments: `argument`? `separated_arguments`*
+ separated_arguments: `separation`+ `argument`? |
+ : `separation`* '(' `arguments` ')'
+ separation: `space` | `line_ending`
+
+.. raw:: latex
+
+ \end{small}
+
+For example:
+
+.. code-block:: cmake
+
+ add_executable(hello world.c)
+
+Command names are case-insensitive.
+Nested unquoted parentheses in the arguments must balance.
+Each ``(`` or ``)`` is given to the command invocation as
+a literal `Unquoted Argument`_. This may be used in calls
+to the :command:`if` command to enclose conditions.
+For example:
+
+.. code-block:: cmake
+
+ if(FALSE AND (FALSE OR TRUE)) # evaluates to FALSE
+
+.. note::
+ CMake versions prior to 3.0 require command name identifiers
+ to be at least 2 characters.
+
+ CMake versions prior to 2.8.12 silently accept an `Unquoted Argument`_
+ or a `Quoted Argument`_ immediately following a `Quoted Argument`_ and
+ not separated by any whitespace. For compatibility, CMake 2.8.12 and
+ higher accept such code but produce a warning.
+
+Command Arguments
+-----------------
+
+There are three types of arguments within `Command Invocations`_:
+
+.. raw:: latex
+
+ \begin{small}
+
+.. productionlist::
+ argument: `bracket_argument` | `quoted_argument` | `unquoted_argument`
+
+.. raw:: latex
+
+ \end{small}
+
+.. _`Bracket Argument`:
+
+Bracket Argument
+^^^^^^^^^^^^^^^^
+
+A *bracket argument*, inspired by `Lua`_ long bracket syntax,
+encloses content between opening and closing "brackets" of the
+same length:
+
+.. raw:: latex
+
+ \begin{small}
+
+.. productionlist::
+ bracket_argument: `bracket_open` `bracket_content` `bracket_close`
+ bracket_open: '[' '='* '['
+ bracket_content: <any text not containing a `bracket_close` with
+ : the same number of '=' as the `bracket_open`>
+ bracket_close: ']' '='* ']'
+
+.. raw:: latex
+
+ \end{small}
+
+An opening bracket is written ``[`` followed by zero or more ``=`` followed
+by ``[``. The corresponding closing bracket is written ``]`` followed
+by the same number of ``=`` followed by ``]``.
+Brackets do not nest. A unique length may always be chosen
+for the opening and closing brackets to contain closing brackets
+of other lengths.
+
+Bracket argument content consists of all text between the opening
+and closing brackets, except that one newline immediately following
+the opening bracket, if any, is ignored. No evaluation of the
+enclosed content, such as `Escape Sequences`_ or `Variable References`_,
+is performed. A bracket argument is always given to the command
+invocation as exactly one argument.
+
+.. No code-block syntax highlighting in the following example
+ (long string literal not supported by our cmake.py)
+
+For example::
+
+ message([=[
+ This is the first line in a bracket argument with bracket length 1.
+ No \-escape sequences or ${variable} references are evaluated.
+ This is always one argument even though it contains a ; character.
+ The text does not end on a closing bracket of length 0 like ]].
+ It does end in a closing bracket of length 1.
+ ]=])
+
+.. note::
+ CMake versions prior to 3.0 do not support bracket arguments.
+ They interpret the opening bracket as the start of an
+ `Unquoted Argument`_.
+
+.. _`Lua`: http://www.lua.org/
+
+.. _`Quoted Argument`:
+
+Quoted Argument
+^^^^^^^^^^^^^^^
+
+A *quoted argument* encloses content between opening and closing
+double-quote characters:
+
+.. raw:: latex
+
+ \begin{small}
+
+.. productionlist::
+ quoted_argument: '"' `quoted_element`* '"'
+ quoted_element: <any character except '\' or '"'> |
+ : `escape_sequence` |
+ : `quoted_continuation`
+ quoted_continuation: '\' `newline`
+
+.. raw:: latex
+
+ \end{small}
+
+Quoted argument content consists of all text between opening and
+closing quotes. Both `Escape Sequences`_ and `Variable References`_
+are evaluated. A quoted argument is always given to the command
+invocation as exactly one argument.
+
+.. No code-block syntax highlighting in the following example
+ (escape \" not supported by our cmake.py)
+
+For example:
+
+.. code-block:: cmake
+
+ message("This is a quoted argument containing multiple lines.
+ This is always one argument even though it contains a ; character.
+ Both \\-escape sequences and ${variable} references are evaluated.
+ The text does not end on an escaped double-quote like \".
+ It does end in an unescaped double quote.
+ ")
+
+.. No code-block syntax highlighting in the following example
+ (for conformity with the two above examples)
+
+The final ``\`` on any line ending in an odd number of backslashes
+is treated as a line continuation and ignored along with the
+immediately following newline character. For example:
+
+.. code-block:: cmake
+
+ message("\
+ This is the first line of a quoted argument. \
+ In fact it is the only line but since it is long \
+ the source code uses line continuation.\
+ ")
+
+.. note::
+ CMake versions prior to 3.0 do not support continuation with ``\``.
+ They report errors in quoted arguments containing lines ending in
+ an odd number of ``\`` characters.
+
+.. _`Unquoted Argument`:
+
+Unquoted Argument
+^^^^^^^^^^^^^^^^^
+
+An *unquoted argument* is not enclosed by any quoting syntax.
+It may not contain any whitespace, ``(``, ``)``, ``#``, ``"``, or ``\``
+except when escaped by a backslash:
+
+.. raw:: latex
+
+ \begin{small}
+
+.. productionlist::
+ unquoted_argument: `unquoted_element`+ | `unquoted_legacy`
+ unquoted_element: <any character except whitespace or one of '()#"\'> |
+ : `escape_sequence`
+ unquoted_legacy: <see note in text>
+
+.. raw:: latex
+
+ \end{small}
+
+Unquoted argument content consists of all text in a contiguous block
+of allowed or escaped characters. Both `Escape Sequences`_ and
+`Variable References`_ are evaluated. The resulting value is divided
+in the same way `Lists`_ divide into elements. Each non-empty element
+is given to the command invocation as an argument. Therefore an
+unquoted argument may be given to a command invocation as zero or
+more arguments.
+
+For example:
+
+.. code-block:: cmake
+
+ foreach(arg
+ NoSpace
+ Escaped\ Space
+ This;Divides;Into;Five;Arguments
+ Escaped\;Semicolon
+ )
+ message("${arg}")
+ endforeach()
+
+.. note::
+ To support legacy CMake code, unquoted arguments may also contain
+ double-quoted strings (``"..."``, possibly enclosing horizontal
+ whitespace), and make-style variable references (``$(MAKEVAR)``).
+
+ Unescaped double-quotes must balance, may not appear at the
+ beginning of an unquoted argument, and are treated as part of the
+ content. For example, the unquoted arguments ``-Da="b c"``,
+ ``-Da=$(v)``, and ``a" "b"c"d`` are each interpreted literally.
+ They may instead be written as quoted arguments ``"-Da=\"b c\""``,
+ ``"-Da=$(v)"``, and ``"a\" \"b\"c\"d"``, respectively.
+
+ Make-style references are treated literally as part of the content
+ and do not undergo variable expansion. They are treated as part
+ of a single argument (rather than as separate ``$``, ``(``,
+ ``MAKEVAR``, and ``)`` arguments).
+
+ The above "unquoted_legacy" production represents such arguments.
+ We do not recommend using legacy unquoted arguments in new code.
+ Instead use a `Quoted Argument`_ or a `Bracket Argument`_ to
+ represent the content.
+
+.. _`Escape Sequences`:
+
+Escape Sequences
+----------------
+
+An *escape sequence* is a ``\`` followed by one character:
+
+.. raw:: latex
+
+ \begin{small}
+
+.. productionlist::
+ escape_sequence: `escape_identity` | `escape_encoded` | `escape_semicolon`
+ escape_identity: '\' <match '[^A-Za-z0-9;]'>
+ escape_encoded: '\t' | '\r' | '\n'
+ escape_semicolon: '\;'
+
+.. raw:: latex
+
+ \end{small}
+
+A ``\`` followed by a non-alphanumeric character simply encodes the literal
+character without interpreting it as syntax. A ``\t``, ``\r``, or ``\n``
+encodes a tab, carriage return, or newline character, respectively. A ``\;``
+outside of any `Variable References`_ encodes itself but may be used in an
+`Unquoted Argument`_ to encode the ``;`` without dividing the argument
+value on it. A ``\;`` inside `Variable References`_ encodes the literal
+``;`` character. (See also policy :policy:`CMP0053` documentation for
+historical considerations.)
+
+.. _`Variable References`:
+
+Variable References
+-------------------
+
+A *variable reference* has the form ``${<variable>}`` and is
+evaluated inside a `Quoted Argument`_ or an `Unquoted Argument`_.
+A variable reference is replaced by the value of the variable,
+or by the empty string if the variable is not set.
+Variable references can nest and are evaluated from the
+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 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.
+
+An *environment variable reference* has the form ``$ENV{<variable>}``.
+See the `Environment Variables`_ section for more information.
+
+A *cache variable reference* has the form ``$CACHE{<variable>}``.
+See :variable:`CACHE` for more information.
+
+The :command:`if` command has a special condition syntax that
+allows for variable references in the short form ``<variable>``
+instead of ``${<variable>}``.
+However, environment and cache variables always need to be
+referenced as ``$ENV{<variable>}`` or ``$CACHE{<variable>}``.
+
+Comments
+--------
+
+A comment starts with a ``#`` character that is not inside a
+`Bracket Argument`_, `Quoted Argument`_, or escaped with ``\``
+as part of an `Unquoted Argument`_. There are two types of
+comments: a `Bracket Comment`_ and a `Line Comment`_.
+
+.. _`Bracket Comment`:
+
+Bracket Comment
+^^^^^^^^^^^^^^^
+
+A ``#`` immediately followed by a :token:`bracket_open` forms a
+*bracket comment* consisting of the entire bracket enclosure:
+
+.. raw:: latex
+
+ \begin{small}
+
+.. productionlist::
+ bracket_comment: '#' `bracket_argument`
+
+.. raw:: latex
+
+ \end{small}
+
+For example:
+
+::
+
+ #[[This is a bracket comment.
+ It runs until the close bracket.]]
+ message("First Argument\n" #[[Bracket Comment]] "Second Argument")
+
+.. note::
+ CMake versions prior to 3.0 do not support bracket comments.
+ They interpret the opening ``#`` as the start of a `Line Comment`_.
+
+.. _`Line Comment`:
+
+Line Comment
+^^^^^^^^^^^^
+
+A ``#`` not immediately followed by a :token:`bracket_open` forms a
+*line comment* that runs until the end of the line:
+
+.. raw:: latex
+
+ \begin{small}
+
+.. productionlist::
+ line_comment: '#' <any text not starting in a `bracket_open`
+ : and not containing a `newline`>
+
+.. raw:: latex
+
+ \end{small}
+
+For example:
+
+.. code-block:: cmake
+
+ # This is a line comment.
+ message("First Argument\n" # This is a line comment :)
+ "Second Argument") # This is a line comment.
+
+Control Structures
+==================
+
+Conditional Blocks
+------------------
+
+The :command:`if`/:command:`elseif`/:command:`else`/:command:`endif`
+commands delimit code blocks to be executed conditionally.
+
+Loops
+-----
+
+The :command:`foreach`/:command:`endforeach` and
+:command:`while`/:command:`endwhile` commands delimit code
+blocks to be executed in a loop. Inside such blocks the
+:command:`break` command may be used to terminate the loop
+early whereas the :command:`continue` command may be used
+to start with the next iteration immediately.
+
+Command Definitions
+-------------------
+
+The :command:`macro`/:command:`endmacro`, and
+:command:`function`/:command:`endfunction` commands delimit
+code blocks to be recorded for later invocation as commands.
+
+.. _`CMake Language Variables`:
+
+Variables
+=========
+
+Variables are the basic unit of storage in the CMake Language.
+Their values are always of string type, though some commands may
+interpret the strings as values of other types.
+The :command:`set` and :command:`unset` commands explicitly
+set or unset a variable, but other commands have semantics
+that modify variables as well.
+Variable names are case-sensitive and may consist of almost
+any text, but we recommend sticking to names consisting only
+of alphanumeric characters plus ``_`` and ``-``.
+
+Variables have dynamic scope. Each variable "set" or "unset"
+creates a binding in the current scope:
+
+Function Scope
+ `Command Definitions`_ created by the :command:`function` command
+ create commands that, when invoked, process the recorded commands
+ in a new variable binding scope. A variable "set" or "unset"
+ binds in this scope and is visible for the current function and
+ any nested calls within it, but not after the function returns.
+
+Directory Scope
+ Each of the `Directories`_ in a source tree has its own variable
+ bindings. Before processing the ``CMakeLists.txt`` file for a
+ directory, CMake copies all variable bindings currently defined
+ in the parent directory, if any, to initialize the new directory
+ scope. CMake `Scripts`_, when processed with ``cmake -P``, bind
+ variables in one "directory" scope.
+
+ A variable "set" or "unset" not inside a function call binds
+ to the current directory scope.
+
+Persistent Cache
+ CMake stores a separate set of "cache" variables, or "cache entries",
+ whose values persist across multiple runs within a project build
+ tree. Cache entries have an isolated binding scope modified only
+ by explicit request, such as by the ``CACHE`` option of the
+ :command:`set` and :command:`unset` commands.
+
+When evaluating `Variable References`_, CMake first searches the
+function call stack, if any, for a binding and then falls back
+to the binding in the current directory scope, if any. If a
+"set" binding is found, its value is used. If an "unset" binding
+is found, or no binding is found, CMake then searches for a
+cache entry. If a cache entry is found, its value is used.
+Otherwise, the variable reference evaluates to an empty string.
+The ``$CACHE{VAR}`` syntax can be used to do direct cache entry
+lookups.
+
+The :manual:`cmake-variables(7)` manual documents the many variables
+that are provided by CMake or have meaning to CMake when set
+by project code.
+
+.. include:: ID_RESERVE.txt
+
+.. _`CMake Language Environment Variables`:
+
+Environment Variables
+=====================
+
+Environment Variables are like ordinary `Variables`_, with the
+following differences:
+
+Scope
+ Environment variables have global scope in a CMake process.
+ They are never cached.
+
+References
+ `Variable References`_ have the form ``$ENV{<variable>}``.
+
+Initialization
+ Initial values of the CMake environment variables are those of
+ the calling process.
+ Values can be changed using the :command:`set` and :command:`unset`
+ commands.
+ These commands only affect the running CMake process,
+ not the system environment at large.
+ Changed values are not written back to the calling process,
+ and they are not seen by subsequent build or test processes.
+
+The :manual:`cmake-env-variables(7)` manual documents environment
+variables that have special meaning to CMake.
+
+.. _`CMake Language Lists`:
+
+Lists
+=====
+
+Although all values in CMake are stored as strings, a string
+may be treated as a list in certain contexts, such as during
+evaluation of an `Unquoted Argument`_. In such contexts, a string
+is divided into list elements by splitting on ``;`` characters not
+following an unequal number of ``[`` and ``]`` characters and not
+immediately preceded by a ``\``. The sequence ``\;`` does not
+divide a value but is replaced by ``;`` in the resulting element.
+
+A list of elements is represented as a string by concatenating
+the elements separated by ``;``. For example, the :command:`set`
+command stores multiple values into the destination variable
+as a list:
+
+.. code-block:: cmake
+
+ set(srcs a.c b.c c.c) # sets "srcs" to "a.c;b.c;c.c"
+
+Lists are meant for simple use cases such as a list of source
+files and should not be used for complex data processing tasks.
+Most commands that construct lists do not escape ``;`` characters
+in list elements, thus flattening nested lists:
+
+.. code-block:: cmake
+
+ set(x a "b;c") # sets "x" to "a;b;c", not "a;b\;c"
diff --git a/share/cmake-3.17/Help/manual/cmake-modules.7.rst b/share/cmake-3.17/Help/manual/cmake-modules.7.rst
new file mode 100644
index 0000000..be64112
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/cmake-modules.7.rst
@@ -0,0 +1,318 @@
+.. cmake-manual-description: CMake Modules Reference
+
+cmake-modules(7)
+****************
+
+The modules listed here are part of the CMake distribution.
+Projects may provide further modules; their location(s)
+can be specified in the :variable:`CMAKE_MODULE_PATH` variable.
+
+Utility Modules
+^^^^^^^^^^^^^^^
+
+These modules are loaded using the :command:`include` command.
+
+.. toctree::
+ :maxdepth: 1
+
+ /module/AddFileDependencies
+ /module/AndroidTestUtilities
+ /module/BundleUtilities
+ /module/CheckCCompilerFlag
+ /module/CheckCSourceCompiles
+ /module/CheckCSourceRuns
+ /module/CheckCXXCompilerFlag
+ /module/CheckCXXSourceCompiles
+ /module/CheckCXXSourceRuns
+ /module/CheckCXXSymbolExists
+ /module/CheckFortranCompilerFlag
+ /module/CheckFortranFunctionExists
+ /module/CheckFortranSourceCompiles
+ /module/CheckFortranSourceRuns
+ /module/CheckFunctionExists
+ /module/CheckIPOSupported
+ /module/CheckIncludeFileCXX
+ /module/CheckIncludeFile
+ /module/CheckIncludeFiles
+ /module/CheckLanguage
+ /module/CheckLibraryExists
+ /module/CheckOBJCCompilerFlag
+ /module/CheckOBJCSourceCompiles
+ /module/CheckOBJCSourceRuns
+ /module/CheckOBJCXXCompilerFlag
+ /module/CheckOBJCXXSourceCompiles
+ /module/CheckOBJCXXSourceRuns
+ /module/CheckPIESupported
+ /module/CheckPrototypeDefinition
+ /module/CheckStructHasMember
+ /module/CheckSymbolExists
+ /module/CheckTypeSize
+ /module/CheckVariableExists
+ /module/CMakeAddFortranSubdirectory
+ /module/CMakeBackwardCompatibilityCXX
+ /module/CMakeDependentOption
+ /module/CMakeFindDependencyMacro
+ /module/CMakeFindFrameworks
+ /module/CMakeFindPackageMode
+ /module/CMakeGraphVizOptions
+ /module/CMakePackageConfigHelpers
+ /module/CMakePrintHelpers
+ /module/CMakePrintSystemInformation
+ /module/CMakePushCheckState
+ /module/CMakeVerifyManifest
+ /module/CPackComponent
+ /module/CPackIFW
+ /module/CPackIFWConfigureFile
+ /module/CPack
+ /module/CSharpUtilities
+ /module/CTest
+ /module/CTestCoverageCollectGCOV
+ /module/CTestScriptMode
+ /module/CTestUseLaunchers
+ /module/Dart
+ /module/DeployQt4
+ /module/Documentation
+ /module/ExternalData
+ /module/ExternalProject
+ /module/FeatureSummary
+ /module/FetchContent
+ /module/FindPackageHandleStandardArgs
+ /module/FindPackageMessage
+ /module/FortranCInterface
+ /module/GenerateExportHeader
+ /module/GetPrerequisites
+ /module/GNUInstallDirs
+ /module/GoogleTest
+ /module/InstallRequiredSystemLibraries
+ /module/ProcessorCount
+ /module/SelectLibraryConfigurations
+ /module/SquishTestScript
+ /module/TestBigEndian
+ /module/TestForANSIForScope
+ /module/TestForANSIStreamHeaders
+ /module/TestForSSTREAM
+ /module/TestForSTDNamespace
+ /module/UseEcos
+ /module/UseJavaClassFilelist
+ /module/UseJava
+ /module/UseJavaSymlinks
+ /module/UseSWIG
+ /module/UsewxWidgets
+ /module/WriteCompilerDetectionHeader
+
+Find Modules
+^^^^^^^^^^^^
+
+These modules search for third-party software.
+They are normally called through the :command:`find_package` command.
+
+.. toctree::
+ :maxdepth: 1
+
+ /module/FindALSA
+ /module/FindArmadillo
+ /module/FindASPELL
+ /module/FindAVIFile
+ /module/FindBISON
+ /module/FindBLAS
+ /module/FindBacktrace
+ /module/FindBoost
+ /module/FindBullet
+ /module/FindBZip2
+ /module/FindCABLE
+ /module/FindCoin3D
+ /module/FindCups
+ /module/FindCUDAToolkit
+ /module/FindCURL
+ /module/FindCurses
+ /module/FindCVS
+ /module/FindCxxTest
+ /module/FindCygwin
+ /module/FindDart
+ /module/FindDCMTK
+ /module/FindDevIL
+ /module/FindDoxygen
+ /module/FindEnvModules
+ /module/FindEXPAT
+ /module/FindFLEX
+ /module/FindFLTK2
+ /module/FindFLTK
+ /module/FindFontconfig
+ /module/FindFreetype
+ /module/FindGCCXML
+ /module/FindGDAL
+ /module/FindGettext
+ /module/FindGIF
+ /module/FindGit
+ /module/FindGLEW
+ /module/FindGLUT
+ /module/FindGnuplot
+ /module/FindGnuTLS
+ /module/FindGSL
+ /module/FindGTest
+ /module/FindGTK2
+ /module/FindGTK
+ /module/FindHDF5
+ /module/FindHg
+ /module/FindHSPELL
+ /module/FindHTMLHelp
+ /module/FindIce
+ /module/FindIcotool
+ /module/FindICU
+ /module/FindImageMagick
+ /module/FindIconv
+ /module/FindIntl
+ /module/FindITK
+ /module/FindJasper
+ /module/FindJava
+ /module/FindJNI
+ /module/FindJPEG
+ /module/FindKDE3
+ /module/FindKDE4
+ /module/FindLAPACK
+ /module/FindLATEX
+ /module/FindLibArchive
+ /module/FindLibinput
+ /module/FindLibLZMA
+ /module/FindLibXml2
+ /module/FindLibXslt
+ /module/FindLTTngUST
+ /module/FindLua50
+ /module/FindLua51
+ /module/FindLua
+ /module/FindMatlab
+ /module/FindMFC
+ /module/FindMotif
+ /module/FindMPEG2
+ /module/FindMPEG
+ /module/FindMPI
+ /module/FindODBC
+ /module/FindOpenACC
+ /module/FindOpenAL
+ /module/FindOpenCL
+ /module/FindOpenGL
+ /module/FindOpenMP
+ /module/FindOpenSceneGraph
+ /module/FindOpenSSL
+ /module/FindOpenThreads
+ /module/FindosgAnimation
+ /module/FindosgDB
+ /module/Findosg_functions
+ /module/FindosgFX
+ /module/FindosgGA
+ /module/FindosgIntrospection
+ /module/FindosgManipulator
+ /module/FindosgParticle
+ /module/FindosgPresentation
+ /module/FindosgProducer
+ /module/FindosgQt
+ /module/Findosg
+ /module/FindosgShadow
+ /module/FindosgSim
+ /module/FindosgTerrain
+ /module/FindosgText
+ /module/FindosgUtil
+ /module/FindosgViewer
+ /module/FindosgVolume
+ /module/FindosgWidget
+ /module/FindPatch
+ /module/FindPerlLibs
+ /module/FindPerl
+ /module/FindPHP4
+ /module/FindPhysFS
+ /module/FindPike
+ /module/FindPkgConfig
+ /module/FindPNG
+ /module/FindPostgreSQL
+ /module/FindProducer
+ /module/FindProtobuf
+ /module/FindPython
+ /module/FindPython2
+ /module/FindPython3
+ /module/FindQt3
+ /module/FindQt4
+ /module/FindQuickTime
+ /module/FindRTI
+ /module/FindRuby
+ /module/FindSDL_image
+ /module/FindSDL_mixer
+ /module/FindSDL_net
+ /module/FindSDL
+ /module/FindSDL_sound
+ /module/FindSDL_ttf
+ /module/FindSelfPackers
+ /module/FindSquish
+ /module/FindSQLite3
+ /module/FindSubversion
+ /module/FindSWIG
+ /module/FindTCL
+ /module/FindTclsh
+ /module/FindTclStub
+ /module/FindThreads
+ /module/FindTIFF
+ /module/FindUnixCommands
+ /module/FindVTK
+ /module/FindVulkan
+ /module/FindWget
+ /module/FindWish
+ /module/FindwxWidgets
+ /module/FindXCTest
+ /module/FindXalanC
+ /module/FindXercesC
+ /module/FindX11
+ /module/FindXMLRPC
+ /module/FindZLIB
+
+Deprecated Modules
+^^^^^^^^^^^^^^^^^^^
+
+Deprecated Utility Modules
+==========================
+
+.. toctree::
+ :maxdepth: 1
+
+ /module/CMakeDetermineVSServicePack
+ /module/CMakeExpandImportedTargets
+ /module/CMakeForceCompiler
+ /module/CMakeParseArguments
+ /module/MacroAddFileDependencies
+ /module/TestCXXAcceptsFlag
+ /module/UsePkgConfig
+ /module/Use_wxWindows
+ /module/WriteBasicConfigVersionFile
+
+Deprecated Find Modules
+=======================
+
+.. toctree::
+ :maxdepth: 1
+
+ /module/FindCUDA
+ /module/FindPythonInterp
+ /module/FindPythonLibs
+ /module/FindQt
+ /module/FindwxWindows
+
+Legacy CPack Modules
+====================
+
+These modules used to be mistakenly exposed to the user, and have been moved
+out of user visibility. They are for CPack internal use, and should never be
+used directly.
+
+.. toctree::
+ :maxdepth: 1
+
+ /module/CPackArchive
+ /module/CPackBundle
+ /module/CPackCygwin
+ /module/CPackDeb
+ /module/CPackDMG
+ /module/CPackFreeBSD
+ /module/CPackNSIS
+ /module/CPackNuGet
+ /module/CPackPackageMaker
+ /module/CPackProductBuild
+ /module/CPackRPM
+ /module/CPackWIX
diff --git a/share/cmake-3.16/Help/manual/cmake-packages.7.rst b/share/cmake-3.17/Help/manual/cmake-packages.7.rst
index 4b2934a..4b2934a 100644
--- a/share/cmake-3.16/Help/manual/cmake-packages.7.rst
+++ b/share/cmake-3.17/Help/manual/cmake-packages.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-policies.7.rst b/share/cmake-3.17/Help/manual/cmake-policies.7.rst
new file mode 100644
index 0000000..c256250
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/cmake-policies.7.rst
@@ -0,0 +1,282 @@
+.. cmake-manual-description: CMake Policies Reference
+
+cmake-policies(7)
+*****************
+
+.. only:: html
+
+ .. contents::
+
+Introduction
+============
+
+Policies in CMake are used to preserve backward compatible behavior
+across multiple releases. When a new policy is introduced, newer CMake
+versions will begin to warn about the backward compatible behavior. It
+is possible to disable the warning by explicitly requesting the OLD, or
+backward compatible behavior using the :command:`cmake_policy` command.
+It is also possible to request ``NEW``, or non-backward compatible behavior
+for a policy, also avoiding the warning. Each policy can also be set to
+either ``NEW`` or ``OLD`` behavior explicitly on the command line with the
+:variable:`CMAKE_POLICY_DEFAULT_CMP<NNNN>` variable.
+
+A policy is a deprecation mechanism and not a reliable feature toggle.
+A policy should almost never be set to ``OLD``, except to silence warnings
+in an otherwise frozen or stable codebase, or temporarily as part of a
+larger migration path. The ``OLD`` behavior of each policy is undesirable
+and will be replaced with an error condition in a future release.
+
+The :command:`cmake_minimum_required` command does more than report an
+error if a too-old version of CMake is used to build a project. It
+also sets all policies introduced in that CMake version or earlier to
+``NEW`` behavior. To manage policies without increasing the minimum required
+CMake version, the :command:`if(POLICY)` command may be used:
+
+.. code-block:: cmake
+
+ if(POLICY CMP0990)
+ cmake_policy(SET CMP0990 NEW)
+ endif()
+
+This has the effect of using the ``NEW`` behavior with newer CMake releases which
+users may be using and not issuing a compatibility warning.
+
+The setting of a policy is confined in some cases to not propagate to the
+parent scope. For example, if the files read by the :command:`include` command
+or the :command:`find_package` command contain a use of :command:`cmake_policy`,
+that policy setting will not affect the caller by default. Both commands accept
+an optional ``NO_POLICY_SCOPE`` keyword to control this behavior.
+
+The :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` variable may also be used
+to determine whether to report an error on use of deprecated macros or
+functions.
+
+Policies Introduced by CMake 3.17
+=================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0102: mark_as_advanced() does nothing if a cache entry does not exist. </policy/CMP0102>
+ CMP0101: target_compile_options honors BEFORE keyword in all scopes. </policy/CMP0101>
+ CMP0100: Let AUTOMOC and AUTOUIC process .hh header files. </policy/CMP0100>
+ CMP0099: Link properties are transitive over private dependency on static libraries. </policy/CMP0099>
+ CMP0098: FindFLEX runs flex in CMAKE_CURRENT_BINARY_DIR when executing. </policy/CMP0098>
+
+Policies Introduced by CMake 3.16
+=================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0097: ExternalProject_Add with GIT_SUBMODULES "" initializes no submodules. </policy/CMP0097>
+ CMP0096: project() preserves leading zeros in version components. </policy/CMP0096>
+ CMP0095: RPATH entries are properly escaped in the intermediary CMake install script. </policy/CMP0095>
+
+Policies Introduced by CMake 3.15
+=================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0094: FindPython3, FindPython2 and FindPython use LOCATION for lookup strategy. </policy/CMP0094>
+ CMP0093: FindBoost reports Boost_VERSION in x.y.z format. </policy/CMP0093>
+ CMP0092: MSVC warning flags are not in CMAKE_{C,CXX}_FLAGS by default. </policy/CMP0092>
+ CMP0091: MSVC runtime library flags are selected by an abstraction. </policy/CMP0091>
+ CMP0090: export(PACKAGE) does not populate package registry by default. </policy/CMP0090>
+ CMP0089: Compiler id for IBM Clang-based XL compilers is now XLClang. </policy/CMP0089>
+
+Policies Introduced by CMake 3.14
+=================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0088: FindBISON runs bison in CMAKE_CURRENT_BINARY_DIR when executing. </policy/CMP0088>
+ CMP0087: install(SCRIPT | CODE) supports generator expressions. </policy/CMP0087>
+ CMP0086: UseSWIG honors SWIG_MODULE_NAME via -module flag. </policy/CMP0086>
+ CMP0085: IN_LIST generator expression handles empty list items. </policy/CMP0085>
+ CMP0084: The FindQt module does not exist for find_package(). </policy/CMP0084>
+ CMP0083: Add PIE options when linking executable. </policy/CMP0083>
+ CMP0082: Install rules from add_subdirectory() are interleaved with those in caller. </policy/CMP0082>
+
+
+Policies Introduced by CMake 3.13
+=================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0081: Relative paths not allowed in LINK_DIRECTORIES target property. </policy/CMP0081>
+ CMP0080: BundleUtilities cannot be included at configure time. </policy/CMP0080>
+ CMP0079: target_link_libraries allows use with targets in other directories. </policy/CMP0079>
+ CMP0078: UseSWIG generates standard target names. </policy/CMP0078>
+ CMP0077: option() honors normal variables. </policy/CMP0077>
+ CMP0076: target_sources() command converts relative paths to absolute. </policy/CMP0076>
+
+Policies Introduced by CMake 3.12
+=================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0075: Include file check macros honor CMAKE_REQUIRED_LIBRARIES. </policy/CMP0075>
+ CMP0074: find_package uses PackageName_ROOT variables. </policy/CMP0074>
+ CMP0073: Do not produce legacy _LIB_DEPENDS cache entries. </policy/CMP0073>
+
+Policies Introduced by CMake 3.11
+=================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0072: FindOpenGL prefers GLVND by default when available. </policy/CMP0072>
+
+Policies Introduced by CMake 3.10
+=================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0071: Let AUTOMOC and AUTOUIC process GENERATED files. </policy/CMP0071>
+ CMP0070: Define file(GENERATE) behavior for relative paths. </policy/CMP0070>
+
+Policies Introduced by CMake 3.9
+================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0069: INTERPROCEDURAL_OPTIMIZATION is enforced when enabled. </policy/CMP0069>
+ CMP0068: RPATH settings on macOS do not affect install_name. </policy/CMP0068>
+
+Policies Introduced by CMake 3.8
+================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0067: Honor language standard in try_compile() source-file signature. </policy/CMP0067>
+
+Policies Introduced by CMake 3.7
+================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0066: Honor per-config flags in try_compile() source-file signature. </policy/CMP0066>
+
+Policies Introduced by CMake 3.4
+================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0065: Do not add flags to export symbols from executables without the ENABLE_EXPORTS target property. </policy/CMP0065>
+ CMP0064: Support new TEST if() operator. </policy/CMP0064>
+
+Policies Introduced by CMake 3.3
+================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0063: Honor visibility properties for all target types. </policy/CMP0063>
+ CMP0062: Disallow install() of export() result. </policy/CMP0062>
+ CMP0061: CTest does not by default tell make to ignore errors (-i). </policy/CMP0061>
+ CMP0060: Link libraries by full path even in implicit directories. </policy/CMP0060>
+ CMP0059: Do not treat DEFINITIONS as a built-in directory property. </policy/CMP0059>
+ CMP0058: Ninja requires custom command byproducts to be explicit. </policy/CMP0058>
+ CMP0057: Support new IN_LIST if() operator. </policy/CMP0057>
+
+Policies Introduced by CMake 3.2
+================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0056: Honor link flags in try_compile() source-file signature. </policy/CMP0056>
+ CMP0055: Strict checking for break() command. </policy/CMP0055>
+
+Policies Introduced by CMake 3.1
+================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0054: Only interpret if() arguments as variables or keywords when unquoted. </policy/CMP0054>
+ CMP0053: Simplify variable reference and escape sequence evaluation. </policy/CMP0053>
+ CMP0052: Reject source and build dirs in installed INTERFACE_INCLUDE_DIRECTORIES. </policy/CMP0052>
+ CMP0051: List TARGET_OBJECTS in SOURCES target property. </policy/CMP0051>
+
+Policies Introduced by CMake 3.0
+================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0050: Disallow add_custom_command SOURCE signatures. </policy/CMP0050>
+ CMP0049: Do not expand variables in target source entries. </policy/CMP0049>
+ CMP0048: project() command manages VERSION variables. </policy/CMP0048>
+ CMP0047: Use QCC compiler id for the qcc drivers on QNX. </policy/CMP0047>
+ CMP0046: Error on non-existent dependency in add_dependencies. </policy/CMP0046>
+ CMP0045: Error on non-existent target in get_target_property. </policy/CMP0045>
+ CMP0044: Case sensitive Lang_COMPILER_ID generator expressions. </policy/CMP0044>
+ CMP0043: Ignore COMPILE_DEFINITIONS_Config properties. </policy/CMP0043>
+ CMP0042: MACOSX_RPATH is enabled by default. </policy/CMP0042>
+ CMP0041: Error on relative include with generator expression. </policy/CMP0041>
+ CMP0040: The target in the TARGET signature of add_custom_command() must exist. </policy/CMP0040>
+ CMP0039: Utility targets may not have link dependencies. </policy/CMP0039>
+ CMP0038: Targets may not link directly to themselves. </policy/CMP0038>
+ CMP0037: Target names should not be reserved and should match a validity pattern. </policy/CMP0037>
+ CMP0036: The build_name command should not be called. </policy/CMP0036>
+ CMP0035: The variable_requires command should not be called. </policy/CMP0035>
+ CMP0034: The utility_source command should not be called. </policy/CMP0034>
+ CMP0033: The export_library_dependencies command should not be called. </policy/CMP0033>
+ CMP0032: The output_required_files command should not be called. </policy/CMP0032>
+ CMP0031: The load_command command should not be called. </policy/CMP0031>
+ CMP0030: The use_mangled_mesa command should not be called. </policy/CMP0030>
+ CMP0029: The subdir_depends command should not be called. </policy/CMP0029>
+ CMP0028: Double colon in target name means ALIAS or IMPORTED target. </policy/CMP0028>
+ CMP0027: Conditionally linked imported targets with missing include directories. </policy/CMP0027>
+ CMP0026: Disallow use of the LOCATION target property. </policy/CMP0026>
+ CMP0025: Compiler id for Apple Clang is now AppleClang. </policy/CMP0025>
+ CMP0024: Disallow include export result. </policy/CMP0024>
+
+Policies Introduced by CMake 2.8
+================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0023: Plain and keyword target_link_libraries signatures cannot be mixed. </policy/CMP0023>
+ CMP0022: INTERFACE_LINK_LIBRARIES defines the link interface. </policy/CMP0022>
+ CMP0021: Fatal error on relative paths in INCLUDE_DIRECTORIES target property. </policy/CMP0021>
+ CMP0020: Automatically link Qt executables to qtmain target on Windows. </policy/CMP0020>
+ CMP0019: Do not re-expand variables in include and link information. </policy/CMP0019>
+ CMP0018: Ignore CMAKE_SHARED_LIBRARY_Lang_FLAGS variable. </policy/CMP0018>
+ CMP0017: Prefer files from the CMake module directory when including from there. </policy/CMP0017>
+ CMP0016: target_link_libraries() reports error if its only argument is not a target. </policy/CMP0016>
+ CMP0015: link_directories() treats paths relative to the source dir. </policy/CMP0015>
+ CMP0014: Input directories must have CMakeLists.txt. </policy/CMP0014>
+ CMP0013: Duplicate binary directories are not allowed. </policy/CMP0013>
+ CMP0012: if() recognizes numbers and boolean constants. </policy/CMP0012>
+
+Policies Introduced by CMake 2.6
+================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0011: Included scripts do automatic cmake_policy PUSH and POP. </policy/CMP0011>
+ CMP0010: Bad variable reference syntax is an error. </policy/CMP0010>
+ CMP0009: FILE GLOB_RECURSE calls should not follow symlinks by default. </policy/CMP0009>
+ CMP0008: Libraries linked by full-path must have a valid library file name. </policy/CMP0008>
+ CMP0007: list command no longer ignores empty elements. </policy/CMP0007>
+ CMP0006: Installing MACOSX_BUNDLE targets requires a BUNDLE DESTINATION. </policy/CMP0006>
+ CMP0005: Preprocessor definition values are now escaped automatically. </policy/CMP0005>
+ CMP0004: Libraries linked may not have leading or trailing whitespace. </policy/CMP0004>
+ CMP0003: Libraries linked via full path no longer produce linker search paths. </policy/CMP0003>
+ CMP0002: Logical target names must be globally unique. </policy/CMP0002>
+ CMP0001: CMAKE_BACKWARDS_COMPATIBILITY should no longer be used. </policy/CMP0001>
+ CMP0000: A minimum required CMake version must be specified. </policy/CMP0000>
diff --git a/share/cmake-3.17/Help/manual/cmake-properties.7.rst b/share/cmake-3.17/Help/manual/cmake-properties.7.rst
new file mode 100644
index 0000000..060a072
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/cmake-properties.7.rst
@@ -0,0 +1,562 @@
+.. cmake-manual-description: CMake Properties Reference
+
+cmake-properties(7)
+*******************
+
+.. only:: html
+
+ .. contents::
+
+.. _`Global Properties`:
+
+Properties of Global Scope
+==========================
+
+.. toctree::
+ :maxdepth: 1
+
+ /prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS
+ /prop_gbl/AUTOGEN_SOURCE_GROUP
+ /prop_gbl/AUTOGEN_TARGETS_FOLDER
+ /prop_gbl/AUTOMOC_SOURCE_GROUP
+ /prop_gbl/AUTOMOC_TARGETS_FOLDER
+ /prop_gbl/AUTORCC_SOURCE_GROUP
+ /prop_gbl/CMAKE_C_KNOWN_FEATURES
+ /prop_gbl/CMAKE_CUDA_KNOWN_FEATURES
+ /prop_gbl/CMAKE_CXX_KNOWN_FEATURES
+ /prop_gbl/CMAKE_ROLE
+ /prop_gbl/DEBUG_CONFIGURATIONS
+ /prop_gbl/DISABLED_FEATURES
+ /prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS
+ /prop_gbl/ECLIPSE_EXTRA_NATURES
+ /prop_gbl/ENABLED_FEATURES
+ /prop_gbl/ENABLED_LANGUAGES
+ /prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS
+ /prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS
+ /prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS
+ /prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING
+ /prop_gbl/GENERATOR_IS_MULTI_CONFIG
+ /prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE
+ /prop_gbl/GLOBAL_DEPENDS_NO_CYCLES
+ /prop_gbl/IN_TRY_COMPILE
+ /prop_gbl/JOB_POOLS
+ /prop_gbl/PACKAGES_FOUND
+ /prop_gbl/PACKAGES_NOT_FOUND
+ /prop_gbl/PREDEFINED_TARGETS_FOLDER
+ /prop_gbl/REPORT_UNDEFINED_PROPERTIES
+ /prop_gbl/RULE_LAUNCH_COMPILE
+ /prop_gbl/RULE_LAUNCH_CUSTOM
+ /prop_gbl/RULE_LAUNCH_LINK
+ /prop_gbl/RULE_MESSAGES
+ /prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS
+ /prop_gbl/TARGET_MESSAGES
+ /prop_gbl/TARGET_SUPPORTS_SHARED_LIBS
+ /prop_gbl/USE_FOLDERS
+ /prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME
+
+.. _`Directory Properties`:
+
+Properties on Directories
+=========================
+
+.. toctree::
+ :maxdepth: 1
+
+ /prop_dir/ADDITIONAL_CLEAN_FILES
+ /prop_dir/BINARY_DIR
+ /prop_dir/BUILDSYSTEM_TARGETS
+ /prop_dir/CACHE_VARIABLES
+ /prop_dir/CLEAN_NO_CUSTOM
+ /prop_dir/CMAKE_CONFIGURE_DEPENDS
+ /prop_dir/COMPILE_DEFINITIONS
+ /prop_dir/COMPILE_OPTIONS
+ /prop_dir/DEFINITIONS
+ /prop_dir/EXCLUDE_FROM_ALL
+ /prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM
+ /prop_dir/INCLUDE_DIRECTORIES
+ /prop_dir/INCLUDE_REGULAR_EXPRESSION
+ /prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG
+ /prop_dir/INTERPROCEDURAL_OPTIMIZATION
+ /prop_dir/LABELS
+ /prop_dir/LINK_DIRECTORIES
+ /prop_dir/LINK_OPTIONS
+ /prop_dir/LISTFILE_STACK
+ /prop_dir/MACROS
+ /prop_dir/PARENT_DIRECTORY
+ /prop_dir/RULE_LAUNCH_COMPILE
+ /prop_dir/RULE_LAUNCH_CUSTOM
+ /prop_dir/RULE_LAUNCH_LINK
+ /prop_dir/SOURCE_DIR
+ /prop_dir/SUBDIRECTORIES
+ /prop_dir/TESTS
+ /prop_dir/TEST_INCLUDE_FILES
+ /prop_dir/VARIABLES
+ /prop_dir/VS_GLOBAL_SECTION_POST_section
+ /prop_dir/VS_GLOBAL_SECTION_PRE_section
+ /prop_dir/VS_STARTUP_PROJECT
+
+.. _`Target Properties`:
+
+Properties on Targets
+=====================
+
+.. toctree::
+ :maxdepth: 1
+
+ /prop_tgt/ADDITIONAL_CLEAN_FILES
+ /prop_tgt/AIX_EXPORT_ALL_SYMBOLS
+ /prop_tgt/ALIASED_TARGET
+ /prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS
+ /prop_tgt/ANDROID_API
+ /prop_tgt/ANDROID_API_MIN
+ /prop_tgt/ANDROID_ARCH
+ /prop_tgt/ANDROID_ASSETS_DIRECTORIES
+ /prop_tgt/ANDROID_GUI
+ /prop_tgt/ANDROID_JAR_DEPENDENCIES
+ /prop_tgt/ANDROID_JAR_DIRECTORIES
+ /prop_tgt/ANDROID_JAVA_SOURCE_DIR
+ /prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES
+ /prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES
+ /prop_tgt/ANDROID_PROCESS_MAX
+ /prop_tgt/ANDROID_PROGUARD
+ /prop_tgt/ANDROID_PROGUARD_CONFIG_PATH
+ /prop_tgt/ANDROID_SECURE_PROPS_PATH
+ /prop_tgt/ANDROID_SKIP_ANT_STEP
+ /prop_tgt/ANDROID_STL_TYPE
+ /prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG
+ /prop_tgt/ARCHIVE_OUTPUT_DIRECTORY
+ /prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG
+ /prop_tgt/ARCHIVE_OUTPUT_NAME
+ /prop_tgt/AUTOGEN_BUILD_DIR
+ /prop_tgt/AUTOGEN_ORIGIN_DEPENDS
+ /prop_tgt/AUTOGEN_PARALLEL
+ /prop_tgt/AUTOGEN_TARGET_DEPENDS
+ /prop_tgt/AUTOMOC
+ /prop_tgt/AUTOMOC_COMPILER_PREDEFINES
+ /prop_tgt/AUTOMOC_DEPEND_FILTERS
+ /prop_tgt/AUTOMOC_EXECUTABLE
+ /prop_tgt/AUTOMOC_MACRO_NAMES
+ /prop_tgt/AUTOMOC_MOC_OPTIONS
+ /prop_tgt/AUTOMOC_PATH_PREFIX
+ /prop_tgt/AUTORCC
+ /prop_tgt/AUTORCC_EXECUTABLE
+ /prop_tgt/AUTORCC_OPTIONS
+ /prop_tgt/AUTOUIC
+ /prop_tgt/AUTOUIC_EXECUTABLE
+ /prop_tgt/AUTOUIC_OPTIONS
+ /prop_tgt/AUTOUIC_SEARCH_PATHS
+ /prop_tgt/BINARY_DIR
+ /prop_tgt/BUILD_RPATH
+ /prop_tgt/BUILD_RPATH_USE_ORIGIN
+ /prop_tgt/BUILD_WITH_INSTALL_NAME_DIR
+ /prop_tgt/BUILD_WITH_INSTALL_RPATH
+ /prop_tgt/BUNDLE_EXTENSION
+ /prop_tgt/BUNDLE
+ /prop_tgt/C_EXTENSIONS
+ /prop_tgt/C_STANDARD
+ /prop_tgt/C_STANDARD_REQUIRED
+ /prop_tgt/COMMON_LANGUAGE_RUNTIME
+ /prop_tgt/COMPATIBLE_INTERFACE_BOOL
+ /prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX
+ /prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN
+ /prop_tgt/COMPATIBLE_INTERFACE_STRING
+ /prop_tgt/COMPILE_DEFINITIONS
+ /prop_tgt/COMPILE_FEATURES
+ /prop_tgt/COMPILE_FLAGS
+ /prop_tgt/COMPILE_OPTIONS
+ /prop_tgt/COMPILE_PDB_NAME
+ /prop_tgt/COMPILE_PDB_NAME_CONFIG
+ /prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY
+ /prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG
+ /prop_tgt/CONFIG_OUTPUT_NAME
+ /prop_tgt/CONFIG_POSTFIX
+ /prop_tgt/CROSSCOMPILING_EMULATOR
+ /prop_tgt/CUDA_PTX_COMPILATION
+ /prop_tgt/CUDA_SEPARABLE_COMPILATION
+ /prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS
+ /prop_tgt/CUDA_RUNTIME_LIBRARY
+ /prop_tgt/CUDA_EXTENSIONS
+ /prop_tgt/CUDA_STANDARD
+ /prop_tgt/CUDA_STANDARD_REQUIRED
+ /prop_tgt/CXX_EXTENSIONS
+ /prop_tgt/CXX_STANDARD
+ /prop_tgt/CXX_STANDARD_REQUIRED
+ /prop_tgt/DEBUG_POSTFIX
+ /prop_tgt/DEFINE_SYMBOL
+ /prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY
+ /prop_tgt/DEPLOYMENT_ADDITIONAL_FILES
+ /prop_tgt/DEPRECATION
+ /prop_tgt/DISABLE_PRECOMPILE_HEADERS
+ /prop_tgt/DOTNET_TARGET_FRAMEWORK
+ /prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION
+ /prop_tgt/EchoString
+ /prop_tgt/ENABLE_EXPORTS
+ /prop_tgt/EXCLUDE_FROM_ALL
+ /prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG
+ /prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD
+ /prop_tgt/EXPORT_NAME
+ /prop_tgt/EXPORT_PROPERTIES
+ /prop_tgt/FOLDER
+ /prop_tgt/Fortran_FORMAT
+ /prop_tgt/Fortran_MODULE_DIRECTORY
+ /prop_tgt/FRAMEWORK
+ /prop_tgt/FRAMEWORK_VERSION
+ /prop_tgt/GENERATOR_FILE_NAME
+ /prop_tgt/GHS_INTEGRITY_APP
+ /prop_tgt/GHS_NO_SOURCE_GROUP_FILE
+ /prop_tgt/GNUtoMS
+ /prop_tgt/HAS_CXX
+ /prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM
+ /prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME
+ /prop_tgt/IMPORTED_CONFIGURATIONS
+ /prop_tgt/IMPORTED_GLOBAL
+ /prop_tgt/IMPORTED_IMPLIB_CONFIG
+ /prop_tgt/IMPORTED_IMPLIB
+ /prop_tgt/IMPORTED_LIBNAME_CONFIG
+ /prop_tgt/IMPORTED_LIBNAME
+ /prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG
+ /prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES
+ /prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG
+ /prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES
+ /prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG
+ /prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES
+ /prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG
+ /prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY
+ /prop_tgt/IMPORTED_LOCATION_CONFIG
+ /prop_tgt/IMPORTED_LOCATION
+ /prop_tgt/IMPORTED_NO_SONAME_CONFIG
+ /prop_tgt/IMPORTED_NO_SONAME
+ /prop_tgt/IMPORTED_OBJECTS_CONFIG
+ /prop_tgt/IMPORTED_OBJECTS
+ /prop_tgt/IMPORTED
+ /prop_tgt/IMPORTED_SONAME_CONFIG
+ /prop_tgt/IMPORTED_SONAME
+ /prop_tgt/IMPORT_PREFIX
+ /prop_tgt/IMPORT_SUFFIX
+ /prop_tgt/INCLUDE_DIRECTORIES
+ /prop_tgt/INSTALL_NAME_DIR
+ /prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH
+ /prop_tgt/INSTALL_RPATH
+ /prop_tgt/INSTALL_RPATH_USE_LINK_PATH
+ /prop_tgt/INTERFACE_AUTOUIC_OPTIONS
+ /prop_tgt/INTERFACE_COMPILE_DEFINITIONS
+ /prop_tgt/INTERFACE_COMPILE_FEATURES
+ /prop_tgt/INTERFACE_COMPILE_OPTIONS
+ /prop_tgt/INTERFACE_INCLUDE_DIRECTORIES
+ /prop_tgt/INTERFACE_LINK_DEPENDS
+ /prop_tgt/INTERFACE_LINK_DIRECTORIES
+ /prop_tgt/INTERFACE_LINK_LIBRARIES
+ /prop_tgt/INTERFACE_LINK_OPTIONS
+ /prop_tgt/INTERFACE_PRECOMPILE_HEADERS
+ /prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE
+ /prop_tgt/INTERFACE_SOURCES
+ /prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES
+ /prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG
+ /prop_tgt/INTERPROCEDURAL_OPTIMIZATION
+ /prop_tgt/IOS_INSTALL_COMBINED
+ /prop_tgt/JOB_POOL_COMPILE
+ /prop_tgt/JOB_POOL_LINK
+ /prop_tgt/JOB_POOL_PRECOMPILE_HEADER
+ /prop_tgt/LABELS
+ /prop_tgt/LANG_CLANG_TIDY
+ /prop_tgt/LANG_COMPILER_LAUNCHER
+ /prop_tgt/LANG_CPPCHECK
+ /prop_tgt/LANG_CPPLINT
+ /prop_tgt/LANG_INCLUDE_WHAT_YOU_USE
+ /prop_tgt/LANG_VISIBILITY_PRESET
+ /prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG
+ /prop_tgt/LIBRARY_OUTPUT_DIRECTORY
+ /prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG
+ /prop_tgt/LIBRARY_OUTPUT_NAME
+ /prop_tgt/LINK_DEPENDS_NO_SHARED
+ /prop_tgt/LINK_DEPENDS
+ /prop_tgt/LINKER_LANGUAGE
+ /prop_tgt/LINK_DIRECTORIES
+ /prop_tgt/LINK_FLAGS_CONFIG
+ /prop_tgt/LINK_FLAGS
+ /prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG
+ /prop_tgt/LINK_INTERFACE_LIBRARIES
+ /prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG
+ /prop_tgt/LINK_INTERFACE_MULTIPLICITY
+ /prop_tgt/LINK_LIBRARIES
+ /prop_tgt/LINK_OPTIONS
+ /prop_tgt/LINK_SEARCH_END_STATIC
+ /prop_tgt/LINK_SEARCH_START_STATIC
+ /prop_tgt/LINK_WHAT_YOU_USE
+ /prop_tgt/LOCATION_CONFIG
+ /prop_tgt/LOCATION
+ /prop_tgt/MACHO_COMPATIBILITY_VERSION
+ /prop_tgt/MACHO_CURRENT_VERSION
+ /prop_tgt/MACOSX_BUNDLE_INFO_PLIST
+ /prop_tgt/MACOSX_BUNDLE
+ /prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST
+ /prop_tgt/MACOSX_RPATH
+ /prop_tgt/MANUALLY_ADDED_DEPENDENCIES
+ /prop_tgt/MAP_IMPORTED_CONFIG_CONFIG
+ /prop_tgt/MSVC_RUNTIME_LIBRARY
+ /prop_tgt/NAME
+ /prop_tgt/NO_SONAME
+ /prop_tgt/NO_SYSTEM_FROM_IMPORTED
+ /prop_tgt/OBJC_EXTENSIONS
+ /prop_tgt/OBJC_STANDARD
+ /prop_tgt/OBJC_STANDARD_REQUIRED
+ /prop_tgt/OBJCXX_EXTENSIONS
+ /prop_tgt/OBJCXX_STANDARD
+ /prop_tgt/OBJCXX_STANDARD_REQUIRED
+ /prop_tgt/OSX_ARCHITECTURES_CONFIG
+ /prop_tgt/OSX_ARCHITECTURES
+ /prop_tgt/OUTPUT_NAME_CONFIG
+ /prop_tgt/OUTPUT_NAME
+ /prop_tgt/PDB_NAME_CONFIG
+ /prop_tgt/PDB_NAME
+ /prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG
+ /prop_tgt/PDB_OUTPUT_DIRECTORY
+ /prop_tgt/POSITION_INDEPENDENT_CODE
+ /prop_tgt/PRECOMPILE_HEADERS
+ /prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM
+ /prop_tgt/PREFIX
+ /prop_tgt/PRIVATE_HEADER
+ /prop_tgt/PROJECT_LABEL
+ /prop_tgt/PUBLIC_HEADER
+ /prop_tgt/RESOURCE
+ /prop_tgt/RULE_LAUNCH_COMPILE
+ /prop_tgt/RULE_LAUNCH_CUSTOM
+ /prop_tgt/RULE_LAUNCH_LINK
+ /prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG
+ /prop_tgt/RUNTIME_OUTPUT_DIRECTORY
+ /prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG
+ /prop_tgt/RUNTIME_OUTPUT_NAME
+ /prop_tgt/SKIP_BUILD_RPATH
+ /prop_tgt/SOURCE_DIR
+ /prop_tgt/SOURCES
+ /prop_tgt/SOVERSION
+ /prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG
+ /prop_tgt/STATIC_LIBRARY_FLAGS
+ /prop_tgt/STATIC_LIBRARY_OPTIONS
+ /prop_tgt/SUFFIX
+ /prop_tgt/Swift_DEPENDENCIES_FILE
+ /prop_tgt/Swift_LANGUAGE_VERSION
+ /prop_tgt/Swift_MODULE_DIRECTORY
+ /prop_tgt/Swift_MODULE_NAME
+ /prop_tgt/TYPE
+ /prop_tgt/UNITY_BUILD
+ /prop_tgt/UNITY_BUILD_BATCH_SIZE
+ /prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE
+ /prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE
+ /prop_tgt/VERSION
+ /prop_tgt/VISIBILITY_INLINES_HIDDEN
+ /prop_tgt/VS_CONFIGURATION_TYPE
+ /prop_tgt/VS_DEBUGGER_COMMAND
+ /prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS
+ /prop_tgt/VS_DEBUGGER_ENVIRONMENT
+ /prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY
+ /prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION
+ /prop_tgt/VS_DOTNET_REFERENCE_refname
+ /prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname
+ /prop_tgt/VS_DOTNET_REFERENCES
+ /prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL
+ /prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION
+ /prop_tgt/VS_DOTNET_DOCUMENTATION_FILE
+ /prop_tgt/VS_DPI_AWARE
+ /prop_tgt/VS_GLOBAL_KEYWORD
+ /prop_tgt/VS_GLOBAL_PROJECT_TYPES
+ /prop_tgt/VS_GLOBAL_ROOTNAMESPACE
+ /prop_tgt/VS_GLOBAL_variable
+ /prop_tgt/VS_IOT_EXTENSIONS_VERSION
+ /prop_tgt/VS_IOT_STARTUP_TASK
+ /prop_tgt/VS_JUST_MY_CODE_DEBUGGING
+ /prop_tgt/VS_KEYWORD
+ /prop_tgt/VS_MOBILE_EXTENSIONS_VERSION
+ /prop_tgt/VS_NO_SOLUTION_DEPLOY
+ /prop_tgt/VS_PACKAGE_REFERENCES
+ /prop_tgt/VS_PROJECT_IMPORT
+ /prop_tgt/VS_SCC_AUXPATH
+ /prop_tgt/VS_SCC_LOCALPATH
+ /prop_tgt/VS_SCC_PROJECTNAME
+ /prop_tgt/VS_SCC_PROVIDER
+ /prop_tgt/VS_SDK_REFERENCES
+ /prop_tgt/VS_USER_PROPS
+ /prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION
+ /prop_tgt/VS_WINRT_COMPONENT
+ /prop_tgt/VS_WINRT_EXTENSIONS
+ /prop_tgt/VS_WINRT_REFERENCES
+ /prop_tgt/WIN32_EXECUTABLE
+ /prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS
+ /prop_tgt/XCODE_ATTRIBUTE_an-attribute
+ /prop_tgt/XCODE_EXPLICIT_FILE_TYPE
+ /prop_tgt/XCODE_GENERATE_SCHEME
+ /prop_tgt/XCODE_PRODUCT_TYPE
+ /prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER
+ /prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
+ /prop_tgt/XCODE_SCHEME_ARGUMENTS
+ /prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT
+ /prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING
+ /prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
+ /prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
+ /prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
+ /prop_tgt/XCODE_SCHEME_ENVIRONMENT
+ /prop_tgt/XCODE_SCHEME_EXECUTABLE
+ /prop_tgt/XCODE_SCHEME_GUARD_MALLOC
+ /prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
+ /prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES
+ /prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE
+ /prop_tgt/XCODE_SCHEME_MALLOC_STACK
+ /prop_tgt/XCODE_SCHEME_THREAD_SANITIZER
+ /prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP
+ /prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
+ /prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
+ /prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY
+ /prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS
+ /prop_tgt/XCTEST
+
+.. _`Test Properties`:
+
+Properties on Tests
+===================
+
+.. toctree::
+ :maxdepth: 1
+
+ /prop_test/ATTACHED_FILES_ON_FAIL
+ /prop_test/ATTACHED_FILES
+ /prop_test/COST
+ /prop_test/DEPENDS
+ /prop_test/DISABLED
+ /prop_test/ENVIRONMENT
+ /prop_test/FAIL_REGULAR_EXPRESSION
+ /prop_test/FIXTURES_CLEANUP
+ /prop_test/FIXTURES_REQUIRED
+ /prop_test/FIXTURES_SETUP
+ /prop_test/LABELS
+ /prop_test/MEASUREMENT
+ /prop_test/PASS_REGULAR_EXPRESSION
+ /prop_test/PROCESSOR_AFFINITY
+ /prop_test/PROCESSORS
+ /prop_test/REQUIRED_FILES
+ /prop_test/RESOURCE_GROUPS
+ /prop_test/RESOURCE_LOCK
+ /prop_test/RUN_SERIAL
+ /prop_test/SKIP_REGULAR_EXPRESSION
+ /prop_test/SKIP_RETURN_CODE
+ /prop_test/TIMEOUT
+ /prop_test/TIMEOUT_AFTER_MATCH
+ /prop_test/WILL_FAIL
+ /prop_test/WORKING_DIRECTORY
+
+.. _`Source File Properties`:
+
+Properties on Source Files
+==========================
+
+.. toctree::
+ :maxdepth: 1
+
+ /prop_sf/ABSTRACT
+ /prop_sf/AUTORCC_OPTIONS
+ /prop_sf/AUTOUIC_OPTIONS
+ /prop_sf/COMPILE_DEFINITIONS
+ /prop_sf/COMPILE_FLAGS
+ /prop_sf/COMPILE_OPTIONS
+ /prop_sf/EXTERNAL_OBJECT
+ /prop_sf/Fortran_FORMAT
+ /prop_sf/GENERATED
+ /prop_sf/HEADER_FILE_ONLY
+ /prop_sf/INCLUDE_DIRECTORIES
+ /prop_sf/KEEP_EXTENSION
+ /prop_sf/LABELS
+ /prop_sf/LANGUAGE
+ /prop_sf/LOCATION
+ /prop_sf/MACOSX_PACKAGE_LOCATION
+ /prop_sf/OBJECT_DEPENDS
+ /prop_sf/OBJECT_OUTPUTS
+ /prop_sf/SKIP_AUTOGEN
+ /prop_sf/SKIP_AUTOMOC
+ /prop_sf/SKIP_AUTORCC
+ /prop_sf/SKIP_AUTOUIC
+ /prop_sf/SKIP_PRECOMPILE_HEADERS
+ /prop_sf/SKIP_UNITY_BUILD_INCLUSION
+ /prop_sf/Swift_DEPENDENCIES_FILE
+ /prop_sf/Swift_DIAGNOSTICS_FILE
+ /prop_sf/SYMBOLIC
+ /prop_sf/VS_COPY_TO_OUT_DIR
+ /prop_sf/VS_CSHARP_tagname
+ /prop_sf/VS_DEPLOYMENT_CONTENT
+ /prop_sf/VS_DEPLOYMENT_LOCATION
+ /prop_sf/VS_INCLUDE_IN_VSIX
+ /prop_sf/VS_RESOURCE_GENERATOR
+ /prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS
+ /prop_sf/VS_SHADER_ENABLE_DEBUG
+ /prop_sf/VS_SHADER_ENTRYPOINT
+ /prop_sf/VS_SHADER_FLAGS
+ /prop_sf/VS_SHADER_MODEL
+ /prop_sf/VS_SHADER_OBJECT_FILE_NAME
+ /prop_sf/VS_SHADER_OUTPUT_HEADER_FILE
+ /prop_sf/VS_SHADER_TYPE
+ /prop_sf/VS_SHADER_VARIABLE_NAME
+ /prop_sf/VS_TOOL_OVERRIDE.rst
+ /prop_sf/VS_XAML_TYPE
+ /prop_sf/WRAP_EXCLUDE
+ /prop_sf/XCODE_EXPLICIT_FILE_TYPE
+ /prop_sf/XCODE_FILE_ATTRIBUTES
+ /prop_sf/XCODE_LAST_KNOWN_FILE_TYPE
+
+.. _`Cache Entry Properties`:
+
+Properties on Cache Entries
+===========================
+
+.. toctree::
+ :maxdepth: 1
+
+ /prop_cache/ADVANCED
+ /prop_cache/HELPSTRING
+ /prop_cache/MODIFIED
+ /prop_cache/STRINGS
+ /prop_cache/TYPE
+ /prop_cache/VALUE
+
+.. _`Installed File Properties`:
+
+Properties on Installed Files
+=============================
+
+.. toctree::
+ :maxdepth: 1
+
+ /prop_inst/CPACK_DESKTOP_SHORTCUTS.rst
+ /prop_inst/CPACK_NEVER_OVERWRITE.rst
+ /prop_inst/CPACK_PERMANENT.rst
+ /prop_inst/CPACK_START_MENU_SHORTCUTS.rst
+ /prop_inst/CPACK_STARTUP_SHORTCUTS.rst
+ /prop_inst/CPACK_WIX_ACL.rst
+
+
+Deprecated Properties on Directories
+====================================
+
+.. toctree::
+ :maxdepth: 1
+
+ /prop_dir/ADDITIONAL_MAKE_CLEAN_FILES
+ /prop_dir/COMPILE_DEFINITIONS_CONFIG
+ /prop_dir/TEST_INCLUDE_FILE
+
+
+Deprecated Properties on Targets
+================================
+
+.. toctree::
+ :maxdepth: 1
+
+ /prop_tgt/COMPILE_DEFINITIONS_CONFIG
+ /prop_tgt/POST_INSTALL_SCRIPT
+ /prop_tgt/PRE_INSTALL_SCRIPT
+
+
+Deprecated Properties on Source Files
+=====================================
+
+.. toctree::
+ :maxdepth: 1
+
+ /prop_sf/COMPILE_DEFINITIONS_CONFIG
diff --git a/share/cmake-3.16/Help/manual/cmake-qt.7.rst b/share/cmake-3.17/Help/manual/cmake-qt.7.rst
index d8d6172..d8d6172 100644
--- a/share/cmake-3.16/Help/manual/cmake-qt.7.rst
+++ b/share/cmake-3.17/Help/manual/cmake-qt.7.rst
diff --git a/share/cmake-3.16/Help/manual/cmake-server.7.rst b/share/cmake-3.17/Help/manual/cmake-server.7.rst
index 8f10b9f..8f10b9f 100644
--- a/share/cmake-3.16/Help/manual/cmake-server.7.rst
+++ b/share/cmake-3.17/Help/manual/cmake-server.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-toolchains.7.rst b/share/cmake-3.17/Help/manual/cmake-toolchains.7.rst
new file mode 100644
index 0000000..e8badd4
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/cmake-toolchains.7.rst
@@ -0,0 +1,666 @@
+.. cmake-manual-description: CMake Toolchains Reference
+
+cmake-toolchains(7)
+*******************
+
+.. only:: html
+
+ .. contents::
+
+Introduction
+============
+
+CMake uses a toolchain of utilities to compile, link libraries and create
+archives, and other tasks to drive the build. The toolchain utilities available
+are determined by the languages enabled. In normal builds, CMake automatically
+determines the toolchain for host builds based on system introspection and
+defaults. In cross-compiling scenarios, a toolchain file may be specified
+with information about compiler and utility paths.
+
+Languages
+=========
+
+Languages are enabled by the :command:`project` command. Language-specific
+built-in variables, such as
+:variable:`CMAKE_CXX_COMPILER <CMAKE_<LANG>_COMPILER>`,
+:variable:`CMAKE_CXX_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` etc are set by
+invoking the :command:`project` command. If no project command
+is in the top-level CMakeLists file, one will be implicitly generated. By default
+the enabled languages are ``C`` and ``CXX``:
+
+.. code-block:: cmake
+
+ project(C_Only C)
+
+A special value of ``NONE`` can also be used with the :command:`project` command
+to enable no languages:
+
+.. code-block:: cmake
+
+ project(MyProject NONE)
+
+The :command:`enable_language` command can be used to enable languages after the
+:command:`project` command:
+
+.. code-block:: cmake
+
+ enable_language(CXX)
+
+When a language is enabled, CMake finds a compiler for that language, and
+determines some information, such as the vendor and version of the compiler,
+the target architecture and bitwidth, the location of corresponding utilities
+etc.
+
+The :prop_gbl:`ENABLED_LANGUAGES` global property contains the languages which
+are currently enabled.
+
+Variables and Properties
+========================
+
+Several variables relate to the language components of a toolchain which are
+enabled. :variable:`CMAKE_<LANG>_COMPILER` is the full path to the compiler used
+for ``<LANG>``. :variable:`CMAKE_<LANG>_COMPILER_ID` is the identifier used
+by CMake for the compiler and :variable:`CMAKE_<LANG>_COMPILER_VERSION` is the
+version of the compiler.
+
+The :variable:`CMAKE_<LANG>_FLAGS` variables and the configuration-specific
+equivalents contain flags that will be added to the compile command when
+compiling a file of a particular language.
+
+As the linker is invoked by the compiler driver, CMake needs a way to determine
+which compiler to use to invoke the linker. This is calculated by the
+:prop_sf:`LANGUAGE` of source files in the target, and in the case of static
+libraries, the language of the dependent libraries. The choice CMake makes may
+be overridden with the :prop_tgt:`LINKER_LANGUAGE` target property.
+
+Toolchain Features
+==================
+
+CMake provides the :command:`try_compile` command and wrapper macros such as
+:module:`CheckCXXSourceCompiles`, :module:`CheckCXXSymbolExists` and
+:module:`CheckIncludeFile` to test capability and availability of various
+toolchain features. These APIs test the toolchain in some way and cache the
+result so that the test does not have to be performed again the next time
+CMake runs.
+
+Some toolchain features have built-in handling in CMake, and do not require
+compile-tests. For example, :prop_tgt:`POSITION_INDEPENDENT_CODE` allows
+specifying that a target should be built as position-independent code, if
+the compiler supports that feature. The :prop_tgt:`<LANG>_VISIBILITY_PRESET`
+and :prop_tgt:`VISIBILITY_INLINES_HIDDEN` target properties add flags for
+hidden visibility, if supported by the compiler.
+
+.. _`Cross Compiling Toolchain`:
+
+Cross Compiling
+===============
+
+If :manual:`cmake(1)` is invoked with the command line parameter
+``-DCMAKE_TOOLCHAIN_FILE=path/to/file``, the file will be loaded early to set
+values for the compilers.
+The :variable:`CMAKE_CROSSCOMPILING` variable is set to true when CMake is
+cross-compiling.
+
+Note that using the :variable:`CMAKE_SOURCE_DIR` or :variable:`CMAKE_BINARY_DIR`
+variables inside a toolchain file is typically undesirable. The toolchain
+file is used in contexts where these variables have different values when used
+in different places (e.g. as part of a call to :command:`try_compile`). In most
+cases, where there is a need to evaluate paths inside a toolchain file, the more
+appropriate variable to use would be :variable:`CMAKE_CURRENT_LIST_DIR`, since
+it always has an unambiguous, predictable value.
+
+Cross Compiling for Linux
+-------------------------
+
+A typical cross-compiling toolchain for Linux has content such
+as:
+
+.. code-block:: cmake
+
+ set(CMAKE_SYSTEM_NAME Linux)
+ set(CMAKE_SYSTEM_PROCESSOR arm)
+
+ set(CMAKE_SYSROOT /home/devel/rasp-pi-rootfs)
+ set(CMAKE_STAGING_PREFIX /home/devel/stage)
+
+ set(tools /home/devel/gcc-4.7-linaro-rpi-gnueabihf)
+ set(CMAKE_C_COMPILER ${tools}/bin/arm-linux-gnueabihf-gcc)
+ set(CMAKE_CXX_COMPILER ${tools}/bin/arm-linux-gnueabihf-g++)
+
+ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+
+The :variable:`CMAKE_SYSTEM_NAME` is the CMake-identifier of the target platform
+to build for.
+
+The :variable:`CMAKE_SYSTEM_PROCESSOR` is the CMake-identifier of the target architecture
+to build for.
+
+The :variable:`CMAKE_SYSROOT` is optional, and may be specified if a sysroot
+is available.
+
+The :variable:`CMAKE_STAGING_PREFIX` is also optional. It may be used to specify
+a path on the host to install to. The :variable:`CMAKE_INSTALL_PREFIX` is always
+the runtime installation location, even when cross-compiling.
+
+The :variable:`CMAKE_<LANG>_COMPILER` variables may be set to full paths, or to
+names of compilers to search for in standard locations. For toolchains that
+do not support linking binaries without custom flags or scripts one may set
+the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable to ``STATIC_LIBRARY``
+to tell CMake not to try to link executables during its checks.
+
+CMake ``find_*`` commands will look in the sysroot, and the :variable:`CMAKE_FIND_ROOT_PATH`
+entries by default in all cases, as well as looking in the host system root prefix.
+Although this can be controlled on a case-by-case basis, when cross-compiling, it
+can be useful to exclude looking in either the host or the target for particular
+artifacts. Generally, includes, libraries and packages should be found in the
+target system prefixes, whereas executables which must be run as part of the build
+should be found only on the host and not on the target. This is the purpose of
+the ``CMAKE_FIND_ROOT_PATH_MODE_*`` variables.
+
+.. _`Cray Cross-Compile`:
+
+Cross Compiling for the Cray Linux Environment
+----------------------------------------------
+
+Cross compiling for compute nodes in the Cray Linux Environment can be done
+without needing a separate toolchain file. Specifying
+``-DCMAKE_SYSTEM_NAME=CrayLinuxEnvironment`` on the CMake command line will
+ensure that the appropriate build settings and search paths are configured.
+The platform will pull its configuration from the current environment
+variables and will configure a project to use the compiler wrappers from the
+Cray Programming Environment's ``PrgEnv-*`` modules if present and loaded.
+
+The default configuration of the Cray Programming Environment is to only
+support static libraries. This can be overridden and shared libraries
+enabled by setting the ``CRAYPE_LINK_TYPE`` environment variable to
+``dynamic``.
+
+Running CMake without specifying :variable:`CMAKE_SYSTEM_NAME` will
+run the configure step in host mode assuming a standard Linux environment.
+If not overridden, the ``PrgEnv-*`` compiler wrappers will end up getting used,
+which if targeting the either the login node or compute node, is likely not the
+desired behavior. The exception to this would be if you are building directly
+on a NID instead of cross-compiling from a login node. If trying to build
+software for a login node, you will need to either first unload the
+currently loaded ``PrgEnv-*`` module or explicitly tell CMake to use the
+system compilers in ``/usr/bin`` instead of the Cray wrappers. If instead
+targeting a compute node is desired, just specify the
+:variable:`CMAKE_SYSTEM_NAME` as mentioned above.
+
+Cross Compiling using Clang
+---------------------------
+
+Some compilers such as Clang are inherently cross compilers.
+The :variable:`CMAKE_<LANG>_COMPILER_TARGET` can be set to pass a
+value to those supported compilers when compiling:
+
+.. code-block:: cmake
+
+ set(CMAKE_SYSTEM_NAME Linux)
+ set(CMAKE_SYSTEM_PROCESSOR arm)
+
+ set(triple arm-linux-gnueabihf)
+
+ set(CMAKE_C_COMPILER clang)
+ set(CMAKE_C_COMPILER_TARGET ${triple})
+ set(CMAKE_CXX_COMPILER clang++)
+ set(CMAKE_CXX_COMPILER_TARGET ${triple})
+
+Similarly, some compilers do not ship their own supplementary utilities
+such as linkers, but provide a way to specify the location of the external
+toolchain which will be used by the compiler driver. The
+:variable:`CMAKE_<LANG>_COMPILER_EXTERNAL_TOOLCHAIN` variable can be set in a
+toolchain file to pass the path to the compiler driver.
+
+Cross Compiling for QNX
+-----------------------
+
+As the Clang compiler the QNX QCC compile is inherently a cross compiler.
+And the :variable:`CMAKE_<LANG>_COMPILER_TARGET` can be set to pass a
+value to those supported compilers when compiling:
+
+.. code-block:: cmake
+
+ set(CMAKE_SYSTEM_NAME QNX)
+
+ set(arch gcc_ntoarmv7le)
+
+ set(CMAKE_C_COMPILER qcc)
+ set(CMAKE_C_COMPILER_TARGET ${arch})
+ set(CMAKE_CXX_COMPILER QCC)
+ set(CMAKE_CXX_COMPILER_TARGET ${arch})
+
+ set(CMAKE_SYSROOT $ENV{QNX_TARGET})
+
+
+Cross Compiling for Windows CE
+------------------------------
+
+Cross compiling for Windows CE requires the corresponding SDK being
+installed on your system. These SDKs are usually installed under
+``C:/Program Files (x86)/Windows CE Tools/SDKs``.
+
+A toolchain file to configure a Visual Studio generator for
+Windows CE may look like this:
+
+.. code-block:: cmake
+
+ set(CMAKE_SYSTEM_NAME WindowsCE)
+
+ set(CMAKE_SYSTEM_VERSION 8.0)
+ set(CMAKE_SYSTEM_PROCESSOR arm)
+
+ set(CMAKE_GENERATOR_TOOLSET CE800) # Can be omitted for 8.0
+ set(CMAKE_GENERATOR_PLATFORM SDK_AM335X_SK_WEC2013_V310)
+
+The :variable:`CMAKE_GENERATOR_PLATFORM` tells the generator which SDK to use.
+Further :variable:`CMAKE_SYSTEM_VERSION` tells the generator what version of
+Windows CE to use. Currently version 8.0 (Windows Embedded Compact 2013) is
+supported out of the box. Other versions may require one to set
+:variable:`CMAKE_GENERATOR_TOOLSET` to the correct value.
+
+Cross Compiling for Windows 10 Universal Applications
+-----------------------------------------------------
+
+A toolchain file to configure a Visual Studio generator for a
+Windows 10 Universal Application may look like this:
+
+.. code-block:: cmake
+
+ set(CMAKE_SYSTEM_NAME WindowsStore)
+ set(CMAKE_SYSTEM_VERSION 10.0)
+
+A Windows 10 Universal Application targets both Windows Store and
+Windows Phone. Specify the :variable:`CMAKE_SYSTEM_VERSION` variable
+to be ``10.0`` to build with the latest available Windows 10 SDK.
+Specify a more specific version (e.g. ``10.0.10240.0`` for RTM)
+to build with the corresponding SDK.
+
+Cross Compiling for Windows Phone
+---------------------------------
+
+A toolchain file to configure a Visual Studio generator for
+Windows Phone may look like this:
+
+.. code-block:: cmake
+
+ set(CMAKE_SYSTEM_NAME WindowsPhone)
+ set(CMAKE_SYSTEM_VERSION 8.1)
+
+Cross Compiling for Windows Store
+---------------------------------
+
+A toolchain file to configure a Visual Studio generator for
+Windows Store may look like this:
+
+.. code-block:: cmake
+
+ set(CMAKE_SYSTEM_NAME WindowsStore)
+ set(CMAKE_SYSTEM_VERSION 8.1)
+
+.. _`Cross Compiling for Android`:
+
+Cross Compiling for Android
+---------------------------
+
+A toolchain file may configure cross-compiling for Android by setting the
+:variable:`CMAKE_SYSTEM_NAME` variable to ``Android``. Further configuration
+is specific to the Android development environment to be used.
+
+For :ref:`Visual Studio Generators`, CMake expects :ref:`NVIDIA Nsight Tegra
+Visual Studio Edition <Cross Compiling for Android with NVIDIA Nsight Tegra
+Visual Studio Edition>` to be installed. See that section for further
+configuration details.
+
+For :ref:`Makefile Generators` and the :generator:`Ninja` generator,
+CMake expects one of these environments:
+
+* :ref:`NDK <Cross Compiling for Android with the NDK>`
+* :ref:`Standalone Toolchain <Cross Compiling for Android with a Standalone Toolchain>`
+
+CMake uses the following steps to select one of the environments:
+
+* If the :variable:`CMAKE_ANDROID_NDK` variable is set, the NDK at the
+ specified location will be used.
+
+* Else, if the :variable:`CMAKE_ANDROID_STANDALONE_TOOLCHAIN` variable
+ is set, the Standalone Toolchain at the specified location will be used.
+
+* Else, if the :variable:`CMAKE_SYSROOT` variable is set to a directory
+ of the form ``<ndk>/platforms/android-<api>/arch-<arch>``, the ``<ndk>``
+ part will be used as the value of :variable:`CMAKE_ANDROID_NDK` and the
+ NDK will be used.
+
+* Else, if the :variable:`CMAKE_SYSROOT` variable is set to a directory of the
+ form ``<standalone-toolchain>/sysroot``, the ``<standalone-toolchain>`` part
+ will be used as the value of :variable:`CMAKE_ANDROID_STANDALONE_TOOLCHAIN`
+ and the Standalone Toolchain will be used.
+
+* Else, if a cmake variable ``ANDROID_NDK`` is set it will be used
+ as the value of :variable:`CMAKE_ANDROID_NDK`, and the NDK will be used.
+
+* Else, if a cmake variable ``ANDROID_STANDALONE_TOOLCHAIN`` is set, it will be
+ used as the value of :variable:`CMAKE_ANDROID_STANDALONE_TOOLCHAIN`, and the
+ Standalone Toolchain will be used.
+
+* Else, if an environment variable ``ANDROID_NDK_ROOT`` or
+ ``ANDROID_NDK`` is set, it will be used as the value of
+ :variable:`CMAKE_ANDROID_NDK`, and the NDK will be used.
+
+* Else, if an environment variable ``ANDROID_STANDALONE_TOOLCHAIN`` is
+ set then it will be used as the value of
+ :variable:`CMAKE_ANDROID_STANDALONE_TOOLCHAIN`, and the Standalone
+ Toolchain will be used.
+
+* Else, an error diagnostic will be issued that neither the NDK or
+ Standalone Toolchain can be found.
+
+.. _`Cross Compiling for Android with the NDK`:
+
+Cross Compiling for Android with the NDK
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A toolchain file may configure :ref:`Makefile Generators` or the
+:generator:`Ninja` generator to target Android for cross-compiling.
+
+Configure use of an Android NDK with the following variables:
+
+:variable:`CMAKE_SYSTEM_NAME`
+ Set to ``Android``. Must be specified to enable cross compiling
+ for Android.
+
+:variable:`CMAKE_SYSTEM_VERSION`
+ Set to the Android API level. If not specified, the value is
+ determined as follows:
+
+ * If the :variable:`CMAKE_ANDROID_API` variable is set, its value
+ is used as the API level.
+ * If the :variable:`CMAKE_SYSROOT` variable is set, the API level is
+ detected from the NDK directory structure containing the sysroot.
+ * Otherwise, the latest API level available in the NDK is used.
+
+:variable:`CMAKE_ANDROID_ARCH_ABI`
+ Set to the Android ABI (architecture). If not specified, this
+ variable will default to ``armeabi``.
+ The :variable:`CMAKE_ANDROID_ARCH` variable will be computed
+ from ``CMAKE_ANDROID_ARCH_ABI`` automatically.
+ Also see the :variable:`CMAKE_ANDROID_ARM_MODE` and
+ :variable:`CMAKE_ANDROID_ARM_NEON` variables.
+
+:variable:`CMAKE_ANDROID_NDK`
+ Set to the absolute path to the Android NDK root directory.
+ A ``${CMAKE_ANDROID_NDK}/platforms`` directory must exist.
+ If not specified, a default for this variable will be chosen
+ as specified :ref:`above <Cross Compiling for Android>`.
+
+:variable:`CMAKE_ANDROID_NDK_DEPRECATED_HEADERS`
+ Set to a true value to use the deprecated per-api-level headers
+ instead of the unified headers. If not specified, the default will
+ be false unless using a NDK that does not provide unified headers.
+
+:variable:`CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION`
+ On NDK r19 or above, this variable must be unset or set to ``clang``.
+ On NDK r18 or below, set this to the version of the NDK toolchain to
+ be selected as the compiler. If not specified, the default will be
+ the latest available GCC toolchain.
+
+:variable:`CMAKE_ANDROID_STL_TYPE`
+ Set to specify which C++ standard library to use. If not specified,
+ a default will be selected as described in the variable documentation.
+
+The following variables will be computed and provided automatically:
+
+:variable:`CMAKE_<LANG>_ANDROID_TOOLCHAIN_PREFIX`
+ The absolute path prefix to the binutils in the NDK toolchain.
+
+:variable:`CMAKE_<LANG>_ANDROID_TOOLCHAIN_SUFFIX`
+ The host platform suffix of the binutils in the NDK toolchain.
+
+
+For example, a toolchain file might contain:
+
+.. code-block:: cmake
+
+ set(CMAKE_SYSTEM_NAME Android)
+ set(CMAKE_SYSTEM_VERSION 21) # API level
+ set(CMAKE_ANDROID_ARCH_ABI arm64-v8a)
+ set(CMAKE_ANDROID_NDK /path/to/android-ndk)
+ set(CMAKE_ANDROID_STL_TYPE gnustl_static)
+
+Alternatively one may specify the values without a toolchain file:
+
+.. code-block:: console
+
+ $ cmake ../src \
+ -DCMAKE_SYSTEM_NAME=Android \
+ -DCMAKE_SYSTEM_VERSION=21 \
+ -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \
+ -DCMAKE_ANDROID_NDK=/path/to/android-ndk \
+ -DCMAKE_ANDROID_STL_TYPE=gnustl_static
+
+.. _`Cross Compiling for Android with a Standalone Toolchain`:
+
+Cross Compiling for Android with a Standalone Toolchain
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A toolchain file may configure :ref:`Makefile Generators` or the
+:generator:`Ninja` generator to target Android for cross-compiling
+using a standalone toolchain.
+
+Configure use of an Android standalone toolchain with the following variables:
+
+:variable:`CMAKE_SYSTEM_NAME`
+ Set to ``Android``. Must be specified to enable cross compiling
+ for Android.
+
+:variable:`CMAKE_ANDROID_STANDALONE_TOOLCHAIN`
+ Set to the absolute path to the standalone toolchain root directory.
+ A ``${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot`` directory
+ must exist.
+ If not specified, a default for this variable will be chosen
+ as specified :ref:`above <Cross Compiling for Android>`.
+
+:variable:`CMAKE_ANDROID_ARM_MODE`
+ When the standalone toolchain targets ARM, optionally set this to ``ON``
+ to target 32-bit ARM instead of 16-bit Thumb.
+ See variable documentation for details.
+
+:variable:`CMAKE_ANDROID_ARM_NEON`
+ When the standalone toolchain targets ARM v7, optionally set thisto ``ON``
+ to target ARM NEON devices. See variable documentation for details.
+
+The following variables will be computed and provided automatically:
+
+:variable:`CMAKE_SYSTEM_VERSION`
+ The Android API level detected from the standalone toolchain.
+
+:variable:`CMAKE_ANDROID_ARCH_ABI`
+ The Android ABI detected from the standalone toolchain.
+
+:variable:`CMAKE_<LANG>_ANDROID_TOOLCHAIN_PREFIX`
+ The absolute path prefix to the ``binutils`` in the standalone toolchain.
+
+:variable:`CMAKE_<LANG>_ANDROID_TOOLCHAIN_SUFFIX`
+ The host platform suffix of the ``binutils`` in the standalone toolchain.
+
+For example, a toolchain file might contain:
+
+.. code-block:: cmake
+
+ set(CMAKE_SYSTEM_NAME Android)
+ set(CMAKE_ANDROID_STANDALONE_TOOLCHAIN /path/to/android-toolchain)
+
+Alternatively one may specify the values without a toolchain file:
+
+.. code-block:: console
+
+ $ cmake ../src \
+ -DCMAKE_SYSTEM_NAME=Android \
+ -DCMAKE_ANDROID_STANDALONE_TOOLCHAIN=/path/to/android-toolchain
+
+.. _`Cross Compiling for Android with NVIDIA Nsight Tegra Visual Studio Edition`:
+
+Cross Compiling for Android with NVIDIA Nsight Tegra Visual Studio Edition
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A toolchain file to configure one of the :ref:`Visual Studio Generators`
+to build using NVIDIA Nsight Tegra targeting Android may look like this:
+
+.. code-block:: cmake
+
+ set(CMAKE_SYSTEM_NAME Android)
+
+The :variable:`CMAKE_GENERATOR_TOOLSET` may be set to select
+the Nsight Tegra "Toolchain Version" value.
+
+See also target properties:
+
+* :prop_tgt:`ANDROID_ANT_ADDITIONAL_OPTIONS`
+* :prop_tgt:`ANDROID_API_MIN`
+* :prop_tgt:`ANDROID_API`
+* :prop_tgt:`ANDROID_ARCH`
+* :prop_tgt:`ANDROID_ASSETS_DIRECTORIES`
+* :prop_tgt:`ANDROID_GUI`
+* :prop_tgt:`ANDROID_JAR_DEPENDENCIES`
+* :prop_tgt:`ANDROID_JAR_DIRECTORIES`
+* :prop_tgt:`ANDROID_JAVA_SOURCE_DIR`
+* :prop_tgt:`ANDROID_NATIVE_LIB_DEPENDENCIES`
+* :prop_tgt:`ANDROID_NATIVE_LIB_DIRECTORIES`
+* :prop_tgt:`ANDROID_PROCESS_MAX`
+* :prop_tgt:`ANDROID_PROGUARD_CONFIG_PATH`
+* :prop_tgt:`ANDROID_PROGUARD`
+* :prop_tgt:`ANDROID_SECURE_PROPS_PATH`
+* :prop_tgt:`ANDROID_SKIP_ANT_STEP`
+* :prop_tgt:`ANDROID_STL_TYPE`
+
+.. _`Cross Compiling for iOS, tvOS, or watchOS`:
+
+Cross Compiling for iOS, tvOS, or watchOS
+-----------------------------------------
+
+For cross-compiling to iOS, tvOS, or watchOS, the :generator:`Xcode`
+generator is recommended. The :generator:`Unix Makefiles` or
+:generator:`Ninja` generators can also be used, but they require the
+project to handle more areas like target CPU selection and code signing.
+
+Any of the three systems can be targeted by setting the
+:variable:`CMAKE_SYSTEM_NAME` variable to a value from the table below.
+By default, the latest Device SDK is chosen. As for all Apple platforms,
+a different SDK (e.g. a simulator) can be selected by setting the
+:variable:`CMAKE_OSX_SYSROOT` variable, although this should rarely be
+necessary (see :ref:`Switching Between Device and Simulator` below).
+A list of available SDKs can be obtained by running ``xcodebuild -showsdks``.
+
+======= ================= ==================== ================
+OS CMAKE_SYSTEM_NAME Device SDK (default) Simulator SDK
+======= ================= ==================== ================
+iOS iOS iphoneos iphonesimulator
+tvOS tvOS appletvos appletvsimulator
+watchOS watchOS watchos watchsimulator
+======= ================= ==================== ================
+
+For example, to create a CMake configuration for iOS, the following
+command is sufficient:
+
+.. code-block:: console
+
+ cmake .. -GXcode -DCMAKE_SYSTEM_NAME=iOS
+
+Variable :variable:`CMAKE_OSX_ARCHITECTURES` can be used to set architectures
+for both device and simulator. Variable :variable:`CMAKE_OSX_DEPLOYMENT_TARGET`
+can be used to set an iOS/tvOS/watchOS deployment target.
+
+Next configuration will install fat 5 architectures iOS library
+and add the ``-miphoneos-version-min=9.3``/``-mios-simulator-version-min=9.3``
+flags to the compiler:
+
+.. code-block:: console
+
+ $ cmake -S. -B_builds -GXcode \
+ -DCMAKE_SYSTEM_NAME=iOS \
+ "-DCMAKE_OSX_ARCHITECTURES=armv7;armv7s;arm64;i386;x86_64" \
+ -DCMAKE_OSX_DEPLOYMENT_TARGET=9.3 \
+ -DCMAKE_INSTALL_PREFIX=`pwd`/_install \
+ -DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=NO \
+ -DCMAKE_IOS_INSTALL_COMBINED=YES
+
+Example:
+
+.. code-block:: cmake
+
+ # CMakeLists.txt
+ cmake_minimum_required(VERSION 3.14)
+ project(foo)
+ add_library(foo foo.cpp)
+ install(TARGETS foo DESTINATION lib)
+
+Install:
+
+.. code-block:: console
+
+ $ cmake --build _builds --config Release --target install
+
+Check library:
+
+.. code-block:: console
+
+ $ lipo -info _install/lib/libfoo.a
+ Architectures in the fat file: _install/lib/libfoo.a are: i386 armv7 armv7s x86_64 arm64
+
+.. code-block:: console
+
+ $ otool -l _install/lib/libfoo.a | grep -A2 LC_VERSION_MIN_IPHONEOS
+ cmd LC_VERSION_MIN_IPHONEOS
+ cmdsize 16
+ version 9.3
+
+Code Signing
+^^^^^^^^^^^^
+
+Some build artifacts for the embedded Apple platforms require mandatory
+code signing. If the :generator:`Xcode` generator is being used and
+code signing is required or desired, the development team ID can be
+specified via the ``CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM`` CMake variable.
+This team ID will then be included in the generated Xcode project.
+By default, CMake avoids the need for code signing during the internal
+configuration phase (i.e compiler ID and feature detection).
+
+.. _`Switching Between Device and Simulator`:
+
+Switching Between Device and Simulator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When configuring for any of the embedded platforms, one can target either
+real devices or the simulator. Both have their own separate SDK, but CMake
+only supports specifying a single SDK for the configuration phase. This
+means the developer must select one or the other at configuration time.
+When using the :generator:`Xcode` generator, this is less of a limitation
+because Xcode still allows you to build for either a device or a simulator,
+even though configuration was only performed for one of the two. From
+within the Xcode IDE, builds are performed for the selected "destination"
+platform. When building from the command line, the desired sdk can be
+specified directly by passing a ``-sdk`` option to the underlying build
+tool (``xcodebuild``). For example:
+
+.. code-block:: console
+
+ $ cmake --build ... -- -sdk iphonesimulator
+
+Please note that checks made during configuration were performed against
+the configure-time SDK and might not hold true for other SDKs. Commands
+like :command:`find_package`, :command:`find_library`, etc. store and use
+details only for the configured SDK/platform, so they can be problematic
+if wanting to switch between device and simulator builds. You can follow
+the next rules to make device + simulator configuration work:
+
+- Use explicit ``-l`` linker flag,
+ e.g. ``target_link_libraries(foo PUBLIC "-lz")``
+
+- Use explicit ``-framework`` linker flag,
+ e.g. ``target_link_libraries(foo PUBLIC "-framework CoreFoundation")``
+
+- Use :command:`find_package` only for libraries installed with
+ :variable:`CMAKE_IOS_INSTALL_COMBINED` feature
diff --git a/share/cmake-3.17/Help/manual/cmake-variables.7.rst b/share/cmake-3.17/Help/manual/cmake-variables.7.rst
new file mode 100644
index 0000000..fc27739
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/cmake-variables.7.rst
@@ -0,0 +1,683 @@
+.. cmake-manual-description: CMake Variables Reference
+
+cmake-variables(7)
+******************
+
+.. only:: html
+
+ .. contents::
+
+This page documents variables that are provided by CMake
+or have meaning to CMake when set by project code.
+
+For general information on variables, see the
+:ref:`Variables <CMake Language Variables>`
+section in the cmake-language manual.
+
+.. include:: ID_RESERVE.txt
+
+Variables that Provide Information
+==================================
+
+.. toctree::
+ :maxdepth: 1
+
+ /variable/CMAKE_AR
+ /variable/CMAKE_ARGC
+ /variable/CMAKE_ARGV0
+ /variable/CMAKE_BINARY_DIR
+ /variable/CMAKE_BUILD_TOOL
+ /variable/CMAKE_CACHEFILE_DIR
+ /variable/CMAKE_CACHE_MAJOR_VERSION
+ /variable/CMAKE_CACHE_MINOR_VERSION
+ /variable/CMAKE_CACHE_PATCH_VERSION
+ /variable/CMAKE_CFG_INTDIR
+ /variable/CMAKE_COMMAND
+ /variable/CMAKE_CPACK_COMMAND
+ /variable/CMAKE_CROSSCOMPILING
+ /variable/CMAKE_CROSSCOMPILING_EMULATOR
+ /variable/CMAKE_CTEST_COMMAND
+ /variable/CMAKE_CURRENT_BINARY_DIR
+ /variable/CMAKE_CURRENT_FUNCTION
+ /variable/CMAKE_CURRENT_FUNCTION_LIST_DIR
+ /variable/CMAKE_CURRENT_FUNCTION_LIST_FILE
+ /variable/CMAKE_CURRENT_FUNCTION_LIST_LINE
+ /variable/CMAKE_CURRENT_LIST_DIR
+ /variable/CMAKE_CURRENT_LIST_FILE
+ /variable/CMAKE_CURRENT_LIST_LINE
+ /variable/CMAKE_CURRENT_SOURCE_DIR
+ /variable/CMAKE_DEBUG_TARGET_PROPERTIES
+ /variable/CMAKE_DIRECTORY_LABELS
+ /variable/CMAKE_DL_LIBS
+ /variable/CMAKE_DOTNET_TARGET_FRAMEWORK
+ /variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION
+ /variable/CMAKE_EDIT_COMMAND
+ /variable/CMAKE_EXECUTABLE_SUFFIX
+ /variable/CMAKE_EXTRA_GENERATOR
+ /variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES
+ /variable/CMAKE_FIND_DEBUG_MODE
+ /variable/CMAKE_FIND_PACKAGE_NAME
+ /variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION
+ /variable/CMAKE_FIND_PACKAGE_SORT_ORDER
+ /variable/CMAKE_GENERATOR
+ /variable/CMAKE_GENERATOR_INSTANCE
+ /variable/CMAKE_GENERATOR_PLATFORM
+ /variable/CMAKE_GENERATOR_TOOLSET
+ /variable/CMAKE_IMPORT_LIBRARY_PREFIX
+ /variable/CMAKE_IMPORT_LIBRARY_SUFFIX
+ /variable/CMAKE_JOB_POOL_COMPILE
+ /variable/CMAKE_JOB_POOL_LINK
+ /variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER
+ /variable/CMAKE_JOB_POOLS
+ /variable/CMAKE_LANG_COMPILER_AR
+ /variable/CMAKE_LANG_COMPILER_RANLIB
+ /variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX
+ /variable/CMAKE_LINK_LIBRARY_SUFFIX
+ /variable/CMAKE_LINK_SEARCH_END_STATIC
+ /variable/CMAKE_LINK_SEARCH_START_STATIC
+ /variable/CMAKE_MAJOR_VERSION
+ /variable/CMAKE_MAKE_PROGRAM
+ /variable/CMAKE_MATCH_COUNT
+ /variable/CMAKE_MATCH_n
+ /variable/CMAKE_MINIMUM_REQUIRED_VERSION
+ /variable/CMAKE_MINOR_VERSION
+ /variable/CMAKE_NETRC
+ /variable/CMAKE_NETRC_FILE
+ /variable/CMAKE_PARENT_LIST_FILE
+ /variable/CMAKE_PATCH_VERSION
+ /variable/CMAKE_PROJECT_DESCRIPTION
+ /variable/CMAKE_PROJECT_HOMEPAGE_URL
+ /variable/CMAKE_PROJECT_NAME
+ /variable/CMAKE_PROJECT_VERSION
+ /variable/CMAKE_PROJECT_VERSION_MAJOR
+ /variable/CMAKE_PROJECT_VERSION_MINOR
+ /variable/CMAKE_PROJECT_VERSION_PATCH
+ /variable/CMAKE_PROJECT_VERSION_TWEAK
+ /variable/CMAKE_RANLIB
+ /variable/CMAKE_ROOT
+ /variable/CMAKE_RULE_MESSAGES
+ /variable/CMAKE_SCRIPT_MODE_FILE
+ /variable/CMAKE_SHARED_LIBRARY_PREFIX
+ /variable/CMAKE_SHARED_LIBRARY_SUFFIX
+ /variable/CMAKE_SHARED_MODULE_PREFIX
+ /variable/CMAKE_SHARED_MODULE_SUFFIX
+ /variable/CMAKE_SIZEOF_VOID_P
+ /variable/CMAKE_SKIP_INSTALL_RULES
+ /variable/CMAKE_SKIP_RPATH
+ /variable/CMAKE_SOURCE_DIR
+ /variable/CMAKE_STATIC_LIBRARY_PREFIX
+ /variable/CMAKE_STATIC_LIBRARY_SUFFIX
+ /variable/CMAKE_Swift_MODULE_DIRECTORY
+ /variable/CMAKE_Swift_NUM_THREADS
+ /variable/CMAKE_TOOLCHAIN_FILE
+ /variable/CMAKE_TWEAK_VERSION
+ /variable/CMAKE_VERBOSE_MAKEFILE
+ /variable/CMAKE_VERSION
+ /variable/CMAKE_VS_DEVENV_COMMAND
+ /variable/CMAKE_VS_MSBUILD_COMMAND
+ /variable/CMAKE_VS_NsightTegra_VERSION
+ /variable/CMAKE_VS_PLATFORM_NAME
+ /variable/CMAKE_VS_PLATFORM_NAME_DEFAULT
+ /variable/CMAKE_VS_PLATFORM_TOOLSET
+ /variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA
+ /variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR
+ /variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE
+ /variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION
+ /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION
+ /variable/CMAKE_XCODE_GENERATE_SCHEME
+ /variable/CMAKE_XCODE_PLATFORM_TOOLSET
+ /variable/PROJECT-NAME_BINARY_DIR
+ /variable/PROJECT-NAME_DESCRIPTION
+ /variable/PROJECT-NAME_HOMEPAGE_URL
+ /variable/PROJECT-NAME_SOURCE_DIR
+ /variable/PROJECT-NAME_VERSION
+ /variable/PROJECT-NAME_VERSION_MAJOR
+ /variable/PROJECT-NAME_VERSION_MINOR
+ /variable/PROJECT-NAME_VERSION_PATCH
+ /variable/PROJECT-NAME_VERSION_TWEAK
+ /variable/PROJECT_BINARY_DIR
+ /variable/PROJECT_DESCRIPTION
+ /variable/PROJECT_HOMEPAGE_URL
+ /variable/PROJECT_NAME
+ /variable/PROJECT_SOURCE_DIR
+ /variable/PROJECT_VERSION
+ /variable/PROJECT_VERSION_MAJOR
+ /variable/PROJECT_VERSION_MINOR
+ /variable/PROJECT_VERSION_PATCH
+ /variable/PROJECT_VERSION_TWEAK
+
+Variables that Change Behavior
+==============================
+
+.. toctree::
+ :maxdepth: 1
+
+ /variable/BUILD_SHARED_LIBS
+ /variable/CMAKE_ABSOLUTE_DESTINATION_FILES
+ /variable/CMAKE_APPBUNDLE_PATH
+ /variable/CMAKE_AUTOMOC_RELAXED_MODE
+ /variable/CMAKE_BACKWARDS_COMPATIBILITY
+ /variable/CMAKE_BUILD_TYPE
+ /variable/CMAKE_CODEBLOCKS_COMPILER_ID
+ /variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES
+ /variable/CMAKE_CODELITE_USE_TARGETS
+ /variable/CMAKE_COLOR_MAKEFILE
+ /variable/CMAKE_CONFIGURATION_TYPES
+ /variable/CMAKE_DEPENDS_IN_PROJECT_ONLY
+ /variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName
+ /variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES
+ /variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT
+ /variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS
+ /variable/CMAKE_ECLIPSE_RESOURCE_ENCODING
+ /variable/CMAKE_ECLIPSE_VERSION
+ /variable/CMAKE_ERROR_DEPRECATED
+ /variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
+ /variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO
+ /variable/CMAKE_EXPORT_COMPILE_COMMANDS
+ /variable/CMAKE_EXPORT_PACKAGE_REGISTRY
+ /variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY
+ /variable/CMAKE_FIND_APPBUNDLE
+ /variable/CMAKE_FIND_FRAMEWORK
+ /variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX
+ /variable/CMAKE_FIND_LIBRARY_PREFIXES
+ /variable/CMAKE_FIND_LIBRARY_SUFFIXES
+ /variable/CMAKE_FIND_NO_INSTALL_PREFIX
+ /variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY
+ /variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY
+ /variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG
+ /variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS
+ /variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE
+ /variable/CMAKE_FIND_ROOT_PATH
+ /variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
+ /variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
+ /variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
+ /variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
+ /variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH
+ /variable/CMAKE_FIND_USE_CMAKE_PATH
+ /variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH
+ /variable/CMAKE_FIND_USE_PACKAGE_REGISTRY
+ /variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH
+ /variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH
+ /variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY
+ /variable/CMAKE_FRAMEWORK_PATH
+ /variable/CMAKE_IGNORE_PATH
+ /variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE
+ /variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE
+ /variable/CMAKE_INCLUDE_PATH
+ /variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME
+ /variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
+ /variable/CMAKE_INSTALL_MESSAGE
+ /variable/CMAKE_INSTALL_PREFIX
+ /variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT
+ /variable/CMAKE_LIBRARY_PATH
+ /variable/CMAKE_LINK_DIRECTORIES_BEFORE
+ /variable/CMAKE_MFC_FLAG
+ /variable/CMAKE_MAXIMUM_RECURSION_DEPTH
+ /variable/CMAKE_MESSAGE_CONTEXT
+ /variable/CMAKE_MESSAGE_CONTEXT_SHOW
+ /variable/CMAKE_MESSAGE_INDENT
+ /variable/CMAKE_MESSAGE_LOG_LEVEL
+ /variable/CMAKE_MODULE_PATH
+ /variable/CMAKE_POLICY_DEFAULT_CMPNNNN
+ /variable/CMAKE_POLICY_WARNING_CMPNNNN
+ /variable/CMAKE_PREFIX_PATH
+ /variable/CMAKE_PROGRAM_PATH
+ /variable/CMAKE_PROJECT_INCLUDE
+ /variable/CMAKE_PROJECT_INCLUDE_BEFORE
+ /variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE
+ /variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE
+ /variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY
+ /variable/CMAKE_STAGING_PREFIX
+ /variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS
+ /variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE
+ /variable/CMAKE_SUPPRESS_REGENERATION
+ /variable/CMAKE_SYSROOT
+ /variable/CMAKE_SYSROOT_COMPILE
+ /variable/CMAKE_SYSROOT_LINK
+ /variable/CMAKE_SYSTEM_APPBUNDLE_PATH
+ /variable/CMAKE_SYSTEM_FRAMEWORK_PATH
+ /variable/CMAKE_SYSTEM_IGNORE_PATH
+ /variable/CMAKE_SYSTEM_INCLUDE_PATH
+ /variable/CMAKE_SYSTEM_LIBRARY_PATH
+ /variable/CMAKE_SYSTEM_PREFIX_PATH
+ /variable/CMAKE_SYSTEM_PROGRAM_PATH
+ /variable/CMAKE_USER_MAKE_RULES_OVERRIDE
+ /variable/CMAKE_WARN_DEPRECATED
+ /variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
+ /variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY
+ /variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER
+ /variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
+ /variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING
+ /variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
+ /variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
+ /variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
+ /variable/CMAKE_XCODE_SCHEME_ENVIRONMENT
+ /variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC
+ /variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
+ /variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES
+ /variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE
+ /variable/CMAKE_XCODE_SCHEME_MALLOC_STACK
+ /variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER
+ /variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP
+ /variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
+ /variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
+ /variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY
+ /variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS
+ /variable/PackageName_ROOT
+
+Variables that Describe the System
+==================================
+
+.. toctree::
+ :maxdepth: 1
+
+ /variable/ANDROID
+ /variable/APPLE
+ /variable/BORLAND
+ /variable/CMAKE_CL_64
+ /variable/CMAKE_COMPILER_2005
+ /variable/CMAKE_HOST_APPLE
+ /variable/CMAKE_HOST_SOLARIS
+ /variable/CMAKE_HOST_SYSTEM
+ /variable/CMAKE_HOST_SYSTEM_NAME
+ /variable/CMAKE_HOST_SYSTEM_PROCESSOR
+ /variable/CMAKE_HOST_SYSTEM_VERSION
+ /variable/CMAKE_HOST_UNIX
+ /variable/CMAKE_HOST_WIN32
+ /variable/CMAKE_LIBRARY_ARCHITECTURE
+ /variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX
+ /variable/CMAKE_OBJECT_PATH_MAX
+ /variable/CMAKE_SYSTEM
+ /variable/CMAKE_SYSTEM_NAME
+ /variable/CMAKE_SYSTEM_PROCESSOR
+ /variable/CMAKE_SYSTEM_VERSION
+ /variable/CYGWIN
+ /variable/GHS-MULTI
+ /variable/IOS
+ /variable/MINGW
+ /variable/MSVC
+ /variable/MSVC10
+ /variable/MSVC11
+ /variable/MSVC12
+ /variable/MSVC14
+ /variable/MSVC60
+ /variable/MSVC70
+ /variable/MSVC71
+ /variable/MSVC80
+ /variable/MSVC90
+ /variable/MSVC_IDE
+ /variable/MSVC_TOOLSET_VERSION
+ /variable/MSVC_VERSION
+ /variable/MSYS
+ /variable/UNIX
+ /variable/WIN32
+ /variable/WINCE
+ /variable/WINDOWS_PHONE
+ /variable/WINDOWS_STORE
+ /variable/XCODE
+ /variable/XCODE_VERSION
+
+Variables that Control the Build
+================================
+
+.. toctree::
+ :maxdepth: 1
+
+ /variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS
+ /variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS
+ /variable/CMAKE_ANDROID_API
+ /variable/CMAKE_ANDROID_API_MIN
+ /variable/CMAKE_ANDROID_ARCH
+ /variable/CMAKE_ANDROID_ARCH_ABI
+ /variable/CMAKE_ANDROID_ARM_MODE
+ /variable/CMAKE_ANDROID_ARM_NEON
+ /variable/CMAKE_ANDROID_ASSETS_DIRECTORIES
+ /variable/CMAKE_ANDROID_GUI
+ /variable/CMAKE_ANDROID_JAR_DEPENDENCIES
+ /variable/CMAKE_ANDROID_JAR_DIRECTORIES
+ /variable/CMAKE_ANDROID_JAVA_SOURCE_DIR
+ /variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES
+ /variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES
+ /variable/CMAKE_ANDROID_NDK
+ /variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS
+ /variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG
+ /variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION
+ /variable/CMAKE_ANDROID_PROCESS_MAX
+ /variable/CMAKE_ANDROID_PROGUARD
+ /variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH
+ /variable/CMAKE_ANDROID_SECURE_PROPS_PATH
+ /variable/CMAKE_ANDROID_SKIP_ANT_STEP
+ /variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN
+ /variable/CMAKE_ANDROID_STL_TYPE
+ /variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY
+ /variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG
+ /variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS
+ /variable/CMAKE_AUTOGEN_PARALLEL
+ /variable/CMAKE_AUTOGEN_VERBOSE
+ /variable/CMAKE_AUTOMOC
+ /variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES
+ /variable/CMAKE_AUTOMOC_DEPEND_FILTERS
+ /variable/CMAKE_AUTOMOC_MACRO_NAMES
+ /variable/CMAKE_AUTOMOC_MOC_OPTIONS
+ /variable/CMAKE_AUTOMOC_PATH_PREFIX
+ /variable/CMAKE_AUTORCC
+ /variable/CMAKE_AUTORCC_OPTIONS
+ /variable/CMAKE_AUTOUIC
+ /variable/CMAKE_AUTOUIC_OPTIONS
+ /variable/CMAKE_AUTOUIC_SEARCH_PATHS
+ /variable/CMAKE_BUILD_RPATH
+ /variable/CMAKE_BUILD_RPATH_USE_ORIGIN
+ /variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR
+ /variable/CMAKE_BUILD_WITH_INSTALL_RPATH
+ /variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY
+ /variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG
+ /variable/CMAKE_CONFIG_POSTFIX
+ /variable/CMAKE_CROSS_CONFIGS
+ /variable/CMAKE_CTEST_ARGUMENTS
+ /variable/CMAKE_CUDA_SEPARABLE_COMPILATION
+ /variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS
+ /variable/CMAKE_CUDA_RUNTIME_LIBRARY
+ /variable/CMAKE_DEBUG_POSTFIX
+ /variable/CMAKE_DEFAULT_BUILD_TYPE
+ /variable/CMAKE_DEFAULT_CONFIGS
+ /variable/CMAKE_DISABLE_PRECOMPILE_HEADERS
+ /variable/CMAKE_ENABLE_EXPORTS
+ /variable/CMAKE_EXE_LINKER_FLAGS
+ /variable/CMAKE_EXE_LINKER_FLAGS_CONFIG
+ /variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT
+ /variable/CMAKE_EXE_LINKER_FLAGS_INIT
+ /variable/CMAKE_FOLDER
+ /variable/CMAKE_FRAMEWORK
+ /variable/CMAKE_Fortran_FORMAT
+ /variable/CMAKE_Fortran_MODULE_DIRECTORY
+ /variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE
+ /variable/CMAKE_GLOBAL_AUTOGEN_TARGET
+ /variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME
+ /variable/CMAKE_GLOBAL_AUTORCC_TARGET
+ /variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME
+ /variable/CMAKE_GNUtoMS
+ /variable/CMAKE_INCLUDE_CURRENT_DIR
+ /variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE
+ /variable/CMAKE_INSTALL_NAME_DIR
+ /variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH
+ /variable/CMAKE_INSTALL_RPATH
+ /variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH
+ /variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION
+ /variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG
+ /variable/CMAKE_IOS_INSTALL_COMBINED
+ /variable/CMAKE_LANG_CLANG_TIDY
+ /variable/CMAKE_LANG_COMPILER_LAUNCHER
+ /variable/CMAKE_LANG_CPPCHECK
+ /variable/CMAKE_LANG_CPPLINT
+ /variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE
+ /variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG
+ /variable/CMAKE_LANG_LINK_LIBRARY_FLAG
+ /variable/CMAKE_LANG_VISIBILITY_PRESET
+ /variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY
+ /variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG
+ /variable/CMAKE_LIBRARY_PATH_FLAG
+ /variable/CMAKE_LINK_DEF_FILE_FLAG
+ /variable/CMAKE_LINK_DEPENDS_NO_SHARED
+ /variable/CMAKE_LINK_INTERFACE_LIBRARIES
+ /variable/CMAKE_LINK_LIBRARY_FILE_FLAG
+ /variable/CMAKE_LINK_LIBRARY_FLAG
+ /variable/CMAKE_LINK_WHAT_YOU_USE
+ /variable/CMAKE_MACOSX_BUNDLE
+ /variable/CMAKE_MACOSX_RPATH
+ /variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG
+ /variable/CMAKE_MODULE_LINKER_FLAGS
+ /variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG
+ /variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT
+ /variable/CMAKE_MODULE_LINKER_FLAGS_INIT
+ /variable/CMAKE_MSVCIDE_RUN_PATH
+ /variable/CMAKE_MSVC_RUNTIME_LIBRARY
+ /variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX
+ /variable/CMAKE_NO_BUILTIN_CHRPATH
+ /variable/CMAKE_NO_SYSTEM_FROM_IMPORTED
+ /variable/CMAKE_OSX_ARCHITECTURES
+ /variable/CMAKE_OSX_DEPLOYMENT_TARGET
+ /variable/CMAKE_OSX_SYSROOT
+ /variable/CMAKE_PDB_OUTPUT_DIRECTORY
+ /variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG
+ /variable/CMAKE_POSITION_INDEPENDENT_CODE
+ /variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY
+ /variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG
+ /variable/CMAKE_SHARED_LINKER_FLAGS
+ /variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG
+ /variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT
+ /variable/CMAKE_SHARED_LINKER_FLAGS_INIT
+ /variable/CMAKE_SKIP_BUILD_RPATH
+ /variable/CMAKE_SKIP_INSTALL_RPATH
+ /variable/CMAKE_STATIC_LINKER_FLAGS
+ /variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG
+ /variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT
+ /variable/CMAKE_STATIC_LINKER_FLAGS_INIT
+ /variable/CMAKE_TRY_COMPILE_CONFIGURATION
+ /variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
+ /variable/CMAKE_TRY_COMPILE_TARGET_TYPE
+ /variable/CMAKE_UNITY_BUILD
+ /variable/CMAKE_UNITY_BUILD_BATCH_SIZE
+ /variable/CMAKE_USE_RELATIVE_PATHS
+ /variable/CMAKE_VISIBILITY_INLINES_HIDDEN
+ /variable/CMAKE_VS_GLOBALS
+ /variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD
+ /variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD
+ /variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING
+ /variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES
+ /variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES
+ /variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES
+ /variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES
+ /variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES
+ /variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES
+ /variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES
+ /variable/CMAKE_VS_WINRT_BY_DEFAULT
+ /variable/CMAKE_WIN32_EXECUTABLE
+ /variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
+ /variable/CMAKE_XCODE_ATTRIBUTE_an-attribute
+ /variable/EXECUTABLE_OUTPUT_PATH
+ /variable/LIBRARY_OUTPUT_PATH
+
+Variables for Languages
+=======================
+
+.. toctree::
+ :maxdepth: 1
+
+ /variable/CMAKE_COMPILER_IS_GNUCC
+ /variable/CMAKE_COMPILER_IS_GNUCXX
+ /variable/CMAKE_COMPILER_IS_GNUG77
+ /variable/CMAKE_CUDA_COMPILE_FEATURES
+ /variable/CMAKE_CUDA_HOST_COMPILER
+ /variable/CMAKE_CUDA_EXTENSIONS
+ /variable/CMAKE_CUDA_STANDARD
+ /variable/CMAKE_CUDA_STANDARD_REQUIRED
+ /variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES
+ /variable/CMAKE_CXX_COMPILE_FEATURES
+ /variable/CMAKE_CXX_EXTENSIONS
+ /variable/CMAKE_CXX_STANDARD
+ /variable/CMAKE_CXX_STANDARD_REQUIRED
+ /variable/CMAKE_C_COMPILE_FEATURES
+ /variable/CMAKE_C_EXTENSIONS
+ /variable/CMAKE_C_STANDARD
+ /variable/CMAKE_C_STANDARD_REQUIRED
+ /variable/CMAKE_Fortran_MODDIR_DEFAULT
+ /variable/CMAKE_Fortran_MODDIR_FLAG
+ /variable/CMAKE_Fortran_MODOUT_FLAG
+ /variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE
+ /variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX
+ /variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX
+ /variable/CMAKE_LANG_ARCHIVE_APPEND
+ /variable/CMAKE_LANG_ARCHIVE_CREATE
+ /variable/CMAKE_LANG_ARCHIVE_FINISH
+ /variable/CMAKE_LANG_COMPILER
+ /variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN
+ /variable/CMAKE_LANG_COMPILER_ID
+ /variable/CMAKE_LANG_COMPILER_LOADED
+ /variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND
+ /variable/CMAKE_LANG_COMPILER_TARGET
+ /variable/CMAKE_LANG_COMPILER_VERSION
+ /variable/CMAKE_LANG_COMPILE_OBJECT
+ /variable/CMAKE_LANG_CREATE_SHARED_LIBRARY
+ /variable/CMAKE_LANG_CREATE_SHARED_MODULE
+ /variable/CMAKE_LANG_CREATE_STATIC_LIBRARY
+ /variable/CMAKE_LANG_FLAGS
+ /variable/CMAKE_LANG_FLAGS_CONFIG
+ /variable/CMAKE_LANG_FLAGS_CONFIG_INIT
+ /variable/CMAKE_LANG_FLAGS_DEBUG
+ /variable/CMAKE_LANG_FLAGS_DEBUG_INIT
+ /variable/CMAKE_LANG_FLAGS_INIT
+ /variable/CMAKE_LANG_FLAGS_MINSIZEREL
+ /variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT
+ /variable/CMAKE_LANG_FLAGS_RELEASE
+ /variable/CMAKE_LANG_FLAGS_RELEASE_INIT
+ /variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO
+ /variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT
+ /variable/CMAKE_LANG_IGNORE_EXTENSIONS
+ /variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES
+ /variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES
+ /variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ /variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES
+ /variable/CMAKE_LANG_LIBRARY_ARCHITECTURE
+ /variable/CMAKE_LANG_LINKER_PREFERENCE
+ /variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES
+ /variable/CMAKE_LANG_LINKER_WRAPPER_FLAG
+ /variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP
+ /variable/CMAKE_LANG_LINK_EXECUTABLE
+ /variable/CMAKE_LANG_OUTPUT_EXTENSION
+ /variable/CMAKE_LANG_SIMULATE_ID
+ /variable/CMAKE_LANG_SIMULATE_VERSION
+ /variable/CMAKE_LANG_SIZEOF_DATA_PTR
+ /variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS
+ /variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES
+ /variable/CMAKE_LANG_STANDARD_LIBRARIES
+ /variable/CMAKE_OBJC_EXTENSIONS
+ /variable/CMAKE_OBJC_STANDARD
+ /variable/CMAKE_OBJC_STANDARD_REQUIRED
+ /variable/CMAKE_OBJCXX_EXTENSIONS
+ /variable/CMAKE_OBJCXX_STANDARD
+ /variable/CMAKE_OBJCXX_STANDARD_REQUIRED
+ /variable/CMAKE_Swift_LANGUAGE_VERSION
+ /variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG
+
+Variables for CTest
+===================
+
+.. toctree::
+ :maxdepth: 1
+
+ /variable/CTEST_BINARY_DIRECTORY
+ /variable/CTEST_BUILD_COMMAND
+ /variable/CTEST_BUILD_NAME
+ /variable/CTEST_BZR_COMMAND
+ /variable/CTEST_BZR_UPDATE_OPTIONS
+ /variable/CTEST_CHANGE_ID
+ /variable/CTEST_CHECKOUT_COMMAND
+ /variable/CTEST_CONFIGURATION_TYPE
+ /variable/CTEST_CONFIGURE_COMMAND
+ /variable/CTEST_COVERAGE_COMMAND
+ /variable/CTEST_COVERAGE_EXTRA_FLAGS
+ /variable/CTEST_CURL_OPTIONS
+ /variable/CTEST_CUSTOM_COVERAGE_EXCLUDE
+ /variable/CTEST_CUSTOM_ERROR_EXCEPTION
+ /variable/CTEST_CUSTOM_ERROR_MATCH
+ /variable/CTEST_CUSTOM_ERROR_POST_CONTEXT
+ /variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT
+ /variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE
+ /variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS
+ /variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS
+ /variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE
+ /variable/CTEST_CUSTOM_MEMCHECK_IGNORE
+ /variable/CTEST_CUSTOM_POST_MEMCHECK
+ /variable/CTEST_CUSTOM_POST_TEST
+ /variable/CTEST_CUSTOM_PRE_MEMCHECK
+ /variable/CTEST_CUSTOM_PRE_TEST
+ /variable/CTEST_CUSTOM_TESTS_IGNORE
+ /variable/CTEST_CUSTOM_WARNING_EXCEPTION
+ /variable/CTEST_CUSTOM_WARNING_MATCH
+ /variable/CTEST_CVS_CHECKOUT
+ /variable/CTEST_CVS_COMMAND
+ /variable/CTEST_CVS_UPDATE_OPTIONS
+ /variable/CTEST_DROP_LOCATION
+ /variable/CTEST_DROP_METHOD
+ /variable/CTEST_DROP_SITE
+ /variable/CTEST_DROP_SITE_CDASH
+ /variable/CTEST_DROP_SITE_PASSWORD
+ /variable/CTEST_DROP_SITE_USER
+ /variable/CTEST_EXTRA_COVERAGE_GLOB
+ /variable/CTEST_GIT_COMMAND
+ /variable/CTEST_GIT_INIT_SUBMODULES
+ /variable/CTEST_GIT_UPDATE_CUSTOM
+ /variable/CTEST_GIT_UPDATE_OPTIONS
+ /variable/CTEST_HG_COMMAND
+ /variable/CTEST_HG_UPDATE_OPTIONS
+ /variable/CTEST_LABELS_FOR_SUBPROJECTS
+ /variable/CTEST_MEMORYCHECK_COMMAND
+ /variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS
+ /variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS
+ /variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE
+ /variable/CTEST_MEMORYCHECK_TYPE
+ /variable/CTEST_NIGHTLY_START_TIME
+ /variable/CTEST_P4_CLIENT
+ /variable/CTEST_P4_COMMAND
+ /variable/CTEST_P4_OPTIONS
+ /variable/CTEST_P4_UPDATE_OPTIONS
+ /variable/CTEST_RUN_CURRENT_SCRIPT
+ /variable/CTEST_SCP_COMMAND
+ /variable/CTEST_SITE
+ /variable/CTEST_SUBMIT_URL
+ /variable/CTEST_SOURCE_DIRECTORY
+ /variable/CTEST_SVN_COMMAND
+ /variable/CTEST_SVN_OPTIONS
+ /variable/CTEST_SVN_UPDATE_OPTIONS
+ /variable/CTEST_TEST_LOAD
+ /variable/CTEST_TEST_TIMEOUT
+ /variable/CTEST_TRIGGER_SITE
+ /variable/CTEST_UPDATE_COMMAND
+ /variable/CTEST_UPDATE_OPTIONS
+ /variable/CTEST_UPDATE_VERSION_ONLY
+ /variable/CTEST_UPDATE_VERSION_OVERRIDE
+ /variable/CTEST_USE_LAUNCHERS
+
+Variables for CPack
+===================
+
+.. toctree::
+ :maxdepth: 1
+
+ /variable/CPACK_ABSOLUTE_DESTINATION_FILES
+ /variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY
+ /variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
+ /variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY
+ /variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
+ /variable/CPACK_PACKAGING_INSTALL_PREFIX
+ /variable/CPACK_SET_DESTDIR
+ /variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
+
+Variable Expansion Operators
+============================
+
+.. toctree::
+ :maxdepth: 1
+
+ /variable/CACHE
+ /variable/ENV
+
+Internal Variables
+==================
+
+CMake has many internal variables. Most of them are undocumented.
+Some of them, however, were at some point described as normal
+variables, and therefore may be encountered in legacy code. They
+are subject to change, and not recommended for use in project code.
+
+.. toctree::
+ :maxdepth: 1
+
+ /variable/CMAKE_HOME_DIRECTORY
+ /variable/CMAKE_INTERNAL_PLATFORM_ABI
+ /variable/CMAKE_LANG_COMPILER_ABI
+ /variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID
+ /variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL
+ /variable/CMAKE_LANG_PLATFORM_ID
+ /variable/CMAKE_NOT_USING_CONFIG_FLAGS
+ /variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION
diff --git a/share/cmake-3.17/Help/manual/cmake.1.rst b/share/cmake-3.17/Help/manual/cmake.1.rst
new file mode 100644
index 0000000..28a081f
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/cmake.1.rst
@@ -0,0 +1,781 @@
+.. cmake-manual-description: CMake Command-Line Reference
+
+cmake(1)
+********
+
+Synopsis
+========
+
+.. parsed-literal::
+
+ `Generate a Project Buildsystem`_
+ cmake [<options>] <path-to-source>
+ cmake [<options>] <path-to-existing-build>
+ cmake [<options>] -S <path-to-source> -B <path-to-build>
+
+ `Build a Project`_
+ cmake --build <dir> [<options>] [-- <build-tool-options>]
+
+ `Install a Project`_
+ cmake --install <dir> [<options>]
+
+ `Open a Project`_
+ cmake --open <dir>
+
+ `Run a Script`_
+ cmake [{-D <var>=<value>}...] -P <cmake-script-file>
+
+ `Run a Command-Line Tool`_
+ cmake -E <command> [<options>]
+
+ `Run the Find-Package Tool`_
+ cmake --find-package [<options>]
+
+ `View Help`_
+ cmake --help[-<topic>]
+
+Description
+===========
+
+The **cmake** executable is the command-line interface of the cross-platform
+buildsystem generator CMake. The above `Synopsis`_ lists various actions
+the tool can perform as described in sections below.
+
+To build a software project with CMake, `Generate a Project Buildsystem`_.
+Optionally use **cmake** to `Build a Project`_, `Install a Project`_ or just
+run the corresponding build tool (e.g. ``make``) directly. **cmake** can also
+be used to `View Help`_.
+
+The other actions are meant for use by software developers writing
+scripts in the :manual:`CMake language <cmake-language(7)>` to support
+their builds.
+
+For graphical user interfaces that may be used in place of **cmake**,
+see :manual:`ccmake <ccmake(1)>` and :manual:`cmake-gui <cmake-gui(1)>`.
+For command-line interfaces to the CMake testing and packaging facilities,
+see :manual:`ctest <ctest(1)>` and :manual:`cpack <cpack(1)>`.
+
+For more information on CMake at large, `see also`_ the links at the end
+of this manual.
+
+
+Introduction to CMake Buildsystems
+==================================
+
+A *buildsystem* describes how to build a project's executables and libraries
+from its source code using a *build tool* to automate the process. For
+example, a buildsystem may be a ``Makefile`` for use with a command-line
+``make`` tool or a project file for an Integrated Development Environment
+(IDE). In order to avoid maintaining multiple such buildsystems, a project
+may specify its buildsystem abstractly using files written in the
+:manual:`CMake language <cmake-language(7)>`. From these files CMake
+generates a preferred buildsystem locally for each user through a backend
+called a *generator*.
+
+To generate a buildsystem with CMake, the following must be selected:
+
+Source Tree
+ The top-level directory containing source files provided by the project.
+ The project specifies its buildsystem using files as described in the
+ :manual:`cmake-language(7)` manual, starting with a top-level file named
+ ``CMakeLists.txt``. These files specify build targets and their
+ dependencies as described in the :manual:`cmake-buildsystem(7)` manual.
+
+Build Tree
+ The top-level directory in which buildsystem files and build output
+ artifacts (e.g. executables and libraries) are to be stored.
+ CMake will write a ``CMakeCache.txt`` file to identify the directory
+ as a build tree and store persistent information such as buildsystem
+ configuration options.
+
+ To maintain a pristine source tree, perform an *out-of-source* build
+ by using a separate dedicated build tree. An *in-source* build in
+ which the build tree is placed in the same directory as the source
+ tree is also supported, but discouraged.
+
+Generator
+ This chooses the kind of buildsystem to generate. See the
+ :manual:`cmake-generators(7)` manual for documentation of all generators.
+ Run ``cmake --help`` to see a list of generators available locally.
+ Optionally use the ``-G`` option below to specify a generator, or simply
+ accept the default CMake chooses for the current platform.
+
+ When using one of the :ref:`Command-Line Build Tool Generators`
+ CMake expects that the environment needed by the compiler toolchain
+ is already configured in the shell. When using one of the
+ :ref:`IDE Build Tool Generators`, no particular environment is needed.
+
+
+Generate a Project Buildsystem
+==============================
+
+Run CMake with one of the following command signatures to specify the
+source and build trees and generate a buildsystem:
+
+``cmake [<options>] <path-to-source>``
+ Uses the current working directory as the build tree, and
+ ``<path-to-source>`` as the source tree. The specified path may
+ be absolute or relative to the current working directory.
+ The source tree must contain a ``CMakeLists.txt`` file and must
+ *not* contain a ``CMakeCache.txt`` file because the latter
+ identifies an existing build tree. For example:
+
+ .. code-block:: console
+
+ $ mkdir build ; cd build
+ $ cmake ../src
+
+``cmake [<options>] <path-to-existing-build>``
+ Uses ``<path-to-existing-build>`` as the build tree, and loads the
+ path to the source tree from its ``CMakeCache.txt`` file, which must
+ have already been generated by a previous run of CMake. The specified
+ path may be absolute or relative to the current working directory.
+ For example:
+
+ .. code-block:: console
+
+ $ cd build
+ $ cmake .
+
+``cmake [<options>] -S <path-to-source> -B <path-to-build>``
+ Uses ``<path-to-build>`` as the build tree and ``<path-to-source>``
+ as the source tree. The specified paths may be absolute or relative
+ to the current working directory. The source tree must contain a
+ ``CMakeLists.txt`` file. The build tree will be created automatically
+ if it does not already exist. For example:
+
+ .. code-block:: console
+
+ $ cmake -S src -B build
+
+In all cases the ``<options>`` may be zero or more of the `Options`_ below.
+
+After generating a buildsystem one may use the corresponding native
+build tool to build the project. For example, after using the
+:generator:`Unix Makefiles` generator one may run ``make`` directly:
+
+ .. code-block:: console
+
+ $ make
+ $ make install
+
+Alternatively, one may use **cmake** to `Build a Project`_ by
+automatically choosing and invoking the appropriate native build tool.
+
+.. _`CMake Options`:
+
+Options
+-------
+
+.. include:: OPTIONS_BUILD.txt
+
+``-L[A][H]``
+ List non-advanced cached variables.
+
+ List ``CACHE`` variables will run CMake and list all the variables from
+ the CMake ``CACHE`` that are not marked as ``INTERNAL`` or :prop_cache:`ADVANCED`.
+ This will effectively display current CMake settings, which can then be
+ changed with ``-D`` option. Changing some of the variables may result
+ in more variables being created. If ``A`` is specified, then it will
+ display also advanced variables. If ``H`` is specified, it will also
+ display help for each variable.
+
+``-N``
+ View mode only.
+
+ Only load the cache. Do not actually run configure and generate
+ steps.
+
+``--graphviz=[file]``
+ Generate graphviz of dependencies, see :module:`CMakeGraphVizOptions` for more.
+
+ Generate a graphviz input file that will contain all the library and
+ executable dependencies in the project. See the documentation for
+ :module:`CMakeGraphVizOptions` for more details.
+
+``--system-information [file]``
+ Dump information about this system.
+
+ Dump a wide range of information about the current system. If run
+ from the top of a binary tree for a CMake project it will dump
+ additional information such as the cache, log files etc.
+
+``--log-level=<ERROR|WARNING|NOTICE|STATUS|VERBOSE|DEBUG|TRACE>``
+ Set the log level.
+
+ The :command:`message` command will only output messages of the specified
+ log level or higher. The default log level is ``STATUS``.
+
+ To make a log level persist between CMake runs, set
+ :variable:`CMAKE_MESSAGE_LOG_LEVEL` as a cache variable instead.
+ If both the command line option and the variable are given, the command line
+ option takes precedence.
+
+ For backward compatibility reasons, ``--loglevel`` is also accepted as a
+ synonym for this option.
+
+``--log-context``
+ Enable the :command:`message` command outputting context attached to each
+ message.
+
+ This option turns on showing context for the current CMake run only.
+ To make showing the context persistent for all subsequent CMake runs, set
+ :variable:`CMAKE_MESSAGE_CONTEXT_SHOW` as a cache variable instead.
+ When this command line option is given, :variable:`CMAKE_MESSAGE_CONTEXT_SHOW`
+ is ignored.
+
+``--debug-trycompile``
+ Do not delete the :command:`try_compile` build tree.
+ Only useful on one :command:`try_compile` at a time.
+
+ Do not delete the files and directories created for :command:`try_compile`
+ calls. This is useful in debugging failed try_compiles. It may
+ however change the results of the try-compiles as old junk from a
+ previous try-compile may cause a different test to either pass or
+ fail incorrectly. This option is best used for one try-compile at a
+ time, and only when debugging.
+
+``--debug-output``
+ Put cmake in a debug mode.
+
+ Print extra information during the cmake run like stack traces with
+ :command:`message(SEND_ERROR)` calls.
+
+``--debug-find``
+ Put cmake find in a debug mode.
+
+ Print extra find call information during the cmake run to standard
+ error. Output is designed for human consumption and not for parsing.
+
+``--trace``
+ Put cmake in trace mode.
+
+ Print a trace of all calls made and from where.
+
+``--trace-expand``
+ Put cmake in trace mode.
+
+ Like ``--trace``, but with variables expanded.
+
+``--trace-format=<format>``
+ Put cmake in trace mode and sets the trace output format.
+
+ ``<format>`` can be one of the following values.
+
+ ``human``
+ Prints each trace line in a human-readable format. This is the
+ default format.
+
+ ``json-v1``
+ Prints each line as a separate JSON document. Each document is
+ separated by a newline ( ``\n`` ). It is guaranteed that no
+ newline characters will be present inside a JSON document.
+
+ JSON trace format:
+
+ .. code-block:: json
+
+ {
+ "file": "/full/path/to/the/CMake/file.txt",
+ "line": 0,
+ "cmd": "add_executable",
+ "args": ["foo", "bar"],
+ "time": 1579512535.9687231,
+ "frame": 2
+ }
+
+ The members are:
+
+ ``file``
+ The full path to the CMake source file where the function
+ was called.
+
+ ``line``
+ The line in ``file`` of the function call.
+
+ ``cmd``
+ The name of the function that was called.
+
+ ``args``
+ A string list of all function parameters.
+
+ ``time``
+ Timestamp (seconds since epoch) of the function call.
+
+ ``frame``
+ Stack frame depth of the function that was called.
+
+ Additionally, the first JSON document outputted contains the
+ ``version`` key for the current major and minor version of the
+
+ JSON trace format:
+
+ .. code-block:: json
+
+ {
+ "version": {
+ "major": 1,
+ "minor": 0
+ }
+ }
+
+ The members are:
+
+ ``version``
+ Indicates the version of the JSON format. The version has a
+ major and minor components following semantic version conventions.
+
+``--trace-source=<file>``
+ Put cmake in trace mode, but output only lines of a specified file.
+
+ Multiple options are allowed.
+
+``--trace-redirect=<file>``
+ Put cmake in trace mode and redirect trace output to a file instead of stderr.
+
+``--warn-uninitialized``
+ Warn about uninitialized values.
+
+ Print a warning when an uninitialized variable is used.
+
+``--warn-unused-vars``
+ Warn about unused variables.
+
+ Find variables that are declared or set, but not used.
+
+``--no-warn-unused-cli``
+ Don't warn about command line options.
+
+ Don't find variables that are declared on the command line, but not
+ used.
+
+``--check-system-vars``
+ Find problems with variable usage in system files.
+
+ Normally, unused and uninitialized variables are searched for only
+ in :variable:`CMAKE_SOURCE_DIR` and :variable:`CMAKE_BINARY_DIR`.
+ This flag tells CMake to warn about other files as well.
+
+.. _`Build Tool Mode`:
+
+Build a Project
+===============
+
+CMake provides a command-line signature to build an already-generated
+project binary tree:
+
+.. code-block:: shell
+
+ cmake --build <dir> [<options>] [-- <build-tool-options>]
+
+This abstracts a native build tool's command-line interface with the
+following options:
+
+``--build <dir>``
+ Project binary directory to be built. This is required and must be first.
+
+``--parallel [<jobs>], -j [<jobs>]``
+ The maximum number of concurrent processes to use when building.
+ If ``<jobs>`` is omitted the native build tool's default number is used.
+
+ The :envvar:`CMAKE_BUILD_PARALLEL_LEVEL` environment variable, if set,
+ specifies a default parallel level when this option is not given.
+
+ Some native build tools always build in parallel. The use of ``<jobs>``
+ value of ``1`` can be used to limit to a single job.
+
+``--target <tgt>..., -t <tgt>...``
+ Build ``<tgt>`` instead of the default target. Multiple targets may be
+ given, separated by spaces.
+
+``--config <cfg>``
+ For multi-configuration tools, choose configuration ``<cfg>``.
+
+``--clean-first``
+ Build target ``clean`` first, then build.
+ (To clean only, use ``--target clean``.)
+
+``--use-stderr``
+ Ignored. Behavior is default in CMake >= 3.0.
+
+``--verbose, -v``
+ Enable verbose output - if supported - including the build commands to be
+ executed.
+
+ This option can be omitted if :envvar:`VERBOSE` environment variable or
+ :variable:`CMAKE_VERBOSE_MAKEFILE` cached variable is set.
+
+
+``--``
+ Pass remaining options to the native tool.
+
+Run ``cmake --build`` with no options for quick help.
+
+Install a Project
+=================
+
+CMake provides a command-line signature to install an already-generated
+project binary tree:
+
+.. code-block:: shell
+
+ cmake --install <dir> [<options>]
+
+This may be used after building a project to run installation without
+using the generated build system or the native build tool.
+The options are:
+
+``--install <dir>``
+ Project binary directory to install. This is required and must be first.
+
+``--config <cfg>``
+ For multi-configuration generators, choose configuration ``<cfg>``.
+
+``--component <comp>``
+ Component-based install. Only install component ``<comp>``.
+
+``--prefix <prefix>``
+ Override the installation prefix, :variable:`CMAKE_INSTALL_PREFIX`.
+
+``--strip``
+ Strip before installing.
+
+``-v, --verbose``
+ Enable verbose output.
+
+ This option can be omitted if :envvar:`VERBOSE` environment variable is set.
+
+Run ``cmake --install`` with no options for quick help.
+
+Open a Project
+==============
+
+.. code-block:: shell
+
+ cmake --open <dir>
+
+Open the generated project in the associated application. This is only
+supported by some generators.
+
+
+.. _`Script Processing Mode`:
+
+Run a Script
+============
+
+.. code-block:: shell
+
+ cmake [{-D <var>=<value>}...] -P <cmake-script-file>
+
+Process the given cmake file as a script written in the CMake
+language. No configure or generate step is performed and the cache
+is not modified. If variables are defined using ``-D``, this must be
+done before the ``-P`` argument.
+
+
+Run a Command-Line Tool
+=======================
+
+CMake provides builtin command-line tools through the signature
+
+.. code-block:: shell
+
+ cmake -E <command> [<options>]
+
+Run ``cmake -E`` or ``cmake -E help`` for a summary of commands.
+Available commands are:
+
+``capabilities``
+ Report cmake capabilities in JSON format. The output is a JSON object
+ with the following keys:
+
+ ``version``
+ A JSON object with version information. Keys are:
+
+ ``string``
+ The full version string as displayed by cmake ``--version``.
+ ``major``
+ The major version number in integer form.
+ ``minor``
+ The minor version number in integer form.
+ ``patch``
+ The patch level in integer form.
+ ``suffix``
+ The cmake version suffix string.
+ ``isDirty``
+ A bool that is set if the cmake build is from a dirty tree.
+
+ ``generators``
+ A list available generators. Each generator is a JSON object with the
+ following keys:
+
+ ``name``
+ A string containing the name of the generator.
+ ``toolsetSupport``
+ ``true`` if the generator supports toolsets and ``false`` otherwise.
+ ``platformSupport``
+ ``true`` if the generator supports platforms and ``false`` otherwise.
+ ``extraGenerators``
+ A list of strings with all the extra generators compatible with
+ the generator.
+
+ ``fileApi``
+ Optional member that is present when the :manual:`cmake-file-api(7)`
+ is available. The value is a JSON object with one member:
+
+ ``requests``
+ A JSON array containing zero or more supported file-api requests.
+ Each request is a JSON object with members:
+
+ ``kind``
+ Specifies one of the supported :ref:`file-api object kinds`.
+
+ ``version``
+ A JSON array whose elements are each a JSON object containing
+ ``major`` and ``minor`` members specifying non-negative integer
+ version components.
+
+ ``serverMode``
+ ``true`` if cmake supports server-mode and ``false`` otherwise.
+
+``chdir <dir> <cmd> [<arg>...]``
+ Change the current working directory and run a command.
+
+``compare_files [--ignore-eol] <file1> <file2>``
+ Check if ``<file1>`` is same as ``<file2>``. If files are the same,
+ then returns ``0``, if not it returns ``1``. The ``--ignore-eol`` option
+ implies line-wise comparison and ignores LF/CRLF differences.
+
+``copy <file>... <destination>``
+ Copy files to ``<destination>`` (either file or directory).
+ If multiple files are specified, the ``<destination>`` must be
+ directory and it must exist. Wildcards are not supported.
+ ``copy`` does follow symlinks. That means it does not copy symlinks,
+ but the files or directories it point to.
+
+``copy_directory <dir>... <destination>``
+ Copy content of ``<dir>...`` directories to ``<destination>`` directory.
+ If ``<destination>`` directory does not exist it will be created.
+ ``copy_directory`` does follow symlinks.
+
+``copy_if_different <file>... <destination>``
+ Copy files to ``<destination>`` (either file or directory) if
+ they have changed.
+ If multiple files are specified, the ``<destination>`` must be
+ directory and it must exist.
+ ``copy_if_different`` does follow symlinks.
+
+``create_symlink <old> <new>``
+ Create a symbolic link ``<new>`` naming ``<old>``.
+
+ .. note::
+ Path to where ``<new>`` symbolic link will be created has to exist beforehand.
+
+``echo [<string>...]``
+ Displays arguments as text.
+
+``echo_append [<string>...]``
+ Displays arguments as text but no new line.
+
+``env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]...``
+ Run command in a modified environment.
+
+``environment``
+ Display the current environment variables.
+
+``false``
+ Do nothing, with an exit code of 1.
+
+``make_directory <dir>...``
+ Create ``<dir>`` directories. If necessary, create parent
+ directories too. If a directory already exists it will be
+ silently ignored.
+
+``md5sum <file>...``
+ Create MD5 checksum of files in ``md5sum`` compatible format::
+
+ 351abe79cd3800b38cdfb25d45015a15 file1.txt
+ 052f86c15bbde68af55c7f7b340ab639 file2.txt
+
+``sha1sum <file>...``
+ Create SHA1 checksum of files in ``sha1sum`` compatible format::
+
+ 4bb7932a29e6f73c97bb9272f2bdc393122f86e0 file1.txt
+ 1df4c8f318665f9a5f2ed38f55adadb7ef9f559c file2.txt
+
+``sha224sum <file>...``
+ Create SHA224 checksum of files in ``sha224sum`` compatible format::
+
+ b9b9346bc8437bbda630b0b7ddfc5ea9ca157546dbbf4c613192f930 file1.txt
+ 6dfbe55f4d2edc5fe5c9197bca51ceaaf824e48eba0cc453088aee24 file2.txt
+
+``sha256sum <file>...``
+ Create SHA256 checksum of files in ``sha256sum`` compatible format::
+
+ 76713b23615d31680afeb0e9efe94d47d3d4229191198bb46d7485f9cb191acc file1.txt
+ 15b682ead6c12dedb1baf91231e1e89cfc7974b3787c1e2e01b986bffadae0ea file2.txt
+
+``sha384sum <file>...``
+ Create SHA384 checksum of files in ``sha384sum`` compatible format::
+
+ acc049fedc091a22f5f2ce39a43b9057fd93c910e9afd76a6411a28a8f2b8a12c73d7129e292f94fc0329c309df49434 file1.txt
+ 668ddeb108710d271ee21c0f3acbd6a7517e2b78f9181c6a2ff3b8943af92b0195dcb7cce48aa3e17893173c0a39e23d file2.txt
+
+``sha512sum <file>...``
+ Create SHA512 checksum of files in ``sha512sum`` compatible format::
+
+ 2a78d7a6c5328cfb1467c63beac8ff21794213901eaadafd48e7800289afbc08e5fb3e86aa31116c945ee3d7bf2a6194489ec6101051083d1108defc8e1dba89 file1.txt
+ 7a0b54896fe5e70cca6dd643ad6f672614b189bf26f8153061c4d219474b05dad08c4e729af9f4b009f1a1a280cb625454bf587c690f4617c27e3aebdf3b7a2d file2.txt
+
+``remove [-f] <file>...``
+ .. deprecated:: 3.17
+
+ Remove the file(s). The planned behaviour was that if any of the
+ listed files already do not exist, the command returns a non-zero exit code,
+ but no message is logged. The ``-f`` option changes the behavior to return a
+ zero exit code (i.e. success) in such situations instead.
+ ``remove`` does not follow symlinks. That means it remove only symlinks
+ and not files it point to.
+
+ The implementation was buggy and always returned 0. It cannot be fixed without
+ breaking backwards compatibility. Use ``rm`` instead.
+
+``remove_directory <dir>...``
+ .. deprecated:: 3.17
+
+ Remove ``<dir>`` directories and their contents. If a directory does
+ not exist it will be silently ignored. If ``<dir>`` is a symlink to
+ a directory, just the symlink will be removed.
+ Use ``rm`` instead.
+
+``rename <oldname> <newname>``
+ Rename a file or directory (on one volume). If file with the ``<newname>`` name
+ already exists, then it will be silently replaced.
+
+``rm [-rRf] <file> <dir>...``
+ Remove the files ``<file>`` or directories ``dir``.
+ Use ``-r`` or ``-R`` to remove directories and their contents recursively.
+ If any of the listed files/directories do not exist, the command returns a
+ non-zero exit code, but no message is logged. The ``-f`` option changes
+ the behavior to return a zero exit code (i.e. success) in such
+ situations instead.
+
+``server``
+ Launch :manual:`cmake-server(7)` mode.
+
+``sleep <number>...``
+ Sleep for given number of seconds.
+
+``tar [cxt][vf][zjJ] file.tar [<options>] [--] [<pathname>...]``
+ Create or extract a tar or zip archive. Options are:
+
+ ``c``
+ Create a new archive containing the specified files.
+ If used, the ``<pathname>...`` argument is mandatory.
+ ``x``
+ Extract to disk from the archive.
+ The ``<pathname>...`` argument could be used to extract only selected files
+ or directories.
+ When extracting selected files or directories, you must provide their exact
+ names including the path, as printed by list (``-t``).
+ ``t``
+ List archive contents.
+ The ``<pathname>...`` argument could be used to list only selected files
+ or directories.
+ ``v``
+ Produce verbose output.
+ ``z``
+ Compress the resulting archive with gzip.
+ ``j``
+ Compress the resulting archive with bzip2.
+ ``J``
+ Compress the resulting archive with XZ.
+ ``--zstd``
+ Compress the resulting archive with Zstandard.
+ ``--files-from=<file>``
+ Read file names from the given file, one per line.
+ Blank lines are ignored. Lines may not start in ``-``
+ except for ``--add-file=<name>`` to add files whose
+ names start in ``-``.
+ ``--format=<format>``
+ Specify the format of the archive to be created.
+ Supported formats are: ``7zip``, ``gnutar``, ``pax``,
+ ``paxr`` (restricted pax, default), and ``zip``.
+ ``--mtime=<date>``
+ Specify modification time recorded in tarball entries.
+ ``--``
+ Stop interpreting options and treat all remaining arguments
+ as file names, even if they start with ``-``.
+
+
+``time <command> [<args>...]``
+ Run command and display elapsed time.
+
+``touch <file>...``
+ Creates ``<file>`` if file do not exist.
+ If ``<file>`` exists, it is changing ``<file>`` access and modification times.
+
+``touch_nocreate <file>...``
+ Touch a file if it exists but do not create it. If a file does
+ not exist it will be silently ignored.
+
+``true``
+ Do nothing, with an exit code of 0.
+
+Windows-specific Command-Line Tools
+-----------------------------------
+
+The following ``cmake -E`` commands are available only on Windows:
+
+``delete_regv <key>``
+ Delete Windows registry value.
+
+``env_vs8_wince <sdkname>``
+ Displays a batch file which sets the environment for the provided
+ Windows CE SDK installed in VS2005.
+
+``env_vs9_wince <sdkname>``
+ Displays a batch file which sets the environment for the provided
+ Windows CE SDK installed in VS2008.
+
+``write_regv <key> <value>``
+ Write Windows registry value.
+
+
+Run the Find-Package Tool
+=========================
+
+CMake provides a pkg-config like helper for Makefile-based projects:
+
+.. code-block:: shell
+
+ cmake --find-package [<options>]
+
+It searches a package using :command:`find_package()` and prints the
+resulting flags to stdout. This can be used instead of pkg-config
+to find installed libraries in plain Makefile-based projects or in
+autoconf-based projects (via ``share/aclocal/cmake.m4``).
+
+.. note::
+ This mode is not well-supported due to some technical limitations.
+ It is kept for compatibility but should not be used in new projects.
+
+
+View Help
+=========
+
+To print selected pages from the CMake documentation, use
+
+.. code-block:: shell
+
+ cmake --help[-<topic>]
+
+with one of the following options:
+
+.. include:: OPTIONS_HELP.txt
+
+
+See Also
+========
+
+.. include:: LINKS.txt
diff --git a/share/cmake-3.16/Help/manual/cpack-generators.7.rst b/share/cmake-3.17/Help/manual/cpack-generators.7.rst
index ade9149..ade9149 100644
--- a/share/cmake-3.16/Help/manual/cpack-generators.7.rst
+++ b/share/cmake-3.17/Help/manual/cpack-generators.7.rst
diff --git a/share/cmake-3.16/Help/manual/cpack.1.rst b/share/cmake-3.17/Help/manual/cpack.1.rst
index 395cd41..395cd41 100644
--- a/share/cmake-3.16/Help/manual/cpack.1.rst
+++ b/share/cmake-3.17/Help/manual/cpack.1.rst
diff --git a/share/cmake-3.17/Help/manual/ctest.1.rst b/share/cmake-3.17/Help/manual/ctest.1.rst
new file mode 100644
index 0000000..6503f0e
--- /dev/null
+++ b/share/cmake-3.17/Help/manual/ctest.1.rst
@@ -0,0 +1,1579 @@
+.. cmake-manual-description: CTest Command-Line Reference
+
+ctest(1)
+********
+
+.. contents::
+
+Synopsis
+========
+
+.. parsed-literal::
+
+ ctest [<options>]
+ ctest --build-and-test <path-to-source> <path-to-build>
+ --build-generator <generator> [<options>...]
+ [--build-options <opts>...] [--test-command <command> [<args>...]]
+ ctest {-D <dashboard> | -M <model> -T <action> | -S <script> | -SP <script>}
+ [-- <dashboard-options>...]
+
+Description
+===========
+
+The **ctest** executable is the CMake test driver program.
+CMake-generated build trees created for projects that use the
+:command:`enable_testing` and :command:`add_test` commands have testing support.
+This program will run the tests and report results.
+
+Options
+=======
+
+``-C <cfg>, --build-config <cfg>``
+ Choose configuration to test.
+
+ Some CMake-generated build trees can have multiple build
+ configurations in the same tree. This option can be used to specify
+ 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.
+
+ Test output is normally suppressed and only summary information is
+ displayed. This option will show all test output.
+
+``-VV,--extra-verbose``
+ Enable more verbose output from tests.
+
+ Test output is normally suppressed and only summary information is
+ displayed. This option will show even more test output.
+
+``--debug``
+ Displaying more verbose internals of CTest.
+
+ This feature will result in a large number of output that is mostly
+ useful for debugging dashboard problems.
+
+``--output-on-failure``
+ Output anything outputted by the test program if the test should fail.
+ This option can also be enabled by setting the
+ :envvar:`CTEST_OUTPUT_ON_FAILURE` environment variable
+
+``-F``
+ Enable failover.
+
+ This option allows CTest to resume a test set execution that was
+ previously interrupted. If no interruption occurred, the ``-F`` option
+ will have no effect.
+
+``-j <jobs>, --parallel <jobs>``
+ Run the tests in parallel using the given number of jobs.
+
+ This option tells CTest to run the tests in parallel using given
+ number of jobs. This option can also be set by setting the
+ :envvar:`CTEST_PARALLEL_LEVEL` environment variable.
+
+ This option can be used with the :prop_test:`PROCESSORS` test property.
+
+ See `Label and Subproject Summary`_.
+
+``--resource-spec-file <file>``
+ Run CTest with :ref:`resource allocation <ctest-resource-allocation>` enabled,
+ using the
+ :ref:`resource specification file <ctest-resource-specification-file>`
+ specified in ``<file>``.
+
+ When ``ctest`` is run as a `Dashboard Client`_ this sets the
+ ``ResourceSpecFile`` option of the `CTest Test Step`_.
+
+``--test-load <level>``
+ While running tests in parallel (e.g. with ``-j``), try not to start
+ tests when they may cause the CPU load to pass above a given threshold.
+
+ When ``ctest`` is run as a `Dashboard Client`_ this sets the
+ ``TestLoad`` option of the `CTest Test Step`_.
+
+``-Q,--quiet``
+ Make CTest quiet.
+
+ This option will suppress all the output. The output log file will
+ still be generated if the ``--output-log`` is specified. Options such
+ as ``--verbose``, ``--extra-verbose``, and ``--debug`` are ignored
+ if ``--quiet`` is specified.
+
+``-O <file>, --output-log <file>``
+ Output to log file.
+
+ This option tells CTest to write all its output to a ``<file>`` log file.
+
+``-N,--show-only[=<format>]``
+ Disable actual execution of tests.
+
+ This option tells CTest to list the tests that would be run but not
+ actually run them. Useful in conjunction with the ``-R`` and ``-E``
+ options.
+
+ ``<format>`` can be one of the following values.
+
+ ``human``
+ Human-friendly output. This is not guaranteed to be stable.
+ This is the default.
+
+ ``json-v1``
+ Dump the test information in JSON format.
+ See `Show as JSON Object Model`_.
+
+``-L <regex>, --label-regex <regex>``
+ Run tests with labels matching regular expression.
+
+ This option tells CTest to run only the tests whose labels match the
+ given regular expression.
+
+``-R <regex>, --tests-regex <regex>``
+ Run tests matching regular expression.
+
+ This option tells CTest to run only the tests whose names match the
+ given regular expression.
+
+``-E <regex>, --exclude-regex <regex>``
+ Exclude tests matching regular expression.
+
+ This option tells CTest to NOT run the tests whose names match the
+ given regular expression.
+
+``-LE <regex>, --label-exclude <regex>``
+ Exclude tests with labels matching regular expression.
+
+ This option tells CTest to NOT run the tests whose labels match the
+ given regular expression.
+
+``-FA <regex>, --fixture-exclude-any <regex>``
+ Exclude fixtures matching ``<regex>`` from automatically adding any tests to
+ the test set.
+
+ If a test in the set of tests to be executed requires a particular fixture,
+ that fixture's setup and cleanup tests would normally be added to the test set
+ automatically. This option prevents adding setup or cleanup tests for fixtures
+ matching the ``<regex>``. Note that all other fixture behavior is retained,
+ including test dependencies and skipping tests that have fixture setup tests
+ that fail.
+
+``-FS <regex>, --fixture-exclude-setup <regex>``
+ Same as ``-FA`` except only matching setup tests are excluded.
+
+``-FC <regex>, --fixture-exclude-cleanup <regex>``
+ Same as ``-FA`` except only matching cleanup tests are excluded.
+
+``-D <dashboard>, --dashboard <dashboard>``
+ Execute dashboard test.
+
+ This option tells CTest to act as a CDash client and perform a
+ dashboard test. All tests are ``<Mode><Test>``, where ``<Mode>`` can be
+ ``Experimental``, ``Nightly``, and ``Continuous``, and ``<Test>`` can be
+ ``Start``, ``Update``, ``Configure``, ``Build``, ``Test``,
+ ``Coverage``, and ``Submit``.
+
+ See `Dashboard Client`_.
+
+``-D <var>:<type>=<value>``
+ Define a variable for script mode.
+
+ Pass in variable values on the command line. Use in conjunction
+ with ``-S`` to pass variable values to a dashboard script. Parsing ``-D``
+ arguments as variable values is only attempted if the value
+ following ``-D`` does not match any of the known dashboard types.
+
+``-M <model>, --test-model <model>``
+ Sets the model for a dashboard.
+
+ This option tells CTest to act as a CDash client where the ``<model>``
+ can be ``Experimental``, ``Nightly``, and ``Continuous``.
+ Combining ``-M`` and ``-T`` is similar to ``-D``.
+
+ See `Dashboard Client`_.
+
+``-T <action>, --test-action <action>``
+ Sets the dashboard action to perform.
+
+ This option tells CTest to act as a CDash client and perform some
+ action such as ``start``, ``build``, ``test`` etc. See
+ `Dashboard Client Steps`_ for the full list of actions.
+ Combining ``-M`` and ``-T`` is similar to ``-D``.
+
+ See `Dashboard Client`_.
+
+``-S <script>, --script <script>``
+ Execute a dashboard for a configuration.
+
+ This option tells CTest to load in a configuration script which sets
+ a number of parameters such as the binary and source directories.
+ Then CTest will do what is required to create and run a dashboard.
+ This option basically sets up a dashboard and then runs ``ctest -D``
+ with the appropriate options.
+
+ See `Dashboard Client`_.
+
+``-SP <script>, --script-new-process <script>``
+ Execute a dashboard for a configuration.
+
+ This option does the same operations as ``-S`` but it will do them in a
+ separate process. This is primarily useful in cases where the
+ script may modify the environment and you do not want the modified
+ environment to impact other ``-S`` scripts.
+
+ See `Dashboard Client`_.
+
+``-I [Start,End,Stride,test#,test#|Test file], --tests-information``
+ Run a specific number of tests by number.
+
+ This option causes CTest to run tests starting at number ``Start``,
+ ending at number ``End``, and incrementing by ``Stride``. Any additional
+ numbers after ``Stride`` are considered individual test numbers. ``Start``,
+ ``End``, or ``Stride`` can be empty. Optionally a file can be given that
+ contains the same syntax as the command line.
+
+``-U, --union``
+ Take the Union of ``-I`` and ``-R``.
+
+ When both ``-R`` and ``-I`` are specified by default the intersection of
+ tests are run. By specifying ``-U`` the union of tests is run instead.
+
+``--rerun-failed``
+ Run only the tests that failed previously.
+
+ This option tells CTest to perform only the tests that failed during
+ its previous run. When this option is specified, CTest ignores all
+ other options intended to modify the list of tests to run (``-L``, ``-R``,
+ ``-E``, ``-LE``, ``-I``, etc). In the event that CTest runs and no tests
+ fail, subsequent calls to CTest with the ``--rerun-failed`` option will run
+ the set of tests that most recently failed (if any).
+
+``--repeat <mode>:<n>``
+ Run tests repeatedly based on the given ``<mode>`` up to ``<n>`` times.
+ The modes are:
+
+ ``until-fail``
+ Require each test to run ``<n>`` times without failing in order to pass.
+ This is useful in finding sporadic failures in test cases.
+
+ ``until-pass``
+ Allow each test to run up to ``<n>`` times in order to pass.
+ Repeats tests if they fail for any reason.
+ This is useful in tolerating sporadic failures in test cases.
+
+ ``after-timeout``
+ Allow each test to run up to ``<n>`` times in order to pass.
+ Repeats tests only if they timeout.
+ This is useful in tolerating sporadic timeouts in test cases
+ on busy machines.
+
+``--repeat-until-fail <n>``
+ Equivalent to ``--repeat until-fail:<n>``.
+
+``--max-width <width>``
+ Set the max width for a test name to output.
+
+ Set the maximum width for each test name to show in the output.
+ This allows the user to widen the output to avoid clipping the test
+ name which can be very annoying.
+
+``--interactive-debug-mode [0|1]``
+ Set the interactive mode to ``0`` or ``1``.
+
+ This option causes CTest to run tests in either an interactive mode
+ or a non-interactive mode. On Windows this means that in
+ non-interactive mode, all system debug pop up windows are blocked.
+ In dashboard mode (``Experimental``, ``Nightly``, ``Continuous``), the default
+ is non-interactive. When just running tests not for a dashboard the
+ default is to allow popups and interactive debugging.
+
+``--no-label-summary``
+ Disable timing summary information for labels.
+
+ This option tells CTest not to print summary information for each
+ label associated with the tests run. If there are no labels on the
+ tests, nothing extra is printed.
+
+ See `Label and Subproject Summary`_.
+
+``--no-subproject-summary``
+ Disable timing summary information for subprojects.
+
+ This option tells CTest not to print summary information for each
+ subproject associated with the tests run. If there are no subprojects on the
+ tests, nothing extra is printed.
+
+ See `Label and Subproject Summary`_.
+
+``--build-and-test``
+See `Build and Test Mode`_.
+
+``--test-output-size-passed <size>``
+ Limit the output for passed tests to ``<size>`` bytes.
+
+``--test-output-size-failed <size>``
+ Limit the output for failed tests to ``<size>`` bytes.
+
+``--overwrite``
+ Overwrite CTest configuration option.
+
+ By default CTest uses configuration options from configuration file.
+ This option will overwrite the configuration option.
+
+``--force-new-ctest-process``
+ Run child CTest instances as new processes.
+
+ By default CTest will run child CTest instances within the same
+ process. If this behavior is not desired, this argument will
+ enforce new processes for child CTest processes.
+
+``--schedule-random``
+ Use a random order for scheduling tests.
+
+ This option will run the tests in a random order. It is commonly
+ used to detect implicit dependencies in a test suite.
+
+``--submit-index``
+ Legacy option for old Dart2 dashboard server feature.
+ Do not use.
+
+``--timeout <seconds>``
+ Set the default test timeout.
+
+ This option effectively sets a timeout on all tests that do not
+ already have a timeout set on them via the :prop_test:`TIMEOUT`
+ property.
+
+``--stop-time <time>``
+ Set a time at which all tests should stop running.
+
+ Set a real time of day at which all tests should timeout. Example:
+ ``7:00:00 -0400``. Any time format understood by the curl date parser
+ is accepted. Local time is assumed if no timezone is specified.
+
+``--print-labels``
+ Print all available test labels.
+
+ This option will not run any tests, it will simply print the list of
+ all labels associated with the test set.
+
+``--no-tests=<[error|ignore]>``
+ Regard no tests found either as error or ignore it.
+
+ If no tests were found, the default behavior of CTest is to always log an
+ error message but to return an error code in script mode only. This option
+ unifies the behavior of CTest by either returning an error code if no tests
+ were found or by ignoring it.
+
+.. include:: OPTIONS_HELP.txt
+
+.. _`Label and Subproject Summary`:
+
+Label and Subproject Summary
+============================
+
+CTest prints timing summary information for each ``LABEL`` and subproject
+associated with the tests run. The label time summary will not include labels
+that are mapped to subprojects.
+
+When the :prop_test:`PROCESSORS` test property is set, CTest will display a
+weighted test timing result in label and subproject summaries. The time is
+reported with `sec*proc` instead of just `sec`.
+
+The weighted time summary reported for each label or subproject ``j``
+is computed as::
+
+ Weighted Time Summary for Label/Subproject j =
+ sum(raw_test_time[j,i] * num_processors[j,i], i=1...num_tests[j])
+
+ for labels/subprojects j=1...total
+
+where:
+
+* ``raw_test_time[j,i]``: Wall-clock time for the ``i`` test
+ for the ``j`` label or subproject
+* ``num_processors[j,i]``: Value of the CTest :prop_test:`PROCESSORS` property
+ for the ``i`` test for the ``j`` label or subproject
+* ``num_tests[j]``: Number of tests associated with the ``j`` label or subproject
+* ``total``: Total number of labels or subprojects that have at least one test run
+
+Therefore, the weighted time summary for each label or subproject represents
+the amount of time that CTest gave to run the tests for each label or
+subproject and gives a good representation of the total expense of the tests
+for each label or subproject when compared to other labels or subprojects.
+
+For example, if ``SubprojectA`` showed ``100 sec*proc`` and ``SubprojectB`` showed
+``10 sec*proc``, then CTest allocated approximately 10 times the CPU/core time
+to run the tests for ``SubprojectA`` than for ``SubprojectB`` (e.g. so if effort
+is going to be expended to reduce the cost of the test suite for the whole
+project, then reducing the cost of the test suite for ``SubprojectA`` would
+likely have a larger impact than effort to reduce the cost of the test suite
+for ``SubprojectB``).
+
+.. _`Build and Test Mode`:
+
+Build and Test Mode
+===================
+
+CTest provides a command-line signature to configure (i.e. run cmake on),
+build, and/or execute a test::
+
+ ctest --build-and-test <path-to-source> <path-to-build>
+ --build-generator <generator>
+ [<options>...]
+ [--build-options <opts>...]
+ [--test-command <command> [<args>...]]
+
+The configure and test steps are optional. The arguments to this command line
+are the source and binary directories. The ``--build-generator`` option *must*
+be provided to use ``--build-and-test``. If ``--test-command`` is specified
+then that will be run after the build is complete. Other options that affect
+this mode include:
+
+``--build-target``
+ Specify a specific target to build.
+
+ If left out the ``all`` target is built.
+
+``--build-nocmake``
+ Run the build without running cmake first.
+
+ Skip the cmake step.
+
+``--build-run-dir``
+ Specify directory to run programs from.
+
+ Directory where programs will be after it has been compiled.
+
+``--build-two-config``
+ Run CMake twice.
+
+``--build-exe-dir``
+ Specify the directory for the executable.
+
+``--build-generator``
+ Specify the generator to use. See the :manual:`cmake-generators(7)` manual.
+
+``--build-generator-platform``
+ Specify the generator-specific platform.
+
+``--build-generator-toolset``
+ Specify the generator-specific toolset.
+
+``--build-project``
+ Specify the name of the project to build.
+
+``--build-makeprogram``
+ Specify the explicit make program to be used by CMake when configuring and
+ building the project. Only applicable for Make and Ninja based generators.
+
+``--build-noclean``
+ Skip the make clean step.
+
+``--build-config-sample``
+ A sample executable to use to determine the configuration that
+ should be used. e.g. ``Debug``, ``Release`` etc.
+
+``--build-options``
+ Additional options for configuring the build (i.e. for CMake, not for
+ the build tool). Note that if this is specified, the ``--build-options``
+ keyword and its arguments must be the last option given on the command
+ line, with the possible exception of ``--test-command``.
+
+``--test-command``
+ The command to run as the test step with the ``--build-and-test`` option.
+ All arguments following this keyword will be assumed to be part of the
+ test command line, so it must be the last option given.
+
+``--test-timeout``
+ The time limit in seconds
+
+.. _`Dashboard Client`:
+
+Dashboard Client
+================
+
+CTest can operate as a client for the `CDash`_ software quality dashboard
+application. As a dashboard client, CTest performs a sequence of steps
+to configure, build, and test software, and then submits the results to
+a `CDash`_ server. The command-line signature used to submit to `CDash`_ is::
+
+ ctest (-D <dashboard> | -M <model> -T <action> | -S <script> | -SP <script>)
+ [-- <dashboard-options>...]
+
+Options for Dashboard Client include:
+
+``--group <group>``
+ Specify what group you'd like to submit results to
+
+ Submit dashboard to specified group instead of default one. By
+ default, the dashboard is submitted to Nightly, Experimental, or
+ Continuous group, but by specifying this option, the group can be
+ arbitrary.
+
+ This replaces the deprecated option ``--track``.
+ Despite the name change its behavior is unchanged.
+
+``-A <file>, --add-notes <file>``
+ Add a notes file with submission.
+
+ This option tells CTest to include a notes file when submitting
+ dashboard.
+
+``--tomorrow-tag``
+ ``Nightly`` or ``Experimental`` starts with next day tag.
+
+ This is useful if the build will not finish in one day.
+
+``--extra-submit <file>[;<file>]``
+ Submit extra files to the dashboard.
+
+ This option will submit extra files to the dashboard.
+
+``--http1.0``
+ Submit using `HTTP 1.0`.
+
+ This option will force CTest to use `HTTP 1.0` to submit files to the
+ dashboard, instead of `HTTP 1.1`.
+
+``--no-compress-output``
+ Do not compress test output when submitting.
+
+ This flag will turn off automatic compression of test output. Use
+ this to maintain compatibility with an older version of CDash which
+ doesn't support compressed test output.
+
+Dashboard Client Steps
+----------------------
+
+CTest defines an ordered list of testing steps of which some or all may
+be run as a dashboard client:
+
+``Start``
+ Start a new dashboard submission to be composed of results recorded
+ by the following steps.
+ See the `CTest Start Step`_ section below.
+
+``Update``
+ Update the source tree from its version control repository.
+ Record the old and new versions and the list of updated source files.
+ See the `CTest Update Step`_ section below.
+
+``Configure``
+ Configure the software by running a command in the build tree.
+ Record the configuration output log.
+ See the `CTest Configure Step`_ section below.
+
+``Build``
+ Build the software by running a command in the build tree.
+ Record the build output log and detect warnings and errors.
+ See the `CTest Build Step`_ section below.
+
+``Test``
+ Test the software by loading a ``CTestTestfile.cmake``
+ from the build tree and executing the defined tests.
+ Record the output and result of each test.
+ See the `CTest Test Step`_ section below.
+
+``Coverage``
+ Compute coverage of the source code by running a coverage
+ analysis tool and recording its output.
+ See the `CTest Coverage Step`_ section below.
+
+``MemCheck``
+ Run the software test suite through a memory check tool.
+ Record the test output, results, and issues reported by the tool.
+ See the `CTest MemCheck Step`_ section below.
+
+``Submit``
+ Submit results recorded from other testing steps to the
+ software quality dashboard server.
+ See the `CTest Submit Step`_ section below.
+
+Dashboard Client Modes
+----------------------
+
+CTest defines three modes of operation as a dashboard client:
+
+``Nightly``
+ This mode is intended to be invoked once per day, typically at night.
+ It enables the ``Start``, ``Update``, ``Configure``, ``Build``, ``Test``,
+ ``Coverage``, and ``Submit`` steps by default. Selected steps run even
+ if the ``Update`` step reports no changes to the source tree.
+
+``Continuous``
+ This mode is intended to be invoked repeatedly throughout the day.
+ It enables the ``Start``, ``Update``, ``Configure``, ``Build``, ``Test``,
+ ``Coverage``, and ``Submit`` steps by default, but exits after the
+ ``Update`` step if it reports no changes to the source tree.
+
+``Experimental``
+ This mode is intended to be invoked by a developer to test local changes.
+ It enables the ``Start``, ``Configure``, ``Build``, ``Test``, ``Coverage``,
+ and ``Submit`` steps by default.
+
+Dashboard Client via CTest Command-Line
+---------------------------------------
+
+CTest can perform testing on an already-generated build tree.
+Run the ``ctest`` command with the current working directory set
+to the build tree and use one of these signatures::
+
+ ctest -D <mode>[<step>]
+ ctest -M <mode> [ -T <step> ]...
+
+The ``<mode>`` must be one of the above `Dashboard Client Modes`_,
+and each ``<step>`` must be one of the above `Dashboard Client Steps`_.
+
+CTest reads the `Dashboard Client Configuration`_ settings from
+a file in the build tree called either ``CTestConfiguration.ini``
+or ``DartConfiguration.tcl`` (the names are historical). The format
+of the file is::
+
+ # Lines starting in '#' are comments.
+ # Other non-blank lines are key-value pairs.
+ <setting>: <value>
+
+where ``<setting>`` is the setting name and ``<value>`` is the
+setting value.
+
+In build trees generated by CMake, this configuration file is
+generated by the :module:`CTest` module if included by the project.
+The module uses variables to obtain a value for each setting
+as documented with the settings below.
+
+.. _`CTest Script`:
+
+Dashboard Client via CTest Script
+---------------------------------
+
+CTest can perform testing driven by a :manual:`cmake-language(7)`
+script that creates and maintains the source and build tree as
+well as performing the testing steps. Run the ``ctest`` command
+with the current working directory set outside of any build tree
+and use one of these signatures::
+
+ ctest -S <script>
+ ctest -SP <script>
+
+The ``<script>`` file must call :ref:`CTest Commands` commands
+to run testing steps explicitly as documented below. The commands
+obtain `Dashboard Client Configuration`_ settings from their
+arguments or from variables set in the script.
+
+Dashboard Client Configuration
+==============================
+
+The `Dashboard Client Steps`_ may be configured by named
+settings as documented in the following sections.
+
+.. _`CTest Start Step`:
+
+CTest Start Step
+----------------
+
+Start a new dashboard submission to be composed of results recorded
+by the following steps.
+
+In a `CTest Script`_, the :command:`ctest_start` command runs this step.
+Arguments to the command may specify some of the step settings.
+The command first runs the command-line specified by the
+``CTEST_CHECKOUT_COMMAND`` variable, if set, to initialize the source
+directory.
+
+Configuration settings include:
+
+``BuildDirectory``
+ The full path to the project build tree.
+
+ * `CTest Script`_ variable: :variable:`CTEST_BINARY_DIRECTORY`
+ * :module:`CTest` module variable: :variable:`PROJECT_BINARY_DIR`
+
+``SourceDirectory``
+ The full path to the project source tree.
+
+ * `CTest Script`_ variable: :variable:`CTEST_SOURCE_DIRECTORY`
+ * :module:`CTest` module variable: :variable:`PROJECT_SOURCE_DIR`
+
+.. _`CTest Update Step`:
+
+CTest Update Step
+-----------------
+
+In a `CTest Script`_, the :command:`ctest_update` command runs this step.
+Arguments to the command may specify some of the step settings.
+
+Configuration settings to specify the version control tool include:
+
+``BZRCommand``
+ ``bzr`` command-line tool to use if source tree is managed by Bazaar.
+
+ * `CTest Script`_ variable: :variable:`CTEST_BZR_COMMAND`
+ * :module:`CTest` module variable: none
+
+``BZRUpdateOptions``
+ Command-line options to the ``BZRCommand`` when updating the source.
+
+ * `CTest Script`_ variable: :variable:`CTEST_BZR_UPDATE_OPTIONS`
+ * :module:`CTest` module variable: none
+
+``CVSCommand``
+ ``cvs`` command-line tool to use if source tree is managed by CVS.
+
+ * `CTest Script`_ variable: :variable:`CTEST_CVS_COMMAND`
+ * :module:`CTest` module variable: ``CVSCOMMAND``
+
+``CVSUpdateOptions``
+ Command-line options to the ``CVSCommand`` when updating the source.
+
+ * `CTest Script`_ variable: :variable:`CTEST_CVS_UPDATE_OPTIONS`
+ * :module:`CTest` module variable: ``CVS_UPDATE_OPTIONS``
+
+``GITCommand``
+ ``git`` command-line tool to use if source tree is managed by Git.
+
+ * `CTest Script`_ variable: :variable:`CTEST_GIT_COMMAND`
+ * :module:`CTest` module variable: ``GITCOMMAND``
+
+ The source tree is updated by ``git fetch`` followed by
+ ``git reset --hard`` to the ``FETCH_HEAD``. The result is the same
+ as ``git pull`` except that any local modifications are overwritten.
+ Use ``GITUpdateCustom`` to specify a different approach.
+
+``GITInitSubmodules``
+ If set, CTest will update the repository's submodules before updating.
+
+ * `CTest Script`_ variable: :variable:`CTEST_GIT_INIT_SUBMODULES`
+ * :module:`CTest` module variable: ``CTEST_GIT_INIT_SUBMODULES``
+
+``GITUpdateCustom``
+ Specify a custom command line (as a semicolon-separated list) to run
+ in the source tree (Git work tree) to update it instead of running
+ the ``GITCommand``.
+
+ * `CTest Script`_ variable: :variable:`CTEST_GIT_UPDATE_CUSTOM`
+ * :module:`CTest` module variable: ``CTEST_GIT_UPDATE_CUSTOM``
+
+``GITUpdateOptions``
+ Command-line options to the ``GITCommand`` when updating the source.
+
+ * `CTest Script`_ variable: :variable:`CTEST_GIT_UPDATE_OPTIONS`
+ * :module:`CTest` module variable: ``GIT_UPDATE_OPTIONS``
+
+``HGCommand``
+ ``hg`` command-line tool to use if source tree is managed by Mercurial.
+
+ * `CTest Script`_ variable: :variable:`CTEST_HG_COMMAND`
+ * :module:`CTest` module variable: none
+
+``HGUpdateOptions``
+ Command-line options to the ``HGCommand`` when updating the source.
+
+ * `CTest Script`_ variable: :variable:`CTEST_HG_UPDATE_OPTIONS`
+ * :module:`CTest` module variable: none
+
+``P4Client``
+ Value of the ``-c`` option to the ``P4Command``.
+
+ * `CTest Script`_ variable: :variable:`CTEST_P4_CLIENT`
+ * :module:`CTest` module variable: ``CTEST_P4_CLIENT``
+
+``P4Command``
+ ``p4`` command-line tool to use if source tree is managed by Perforce.
+
+ * `CTest Script`_ variable: :variable:`CTEST_P4_COMMAND`
+ * :module:`CTest` module variable: ``P4COMMAND``
+
+``P4Options``
+ Command-line options to the ``P4Command`` for all invocations.
+
+ * `CTest Script`_ variable: :variable:`CTEST_P4_OPTIONS`
+ * :module:`CTest` module variable: ``CTEST_P4_OPTIONS``
+
+``P4UpdateCustom``
+ Specify a custom command line (as a semicolon-separated list) to run
+ in the source tree (Perforce tree) to update it instead of running
+ the ``P4Command``.
+
+ * `CTest Script`_ variable: none
+ * :module:`CTest` module variable: ``CTEST_P4_UPDATE_CUSTOM``
+
+``P4UpdateOptions``
+ Command-line options to the ``P4Command`` when updating the source.
+
+ * `CTest Script`_ variable: :variable:`CTEST_P4_UPDATE_OPTIONS`
+ * :module:`CTest` module variable: ``CTEST_P4_UPDATE_OPTIONS``
+
+``SVNCommand``
+ ``svn`` command-line tool to use if source tree is managed by Subversion.
+
+ * `CTest Script`_ variable: :variable:`CTEST_SVN_COMMAND`
+ * :module:`CTest` module variable: ``SVNCOMMAND``
+
+``SVNOptions``
+ Command-line options to the ``SVNCommand`` for all invocations.
+
+ * `CTest Script`_ variable: :variable:`CTEST_SVN_OPTIONS`
+ * :module:`CTest` module variable: ``CTEST_SVN_OPTIONS``
+
+``SVNUpdateOptions``
+ Command-line options to the ``SVNCommand`` when updating the source.
+
+ * `CTest Script`_ variable: :variable:`CTEST_SVN_UPDATE_OPTIONS`
+ * :module:`CTest` module variable: ``SVN_UPDATE_OPTIONS``
+
+``UpdateCommand``
+ Specify the version-control command-line tool to use without
+ detecting the VCS that manages the source tree.
+
+ * `CTest Script`_ variable: :variable:`CTEST_UPDATE_COMMAND`
+ * :module:`CTest` module variable: ``<VCS>COMMAND``
+ when ``UPDATE_TYPE`` is ``<vcs>``, else ``UPDATE_COMMAND``
+
+``UpdateOptions``
+ Command-line options to the ``UpdateCommand``.
+
+ * `CTest Script`_ variable: :variable:`CTEST_UPDATE_OPTIONS`
+ * :module:`CTest` module variable: ``<VCS>_UPDATE_OPTIONS``
+ when ``UPDATE_TYPE`` is ``<vcs>``, else ``UPDATE_OPTIONS``
+
+``UpdateType``
+ Specify the version-control system that manages the source
+ tree if it cannot be detected automatically.
+ The value may be ``bzr``, ``cvs``, ``git``, ``hg``,
+ ``p4``, or ``svn``.
+
+ * `CTest Script`_ variable: none, detected from source tree
+ * :module:`CTest` module variable: ``UPDATE_TYPE`` if set,
+ else ``CTEST_UPDATE_TYPE``
+
+.. _`UpdateVersionOnly`:
+
+``UpdateVersionOnly``
+ Specify that you want the version control update command to only
+ discover the current version that is checked out, and not to update
+ to a different version.
+
+ * `CTest Script`_ variable: :variable:`CTEST_UPDATE_VERSION_ONLY`
+
+.. _`UpdateVersionOverride`:
+
+``UpdateVersionOverride``
+ Specify the current version of your source tree.
+
+ When this variable is set to a non-empty string, CTest will report the value
+ you specified rather than using the update command to discover the current
+ version that is checked out. Use of this variable supersedes
+ ``UpdateVersionOnly``. Like ``UpdateVersionOnly``, using this variable tells
+ CTest not to update the source tree to a different version.
+
+ * `CTest Script`_ variable: :variable:`CTEST_UPDATE_VERSION_OVERRIDE`
+
+Additional configuration settings include:
+
+``NightlyStartTime``
+ In the ``Nightly`` dashboard mode, specify the "nightly start time".
+ With centralized version control systems (``cvs`` and ``svn``),
+ the ``Update`` step checks out the version of the software as of
+ this time so that multiple clients choose a common version to test.
+ This is not well-defined in distributed version-control systems so
+ the setting is ignored.
+
+ * `CTest Script`_ variable: :variable:`CTEST_NIGHTLY_START_TIME`
+ * :module:`CTest` module variable: ``NIGHTLY_START_TIME`` if set,
+ else ``CTEST_NIGHTLY_START_TIME``
+
+.. _`CTest Configure Step`:
+
+CTest Configure Step
+--------------------
+
+In a `CTest Script`_, the :command:`ctest_configure` command runs this step.
+Arguments to the command may specify some of the step settings.
+
+Configuration settings include:
+
+``ConfigureCommand``
+ Command-line to launch the software configuration process.
+ It will be executed in the location specified by the
+ ``BuildDirectory`` setting.
+
+ * `CTest Script`_ variable: :variable:`CTEST_CONFIGURE_COMMAND`
+ * :module:`CTest` module variable: :variable:`CMAKE_COMMAND`
+ followed by :variable:`PROJECT_SOURCE_DIR`
+
+``LabelsForSubprojects``
+ Specify a semicolon-separated list of labels that will be treated as
+ subprojects. This mapping will be passed on to CDash when configure, test or
+ build results are submitted.
+
+ * `CTest Script`_ variable: :variable:`CTEST_LABELS_FOR_SUBPROJECTS`
+ * :module:`CTest` module variable: ``CTEST_LABELS_FOR_SUBPROJECTS``
+
+ See `Label and Subproject Summary`_.
+
+.. _`CTest Build Step`:
+
+CTest Build Step
+----------------
+
+In a `CTest Script`_, the :command:`ctest_build` command runs this step.
+Arguments to the command may specify some of the step settings.
+
+Configuration settings include:
+
+``DefaultCTestConfigurationType``
+ When the build system to be launched allows build-time selection
+ of the configuration (e.g. ``Debug``, ``Release``), this specifies
+ the default configuration to be built when no ``-C`` option is
+ given to the ``ctest`` command. The value will be substituted into
+ the value of ``MakeCommand`` to replace the literal string
+ ``${CTEST_CONFIGURATION_TYPE}`` if it appears.
+
+ * `CTest Script`_ variable: :variable:`CTEST_CONFIGURATION_TYPE`
+ * :module:`CTest` module variable: ``DEFAULT_CTEST_CONFIGURATION_TYPE``,
+ initialized by the :envvar:`CMAKE_CONFIG_TYPE` environment variable
+
+``LabelsForSubprojects``
+ Specify a semicolon-separated list of labels that will be treated as
+ subprojects. This mapping will be passed on to CDash when configure, test or
+ build results are submitted.
+
+ * `CTest Script`_ variable: :variable:`CTEST_LABELS_FOR_SUBPROJECTS`
+ * :module:`CTest` module variable: ``CTEST_LABELS_FOR_SUBPROJECTS``
+
+ See `Label and Subproject Summary`_.
+
+``MakeCommand``
+ Command-line to launch the software build process.
+ It will be executed in the location specified by the
+ ``BuildDirectory`` setting.
+
+ * `CTest Script`_ variable: :variable:`CTEST_BUILD_COMMAND`
+ * :module:`CTest` module variable: ``MAKECOMMAND``,
+ initialized by the :command:`build_command` command
+
+``UseLaunchers``
+ For build trees generated by CMake using one of the
+ :ref:`Makefile Generators` or the :generator:`Ninja`
+ generator, specify whether the
+ ``CTEST_USE_LAUNCHERS`` feature is enabled by the
+ :module:`CTestUseLaunchers` module (also included by the
+ :module:`CTest` module). When enabled, the generated build
+ system wraps each invocation of the compiler, linker, or
+ custom command line with a "launcher" that communicates
+ with CTest via environment variables and files to report
+ granular build warning and error information. Otherwise,
+ CTest must "scrape" the build output log for diagnostics.
+
+ * `CTest Script`_ variable: :variable:`CTEST_USE_LAUNCHERS`
+ * :module:`CTest` module variable: ``CTEST_USE_LAUNCHERS``
+
+.. _`CTest Test Step`:
+
+CTest Test Step
+---------------
+
+In a `CTest Script`_, the :command:`ctest_test` command runs this step.
+Arguments to the command may specify some of the step settings.
+
+Configuration settings include:
+
+``ResourceSpecFile``
+ Specify a
+ :ref:`resource specification file <ctest-resource-specification-file>`. See
+ :ref:`ctest-resource-allocation` for more information.
+
+``LabelsForSubprojects``
+ Specify a semicolon-separated list of labels that will be treated as
+ subprojects. This mapping will be passed on to CDash when configure, test or
+ build results are submitted.
+
+ * `CTest Script`_ variable: :variable:`CTEST_LABELS_FOR_SUBPROJECTS`
+ * :module:`CTest` module variable: ``CTEST_LABELS_FOR_SUBPROJECTS``
+
+ See `Label and Subproject Summary`_.
+
+``TestLoad``
+ While running tests in parallel (e.g. with ``-j``), try not to start
+ tests when they may cause the CPU load to pass above a given threshold.
+
+ * `CTest Script`_ variable: :variable:`CTEST_TEST_LOAD`
+ * :module:`CTest` module variable: ``CTEST_TEST_LOAD``
+
+``TimeOut``
+ The default timeout for each test if not specified by the
+ :prop_test:`TIMEOUT` test property.
+
+ * `CTest Script`_ variable: :variable:`CTEST_TEST_TIMEOUT`
+ * :module:`CTest` module variable: ``DART_TESTING_TIMEOUT``
+
+.. _`CTest Coverage Step`:
+
+CTest Coverage Step
+-------------------
+
+In a `CTest Script`_, the :command:`ctest_coverage` command runs this step.
+Arguments to the command may specify some of the step settings.
+
+Configuration settings include:
+
+``CoverageCommand``
+ Command-line tool to perform software coverage analysis.
+ It will be executed in the location specified by the
+ ``BuildDirectory`` setting.
+
+ * `CTest Script`_ variable: :variable:`CTEST_COVERAGE_COMMAND`
+ * :module:`CTest` module variable: ``COVERAGE_COMMAND``
+
+``CoverageExtraFlags``
+ Specify command-line options to the ``CoverageCommand`` tool.
+
+ * `CTest Script`_ variable: :variable:`CTEST_COVERAGE_EXTRA_FLAGS`
+ * :module:`CTest` module variable: ``COVERAGE_EXTRA_FLAGS``
+
+ These options are the first arguments passed to ``CoverageCommand``.
+
+.. _`CTest MemCheck Step`:
+
+CTest MemCheck Step
+-------------------
+
+In a `CTest Script`_, the :command:`ctest_memcheck` command runs this step.
+Arguments to the command may specify some of the step settings.
+
+Configuration settings include:
+
+``MemoryCheckCommand``
+ Command-line tool to perform dynamic analysis. Test command lines
+ will be launched through this tool.
+
+ * `CTest Script`_ variable: :variable:`CTEST_MEMORYCHECK_COMMAND`
+ * :module:`CTest` module variable: ``MEMORYCHECK_COMMAND``
+
+``MemoryCheckCommandOptions``
+ Specify command-line options to the ``MemoryCheckCommand`` tool.
+ They will be placed prior to the test command line.
+
+ * `CTest Script`_ variable: :variable:`CTEST_MEMORYCHECK_COMMAND_OPTIONS`
+ * :module:`CTest` module variable: ``MEMORYCHECK_COMMAND_OPTIONS``
+
+``MemoryCheckType``
+ Specify the type of memory checking to perform.
+
+ * `CTest Script`_ variable: :variable:`CTEST_MEMORYCHECK_TYPE`
+ * :module:`CTest` module variable: ``MEMORYCHECK_TYPE``
+
+``MemoryCheckSanitizerOptions``
+ Specify options to sanitizers when running with a sanitize-enabled build.
+
+ * `CTest Script`_ variable: :variable:`CTEST_MEMORYCHECK_SANITIZER_OPTIONS`
+ * :module:`CTest` module variable: ``MEMORYCHECK_SANITIZER_OPTIONS``
+
+``MemoryCheckSuppressionFile``
+ Specify a file containing suppression rules for the
+ ``MemoryCheckCommand`` tool. It will be passed with options
+ appropriate to the tool.
+
+ * `CTest Script`_ variable: :variable:`CTEST_MEMORYCHECK_SUPPRESSIONS_FILE`
+ * :module:`CTest` module variable: ``MEMORYCHECK_SUPPRESSIONS_FILE``
+
+Additional configuration settings include:
+
+``BoundsCheckerCommand``
+ Specify a ``MemoryCheckCommand`` that is known to be command-line
+ compatible with Bounds Checker.
+
+ * `CTest Script`_ variable: none
+ * :module:`CTest` module variable: none
+
+``PurifyCommand``
+ Specify a ``MemoryCheckCommand`` that is known to be command-line
+ compatible with Purify.
+
+ * `CTest Script`_ variable: none
+ * :module:`CTest` module variable: ``PURIFYCOMMAND``
+
+``ValgrindCommand``
+ Specify a ``MemoryCheckCommand`` that is known to be command-line
+ compatible with Valgrind.
+
+ * `CTest Script`_ variable: none
+ * :module:`CTest` module variable: ``VALGRIND_COMMAND``
+
+``ValgrindCommandOptions``
+ Specify command-line options to the ``ValgrindCommand`` tool.
+ They will be placed prior to the test command line.
+
+ * `CTest Script`_ variable: none
+ * :module:`CTest` module variable: ``VALGRIND_COMMAND_OPTIONS``
+
+``DrMemoryCommand``
+ Specify a ``MemoryCheckCommand`` that is known to be a command-line
+ compatible with DrMemory.
+
+ * `CTest Script`_ variable: none
+ * :module:`CTest` module variable: ``DRMEMORY_COMMAND``
+
+``DrMemoryCommandOptions``
+ Specify command-line options to the ``DrMemoryCommand`` tool.
+ They will be placed prior to the test command line.
+
+ * `CTest Script`_ variable: none
+ * :module:`CTest` module variable: ``DRMEMORY_COMMAND_OPTIONS``
+
+.. _`CTest Submit Step`:
+
+CTest Submit Step
+-----------------
+
+In a `CTest Script`_, the :command:`ctest_submit` command runs this step.
+Arguments to the command may specify some of the step settings.
+
+Configuration settings include:
+
+``BuildName``
+ Describe the dashboard client platform with a short string.
+ (Operating system, compiler, etc.)
+
+ * `CTest Script`_ variable: :variable:`CTEST_BUILD_NAME`
+ * :module:`CTest` module variable: ``BUILDNAME``
+
+``CDashVersion``
+ Legacy option. Not used.
+
+ * `CTest Script`_ variable: none, detected from server
+ * :module:`CTest` module variable: ``CTEST_CDASH_VERSION``
+
+``CTestSubmitRetryCount``
+ Specify a number of attempts to retry submission on network failure.
+
+ * `CTest Script`_ variable: none,
+ use the :command:`ctest_submit` ``RETRY_COUNT`` option.
+ * :module:`CTest` module variable: ``CTEST_SUBMIT_RETRY_COUNT``
+
+``CTestSubmitRetryDelay``
+ Specify a delay before retrying submission on network failure.
+
+ * `CTest Script`_ variable: none,
+ use the :command:`ctest_submit` ``RETRY_DELAY`` option.
+ * :module:`CTest` module variable: ``CTEST_SUBMIT_RETRY_DELAY``
+
+``CurlOptions``
+ Specify a semicolon-separated list of options to control the
+ Curl library that CTest uses internally to connect to the
+ server. Possible options are ``CURLOPT_SSL_VERIFYPEER_OFF``
+ and ``CURLOPT_SSL_VERIFYHOST_OFF``.
+
+ * `CTest Script`_ variable: :variable:`CTEST_CURL_OPTIONS`
+ * :module:`CTest` module variable: ``CTEST_CURL_OPTIONS``
+
+``DropLocation``
+ Legacy option. When ``SubmitURL`` is not set, it is constructed from
+ ``DropMethod``, ``DropSiteUser``, ``DropSitePassword``, ``DropSite``, and
+ ``DropLocation``.
+
+ * `CTest Script`_ variable: :variable:`CTEST_DROP_LOCATION`
+ * :module:`CTest` module variable: ``DROP_LOCATION`` if set,
+ else ``CTEST_DROP_LOCATION``
+
+``DropMethod``
+ Legacy option. When ``SubmitURL`` is not set, it is constructed from
+ ``DropMethod``, ``DropSiteUser``, ``DropSitePassword``, ``DropSite``, and
+ ``DropLocation``.
+
+ * `CTest Script`_ variable: :variable:`CTEST_DROP_METHOD`
+ * :module:`CTest` module variable: ``DROP_METHOD`` if set,
+ else ``CTEST_DROP_METHOD``
+
+``DropSite``
+ Legacy option. When ``SubmitURL`` is not set, it is constructed from
+ ``DropMethod``, ``DropSiteUser``, ``DropSitePassword``, ``DropSite``, and
+ ``DropLocation``.
+
+ * `CTest Script`_ variable: :variable:`CTEST_DROP_SITE`
+ * :module:`CTest` module variable: ``DROP_SITE`` if set,
+ else ``CTEST_DROP_SITE``
+
+``DropSitePassword``
+ Legacy option. When ``SubmitURL`` is not set, it is constructed from
+ ``DropMethod``, ``DropSiteUser``, ``DropSitePassword``, ``DropSite``, and
+ ``DropLocation``.
+
+ * `CTest Script`_ variable: :variable:`CTEST_DROP_SITE_PASSWORD`
+ * :module:`CTest` module variable: ``DROP_SITE_PASSWORD`` if set,
+ else ``CTEST_DROP_SITE_PASWORD``
+
+``DropSiteUser``
+ Legacy option. When ``SubmitURL`` is not set, it is constructed from
+ ``DropMethod``, ``DropSiteUser``, ``DropSitePassword``, ``DropSite``, and
+ ``DropLocation``.
+
+ * `CTest Script`_ variable: :variable:`CTEST_DROP_SITE_USER`
+ * :module:`CTest` module variable: ``DROP_SITE_USER`` if set,
+ else ``CTEST_DROP_SITE_USER``
+
+``IsCDash``
+ Legacy option. Not used.
+
+ * `CTest Script`_ variable: :variable:`CTEST_DROP_SITE_CDASH`
+ * :module:`CTest` module variable: ``CTEST_DROP_SITE_CDASH``
+
+``ScpCommand``
+ Legacy option. Not used.
+
+ * `CTest Script`_ variable: :variable:`CTEST_SCP_COMMAND`
+ * :module:`CTest` module variable: ``SCPCOMMAND``
+
+``Site``
+ Describe the dashboard client host site with a short string.
+ (Hostname, domain, etc.)
+
+ * `CTest Script`_ variable: :variable:`CTEST_SITE`
+ * :module:`CTest` module variable: ``SITE``,
+ initialized by the :command:`site_name` command
+
+``SubmitURL``
+ The ``http`` or ``https`` URL of the dashboard server to send the submission
+ to.
+
+ * `CTest Script`_ variable: :variable:`CTEST_SUBMIT_URL`
+ * :module:`CTest` module variable: ``SUBMIT_URL`` if set,
+ else ``CTEST_SUBMIT_URL``
+
+``TriggerSite``
+ Legacy option. Not used.
+
+ * `CTest Script`_ variable: :variable:`CTEST_TRIGGER_SITE`
+ * :module:`CTest` module variable: ``TRIGGER_SITE`` if set,
+ else ``CTEST_TRIGGER_SITE``
+
+.. _`Show as JSON Object Model`:
+
+Show as JSON Object Model
+=========================
+
+When the ``--show-only=json-v1`` command line option is given, the test
+information is output in JSON format. Version 1.0 of the JSON object
+model is defined as follows:
+
+``kind``
+ The string "ctestInfo".
+
+``version``
+ A JSON object specifying the version components. Its members are
+
+ ``major``
+ A non-negative integer specifying the major version component.
+ ``minor``
+ A non-negative integer specifying the minor version component.
+
+``backtraceGraph``
+ JSON object representing backtrace information with the
+ following members:
+
+ ``commands``
+ List of command names.
+ ``files``
+ List of file names.
+ ``nodes``
+ List of node JSON objects with members:
+
+ ``command``
+ Index into the ``commands`` member of the ``backtraceGraph``.
+ ``file``
+ Index into the ``files`` member of the ``backtraceGraph``.
+ ``line``
+ Line number in the file where the backtrace was added.
+ ``parent``
+ Index into the ``nodes`` member of the ``backtraceGraph``
+ representing the parent in the graph.
+
+``tests``
+ A JSON array listing information about each test. Each entry
+ is a JSON object with members:
+
+ ``name``
+ Test name.
+ ``config``
+ Configuration that the test can run on.
+ Empty string means any config.
+ ``command``
+ List where the first element is the test command and the
+ remaining elements are the command arguments.
+ ``backtrace``
+ Index into the ``nodes`` member of the ``backtraceGraph``.
+ ``properties``
+ Test properties.
+ Can contain keys for each of the supported test properties.
+
+.. _`ctest-resource-allocation`:
+
+Resource Allocation
+===================
+
+CTest provides a mechanism for tests to specify the resources that they need
+in a fine-grained way, and for users to specify the resources availiable on
+the running machine. This allows CTest to internally keep track of which
+resources are in use and which are free, scheduling tests in a way that
+prevents them from trying to claim resources that are not available.
+
+When the resource allocation feature is used, CTest will not oversubscribe
+resources. For example, if a resource has 8 slots, CTest will not run tests
+that collectively use more than 8 slots at a time. This has the effect of
+limiting how many tests can run at any given time, even if a high ``-j``
+argument is used, if those tests all use some slots from the same resource.
+In addition, it means that a single test that uses more of a resource than is
+available on a machine will not run at all (and will be reported as
+``Not Run``).
+
+A common use case for this feature is for tests that require the use of a GPU.
+Multiple tests can simultaneously allocate memory from a GPU, but if too many
+tests try to do this at once, some of them will fail to allocate, resulting in
+a failed test, even though the test would have succeeded if it had the memory
+it needed. By using the resource allocation feature, each test can specify how
+much memory it requires from a GPU, allowing CTest to schedule tests in a way
+that running several of these tests at once does not exhaust the GPU's memory
+pool.
+
+Please note that CTest has no concept of what a GPU is or how much memory it
+has, nor does it have any way of communicating with a GPU to retrieve this
+information or perform any memory management. CTest simply keeps track of a
+list of abstract resource types, each of which has a certain number of slots
+available for tests to use. Each test specifies the number of slots that it
+requires from a certain resource, and CTest then schedules them in a way that
+prevents the total number of slots in use from exceeding the listed capacity.
+When a test is executed, and slots from a resource are allocated to that test,
+tests may assume that they have exclusive use of those slots for the duration
+of the test's process.
+
+The CTest resource allocation feature consists of two inputs:
+
+* The :ref:`resource specification file <ctest-resource-specification-file>`,
+ described below, which describes the resources available on the system.
+* The :prop_test:`RESOURCE_GROUPS` property of tests, which describes the
+ resources required by the test.
+
+When CTest runs a test, the resources allocated to that test are passed in the
+form of a set of
+:ref:`environment variables <ctest-resource-environment-variables>` as
+described below. Using this information to decide which resource to connect to
+is left to the test writer.
+
+The ``RESOURCE_GROUPS`` property tells CTest what resources a test expects
+to use grouped in a way meaningful to the test. The test itself must read
+the :ref:`environment variables <ctest-resource-environment-variables>` to
+determine which resources have been allocated to each group. For example,
+each group may correspond to a process the test will spawn when executed.
+
+Note that even if a test specifies a ``RESOURCE_GROUPS`` property, it is still
+possible for that to test to run without any resource allocation (and without
+the corresponding
+:ref:`environment variables <ctest-resource-environment-variables>`)
+if the user does not pass a resource specification file. Passing this file,
+either through the ``--resource-spec-file`` command-line argument or the
+``RESOURCE_SPEC_FILE`` argument to :command:`ctest_test`, is what activates the
+resource allocation feature. Tests should check the
+``CTEST_RESOURCE_GROUP_COUNT`` environment variable to find out whether or not
+resource allocation is activated. This variable will always (and only) be
+defined if resource allocation is activated. If resource allocation is not
+activated, then the ``CTEST_RESOURCE_GROUP_COUNT`` variable will not exist,
+even if it exists for the parent ``ctest`` process. If a test absolutely must
+have resource allocation, then it can return a failing exit code or use the
+:prop_test:`SKIP_RETURN_CODE` or :prop_test:`SKIP_REGULAR_EXPRESSION`
+properties to indicate a skipped test.
+
+.. _`ctest-resource-specification-file`:
+
+Resource Specification File
+---------------------------
+
+The resource specification file is a JSON file which is passed to CTest, either
+on the :manual:`ctest(1)` command line as ``--resource-spec-file``, or as the
+``RESOURCE_SPEC_FILE`` argument of :command:`ctest_test`. The resource
+specification file must be a JSON object. All examples in this document assume
+the following resource specification file:
+
+.. code-block:: json
+
+ {
+ "version": {
+ "major": 1,
+ "minor": 0
+ },
+ "local": [
+ {
+ "gpus": [
+ {
+ "id": "0",
+ "slots": 2
+ },
+ {
+ "id": "1",
+ "slots": 4
+ },
+ {
+ "id": "2",
+ "slots": 2
+ },
+ {
+ "id": "3"
+ }
+ ],
+ "crypto_chips": [
+ {
+ "id": "card0",
+ "slots": 4
+ }
+ ]
+ }
+ ]
+ }
+
+The members are:
+
+``version``
+ An object containing a ``major`` integer field and a ``minor`` integer field.
+ Currently, the only supported version is major ``1``, minor ``0``. Any other
+ value is an error.
+
+``local``
+ A JSON array of resource sets present on the system. Currently, this array
+ is restricted to being of size 1.
+
+ Each array element is a JSON object with members whose names are equal to the
+ desired resource types, such as ``gpus``. These names must start with a
+ lowercase letter or an underscore, and subsequent characters can be a
+ lowercase letter, a digit, or an underscore. Uppercase letters are not
+ allowed, because certain platforms have case-insensitive environment
+ variables. See the `Environment Variables`_ section below for
+ more information. It is recommended that the resource type name be the plural
+ of a noun, such as ``gpus`` or ``crypto_chips`` (and not ``gpu`` or
+ ``crypto_chip``.)
+
+ Please note that the names ``gpus`` and ``crypto_chips`` are just examples,
+ and CTest does not interpret them in any way. You are free to make up any
+ resource type you want to meet your own requirements.
+
+ The value for each resource type is a JSON array consisting of JSON objects,
+ each of which describe a specific instance of the specified resource. These
+ objects have the following members:
+
+ ``id``
+ A string consisting of an identifier for the resource. Each character in
+ the identifier can be a lowercase letter, a digit, or an underscore.
+ Uppercase letters are not allowed.
+
+ Identifiers must be unique within a resource type. However, they do not
+ have to be unique across resource types. For example, it is valid to have a
+ ``gpus`` resource named ``0`` and a ``crypto_chips`` resource named ``0``,
+ but not two ``gpus`` resources both named ``0``.
+
+ Please note that the IDs ``0``, ``1``, ``2``, ``3``, and ``card0`` are just
+ examples, and CTest does not interpret them in any way. You are free to
+ make up any IDs you want to meet your own requirements.
+
+ ``slots``
+ An optional unsigned number specifying the number of slots available on the
+ resource. For example, this could be megabytes of RAM on a GPU, or
+ cryptography units available on a cryptography chip. If ``slots`` is not
+ specified, a default value of ``1`` is assumed.
+
+In the example file above, there are four GPUs with ID's 0 through 3. GPU 0 has
+2 slots, GPU 1 has 4, GPU 2 has 2, and GPU 3 has a default of 1 slot. There is
+also one cryptography chip with 4 slots.
+
+``RESOURCE_GROUPS`` Property
+----------------------------
+
+See :prop_test:`RESOURCE_GROUPS` for a description of this property.
+
+.. _`ctest-resource-environment-variables`:
+
+Environment Variables
+---------------------
+
+Once CTest has decided which resources to allocate to a test, it passes this
+information to the test executable as a series of environment variables. For
+each example below, we will assume that the test in question has a
+:prop_test:`RESOURCE_GROUPS` property of
+``2,gpus:2;gpus:4,gpus:1,crypto_chips:2``.
+
+The following variables are passed to the test process:
+
+.. envvar:: CTEST_RESOURCE_GROUP_COUNT
+
+ The total number of groups specified by the :prop_test:`RESOURCE_GROUPS`
+ property. For example:
+
+ * ``CTEST_RESOURCE_GROUP_COUNT=3``
+
+ This variable will only be defined if :manual:`ctest(1)` has been given a
+ ``--resource-spec-file``, or if :command:`ctest_test` has been given a
+ ``RESOURCE_SPEC_FILE``. If no resource specification file has been given,
+ this variable will not be defined.
+
+.. envvar:: CTEST_RESOURCE_GROUP_<num>
+
+ The list of resource types allocated to each group, with each item
+ separated by a comma. ``<num>`` is a number from zero to
+ ``CTEST_RESOURCE_GROUP_COUNT`` minus one. ``CTEST_RESOURCE_GROUP_<num>``
+ is defined for each ``<num>`` in this range. For example:
+
+ * ``CTEST_RESOURCE_GROUP_0=gpus``
+ * ``CTEST_RESOURCE_GROUP_1=gpus``
+ * ``CTEST_RESOURCE_GROUP_2=crypto_chips,gpus``
+
+.. envvar:: CTEST_RESOURCE_GROUP_<num>_<resource-type>
+
+ The list of resource IDs and number of slots from each ID allocated to each
+ group for a given resource type. This variable consists of a series of
+ pairs, each pair separated by a semicolon, and with the two items in the pair
+ separated by a comma. The first item in each pair is ``id:`` followed by the
+ ID of a resource of type ``<resource-type>``, and the second item is
+ ``slots:`` followed by the number of slots from that resource allocated to
+ the given group. For example:
+
+ * ``CTEST_RESOURCE_GROUP_0_GPUS=id:0,slots:2``
+ * ``CTEST_RESOURCE_GROUP_1_GPUS=id:2,slots:2``
+ * ``CTEST_RESOURCE_GROUP_2_GPUS=id:1,slots:4;id:3,slots:1``
+ * ``CTEST_RESOURCE_GROUP_2_CRYPTO_CHIPS=id:card0,slots:2``
+
+ In this example, group 0 gets 2 slots from GPU ``0``, group 1 gets 2 slots
+ from GPU ``2``, and group 2 gets 4 slots from GPU ``1``, 1 slot from GPU
+ ``3``, and 2 slots from cryptography chip ``card0``.
+
+ ``<num>`` is a number from zero to ``CTEST_RESOURCE_GROUP_COUNT`` minus one.
+ ``<resource-type>`` is the name of a resource type, converted to uppercase.
+ ``CTEST_RESOURCE_GROUP_<num>_<resource-type>`` is defined for the product
+ of each ``<num>`` in the range listed above and each resource type listed in
+ ``CTEST_RESOURCE_GROUP_<num>``.
+
+ Because some platforms have case-insensitive names for environment variables,
+ the names of resource types may not clash in a case-insensitive environment.
+ Because of this, for the sake of simplicity, all resource types must be
+ listed in all lowercase in the
+ :ref:`resource specification file <ctest-resource-specification-file>` and
+ in the :prop_test:`RESOURCE_GROUPS` property, and they are converted to all
+ uppercase in the ``CTEST_RESOURCE_GROUP_<num>_<resource-type>`` environment
+ variable.
+
+See Also
+========
+
+.. include:: LINKS.txt
+
+.. _`CDash`: http://cdash.org/
diff --git a/share/cmake-3.16/Help/module/AddFileDependencies.rst b/share/cmake-3.17/Help/module/AddFileDependencies.rst
index 3cbce33..3cbce33 100644
--- a/share/cmake-3.16/Help/module/AddFileDependencies.rst
+++ b/share/cmake-3.17/Help/module/AddFileDependencies.rst
diff --git a/share/cmake-3.16/Help/module/AndroidTestUtilities.rst b/share/cmake-3.17/Help/module/AndroidTestUtilities.rst
index e7ec864..e7ec864 100644
--- a/share/cmake-3.16/Help/module/AndroidTestUtilities.rst
+++ b/share/cmake-3.17/Help/module/AndroidTestUtilities.rst
diff --git a/share/cmake-3.16/Help/module/BundleUtilities.rst b/share/cmake-3.17/Help/module/BundleUtilities.rst
index 5d9c840..5d9c840 100644
--- a/share/cmake-3.16/Help/module/BundleUtilities.rst
+++ b/share/cmake-3.17/Help/module/BundleUtilities.rst
diff --git a/share/cmake-3.16/Help/module/CMakeAddFortranSubdirectory.rst b/share/cmake-3.17/Help/module/CMakeAddFortranSubdirectory.rst
index 9abf571..9abf571 100644
--- a/share/cmake-3.16/Help/module/CMakeAddFortranSubdirectory.rst
+++ b/share/cmake-3.17/Help/module/CMakeAddFortranSubdirectory.rst
diff --git a/share/cmake-3.16/Help/module/CMakeBackwardCompatibilityCXX.rst b/share/cmake-3.17/Help/module/CMakeBackwardCompatibilityCXX.rst
index 05e5f4a..05e5f4a 100644
--- a/share/cmake-3.16/Help/module/CMakeBackwardCompatibilityCXX.rst
+++ b/share/cmake-3.17/Help/module/CMakeBackwardCompatibilityCXX.rst
diff --git a/share/cmake-3.16/Help/module/CMakeDependentOption.rst b/share/cmake-3.17/Help/module/CMakeDependentOption.rst
index fd071b5..fd071b5 100644
--- a/share/cmake-3.16/Help/module/CMakeDependentOption.rst
+++ b/share/cmake-3.17/Help/module/CMakeDependentOption.rst
diff --git a/share/cmake-3.16/Help/module/CMakeDetermineVSServicePack.rst b/share/cmake-3.17/Help/module/CMakeDetermineVSServicePack.rst
index 1768533..1768533 100644
--- a/share/cmake-3.16/Help/module/CMakeDetermineVSServicePack.rst
+++ b/share/cmake-3.17/Help/module/CMakeDetermineVSServicePack.rst
diff --git a/share/cmake-3.16/Help/module/CMakeExpandImportedTargets.rst b/share/cmake-3.17/Help/module/CMakeExpandImportedTargets.rst
index 1084280..1084280 100644
--- a/share/cmake-3.16/Help/module/CMakeExpandImportedTargets.rst
+++ b/share/cmake-3.17/Help/module/CMakeExpandImportedTargets.rst
diff --git a/share/cmake-3.16/Help/module/CMakeFindDependencyMacro.rst b/share/cmake-3.17/Help/module/CMakeFindDependencyMacro.rst
index 5b5b550..5b5b550 100644
--- a/share/cmake-3.16/Help/module/CMakeFindDependencyMacro.rst
+++ b/share/cmake-3.17/Help/module/CMakeFindDependencyMacro.rst
diff --git a/share/cmake-3.16/Help/module/CMakeFindFrameworks.rst b/share/cmake-3.17/Help/module/CMakeFindFrameworks.rst
index c2c219b..c2c219b 100644
--- a/share/cmake-3.16/Help/module/CMakeFindFrameworks.rst
+++ b/share/cmake-3.17/Help/module/CMakeFindFrameworks.rst
diff --git a/share/cmake-3.16/Help/module/CMakeFindPackageMode.rst b/share/cmake-3.17/Help/module/CMakeFindPackageMode.rst
index d099d19..d099d19 100644
--- a/share/cmake-3.16/Help/module/CMakeFindPackageMode.rst
+++ b/share/cmake-3.17/Help/module/CMakeFindPackageMode.rst
diff --git a/share/cmake-3.16/Help/module/CMakeForceCompiler.rst b/share/cmake-3.17/Help/module/CMakeForceCompiler.rst
index 3277426..3277426 100644
--- a/share/cmake-3.16/Help/module/CMakeForceCompiler.rst
+++ b/share/cmake-3.17/Help/module/CMakeForceCompiler.rst
diff --git a/share/cmake-3.16/Help/module/CMakeGraphVizOptions.rst b/share/cmake-3.17/Help/module/CMakeGraphVizOptions.rst
index 2cd97b3..2cd97b3 100644
--- a/share/cmake-3.16/Help/module/CMakeGraphVizOptions.rst
+++ b/share/cmake-3.17/Help/module/CMakeGraphVizOptions.rst
diff --git a/share/cmake-3.16/Help/module/CMakePackageConfigHelpers.rst b/share/cmake-3.17/Help/module/CMakePackageConfigHelpers.rst
index a291aff..a291aff 100644
--- a/share/cmake-3.16/Help/module/CMakePackageConfigHelpers.rst
+++ b/share/cmake-3.17/Help/module/CMakePackageConfigHelpers.rst
diff --git a/share/cmake-3.16/Help/module/CMakeParseArguments.rst b/share/cmake-3.17/Help/module/CMakeParseArguments.rst
index 810a9dd..810a9dd 100644
--- a/share/cmake-3.16/Help/module/CMakeParseArguments.rst
+++ b/share/cmake-3.17/Help/module/CMakeParseArguments.rst
diff --git a/share/cmake-3.16/Help/module/CMakePrintHelpers.rst b/share/cmake-3.17/Help/module/CMakePrintHelpers.rst
index a75a34f..a75a34f 100644
--- a/share/cmake-3.16/Help/module/CMakePrintHelpers.rst
+++ b/share/cmake-3.17/Help/module/CMakePrintHelpers.rst
diff --git a/share/cmake-3.16/Help/module/CMakePrintSystemInformation.rst b/share/cmake-3.17/Help/module/CMakePrintSystemInformation.rst
index 0b5d848..0b5d848 100644
--- a/share/cmake-3.16/Help/module/CMakePrintSystemInformation.rst
+++ b/share/cmake-3.17/Help/module/CMakePrintSystemInformation.rst
diff --git a/share/cmake-3.16/Help/module/CMakePushCheckState.rst b/share/cmake-3.17/Help/module/CMakePushCheckState.rst
index e897929..e897929 100644
--- a/share/cmake-3.16/Help/module/CMakePushCheckState.rst
+++ b/share/cmake-3.17/Help/module/CMakePushCheckState.rst
diff --git a/share/cmake-3.16/Help/module/CMakeVerifyManifest.rst b/share/cmake-3.17/Help/module/CMakeVerifyManifest.rst
index eeff1bf..eeff1bf 100644
--- a/share/cmake-3.16/Help/module/CMakeVerifyManifest.rst
+++ b/share/cmake-3.17/Help/module/CMakeVerifyManifest.rst
diff --git a/share/cmake-3.16/Help/module/CPack.rst b/share/cmake-3.17/Help/module/CPack.rst
index bfbda1f..bfbda1f 100644
--- a/share/cmake-3.16/Help/module/CPack.rst
+++ b/share/cmake-3.17/Help/module/CPack.rst
diff --git a/share/cmake-3.16/Help/module/CPackArchive.rst b/share/cmake-3.17/Help/module/CPackArchive.rst
index 8616098..8616098 100644
--- a/share/cmake-3.16/Help/module/CPackArchive.rst
+++ b/share/cmake-3.17/Help/module/CPackArchive.rst
diff --git a/share/cmake-3.16/Help/module/CPackBundle.rst b/share/cmake-3.17/Help/module/CPackBundle.rst
index 5134884..5134884 100644
--- a/share/cmake-3.16/Help/module/CPackBundle.rst
+++ b/share/cmake-3.17/Help/module/CPackBundle.rst
diff --git a/share/cmake-3.16/Help/module/CPackComponent.rst b/share/cmake-3.17/Help/module/CPackComponent.rst
index df82836..df82836 100644
--- a/share/cmake-3.16/Help/module/CPackComponent.rst
+++ b/share/cmake-3.17/Help/module/CPackComponent.rst
diff --git a/share/cmake-3.16/Help/module/CPackCygwin.rst b/share/cmake-3.17/Help/module/CPackCygwin.rst
index 719dfce..719dfce 100644
--- a/share/cmake-3.16/Help/module/CPackCygwin.rst
+++ b/share/cmake-3.17/Help/module/CPackCygwin.rst
diff --git a/share/cmake-3.16/Help/module/CPackDMG.rst b/share/cmake-3.17/Help/module/CPackDMG.rst
index e59dcbb..e59dcbb 100644
--- a/share/cmake-3.16/Help/module/CPackDMG.rst
+++ b/share/cmake-3.17/Help/module/CPackDMG.rst
diff --git a/share/cmake-3.16/Help/module/CPackDeb.rst b/share/cmake-3.17/Help/module/CPackDeb.rst
index cd7e5f3..cd7e5f3 100644
--- a/share/cmake-3.16/Help/module/CPackDeb.rst
+++ b/share/cmake-3.17/Help/module/CPackDeb.rst
diff --git a/share/cmake-3.16/Help/module/CPackFreeBSD.rst b/share/cmake-3.17/Help/module/CPackFreeBSD.rst
index 69701b8..69701b8 100644
--- a/share/cmake-3.16/Help/module/CPackFreeBSD.rst
+++ b/share/cmake-3.17/Help/module/CPackFreeBSD.rst
diff --git a/share/cmake-3.16/Help/module/CPackIFW.rst b/share/cmake-3.17/Help/module/CPackIFW.rst
index ea05796..ea05796 100644
--- a/share/cmake-3.16/Help/module/CPackIFW.rst
+++ b/share/cmake-3.17/Help/module/CPackIFW.rst
diff --git a/share/cmake-3.16/Help/module/CPackIFWConfigureFile.rst b/share/cmake-3.17/Help/module/CPackIFWConfigureFile.rst
index e88517c..e88517c 100644
--- a/share/cmake-3.16/Help/module/CPackIFWConfigureFile.rst
+++ b/share/cmake-3.17/Help/module/CPackIFWConfigureFile.rst
diff --git a/share/cmake-3.16/Help/module/CPackNSIS.rst b/share/cmake-3.17/Help/module/CPackNSIS.rst
index 2cb407a..2cb407a 100644
--- a/share/cmake-3.16/Help/module/CPackNSIS.rst
+++ b/share/cmake-3.17/Help/module/CPackNSIS.rst
diff --git a/share/cmake-3.16/Help/module/CPackNuGet.rst b/share/cmake-3.17/Help/module/CPackNuGet.rst
index 4f39b3a..4f39b3a 100644
--- a/share/cmake-3.16/Help/module/CPackNuGet.rst
+++ b/share/cmake-3.17/Help/module/CPackNuGet.rst
diff --git a/share/cmake-3.16/Help/module/CPackPackageMaker.rst b/share/cmake-3.17/Help/module/CPackPackageMaker.rst
index 226b6fd..226b6fd 100644
--- a/share/cmake-3.16/Help/module/CPackPackageMaker.rst
+++ b/share/cmake-3.17/Help/module/CPackPackageMaker.rst
diff --git a/share/cmake-3.16/Help/module/CPackProductBuild.rst b/share/cmake-3.17/Help/module/CPackProductBuild.rst
index 8cd9198..8cd9198 100644
--- a/share/cmake-3.16/Help/module/CPackProductBuild.rst
+++ b/share/cmake-3.17/Help/module/CPackProductBuild.rst
diff --git a/share/cmake-3.16/Help/module/CPackRPM.rst b/share/cmake-3.17/Help/module/CPackRPM.rst
index 00b7e0a..00b7e0a 100644
--- a/share/cmake-3.16/Help/module/CPackRPM.rst
+++ b/share/cmake-3.17/Help/module/CPackRPM.rst
diff --git a/share/cmake-3.16/Help/module/CPackWIX.rst b/share/cmake-3.17/Help/module/CPackWIX.rst
index fd378b8..fd378b8 100644
--- a/share/cmake-3.16/Help/module/CPackWIX.rst
+++ b/share/cmake-3.17/Help/module/CPackWIX.rst
diff --git a/share/cmake-3.16/Help/module/CSharpUtilities.rst b/share/cmake-3.17/Help/module/CSharpUtilities.rst
index 3621bbc..3621bbc 100644
--- a/share/cmake-3.16/Help/module/CSharpUtilities.rst
+++ b/share/cmake-3.17/Help/module/CSharpUtilities.rst
diff --git a/share/cmake-3.16/Help/module/CTest.rst b/share/cmake-3.17/Help/module/CTest.rst
index 11a6af7..11a6af7 100644
--- a/share/cmake-3.16/Help/module/CTest.rst
+++ b/share/cmake-3.17/Help/module/CTest.rst
diff --git a/share/cmake-3.16/Help/module/CTestCoverageCollectGCOV.rst b/share/cmake-3.17/Help/module/CTestCoverageCollectGCOV.rst
index 4c5deca..4c5deca 100644
--- a/share/cmake-3.16/Help/module/CTestCoverageCollectGCOV.rst
+++ b/share/cmake-3.17/Help/module/CTestCoverageCollectGCOV.rst
diff --git a/share/cmake-3.16/Help/module/CTestScriptMode.rst b/share/cmake-3.17/Help/module/CTestScriptMode.rst
index be1b044..be1b044 100644
--- a/share/cmake-3.16/Help/module/CTestScriptMode.rst
+++ b/share/cmake-3.17/Help/module/CTestScriptMode.rst
diff --git a/share/cmake-3.16/Help/module/CTestUseLaunchers.rst b/share/cmake-3.17/Help/module/CTestUseLaunchers.rst
index 688da08..688da08 100644
--- a/share/cmake-3.16/Help/module/CTestUseLaunchers.rst
+++ b/share/cmake-3.17/Help/module/CTestUseLaunchers.rst
diff --git a/share/cmake-3.16/Help/module/CheckCCompilerFlag.rst b/share/cmake-3.17/Help/module/CheckCCompilerFlag.rst
index 1be1491..1be1491 100644
--- a/share/cmake-3.16/Help/module/CheckCCompilerFlag.rst
+++ b/share/cmake-3.17/Help/module/CheckCCompilerFlag.rst
diff --git a/share/cmake-3.16/Help/module/CheckCSourceCompiles.rst b/share/cmake-3.17/Help/module/CheckCSourceCompiles.rst
index 1fa02f9..1fa02f9 100644
--- a/share/cmake-3.16/Help/module/CheckCSourceCompiles.rst
+++ b/share/cmake-3.17/Help/module/CheckCSourceCompiles.rst
diff --git a/share/cmake-3.16/Help/module/CheckCSourceRuns.rst b/share/cmake-3.17/Help/module/CheckCSourceRuns.rst
index 16b47e6..16b47e6 100644
--- a/share/cmake-3.16/Help/module/CheckCSourceRuns.rst
+++ b/share/cmake-3.17/Help/module/CheckCSourceRuns.rst
diff --git a/share/cmake-3.16/Help/module/CheckCXXCompilerFlag.rst b/share/cmake-3.17/Help/module/CheckCXXCompilerFlag.rst
index cfd1f45..cfd1f45 100644
--- a/share/cmake-3.16/Help/module/CheckCXXCompilerFlag.rst
+++ b/share/cmake-3.17/Help/module/CheckCXXCompilerFlag.rst
diff --git a/share/cmake-3.16/Help/module/CheckCXXSourceCompiles.rst b/share/cmake-3.17/Help/module/CheckCXXSourceCompiles.rst
index d701c4e..d701c4e 100644
--- a/share/cmake-3.16/Help/module/CheckCXXSourceCompiles.rst
+++ b/share/cmake-3.17/Help/module/CheckCXXSourceCompiles.rst
diff --git a/share/cmake-3.16/Help/module/CheckCXXSourceRuns.rst b/share/cmake-3.17/Help/module/CheckCXXSourceRuns.rst
index caab975..caab975 100644
--- a/share/cmake-3.16/Help/module/CheckCXXSourceRuns.rst
+++ b/share/cmake-3.17/Help/module/CheckCXXSourceRuns.rst
diff --git a/share/cmake-3.16/Help/module/CheckCXXSymbolExists.rst b/share/cmake-3.17/Help/module/CheckCXXSymbolExists.rst
index fc192e8..fc192e8 100644
--- a/share/cmake-3.16/Help/module/CheckCXXSymbolExists.rst
+++ b/share/cmake-3.17/Help/module/CheckCXXSymbolExists.rst
diff --git a/share/cmake-3.16/Help/module/CheckFortranCompilerFlag.rst b/share/cmake-3.17/Help/module/CheckFortranCompilerFlag.rst
index 58bf6ec..58bf6ec 100644
--- a/share/cmake-3.16/Help/module/CheckFortranCompilerFlag.rst
+++ b/share/cmake-3.17/Help/module/CheckFortranCompilerFlag.rst
diff --git a/share/cmake-3.16/Help/module/CheckFortranFunctionExists.rst b/share/cmake-3.17/Help/module/CheckFortranFunctionExists.rst
index 3395d05..3395d05 100644
--- a/share/cmake-3.16/Help/module/CheckFortranFunctionExists.rst
+++ b/share/cmake-3.17/Help/module/CheckFortranFunctionExists.rst
diff --git a/share/cmake-3.16/Help/module/CheckFortranSourceCompiles.rst b/share/cmake-3.17/Help/module/CheckFortranSourceCompiles.rst
index b749a2a..b749a2a 100644
--- a/share/cmake-3.16/Help/module/CheckFortranSourceCompiles.rst
+++ b/share/cmake-3.17/Help/module/CheckFortranSourceCompiles.rst
diff --git a/share/cmake-3.16/Help/module/CheckFortranSourceRuns.rst b/share/cmake-3.17/Help/module/CheckFortranSourceRuns.rst
index a1bff70..a1bff70 100644
--- a/share/cmake-3.16/Help/module/CheckFortranSourceRuns.rst
+++ b/share/cmake-3.17/Help/module/CheckFortranSourceRuns.rst
diff --git a/share/cmake-3.16/Help/module/CheckFunctionExists.rst b/share/cmake-3.17/Help/module/CheckFunctionExists.rst
index ed89dc4..ed89dc4 100644
--- a/share/cmake-3.16/Help/module/CheckFunctionExists.rst
+++ b/share/cmake-3.17/Help/module/CheckFunctionExists.rst
diff --git a/share/cmake-3.16/Help/module/CheckIPOSupported.rst b/share/cmake-3.17/Help/module/CheckIPOSupported.rst
index 9c8a77b..9c8a77b 100644
--- a/share/cmake-3.16/Help/module/CheckIPOSupported.rst
+++ b/share/cmake-3.17/Help/module/CheckIPOSupported.rst
diff --git a/share/cmake-3.16/Help/module/CheckIncludeFile.rst b/share/cmake-3.17/Help/module/CheckIncludeFile.rst
index 6b83108..6b83108 100644
--- a/share/cmake-3.16/Help/module/CheckIncludeFile.rst
+++ b/share/cmake-3.17/Help/module/CheckIncludeFile.rst
diff --git a/share/cmake-3.16/Help/module/CheckIncludeFileCXX.rst b/share/cmake-3.17/Help/module/CheckIncludeFileCXX.rst
index fdbf39f..fdbf39f 100644
--- a/share/cmake-3.16/Help/module/CheckIncludeFileCXX.rst
+++ b/share/cmake-3.17/Help/module/CheckIncludeFileCXX.rst
diff --git a/share/cmake-3.16/Help/module/CheckIncludeFiles.rst b/share/cmake-3.17/Help/module/CheckIncludeFiles.rst
index b56f145..b56f145 100644
--- a/share/cmake-3.16/Help/module/CheckIncludeFiles.rst
+++ b/share/cmake-3.17/Help/module/CheckIncludeFiles.rst
diff --git a/share/cmake-3.16/Help/module/CheckLanguage.rst b/share/cmake-3.17/Help/module/CheckLanguage.rst
index 16f1a3f..16f1a3f 100644
--- a/share/cmake-3.16/Help/module/CheckLanguage.rst
+++ b/share/cmake-3.17/Help/module/CheckLanguage.rst
diff --git a/share/cmake-3.16/Help/module/CheckLibraryExists.rst b/share/cmake-3.17/Help/module/CheckLibraryExists.rst
index 7512f46..7512f46 100644
--- a/share/cmake-3.16/Help/module/CheckLibraryExists.rst
+++ b/share/cmake-3.17/Help/module/CheckLibraryExists.rst
diff --git a/share/cmake-3.16/Help/module/CheckOBJCCompilerFlag.rst b/share/cmake-3.17/Help/module/CheckOBJCCompilerFlag.rst
index e4bd6fd..e4bd6fd 100644
--- a/share/cmake-3.16/Help/module/CheckOBJCCompilerFlag.rst
+++ b/share/cmake-3.17/Help/module/CheckOBJCCompilerFlag.rst
diff --git a/share/cmake-3.16/Help/module/CheckOBJCSourceCompiles.rst b/share/cmake-3.17/Help/module/CheckOBJCSourceCompiles.rst
index d4a1484..d4a1484 100644
--- a/share/cmake-3.16/Help/module/CheckOBJCSourceCompiles.rst
+++ b/share/cmake-3.17/Help/module/CheckOBJCSourceCompiles.rst
diff --git a/share/cmake-3.16/Help/module/CheckOBJCSourceRuns.rst b/share/cmake-3.17/Help/module/CheckOBJCSourceRuns.rst
index c72f0db..c72f0db 100644
--- a/share/cmake-3.16/Help/module/CheckOBJCSourceRuns.rst
+++ b/share/cmake-3.17/Help/module/CheckOBJCSourceRuns.rst
diff --git a/share/cmake-3.16/Help/module/CheckOBJCXXCompilerFlag.rst b/share/cmake-3.17/Help/module/CheckOBJCXXCompilerFlag.rst
index 1518a48..1518a48 100644
--- a/share/cmake-3.16/Help/module/CheckOBJCXXCompilerFlag.rst
+++ b/share/cmake-3.17/Help/module/CheckOBJCXXCompilerFlag.rst
diff --git a/share/cmake-3.16/Help/module/CheckOBJCXXSourceCompiles.rst b/share/cmake-3.17/Help/module/CheckOBJCXXSourceCompiles.rst
index a1c8ae9..a1c8ae9 100644
--- a/share/cmake-3.16/Help/module/CheckOBJCXXSourceCompiles.rst
+++ b/share/cmake-3.17/Help/module/CheckOBJCXXSourceCompiles.rst
diff --git a/share/cmake-3.16/Help/module/CheckOBJCXXSourceRuns.rst b/share/cmake-3.17/Help/module/CheckOBJCXXSourceRuns.rst
index 5198e1b..5198e1b 100644
--- a/share/cmake-3.16/Help/module/CheckOBJCXXSourceRuns.rst
+++ b/share/cmake-3.17/Help/module/CheckOBJCXXSourceRuns.rst
diff --git a/share/cmake-3.16/Help/module/CheckPIESupported.rst b/share/cmake-3.17/Help/module/CheckPIESupported.rst
index 02e7b43..02e7b43 100644
--- a/share/cmake-3.16/Help/module/CheckPIESupported.rst
+++ b/share/cmake-3.17/Help/module/CheckPIESupported.rst
diff --git a/share/cmake-3.16/Help/module/CheckPrototypeDefinition.rst b/share/cmake-3.17/Help/module/CheckPrototypeDefinition.rst
index 073fcb5..073fcb5 100644
--- a/share/cmake-3.16/Help/module/CheckPrototypeDefinition.rst
+++ b/share/cmake-3.17/Help/module/CheckPrototypeDefinition.rst
diff --git a/share/cmake-3.16/Help/module/CheckStructHasMember.rst b/share/cmake-3.17/Help/module/CheckStructHasMember.rst
index 5277ad2..5277ad2 100644
--- a/share/cmake-3.16/Help/module/CheckStructHasMember.rst
+++ b/share/cmake-3.17/Help/module/CheckStructHasMember.rst
diff --git a/share/cmake-3.16/Help/module/CheckSymbolExists.rst b/share/cmake-3.17/Help/module/CheckSymbolExists.rst
index 68ae700..68ae700 100644
--- a/share/cmake-3.16/Help/module/CheckSymbolExists.rst
+++ b/share/cmake-3.17/Help/module/CheckSymbolExists.rst
diff --git a/share/cmake-3.16/Help/module/CheckTypeSize.rst b/share/cmake-3.17/Help/module/CheckTypeSize.rst
index 6ad0345..6ad0345 100644
--- a/share/cmake-3.16/Help/module/CheckTypeSize.rst
+++ b/share/cmake-3.17/Help/module/CheckTypeSize.rst
diff --git a/share/cmake-3.16/Help/module/CheckVariableExists.rst b/share/cmake-3.17/Help/module/CheckVariableExists.rst
index 07f0777..07f0777 100644
--- a/share/cmake-3.16/Help/module/CheckVariableExists.rst
+++ b/share/cmake-3.17/Help/module/CheckVariableExists.rst
diff --git a/share/cmake-3.16/Help/module/Dart.rst b/share/cmake-3.17/Help/module/Dart.rst
index 524ac33..524ac33 100644
--- a/share/cmake-3.16/Help/module/Dart.rst
+++ b/share/cmake-3.17/Help/module/Dart.rst
diff --git a/share/cmake-3.16/Help/module/DeployQt4.rst b/share/cmake-3.17/Help/module/DeployQt4.rst
index 3c0ef44..3c0ef44 100644
--- a/share/cmake-3.16/Help/module/DeployQt4.rst
+++ b/share/cmake-3.17/Help/module/DeployQt4.rst
diff --git a/share/cmake-3.16/Help/module/Documentation.rst b/share/cmake-3.17/Help/module/Documentation.rst
index 08e2ffb..08e2ffb 100644
--- a/share/cmake-3.16/Help/module/Documentation.rst
+++ b/share/cmake-3.17/Help/module/Documentation.rst
diff --git a/share/cmake-3.16/Help/module/ExternalData.rst b/share/cmake-3.17/Help/module/ExternalData.rst
index f0f8f1d..f0f8f1d 100644
--- a/share/cmake-3.16/Help/module/ExternalData.rst
+++ b/share/cmake-3.17/Help/module/ExternalData.rst
diff --git a/share/cmake-3.16/Help/module/ExternalProject.rst b/share/cmake-3.17/Help/module/ExternalProject.rst
index fce7056..fce7056 100644
--- a/share/cmake-3.16/Help/module/ExternalProject.rst
+++ b/share/cmake-3.17/Help/module/ExternalProject.rst
diff --git a/share/cmake-3.16/Help/module/FeatureSummary.rst b/share/cmake-3.17/Help/module/FeatureSummary.rst
index 6fd8f38..6fd8f38 100644
--- a/share/cmake-3.16/Help/module/FeatureSummary.rst
+++ b/share/cmake-3.17/Help/module/FeatureSummary.rst
diff --git a/share/cmake-3.16/Help/module/FetchContent.rst b/share/cmake-3.17/Help/module/FetchContent.rst
index c130a6d..c130a6d 100644
--- a/share/cmake-3.16/Help/module/FetchContent.rst
+++ b/share/cmake-3.17/Help/module/FetchContent.rst
diff --git a/share/cmake-3.16/Help/module/FindALSA.rst b/share/cmake-3.17/Help/module/FindALSA.rst
index 2a73786..2a73786 100644
--- a/share/cmake-3.16/Help/module/FindALSA.rst
+++ b/share/cmake-3.17/Help/module/FindALSA.rst
diff --git a/share/cmake-3.16/Help/module/FindASPELL.rst b/share/cmake-3.17/Help/module/FindASPELL.rst
index 56dedc4..56dedc4 100644
--- a/share/cmake-3.16/Help/module/FindASPELL.rst
+++ b/share/cmake-3.17/Help/module/FindASPELL.rst
diff --git a/share/cmake-3.16/Help/module/FindAVIFile.rst b/share/cmake-3.17/Help/module/FindAVIFile.rst
index 71282a6..71282a6 100644
--- a/share/cmake-3.16/Help/module/FindAVIFile.rst
+++ b/share/cmake-3.17/Help/module/FindAVIFile.rst
diff --git a/share/cmake-3.16/Help/module/FindArmadillo.rst b/share/cmake-3.17/Help/module/FindArmadillo.rst
index f0ac933..f0ac933 100644
--- a/share/cmake-3.16/Help/module/FindArmadillo.rst
+++ b/share/cmake-3.17/Help/module/FindArmadillo.rst
diff --git a/share/cmake-3.16/Help/module/FindBISON.rst b/share/cmake-3.17/Help/module/FindBISON.rst
index c6e5791..c6e5791 100644
--- a/share/cmake-3.16/Help/module/FindBISON.rst
+++ b/share/cmake-3.17/Help/module/FindBISON.rst
diff --git a/share/cmake-3.16/Help/module/FindBLAS.rst b/share/cmake-3.17/Help/module/FindBLAS.rst
index 41f6771..41f6771 100644
--- a/share/cmake-3.16/Help/module/FindBLAS.rst
+++ b/share/cmake-3.17/Help/module/FindBLAS.rst
diff --git a/share/cmake-3.16/Help/module/FindBZip2.rst b/share/cmake-3.17/Help/module/FindBZip2.rst
index 281b1d1..281b1d1 100644
--- a/share/cmake-3.16/Help/module/FindBZip2.rst
+++ b/share/cmake-3.17/Help/module/FindBZip2.rst
diff --git a/share/cmake-3.16/Help/module/FindBacktrace.rst b/share/cmake-3.17/Help/module/FindBacktrace.rst
index e1ca48c..e1ca48c 100644
--- a/share/cmake-3.16/Help/module/FindBacktrace.rst
+++ b/share/cmake-3.17/Help/module/FindBacktrace.rst
diff --git a/share/cmake-3.16/Help/module/FindBoost.rst b/share/cmake-3.17/Help/module/FindBoost.rst
index 1392540..1392540 100644
--- a/share/cmake-3.16/Help/module/FindBoost.rst
+++ b/share/cmake-3.17/Help/module/FindBoost.rst
diff --git a/share/cmake-3.16/Help/module/FindBullet.rst b/share/cmake-3.17/Help/module/FindBullet.rst
index 4ed2b85..4ed2b85 100644
--- a/share/cmake-3.16/Help/module/FindBullet.rst
+++ b/share/cmake-3.17/Help/module/FindBullet.rst
diff --git a/share/cmake-3.16/Help/module/FindCABLE.rst b/share/cmake-3.17/Help/module/FindCABLE.rst
index 716d5ab..716d5ab 100644
--- a/share/cmake-3.16/Help/module/FindCABLE.rst
+++ b/share/cmake-3.17/Help/module/FindCABLE.rst
diff --git a/share/cmake-3.16/Help/module/FindCUDA.rst b/share/cmake-3.17/Help/module/FindCUDA.rst
index 46ffa9f..46ffa9f 100644
--- a/share/cmake-3.16/Help/module/FindCUDA.rst
+++ b/share/cmake-3.17/Help/module/FindCUDA.rst
diff --git a/share/cmake-3.17/Help/module/FindCUDAToolkit.rst b/share/cmake-3.17/Help/module/FindCUDAToolkit.rst
new file mode 100644
index 0000000..5f01d68
--- /dev/null
+++ b/share/cmake-3.17/Help/module/FindCUDAToolkit.rst
@@ -0,0 +1 @@
+.. cmake-module:: ../../Modules/FindCUDAToolkit.cmake
diff --git a/share/cmake-3.16/Help/module/FindCURL.rst b/share/cmake-3.17/Help/module/FindCURL.rst
index e2acc49..e2acc49 100644
--- a/share/cmake-3.16/Help/module/FindCURL.rst
+++ b/share/cmake-3.17/Help/module/FindCURL.rst
diff --git a/share/cmake-3.16/Help/module/FindCVS.rst b/share/cmake-3.17/Help/module/FindCVS.rst
index c891c07..c891c07 100644
--- a/share/cmake-3.16/Help/module/FindCVS.rst
+++ b/share/cmake-3.17/Help/module/FindCVS.rst
diff --git a/share/cmake-3.16/Help/module/FindCoin3D.rst b/share/cmake-3.17/Help/module/FindCoin3D.rst
index fc70a74..fc70a74 100644
--- a/share/cmake-3.16/Help/module/FindCoin3D.rst
+++ b/share/cmake-3.17/Help/module/FindCoin3D.rst
diff --git a/share/cmake-3.16/Help/module/FindCups.rst b/share/cmake-3.17/Help/module/FindCups.rst
index 10d0646..10d0646 100644
--- a/share/cmake-3.16/Help/module/FindCups.rst
+++ b/share/cmake-3.17/Help/module/FindCups.rst
diff --git a/share/cmake-3.16/Help/module/FindCurses.rst b/share/cmake-3.17/Help/module/FindCurses.rst
index 73dd011..73dd011 100644
--- a/share/cmake-3.16/Help/module/FindCurses.rst
+++ b/share/cmake-3.17/Help/module/FindCurses.rst
diff --git a/share/cmake-3.16/Help/module/FindCxxTest.rst b/share/cmake-3.17/Help/module/FindCxxTest.rst
index 4f17c39..4f17c39 100644
--- a/share/cmake-3.16/Help/module/FindCxxTest.rst
+++ b/share/cmake-3.17/Help/module/FindCxxTest.rst
diff --git a/share/cmake-3.16/Help/module/FindCygwin.rst b/share/cmake-3.17/Help/module/FindCygwin.rst
index 2e529dd..2e529dd 100644
--- a/share/cmake-3.16/Help/module/FindCygwin.rst
+++ b/share/cmake-3.17/Help/module/FindCygwin.rst
diff --git a/share/cmake-3.16/Help/module/FindDCMTK.rst b/share/cmake-3.17/Help/module/FindDCMTK.rst
index 8437d55..8437d55 100644
--- a/share/cmake-3.16/Help/module/FindDCMTK.rst
+++ b/share/cmake-3.17/Help/module/FindDCMTK.rst
diff --git a/share/cmake-3.16/Help/module/FindDart.rst b/share/cmake-3.17/Help/module/FindDart.rst
index 6f21ad4..6f21ad4 100644
--- a/share/cmake-3.16/Help/module/FindDart.rst
+++ b/share/cmake-3.17/Help/module/FindDart.rst
diff --git a/share/cmake-3.16/Help/module/FindDevIL.rst b/share/cmake-3.17/Help/module/FindDevIL.rst
index 91a28dd..91a28dd 100644
--- a/share/cmake-3.16/Help/module/FindDevIL.rst
+++ b/share/cmake-3.17/Help/module/FindDevIL.rst
diff --git a/share/cmake-3.16/Help/module/FindDoxygen.rst b/share/cmake-3.17/Help/module/FindDoxygen.rst
index cffe734..cffe734 100644
--- a/share/cmake-3.16/Help/module/FindDoxygen.rst
+++ b/share/cmake-3.17/Help/module/FindDoxygen.rst
diff --git a/share/cmake-3.16/Help/module/FindEXPAT.rst b/share/cmake-3.17/Help/module/FindEXPAT.rst
index 5063680..5063680 100644
--- a/share/cmake-3.16/Help/module/FindEXPAT.rst
+++ b/share/cmake-3.17/Help/module/FindEXPAT.rst
diff --git a/share/cmake-3.16/Help/module/FindEnvModules.rst b/share/cmake-3.17/Help/module/FindEnvModules.rst
index 72c120f..72c120f 100644
--- a/share/cmake-3.16/Help/module/FindEnvModules.rst
+++ b/share/cmake-3.17/Help/module/FindEnvModules.rst
diff --git a/share/cmake-3.16/Help/module/FindFLEX.rst b/share/cmake-3.17/Help/module/FindFLEX.rst
index cc90791..cc90791 100644
--- a/share/cmake-3.16/Help/module/FindFLEX.rst
+++ b/share/cmake-3.17/Help/module/FindFLEX.rst
diff --git a/share/cmake-3.16/Help/module/FindFLTK.rst b/share/cmake-3.17/Help/module/FindFLTK.rst
index cc1964c..cc1964c 100644
--- a/share/cmake-3.16/Help/module/FindFLTK.rst
+++ b/share/cmake-3.17/Help/module/FindFLTK.rst
diff --git a/share/cmake-3.16/Help/module/FindFLTK2.rst b/share/cmake-3.17/Help/module/FindFLTK2.rst
index 5c2acc4..5c2acc4 100644
--- a/share/cmake-3.16/Help/module/FindFLTK2.rst
+++ b/share/cmake-3.17/Help/module/FindFLTK2.rst
diff --git a/share/cmake-3.16/Help/module/FindFontconfig.rst b/share/cmake-3.17/Help/module/FindFontconfig.rst
index 449fe09..449fe09 100644
--- a/share/cmake-3.16/Help/module/FindFontconfig.rst
+++ b/share/cmake-3.17/Help/module/FindFontconfig.rst
diff --git a/share/cmake-3.16/Help/module/FindFreetype.rst b/share/cmake-3.17/Help/module/FindFreetype.rst
index 424c3fc..424c3fc 100644
--- a/share/cmake-3.16/Help/module/FindFreetype.rst
+++ b/share/cmake-3.17/Help/module/FindFreetype.rst
diff --git a/share/cmake-3.16/Help/module/FindGCCXML.rst b/share/cmake-3.17/Help/module/FindGCCXML.rst
index 15fd4d0..15fd4d0 100644
--- a/share/cmake-3.16/Help/module/FindGCCXML.rst
+++ b/share/cmake-3.17/Help/module/FindGCCXML.rst
diff --git a/share/cmake-3.16/Help/module/FindGDAL.rst b/share/cmake-3.17/Help/module/FindGDAL.rst
index 81fcb3a..81fcb3a 100644
--- a/share/cmake-3.16/Help/module/FindGDAL.rst
+++ b/share/cmake-3.17/Help/module/FindGDAL.rst
diff --git a/share/cmake-3.16/Help/module/FindGIF.rst b/share/cmake-3.17/Help/module/FindGIF.rst
index 03d3a75..03d3a75 100644
--- a/share/cmake-3.16/Help/module/FindGIF.rst
+++ b/share/cmake-3.17/Help/module/FindGIF.rst
diff --git a/share/cmake-3.16/Help/module/FindGLEW.rst b/share/cmake-3.17/Help/module/FindGLEW.rst
index 77755da..77755da 100644
--- a/share/cmake-3.16/Help/module/FindGLEW.rst
+++ b/share/cmake-3.17/Help/module/FindGLEW.rst
diff --git a/share/cmake-3.16/Help/module/FindGLUT.rst b/share/cmake-3.17/Help/module/FindGLUT.rst
index 40263ee..40263ee 100644
--- a/share/cmake-3.16/Help/module/FindGLUT.rst
+++ b/share/cmake-3.17/Help/module/FindGLUT.rst
diff --git a/share/cmake-3.16/Help/module/FindGSL.rst b/share/cmake-3.17/Help/module/FindGSL.rst
index baf2213..baf2213 100644
--- a/share/cmake-3.16/Help/module/FindGSL.rst
+++ b/share/cmake-3.17/Help/module/FindGSL.rst
diff --git a/share/cmake-3.16/Help/module/FindGTK.rst b/share/cmake-3.17/Help/module/FindGTK.rst
index 1ce6a86..1ce6a86 100644
--- a/share/cmake-3.16/Help/module/FindGTK.rst
+++ b/share/cmake-3.17/Help/module/FindGTK.rst
diff --git a/share/cmake-3.16/Help/module/FindGTK2.rst b/share/cmake-3.17/Help/module/FindGTK2.rst
index 67c1ba9..67c1ba9 100644
--- a/share/cmake-3.16/Help/module/FindGTK2.rst
+++ b/share/cmake-3.17/Help/module/FindGTK2.rst
diff --git a/share/cmake-3.16/Help/module/FindGTest.rst b/share/cmake-3.17/Help/module/FindGTest.rst
index 0e3b4d7..0e3b4d7 100644
--- a/share/cmake-3.16/Help/module/FindGTest.rst
+++ b/share/cmake-3.17/Help/module/FindGTest.rst
diff --git a/share/cmake-3.16/Help/module/FindGettext.rst b/share/cmake-3.17/Help/module/FindGettext.rst
index e880dc0..e880dc0 100644
--- a/share/cmake-3.16/Help/module/FindGettext.rst
+++ b/share/cmake-3.17/Help/module/FindGettext.rst
diff --git a/share/cmake-3.16/Help/module/FindGit.rst b/share/cmake-3.17/Help/module/FindGit.rst
index dd540ef..dd540ef 100644
--- a/share/cmake-3.16/Help/module/FindGit.rst
+++ b/share/cmake-3.17/Help/module/FindGit.rst
diff --git a/share/cmake-3.16/Help/module/FindGnuTLS.rst b/share/cmake-3.17/Help/module/FindGnuTLS.rst
index de0c1d4..de0c1d4 100644
--- a/share/cmake-3.16/Help/module/FindGnuTLS.rst
+++ b/share/cmake-3.17/Help/module/FindGnuTLS.rst
diff --git a/share/cmake-3.16/Help/module/FindGnuplot.rst b/share/cmake-3.17/Help/module/FindGnuplot.rst
index 93a18b6..93a18b6 100644
--- a/share/cmake-3.16/Help/module/FindGnuplot.rst
+++ b/share/cmake-3.17/Help/module/FindGnuplot.rst
diff --git a/share/cmake-3.16/Help/module/FindHDF5.rst b/share/cmake-3.17/Help/module/FindHDF5.rst
index 8ac1b8b..8ac1b8b 100644
--- a/share/cmake-3.16/Help/module/FindHDF5.rst
+++ b/share/cmake-3.17/Help/module/FindHDF5.rst
diff --git a/share/cmake-3.16/Help/module/FindHSPELL.rst b/share/cmake-3.17/Help/module/FindHSPELL.rst
index c1905a2..c1905a2 100644
--- a/share/cmake-3.16/Help/module/FindHSPELL.rst
+++ b/share/cmake-3.17/Help/module/FindHSPELL.rst
diff --git a/share/cmake-3.16/Help/module/FindHTMLHelp.rst b/share/cmake-3.17/Help/module/FindHTMLHelp.rst
index 47d9c8c..47d9c8c 100644
--- a/share/cmake-3.16/Help/module/FindHTMLHelp.rst
+++ b/share/cmake-3.17/Help/module/FindHTMLHelp.rst
diff --git a/share/cmake-3.16/Help/module/FindHg.rst b/share/cmake-3.17/Help/module/FindHg.rst
index 94aba6f..94aba6f 100644
--- a/share/cmake-3.16/Help/module/FindHg.rst
+++ b/share/cmake-3.17/Help/module/FindHg.rst
diff --git a/share/cmake-3.16/Help/module/FindICU.rst b/share/cmake-3.17/Help/module/FindICU.rst
index ee3f4a9..ee3f4a9 100644
--- a/share/cmake-3.16/Help/module/FindICU.rst
+++ b/share/cmake-3.17/Help/module/FindICU.rst
diff --git a/share/cmake-3.16/Help/module/FindITK.rst b/share/cmake-3.17/Help/module/FindITK.rst
index 21a922f..21a922f 100644
--- a/share/cmake-3.16/Help/module/FindITK.rst
+++ b/share/cmake-3.17/Help/module/FindITK.rst
diff --git a/share/cmake-3.16/Help/module/FindIce.rst b/share/cmake-3.17/Help/module/FindIce.rst
index 3af9405..3af9405 100644
--- a/share/cmake-3.16/Help/module/FindIce.rst
+++ b/share/cmake-3.17/Help/module/FindIce.rst
diff --git a/share/cmake-3.16/Help/module/FindIconv.rst b/share/cmake-3.17/Help/module/FindIconv.rst
index c1f3ed0..c1f3ed0 100644
--- a/share/cmake-3.16/Help/module/FindIconv.rst
+++ b/share/cmake-3.17/Help/module/FindIconv.rst
diff --git a/share/cmake-3.16/Help/module/FindIcotool.rst b/share/cmake-3.17/Help/module/FindIcotool.rst
index c139f58..c139f58 100644
--- a/share/cmake-3.16/Help/module/FindIcotool.rst
+++ b/share/cmake-3.17/Help/module/FindIcotool.rst
diff --git a/share/cmake-3.16/Help/module/FindImageMagick.rst b/share/cmake-3.17/Help/module/FindImageMagick.rst
index 3a3596e..3a3596e 100644
--- a/share/cmake-3.16/Help/module/FindImageMagick.rst
+++ b/share/cmake-3.17/Help/module/FindImageMagick.rst
diff --git a/share/cmake-3.16/Help/module/FindIntl.rst b/share/cmake-3.17/Help/module/FindIntl.rst
index 813e2df..813e2df 100644
--- a/share/cmake-3.16/Help/module/FindIntl.rst
+++ b/share/cmake-3.17/Help/module/FindIntl.rst
diff --git a/share/cmake-3.16/Help/module/FindJNI.rst b/share/cmake-3.17/Help/module/FindJNI.rst
index b753cf8..b753cf8 100644
--- a/share/cmake-3.16/Help/module/FindJNI.rst
+++ b/share/cmake-3.17/Help/module/FindJNI.rst
diff --git a/share/cmake-3.16/Help/module/FindJPEG.rst b/share/cmake-3.17/Help/module/FindJPEG.rst
index 8036352..8036352 100644
--- a/share/cmake-3.16/Help/module/FindJPEG.rst
+++ b/share/cmake-3.17/Help/module/FindJPEG.rst
diff --git a/share/cmake-3.16/Help/module/FindJasper.rst b/share/cmake-3.17/Help/module/FindJasper.rst
index 725a87f..725a87f 100644
--- a/share/cmake-3.16/Help/module/FindJasper.rst
+++ b/share/cmake-3.17/Help/module/FindJasper.rst
diff --git a/share/cmake-3.16/Help/module/FindJava.rst b/share/cmake-3.17/Help/module/FindJava.rst
index 39e6b6b..39e6b6b 100644
--- a/share/cmake-3.16/Help/module/FindJava.rst
+++ b/share/cmake-3.17/Help/module/FindJava.rst
diff --git a/share/cmake-3.16/Help/module/FindKDE3.rst b/share/cmake-3.17/Help/module/FindKDE3.rst
index 13ac15c..13ac15c 100644
--- a/share/cmake-3.16/Help/module/FindKDE3.rst
+++ b/share/cmake-3.17/Help/module/FindKDE3.rst
diff --git a/share/cmake-3.16/Help/module/FindKDE4.rst b/share/cmake-3.17/Help/module/FindKDE4.rst
index 8b22f7f..8b22f7f 100644
--- a/share/cmake-3.16/Help/module/FindKDE4.rst
+++ b/share/cmake-3.17/Help/module/FindKDE4.rst
diff --git a/share/cmake-3.16/Help/module/FindLAPACK.rst b/share/cmake-3.17/Help/module/FindLAPACK.rst
index 6e99090..6e99090 100644
--- a/share/cmake-3.16/Help/module/FindLAPACK.rst
+++ b/share/cmake-3.17/Help/module/FindLAPACK.rst
diff --git a/share/cmake-3.16/Help/module/FindLATEX.rst b/share/cmake-3.17/Help/module/FindLATEX.rst
index 4b14c71..4b14c71 100644
--- a/share/cmake-3.16/Help/module/FindLATEX.rst
+++ b/share/cmake-3.17/Help/module/FindLATEX.rst
diff --git a/share/cmake-3.16/Help/module/FindLTTngUST.rst b/share/cmake-3.17/Help/module/FindLTTngUST.rst
index a775462..a775462 100644
--- a/share/cmake-3.16/Help/module/FindLTTngUST.rst
+++ b/share/cmake-3.17/Help/module/FindLTTngUST.rst
diff --git a/share/cmake-3.16/Help/module/FindLibArchive.rst b/share/cmake-3.17/Help/module/FindLibArchive.rst
index c46b1d0..c46b1d0 100644
--- a/share/cmake-3.16/Help/module/FindLibArchive.rst
+++ b/share/cmake-3.17/Help/module/FindLibArchive.rst
diff --git a/share/cmake-3.16/Help/module/FindLibLZMA.rst b/share/cmake-3.17/Help/module/FindLibLZMA.rst
index 8880158..8880158 100644
--- a/share/cmake-3.16/Help/module/FindLibLZMA.rst
+++ b/share/cmake-3.17/Help/module/FindLibLZMA.rst
diff --git a/share/cmake-3.16/Help/module/FindLibXml2.rst b/share/cmake-3.17/Help/module/FindLibXml2.rst
index bbb3225..bbb3225 100644
--- a/share/cmake-3.16/Help/module/FindLibXml2.rst
+++ b/share/cmake-3.17/Help/module/FindLibXml2.rst
diff --git a/share/cmake-3.16/Help/module/FindLibXslt.rst b/share/cmake-3.17/Help/module/FindLibXslt.rst
index 4107170..4107170 100644
--- a/share/cmake-3.16/Help/module/FindLibXslt.rst
+++ b/share/cmake-3.17/Help/module/FindLibXslt.rst
diff --git a/share/cmake-3.16/Help/module/FindLibinput.rst b/share/cmake-3.17/Help/module/FindLibinput.rst
index a8ca0b0..a8ca0b0 100644
--- a/share/cmake-3.16/Help/module/FindLibinput.rst
+++ b/share/cmake-3.17/Help/module/FindLibinput.rst
diff --git a/share/cmake-3.16/Help/module/FindLua.rst b/share/cmake-3.17/Help/module/FindLua.rst
index 977e5bf..977e5bf 100644
--- a/share/cmake-3.16/Help/module/FindLua.rst
+++ b/share/cmake-3.17/Help/module/FindLua.rst
diff --git a/share/cmake-3.16/Help/module/FindLua50.rst b/share/cmake-3.17/Help/module/FindLua50.rst
index 0353fc3..0353fc3 100644
--- a/share/cmake-3.16/Help/module/FindLua50.rst
+++ b/share/cmake-3.17/Help/module/FindLua50.rst
diff --git a/share/cmake-3.16/Help/module/FindLua51.rst b/share/cmake-3.17/Help/module/FindLua51.rst
index 672ff35..672ff35 100644
--- a/share/cmake-3.16/Help/module/FindLua51.rst
+++ b/share/cmake-3.17/Help/module/FindLua51.rst
diff --git a/share/cmake-3.16/Help/module/FindMFC.rst b/share/cmake-3.17/Help/module/FindMFC.rst
index a3226a6..a3226a6 100644
--- a/share/cmake-3.16/Help/module/FindMFC.rst
+++ b/share/cmake-3.17/Help/module/FindMFC.rst
diff --git a/share/cmake-3.16/Help/module/FindMPEG.rst b/share/cmake-3.17/Help/module/FindMPEG.rst
index c9ce481..c9ce481 100644
--- a/share/cmake-3.16/Help/module/FindMPEG.rst
+++ b/share/cmake-3.17/Help/module/FindMPEG.rst
diff --git a/share/cmake-3.16/Help/module/FindMPEG2.rst b/share/cmake-3.17/Help/module/FindMPEG2.rst
index f843c89..f843c89 100644
--- a/share/cmake-3.16/Help/module/FindMPEG2.rst
+++ b/share/cmake-3.17/Help/module/FindMPEG2.rst
diff --git a/share/cmake-3.16/Help/module/FindMPI.rst b/share/cmake-3.17/Help/module/FindMPI.rst
index fad10c7..fad10c7 100644
--- a/share/cmake-3.16/Help/module/FindMPI.rst
+++ b/share/cmake-3.17/Help/module/FindMPI.rst
diff --git a/share/cmake-3.16/Help/module/FindMatlab.rst b/share/cmake-3.17/Help/module/FindMatlab.rst
index 43f861a..43f861a 100644
--- a/share/cmake-3.16/Help/module/FindMatlab.rst
+++ b/share/cmake-3.17/Help/module/FindMatlab.rst
diff --git a/share/cmake-3.16/Help/module/FindMotif.rst b/share/cmake-3.17/Help/module/FindMotif.rst
index e602a50..e602a50 100644
--- a/share/cmake-3.16/Help/module/FindMotif.rst
+++ b/share/cmake-3.17/Help/module/FindMotif.rst
diff --git a/share/cmake-3.16/Help/module/FindODBC.rst b/share/cmake-3.17/Help/module/FindODBC.rst
index 8558334..8558334 100644
--- a/share/cmake-3.16/Help/module/FindODBC.rst
+++ b/share/cmake-3.17/Help/module/FindODBC.rst
diff --git a/share/cmake-3.16/Help/module/FindOpenACC.rst b/share/cmake-3.17/Help/module/FindOpenACC.rst
index dda3308..dda3308 100644
--- a/share/cmake-3.16/Help/module/FindOpenACC.rst
+++ b/share/cmake-3.17/Help/module/FindOpenACC.rst
diff --git a/share/cmake-3.16/Help/module/FindOpenAL.rst b/share/cmake-3.17/Help/module/FindOpenAL.rst
index f086556..f086556 100644
--- a/share/cmake-3.16/Help/module/FindOpenAL.rst
+++ b/share/cmake-3.17/Help/module/FindOpenAL.rst
diff --git a/share/cmake-3.16/Help/module/FindOpenCL.rst b/share/cmake-3.17/Help/module/FindOpenCL.rst
index e87e289..e87e289 100644
--- a/share/cmake-3.16/Help/module/FindOpenCL.rst
+++ b/share/cmake-3.17/Help/module/FindOpenCL.rst
diff --git a/share/cmake-3.16/Help/module/FindOpenGL.rst b/share/cmake-3.17/Help/module/FindOpenGL.rst
index 85e89bc..85e89bc 100644
--- a/share/cmake-3.16/Help/module/FindOpenGL.rst
+++ b/share/cmake-3.17/Help/module/FindOpenGL.rst
diff --git a/share/cmake-3.16/Help/module/FindOpenMP.rst b/share/cmake-3.17/Help/module/FindOpenMP.rst
index 01362ab..01362ab 100644
--- a/share/cmake-3.16/Help/module/FindOpenMP.rst
+++ b/share/cmake-3.17/Help/module/FindOpenMP.rst
diff --git a/share/cmake-3.16/Help/module/FindOpenSSL.rst b/share/cmake-3.17/Help/module/FindOpenSSL.rst
index f622bb1..f622bb1 100644
--- a/share/cmake-3.16/Help/module/FindOpenSSL.rst
+++ b/share/cmake-3.17/Help/module/FindOpenSSL.rst
diff --git a/share/cmake-3.16/Help/module/FindOpenSceneGraph.rst b/share/cmake-3.17/Help/module/FindOpenSceneGraph.rst
index 4346492..4346492 100644
--- a/share/cmake-3.16/Help/module/FindOpenSceneGraph.rst
+++ b/share/cmake-3.17/Help/module/FindOpenSceneGraph.rst
diff --git a/share/cmake-3.16/Help/module/FindOpenThreads.rst b/share/cmake-3.17/Help/module/FindOpenThreads.rst
index bb3f0f9..bb3f0f9 100644
--- a/share/cmake-3.16/Help/module/FindOpenThreads.rst
+++ b/share/cmake-3.17/Help/module/FindOpenThreads.rst
diff --git a/share/cmake-3.16/Help/module/FindPHP4.rst b/share/cmake-3.17/Help/module/FindPHP4.rst
index 1de62e8..1de62e8 100644
--- a/share/cmake-3.16/Help/module/FindPHP4.rst
+++ b/share/cmake-3.17/Help/module/FindPHP4.rst
diff --git a/share/cmake-3.16/Help/module/FindPNG.rst b/share/cmake-3.17/Help/module/FindPNG.rst
index e6d1618..e6d1618 100644
--- a/share/cmake-3.16/Help/module/FindPNG.rst
+++ b/share/cmake-3.17/Help/module/FindPNG.rst
diff --git a/share/cmake-3.16/Help/module/FindPackageHandleStandardArgs.rst b/share/cmake-3.17/Help/module/FindPackageHandleStandardArgs.rst
index feda7ef..feda7ef 100644
--- a/share/cmake-3.16/Help/module/FindPackageHandleStandardArgs.rst
+++ b/share/cmake-3.17/Help/module/FindPackageHandleStandardArgs.rst
diff --git a/share/cmake-3.16/Help/module/FindPackageMessage.rst b/share/cmake-3.17/Help/module/FindPackageMessage.rst
index b682d8c..b682d8c 100644
--- a/share/cmake-3.16/Help/module/FindPackageMessage.rst
+++ b/share/cmake-3.17/Help/module/FindPackageMessage.rst
diff --git a/share/cmake-3.16/Help/module/FindPatch.rst b/share/cmake-3.17/Help/module/FindPatch.rst
index ba5e910..ba5e910 100644
--- a/share/cmake-3.16/Help/module/FindPatch.rst
+++ b/share/cmake-3.17/Help/module/FindPatch.rst
diff --git a/share/cmake-3.16/Help/module/FindPerl.rst b/share/cmake-3.17/Help/module/FindPerl.rst
index 098f4b5..098f4b5 100644
--- a/share/cmake-3.16/Help/module/FindPerl.rst
+++ b/share/cmake-3.17/Help/module/FindPerl.rst
diff --git a/share/cmake-3.16/Help/module/FindPerlLibs.rst b/share/cmake-3.17/Help/module/FindPerlLibs.rst
index 8d8bbab..8d8bbab 100644
--- a/share/cmake-3.16/Help/module/FindPerlLibs.rst
+++ b/share/cmake-3.17/Help/module/FindPerlLibs.rst
diff --git a/share/cmake-3.16/Help/module/FindPhysFS.rst b/share/cmake-3.17/Help/module/FindPhysFS.rst
index 21d928b..21d928b 100644
--- a/share/cmake-3.16/Help/module/FindPhysFS.rst
+++ b/share/cmake-3.17/Help/module/FindPhysFS.rst
diff --git a/share/cmake-3.16/Help/module/FindPike.rst b/share/cmake-3.17/Help/module/FindPike.rst
index b096ca4..b096ca4 100644
--- a/share/cmake-3.16/Help/module/FindPike.rst
+++ b/share/cmake-3.17/Help/module/FindPike.rst
diff --git a/share/cmake-3.16/Help/module/FindPkgConfig.rst b/share/cmake-3.17/Help/module/FindPkgConfig.rst
index b8caf74..b8caf74 100644
--- a/share/cmake-3.16/Help/module/FindPkgConfig.rst
+++ b/share/cmake-3.17/Help/module/FindPkgConfig.rst
diff --git a/share/cmake-3.16/Help/module/FindPostgreSQL.rst b/share/cmake-3.17/Help/module/FindPostgreSQL.rst
index b45c07e..b45c07e 100644
--- a/share/cmake-3.16/Help/module/FindPostgreSQL.rst
+++ b/share/cmake-3.17/Help/module/FindPostgreSQL.rst
diff --git a/share/cmake-3.16/Help/module/FindProducer.rst b/share/cmake-3.17/Help/module/FindProducer.rst
index 1c0c575..1c0c575 100644
--- a/share/cmake-3.16/Help/module/FindProducer.rst
+++ b/share/cmake-3.17/Help/module/FindProducer.rst
diff --git a/share/cmake-3.16/Help/module/FindProtobuf.rst b/share/cmake-3.17/Help/module/FindProtobuf.rst
index b978e01..b978e01 100644
--- a/share/cmake-3.16/Help/module/FindProtobuf.rst
+++ b/share/cmake-3.17/Help/module/FindProtobuf.rst
diff --git a/share/cmake-3.16/Help/module/FindPython.rst b/share/cmake-3.17/Help/module/FindPython.rst
index 057a350..057a350 100644
--- a/share/cmake-3.16/Help/module/FindPython.rst
+++ b/share/cmake-3.17/Help/module/FindPython.rst
diff --git a/share/cmake-3.16/Help/module/FindPython2.rst b/share/cmake-3.17/Help/module/FindPython2.rst
index 1696bed..1696bed 100644
--- a/share/cmake-3.16/Help/module/FindPython2.rst
+++ b/share/cmake-3.17/Help/module/FindPython2.rst
diff --git a/share/cmake-3.16/Help/module/FindPython3.rst b/share/cmake-3.17/Help/module/FindPython3.rst
index e530ab8..e530ab8 100644
--- a/share/cmake-3.16/Help/module/FindPython3.rst
+++ b/share/cmake-3.17/Help/module/FindPython3.rst
diff --git a/share/cmake-3.16/Help/module/FindPythonInterp.rst b/share/cmake-3.17/Help/module/FindPythonInterp.rst
index 3be2306..3be2306 100644
--- a/share/cmake-3.16/Help/module/FindPythonInterp.rst
+++ b/share/cmake-3.17/Help/module/FindPythonInterp.rst
diff --git a/share/cmake-3.16/Help/module/FindPythonLibs.rst b/share/cmake-3.17/Help/module/FindPythonLibs.rst
index 8f0015d..8f0015d 100644
--- a/share/cmake-3.16/Help/module/FindPythonLibs.rst
+++ b/share/cmake-3.17/Help/module/FindPythonLibs.rst
diff --git a/share/cmake-3.16/Help/module/FindQt.rst b/share/cmake-3.17/Help/module/FindQt.rst
index 3aa8a26..3aa8a26 100644
--- a/share/cmake-3.16/Help/module/FindQt.rst
+++ b/share/cmake-3.17/Help/module/FindQt.rst
diff --git a/share/cmake-3.16/Help/module/FindQt3.rst b/share/cmake-3.17/Help/module/FindQt3.rst
index b933059..b933059 100644
--- a/share/cmake-3.16/Help/module/FindQt3.rst
+++ b/share/cmake-3.17/Help/module/FindQt3.rst
diff --git a/share/cmake-3.16/Help/module/FindQt4.rst b/share/cmake-3.17/Help/module/FindQt4.rst
index 28036b2..28036b2 100644
--- a/share/cmake-3.16/Help/module/FindQt4.rst
+++ b/share/cmake-3.17/Help/module/FindQt4.rst
diff --git a/share/cmake-3.16/Help/module/FindQuickTime.rst b/share/cmake-3.17/Help/module/FindQuickTime.rst
index 735f7d2..735f7d2 100644
--- a/share/cmake-3.16/Help/module/FindQuickTime.rst
+++ b/share/cmake-3.17/Help/module/FindQuickTime.rst
diff --git a/share/cmake-3.16/Help/module/FindRTI.rst b/share/cmake-3.17/Help/module/FindRTI.rst
index a93ad16..a93ad16 100644
--- a/share/cmake-3.16/Help/module/FindRTI.rst
+++ b/share/cmake-3.17/Help/module/FindRTI.rst
diff --git a/share/cmake-3.16/Help/module/FindRuby.rst b/share/cmake-3.17/Help/module/FindRuby.rst
index a1e7922..a1e7922 100644
--- a/share/cmake-3.16/Help/module/FindRuby.rst
+++ b/share/cmake-3.17/Help/module/FindRuby.rst
diff --git a/share/cmake-3.16/Help/module/FindSDL.rst b/share/cmake-3.17/Help/module/FindSDL.rst
index 79893c0..79893c0 100644
--- a/share/cmake-3.16/Help/module/FindSDL.rst
+++ b/share/cmake-3.17/Help/module/FindSDL.rst
diff --git a/share/cmake-3.16/Help/module/FindSDL_image.rst b/share/cmake-3.17/Help/module/FindSDL_image.rst
index dc69d70..dc69d70 100644
--- a/share/cmake-3.16/Help/module/FindSDL_image.rst
+++ b/share/cmake-3.17/Help/module/FindSDL_image.rst
diff --git a/share/cmake-3.16/Help/module/FindSDL_mixer.rst b/share/cmake-3.17/Help/module/FindSDL_mixer.rst
index 1c9c446..1c9c446 100644
--- a/share/cmake-3.16/Help/module/FindSDL_mixer.rst
+++ b/share/cmake-3.17/Help/module/FindSDL_mixer.rst
diff --git a/share/cmake-3.16/Help/module/FindSDL_net.rst b/share/cmake-3.17/Help/module/FindSDL_net.rst
index 079d0bb..079d0bb 100644
--- a/share/cmake-3.16/Help/module/FindSDL_net.rst
+++ b/share/cmake-3.17/Help/module/FindSDL_net.rst
diff --git a/share/cmake-3.16/Help/module/FindSDL_sound.rst b/share/cmake-3.17/Help/module/FindSDL_sound.rst
index 077edf7..077edf7 100644
--- a/share/cmake-3.16/Help/module/FindSDL_sound.rst
+++ b/share/cmake-3.17/Help/module/FindSDL_sound.rst
diff --git a/share/cmake-3.16/Help/module/FindSDL_ttf.rst b/share/cmake-3.17/Help/module/FindSDL_ttf.rst
index 40c5ec4..40c5ec4 100644
--- a/share/cmake-3.16/Help/module/FindSDL_ttf.rst
+++ b/share/cmake-3.17/Help/module/FindSDL_ttf.rst
diff --git a/share/cmake-3.16/Help/module/FindSQLite3.rst b/share/cmake-3.17/Help/module/FindSQLite3.rst
index d1910e5..d1910e5 100644
--- a/share/cmake-3.16/Help/module/FindSQLite3.rst
+++ b/share/cmake-3.17/Help/module/FindSQLite3.rst
diff --git a/share/cmake-3.16/Help/module/FindSWIG.rst b/share/cmake-3.17/Help/module/FindSWIG.rst
index 9b25b94..9b25b94 100644
--- a/share/cmake-3.16/Help/module/FindSWIG.rst
+++ b/share/cmake-3.17/Help/module/FindSWIG.rst
diff --git a/share/cmake-3.16/Help/module/FindSelfPackers.rst b/share/cmake-3.17/Help/module/FindSelfPackers.rst
index 5f2c689..5f2c689 100644
--- a/share/cmake-3.16/Help/module/FindSelfPackers.rst
+++ b/share/cmake-3.17/Help/module/FindSelfPackers.rst
diff --git a/share/cmake-3.16/Help/module/FindSquish.rst b/share/cmake-3.17/Help/module/FindSquish.rst
index dc2c86d..dc2c86d 100644
--- a/share/cmake-3.16/Help/module/FindSquish.rst
+++ b/share/cmake-3.17/Help/module/FindSquish.rst
diff --git a/share/cmake-3.16/Help/module/FindSubversion.rst b/share/cmake-3.17/Help/module/FindSubversion.rst
index aa15857..aa15857 100644
--- a/share/cmake-3.16/Help/module/FindSubversion.rst
+++ b/share/cmake-3.17/Help/module/FindSubversion.rst
diff --git a/share/cmake-3.16/Help/module/FindTCL.rst b/share/cmake-3.17/Help/module/FindTCL.rst
index cbd2035..cbd2035 100644
--- a/share/cmake-3.16/Help/module/FindTCL.rst
+++ b/share/cmake-3.17/Help/module/FindTCL.rst
diff --git a/share/cmake-3.16/Help/module/FindTIFF.rst b/share/cmake-3.17/Help/module/FindTIFF.rst
index 69f8ca5..69f8ca5 100644
--- a/share/cmake-3.16/Help/module/FindTIFF.rst
+++ b/share/cmake-3.17/Help/module/FindTIFF.rst
diff --git a/share/cmake-3.16/Help/module/FindTclStub.rst b/share/cmake-3.17/Help/module/FindTclStub.rst
index 6cc5b2d..6cc5b2d 100644
--- a/share/cmake-3.16/Help/module/FindTclStub.rst
+++ b/share/cmake-3.17/Help/module/FindTclStub.rst
diff --git a/share/cmake-3.16/Help/module/FindTclsh.rst b/share/cmake-3.17/Help/module/FindTclsh.rst
index 23e7d6b..23e7d6b 100644
--- a/share/cmake-3.16/Help/module/FindTclsh.rst
+++ b/share/cmake-3.17/Help/module/FindTclsh.rst
diff --git a/share/cmake-3.16/Help/module/FindThreads.rst b/share/cmake-3.17/Help/module/FindThreads.rst
index 91967a7..91967a7 100644
--- a/share/cmake-3.16/Help/module/FindThreads.rst
+++ b/share/cmake-3.17/Help/module/FindThreads.rst
diff --git a/share/cmake-3.16/Help/module/FindUnixCommands.rst b/share/cmake-3.17/Help/module/FindUnixCommands.rst
index 9ad05ad..9ad05ad 100644
--- a/share/cmake-3.16/Help/module/FindUnixCommands.rst
+++ b/share/cmake-3.17/Help/module/FindUnixCommands.rst
diff --git a/share/cmake-3.16/Help/module/FindVTK.rst b/share/cmake-3.17/Help/module/FindVTK.rst
index 3bc67c5..3bc67c5 100644
--- a/share/cmake-3.16/Help/module/FindVTK.rst
+++ b/share/cmake-3.17/Help/module/FindVTK.rst
diff --git a/share/cmake-3.16/Help/module/FindVulkan.rst b/share/cmake-3.17/Help/module/FindVulkan.rst
index adf824e..adf824e 100644
--- a/share/cmake-3.16/Help/module/FindVulkan.rst
+++ b/share/cmake-3.17/Help/module/FindVulkan.rst
diff --git a/share/cmake-3.16/Help/module/FindWget.rst b/share/cmake-3.17/Help/module/FindWget.rst
index 06affd4..06affd4 100644
--- a/share/cmake-3.16/Help/module/FindWget.rst
+++ b/share/cmake-3.17/Help/module/FindWget.rst
diff --git a/share/cmake-3.16/Help/module/FindWish.rst b/share/cmake-3.17/Help/module/FindWish.rst
index 76be4cf..76be4cf 100644
--- a/share/cmake-3.16/Help/module/FindWish.rst
+++ b/share/cmake-3.17/Help/module/FindWish.rst
diff --git a/share/cmake-3.16/Help/module/FindX11.rst b/share/cmake-3.17/Help/module/FindX11.rst
index 906efd7..906efd7 100644
--- a/share/cmake-3.16/Help/module/FindX11.rst
+++ b/share/cmake-3.17/Help/module/FindX11.rst
diff --git a/share/cmake-3.16/Help/module/FindXCTest.rst b/share/cmake-3.17/Help/module/FindXCTest.rst
index ff6273c..ff6273c 100644
--- a/share/cmake-3.16/Help/module/FindXCTest.rst
+++ b/share/cmake-3.17/Help/module/FindXCTest.rst
diff --git a/share/cmake-3.16/Help/module/FindXMLRPC.rst b/share/cmake-3.17/Help/module/FindXMLRPC.rst
index 5d11a0c..5d11a0c 100644
--- a/share/cmake-3.16/Help/module/FindXMLRPC.rst
+++ b/share/cmake-3.17/Help/module/FindXMLRPC.rst
diff --git a/share/cmake-3.16/Help/module/FindXalanC.rst b/share/cmake-3.17/Help/module/FindXalanC.rst
index b99d212..b99d212 100644
--- a/share/cmake-3.16/Help/module/FindXalanC.rst
+++ b/share/cmake-3.17/Help/module/FindXalanC.rst
diff --git a/share/cmake-3.16/Help/module/FindXercesC.rst b/share/cmake-3.17/Help/module/FindXercesC.rst
index 4818071..4818071 100644
--- a/share/cmake-3.16/Help/module/FindXercesC.rst
+++ b/share/cmake-3.17/Help/module/FindXercesC.rst
diff --git a/share/cmake-3.16/Help/module/FindZLIB.rst b/share/cmake-3.17/Help/module/FindZLIB.rst
index ded8634..ded8634 100644
--- a/share/cmake-3.16/Help/module/FindZLIB.rst
+++ b/share/cmake-3.17/Help/module/FindZLIB.rst
diff --git a/share/cmake-3.16/Help/module/Findosg.rst b/share/cmake-3.17/Help/module/Findosg.rst
index 6b407ac..6b407ac 100644
--- a/share/cmake-3.16/Help/module/Findosg.rst
+++ b/share/cmake-3.17/Help/module/Findosg.rst
diff --git a/share/cmake-3.16/Help/module/FindosgAnimation.rst b/share/cmake-3.17/Help/module/FindosgAnimation.rst
index f14a1e7..f14a1e7 100644
--- a/share/cmake-3.16/Help/module/FindosgAnimation.rst
+++ b/share/cmake-3.17/Help/module/FindosgAnimation.rst
diff --git a/share/cmake-3.16/Help/module/FindosgDB.rst b/share/cmake-3.17/Help/module/FindosgDB.rst
index 9f72bc7..9f72bc7 100644
--- a/share/cmake-3.16/Help/module/FindosgDB.rst
+++ b/share/cmake-3.17/Help/module/FindosgDB.rst
diff --git a/share/cmake-3.16/Help/module/FindosgFX.rst b/share/cmake-3.17/Help/module/FindosgFX.rst
index 0e1edfb..0e1edfb 100644
--- a/share/cmake-3.16/Help/module/FindosgFX.rst
+++ b/share/cmake-3.17/Help/module/FindosgFX.rst
diff --git a/share/cmake-3.16/Help/module/FindosgGA.rst b/share/cmake-3.17/Help/module/FindosgGA.rst
index 562d73f..562d73f 100644
--- a/share/cmake-3.16/Help/module/FindosgGA.rst
+++ b/share/cmake-3.17/Help/module/FindosgGA.rst
diff --git a/share/cmake-3.16/Help/module/FindosgIntrospection.rst b/share/cmake-3.17/Help/module/FindosgIntrospection.rst
index 53621a7..53621a7 100644
--- a/share/cmake-3.16/Help/module/FindosgIntrospection.rst
+++ b/share/cmake-3.17/Help/module/FindosgIntrospection.rst
diff --git a/share/cmake-3.16/Help/module/FindosgManipulator.rst b/share/cmake-3.17/Help/module/FindosgManipulator.rst
index b9d615d..b9d615d 100644
--- a/share/cmake-3.16/Help/module/FindosgManipulator.rst
+++ b/share/cmake-3.17/Help/module/FindosgManipulator.rst
diff --git a/share/cmake-3.16/Help/module/FindosgParticle.rst b/share/cmake-3.17/Help/module/FindosgParticle.rst
index 9cf191c..9cf191c 100644
--- a/share/cmake-3.16/Help/module/FindosgParticle.rst
+++ b/share/cmake-3.17/Help/module/FindosgParticle.rst
diff --git a/share/cmake-3.16/Help/module/FindosgPresentation.rst b/share/cmake-3.17/Help/module/FindosgPresentation.rst
index cb47841..cb47841 100644
--- a/share/cmake-3.16/Help/module/FindosgPresentation.rst
+++ b/share/cmake-3.17/Help/module/FindosgPresentation.rst
diff --git a/share/cmake-3.16/Help/module/FindosgProducer.rst b/share/cmake-3.17/Help/module/FindosgProducer.rst
index c502851..c502851 100644
--- a/share/cmake-3.16/Help/module/FindosgProducer.rst
+++ b/share/cmake-3.17/Help/module/FindosgProducer.rst
diff --git a/share/cmake-3.16/Help/module/FindosgQt.rst b/share/cmake-3.17/Help/module/FindosgQt.rst
index 08c8704..08c8704 100644
--- a/share/cmake-3.16/Help/module/FindosgQt.rst
+++ b/share/cmake-3.17/Help/module/FindosgQt.rst
diff --git a/share/cmake-3.16/Help/module/FindosgShadow.rst b/share/cmake-3.17/Help/module/FindosgShadow.rst
index fbb22e1..fbb22e1 100644
--- a/share/cmake-3.16/Help/module/FindosgShadow.rst
+++ b/share/cmake-3.17/Help/module/FindosgShadow.rst
diff --git a/share/cmake-3.16/Help/module/FindosgSim.rst b/share/cmake-3.17/Help/module/FindosgSim.rst
index 9e47b65..9e47b65 100644
--- a/share/cmake-3.16/Help/module/FindosgSim.rst
+++ b/share/cmake-3.17/Help/module/FindosgSim.rst
diff --git a/share/cmake-3.16/Help/module/FindosgTerrain.rst b/share/cmake-3.17/Help/module/FindosgTerrain.rst
index dd401d8..dd401d8 100644
--- a/share/cmake-3.16/Help/module/FindosgTerrain.rst
+++ b/share/cmake-3.17/Help/module/FindosgTerrain.rst
diff --git a/share/cmake-3.16/Help/module/FindosgText.rst b/share/cmake-3.17/Help/module/FindosgText.rst
index bb028fb..bb028fb 100644
--- a/share/cmake-3.16/Help/module/FindosgText.rst
+++ b/share/cmake-3.17/Help/module/FindosgText.rst
diff --git a/share/cmake-3.16/Help/module/FindosgUtil.rst b/share/cmake-3.17/Help/module/FindosgUtil.rst
index bb11bdf..bb11bdf 100644
--- a/share/cmake-3.16/Help/module/FindosgUtil.rst
+++ b/share/cmake-3.17/Help/module/FindosgUtil.rst
diff --git a/share/cmake-3.16/Help/module/FindosgViewer.rst b/share/cmake-3.17/Help/module/FindosgViewer.rst
index 5def375..5def375 100644
--- a/share/cmake-3.16/Help/module/FindosgViewer.rst
+++ b/share/cmake-3.17/Help/module/FindosgViewer.rst
diff --git a/share/cmake-3.16/Help/module/FindosgVolume.rst b/share/cmake-3.17/Help/module/FindosgVolume.rst
index d836906..d836906 100644
--- a/share/cmake-3.16/Help/module/FindosgVolume.rst
+++ b/share/cmake-3.17/Help/module/FindosgVolume.rst
diff --git a/share/cmake-3.16/Help/module/FindosgWidget.rst b/share/cmake-3.17/Help/module/FindosgWidget.rst
index bdd1135..bdd1135 100644
--- a/share/cmake-3.16/Help/module/FindosgWidget.rst
+++ b/share/cmake-3.17/Help/module/FindosgWidget.rst
diff --git a/share/cmake-3.16/Help/module/Findosg_functions.rst b/share/cmake-3.17/Help/module/Findosg_functions.rst
index 522e1ac..522e1ac 100644
--- a/share/cmake-3.16/Help/module/Findosg_functions.rst
+++ b/share/cmake-3.17/Help/module/Findosg_functions.rst
diff --git a/share/cmake-3.16/Help/module/FindwxWidgets.rst b/share/cmake-3.17/Help/module/FindwxWidgets.rst
index 519beb7..519beb7 100644
--- a/share/cmake-3.16/Help/module/FindwxWidgets.rst
+++ b/share/cmake-3.17/Help/module/FindwxWidgets.rst
diff --git a/share/cmake-3.16/Help/module/FindwxWindows.rst b/share/cmake-3.17/Help/module/FindwxWindows.rst
index 35c9728..35c9728 100644
--- a/share/cmake-3.16/Help/module/FindwxWindows.rst
+++ b/share/cmake-3.17/Help/module/FindwxWindows.rst
diff --git a/share/cmake-3.16/Help/module/FortranCInterface.rst b/share/cmake-3.17/Help/module/FortranCInterface.rst
index 7afcf15..7afcf15 100644
--- a/share/cmake-3.16/Help/module/FortranCInterface.rst
+++ b/share/cmake-3.17/Help/module/FortranCInterface.rst
diff --git a/share/cmake-3.16/Help/module/GNUInstallDirs.rst b/share/cmake-3.17/Help/module/GNUInstallDirs.rst
index 79d3570..79d3570 100644
--- a/share/cmake-3.16/Help/module/GNUInstallDirs.rst
+++ b/share/cmake-3.17/Help/module/GNUInstallDirs.rst
diff --git a/share/cmake-3.16/Help/module/GenerateExportHeader.rst b/share/cmake-3.17/Help/module/GenerateExportHeader.rst
index 115713e..115713e 100644
--- a/share/cmake-3.16/Help/module/GenerateExportHeader.rst
+++ b/share/cmake-3.17/Help/module/GenerateExportHeader.rst
diff --git a/share/cmake-3.16/Help/module/GetPrerequisites.rst b/share/cmake-3.17/Help/module/GetPrerequisites.rst
index 84b20c8..84b20c8 100644
--- a/share/cmake-3.16/Help/module/GetPrerequisites.rst
+++ b/share/cmake-3.17/Help/module/GetPrerequisites.rst
diff --git a/share/cmake-3.16/Help/module/GoogleTest.rst b/share/cmake-3.17/Help/module/GoogleTest.rst
index 3d4cc97..3d4cc97 100644
--- a/share/cmake-3.16/Help/module/GoogleTest.rst
+++ b/share/cmake-3.17/Help/module/GoogleTest.rst
diff --git a/share/cmake-3.16/Help/module/InstallRequiredSystemLibraries.rst b/share/cmake-3.17/Help/module/InstallRequiredSystemLibraries.rst
index 5ea9af3..5ea9af3 100644
--- a/share/cmake-3.16/Help/module/InstallRequiredSystemLibraries.rst
+++ b/share/cmake-3.17/Help/module/InstallRequiredSystemLibraries.rst
diff --git a/share/cmake-3.16/Help/module/MacroAddFileDependencies.rst b/share/cmake-3.17/Help/module/MacroAddFileDependencies.rst
index 5f0bf6b..5f0bf6b 100644
--- a/share/cmake-3.16/Help/module/MacroAddFileDependencies.rst
+++ b/share/cmake-3.17/Help/module/MacroAddFileDependencies.rst
diff --git a/share/cmake-3.16/Help/module/ProcessorCount.rst b/share/cmake-3.17/Help/module/ProcessorCount.rst
index 0149d09..0149d09 100644
--- a/share/cmake-3.16/Help/module/ProcessorCount.rst
+++ b/share/cmake-3.17/Help/module/ProcessorCount.rst
diff --git a/share/cmake-3.16/Help/module/SelectLibraryConfigurations.rst b/share/cmake-3.17/Help/module/SelectLibraryConfigurations.rst
index 14fd6f8..14fd6f8 100644
--- a/share/cmake-3.16/Help/module/SelectLibraryConfigurations.rst
+++ b/share/cmake-3.17/Help/module/SelectLibraryConfigurations.rst
diff --git a/share/cmake-3.16/Help/module/SquishTestScript.rst b/share/cmake-3.17/Help/module/SquishTestScript.rst
index 47da404..47da404 100644
--- a/share/cmake-3.16/Help/module/SquishTestScript.rst
+++ b/share/cmake-3.17/Help/module/SquishTestScript.rst
diff --git a/share/cmake-3.16/Help/module/TestBigEndian.rst b/share/cmake-3.17/Help/module/TestBigEndian.rst
index f9e4d2f..f9e4d2f 100644
--- a/share/cmake-3.16/Help/module/TestBigEndian.rst
+++ b/share/cmake-3.17/Help/module/TestBigEndian.rst
diff --git a/share/cmake-3.16/Help/module/TestCXXAcceptsFlag.rst b/share/cmake-3.17/Help/module/TestCXXAcceptsFlag.rst
index ee3d70a..ee3d70a 100644
--- a/share/cmake-3.16/Help/module/TestCXXAcceptsFlag.rst
+++ b/share/cmake-3.17/Help/module/TestCXXAcceptsFlag.rst
diff --git a/share/cmake-3.16/Help/module/TestForANSIForScope.rst b/share/cmake-3.17/Help/module/TestForANSIForScope.rst
index 00d9238..00d9238 100644
--- a/share/cmake-3.16/Help/module/TestForANSIForScope.rst
+++ b/share/cmake-3.17/Help/module/TestForANSIForScope.rst
diff --git a/share/cmake-3.16/Help/module/TestForANSIStreamHeaders.rst b/share/cmake-3.17/Help/module/TestForANSIStreamHeaders.rst
index 212a30b..212a30b 100644
--- a/share/cmake-3.16/Help/module/TestForANSIStreamHeaders.rst
+++ b/share/cmake-3.17/Help/module/TestForANSIStreamHeaders.rst
diff --git a/share/cmake-3.16/Help/module/TestForSSTREAM.rst b/share/cmake-3.17/Help/module/TestForSSTREAM.rst
index d154751..d154751 100644
--- a/share/cmake-3.16/Help/module/TestForSSTREAM.rst
+++ b/share/cmake-3.17/Help/module/TestForSSTREAM.rst
diff --git a/share/cmake-3.16/Help/module/TestForSTDNamespace.rst b/share/cmake-3.17/Help/module/TestForSTDNamespace.rst
index ad989e3..ad989e3 100644
--- a/share/cmake-3.16/Help/module/TestForSTDNamespace.rst
+++ b/share/cmake-3.17/Help/module/TestForSTDNamespace.rst
diff --git a/share/cmake-3.16/Help/module/UseEcos.rst b/share/cmake-3.17/Help/module/UseEcos.rst
index 0e57868..0e57868 100644
--- a/share/cmake-3.16/Help/module/UseEcos.rst
+++ b/share/cmake-3.17/Help/module/UseEcos.rst
diff --git a/share/cmake-3.16/Help/module/UseJava.rst b/share/cmake-3.17/Help/module/UseJava.rst
index fa2f1bd..fa2f1bd 100644
--- a/share/cmake-3.16/Help/module/UseJava.rst
+++ b/share/cmake-3.17/Help/module/UseJava.rst
diff --git a/share/cmake-3.16/Help/module/UseJavaClassFilelist.rst b/share/cmake-3.17/Help/module/UseJavaClassFilelist.rst
index b9cd476..b9cd476 100644
--- a/share/cmake-3.16/Help/module/UseJavaClassFilelist.rst
+++ b/share/cmake-3.17/Help/module/UseJavaClassFilelist.rst
diff --git a/share/cmake-3.16/Help/module/UseJavaSymlinks.rst b/share/cmake-3.17/Help/module/UseJavaSymlinks.rst
index 2fab8e8..2fab8e8 100644
--- a/share/cmake-3.16/Help/module/UseJavaSymlinks.rst
+++ b/share/cmake-3.17/Help/module/UseJavaSymlinks.rst
diff --git a/share/cmake-3.16/Help/module/UsePkgConfig.rst b/share/cmake-3.17/Help/module/UsePkgConfig.rst
index 668f766..668f766 100644
--- a/share/cmake-3.16/Help/module/UsePkgConfig.rst
+++ b/share/cmake-3.17/Help/module/UsePkgConfig.rst
diff --git a/share/cmake-3.16/Help/module/UseSWIG.rst b/share/cmake-3.17/Help/module/UseSWIG.rst
index 0007c35..0007c35 100644
--- a/share/cmake-3.16/Help/module/UseSWIG.rst
+++ b/share/cmake-3.17/Help/module/UseSWIG.rst
diff --git a/share/cmake-3.16/Help/module/Use_wxWindows.rst b/share/cmake-3.17/Help/module/Use_wxWindows.rst
index a489e98..a489e98 100644
--- a/share/cmake-3.16/Help/module/Use_wxWindows.rst
+++ b/share/cmake-3.17/Help/module/Use_wxWindows.rst
diff --git a/share/cmake-3.16/Help/module/UsewxWidgets.rst b/share/cmake-3.17/Help/module/UsewxWidgets.rst
index 6829c2d..6829c2d 100644
--- a/share/cmake-3.16/Help/module/UsewxWidgets.rst
+++ b/share/cmake-3.17/Help/module/UsewxWidgets.rst
diff --git a/share/cmake-3.16/Help/module/WriteBasicConfigVersionFile.rst b/share/cmake-3.17/Help/module/WriteBasicConfigVersionFile.rst
index c637d5d..c637d5d 100644
--- a/share/cmake-3.16/Help/module/WriteBasicConfigVersionFile.rst
+++ b/share/cmake-3.17/Help/module/WriteBasicConfigVersionFile.rst
diff --git a/share/cmake-3.16/Help/module/WriteCompilerDetectionHeader.rst b/share/cmake-3.17/Help/module/WriteCompilerDetectionHeader.rst
index 4c81b48..4c81b48 100644
--- a/share/cmake-3.16/Help/module/WriteCompilerDetectionHeader.rst
+++ b/share/cmake-3.17/Help/module/WriteCompilerDetectionHeader.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0000.rst b/share/cmake-3.17/Help/policy/CMP0000.rst
index aecfa71..aecfa71 100644
--- a/share/cmake-3.16/Help/policy/CMP0000.rst
+++ b/share/cmake-3.17/Help/policy/CMP0000.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0001.rst b/share/cmake-3.17/Help/policy/CMP0001.rst
index 6fa64d9..6fa64d9 100644
--- a/share/cmake-3.16/Help/policy/CMP0001.rst
+++ b/share/cmake-3.17/Help/policy/CMP0001.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0002.rst b/share/cmake-3.17/Help/policy/CMP0002.rst
index dc68d51..dc68d51 100644
--- a/share/cmake-3.16/Help/policy/CMP0002.rst
+++ b/share/cmake-3.17/Help/policy/CMP0002.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0003.rst b/share/cmake-3.17/Help/policy/CMP0003.rst
index dd90883..dd90883 100644
--- a/share/cmake-3.16/Help/policy/CMP0003.rst
+++ b/share/cmake-3.17/Help/policy/CMP0003.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0004.rst b/share/cmake-3.17/Help/policy/CMP0004.rst
index be6d307..be6d307 100644
--- a/share/cmake-3.16/Help/policy/CMP0004.rst
+++ b/share/cmake-3.17/Help/policy/CMP0004.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0005.rst b/share/cmake-3.17/Help/policy/CMP0005.rst
index 59567d5..59567d5 100644
--- a/share/cmake-3.16/Help/policy/CMP0005.rst
+++ b/share/cmake-3.17/Help/policy/CMP0005.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0006.rst b/share/cmake-3.17/Help/policy/CMP0006.rst
index 181958b..181958b 100644
--- a/share/cmake-3.16/Help/policy/CMP0006.rst
+++ b/share/cmake-3.17/Help/policy/CMP0006.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0007.rst b/share/cmake-3.17/Help/policy/CMP0007.rst
index 1006ed3..1006ed3 100644
--- a/share/cmake-3.16/Help/policy/CMP0007.rst
+++ b/share/cmake-3.17/Help/policy/CMP0007.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0008.rst b/share/cmake-3.17/Help/policy/CMP0008.rst
index 18ede82..18ede82 100644
--- a/share/cmake-3.16/Help/policy/CMP0008.rst
+++ b/share/cmake-3.17/Help/policy/CMP0008.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0009.rst b/share/cmake-3.17/Help/policy/CMP0009.rst
index 27cfde0..27cfde0 100644
--- a/share/cmake-3.16/Help/policy/CMP0009.rst
+++ b/share/cmake-3.17/Help/policy/CMP0009.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0010.rst b/share/cmake-3.17/Help/policy/CMP0010.rst
index cfae498..cfae498 100644
--- a/share/cmake-3.16/Help/policy/CMP0010.rst
+++ b/share/cmake-3.17/Help/policy/CMP0010.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0011.rst b/share/cmake-3.17/Help/policy/CMP0011.rst
index 257415c..257415c 100644
--- a/share/cmake-3.16/Help/policy/CMP0011.rst
+++ b/share/cmake-3.17/Help/policy/CMP0011.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0012.rst b/share/cmake-3.17/Help/policy/CMP0012.rst
index 17ec8d3..17ec8d3 100644
--- a/share/cmake-3.16/Help/policy/CMP0012.rst
+++ b/share/cmake-3.17/Help/policy/CMP0012.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0013.rst b/share/cmake-3.17/Help/policy/CMP0013.rst
index dbd67a1..dbd67a1 100644
--- a/share/cmake-3.16/Help/policy/CMP0013.rst
+++ b/share/cmake-3.17/Help/policy/CMP0013.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0014.rst b/share/cmake-3.17/Help/policy/CMP0014.rst
index 331dde5..331dde5 100644
--- a/share/cmake-3.16/Help/policy/CMP0014.rst
+++ b/share/cmake-3.17/Help/policy/CMP0014.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0015.rst b/share/cmake-3.17/Help/policy/CMP0015.rst
index 90d5203..90d5203 100644
--- a/share/cmake-3.16/Help/policy/CMP0015.rst
+++ b/share/cmake-3.17/Help/policy/CMP0015.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0016.rst b/share/cmake-3.17/Help/policy/CMP0016.rst
index 026d02a..026d02a 100644
--- a/share/cmake-3.16/Help/policy/CMP0016.rst
+++ b/share/cmake-3.17/Help/policy/CMP0016.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0017.rst b/share/cmake-3.17/Help/policy/CMP0017.rst
index ca4664e..ca4664e 100644
--- a/share/cmake-3.16/Help/policy/CMP0017.rst
+++ b/share/cmake-3.17/Help/policy/CMP0017.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0018.rst b/share/cmake-3.17/Help/policy/CMP0018.rst
index 6248406..6248406 100644
--- a/share/cmake-3.16/Help/policy/CMP0018.rst
+++ b/share/cmake-3.17/Help/policy/CMP0018.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0019.rst b/share/cmake-3.17/Help/policy/CMP0019.rst
index 682dcdf..682dcdf 100644
--- a/share/cmake-3.16/Help/policy/CMP0019.rst
+++ b/share/cmake-3.17/Help/policy/CMP0019.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0020.rst b/share/cmake-3.17/Help/policy/CMP0020.rst
index 6d27684..6d27684 100644
--- a/share/cmake-3.16/Help/policy/CMP0020.rst
+++ b/share/cmake-3.17/Help/policy/CMP0020.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0021.rst b/share/cmake-3.17/Help/policy/CMP0021.rst
index 937b106..937b106 100644
--- a/share/cmake-3.16/Help/policy/CMP0021.rst
+++ b/share/cmake-3.17/Help/policy/CMP0021.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0022.rst b/share/cmake-3.17/Help/policy/CMP0022.rst
index be60e37..be60e37 100644
--- a/share/cmake-3.16/Help/policy/CMP0022.rst
+++ b/share/cmake-3.17/Help/policy/CMP0022.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0023.rst b/share/cmake-3.17/Help/policy/CMP0023.rst
index 3c72c81..3c72c81 100644
--- a/share/cmake-3.16/Help/policy/CMP0023.rst
+++ b/share/cmake-3.17/Help/policy/CMP0023.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0024.rst b/share/cmake-3.17/Help/policy/CMP0024.rst
index 6e24b04..6e24b04 100644
--- a/share/cmake-3.16/Help/policy/CMP0024.rst
+++ b/share/cmake-3.17/Help/policy/CMP0024.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0025.rst b/share/cmake-3.17/Help/policy/CMP0025.rst
index ba5e1e9..ba5e1e9 100644
--- a/share/cmake-3.16/Help/policy/CMP0025.rst
+++ b/share/cmake-3.17/Help/policy/CMP0025.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0026.rst b/share/cmake-3.17/Help/policy/CMP0026.rst
index 3401d4a..3401d4a 100644
--- a/share/cmake-3.16/Help/policy/CMP0026.rst
+++ b/share/cmake-3.17/Help/policy/CMP0026.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0027.rst b/share/cmake-3.17/Help/policy/CMP0027.rst
index bf7b6a9..bf7b6a9 100644
--- a/share/cmake-3.16/Help/policy/CMP0027.rst
+++ b/share/cmake-3.17/Help/policy/CMP0027.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0028.rst b/share/cmake-3.17/Help/policy/CMP0028.rst
index ab38229..ab38229 100644
--- a/share/cmake-3.16/Help/policy/CMP0028.rst
+++ b/share/cmake-3.17/Help/policy/CMP0028.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0029.rst b/share/cmake-3.17/Help/policy/CMP0029.rst
index aa10b97..aa10b97 100644
--- a/share/cmake-3.16/Help/policy/CMP0029.rst
+++ b/share/cmake-3.17/Help/policy/CMP0029.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0030.rst b/share/cmake-3.17/Help/policy/CMP0030.rst
index 81bbb84..81bbb84 100644
--- a/share/cmake-3.16/Help/policy/CMP0030.rst
+++ b/share/cmake-3.17/Help/policy/CMP0030.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0031.rst b/share/cmake-3.17/Help/policy/CMP0031.rst
index 8c3eef6..8c3eef6 100644
--- a/share/cmake-3.16/Help/policy/CMP0031.rst
+++ b/share/cmake-3.17/Help/policy/CMP0031.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0032.rst b/share/cmake-3.17/Help/policy/CMP0032.rst
index 5c1fa4b..5c1fa4b 100644
--- a/share/cmake-3.16/Help/policy/CMP0032.rst
+++ b/share/cmake-3.17/Help/policy/CMP0032.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0033.rst b/share/cmake-3.17/Help/policy/CMP0033.rst
index 4a6cc59..4a6cc59 100644
--- a/share/cmake-3.16/Help/policy/CMP0033.rst
+++ b/share/cmake-3.17/Help/policy/CMP0033.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0034.rst b/share/cmake-3.17/Help/policy/CMP0034.rst
index 0f3934a..0f3934a 100644
--- a/share/cmake-3.16/Help/policy/CMP0034.rst
+++ b/share/cmake-3.17/Help/policy/CMP0034.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0035.rst b/share/cmake-3.17/Help/policy/CMP0035.rst
index 58199a4..58199a4 100644
--- a/share/cmake-3.16/Help/policy/CMP0035.rst
+++ b/share/cmake-3.17/Help/policy/CMP0035.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0036.rst b/share/cmake-3.17/Help/policy/CMP0036.rst
index 4bcfc54..4bcfc54 100644
--- a/share/cmake-3.16/Help/policy/CMP0036.rst
+++ b/share/cmake-3.17/Help/policy/CMP0036.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0037.rst b/share/cmake-3.17/Help/policy/CMP0037.rst
index 9895fb0..9895fb0 100644
--- a/share/cmake-3.16/Help/policy/CMP0037.rst
+++ b/share/cmake-3.17/Help/policy/CMP0037.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0038.rst b/share/cmake-3.17/Help/policy/CMP0038.rst
index 7fb2209..7fb2209 100644
--- a/share/cmake-3.16/Help/policy/CMP0038.rst
+++ b/share/cmake-3.17/Help/policy/CMP0038.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0039.rst b/share/cmake-3.17/Help/policy/CMP0039.rst
index 4b14e21..4b14e21 100644
--- a/share/cmake-3.16/Help/policy/CMP0039.rst
+++ b/share/cmake-3.17/Help/policy/CMP0039.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0040.rst b/share/cmake-3.17/Help/policy/CMP0040.rst
index 0afe589..0afe589 100644
--- a/share/cmake-3.16/Help/policy/CMP0040.rst
+++ b/share/cmake-3.17/Help/policy/CMP0040.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0041.rst b/share/cmake-3.17/Help/policy/CMP0041.rst
index 3b4df36..3b4df36 100644
--- a/share/cmake-3.16/Help/policy/CMP0041.rst
+++ b/share/cmake-3.17/Help/policy/CMP0041.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0042.rst b/share/cmake-3.17/Help/policy/CMP0042.rst
index 0877564..0877564 100644
--- a/share/cmake-3.16/Help/policy/CMP0042.rst
+++ b/share/cmake-3.17/Help/policy/CMP0042.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0043.rst b/share/cmake-3.17/Help/policy/CMP0043.rst
index 05210ac..05210ac 100644
--- a/share/cmake-3.16/Help/policy/CMP0043.rst
+++ b/share/cmake-3.17/Help/policy/CMP0043.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0044.rst b/share/cmake-3.17/Help/policy/CMP0044.rst
index 6a4d040..6a4d040 100644
--- a/share/cmake-3.16/Help/policy/CMP0044.rst
+++ b/share/cmake-3.17/Help/policy/CMP0044.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0045.rst b/share/cmake-3.17/Help/policy/CMP0045.rst
index 80e217b..80e217b 100644
--- a/share/cmake-3.16/Help/policy/CMP0045.rst
+++ b/share/cmake-3.17/Help/policy/CMP0045.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0046.rst b/share/cmake-3.17/Help/policy/CMP0046.rst
index bf78584..bf78584 100644
--- a/share/cmake-3.16/Help/policy/CMP0046.rst
+++ b/share/cmake-3.17/Help/policy/CMP0046.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0047.rst b/share/cmake-3.17/Help/policy/CMP0047.rst
index 9588edd..9588edd 100644
--- a/share/cmake-3.16/Help/policy/CMP0047.rst
+++ b/share/cmake-3.17/Help/policy/CMP0047.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0048.rst b/share/cmake-3.17/Help/policy/CMP0048.rst
index e63ec01..e63ec01 100644
--- a/share/cmake-3.16/Help/policy/CMP0048.rst
+++ b/share/cmake-3.17/Help/policy/CMP0048.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0049.rst b/share/cmake-3.17/Help/policy/CMP0049.rst
index 49b20be..49b20be 100644
--- a/share/cmake-3.16/Help/policy/CMP0049.rst
+++ b/share/cmake-3.17/Help/policy/CMP0049.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0050.rst b/share/cmake-3.17/Help/policy/CMP0050.rst
index 27e7b1d..27e7b1d 100644
--- a/share/cmake-3.16/Help/policy/CMP0050.rst
+++ b/share/cmake-3.17/Help/policy/CMP0050.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0051.rst b/share/cmake-3.17/Help/policy/CMP0051.rst
index 6b679e5..6b679e5 100644
--- a/share/cmake-3.16/Help/policy/CMP0051.rst
+++ b/share/cmake-3.17/Help/policy/CMP0051.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0052.rst b/share/cmake-3.17/Help/policy/CMP0052.rst
index ee2e6e8..ee2e6e8 100644
--- a/share/cmake-3.16/Help/policy/CMP0052.rst
+++ b/share/cmake-3.17/Help/policy/CMP0052.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0053.rst b/share/cmake-3.17/Help/policy/CMP0053.rst
index 032b3e5..032b3e5 100644
--- a/share/cmake-3.16/Help/policy/CMP0053.rst
+++ b/share/cmake-3.17/Help/policy/CMP0053.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0054.rst b/share/cmake-3.17/Help/policy/CMP0054.rst
index 1e000a6..1e000a6 100644
--- a/share/cmake-3.16/Help/policy/CMP0054.rst
+++ b/share/cmake-3.17/Help/policy/CMP0054.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0055.rst b/share/cmake-3.17/Help/policy/CMP0055.rst
index bc5ad08..bc5ad08 100644
--- a/share/cmake-3.16/Help/policy/CMP0055.rst
+++ b/share/cmake-3.17/Help/policy/CMP0055.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0056.rst b/share/cmake-3.17/Help/policy/CMP0056.rst
index 834da84..834da84 100644
--- a/share/cmake-3.16/Help/policy/CMP0056.rst
+++ b/share/cmake-3.17/Help/policy/CMP0056.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0057.rst b/share/cmake-3.17/Help/policy/CMP0057.rst
index 83db186..83db186 100644
--- a/share/cmake-3.16/Help/policy/CMP0057.rst
+++ b/share/cmake-3.17/Help/policy/CMP0057.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0058.rst b/share/cmake-3.17/Help/policy/CMP0058.rst
index 05efd48..05efd48 100644
--- a/share/cmake-3.16/Help/policy/CMP0058.rst
+++ b/share/cmake-3.17/Help/policy/CMP0058.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0059.rst b/share/cmake-3.17/Help/policy/CMP0059.rst
index bce982e..bce982e 100644
--- a/share/cmake-3.16/Help/policy/CMP0059.rst
+++ b/share/cmake-3.17/Help/policy/CMP0059.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0060.rst b/share/cmake-3.17/Help/policy/CMP0060.rst
index 98ac2cf..98ac2cf 100644
--- a/share/cmake-3.16/Help/policy/CMP0060.rst
+++ b/share/cmake-3.17/Help/policy/CMP0060.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0061.rst b/share/cmake-3.17/Help/policy/CMP0061.rst
index 57e4161..57e4161 100644
--- a/share/cmake-3.16/Help/policy/CMP0061.rst
+++ b/share/cmake-3.17/Help/policy/CMP0061.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0062.rst b/share/cmake-3.17/Help/policy/CMP0062.rst
index 0db7aaf..0db7aaf 100644
--- a/share/cmake-3.16/Help/policy/CMP0062.rst
+++ b/share/cmake-3.17/Help/policy/CMP0062.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0063.rst b/share/cmake-3.17/Help/policy/CMP0063.rst
index d736d06..d736d06 100644
--- a/share/cmake-3.16/Help/policy/CMP0063.rst
+++ b/share/cmake-3.17/Help/policy/CMP0063.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0064.rst b/share/cmake-3.17/Help/policy/CMP0064.rst
index e9a061b..e9a061b 100644
--- a/share/cmake-3.16/Help/policy/CMP0064.rst
+++ b/share/cmake-3.17/Help/policy/CMP0064.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0065.rst b/share/cmake-3.17/Help/policy/CMP0065.rst
index b820aad..b820aad 100644
--- a/share/cmake-3.16/Help/policy/CMP0065.rst
+++ b/share/cmake-3.17/Help/policy/CMP0065.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0066.rst b/share/cmake-3.17/Help/policy/CMP0066.rst
index e110ae1..e110ae1 100644
--- a/share/cmake-3.16/Help/policy/CMP0066.rst
+++ b/share/cmake-3.17/Help/policy/CMP0066.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0067.rst b/share/cmake-3.17/Help/policy/CMP0067.rst
index f802787..f802787 100644
--- a/share/cmake-3.16/Help/policy/CMP0067.rst
+++ b/share/cmake-3.17/Help/policy/CMP0067.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0068.rst b/share/cmake-3.17/Help/policy/CMP0068.rst
index 978a6e3..978a6e3 100644
--- a/share/cmake-3.16/Help/policy/CMP0068.rst
+++ b/share/cmake-3.17/Help/policy/CMP0068.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0069.rst b/share/cmake-3.17/Help/policy/CMP0069.rst
index 0d5ddfd..0d5ddfd 100644
--- a/share/cmake-3.16/Help/policy/CMP0069.rst
+++ b/share/cmake-3.17/Help/policy/CMP0069.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0070.rst b/share/cmake-3.17/Help/policy/CMP0070.rst
index 0fb3617..0fb3617 100644
--- a/share/cmake-3.16/Help/policy/CMP0070.rst
+++ b/share/cmake-3.17/Help/policy/CMP0070.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0071.rst b/share/cmake-3.17/Help/policy/CMP0071.rst
index 855ecf0..855ecf0 100644
--- a/share/cmake-3.16/Help/policy/CMP0071.rst
+++ b/share/cmake-3.17/Help/policy/CMP0071.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0072.rst b/share/cmake-3.17/Help/policy/CMP0072.rst
index 3abbad7..3abbad7 100644
--- a/share/cmake-3.16/Help/policy/CMP0072.rst
+++ b/share/cmake-3.17/Help/policy/CMP0072.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0073.rst b/share/cmake-3.17/Help/policy/CMP0073.rst
index 9bfa0e9..9bfa0e9 100644
--- a/share/cmake-3.16/Help/policy/CMP0073.rst
+++ b/share/cmake-3.17/Help/policy/CMP0073.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0074.rst b/share/cmake-3.17/Help/policy/CMP0074.rst
index 63ebf7b..63ebf7b 100644
--- a/share/cmake-3.16/Help/policy/CMP0074.rst
+++ b/share/cmake-3.17/Help/policy/CMP0074.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0075.rst b/share/cmake-3.17/Help/policy/CMP0075.rst
index aa5c3f7..aa5c3f7 100644
--- a/share/cmake-3.16/Help/policy/CMP0075.rst
+++ b/share/cmake-3.17/Help/policy/CMP0075.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0076.rst b/share/cmake-3.17/Help/policy/CMP0076.rst
index dd25f80..dd25f80 100644
--- a/share/cmake-3.16/Help/policy/CMP0076.rst
+++ b/share/cmake-3.17/Help/policy/CMP0076.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0077.rst b/share/cmake-3.17/Help/policy/CMP0077.rst
index 44797b6..44797b6 100644
--- a/share/cmake-3.16/Help/policy/CMP0077.rst
+++ b/share/cmake-3.17/Help/policy/CMP0077.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0078.rst b/share/cmake-3.17/Help/policy/CMP0078.rst
index 2e97934..2e97934 100644
--- a/share/cmake-3.16/Help/policy/CMP0078.rst
+++ b/share/cmake-3.17/Help/policy/CMP0078.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0079.rst b/share/cmake-3.17/Help/policy/CMP0079.rst
index 0244d6c..0244d6c 100644
--- a/share/cmake-3.16/Help/policy/CMP0079.rst
+++ b/share/cmake-3.17/Help/policy/CMP0079.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0080.rst b/share/cmake-3.17/Help/policy/CMP0080.rst
index 5ce9591..5ce9591 100644
--- a/share/cmake-3.16/Help/policy/CMP0080.rst
+++ b/share/cmake-3.17/Help/policy/CMP0080.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0081.rst b/share/cmake-3.17/Help/policy/CMP0081.rst
index d3b2872..d3b2872 100644
--- a/share/cmake-3.16/Help/policy/CMP0081.rst
+++ b/share/cmake-3.17/Help/policy/CMP0081.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0082.rst b/share/cmake-3.17/Help/policy/CMP0082.rst
index d887616..d887616 100644
--- a/share/cmake-3.16/Help/policy/CMP0082.rst
+++ b/share/cmake-3.17/Help/policy/CMP0082.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0083.rst b/share/cmake-3.17/Help/policy/CMP0083.rst
index e0b09cf..e0b09cf 100644
--- a/share/cmake-3.16/Help/policy/CMP0083.rst
+++ b/share/cmake-3.17/Help/policy/CMP0083.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0084.rst b/share/cmake-3.17/Help/policy/CMP0084.rst
index 713d295..713d295 100644
--- a/share/cmake-3.16/Help/policy/CMP0084.rst
+++ b/share/cmake-3.17/Help/policy/CMP0084.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0085.rst b/share/cmake-3.17/Help/policy/CMP0085.rst
index d9ec9a2..d9ec9a2 100644
--- a/share/cmake-3.16/Help/policy/CMP0085.rst
+++ b/share/cmake-3.17/Help/policy/CMP0085.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0086.rst b/share/cmake-3.17/Help/policy/CMP0086.rst
index 4a9e8b8..4a9e8b8 100644
--- a/share/cmake-3.16/Help/policy/CMP0086.rst
+++ b/share/cmake-3.17/Help/policy/CMP0086.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0087.rst b/share/cmake-3.17/Help/policy/CMP0087.rst
index 4c45b99..4c45b99 100644
--- a/share/cmake-3.16/Help/policy/CMP0087.rst
+++ b/share/cmake-3.17/Help/policy/CMP0087.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0088.rst b/share/cmake-3.17/Help/policy/CMP0088.rst
index 82c04ef..82c04ef 100644
--- a/share/cmake-3.16/Help/policy/CMP0088.rst
+++ b/share/cmake-3.17/Help/policy/CMP0088.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0089.rst b/share/cmake-3.17/Help/policy/CMP0089.rst
index 029de55..029de55 100644
--- a/share/cmake-3.16/Help/policy/CMP0089.rst
+++ b/share/cmake-3.17/Help/policy/CMP0089.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0090.rst b/share/cmake-3.17/Help/policy/CMP0090.rst
index 720c17c..720c17c 100644
--- a/share/cmake-3.16/Help/policy/CMP0090.rst
+++ b/share/cmake-3.17/Help/policy/CMP0090.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0091.rst b/share/cmake-3.17/Help/policy/CMP0091.rst
index 1a5878a..1a5878a 100644
--- a/share/cmake-3.16/Help/policy/CMP0091.rst
+++ b/share/cmake-3.17/Help/policy/CMP0091.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0092.rst b/share/cmake-3.17/Help/policy/CMP0092.rst
index 8d3a288..8d3a288 100644
--- a/share/cmake-3.16/Help/policy/CMP0092.rst
+++ b/share/cmake-3.17/Help/policy/CMP0092.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0093.rst b/share/cmake-3.17/Help/policy/CMP0093.rst
index 0ffc493..0ffc493 100644
--- a/share/cmake-3.16/Help/policy/CMP0093.rst
+++ b/share/cmake-3.17/Help/policy/CMP0093.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0094.rst b/share/cmake-3.17/Help/policy/CMP0094.rst
index 836f30f..836f30f 100644
--- a/share/cmake-3.16/Help/policy/CMP0094.rst
+++ b/share/cmake-3.17/Help/policy/CMP0094.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0095.rst b/share/cmake-3.17/Help/policy/CMP0095.rst
index 4c56a05..4c56a05 100644
--- a/share/cmake-3.16/Help/policy/CMP0095.rst
+++ b/share/cmake-3.17/Help/policy/CMP0095.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0096.rst b/share/cmake-3.17/Help/policy/CMP0096.rst
index 8eaf0f9..8eaf0f9 100644
--- a/share/cmake-3.16/Help/policy/CMP0096.rst
+++ b/share/cmake-3.17/Help/policy/CMP0096.rst
diff --git a/share/cmake-3.16/Help/policy/CMP0097.rst b/share/cmake-3.17/Help/policy/CMP0097.rst
index 4840aa6..4840aa6 100644
--- a/share/cmake-3.16/Help/policy/CMP0097.rst
+++ b/share/cmake-3.17/Help/policy/CMP0097.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0098.rst b/share/cmake-3.17/Help/policy/CMP0098.rst
new file mode 100644
index 0000000..6d1443b
--- /dev/null
+++ b/share/cmake-3.17/Help/policy/CMP0098.rst
@@ -0,0 +1,30 @@
+CMP0098
+-------
+
+:module:`FindFLEX` runs ``flex`` in directory
+:variable:`CMAKE_CURRENT_BINARY_DIR` when executing.
+
+The module provides a ``FLEX_TARGET`` macro which generates FLEX output.
+In CMake 3.16 and below the macro would generate a custom command that runs
+``flex`` in the current source directory. CMake 3.17 and later prefer to
+run it in the build directory and use :variable:`CMAKE_CURRENT_BINARY_DIR`
+as the ``WORKING_DIRECTORY`` of its :command:`add_custom_command` invocation.
+This ensures that any implicitly generated file is written relative to the
+build tree rather than the source tree, unless the generated file is
+provided as absolute path.
+
+This policy provides compatibility for projects that have not been updated
+to expect the new behavior.
+
+The ``OLD`` behavior for this policy is for ``FLEX_TARGET`` to use
+the current source directory for the ``WORKING_DIRECTORY`` and where
+to generate implicit files. The ``NEW`` behavior of this policy is to
+use the current binary directory for the ``WORKING_DIRECTORY`` relative to
+which implicit files are generated unless provided as absolute path.
+
+This policy was introduced in CMake version 3.17. Use the
+:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
+Unlike many policies, CMake version |release| does *not* warn
+when this policy is not set and simply uses ``OLD`` behavior.
+
+.. include:: DEPRECATED.txt
diff --git a/share/cmake-3.17/Help/policy/CMP0099.rst b/share/cmake-3.17/Help/policy/CMP0099.rst
new file mode 100644
index 0000000..c897e7b
--- /dev/null
+++ b/share/cmake-3.17/Help/policy/CMP0099.rst
@@ -0,0 +1,24 @@
+CMP0099
+-------
+
+Target link properties :prop_tgt:`INTERFACE_LINK_OPTIONS`,
+:prop_tgt:`INTERFACE_LINK_DIRECTORIES` and :prop_tgt:`INTERFACE_LINK_DEPENDS`
+are now transitive over private dependencies of static libraries.
+
+In CMake 3.16 and below the interface link properties attached to libraries
+are not propagated for private dependencies of static libraries.
+Only the libraries themselves are propagated to link the dependent binary.
+CMake 3.17 and later prefer to propagate all interface link properties.
+This policy provides compatibility for projects that have not been updated
+to expect the new behavior.
+
+The ``OLD`` behavior for this policy is to not propagate interface link
+properties. The ``NEW`` behavior of this policy is to propagate interface link
+properties.
+
+This policy was introduced in CMake version 3.17. Use the
+:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
+Unlike many policies, CMake version |release| does *not* warn
+when this policy is not set and simply uses ``OLD`` behavior.
+
+.. include:: DEPRECATED.txt
diff --git a/share/cmake-3.17/Help/policy/CMP0100.rst b/share/cmake-3.17/Help/policy/CMP0100.rst
new file mode 100644
index 0000000..b24d013
--- /dev/null
+++ b/share/cmake-3.17/Help/policy/CMP0100.rst
@@ -0,0 +1,40 @@
+CMP0100
+-------
+
+Let :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC` process
+header files that end with a ``.hh`` extension.
+
+Since version 3.17, CMake processes header files that end with a
+``.hh`` extension in :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`.
+In earlier CMake versions, these header files were ignored by
+:prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`.
+
+This policy affects how header files that end with a ``.hh`` extension
+get treated in :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`.
+
+The ``OLD`` behavior for this policy is to ignore ``.hh`` header files
+in :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`.
+
+The ``NEW`` behavior for this policy is to process ``.hh`` header files
+in :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC` just like other header files.
+
+.. note::
+
+ To silence the ``CMP0100`` warning source files can be excluded from
+ :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC` processing by setting the
+ source file properties :prop_sf:`SKIP_AUTOMOC`, :prop_sf:`SKIP_AUTOUIC` or
+ :prop_sf:`SKIP_AUTOGEN`.
+
+ .. code-block:: cmake
+
+ # Source skip example:
+ set_property(SOURCE /path/to/file1.hh PROPERTY SKIP_AUTOMOC ON)
+ set_property(SOURCE /path/to/file2.hh PROPERTY SKIP_AUTOUIC ON)
+ set_property(SOURCE /path/to/file3.hh PROPERTY SKIP_AUTOGEN ON)
+
+This policy was introduced in CMake version 3.17.0. CMake version
+|release| warns when the policy is not set and uses ``OLD`` behavior.
+Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW``
+explicitly.
+
+.. include:: DEPRECATED.txt
diff --git a/share/cmake-3.17/Help/policy/CMP0101.rst b/share/cmake-3.17/Help/policy/CMP0101.rst
new file mode 100644
index 0000000..9941acf
--- /dev/null
+++ b/share/cmake-3.17/Help/policy/CMP0101.rst
@@ -0,0 +1,20 @@
+CMP0101
+-------
+
+:command:`target_compile_options` now honors ``BEFORE`` keyword in all scopes.
+
+In CMake 3.16 and below the :command:`target_compile_options` ignores the
+``BEFORE`` keyword in private scope. CMake 3.17 and later honors
+``BEFORE`` keyword in all scopes. This policy provides compatibility for
+projects that have not been updated to expect the new behavior.
+
+The ``OLD`` behavior for this policy is to not honor ``BEFORE`` keyword in
+private scope. The ``NEW`` behavior of this policy is to honor
+``BEFORE`` keyword in all scopes.
+
+This policy was introduced in CMake version 3.17. Use the
+:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
+Unlike many policies, CMake version |release| does *not* warn
+when this policy is not set and simply uses ``OLD`` behavior.
+
+.. include:: DEPRECATED.txt
diff --git a/share/cmake-3.17/Help/policy/CMP0102.rst b/share/cmake-3.17/Help/policy/CMP0102.rst
new file mode 100644
index 0000000..9859006
--- /dev/null
+++ b/share/cmake-3.17/Help/policy/CMP0102.rst
@@ -0,0 +1,25 @@
+CMP0102
+-------
+
+The :command:`mark_as_advanced` command no longer creates a cache entry if one
+does not already exist.
+
+In CMake 3.16 and below, if a variable was not defined at all or just defined
+locally, the :command:`mark_as_advanced` command would create a new cache
+entry with an ``UNINITIALIZED`` type and no value. When a :command:`find_path`
+(or other similar ``find_`` command) would next run, it would find this
+undefined cache entry and set it up with an empty string value. This process
+would end up deleting the local variable in the process (due to the way the
+cache works), effectively clearing any stored ``find_`` results that were only
+available in the local scope.
+
+The ``OLD`` behavior for this policy is to create the empty cache definition.
+The ``NEW`` behavior of this policy is to ignore variables which do not
+already exist in the cache.
+
+This policy was introduced in CMake version 3.17. Use the
+:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
+Unlike many policies, CMake version |release| does *not* warn
+when this policy is not set and simply uses ``OLD`` behavior.
+
+.. include:: DEPRECATED.txt
diff --git a/share/cmake-3.16/Help/policy/DEPRECATED.txt b/share/cmake-3.17/Help/policy/DEPRECATED.txt
index f66de55..f66de55 100644
--- a/share/cmake-3.16/Help/policy/DEPRECATED.txt
+++ b/share/cmake-3.17/Help/policy/DEPRECATED.txt
diff --git a/share/cmake-3.16/Help/policy/DISALLOWED_COMMAND.txt b/share/cmake-3.17/Help/policy/DISALLOWED_COMMAND.txt
index 6500bb0..6500bb0 100644
--- a/share/cmake-3.16/Help/policy/DISALLOWED_COMMAND.txt
+++ b/share/cmake-3.17/Help/policy/DISALLOWED_COMMAND.txt
diff --git a/share/cmake-3.16/Help/prop_cache/ADVANCED.rst b/share/cmake-3.17/Help/prop_cache/ADVANCED.rst
index ec4de9d..ec4de9d 100644
--- a/share/cmake-3.16/Help/prop_cache/ADVANCED.rst
+++ b/share/cmake-3.17/Help/prop_cache/ADVANCED.rst
diff --git a/share/cmake-3.16/Help/prop_cache/HELPSTRING.rst b/share/cmake-3.17/Help/prop_cache/HELPSTRING.rst
index 71a86d0..71a86d0 100644
--- a/share/cmake-3.16/Help/prop_cache/HELPSTRING.rst
+++ b/share/cmake-3.17/Help/prop_cache/HELPSTRING.rst
diff --git a/share/cmake-3.16/Help/prop_cache/MODIFIED.rst b/share/cmake-3.17/Help/prop_cache/MODIFIED.rst
index 3ad7035..3ad7035 100644
--- a/share/cmake-3.16/Help/prop_cache/MODIFIED.rst
+++ b/share/cmake-3.17/Help/prop_cache/MODIFIED.rst
diff --git a/share/cmake-3.16/Help/prop_cache/STRINGS.rst b/share/cmake-3.17/Help/prop_cache/STRINGS.rst
index 0e3c326..0e3c326 100644
--- a/share/cmake-3.16/Help/prop_cache/STRINGS.rst
+++ b/share/cmake-3.17/Help/prop_cache/STRINGS.rst
diff --git a/share/cmake-3.16/Help/prop_cache/TYPE.rst b/share/cmake-3.17/Help/prop_cache/TYPE.rst
index 7ca859f..7ca859f 100644
--- a/share/cmake-3.16/Help/prop_cache/TYPE.rst
+++ b/share/cmake-3.17/Help/prop_cache/TYPE.rst
diff --git a/share/cmake-3.16/Help/prop_cache/VALUE.rst b/share/cmake-3.17/Help/prop_cache/VALUE.rst
index 59aabd4..59aabd4 100644
--- a/share/cmake-3.16/Help/prop_cache/VALUE.rst
+++ b/share/cmake-3.17/Help/prop_cache/VALUE.rst
diff --git a/share/cmake-3.16/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst b/share/cmake-3.17/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst
index 051d22a..051d22a 100644
--- a/share/cmake-3.16/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst
+++ b/share/cmake-3.17/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst
diff --git a/share/cmake-3.16/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst b/share/cmake-3.17/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst
index b6f6160..b6f6160 100644
--- a/share/cmake-3.16/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst
+++ b/share/cmake-3.17/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst
diff --git a/share/cmake-3.16/Help/prop_dir/BINARY_DIR.rst b/share/cmake-3.17/Help/prop_dir/BINARY_DIR.rst
index 597c79a..597c79a 100644
--- a/share/cmake-3.16/Help/prop_dir/BINARY_DIR.rst
+++ b/share/cmake-3.17/Help/prop_dir/BINARY_DIR.rst
diff --git a/share/cmake-3.16/Help/prop_dir/BUILDSYSTEM_TARGETS.rst b/share/cmake-3.17/Help/prop_dir/BUILDSYSTEM_TARGETS.rst
index 04bb56e..04bb56e 100644
--- a/share/cmake-3.16/Help/prop_dir/BUILDSYSTEM_TARGETS.rst
+++ b/share/cmake-3.17/Help/prop_dir/BUILDSYSTEM_TARGETS.rst
diff --git a/share/cmake-3.16/Help/prop_dir/CACHE_VARIABLES.rst b/share/cmake-3.17/Help/prop_dir/CACHE_VARIABLES.rst
index 2c66f93..2c66f93 100644
--- a/share/cmake-3.16/Help/prop_dir/CACHE_VARIABLES.rst
+++ b/share/cmake-3.17/Help/prop_dir/CACHE_VARIABLES.rst
diff --git a/share/cmake-3.16/Help/prop_dir/CLEAN_NO_CUSTOM.rst b/share/cmake-3.17/Help/prop_dir/CLEAN_NO_CUSTOM.rst
index 5ae78bf..5ae78bf 100644
--- a/share/cmake-3.16/Help/prop_dir/CLEAN_NO_CUSTOM.rst
+++ b/share/cmake-3.17/Help/prop_dir/CLEAN_NO_CUSTOM.rst
diff --git a/share/cmake-3.16/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst b/share/cmake-3.17/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst
index b1aef19..b1aef19 100644
--- a/share/cmake-3.16/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst
+++ b/share/cmake-3.17/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst
diff --git a/share/cmake-3.16/Help/prop_dir/COMPILE_DEFINITIONS.rst b/share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS.rst
index 18f4567..18f4567 100644
--- a/share/cmake-3.16/Help/prop_dir/COMPILE_DEFINITIONS.rst
+++ b/share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS.rst
diff --git a/share/cmake-3.16/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst b/share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst
index a6af45f..a6af45f 100644
--- a/share/cmake-3.16/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_dir/COMPILE_OPTIONS.rst b/share/cmake-3.17/Help/prop_dir/COMPILE_OPTIONS.rst
index 48e8b9b..48e8b9b 100644
--- a/share/cmake-3.16/Help/prop_dir/COMPILE_OPTIONS.rst
+++ b/share/cmake-3.17/Help/prop_dir/COMPILE_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/prop_dir/DEFINITIONS.rst b/share/cmake-3.17/Help/prop_dir/DEFINITIONS.rst
index 79ac3f3..79ac3f3 100644
--- a/share/cmake-3.16/Help/prop_dir/DEFINITIONS.rst
+++ b/share/cmake-3.17/Help/prop_dir/DEFINITIONS.rst
diff --git a/share/cmake-3.16/Help/prop_dir/EXCLUDE_FROM_ALL.rst b/share/cmake-3.17/Help/prop_dir/EXCLUDE_FROM_ALL.rst
index 8e3cca0..8e3cca0 100644
--- a/share/cmake-3.16/Help/prop_dir/EXCLUDE_FROM_ALL.rst
+++ b/share/cmake-3.17/Help/prop_dir/EXCLUDE_FROM_ALL.rst
diff --git a/share/cmake-3.16/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst b/share/cmake-3.17/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
index f534976..f534976 100644
--- a/share/cmake-3.16/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
+++ b/share/cmake-3.17/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
diff --git a/share/cmake-3.16/Help/prop_dir/INCLUDE_DIRECTORIES.rst b/share/cmake-3.17/Help/prop_dir/INCLUDE_DIRECTORIES.rst
index 5d856b8..5d856b8 100644
--- a/share/cmake-3.16/Help/prop_dir/INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/prop_dir/INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst b/share/cmake-3.17/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst
index bb90c61..bb90c61 100644
--- a/share/cmake-3.16/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst
+++ b/share/cmake-3.17/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst
diff --git a/share/cmake-3.16/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst b/share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst
index 0c78dfb..0c78dfb 100644
--- a/share/cmake-3.16/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst
+++ b/share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst
diff --git a/share/cmake-3.16/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst b/share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
index 840a1db..840a1db 100644
--- a/share/cmake-3.16/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_dir/LABELS.rst b/share/cmake-3.17/Help/prop_dir/LABELS.rst
index de27d90..de27d90 100644
--- a/share/cmake-3.16/Help/prop_dir/LABELS.rst
+++ b/share/cmake-3.17/Help/prop_dir/LABELS.rst
diff --git a/share/cmake-3.16/Help/prop_dir/LINK_DIRECTORIES.rst b/share/cmake-3.17/Help/prop_dir/LINK_DIRECTORIES.rst
index 44dc230..44dc230 100644
--- a/share/cmake-3.16/Help/prop_dir/LINK_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/prop_dir/LINK_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/prop_dir/LINK_OPTIONS.rst b/share/cmake-3.17/Help/prop_dir/LINK_OPTIONS.rst
index 54ac6dd..54ac6dd 100644
--- a/share/cmake-3.16/Help/prop_dir/LINK_OPTIONS.rst
+++ b/share/cmake-3.17/Help/prop_dir/LINK_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/prop_dir/LISTFILE_STACK.rst b/share/cmake-3.17/Help/prop_dir/LISTFILE_STACK.rst
index 22ec4b6..22ec4b6 100644
--- a/share/cmake-3.16/Help/prop_dir/LISTFILE_STACK.rst
+++ b/share/cmake-3.17/Help/prop_dir/LISTFILE_STACK.rst
diff --git a/share/cmake-3.16/Help/prop_dir/MACROS.rst b/share/cmake-3.17/Help/prop_dir/MACROS.rst
index 245cc1b..245cc1b 100644
--- a/share/cmake-3.16/Help/prop_dir/MACROS.rst
+++ b/share/cmake-3.17/Help/prop_dir/MACROS.rst
diff --git a/share/cmake-3.16/Help/prop_dir/PARENT_DIRECTORY.rst b/share/cmake-3.17/Help/prop_dir/PARENT_DIRECTORY.rst
index 3bc5824..3bc5824 100644
--- a/share/cmake-3.16/Help/prop_dir/PARENT_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/prop_dir/PARENT_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/prop_dir/RULE_LAUNCH_COMPILE.rst b/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_COMPILE.rst
index 342d0ae..342d0ae 100644
--- a/share/cmake-3.16/Help/prop_dir/RULE_LAUNCH_COMPILE.rst
+++ b/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_COMPILE.rst
diff --git a/share/cmake-3.16/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst b/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst
index 93d1e01..93d1e01 100644
--- a/share/cmake-3.16/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst
+++ b/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst
diff --git a/share/cmake-3.16/Help/prop_dir/RULE_LAUNCH_LINK.rst b/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_LINK.rst
index 3cfb236..3cfb236 100644
--- a/share/cmake-3.16/Help/prop_dir/RULE_LAUNCH_LINK.rst
+++ b/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_LINK.rst
diff --git a/share/cmake-3.16/Help/prop_dir/SOURCE_DIR.rst b/share/cmake-3.17/Help/prop_dir/SOURCE_DIR.rst
index ac98c3b..ac98c3b 100644
--- a/share/cmake-3.16/Help/prop_dir/SOURCE_DIR.rst
+++ b/share/cmake-3.17/Help/prop_dir/SOURCE_DIR.rst
diff --git a/share/cmake-3.16/Help/prop_dir/SUBDIRECTORIES.rst b/share/cmake-3.17/Help/prop_dir/SUBDIRECTORIES.rst
index 6a0ac80..6a0ac80 100644
--- a/share/cmake-3.16/Help/prop_dir/SUBDIRECTORIES.rst
+++ b/share/cmake-3.17/Help/prop_dir/SUBDIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/prop_dir/TESTS.rst b/share/cmake-3.17/Help/prop_dir/TESTS.rst
index 1c9f6e5..1c9f6e5 100644
--- a/share/cmake-3.16/Help/prop_dir/TESTS.rst
+++ b/share/cmake-3.17/Help/prop_dir/TESTS.rst
diff --git a/share/cmake-3.16/Help/prop_dir/TEST_INCLUDE_FILE.rst b/share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILE.rst
index 31b2382..31b2382 100644
--- a/share/cmake-3.16/Help/prop_dir/TEST_INCLUDE_FILE.rst
+++ b/share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILE.rst
diff --git a/share/cmake-3.16/Help/prop_dir/TEST_INCLUDE_FILES.rst b/share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILES.rst
index c3e4602..c3e4602 100644
--- a/share/cmake-3.16/Help/prop_dir/TEST_INCLUDE_FILES.rst
+++ b/share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILES.rst
diff --git a/share/cmake-3.16/Help/prop_dir/VARIABLES.rst b/share/cmake-3.17/Help/prop_dir/VARIABLES.rst
index 0328295..0328295 100644
--- a/share/cmake-3.16/Help/prop_dir/VARIABLES.rst
+++ b/share/cmake-3.17/Help/prop_dir/VARIABLES.rst
diff --git a/share/cmake-3.16/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst b/share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst
index b65db99..b65db99 100644
--- a/share/cmake-3.16/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst
+++ b/share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst
diff --git a/share/cmake-3.16/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst b/share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst
index 7f8bf61..7f8bf61 100644
--- a/share/cmake-3.16/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst
+++ b/share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst
diff --git a/share/cmake-3.16/Help/prop_dir/VS_STARTUP_PROJECT.rst b/share/cmake-3.17/Help/prop_dir/VS_STARTUP_PROJECT.rst
index 2680dfa..2680dfa 100644
--- a/share/cmake-3.16/Help/prop_dir/VS_STARTUP_PROJECT.rst
+++ b/share/cmake-3.17/Help/prop_dir/VS_STARTUP_PROJECT.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst b/share/cmake-3.17/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst
index 19775ff..19775ff 100644
--- a/share/cmake-3.16/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst
+++ b/share/cmake-3.17/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst b/share/cmake-3.17/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst
index d294eb1..d294eb1 100644
--- a/share/cmake-3.16/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst
+++ b/share/cmake-3.17/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst b/share/cmake-3.17/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
index 0b747b2..0b747b2 100644
--- a/share/cmake-3.16/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
+++ b/share/cmake-3.17/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst b/share/cmake-3.17/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst
index 2455dc7..2455dc7 100644
--- a/share/cmake-3.16/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst
+++ b/share/cmake-3.17/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst b/share/cmake-3.17/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst
index 17666e4..17666e4 100644
--- a/share/cmake-3.16/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst
+++ b/share/cmake-3.17/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst b/share/cmake-3.17/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst
index 65ea95b..65ea95b 100644
--- a/share/cmake-3.16/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst
+++ b/share/cmake-3.17/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/CMAKE_CUDA_KNOWN_FEATURES.rst b/share/cmake-3.17/Help/prop_gbl/CMAKE_CUDA_KNOWN_FEATURES.rst
new file mode 100644
index 0000000..44e37fe
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_gbl/CMAKE_CUDA_KNOWN_FEATURES.rst
@@ -0,0 +1,30 @@
+CMAKE_CUDA_KNOWN_FEATURES
+-------------------------
+
+List of CUDA features known to this version of CMake.
+
+The features listed in this global property may be known to be available to the
+CUDA compiler. If the feature is available with the C++ compiler, it will
+be listed in the :variable:`CMAKE_CUDA_COMPILE_FEATURES` variable.
+
+The features listed here may be used with the :command:`target_compile_features`
+command. See the :manual:`cmake-compile-features(7)` manual for information on
+compile features and a list of supported compilers.
+
+
+The features known to this version of CMake are:
+
+``cuda_std_03``
+ Compiler mode is at least CUDA/C++ 03.
+
+``cuda_std_11``
+ Compiler mode is at least CUDA/C++ 11.
+
+``cuda_std_14``
+ Compiler mode is at least CUDA/C++ 14.
+
+``cuda_std_17``
+ Compiler mode is at least CUDA/C++ 17.
+
+``cuda_std_20``
+ Compiler mode is at least CUDA/C++ 20.
diff --git a/share/cmake-3.16/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst b/share/cmake-3.17/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
index b921c6b..b921c6b 100644
--- a/share/cmake-3.16/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/share/cmake-3.17/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst b/share/cmake-3.17/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst
index e5f896e..e5f896e 100644
--- a/share/cmake-3.16/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst
+++ b/share/cmake-3.17/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/CMAKE_ROLE.rst b/share/cmake-3.17/Help/prop_gbl/CMAKE_ROLE.rst
index 27512fa..27512fa 100644
--- a/share/cmake-3.16/Help/prop_gbl/CMAKE_ROLE.rst
+++ b/share/cmake-3.17/Help/prop_gbl/CMAKE_ROLE.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst b/share/cmake-3.17/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst
index fec6fda..fec6fda 100644
--- a/share/cmake-3.16/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst
+++ b/share/cmake-3.17/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/DISABLED_FEATURES.rst b/share/cmake-3.17/Help/prop_gbl/DISABLED_FEATURES.rst
index 882bbfa..882bbfa 100644
--- a/share/cmake-3.16/Help/prop_gbl/DISABLED_FEATURES.rst
+++ b/share/cmake-3.17/Help/prop_gbl/DISABLED_FEATURES.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst b/share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst
index 50c41a9..50c41a9 100644
--- a/share/cmake-3.16/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst
+++ b/share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst b/share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst
index a46575f..a46575f 100644
--- a/share/cmake-3.16/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst
+++ b/share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/ENABLED_FEATURES.rst b/share/cmake-3.17/Help/prop_gbl/ENABLED_FEATURES.rst
index acbb3d0..acbb3d0 100644
--- a/share/cmake-3.16/Help/prop_gbl/ENABLED_FEATURES.rst
+++ b/share/cmake-3.17/Help/prop_gbl/ENABLED_FEATURES.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/ENABLED_LANGUAGES.rst b/share/cmake-3.17/Help/prop_gbl/ENABLED_LANGUAGES.rst
index 43e3c09..43e3c09 100644
--- a/share/cmake-3.16/Help/prop_gbl/ENABLED_LANGUAGES.rst
+++ b/share/cmake-3.17/Help/prop_gbl/ENABLED_LANGUAGES.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst b/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst
index 8396026..8396026 100644
--- a/share/cmake-3.16/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst
+++ b/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst b/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst
index ed343ba..ed343ba 100644
--- a/share/cmake-3.16/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst
+++ b/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst b/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst
index b87b09b..b87b09b 100644
--- a/share/cmake-3.16/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst
+++ b/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst b/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst
index beb94ac..beb94ac 100644
--- a/share/cmake-3.16/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst
+++ b/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst b/share/cmake-3.17/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst
index b8ec8a6..b8ec8a6 100644
--- a/share/cmake-3.16/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst b/share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst
index 832503b..832503b 100644
--- a/share/cmake-3.16/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst
+++ b/share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst b/share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst
index d10661e..d10661e 100644
--- a/share/cmake-3.16/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst
+++ b/share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/IN_TRY_COMPILE.rst b/share/cmake-3.17/Help/prop_gbl/IN_TRY_COMPILE.rst
index fd2d2e1..fd2d2e1 100644
--- a/share/cmake-3.16/Help/prop_gbl/IN_TRY_COMPILE.rst
+++ b/share/cmake-3.17/Help/prop_gbl/IN_TRY_COMPILE.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/JOB_POOLS.rst b/share/cmake-3.17/Help/prop_gbl/JOB_POOLS.rst
index 21da466..21da466 100644
--- a/share/cmake-3.16/Help/prop_gbl/JOB_POOLS.rst
+++ b/share/cmake-3.17/Help/prop_gbl/JOB_POOLS.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/PACKAGES_FOUND.rst b/share/cmake-3.17/Help/prop_gbl/PACKAGES_FOUND.rst
index 61cce1f..61cce1f 100644
--- a/share/cmake-3.16/Help/prop_gbl/PACKAGES_FOUND.rst
+++ b/share/cmake-3.17/Help/prop_gbl/PACKAGES_FOUND.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/PACKAGES_NOT_FOUND.rst b/share/cmake-3.17/Help/prop_gbl/PACKAGES_NOT_FOUND.rst
index ca3c5ba..ca3c5ba 100644
--- a/share/cmake-3.16/Help/prop_gbl/PACKAGES_NOT_FOUND.rst
+++ b/share/cmake-3.17/Help/prop_gbl/PACKAGES_NOT_FOUND.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst b/share/cmake-3.17/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst
index bf8c9a3..bf8c9a3 100644
--- a/share/cmake-3.16/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst
+++ b/share/cmake-3.17/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst b/share/cmake-3.17/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst
index 29ba365..29ba365 100644
--- a/share/cmake-3.16/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst
+++ b/share/cmake-3.17/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst b/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst
index e0df878..e0df878 100644
--- a/share/cmake-3.16/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst
+++ b/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst b/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst
index b20c59b..b20c59b 100644
--- a/share/cmake-3.16/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst
+++ b/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/RULE_LAUNCH_LINK.rst b/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_LINK.rst
index 567bb68..567bb68 100644
--- a/share/cmake-3.16/Help/prop_gbl/RULE_LAUNCH_LINK.rst
+++ b/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_LINK.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/RULE_MESSAGES.rst b/share/cmake-3.17/Help/prop_gbl/RULE_MESSAGES.rst
index a9734a7..a9734a7 100644
--- a/share/cmake-3.16/Help/prop_gbl/RULE_MESSAGES.rst
+++ b/share/cmake-3.17/Help/prop_gbl/RULE_MESSAGES.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst b/share/cmake-3.17/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst
index 930feba..930feba 100644
--- a/share/cmake-3.16/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst
+++ b/share/cmake-3.17/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/TARGET_MESSAGES.rst b/share/cmake-3.17/Help/prop_gbl/TARGET_MESSAGES.rst
index 275b074..275b074 100644
--- a/share/cmake-3.16/Help/prop_gbl/TARGET_MESSAGES.rst
+++ b/share/cmake-3.17/Help/prop_gbl/TARGET_MESSAGES.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst b/share/cmake-3.17/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst
index f6e89fb..f6e89fb 100644
--- a/share/cmake-3.16/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst
+++ b/share/cmake-3.17/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/USE_FOLDERS.rst b/share/cmake-3.17/Help/prop_gbl/USE_FOLDERS.rst
index 5919723..5919723 100644
--- a/share/cmake-3.16/Help/prop_gbl/USE_FOLDERS.rst
+++ b/share/cmake-3.17/Help/prop_gbl/USE_FOLDERS.rst
diff --git a/share/cmake-3.16/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst b/share/cmake-3.17/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst
index 9500443..9500443 100644
--- a/share/cmake-3.16/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst
+++ b/share/cmake-3.17/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst
diff --git a/share/cmake-3.16/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst b/share/cmake-3.17/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst
index 729ab60..729ab60 100644
--- a/share/cmake-3.16/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst
+++ b/share/cmake-3.17/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst
diff --git a/share/cmake-3.16/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst b/share/cmake-3.17/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst
index 4789e25..4789e25 100644
--- a/share/cmake-3.16/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst
+++ b/share/cmake-3.17/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst
diff --git a/share/cmake-3.16/Help/prop_inst/CPACK_PERMANENT.rst b/share/cmake-3.17/Help/prop_inst/CPACK_PERMANENT.rst
index 985de0d..985de0d 100644
--- a/share/cmake-3.16/Help/prop_inst/CPACK_PERMANENT.rst
+++ b/share/cmake-3.17/Help/prop_inst/CPACK_PERMANENT.rst
diff --git a/share/cmake-3.16/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst b/share/cmake-3.17/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst
index d9208b9..d9208b9 100644
--- a/share/cmake-3.16/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst
+++ b/share/cmake-3.17/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst
diff --git a/share/cmake-3.16/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst b/share/cmake-3.17/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst
index 092334a..092334a 100644
--- a/share/cmake-3.16/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst
+++ b/share/cmake-3.17/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst
diff --git a/share/cmake-3.16/Help/prop_inst/CPACK_WIX_ACL.rst b/share/cmake-3.17/Help/prop_inst/CPACK_WIX_ACL.rst
index c88f426..c88f426 100644
--- a/share/cmake-3.16/Help/prop_inst/CPACK_WIX_ACL.rst
+++ b/share/cmake-3.17/Help/prop_inst/CPACK_WIX_ACL.rst
diff --git a/share/cmake-3.16/Help/prop_sf/ABSTRACT.rst b/share/cmake-3.17/Help/prop_sf/ABSTRACT.rst
index 339d115..339d115 100644
--- a/share/cmake-3.16/Help/prop_sf/ABSTRACT.rst
+++ b/share/cmake-3.17/Help/prop_sf/ABSTRACT.rst
diff --git a/share/cmake-3.16/Help/prop_sf/AUTORCC_OPTIONS.rst b/share/cmake-3.17/Help/prop_sf/AUTORCC_OPTIONS.rst
index 2bec033..2bec033 100644
--- a/share/cmake-3.16/Help/prop_sf/AUTORCC_OPTIONS.rst
+++ b/share/cmake-3.17/Help/prop_sf/AUTORCC_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/prop_sf/AUTOUIC_OPTIONS.rst b/share/cmake-3.17/Help/prop_sf/AUTOUIC_OPTIONS.rst
index e2f47ec..e2f47ec 100644
--- a/share/cmake-3.16/Help/prop_sf/AUTOUIC_OPTIONS.rst
+++ b/share/cmake-3.17/Help/prop_sf/AUTOUIC_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/prop_sf/COMPILE_DEFINITIONS.rst b/share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS.rst
index 6317690..6317690 100644
--- a/share/cmake-3.16/Help/prop_sf/COMPILE_DEFINITIONS.rst
+++ b/share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS.rst
diff --git a/share/cmake-3.16/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst b/share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst
index ec867b6..ec867b6 100644
--- a/share/cmake-3.16/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_sf/COMPILE_FLAGS.rst b/share/cmake-3.17/Help/prop_sf/COMPILE_FLAGS.rst
index c211b89..c211b89 100644
--- a/share/cmake-3.16/Help/prop_sf/COMPILE_FLAGS.rst
+++ b/share/cmake-3.17/Help/prop_sf/COMPILE_FLAGS.rst
diff --git a/share/cmake-3.16/Help/prop_sf/COMPILE_OPTIONS.rst b/share/cmake-3.17/Help/prop_sf/COMPILE_OPTIONS.rst
index 7e48271..7e48271 100644
--- a/share/cmake-3.16/Help/prop_sf/COMPILE_OPTIONS.rst
+++ b/share/cmake-3.17/Help/prop_sf/COMPILE_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/prop_sf/EXTERNAL_OBJECT.rst b/share/cmake-3.17/Help/prop_sf/EXTERNAL_OBJECT.rst
index 351c04d..351c04d 100644
--- a/share/cmake-3.16/Help/prop_sf/EXTERNAL_OBJECT.rst
+++ b/share/cmake-3.17/Help/prop_sf/EXTERNAL_OBJECT.rst
diff --git a/share/cmake-3.16/Help/prop_sf/Fortran_FORMAT.rst b/share/cmake-3.17/Help/prop_sf/Fortran_FORMAT.rst
index 1cbbf48..1cbbf48 100644
--- a/share/cmake-3.16/Help/prop_sf/Fortran_FORMAT.rst
+++ b/share/cmake-3.17/Help/prop_sf/Fortran_FORMAT.rst
diff --git a/share/cmake-3.17/Help/prop_sf/GENERATED.rst b/share/cmake-3.17/Help/prop_sf/GENERATED.rst
new file mode 100644
index 0000000..48ff70c
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_sf/GENERATED.rst
@@ -0,0 +1,36 @@
+GENERATED
+---------
+
+Is this source file generated as part of the build or CMake process.
+
+Tells the internal CMake engine that a source file is generated by an outside
+process such as another build step, or the execution of CMake itself.
+This information is then used to exempt the file from any existence or
+validity checks.
+
+Any file that is
+
+- created by the execution of commands such as
+ :command:`add_custom_command` and :command:`file(GENERATE)`
+- listed as one of the ``BYPRODUCTS`` of an :command:`add_custom_command`
+ or :command:`add_custom_target` command, or
+- created by a CMake ``AUTOGEN`` operation such as :prop_tgt:`AUTOMOC`,
+ :prop_tgt:`AUTORCC`, or :prop_tgt:`AUTOUIC`
+
+will be marked with the ``GENERATED`` property.
+
+When a generated file created as the ``OUTPUT`` of an
+:command:`add_custom_command` command is explicitly listed as a source file
+for any target in the same directory scope (which usually means the same
+``CMakeLists.txt`` file), CMake will automatically create a dependency to
+make sure the file is generated before building that target.
+
+The :ref:`Makefile Generators` will remove ``GENERATED`` files during
+``make clean``.
+
+Generated sources may be hidden in some IDE tools, while in others they might
+be shown. For the special case of sources generated by CMake's :prop_tgt:`AUTOMOC`
+or :prop_tgt:`AUTORCC` functionality, the :prop_gbl:`AUTOGEN_SOURCE_GROUP`,
+:prop_gbl:`AUTOMOC_SOURCE_GROUP` and :prop_gbl:`AUTORCC_SOURCE_GROUP` target
+properties may influence where the generated sources are grouped in the project's
+file lists.
diff --git a/share/cmake-3.16/Help/prop_sf/HEADER_FILE_ONLY.rst b/share/cmake-3.17/Help/prop_sf/HEADER_FILE_ONLY.rst
index 71d62ae..71d62ae 100644
--- a/share/cmake-3.16/Help/prop_sf/HEADER_FILE_ONLY.rst
+++ b/share/cmake-3.17/Help/prop_sf/HEADER_FILE_ONLY.rst
diff --git a/share/cmake-3.16/Help/prop_sf/INCLUDE_DIRECTORIES.rst b/share/cmake-3.17/Help/prop_sf/INCLUDE_DIRECTORIES.rst
index 23de70e..23de70e 100644
--- a/share/cmake-3.16/Help/prop_sf/INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/prop_sf/INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/prop_sf/KEEP_EXTENSION.rst b/share/cmake-3.17/Help/prop_sf/KEEP_EXTENSION.rst
index a32f968..a32f968 100644
--- a/share/cmake-3.16/Help/prop_sf/KEEP_EXTENSION.rst
+++ b/share/cmake-3.17/Help/prop_sf/KEEP_EXTENSION.rst
diff --git a/share/cmake-3.16/Help/prop_sf/LABELS.rst b/share/cmake-3.17/Help/prop_sf/LABELS.rst
index d0d2a0a..d0d2a0a 100644
--- a/share/cmake-3.16/Help/prop_sf/LABELS.rst
+++ b/share/cmake-3.17/Help/prop_sf/LABELS.rst
diff --git a/share/cmake-3.16/Help/prop_sf/LANGUAGE.rst b/share/cmake-3.17/Help/prop_sf/LANGUAGE.rst
index 88d438e..88d438e 100644
--- a/share/cmake-3.16/Help/prop_sf/LANGUAGE.rst
+++ b/share/cmake-3.17/Help/prop_sf/LANGUAGE.rst
diff --git a/share/cmake-3.16/Help/prop_sf/LOCATION.rst b/share/cmake-3.17/Help/prop_sf/LOCATION.rst
index 252d680..252d680 100644
--- a/share/cmake-3.16/Help/prop_sf/LOCATION.rst
+++ b/share/cmake-3.17/Help/prop_sf/LOCATION.rst
diff --git a/share/cmake-3.16/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst b/share/cmake-3.17/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst
index d185d91..d185d91 100644
--- a/share/cmake-3.16/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst
+++ b/share/cmake-3.17/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst
diff --git a/share/cmake-3.16/Help/prop_sf/OBJECT_DEPENDS.rst b/share/cmake-3.17/Help/prop_sf/OBJECT_DEPENDS.rst
index aaff956..aaff956 100644
--- a/share/cmake-3.16/Help/prop_sf/OBJECT_DEPENDS.rst
+++ b/share/cmake-3.17/Help/prop_sf/OBJECT_DEPENDS.rst
diff --git a/share/cmake-3.16/Help/prop_sf/OBJECT_OUTPUTS.rst b/share/cmake-3.17/Help/prop_sf/OBJECT_OUTPUTS.rst
index e7e880b..e7e880b 100644
--- a/share/cmake-3.16/Help/prop_sf/OBJECT_OUTPUTS.rst
+++ b/share/cmake-3.17/Help/prop_sf/OBJECT_OUTPUTS.rst
diff --git a/share/cmake-3.16/Help/prop_sf/SKIP_AUTOGEN.rst b/share/cmake-3.17/Help/prop_sf/SKIP_AUTOGEN.rst
index f31185a..f31185a 100644
--- a/share/cmake-3.16/Help/prop_sf/SKIP_AUTOGEN.rst
+++ b/share/cmake-3.17/Help/prop_sf/SKIP_AUTOGEN.rst
diff --git a/share/cmake-3.16/Help/prop_sf/SKIP_AUTOMOC.rst b/share/cmake-3.17/Help/prop_sf/SKIP_AUTOMOC.rst
index a929448..a929448 100644
--- a/share/cmake-3.16/Help/prop_sf/SKIP_AUTOMOC.rst
+++ b/share/cmake-3.17/Help/prop_sf/SKIP_AUTOMOC.rst
diff --git a/share/cmake-3.16/Help/prop_sf/SKIP_AUTORCC.rst b/share/cmake-3.17/Help/prop_sf/SKIP_AUTORCC.rst
index bccccfc..bccccfc 100644
--- a/share/cmake-3.16/Help/prop_sf/SKIP_AUTORCC.rst
+++ b/share/cmake-3.17/Help/prop_sf/SKIP_AUTORCC.rst
diff --git a/share/cmake-3.16/Help/prop_sf/SKIP_AUTOUIC.rst b/share/cmake-3.17/Help/prop_sf/SKIP_AUTOUIC.rst
index 8c962db..8c962db 100644
--- a/share/cmake-3.16/Help/prop_sf/SKIP_AUTOUIC.rst
+++ b/share/cmake-3.17/Help/prop_sf/SKIP_AUTOUIC.rst
diff --git a/share/cmake-3.16/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst b/share/cmake-3.17/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
index 5f39f30..5f39f30 100644
--- a/share/cmake-3.16/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
+++ b/share/cmake-3.17/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
diff --git a/share/cmake-3.16/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst b/share/cmake-3.17/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst
index 6d1e60d..6d1e60d 100644
--- a/share/cmake-3.16/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst
+++ b/share/cmake-3.17/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst
diff --git a/share/cmake-3.16/Help/prop_sf/SYMBOLIC.rst b/share/cmake-3.17/Help/prop_sf/SYMBOLIC.rst
index 8bebe30..8bebe30 100644
--- a/share/cmake-3.16/Help/prop_sf/SYMBOLIC.rst
+++ b/share/cmake-3.17/Help/prop_sf/SYMBOLIC.rst
diff --git a/share/cmake-3.16/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst b/share/cmake-3.17/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst
index faac2df..faac2df 100644
--- a/share/cmake-3.16/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst
+++ b/share/cmake-3.17/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst
diff --git a/share/cmake-3.16/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst b/share/cmake-3.17/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst
index 5bf5d59..5bf5d59 100644
--- a/share/cmake-3.16/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst
+++ b/share/cmake-3.17/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst b/share/cmake-3.17/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst
index 16c8d83..16c8d83 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_CSHARP_tagname.rst b/share/cmake-3.17/Help/prop_sf/VS_CSHARP_tagname.rst
index 91c4a06..91c4a06 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_CSHARP_tagname.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_CSHARP_tagname.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst b/share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst
index 6a38478..6a38478 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst b/share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst
index 2ce22fc..2ce22fc 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst b/share/cmake-3.17/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst
index db470ef..db470ef 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_RESOURCE_GENERATOR.rst b/share/cmake-3.17/Help/prop_sf/VS_RESOURCE_GENERATOR.rst
index 97e5aac..97e5aac 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_RESOURCE_GENERATOR.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_RESOURCE_GENERATOR.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst b/share/cmake-3.17/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst
index 446dd26..446dd26 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst b/share/cmake-3.17/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst
index c0e60a3..c0e60a3 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst b/share/cmake-3.17/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst
index fe3471f..fe3471f 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_SHADER_FLAGS.rst b/share/cmake-3.17/Help/prop_sf/VS_SHADER_FLAGS.rst
index 0a53afd..0a53afd 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_SHADER_FLAGS.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_SHADER_FLAGS.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_SHADER_MODEL.rst b/share/cmake-3.17/Help/prop_sf/VS_SHADER_MODEL.rst
index b1cf0df..b1cf0df 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_SHADER_MODEL.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_SHADER_MODEL.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst b/share/cmake-3.17/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst
index 093bcc6..093bcc6 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst b/share/cmake-3.17/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst
index e6763d3..e6763d3 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_SHADER_TYPE.rst b/share/cmake-3.17/Help/prop_sf/VS_SHADER_TYPE.rst
index f104837..f104837 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_SHADER_TYPE.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_SHADER_TYPE.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst b/share/cmake-3.17/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst
index 1a5e369..1a5e369 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_TOOL_OVERRIDE.rst b/share/cmake-3.17/Help/prop_sf/VS_TOOL_OVERRIDE.rst
index 8bdc5ca..8bdc5ca 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_TOOL_OVERRIDE.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_TOOL_OVERRIDE.rst
diff --git a/share/cmake-3.16/Help/prop_sf/VS_XAML_TYPE.rst b/share/cmake-3.17/Help/prop_sf/VS_XAML_TYPE.rst
index 1a274ba..1a274ba 100644
--- a/share/cmake-3.16/Help/prop_sf/VS_XAML_TYPE.rst
+++ b/share/cmake-3.17/Help/prop_sf/VS_XAML_TYPE.rst
diff --git a/share/cmake-3.16/Help/prop_sf/WRAP_EXCLUDE.rst b/share/cmake-3.17/Help/prop_sf/WRAP_EXCLUDE.rst
index 638ff03..638ff03 100644
--- a/share/cmake-3.16/Help/prop_sf/WRAP_EXCLUDE.rst
+++ b/share/cmake-3.17/Help/prop_sf/WRAP_EXCLUDE.rst
diff --git a/share/cmake-3.16/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst b/share/cmake-3.17/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst
index b8cf946..b8cf946 100644
--- a/share/cmake-3.16/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst
+++ b/share/cmake-3.17/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst
diff --git a/share/cmake-3.16/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst b/share/cmake-3.17/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst
index 4c93f44..4c93f44 100644
--- a/share/cmake-3.16/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst
+++ b/share/cmake-3.17/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst
diff --git a/share/cmake-3.16/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst b/share/cmake-3.17/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst
index b21891f..b21891f 100644
--- a/share/cmake-3.16/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst
+++ b/share/cmake-3.17/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst
diff --git a/share/cmake-3.16/Help/prop_test/ATTACHED_FILES.rst b/share/cmake-3.17/Help/prop_test/ATTACHED_FILES.rst
index 496d800..496d800 100644
--- a/share/cmake-3.16/Help/prop_test/ATTACHED_FILES.rst
+++ b/share/cmake-3.17/Help/prop_test/ATTACHED_FILES.rst
diff --git a/share/cmake-3.16/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst b/share/cmake-3.17/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst
index add54b2..add54b2 100644
--- a/share/cmake-3.16/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst
+++ b/share/cmake-3.17/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst
diff --git a/share/cmake-3.16/Help/prop_test/COST.rst b/share/cmake-3.17/Help/prop_test/COST.rst
index 9300d7b..9300d7b 100644
--- a/share/cmake-3.16/Help/prop_test/COST.rst
+++ b/share/cmake-3.17/Help/prop_test/COST.rst
diff --git a/share/cmake-3.16/Help/prop_test/DEPENDS.rst b/share/cmake-3.17/Help/prop_test/DEPENDS.rst
index 89c7553..89c7553 100644
--- a/share/cmake-3.16/Help/prop_test/DEPENDS.rst
+++ b/share/cmake-3.17/Help/prop_test/DEPENDS.rst
diff --git a/share/cmake-3.16/Help/prop_test/DISABLED.rst b/share/cmake-3.17/Help/prop_test/DISABLED.rst
index 1d469e8..1d469e8 100644
--- a/share/cmake-3.16/Help/prop_test/DISABLED.rst
+++ b/share/cmake-3.17/Help/prop_test/DISABLED.rst
diff --git a/share/cmake-3.16/Help/prop_test/ENVIRONMENT.rst b/share/cmake-3.17/Help/prop_test/ENVIRONMENT.rst
index 102c792..102c792 100644
--- a/share/cmake-3.16/Help/prop_test/ENVIRONMENT.rst
+++ b/share/cmake-3.17/Help/prop_test/ENVIRONMENT.rst
diff --git a/share/cmake-3.16/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst b/share/cmake-3.17/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst
index facf902..facf902 100644
--- a/share/cmake-3.16/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst
+++ b/share/cmake-3.17/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst
diff --git a/share/cmake-3.16/Help/prop_test/FIXTURES_CLEANUP.rst b/share/cmake-3.17/Help/prop_test/FIXTURES_CLEANUP.rst
index 3075b4d..3075b4d 100644
--- a/share/cmake-3.16/Help/prop_test/FIXTURES_CLEANUP.rst
+++ b/share/cmake-3.17/Help/prop_test/FIXTURES_CLEANUP.rst
diff --git a/share/cmake-3.16/Help/prop_test/FIXTURES_REQUIRED.rst b/share/cmake-3.17/Help/prop_test/FIXTURES_REQUIRED.rst
index e3f60c4..e3f60c4 100644
--- a/share/cmake-3.16/Help/prop_test/FIXTURES_REQUIRED.rst
+++ b/share/cmake-3.17/Help/prop_test/FIXTURES_REQUIRED.rst
diff --git a/share/cmake-3.16/Help/prop_test/FIXTURES_SETUP.rst b/share/cmake-3.17/Help/prop_test/FIXTURES_SETUP.rst
index fdb21cc..fdb21cc 100644
--- a/share/cmake-3.16/Help/prop_test/FIXTURES_SETUP.rst
+++ b/share/cmake-3.17/Help/prop_test/FIXTURES_SETUP.rst
diff --git a/share/cmake-3.16/Help/prop_test/LABELS.rst b/share/cmake-3.17/Help/prop_test/LABELS.rst
index 8d75570..8d75570 100644
--- a/share/cmake-3.16/Help/prop_test/LABELS.rst
+++ b/share/cmake-3.17/Help/prop_test/LABELS.rst
diff --git a/share/cmake-3.16/Help/prop_test/MEASUREMENT.rst b/share/cmake-3.17/Help/prop_test/MEASUREMENT.rst
index de459ed..de459ed 100644
--- a/share/cmake-3.16/Help/prop_test/MEASUREMENT.rst
+++ b/share/cmake-3.17/Help/prop_test/MEASUREMENT.rst
diff --git a/share/cmake-3.16/Help/prop_test/PASS_REGULAR_EXPRESSION.rst b/share/cmake-3.17/Help/prop_test/PASS_REGULAR_EXPRESSION.rst
index 0cd6215..0cd6215 100644
--- a/share/cmake-3.16/Help/prop_test/PASS_REGULAR_EXPRESSION.rst
+++ b/share/cmake-3.17/Help/prop_test/PASS_REGULAR_EXPRESSION.rst
diff --git a/share/cmake-3.16/Help/prop_test/PROCESSORS.rst b/share/cmake-3.17/Help/prop_test/PROCESSORS.rst
index a927c10..a927c10 100644
--- a/share/cmake-3.16/Help/prop_test/PROCESSORS.rst
+++ b/share/cmake-3.17/Help/prop_test/PROCESSORS.rst
diff --git a/share/cmake-3.16/Help/prop_test/PROCESSOR_AFFINITY.rst b/share/cmake-3.17/Help/prop_test/PROCESSOR_AFFINITY.rst
index 38ec179..38ec179 100644
--- a/share/cmake-3.16/Help/prop_test/PROCESSOR_AFFINITY.rst
+++ b/share/cmake-3.17/Help/prop_test/PROCESSOR_AFFINITY.rst
diff --git a/share/cmake-3.16/Help/prop_test/REQUIRED_FILES.rst b/share/cmake-3.17/Help/prop_test/REQUIRED_FILES.rst
index fac357c..fac357c 100644
--- a/share/cmake-3.16/Help/prop_test/REQUIRED_FILES.rst
+++ b/share/cmake-3.17/Help/prop_test/REQUIRED_FILES.rst
diff --git a/share/cmake-3.16/Help/prop_test/RESOURCE_GROUPS.rst b/share/cmake-3.17/Help/prop_test/RESOURCE_GROUPS.rst
index 63c56ce..63c56ce 100644
--- a/share/cmake-3.16/Help/prop_test/RESOURCE_GROUPS.rst
+++ b/share/cmake-3.17/Help/prop_test/RESOURCE_GROUPS.rst
diff --git a/share/cmake-3.16/Help/prop_test/RESOURCE_LOCK.rst b/share/cmake-3.17/Help/prop_test/RESOURCE_LOCK.rst
index 8b13a01..8b13a01 100644
--- a/share/cmake-3.16/Help/prop_test/RESOURCE_LOCK.rst
+++ b/share/cmake-3.17/Help/prop_test/RESOURCE_LOCK.rst
diff --git a/share/cmake-3.16/Help/prop_test/RUN_SERIAL.rst b/share/cmake-3.17/Help/prop_test/RUN_SERIAL.rst
index ab4c542..ab4c542 100644
--- a/share/cmake-3.16/Help/prop_test/RUN_SERIAL.rst
+++ b/share/cmake-3.17/Help/prop_test/RUN_SERIAL.rst
diff --git a/share/cmake-3.16/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst b/share/cmake-3.17/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst
index 2c6d980..2c6d980 100644
--- a/share/cmake-3.16/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst
+++ b/share/cmake-3.17/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst
diff --git a/share/cmake-3.16/Help/prop_test/SKIP_RETURN_CODE.rst b/share/cmake-3.17/Help/prop_test/SKIP_RETURN_CODE.rst
index 23c4c62..23c4c62 100644
--- a/share/cmake-3.16/Help/prop_test/SKIP_RETURN_CODE.rst
+++ b/share/cmake-3.17/Help/prop_test/SKIP_RETURN_CODE.rst
diff --git a/share/cmake-3.16/Help/prop_test/TIMEOUT.rst b/share/cmake-3.17/Help/prop_test/TIMEOUT.rst
index d1cb90d..d1cb90d 100644
--- a/share/cmake-3.16/Help/prop_test/TIMEOUT.rst
+++ b/share/cmake-3.17/Help/prop_test/TIMEOUT.rst
diff --git a/share/cmake-3.16/Help/prop_test/TIMEOUT_AFTER_MATCH.rst b/share/cmake-3.17/Help/prop_test/TIMEOUT_AFTER_MATCH.rst
index d607992..d607992 100644
--- a/share/cmake-3.16/Help/prop_test/TIMEOUT_AFTER_MATCH.rst
+++ b/share/cmake-3.17/Help/prop_test/TIMEOUT_AFTER_MATCH.rst
diff --git a/share/cmake-3.16/Help/prop_test/WILL_FAIL.rst b/share/cmake-3.17/Help/prop_test/WILL_FAIL.rst
index f1f94a4..f1f94a4 100644
--- a/share/cmake-3.16/Help/prop_test/WILL_FAIL.rst
+++ b/share/cmake-3.17/Help/prop_test/WILL_FAIL.rst
diff --git a/share/cmake-3.16/Help/prop_test/WORKING_DIRECTORY.rst b/share/cmake-3.17/Help/prop_test/WORKING_DIRECTORY.rst
index 92a0409..92a0409 100644
--- a/share/cmake-3.16/Help/prop_test/WORKING_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/prop_test/WORKING_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst b/share/cmake-3.17/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst
index 3b9d965..3b9d965 100644
--- a/share/cmake-3.16/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AIX_EXPORT_ALL_SYMBOLS.rst b/share/cmake-3.17/Help/prop_tgt/AIX_EXPORT_ALL_SYMBOLS.rst
new file mode 100644
index 0000000..15ddc0b
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/AIX_EXPORT_ALL_SYMBOLS.rst
@@ -0,0 +1,12 @@
+AIX_EXPORT_ALL_SYMBOLS
+----------------------
+
+On AIX, CMake automatically exports all symbols from shared libraries, and
+from executables with the :prop_tgt:`ENABLE_EXPORTS` target property set.
+Explicitly disable this boolean property to suppress the behavior and
+export no symbols by default. In this case it is expected that the project
+will use other means to export some symbols.
+
+This property is initialized by the value of
+the :variable:`CMAKE_AIX_EXPORT_ALL_SYMBOLS` variable if it is set
+when a target is created.
diff --git a/share/cmake-3.16/Help/prop_tgt/ALIASED_TARGET.rst b/share/cmake-3.17/Help/prop_tgt/ALIASED_TARGET.rst
index f9e6034..f9e6034 100644
--- a/share/cmake-3.16/Help/prop_tgt/ALIASED_TARGET.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ALIASED_TARGET.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst
index af6b405..af6b405 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_API.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_API.rst
index 63464d7..63464d7 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_API.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_API.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_API_MIN.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_API_MIN.rst
index 773ab3f..773ab3f 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_API_MIN.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_API_MIN.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_ARCH.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_ARCH.rst
index 3e07e5a..3e07e5a 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_ARCH.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_ARCH.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst
index 764a582..764a582 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_GUI.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_GUI.rst
index 92e2041..92e2041 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_GUI.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_GUI.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst
index 42937c1..42937c1 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst
index 54f0a8f..54f0a8f 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst
index 90ef1ce..90ef1ce 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst
index 759a37b..759a37b 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst
index d0cd29d..d0cd29d 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_PROCESS_MAX.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_PROCESS_MAX.rst
index 847acae..847acae 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_PROCESS_MAX.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_PROCESS_MAX.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_PROGUARD.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD.rst
index dafc51e..dafc51e 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_PROGUARD.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst
index 0e929d1..0e929d1 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst
index 9533f1a..9533f1a 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst
index 6361896..6361896 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ANDROID_STL_TYPE.rst b/share/cmake-3.17/Help/prop_tgt/ANDROID_STL_TYPE.rst
index 386e96e..386e96e 100644
--- a/share/cmake-3.16/Help/prop_tgt/ANDROID_STL_TYPE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ANDROID_STL_TYPE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst b/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst
index 4221069..4221069 100644
--- a/share/cmake-3.16/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
index 12f8bb7..12f8bb7 100644
--- a/share/cmake-3.16/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst b/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst
index 6150193..6150193 100644
--- a/share/cmake-3.16/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst
index 4f62eb9..4f62eb9 100644
--- a/share/cmake-3.16/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst b/share/cmake-3.17/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst
index 909b14c..909b14c 100644
--- a/share/cmake-3.16/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst b/share/cmake-3.17/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst
index 022bab5..022bab5 100644
--- a/share/cmake-3.16/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_PARALLEL.rst b/share/cmake-3.17/Help/prop_tgt/AUTOGEN_PARALLEL.rst
new file mode 100644
index 0000000..968b619
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOGEN_PARALLEL.rst
@@ -0,0 +1,21 @@
+AUTOGEN_PARALLEL
+----------------
+
+Number of parallel ``moc`` or ``uic`` processes to start when using
+:prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`.
+
+The custom ``<origin>_autogen`` target starts a number of threads of which
+each one parses a source file and on demand starts a ``moc`` or ``uic``
+process. ``AUTOGEN_PARALLEL`` controls how many parallel threads
+(and therefore ``moc`` or ``uic`` processes) are started.
+
+- An empty (or unset) value or the string ``AUTO`` sets the number of
+ threads/processes to the number of physical CPUs on the host system.
+- A positive non zero integer value sets the exact thread/process count.
+- Otherwise a single thread/process is started.
+
+By default ``AUTOGEN_PARALLEL`` is initialized from
+:variable:`CMAKE_AUTOGEN_PARALLEL`.
+
+See the :manual:`cmake-qt(7)` manual for more information on using CMake
+with Qt.
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst b/share/cmake-3.17/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
new file mode 100644
index 0000000..92b52a3
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
@@ -0,0 +1,36 @@
+AUTOGEN_TARGET_DEPENDS
+----------------------
+
+Additional target dependencies of the corresponding ``_autogen`` target.
+
+Targets which have their :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` property
+``ON`` have a corresponding ``_autogen`` target which generates
+``moc`` and ``uic`` files. As this ``_autogen`` target is created at
+generate-time, it is not possible to define dependencies of it using
+e.g. :command:`add_dependencies`. Instead the
+:prop_tgt:`AUTOGEN_TARGET_DEPENDS` target property can be set to a
+:ref:`;-list <CMake Language Lists>` of additional dependencies for the
+``_autogen`` target. Dependencies can be target names or file names.
+
+In total the dependencies of the ``_autogen`` target are composed from
+
+- forwarded origin target dependencies
+ (enabled by default via :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS`)
+- additional user defined dependencies from :prop_tgt:`AUTOGEN_TARGET_DEPENDS`
+
+See the :manual:`cmake-qt(7)` manual for more information on using CMake
+with Qt.
+
+Use cases
+^^^^^^^^^
+
+If :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` depends on a file that is either
+
+- a :prop_sf:`GENERATED` non C++ file (e.g. a :prop_sf:`GENERATED` ``.json``
+ or ``.ui`` file) or
+- a :prop_sf:`GENERATED` C++ file that isn't recognized by :prop_tgt:`AUTOMOC`
+ and :prop_tgt:`AUTOUIC` because it's skipped by :prop_sf:`SKIP_AUTOMOC`,
+ :prop_sf:`SKIP_AUTOUIC`, :prop_sf:`SKIP_AUTOGEN` or :policy:`CMP0071` or
+- a file that isn't in the origin target's sources
+
+it must be added to :prop_tgt:`AUTOGEN_TARGET_DEPENDS`.
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC.rst b/share/cmake-3.17/Help/prop_tgt/AUTOMOC.rst
new file mode 100644
index 0000000..c18859b
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOMOC.rst
@@ -0,0 +1,247 @@
+AUTOMOC
+-------
+
+Should the target be processed with auto-moc (for Qt projects).
+
+:prop_tgt:`AUTOMOC` is a boolean specifying whether CMake will handle the Qt
+``moc`` preprocessor automatically, i.e. without having to use the
+:module:`QT4_WRAP_CPP() <FindQt4>` or ``QT5_WRAP_CPP()`` macro.
+Currently Qt4 and Qt5 are supported.
+
+This property is initialized by the value of the :variable:`CMAKE_AUTOMOC`
+variable if it is set when a target is created.
+
+When this property is set ``ON``, CMake will scan the header and
+source files at build time and invoke ``moc`` accordingly.
+
+
+Header file processing
+^^^^^^^^^^^^^^^^^^^^^^
+
+At configuration time, a list of header files that should be scanned by
+:prop_tgt:`AUTOMOC` is computed from the target's sources.
+
+- All header files in the target's sources are added to the scan list.
+- For all C++ source files ``<source_base>.<source_extension>`` in the
+ target's sources, CMake searches for
+
+ - a regular header with the same base name
+ (``<source_base>.<header_extention>``) and
+ - a private header with the same base name and a ``_p`` suffix
+ (``<source_base>_p.<header_extention>``)
+
+ and adds these to the scan list.
+
+At build time, CMake scans each unknown or modified header file from the
+list and searches for
+
+- a Qt macro from :prop_tgt:`AUTOMOC_MACRO_NAMES`,
+- additional file dependencies from the ``FILE`` argument of a
+ ``Q_PLUGIN_METADATA`` macro and
+- additional file dependencies detected by filters defined in
+ :prop_tgt:`AUTOMOC_DEPEND_FILTERS`.
+
+If a Qt macro is found, then the header will be compiled by the ``moc`` to the
+output file ``moc_<base_name>.cpp``. The complete output file path is
+described in the section `Output file location`_.
+
+The header will be ``moc`` compiled again if a file from the additional file
+dependencies changes.
+
+Header ``moc`` output files ``moc_<base_name>.cpp`` can be included in source
+files. In the section `Including header moc files in sources`_ there is more
+information on that topic.
+
+
+Source file processing
+^^^^^^^^^^^^^^^^^^^^^^
+
+At build time, CMake scans each unknown or modified C++ source file from the
+target's sources for
+
+- a Qt macro from :prop_tgt:`AUTOMOC_MACRO_NAMES`,
+- includes of header ``moc`` files
+ (see `Including header moc files in sources`_),
+- additional file dependencies from the ``FILE`` argument of a
+ ``Q_PLUGIN_METADATA`` macro and
+- additional file dependencies detected by filters defined in
+ :prop_tgt:`AUTOMOC_DEPEND_FILTERS`.
+
+If a Qt macro is found, then the C++ source file
+``<base>.<source_extension>`` is expected to as well contain an include
+statement
+
+.. code-block:: c++
+
+ #include <<base>.moc> // or
+ #include "<base>.moc"
+
+The source file then will be compiled by the ``moc`` to the output file
+``<base>.moc``. A description of the complete output file path is in section
+`Output file location`_.
+
+The source will be ``moc`` compiled again if a file from the additional file
+dependencies changes.
+
+Including header moc files in sources
+"""""""""""""""""""""""""""""""""""""
+
+A source file can include the ``moc`` output file of a header
+``<header_base>.<header_extension>`` by using an include statement of
+the form
+
+.. code-block:: c++
+
+ #include <moc_<header_base>.cpp> // or
+ #include "moc_<header_base>.cpp"
+
+If the ``moc`` output file of a header is included by a source, it will
+be generated in a different location than if it was not included. This is
+described in the section `Output file location`_.
+
+
+Output file location
+^^^^^^^^^^^^^^^^^^^^
+
+Included moc output files
+"""""""""""""""""""""""""
+
+``moc`` output files that are included by a source file will be generated in
+
+- ``<AUTOGEN_BUILD_DIR>/include``
+ for single configuration generators or in
+- ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>``
+ for :prop_gbl:`multi configuration <GENERATOR_IS_MULTI_CONFIG>` generators.
+
+Where ``<AUTOGEN_BUILD_DIR>`` is the value of the target property
+:prop_tgt:`AUTOGEN_BUILD_DIR`.
+
+The include directory is automatically added to the target's
+:prop_tgt:`INCLUDE_DIRECTORIES`.
+
+Not included moc output files
+"""""""""""""""""""""""""""""
+
+``moc`` output files that are not included in a source file will be generated
+in
+
+- ``<AUTOGEN_BUILD_DIR>/<SOURCE_DIR_CHECKSUM>``
+ for single configuration generators or in,
+- ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>/<SOURCE_DIR_CHECKSUM>``
+ for :prop_gbl:`multi configuration <GENERATOR_IS_MULTI_CONFIG>` generators.
+
+Where ``<SOURCE_DIR_CHECKSUM>`` is a checksum computed from the relative
+parent directory path of the ``moc`` input file. This scheme allows to have
+``moc`` input files with the same name in different directories.
+
+All not included ``moc`` output files will be included automatically by the
+CMake generated file
+
+- ``<AUTOGEN_BUILD_DIR>/mocs_compilation.cpp``,
+
+which is added to the target's sources.
+
+
+Qt version detection
+^^^^^^^^^^^^^^^^^^^^
+
+:prop_tgt:`AUTOMOC` enabled targets need to know the Qt major and minor
+version they're working with. The major version usually is provided by the
+``INTERFACE_QT_MAJOR_VERSION`` property of the ``Qt[45]Core`` library,
+that the target links to. To find the minor version, CMake builds a list of
+available Qt versions from
+
+- ``Qt5Core_VERSION_MAJOR`` and ``Qt5Core_VERSION_MINOR`` variables
+ (usually set by ``find_package(Qt5...)``)
+- ``Qt5Core_VERSION_MAJOR`` and ``Qt5Core_VERSION_MINOR`` directory properties
+- ``QT_VERSION_MAJOR`` and ``QT_VERSION_MINOR`` variables
+ (usually set by ``find_package(Qt4...)``)
+- ``QT_VERSION_MAJOR`` and ``QT_VERSION_MINOR`` directory properties
+
+in the context of the :command:`add_executable` or :command:`add_library` call.
+
+Assumed ``INTERFACE_QT_MAJOR_VERSION`` is a valid number, the first
+entry in the list with a matching major version is taken. If no matching major
+version was found, an error is generated.
+If ``INTERFACE_QT_MAJOR_VERSION`` is not a valid number, the first
+entry in the list is taken.
+
+A ``find_package(Qt[45]...)`` call sets the ``QT/Qt5Core_VERSION_MAJOR/MINOR``
+variables. If the call is in a different context than the
+:command:`add_executable` or :command:`add_library` call, e.g. in a function,
+then the version variables might not be available to the :prop_tgt:`AUTOMOC`
+enabled target.
+In that case the version variables can be forwarded from the
+``find_package(Qt[45]...)`` calling context to the :command:`add_executable`
+or :command:`add_library` calling context as directory properties.
+The following Qt5 example demonstrates the procedure.
+
+.. code-block:: cmake
+
+ function (add_qt5_client)
+ find_package(Qt5 REQUIRED QUIET COMPONENTS Core Widgets)
+ ...
+ set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ PROPERTY Qt5Core_VERSION_MAJOR "${Qt5Core_VERSION_MAJOR}")
+ set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ PROPERTY Qt5Core_VERSION_MINOR "${Qt5Core_VERSION_MAJOR}")
+ ...
+ endfunction ()
+ ...
+ add_qt5_client()
+ add_executable(myTarget main.cpp)
+ target_link_libraries(myTarget Qt5::QtWidgets)
+ set_property(TARGET myTarget PROPERTY AUTOMOC ON)
+
+
+Modifiers
+^^^^^^^^^
+
+:prop_tgt:`AUTOMOC_EXECUTABLE`:
+The ``moc`` executable will be detected automatically, but can be forced to
+a certain binary using this target property.
+
+:prop_tgt:`AUTOMOC_MOC_OPTIONS`:
+Additional command line options for ``moc`` can be set in this target property.
+
+:prop_tgt:`AUTOMOC_MACRO_NAMES`:
+This list of Qt macro names can be extended to search for additional macros in
+headers and sources.
+
+:prop_tgt:`AUTOMOC_DEPEND_FILTERS`:
+``moc`` dependency file names can be extracted from headers or sources by
+defining file name filters in this target property.
+
+:prop_tgt:`AUTOMOC_COMPILER_PREDEFINES`:
+Compiler pre definitions for ``moc`` are written to the ``moc_predefs.h`` file.
+The generation of this file can be enabled or disabled in this target property.
+
+:prop_sf:`SKIP_AUTOMOC`:
+Sources and headers can be excluded from :prop_tgt:`AUTOMOC` processing by
+setting this source file property.
+
+:prop_sf:`SKIP_AUTOGEN`:
+Source files can be excluded from :prop_tgt:`AUTOMOC`,
+:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` processing by
+setting this source file property.
+
+:prop_gbl:`AUTOGEN_SOURCE_GROUP`:
+This global property can be used to group files generated by
+:prop_tgt:`AUTOMOC` or :prop_tgt:`AUTORCC` together in an IDE, e.g. in MSVS.
+
+:prop_gbl:`AUTOGEN_TARGETS_FOLDER`:
+This global property can be used to group :prop_tgt:`AUTOMOC`,
+:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` targets together in an IDE,
+e.g. in MSVS.
+
+:variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`:
+A global ``autogen`` target, that depends on all :prop_tgt:`AUTOMOC` or
+:prop_tgt:`AUTOUIC` generated ``<ORIGIN>_autogen`` targets in the project,
+will be generated when this variable is ``ON``.
+
+:prop_tgt:`AUTOGEN_PARALLEL`:
+This target property controls the number of ``moc`` or ``uic`` processes to
+start in parallel during builds.
+
+See the :manual:`cmake-qt(7)` manual for more information on using CMake
+with Qt.
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst b/share/cmake-3.17/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst
index 57a647f..57a647f 100644
--- a/share/cmake-3.16/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst b/share/cmake-3.17/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst
new file mode 100644
index 0000000..6eda26c
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst
@@ -0,0 +1,107 @@
+AUTOMOC_DEPEND_FILTERS
+----------------------
+
+Filter definitions used by :prop_tgt:`AUTOMOC` to extract file names from a
+source file that are registered as additional dependencies for the
+``moc`` file of the source file.
+
+Filters are defined as ``KEYWORD;REGULAR_EXPRESSION`` pairs. First the file
+content is searched for ``KEYWORD``. If it is found at least once, then file
+names are extracted by successively searching for ``REGULAR_EXPRESSION`` and
+taking the first match group.
+
+The file name found in the first match group is searched for
+
+- first in the vicinity of the source file
+- and afterwards in the target's :prop_tgt:`INCLUDE_DIRECTORIES`.
+
+If any of the extracted files changes, then the ``moc`` file for the source
+file gets rebuilt even when the source file itself doesn't change.
+
+If any of the extracted files is :prop_sf:`GENERATED` or if it is not in the
+target's sources, then it might be necessary to add it to the
+``_autogen`` target dependencies.
+See :prop_tgt:`AUTOGEN_TARGET_DEPENDS` for reference.
+
+By default :prop_tgt:`AUTOMOC_DEPEND_FILTERS` is initialized from
+:variable:`CMAKE_AUTOMOC_DEPEND_FILTERS`, which is empty by default.
+
+From Qt 5.15.0 on this variable is ignored as moc is able to output the correct
+dependencies.
+
+See the :manual:`cmake-qt(7)` manual for more information on using CMake
+with Qt.
+
+
+Example 1
+^^^^^^^^^
+
+A header file ``my_class.hpp`` uses a custom macro ``JSON_FILE_MACRO`` which
+is defined in an other header ``macros.hpp``.
+We want the ``moc`` file of ``my_class.hpp`` to depend on the file name
+argument of ``JSON_FILE_MACRO``::
+
+ // my_class.hpp
+ class My_Class : public QObject
+ {
+ Q_OBJECT
+ JSON_FILE_MACRO ( "info.json" )
+ ...
+ };
+
+In ``CMakeLists.txt`` we add a filter to
+:variable:`CMAKE_AUTOMOC_DEPEND_FILTERS` like this::
+
+ list( APPEND CMAKE_AUTOMOC_DEPEND_FILTERS
+ "JSON_FILE_MACRO"
+ "[\n][ \t]*JSON_FILE_MACRO[ \t]*\\([ \t]*\"([^\"]+)\""
+ )
+
+We assume ``info.json`` is a plain (not :prop_sf:`GENERATED`) file that is
+listed in the target's source. Therefore we do not need to add it to
+:prop_tgt:`AUTOGEN_TARGET_DEPENDS`.
+
+Example 2
+^^^^^^^^^
+
+In the target ``my_target`` a header file ``complex_class.hpp`` uses a
+custom macro ``JSON_BASED_CLASS`` which is defined in an other header
+``macros.hpp``::
+
+ // macros.hpp
+ ...
+ #define JSON_BASED_CLASS(name, json) \
+ class name : public QObject \
+ { \
+ Q_OBJECT \
+ Q_PLUGIN_METADATA(IID "demo" FILE json) \
+ name() {} \
+ };
+ ...
+
+::
+
+ // complex_class.hpp
+ #pragma once
+ JSON_BASED_CLASS(Complex_Class, "meta.json")
+ // end of file
+
+Since ``complex_class.hpp`` doesn't contain a ``Q_OBJECT`` macro it would be
+ignored by :prop_tgt:`AUTOMOC`. We change this by adding ``JSON_BASED_CLASS``
+to :variable:`CMAKE_AUTOMOC_MACRO_NAMES`::
+
+ list(APPEND CMAKE_AUTOMOC_MACRO_NAMES "JSON_BASED_CLASS")
+
+We want the ``moc`` file of ``complex_class.hpp`` to depend on
+``meta.json``. So we add a filter to
+:variable:`CMAKE_AUTOMOC_DEPEND_FILTERS`::
+
+ list(APPEND CMAKE_AUTOMOC_DEPEND_FILTERS
+ "JSON_BASED_CLASS"
+ "[\n^][ \t]*JSON_BASED_CLASS[ \t]*\\([^,]*,[ \t]*\"([^\"]+)\""
+ )
+
+Additionally we assume ``meta.json`` is :prop_sf:`GENERATED` which is
+why we have to add it to :prop_tgt:`AUTOGEN_TARGET_DEPENDS`::
+
+ set_property(TARGET my_target APPEND PROPERTY AUTOGEN_TARGET_DEPENDS "meta.json")
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst b/share/cmake-3.17/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst
index 6b66ce8..6b66ce8 100644
--- a/share/cmake-3.16/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst b/share/cmake-3.17/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst
index 5329bba..5329bba 100644
--- a/share/cmake-3.16/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst b/share/cmake-3.17/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst
new file mode 100644
index 0000000..330849b
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst
@@ -0,0 +1,17 @@
+AUTOMOC_MOC_OPTIONS
+-------------------
+
+Additional options for ``moc`` when using :prop_tgt:`AUTOMOC`
+
+This property is only used if the :prop_tgt:`AUTOMOC` property is ``ON``
+for this target. In this case, it holds additional command line
+options which will be used when ``moc`` is executed during the build, i.e.
+it is equivalent to the optional ``OPTIONS`` argument of the
+:module:`qt4_wrap_cpp() <FindQt4>` macro.
+
+This property is initialized by the value of the
+:variable:`CMAKE_AUTOMOC_MOC_OPTIONS` variable if it is set when a target
+is created, or an empty string otherwise.
+
+See the :manual:`cmake-qt(7)` manual for more information on using CMake
+with Qt.
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst b/share/cmake-3.17/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst
new file mode 100644
index 0000000..3e3059d
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst
@@ -0,0 +1,32 @@
+AUTOMOC_PATH_PREFIX
+-------------------
+
+When this property is ``ON``, CMake will generate the ``-p`` path prefix
+option for ``moc`` on :prop_tgt:`AUTOMOC` enabled Qt targets.
+
+To generate the path prefix, CMake tests if the header compiled by ``moc``
+is in any of the target
+:command:`include directories <target_include_directories>`. If so, CMake will
+compute the relative path accordingly. If the header is not in the
+:command:`include directories <target_include_directories>`, CMake will omit
+the ``-p`` path prefix option. ``moc`` usually generates a
+relative include path in that case.
+
+:prop_tgt:`AUTOMOC_PATH_PREFIX` is initialized from the variable
+:variable:`CMAKE_AUTOMOC_PATH_PREFIX`, which is ``ON`` by default.
+
+See the :manual:`cmake-qt(7)` manual for more information on using CMake
+with Qt.
+
+Reproducible builds
+^^^^^^^^^^^^^^^^^^^
+
+For reproducible builds it is recommended to keep headers that are ``moc``
+compiled in one of the target
+:command:`include directories <target_include_directories>` and set
+:prop_tgt:`AUTOMOC_PATH_PREFIX` to ``ON`` (which is the default). This ensures
+that:
+
+- ``moc`` output files are identical on different build setups,
+- ``moc`` output files will compile correctly when the source and/or
+ build directory is a symbolic link.
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTORCC.rst b/share/cmake-3.17/Help/prop_tgt/AUTORCC.rst
new file mode 100644
index 0000000..9a98f44
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/AUTORCC.rst
@@ -0,0 +1,62 @@
+AUTORCC
+-------
+
+Should the target be processed with auto-rcc (for Qt projects).
+
+:prop_tgt:`AUTORCC` is a boolean specifying whether CMake will handle
+the Qt ``rcc`` code generator automatically, i.e. without having to use
+the :module:`QT4_ADD_RESOURCES() <FindQt4>` or ``QT5_ADD_RESOURCES()``
+macro. Currently Qt4 and Qt5 are supported.
+
+When this property is ``ON``, CMake will handle ``.qrc`` files added
+as target sources at build time and invoke ``rcc`` accordingly.
+This property is initialized by the value of the :variable:`CMAKE_AUTORCC`
+variable if it is set when a target is created.
+
+By default :prop_tgt:`AUTORCC` is processed by a
+:command:`custom command <add_custom_command>`.
+If the ``.qrc`` file is :prop_sf:`GENERATED`, a
+:command:`custom target <add_custom_target>` is used instead.
+
+When there are multiple ``.qrc`` files with the same name, CMake will
+generate unspecified unique output file names for ``rcc``. Therefore, if
+``Q_INIT_RESOURCE()`` or ``Q_CLEANUP_RESOURCE()`` need to be used, the
+``.qrc`` file name must be unique.
+
+
+Modifiers
+^^^^^^^^^
+
+:prop_tgt:`AUTORCC_EXECUTABLE`:
+The ``rcc`` executable will be detected automatically, but can be forced to
+a certain binary by setting this target property.
+
+:prop_tgt:`AUTORCC_OPTIONS`:
+Additional command line options for ``rcc`` can be set via this target
+property. The corresponding :prop_sf:`AUTORCC_OPTIONS` source file property
+can be used to specify options to be applied only to a specific ``.qrc`` file.
+
+:prop_sf:`SKIP_AUTORCC`:
+``.qrc`` files can be excluded from :prop_tgt:`AUTORCC` processing by
+setting this source file property.
+
+:prop_sf:`SKIP_AUTOGEN`:
+Source files can be excluded from :prop_tgt:`AUTOMOC`,
+:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` processing by
+setting this source file property.
+
+:prop_gbl:`AUTOGEN_SOURCE_GROUP`:
+This global property can be used to group files generated by
+:prop_tgt:`AUTOMOC` or :prop_tgt:`AUTORCC` together in an IDE, e.g. in MSVS.
+
+:prop_gbl:`AUTOGEN_TARGETS_FOLDER`:
+This global property can be used to group :prop_tgt:`AUTOMOC`,
+:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` targets together in an IDE,
+e.g. in MSVS.
+
+:variable:`CMAKE_GLOBAL_AUTORCC_TARGET`:
+A global ``autorcc`` target that depends on all :prop_tgt:`AUTORCC` targets
+in the project will be generated when this variable is ``ON``.
+
+See the :manual:`cmake-qt(7)` manual for more information on using CMake
+with Qt.
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTORCC_EXECUTABLE.rst b/share/cmake-3.17/Help/prop_tgt/AUTORCC_EXECUTABLE.rst
index ca0fbd7..ca0fbd7 100644
--- a/share/cmake-3.16/Help/prop_tgt/AUTORCC_EXECUTABLE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/AUTORCC_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTORCC_OPTIONS.rst b/share/cmake-3.17/Help/prop_tgt/AUTORCC_OPTIONS.rst
new file mode 100644
index 0000000..5261aff
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/AUTORCC_OPTIONS.rst
@@ -0,0 +1,28 @@
+AUTORCC_OPTIONS
+---------------
+
+Additional options for ``rcc`` when using :prop_tgt:`AUTORCC`
+
+This property holds additional command line options which will be used
+when ``rcc`` is executed during the build via :prop_tgt:`AUTORCC`,
+i.e. it is equivalent to the optional ``OPTIONS`` argument of the
+:module:`qt4_add_resources() <FindQt4>` macro.
+
+This property is initialized by the value of the
+:variable:`CMAKE_AUTORCC_OPTIONS` variable if it is set when a target is
+created, or an empty string otherwise.
+
+The options set on the target may be overridden by :prop_sf:`AUTORCC_OPTIONS`
+set on the ``.qrc`` source file.
+
+See the :manual:`cmake-qt(7)` manual for more information on using CMake
+with Qt.
+
+EXAMPLE
+^^^^^^^
+
+.. code-block:: cmake
+
+ # ...
+ set_property(TARGET tgt PROPERTY AUTORCC_OPTIONS "--compress;9")
+ # ...
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOUIC.rst b/share/cmake-3.17/Help/prop_tgt/AUTOUIC.rst
new file mode 100644
index 0000000..cd24f5e
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOUIC.rst
@@ -0,0 +1,85 @@
+AUTOUIC
+-------
+
+Should the target be processed with auto-uic (for Qt projects).
+
+:prop_tgt:`AUTOUIC` is a boolean specifying whether CMake will handle
+the Qt ``uic`` code generator automatically, i.e. without having to use
+the :module:`QT4_WRAP_UI() <FindQt4>` or ``QT5_WRAP_UI()`` macro. Currently
+Qt4 and Qt5 are supported.
+
+This property is initialized by the value of the :variable:`CMAKE_AUTOUIC`
+variable if it is set when a target is created.
+
+When this property is ``ON``, CMake will scan the header and source files at
+build time and invoke ``uic`` accordingly.
+
+
+Header and source file processing
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+At build time, CMake scans each header and source file from the
+target's sources for include statements of the form
+
+.. code-block:: c++
+
+ #include "ui_<ui_base>.h"
+
+Once such an include statement is found in a file, CMake searches for the
+``uic`` input file ``<ui_base>.ui``
+
+- in the vicinity of the file and
+- in the :prop_tgt:`AUTOUIC_SEARCH_PATHS` of the target.
+
+If the ``<ui_base>.ui`` file was found, ``uic`` is called on it to generate
+``ui_<ui_base>.h`` in the directory
+
+- ``<AUTOGEN_BUILD_DIR>/include`` for single configuration generators or in
+- ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>`` for
+ :prop_gbl:`multi configuration <GENERATOR_IS_MULTI_CONFIG>` generators.
+
+Where ``<AUTOGEN_BUILD_DIR>`` is the value of the target property
+:prop_tgt:`AUTOGEN_BUILD_DIR`.
+
+The include directory is automatically added to the target's
+:prop_tgt:`INCLUDE_DIRECTORIES`.
+
+
+Modifiers
+^^^^^^^^^
+
+:prop_tgt:`AUTOUIC_EXECUTABLE`:
+The ``uic`` executable will be detected automatically, but can be forced to
+a certain binary using this target property.
+
+:prop_tgt:`AUTOUIC_OPTIONS`:
+Additional command line options for ``uic`` can be set via this target
+property. The corresponding :prop_sf:`AUTOUIC_OPTIONS` source file property
+can be used to specify options to be applied only to a specific
+``<base_name>.ui`` file.
+
+:prop_sf:`SKIP_AUTOUIC`:
+Source files can be excluded from :prop_tgt:`AUTOUIC` processing by setting
+this source file property.
+
+:prop_sf:`SKIP_AUTOGEN`:
+Source files can be excluded from :prop_tgt:`AUTOMOC`,
+:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` processing by
+setting this source file property.
+
+:prop_gbl:`AUTOGEN_TARGETS_FOLDER`:
+This global property can be used to group :prop_tgt:`AUTOMOC`,
+:prop_tgt:`AUTOUIC` and :prop_tgt:`AUTORCC` targets together in an IDE,
+e.g. in MSVS.
+
+:variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`:
+A global ``autogen`` target, that depends on all :prop_tgt:`AUTOMOC` or
+:prop_tgt:`AUTOUIC` generated ``<ORIGIN>_autogen`` targets in the project,
+will be generated when this variable is ``ON``.
+
+:prop_tgt:`AUTOGEN_PARALLEL`:
+This target property controls the number of ``moc`` or ``uic`` processes to
+start in parallel during builds.
+
+See the :manual:`cmake-qt(7)` manual for more information on using CMake
+with Qt.
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst b/share/cmake-3.17/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst
index 03bd554..03bd554 100644
--- a/share/cmake-3.16/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOUIC_OPTIONS.rst b/share/cmake-3.17/Help/prop_tgt/AUTOUIC_OPTIONS.rst
new file mode 100644
index 0000000..425ea1c
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOUIC_OPTIONS.rst
@@ -0,0 +1,32 @@
+AUTOUIC_OPTIONS
+---------------
+
+Additional options for ``uic`` when using :prop_tgt:`AUTOUIC`
+
+This property holds additional command line options which will be used when
+``uic`` is executed during the build via :prop_tgt:`AUTOUIC`, i.e. it is
+equivalent to the optional ``OPTIONS`` argument of the
+:module:`qt4_wrap_ui() <FindQt4>` macro.
+
+This property is initialized by the value of the
+:variable:`CMAKE_AUTOUIC_OPTIONS` variable if it is set when a target is
+created, or an empty string otherwise.
+
+The options set on the target may be overridden by :prop_sf:`AUTOUIC_OPTIONS`
+set on the ``.ui`` source file.
+
+This property may use "generator expressions" with the syntax ``$<...>``.
+See the :manual:`cmake-generator-expressions(7)` manual for available
+expressions.
+
+See the :manual:`cmake-qt(7)` manual for more information on using CMake
+with Qt.
+
+EXAMPLE
+^^^^^^^
+
+.. code-block:: cmake
+
+ # ...
+ set_property(TARGET tgt PROPERTY AUTOUIC_OPTIONS "--no-protection")
+ # ...
diff --git a/share/cmake-3.16/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst b/share/cmake-3.17/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst
index 96d9f89..96d9f89 100644
--- a/share/cmake-3.16/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/BINARY_DIR.rst b/share/cmake-3.17/Help/prop_tgt/BINARY_DIR.rst
index 246f7e6..246f7e6 100644
--- a/share/cmake-3.16/Help/prop_tgt/BINARY_DIR.rst
+++ b/share/cmake-3.17/Help/prop_tgt/BINARY_DIR.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/BUILD_RPATH.rst b/share/cmake-3.17/Help/prop_tgt/BUILD_RPATH.rst
index d978b94..d978b94 100644
--- a/share/cmake-3.16/Help/prop_tgt/BUILD_RPATH.rst
+++ b/share/cmake-3.17/Help/prop_tgt/BUILD_RPATH.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst b/share/cmake-3.17/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst
index 3378797..3378797 100644
--- a/share/cmake-3.16/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst
+++ b/share/cmake-3.17/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst b/share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst
index bbb9a24..bbb9a24 100644
--- a/share/cmake-3.16/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst
+++ b/share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst b/share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst
index 0244351..0244351 100644
--- a/share/cmake-3.16/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst
+++ b/share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/BUNDLE.rst b/share/cmake-3.17/Help/prop_tgt/BUNDLE.rst
index c556ac3..c556ac3 100644
--- a/share/cmake-3.16/Help/prop_tgt/BUNDLE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/BUNDLE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/BUNDLE_EXTENSION.rst b/share/cmake-3.17/Help/prop_tgt/BUNDLE_EXTENSION.rst
index 70de11c..70de11c 100644
--- a/share/cmake-3.16/Help/prop_tgt/BUNDLE_EXTENSION.rst
+++ b/share/cmake-3.17/Help/prop_tgt/BUNDLE_EXTENSION.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst b/share/cmake-3.17/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst
index 052ac6d..052ac6d 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst b/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst
index 6910367..6910367 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst
+++ b/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst b/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst
index 298acf1..298acf1 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst
+++ b/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst b/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst
index d5fd825..d5fd825 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst
+++ b/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst b/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst
index a0050b9..a0050b9 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst
+++ b/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPILE_DEFINITIONS.rst b/share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS.rst
index 059f913..059f913 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMPILE_DEFINITIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst
index 84bd5e4..84bd5e4 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_FEATURES.rst b/share/cmake-3.17/Help/prop_tgt/COMPILE_FEATURES.rst
new file mode 100644
index 0000000..46aec4f
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/COMPILE_FEATURES.rst
@@ -0,0 +1,13 @@
+COMPILE_FEATURES
+----------------
+
+Compiler features enabled for this target.
+
+The list of features in this property are a subset of the features listed
+in the :variable:`CMAKE_C_COMPILE_FEATURES`, :variable:`CMAKE_CUDA_COMPILE_FEATURES`, and
+:variable:`CMAKE_CXX_COMPILE_FEATURES` variables.
+
+Contents of ``COMPILE_FEATURES`` may use "generator expressions" with the
+syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` manual for
+available expressions. See the :manual:`cmake-compile-features(7)` manual
+for information on compile features and a list of supported compilers.
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPILE_FLAGS.rst b/share/cmake-3.17/Help/prop_tgt/COMPILE_FLAGS.rst
index 8fe651b..8fe651b 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMPILE_FLAGS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/COMPILE_FLAGS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPILE_OPTIONS.rst b/share/cmake-3.17/Help/prop_tgt/COMPILE_OPTIONS.rst
index 0cd6836..0cd6836 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMPILE_OPTIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/COMPILE_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_NAME.rst b/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME.rst
index 24a9f62..24a9f62 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_NAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst
index e4077f5..e4077f5 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_NOTE.txt b/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NOTE.txt
index 43003d9..43003d9 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_NOTE.txt
+++ b/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NOTE.txt
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst b/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst
index 34f49be..34f49be 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
index f261756..f261756 100644
--- a/share/cmake-3.16/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst b/share/cmake-3.17/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst
index a61c702..a61c702 100644
--- a/share/cmake-3.16/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/CONFIG_POSTFIX.rst b/share/cmake-3.17/Help/prop_tgt/CONFIG_POSTFIX.rst
index 11b50b9..11b50b9 100644
--- a/share/cmake-3.16/Help/prop_tgt/CONFIG_POSTFIX.rst
+++ b/share/cmake-3.17/Help/prop_tgt/CONFIG_POSTFIX.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst b/share/cmake-3.17/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst
index 87c5978..87c5978 100644
--- a/share/cmake-3.16/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst
+++ b/share/cmake-3.17/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/CUDA_EXTENSIONS.rst b/share/cmake-3.17/Help/prop_tgt/CUDA_EXTENSIONS.rst
index 098ca3c..098ca3c 100644
--- a/share/cmake-3.16/Help/prop_tgt/CUDA_EXTENSIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/CUDA_EXTENSIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/CUDA_PTX_COMPILATION.rst b/share/cmake-3.17/Help/prop_tgt/CUDA_PTX_COMPILATION.rst
index 0ee372b..0ee372b 100644
--- a/share/cmake-3.16/Help/prop_tgt/CUDA_PTX_COMPILATION.rst
+++ b/share/cmake-3.17/Help/prop_tgt/CUDA_PTX_COMPILATION.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst b/share/cmake-3.17/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst
index dae960f..dae960f 100644
--- a/share/cmake-3.16/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt b/share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt
new file mode 100644
index 0000000..a6d7050
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt
@@ -0,0 +1,9 @@
+``None``
+ Link with ``-cudart=none`` or equivalent flag(s) to use no CUDA
+ runtime library.
+``Shared``
+ Link with ``-cudart=shared`` or equivalent flag(s) to use a
+ dynamically-linked CUDA runtime library.
+``Static``
+ Link with ``-cudart=static`` or equivalent flag(s) to use a
+ statically-linked CUDA runtime library.
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst b/share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst
new file mode 100644
index 0000000..0782765
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst
@@ -0,0 +1,21 @@
+CUDA_RUNTIME_LIBRARY
+--------------------
+
+Select the CUDA runtime library for use by compilers targeting the CUDA language.
+
+The allowed case insensitive values are:
+
+.. include:: CUDA_RUNTIME_LIBRARY-VALUES.txt
+
+Contents of ``CUDA_RUNTIME_LIBRARY`` may use
+:manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+If this property is not set then CMake uses the default value
+``Static`` to select the CUDA runtime library.
+
+.. note::
+
+ This property has effect only when the ``CUDA`` language is enabled. To
+ control the CUDA runtime linking when only using the CUDA SDK with the
+ ``C`` or ``C++`` language we recommend using the :module:`FindCUDAToolkit`
+ module.
diff --git a/share/cmake-3.16/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst b/share/cmake-3.17/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst
index d306d7f..d306d7f 100644
--- a/share/cmake-3.16/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst
+++ b/share/cmake-3.17/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/CUDA_STANDARD.rst b/share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD.rst
index a3a2f56..a3a2f56 100644
--- a/share/cmake-3.16/Help/prop_tgt/CUDA_STANDARD.rst
+++ b/share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst b/share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst
index b2d5b28..b2d5b28 100644
--- a/share/cmake-3.16/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/CXX_EXTENSIONS.rst b/share/cmake-3.17/Help/prop_tgt/CXX_EXTENSIONS.rst
index 280bb3a..280bb3a 100644
--- a/share/cmake-3.16/Help/prop_tgt/CXX_EXTENSIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/CXX_EXTENSIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/CXX_STANDARD.rst b/share/cmake-3.17/Help/prop_tgt/CXX_STANDARD.rst
index ccc0147..ccc0147 100644
--- a/share/cmake-3.16/Help/prop_tgt/CXX_STANDARD.rst
+++ b/share/cmake-3.17/Help/prop_tgt/CXX_STANDARD.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst b/share/cmake-3.17/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
index 697d7f6..697d7f6 100644
--- a/share/cmake-3.16/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.17/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/C_EXTENSIONS.rst b/share/cmake-3.17/Help/prop_tgt/C_EXTENSIONS.rst
index 05b14ce..05b14ce 100644
--- a/share/cmake-3.16/Help/prop_tgt/C_EXTENSIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/C_EXTENSIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/C_STANDARD.rst b/share/cmake-3.17/Help/prop_tgt/C_STANDARD.rst
index e7f7904..e7f7904 100644
--- a/share/cmake-3.16/Help/prop_tgt/C_STANDARD.rst
+++ b/share/cmake-3.17/Help/prop_tgt/C_STANDARD.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/C_STANDARD_REQUIRED.rst b/share/cmake-3.17/Help/prop_tgt/C_STANDARD_REQUIRED.rst
index acfad98..acfad98 100644
--- a/share/cmake-3.16/Help/prop_tgt/C_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.17/Help/prop_tgt/C_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/DEBUG_POSTFIX.rst b/share/cmake-3.17/Help/prop_tgt/DEBUG_POSTFIX.rst
index 04e312e..04e312e 100644
--- a/share/cmake-3.16/Help/prop_tgt/DEBUG_POSTFIX.rst
+++ b/share/cmake-3.17/Help/prop_tgt/DEBUG_POSTFIX.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/DEFINE_SYMBOL.rst b/share/cmake-3.17/Help/prop_tgt/DEFINE_SYMBOL.rst
index eb7f937..eb7f937 100644
--- a/share/cmake-3.16/Help/prop_tgt/DEFINE_SYMBOL.rst
+++ b/share/cmake-3.17/Help/prop_tgt/DEFINE_SYMBOL.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst b/share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst
index 5e9c191..5e9c191 100644
--- a/share/cmake-3.16/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst b/share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst
index 368768a..368768a 100644
--- a/share/cmake-3.16/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DEPRECATION.rst b/share/cmake-3.17/Help/prop_tgt/DEPRECATION.rst
new file mode 100644
index 0000000..fef2e2e
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/DEPRECATION.rst
@@ -0,0 +1,7 @@
+DEPRECATION
+-----------
+
+Deprecation message from imported target's developer.
+
+``DEPRECATION`` is the message regarding a deprecation status to be displayed
+to downstream users of a target.
diff --git a/share/cmake-3.16/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst b/share/cmake-3.17/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst
index 4cef023..4cef023 100644
--- a/share/cmake-3.16/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK.rst b/share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK.rst
new file mode 100644
index 0000000..8698eb6
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK.rst
@@ -0,0 +1,13 @@
+DOTNET_TARGET_FRAMEWORK
+-----------------------
+
+Specify the .NET target framework.
+
+Used to specify the .NET target framework for C++/CLI and C#. For
+example: ``netcoreapp2.1``.
+
+This property is only evaluated for :ref:`Visual Studio Generators`
+VS 2010 and above.
+
+Can be initialized for all targets using the variable
+:variable:`CMAKE_DOTNET_TARGET_FRAMEWORK`.
diff --git a/share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst b/share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst
new file mode 100644
index 0000000..b33f4fb
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst
@@ -0,0 +1,15 @@
+DOTNET_TARGET_FRAMEWORK_VERSION
+-------------------------------
+
+Specify the .NET target framework version.
+
+Used to specify the .NET target framework version for C++/CLI and C#.
+For example: ``v4.5``.
+
+This property is only evaluated for :ref:`Visual Studio Generators`
+VS 2010 and above.
+
+To initialize this variable for all targets set
+:variable:`CMAKE_DOTNET_TARGET_FRAMEWORK` or
+:variable:`CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION`. If both are set,
+the latter is ignored.
diff --git a/share/cmake-3.16/Help/prop_tgt/ENABLE_EXPORTS.rst b/share/cmake-3.17/Help/prop_tgt/ENABLE_EXPORTS.rst
index 0b1064a..0b1064a 100644
--- a/share/cmake-3.16/Help/prop_tgt/ENABLE_EXPORTS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/ENABLE_EXPORTS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/EXCLUDE_FROM_ALL.rst b/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
index 3aa296d..3aa296d 100644
--- a/share/cmake-3.16/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
+++ b/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst b/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst
index 664704b..664704b 100644
--- a/share/cmake-3.16/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst
+++ b/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst
index ad1021a..ad1021a 100644
--- a/share/cmake-3.16/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/EXPORT_NAME.rst b/share/cmake-3.17/Help/prop_tgt/EXPORT_NAME.rst
index 0e021d0..0e021d0 100644
--- a/share/cmake-3.16/Help/prop_tgt/EXPORT_NAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/EXPORT_NAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/EXPORT_PROPERTIES.rst b/share/cmake-3.17/Help/prop_tgt/EXPORT_PROPERTIES.rst
index bcf47a6..bcf47a6 100644
--- a/share/cmake-3.16/Help/prop_tgt/EXPORT_PROPERTIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/EXPORT_PROPERTIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/EchoString.rst b/share/cmake-3.17/Help/prop_tgt/EchoString.rst
index 352d062..352d062 100644
--- a/share/cmake-3.16/Help/prop_tgt/EchoString.rst
+++ b/share/cmake-3.17/Help/prop_tgt/EchoString.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/FOLDER.rst b/share/cmake-3.17/Help/prop_tgt/FOLDER.rst
index f6be9e6..f6be9e6 100644
--- a/share/cmake-3.16/Help/prop_tgt/FOLDER.rst
+++ b/share/cmake-3.17/Help/prop_tgt/FOLDER.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/FRAMEWORK.rst b/share/cmake-3.17/Help/prop_tgt/FRAMEWORK.rst
index 3dff1be..3dff1be 100644
--- a/share/cmake-3.16/Help/prop_tgt/FRAMEWORK.rst
+++ b/share/cmake-3.17/Help/prop_tgt/FRAMEWORK.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/FRAMEWORK_VERSION.rst b/share/cmake-3.17/Help/prop_tgt/FRAMEWORK_VERSION.rst
index c2ae7b9..c2ae7b9 100644
--- a/share/cmake-3.16/Help/prop_tgt/FRAMEWORK_VERSION.rst
+++ b/share/cmake-3.17/Help/prop_tgt/FRAMEWORK_VERSION.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/Fortran_FORMAT.rst b/share/cmake-3.17/Help/prop_tgt/Fortran_FORMAT.rst
index 8704e5f..8704e5f 100644
--- a/share/cmake-3.16/Help/prop_tgt/Fortran_FORMAT.rst
+++ b/share/cmake-3.17/Help/prop_tgt/Fortran_FORMAT.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst b/share/cmake-3.17/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst
index e061863..e061863 100644
--- a/share/cmake-3.16/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/GENERATOR_FILE_NAME.rst b/share/cmake-3.17/Help/prop_tgt/GENERATOR_FILE_NAME.rst
index a486105..a486105 100644
--- a/share/cmake-3.16/Help/prop_tgt/GENERATOR_FILE_NAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/GENERATOR_FILE_NAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/GHS_INTEGRITY_APP.rst b/share/cmake-3.17/Help/prop_tgt/GHS_INTEGRITY_APP.rst
index b669781..b669781 100644
--- a/share/cmake-3.16/Help/prop_tgt/GHS_INTEGRITY_APP.rst
+++ b/share/cmake-3.17/Help/prop_tgt/GHS_INTEGRITY_APP.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst b/share/cmake-3.17/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst
index 11ce0b2..11ce0b2 100644
--- a/share/cmake-3.16/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/GNUtoMS.rst b/share/cmake-3.17/Help/prop_tgt/GNUtoMS.rst
index a09ebbf..a09ebbf 100644
--- a/share/cmake-3.16/Help/prop_tgt/GNUtoMS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/GNUtoMS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/HAS_CXX.rst b/share/cmake-3.17/Help/prop_tgt/HAS_CXX.rst
index 15199b1..15199b1 100644
--- a/share/cmake-3.16/Help/prop_tgt/HAS_CXX.rst
+++ b/share/cmake-3.17/Help/prop_tgt/HAS_CXX.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst b/share/cmake-3.17/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
index dc73807..dc73807 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED.rst
index 22d28aa..22d28aa 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst
index 99e3bc4..99e3bc4 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst
index 6de1baa..6de1baa 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_GLOBAL.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_GLOBAL.rst
index 1feca04..1feca04 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_GLOBAL.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_GLOBAL.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_IMPLIB.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB.rst
index c8b6fde..c8b6fde 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_IMPLIB.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst
index 5debabc..5debabc 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LIBNAME.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME.rst
index 1943dba..1943dba 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LIBNAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst
index a28b838..a28b838 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst
index f7e2165..f7e2165 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst
index 5b9c513..5b9c513 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst
index 4ed4281..4ed4281 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst
index 40fcf7f..40fcf7f 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst
index 527cf2e..527cf2e 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst
index 050fb1d..050fb1d 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst
index 7a92d96..7a92d96 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
index 758237b..758237b 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LOCATION.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION.rst
index f0a1646..f0a1646 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LOCATION.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst
index c5f5f04..c5f5f04 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_NO_SONAME.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME.rst
index cbb7642..cbb7642 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_NO_SONAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst
index 76fe471..76fe471 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_OBJECTS.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS.rst
index 50a329f..50a329f 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_OBJECTS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst
index 4419ed1..4419ed1 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_SONAME.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME.rst
index bf0c3cb..bf0c3cb 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_SONAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst
index 59a9d1a..59a9d1a 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORT_PREFIX.rst b/share/cmake-3.17/Help/prop_tgt/IMPORT_PREFIX.rst
index 17e381b..17e381b 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORT_PREFIX.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORT_PREFIX.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IMPORT_SUFFIX.rst b/share/cmake-3.17/Help/prop_tgt/IMPORT_SUFFIX.rst
index 9307115..9307115 100644
--- a/share/cmake-3.16/Help/prop_tgt/IMPORT_SUFFIX.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IMPORT_SUFFIX.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INCLUDE_DIRECTORIES.rst b/share/cmake-3.17/Help/prop_tgt/INCLUDE_DIRECTORIES.rst
index b381d1d..b381d1d 100644
--- a/share/cmake-3.16/Help/prop_tgt/INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INSTALL_NAME_DIR.rst b/share/cmake-3.17/Help/prop_tgt/INSTALL_NAME_DIR.rst
new file mode 100644
index 0000000..747615a
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/INSTALL_NAME_DIR.rst
@@ -0,0 +1,16 @@
+INSTALL_NAME_DIR
+----------------
+
+macOS directory name for installed targets.
+
+``INSTALL_NAME_DIR`` is a string specifying the directory portion of the
+"install_name" field of shared libraries on macOS to use in the
+installed targets.
+
+This property is initialized by the value of the variable
+:variable:`CMAKE_INSTALL_NAME_DIR` if it is set when a target is
+created.
+
+This property supports :manual:`generator expressions <cmake-generator-expressions(7)>`.
+In particular, the ``$<INSTALL_PREFIX>`` generator expression can be used to set the
+directory relative to the install-time prefix.
diff --git a/share/cmake-3.16/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst b/share/cmake-3.17/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
index 72dcaa0..72dcaa0 100644
--- a/share/cmake-3.16/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INSTALL_RPATH.rst b/share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH.rst
index 93b4488..93b4488 100644
--- a/share/cmake-3.16/Help/prop_tgt/INSTALL_RPATH.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst b/share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst
new file mode 100644
index 0000000..d16a7a1
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst
@@ -0,0 +1,14 @@
+INSTALL_RPATH_USE_LINK_PATH
+---------------------------
+
+Add paths to linker search and installed rpath.
+
+``INSTALL_RPATH_USE_LINK_PATH`` is a boolean that if set to ``True``
+will append to the runtime search path (rpath) of installed binaries
+any directories outside the project that are in the linker search path or
+contain linked library files. The directories are appended after the
+value of the :prop_tgt:`INSTALL_RPATH` target property.
+
+This property is initialized by the value of the variable
+:variable:`CMAKE_INSTALL_RPATH_USE_LINK_PATH` if it is set when a target is
+created.
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst b/share/cmake-3.17/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst
index e97d293..e97d293 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt b/share/cmake-3.17/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt
index 4188b8d..4188b8d 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst b/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst
index c74a319..c74a319 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst b/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst
index 31b594f..31b594f 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst b/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst
index 7f0b385..7f0b385 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst b/share/cmake-3.17/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
index b1c40b2..b1c40b2 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst b/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst
index 790554d..790554d 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst b/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst
index 56a4ec0..56a4ec0 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst b/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst
index bf7f72f..bf7f72f 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst b/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst
index c293b98..c293b98 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst b/share/cmake-3.17/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst
index 4336d71..4336d71 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst b/share/cmake-3.17/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst
index e285407..e285407 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_SOURCES.rst b/share/cmake-3.17/Help/prop_tgt/INTERFACE_SOURCES.rst
index a224b68..a224b68 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_SOURCES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_SOURCES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst b/share/cmake-3.17/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
index a0a97ad..a0a97ad 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst b/share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst
index d3a5e94..d3a5e94 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
index 79d4604..79d4604 100644
--- a/share/cmake-3.16/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/IOS_INSTALL_COMBINED.rst b/share/cmake-3.17/Help/prop_tgt/IOS_INSTALL_COMBINED.rst
index 59f67a7..59f67a7 100644
--- a/share/cmake-3.16/Help/prop_tgt/IOS_INSTALL_COMBINED.rst
+++ b/share/cmake-3.17/Help/prop_tgt/IOS_INSTALL_COMBINED.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/JOB_POOL_COMPILE.rst b/share/cmake-3.17/Help/prop_tgt/JOB_POOL_COMPILE.rst
index 5d8e940..5d8e940 100644
--- a/share/cmake-3.16/Help/prop_tgt/JOB_POOL_COMPILE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/JOB_POOL_COMPILE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/JOB_POOL_LINK.rst b/share/cmake-3.17/Help/prop_tgt/JOB_POOL_LINK.rst
index 6535333..6535333 100644
--- a/share/cmake-3.16/Help/prop_tgt/JOB_POOL_LINK.rst
+++ b/share/cmake-3.17/Help/prop_tgt/JOB_POOL_LINK.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/JOB_POOL_PRECOMPILE_HEADER.rst b/share/cmake-3.17/Help/prop_tgt/JOB_POOL_PRECOMPILE_HEADER.rst
new file mode 100644
index 0000000..ece28a4
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/JOB_POOL_PRECOMPILE_HEADER.rst
@@ -0,0 +1,21 @@
+JOB_POOL_PRECOMPILE_HEADER
+--------------------------
+
+Ninja only: Pool used for generating pre-compiled headers.
+
+The number of parallel compile processes could be limited by defining
+pools with the global :prop_gbl:`JOB_POOLS`
+property and then specifying here the pool name.
+
+For instance:
+
+.. code-block:: cmake
+
+ set_property(TARGET myexe PROPERTY JOB_POOL_PRECOMPILE_HEADER two_jobs)
+
+This property is initialized by the value of
+:variable:`CMAKE_JOB_POOL_PRECOMPILE_HEADER`.
+
+If neither :prop_tgt:`JOB_POOL_PRECOMPILE_HEADER` nor
+:variable:`CMAKE_JOB_POOL_PRECOMPILE_HEADER` are set then
+:prop_tgt:`JOB_POOL_COMPILE` will be used for this task.
diff --git a/share/cmake-3.16/Help/prop_tgt/LABELS.rst b/share/cmake-3.17/Help/prop_tgt/LABELS.rst
index 5e46469..5e46469 100644
--- a/share/cmake-3.16/Help/prop_tgt/LABELS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LABELS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LANG_CLANG_TIDY.rst b/share/cmake-3.17/Help/prop_tgt/LANG_CLANG_TIDY.rst
index 2bfef66..2bfef66 100644
--- a/share/cmake-3.16/Help/prop_tgt/LANG_CLANG_TIDY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LANG_CLANG_TIDY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst b/share/cmake-3.17/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst
index a6f2b24..a6f2b24 100644
--- a/share/cmake-3.16/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LANG_CPPCHECK.rst b/share/cmake-3.17/Help/prop_tgt/LANG_CPPCHECK.rst
index 60785d0..60785d0 100644
--- a/share/cmake-3.16/Help/prop_tgt/LANG_CPPCHECK.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LANG_CPPCHECK.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LANG_CPPLINT.rst b/share/cmake-3.17/Help/prop_tgt/LANG_CPPLINT.rst
index 9944c88..9944c88 100644
--- a/share/cmake-3.16/Help/prop_tgt/LANG_CPPLINT.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LANG_CPPLINT.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst b/share/cmake-3.17/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst
index 35220e4..35220e4 100644
--- a/share/cmake-3.16/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst b/share/cmake-3.17/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst
index 5d34e20..5d34e20 100644
--- a/share/cmake-3.16/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst b/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst
index 785a57b..785a57b 100644
--- a/share/cmake-3.16/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
index 5cefc38..5cefc38 100644
--- a/share/cmake-3.16/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst b/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst
index 6027f7f..6027f7f 100644
--- a/share/cmake-3.16/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst
index 1994c7b..1994c7b 100644
--- a/share/cmake-3.16/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINKER_LANGUAGE.rst b/share/cmake-3.17/Help/prop_tgt/LINKER_LANGUAGE.rst
index b0a572b..b0a572b 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINKER_LANGUAGE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINKER_LANGUAGE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_DEPENDS.rst b/share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS.rst
index e59d4c0..e59d4c0 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_DEPENDS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst b/share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst
index 5c6778d..5c6778d 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_DIRECTORIES.rst b/share/cmake-3.17/Help/prop_tgt/LINK_DIRECTORIES.rst
index c2905b3..c2905b3 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_FLAGS.rst b/share/cmake-3.17/Help/prop_tgt/LINK_FLAGS.rst
index 92cd3c0..92cd3c0 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_FLAGS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_FLAGS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_FLAGS_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/LINK_FLAGS_CONFIG.rst
index 68c3129..68c3129 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_FLAGS_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst b/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst
index 2dcf45c..2dcf45c 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst
index 22ee5a6..22ee5a6 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst b/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst
index b798af9..b798af9 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
index 7c9461f..7c9461f 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_LIBRARIES.rst b/share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES.rst
index d88e798..d88e798 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_LIBRARIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt b/share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt
new file mode 100644
index 0000000..476e4a6
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt
@@ -0,0 +1,10 @@
+.. note::
+ A call to :command:`target_link_libraries(<target> ...)` may update this
+ property on ``<target>``. If ``<target>`` was not created in the same
+ directory as the call then :command:`target_link_libraries` will wrap each
+ entry with the form ``::@(directory-id);...;::@``, where the ``::@`` is
+ literal and the ``(directory-id)`` is unspecified.
+ This tells the generators that the named libraries must be looked up in
+ the scope of the caller rather than in the scope in which the
+ ``<target>`` was created. Valid directory ids are stripped on export
+ by the :command:`install(EXPORT)` and :command:`export` commands.
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_OPTIONS.rst b/share/cmake-3.17/Help/prop_tgt/LINK_OPTIONS.rst
index 2a05ea7..2a05ea7 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_OPTIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst b/share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
index fecbb14..fecbb14 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst b/share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
index 83cf231..83cf231 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LINK_WHAT_YOU_USE.rst b/share/cmake-3.17/Help/prop_tgt/LINK_WHAT_YOU_USE.rst
index 32d6edb..32d6edb 100644
--- a/share/cmake-3.16/Help/prop_tgt/LINK_WHAT_YOU_USE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LINK_WHAT_YOU_USE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LOCATION.rst b/share/cmake-3.17/Help/prop_tgt/LOCATION.rst
index d058064..d058064 100644
--- a/share/cmake-3.16/Help/prop_tgt/LOCATION.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LOCATION.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/LOCATION_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/LOCATION_CONFIG.rst
index 67de8ed..67de8ed 100644
--- a/share/cmake-3.16/Help/prop_tgt/LOCATION_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/LOCATION_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst b/share/cmake-3.17/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst
new file mode 100644
index 0000000..f3fedba
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst
@@ -0,0 +1,14 @@
+MACHO_COMPATIBILITY_VERSION
+---------------------------
+
+What compatibility version number is this target for Mach-O binaries.
+
+For shared libraries on Mach-O systems (e.g. macOS, iOS)
+the ``MACHO_COMPATIBILITY_VERSION`` property correspond to
+``compatibility version`` and :prop_tgt:`MACHO_CURRENT_VERSION` to
+``current version``.
+See the :prop_tgt:`FRAMEWORK` target property for an example.
+
+Versions of Mach-O binaries may be checked with the ``otool -L <binary>``
+command. If ``MACHO_COMPATIBILITY_VERSION`` is not set, the value of
+the :prop_tgt:`SOVERSION` property will be used.
diff --git a/share/cmake-3.17/Help/prop_tgt/MACHO_CURRENT_VERSION.rst b/share/cmake-3.17/Help/prop_tgt/MACHO_CURRENT_VERSION.rst
new file mode 100644
index 0000000..4a1d3f0
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/MACHO_CURRENT_VERSION.rst
@@ -0,0 +1,13 @@
+MACHO_CURRENT_VERSION
+---------------------
+
+What current version number is this target for Mach-O binaries.
+
+For shared libraries on Mach-O systems (e.g. macOS, iOS)
+the :prop_tgt:`MACHO_COMPATIBILITY_VERSION` property correspond to
+``compatibility version`` and ``MACHO_CURRENT_VERSION`` to ``current version``.
+See the :prop_tgt:`FRAMEWORK` target property for an example.
+
+Versions of Mach-O binaries may be checked with the ``otool -L <binary>``
+command. If ``MACHO_CURRENT_VERSION`` is not set, the value of
+the :prop_tgt:`VERSION` property will be used.
diff --git a/share/cmake-3.16/Help/prop_tgt/MACOSX_BUNDLE.rst b/share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE.rst
index 92bce53..92bce53 100644
--- a/share/cmake-3.16/Help/prop_tgt/MACOSX_BUNDLE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst b/share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst
index 443a645..443a645 100644
--- a/share/cmake-3.16/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst
+++ b/share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst b/share/cmake-3.17/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst
index 82fdcc0..82fdcc0 100644
--- a/share/cmake-3.16/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst
+++ b/share/cmake-3.17/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/MACOSX_RPATH.rst b/share/cmake-3.17/Help/prop_tgt/MACOSX_RPATH.rst
index acd5a7a..acd5a7a 100644
--- a/share/cmake-3.16/Help/prop_tgt/MACOSX_RPATH.rst
+++ b/share/cmake-3.17/Help/prop_tgt/MACOSX_RPATH.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst b/share/cmake-3.17/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
index c12ea14..c12ea14 100644
--- a/share/cmake-3.16/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst
index 266ccf0..266ccf0 100644
--- a/share/cmake-3.16/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt b/share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt
index 6c61341..6c61341 100644
--- a/share/cmake-3.16/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt
+++ b/share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt
diff --git a/share/cmake-3.16/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst b/share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst
index 73792de..73792de 100644
--- a/share/cmake-3.16/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/NAME.rst b/share/cmake-3.17/Help/prop_tgt/NAME.rst
index ddd84f2..ddd84f2 100644
--- a/share/cmake-3.16/Help/prop_tgt/NAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/NAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/NO_SONAME.rst b/share/cmake-3.17/Help/prop_tgt/NO_SONAME.rst
index d381a9c..d381a9c 100644
--- a/share/cmake-3.16/Help/prop_tgt/NO_SONAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/NO_SONAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst b/share/cmake-3.17/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
index 880343d..880343d 100644
--- a/share/cmake-3.16/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
+++ b/share/cmake-3.17/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/OBJCXX_EXTENSIONS.rst b/share/cmake-3.17/Help/prop_tgt/OBJCXX_EXTENSIONS.rst
index 9f9d804..9f9d804 100644
--- a/share/cmake-3.16/Help/prop_tgt/OBJCXX_EXTENSIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/OBJCXX_EXTENSIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/OBJCXX_STANDARD.rst b/share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD.rst
index 3c925dc..3c925dc 100644
--- a/share/cmake-3.16/Help/prop_tgt/OBJCXX_STANDARD.rst
+++ b/share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst b/share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst
index c330abf..c330abf 100644
--- a/share/cmake-3.16/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/OBJC_EXTENSIONS.rst b/share/cmake-3.17/Help/prop_tgt/OBJC_EXTENSIONS.rst
index 2de9e48..2de9e48 100644
--- a/share/cmake-3.16/Help/prop_tgt/OBJC_EXTENSIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/OBJC_EXTENSIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/OBJC_STANDARD.rst b/share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD.rst
index d1e1b24..d1e1b24 100644
--- a/share/cmake-3.16/Help/prop_tgt/OBJC_STANDARD.rst
+++ b/share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst b/share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst
index 8cf377c..8cf377c 100644
--- a/share/cmake-3.16/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/OSX_ARCHITECTURES.rst b/share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES.rst
index 996a4be..996a4be 100644
--- a/share/cmake-3.16/Help/prop_tgt/OSX_ARCHITECTURES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst
index 06da4fb..06da4fb 100644
--- a/share/cmake-3.16/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/OUTPUT_NAME.rst b/share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME.rst
index 4b33b38..4b33b38 100644
--- a/share/cmake-3.16/Help/prop_tgt/OUTPUT_NAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst
index 41b782f..41b782f 100644
--- a/share/cmake-3.16/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/PDB_NAME.rst b/share/cmake-3.17/Help/prop_tgt/PDB_NAME.rst
index 3a65796..3a65796 100644
--- a/share/cmake-3.16/Help/prop_tgt/PDB_NAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/PDB_NAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/PDB_NAME_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/PDB_NAME_CONFIG.rst
index cb3121c..cb3121c 100644
--- a/share/cmake-3.16/Help/prop_tgt/PDB_NAME_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/PDB_NAME_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/PDB_NOTE.txt b/share/cmake-3.17/Help/prop_tgt/PDB_NOTE.txt
index b5ada07..b5ada07 100644
--- a/share/cmake-3.16/Help/prop_tgt/PDB_NOTE.txt
+++ b/share/cmake-3.17/Help/prop_tgt/PDB_NOTE.txt
diff --git a/share/cmake-3.16/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst b/share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst
index 2f667f3..2f667f3 100644
--- a/share/cmake-3.16/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst
index 6c55083..6c55083 100644
--- a/share/cmake-3.16/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst b/share/cmake-3.17/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst
index 0aaf66b..0aaf66b 100644
--- a/share/cmake-3.16/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/POST_INSTALL_SCRIPT.rst b/share/cmake-3.17/Help/prop_tgt/POST_INSTALL_SCRIPT.rst
index 23935bc..23935bc 100644
--- a/share/cmake-3.16/Help/prop_tgt/POST_INSTALL_SCRIPT.rst
+++ b/share/cmake-3.17/Help/prop_tgt/POST_INSTALL_SCRIPT.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/PRECOMPILE_HEADERS.rst b/share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS.rst
index 9e70b65..9e70b65 100644
--- a/share/cmake-3.16/Help/prop_tgt/PRECOMPILE_HEADERS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst b/share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst
index 9c3e7ea..9c3e7ea 100644
--- a/share/cmake-3.16/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst
+++ b/share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/PREFIX.rst b/share/cmake-3.17/Help/prop_tgt/PREFIX.rst
index a401292..a401292 100644
--- a/share/cmake-3.16/Help/prop_tgt/PREFIX.rst
+++ b/share/cmake-3.17/Help/prop_tgt/PREFIX.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst b/share/cmake-3.17/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst
index 43432f4..43432f4 100644
--- a/share/cmake-3.16/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst
+++ b/share/cmake-3.17/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/PRIVATE_HEADER.rst b/share/cmake-3.17/Help/prop_tgt/PRIVATE_HEADER.rst
index 23e1f8e..23e1f8e 100644
--- a/share/cmake-3.16/Help/prop_tgt/PRIVATE_HEADER.rst
+++ b/share/cmake-3.17/Help/prop_tgt/PRIVATE_HEADER.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/PROJECT_LABEL.rst b/share/cmake-3.17/Help/prop_tgt/PROJECT_LABEL.rst
index a1491ee..a1491ee 100644
--- a/share/cmake-3.16/Help/prop_tgt/PROJECT_LABEL.rst
+++ b/share/cmake-3.17/Help/prop_tgt/PROJECT_LABEL.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/PUBLIC_HEADER.rst b/share/cmake-3.17/Help/prop_tgt/PUBLIC_HEADER.rst
index 915e39c..915e39c 100644
--- a/share/cmake-3.16/Help/prop_tgt/PUBLIC_HEADER.rst
+++ b/share/cmake-3.17/Help/prop_tgt/PUBLIC_HEADER.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/RESOURCE.rst b/share/cmake-3.17/Help/prop_tgt/RESOURCE.rst
index e5a1cb6..e5a1cb6 100644
--- a/share/cmake-3.16/Help/prop_tgt/RESOURCE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/RESOURCE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst b/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst
index e92ab86..e92ab86 100644
--- a/share/cmake-3.16/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst b/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst
index 2db0317..2db0317 100644
--- a/share/cmake-3.16/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst
+++ b/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/RULE_LAUNCH_LINK.rst b/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_LINK.rst
index f330033..f330033 100644
--- a/share/cmake-3.16/Help/prop_tgt/RULE_LAUNCH_LINK.rst
+++ b/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_LINK.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst b/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst
index 12390f5..12390f5 100644
--- a/share/cmake-3.16/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
index 6727754..6727754 100644
--- a/share/cmake-3.16/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst b/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst
index 11729c3..11729c3 100644
--- a/share/cmake-3.16/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst
index b6a31bf..b6a31bf 100644
--- a/share/cmake-3.16/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/SKIP_BUILD_RPATH.rst b/share/cmake-3.17/Help/prop_tgt/SKIP_BUILD_RPATH.rst
index 7086b1b..7086b1b 100644
--- a/share/cmake-3.16/Help/prop_tgt/SKIP_BUILD_RPATH.rst
+++ b/share/cmake-3.17/Help/prop_tgt/SKIP_BUILD_RPATH.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/SOURCES.rst b/share/cmake-3.17/Help/prop_tgt/SOURCES.rst
index 493643e..493643e 100644
--- a/share/cmake-3.16/Help/prop_tgt/SOURCES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/SOURCES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/SOURCE_DIR.rst b/share/cmake-3.17/Help/prop_tgt/SOURCE_DIR.rst
index b25813b..b25813b 100644
--- a/share/cmake-3.16/Help/prop_tgt/SOURCE_DIR.rst
+++ b/share/cmake-3.17/Help/prop_tgt/SOURCE_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/SOVERSION.rst b/share/cmake-3.17/Help/prop_tgt/SOVERSION.rst
new file mode 100644
index 0000000..d6f8a94
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/SOVERSION.rst
@@ -0,0 +1,29 @@
+SOVERSION
+---------
+
+What version number is this target.
+
+For shared libraries :prop_tgt:`VERSION` and ``SOVERSION`` can be used to
+specify the build version and API version respectively. When building or
+installing appropriate symlinks are created if the platform supports
+symlinks and the linker supports so-names. If only one of both is
+specified the missing is assumed to have the same version number.
+``SOVERSION`` is ignored if :prop_tgt:`NO_SONAME` property is set.
+
+Windows Versions
+^^^^^^^^^^^^^^^^
+
+For shared libraries and executables on Windows the :prop_tgt:`VERSION`
+attribute is parsed to extract a ``<major>.<minor>`` version number.
+These numbers are used as the image version of the binary.
+
+Mach-O Versions
+^^^^^^^^^^^^^^^
+
+For shared libraries and executables on Mach-O systems (e.g. macOS, iOS),
+the ``SOVERSION`` property is a fallback to
+:prop_tgt:`MACHO_COMPATIBILITY_VERSION` property which corresponds to
+*compatiblity version* and :prop_tgt:`VERSION` is a fallback to
+:prop_tgt:`MACHO_CURRENT_VERSION` which corresponds to *current version*.
+See the :prop_tgt:`FRAMEWORK` target property for an example. Versions
+of Mach-O binaries may be checked with the ``otool -L <binary>`` command.
diff --git a/share/cmake-3.16/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst b/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst
index 66e0e8b..66e0e8b 100644
--- a/share/cmake-3.16/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst b/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst
index 5b97941..5b97941 100644
--- a/share/cmake-3.16/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst
+++ b/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst b/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst
index d05fda4..d05fda4 100644
--- a/share/cmake-3.16/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/SUFFIX.rst b/share/cmake-3.17/Help/prop_tgt/SUFFIX.rst
index 32ec429..32ec429 100644
--- a/share/cmake-3.16/Help/prop_tgt/SUFFIX.rst
+++ b/share/cmake-3.17/Help/prop_tgt/SUFFIX.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst b/share/cmake-3.17/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst
index 46c9a1d..46c9a1d 100644
--- a/share/cmake-3.16/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst b/share/cmake-3.17/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst
index 7579447..7579447 100644
--- a/share/cmake-3.16/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst
+++ b/share/cmake-3.17/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst b/share/cmake-3.17/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst
index d404251..d404251 100644
--- a/share/cmake-3.16/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/Swift_MODULE_NAME.rst b/share/cmake-3.17/Help/prop_tgt/Swift_MODULE_NAME.rst
index 2866020..2866020 100644
--- a/share/cmake-3.16/Help/prop_tgt/Swift_MODULE_NAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/Swift_MODULE_NAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/TYPE.rst b/share/cmake-3.17/Help/prop_tgt/TYPE.rst
index 3136d11..3136d11 100644
--- a/share/cmake-3.16/Help/prop_tgt/TYPE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/TYPE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/UNITY_BUILD.rst b/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD.rst
index 479802e..479802e 100644
--- a/share/cmake-3.16/Help/prop_tgt/UNITY_BUILD.rst
+++ b/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst b/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst
index 44ffe27..44ffe27 100644
--- a/share/cmake-3.16/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst b/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst
index 7231b61..7231b61 100644
--- a/share/cmake-3.16/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst b/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst
index 7ed6fa1..7ed6fa1 100644
--- a/share/cmake-3.16/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VERSION.rst b/share/cmake-3.17/Help/prop_tgt/VERSION.rst
new file mode 100644
index 0000000..f592f4a
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/VERSION.rst
@@ -0,0 +1,31 @@
+VERSION
+-------
+
+What version number is this target.
+
+For shared libraries ``VERSION`` and :prop_tgt:`SOVERSION` can be used
+to specify the build version and API version respectively. When building or
+installing appropriate symlinks are created if the platform supports
+symlinks and the linker supports so-names. If only one of both is
+specified the missing is assumed to have the same version number. For
+executables ``VERSION`` can be used to specify the build version. When
+building or installing appropriate symlinks are created if the
+platform supports symlinks.
+
+Windows Versions
+^^^^^^^^^^^^^^^^
+
+For shared libraries and executables on Windows the ``VERSION``
+attribute is parsed to extract a ``<major>.<minor>`` version number.
+These numbers are used as the image version of the binary.
+
+Mach-O Versions
+^^^^^^^^^^^^^^^
+
+For shared libraries and executables on Mach-O systems (e.g. macOS, iOS),
+the ``VERSION`` property is a fallback to :prop_tgt:`MACHO_CURRENT_VERSION`
+property which corresponds to *current version* and :prop_tgt:`SOVERSION`
+is a fallback to :prop_tgt:`MACHO_COMPATIBILITY_VERSION` which corresponds
+to *compatiblity version*. See the :prop_tgt:`FRAMEWORK` target
+property for an example. Versions of Mach-O binaries may be checked with the
+``otool -L <binary>`` command.
diff --git a/share/cmake-3.16/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst b/share/cmake-3.17/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst
index adbbc71..adbbc71 100644
--- a/share/cmake-3.16/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst b/share/cmake-3.17/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst
index 640bed5..640bed5 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst b/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst
index ba5fd0a..ba5fd0a 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst b/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst
index 06ef5d5..06ef5d5 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst b/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst
index f55ac7b..f55ac7b 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst b/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst
index 008bbf6..008bbf6 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst b/share/cmake-3.17/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst
index 19d1620..19d1620 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_DOCUMENTATION_FILE.rst b/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_DOCUMENTATION_FILE.rst
new file mode 100644
index 0000000..1bc361c
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_DOCUMENTATION_FILE.rst
@@ -0,0 +1,6 @@
+VS_DOTNET_DOCUMENTATION_FILE
+----------------------------
+
+Visual Studio managed project .NET documentation output
+
+Sets the target XML documentation file output.
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst b/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst
index ab311ea..ab311ea 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_DOTNET_REFERENCES.rst b/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES.rst
index a661ad9..a661ad9 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_DOTNET_REFERENCES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst b/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst
index 7641ba5..7641ba5 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst b/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst
index 5814005..5814005 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst b/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst
new file mode 100644
index 0000000..6cb8f86
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst
@@ -0,0 +1,11 @@
+VS_DOTNET_TARGET_FRAMEWORK_VERSION
+----------------------------------
+
+Specify the .NET target framework version.
+
+Used to specify the .NET target framework version for C++/CLI. For
+example, "v4.5".
+
+This property is deprecated and should not be used anymore. Use
+:prop_tgt:`DOTNET_TARGET_FRAMEWORK` or
+:prop_tgt:`DOTNET_TARGET_FRAMEWORK_VERSION` instead.
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_DPI_AWARE.rst b/share/cmake-3.17/Help/prop_tgt/VS_DPI_AWARE.rst
index 82640cc..82640cc 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_DPI_AWARE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_DPI_AWARE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst b/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst
index ce49316..ce49316 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst b/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst
index f4d9efc..f4d9efc 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst b/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst
index a23c540..a23c540 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_GLOBAL_variable.rst b/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_variable.rst
index 56b8021..56b8021 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_GLOBAL_variable.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_variable.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst b/share/cmake-3.17/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst
index 27c8a3d..27c8a3d 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst b/share/cmake-3.17/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst
index add50cb..add50cb 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst b/share/cmake-3.17/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst
index 42fb8ad..42fb8ad 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_KEYWORD.rst b/share/cmake-3.17/Help/prop_tgt/VS_KEYWORD.rst
index 6c2e042..6c2e042 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_KEYWORD.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_KEYWORD.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst b/share/cmake-3.17/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst
index be3c9a0..be3c9a0 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst b/share/cmake-3.17/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst
index ffcbde5..ffcbde5 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst b/share/cmake-3.17/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst
index 5a0465b..5a0465b 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_PROJECT_IMPORT.rst b/share/cmake-3.17/Help/prop_tgt/VS_PROJECT_IMPORT.rst
index 569c8ea..569c8ea 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_PROJECT_IMPORT.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_PROJECT_IMPORT.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_SCC_AUXPATH.rst b/share/cmake-3.17/Help/prop_tgt/VS_SCC_AUXPATH.rst
index 054f59e..054f59e 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_SCC_AUXPATH.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_SCC_AUXPATH.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_SCC_LOCALPATH.rst b/share/cmake-3.17/Help/prop_tgt/VS_SCC_LOCALPATH.rst
index b5b7721..b5b7721 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_SCC_LOCALPATH.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_SCC_LOCALPATH.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_SCC_PROJECTNAME.rst b/share/cmake-3.17/Help/prop_tgt/VS_SCC_PROJECTNAME.rst
index 6d7f628..6d7f628 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_SCC_PROJECTNAME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_SCC_PROJECTNAME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_SCC_PROVIDER.rst b/share/cmake-3.17/Help/prop_tgt/VS_SCC_PROVIDER.rst
index 80475af..80475af 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_SCC_PROVIDER.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_SCC_PROVIDER.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_SDK_REFERENCES.rst b/share/cmake-3.17/Help/prop_tgt/VS_SDK_REFERENCES.rst
index 99987f5..99987f5 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_SDK_REFERENCES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_SDK_REFERENCES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_USER_PROPS.rst b/share/cmake-3.17/Help/prop_tgt/VS_USER_PROPS.rst
index 1be222b..1be222b 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_USER_PROPS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_USER_PROPS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst b/share/cmake-3.17/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst
index 1ad7a71..1ad7a71 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_WINRT_COMPONENT.rst b/share/cmake-3.17/Help/prop_tgt/VS_WINRT_COMPONENT.rst
index e160bd6..e160bd6 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_WINRT_COMPONENT.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_WINRT_COMPONENT.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst b/share/cmake-3.17/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst
index d1cba34..d1cba34 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/VS_WINRT_REFERENCES.rst b/share/cmake-3.17/Help/prop_tgt/VS_WINRT_REFERENCES.rst
index af98b2f..af98b2f 100644
--- a/share/cmake-3.16/Help/prop_tgt/VS_WINRT_REFERENCES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/VS_WINRT_REFERENCES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/WIN32_EXECUTABLE.rst b/share/cmake-3.17/Help/prop_tgt/WIN32_EXECUTABLE.rst
index 060d166..060d166 100644
--- a/share/cmake-3.16/Help/prop_tgt/WIN32_EXECUTABLE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/WIN32_EXECUTABLE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst b/share/cmake-3.17/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst
index 86711bf..86711bf 100644
--- a/share/cmake-3.16/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst
index 71858c5..71858c5 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst
index dc92902..dc92902 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst
index 0e182cf..0e182cf 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst
index f4ef5c0..f4ef5c0 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst
index cc9bac2..cc9bac2 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
index 37a043a..37a043a 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst
index 1f228e3..1f228e3 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst
index 5407e80..5407e80 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
index 9afeedd..9afeedd 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
index 1a6fcfd..1a6fcfd 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
index 9224022..9224022 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
index 203c803..203c803 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst
index c6d875e..c6d875e 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst
index 104841b..104841b 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst
index c4e83da..c4e83da 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
index 73992c3..73992c3 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
index ca761c0..ca761c0 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst
index c5ddb95..c5ddb95 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst
index 170f33d..170f33d 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst
index bb70141..bb70141 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
index 5deadb1..5deadb1 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
index 0cd823d..0cd823d 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
index d1a9bca..d1a9bca 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst
new file mode 100644
index 0000000..7ffa74b
--- /dev/null
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst
@@ -0,0 +1,13 @@
+XCODE_SCHEME_WORKING_DIRECTORY
+------------------------------
+
+Specify the ``Working Directory`` a of the `Run` and `Profile`
+action in the generated Xcode scheme. In case the value contains
+generator expressions those are evaluated.
+
+This property is initialized by the value of the variable
+:variable:`CMAKE_XCODE_SCHEME_WORKING_DIRECTORY` if it is set
+when a target is created.
+
+Please refer to the :prop_tgt:`XCODE_GENERATE_SCHEME` target property
+documentation to see all Xcode schema related properties.
diff --git a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst
index 6e70e8b..6e70e8b 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XCTEST.rst b/share/cmake-3.17/Help/prop_tgt/XCTEST.rst
index eb47e60..eb47e60 100644
--- a/share/cmake-3.16/Help/prop_tgt/XCTEST.rst
+++ b/share/cmake-3.17/Help/prop_tgt/XCTEST.rst
diff --git a/share/cmake-3.16/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt b/share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt
index 3ae5448..3ae5448 100644
--- a/share/cmake-3.16/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt
+++ b/share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt
diff --git a/share/cmake-3.16/Help/prop_tgt/XXX_OUTPUT_NAME.txt b/share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_NAME.txt
index 126f391..126f391 100644
--- a/share/cmake-3.16/Help/prop_tgt/XXX_OUTPUT_NAME.txt
+++ b/share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_NAME.txt
diff --git a/share/cmake-3.16/Help/release/3.0.rst b/share/cmake-3.17/Help/release/3.0.rst
index 64491e3..64491e3 100644
--- a/share/cmake-3.16/Help/release/3.0.rst
+++ b/share/cmake-3.17/Help/release/3.0.rst
diff --git a/share/cmake-3.16/Help/release/3.1.rst b/share/cmake-3.17/Help/release/3.1.rst
index 8bea28f..8bea28f 100644
--- a/share/cmake-3.16/Help/release/3.1.rst
+++ b/share/cmake-3.17/Help/release/3.1.rst
diff --git a/share/cmake-3.16/Help/release/3.10.rst b/share/cmake-3.17/Help/release/3.10.rst
index 03eda36..03eda36 100644
--- a/share/cmake-3.16/Help/release/3.10.rst
+++ b/share/cmake-3.17/Help/release/3.10.rst
diff --git a/share/cmake-3.16/Help/release/3.11.rst b/share/cmake-3.17/Help/release/3.11.rst
index a80657d..a80657d 100644
--- a/share/cmake-3.16/Help/release/3.11.rst
+++ b/share/cmake-3.17/Help/release/3.11.rst
diff --git a/share/cmake-3.16/Help/release/3.12.rst b/share/cmake-3.17/Help/release/3.12.rst
index 481027e..481027e 100644
--- a/share/cmake-3.16/Help/release/3.12.rst
+++ b/share/cmake-3.17/Help/release/3.12.rst
diff --git a/share/cmake-3.16/Help/release/3.13.rst b/share/cmake-3.17/Help/release/3.13.rst
index a8dd0ba..a8dd0ba 100644
--- a/share/cmake-3.16/Help/release/3.13.rst
+++ b/share/cmake-3.17/Help/release/3.13.rst
diff --git a/share/cmake-3.16/Help/release/3.14.rst b/share/cmake-3.17/Help/release/3.14.rst
index 8a9738c..8a9738c 100644
--- a/share/cmake-3.16/Help/release/3.14.rst
+++ b/share/cmake-3.17/Help/release/3.14.rst
diff --git a/share/cmake-3.16/Help/release/3.15.rst b/share/cmake-3.17/Help/release/3.15.rst
index 957e6e9..957e6e9 100644
--- a/share/cmake-3.16/Help/release/3.15.rst
+++ b/share/cmake-3.17/Help/release/3.15.rst
diff --git a/share/cmake-3.17/Help/release/3.16.rst b/share/cmake-3.17/Help/release/3.16.rst
new file mode 100644
index 0000000..e2d6788
--- /dev/null
+++ b/share/cmake-3.17/Help/release/3.16.rst
@@ -0,0 +1,305 @@
+CMake 3.16 Release Notes
+************************
+
+.. only:: html
+
+ .. contents::
+
+Changes made since CMake 3.15 include the following.
+
+New Features
+============
+
+Languages
+---------
+
+* CMake learned to support the Objective C (``OBJC``) and Objective C++
+ (``OBJCXX``) languages. They may be enabled via the :command:`project`
+ and :command:`enable_language` commands. When ``OBJC`` or ``OBJCXX``
+ is enabled, source files with the ``.m`` or ``.mm``, respectively,
+ will be compiled as Objective C or C++. Otherwise they will be treated
+ as plain C++ sources as they were before.
+
+Compilers
+---------
+
+* The ``Clang`` compiler is now supported on ``Solaris``.
+
+Platforms
+---------
+
+* On AIX, executables using the :prop_tgt:`ENABLE_EXPORTS` target property
+ now produce a linker import file with a ``.imp`` extension in addition
+ to the executable file. Plugins (created via :command:`add_library` with
+ the ``MODULE`` option) that use :command:`target_link_libraries` to link
+ to the executable for its symbols are now linked using the import file.
+ The :command:`install(TARGETS)` command now installs the import file as
+ an ``ARCHIVE`` artifact.
+
+* On AIX, runtime linking is no longer enabled by default. CMake provides
+ the linker enough information to resolve all symbols up front.
+ One may manually enable runtime linking for shared libraries and/or
+ loadable modules by adding ``-Wl,-G`` to their link flags
+ (e.g. in the :variable:`CMAKE_SHARED_LINKER_FLAGS` or
+ :variable:`CMAKE_MODULE_LINKER_FLAGS` variable).
+ One may manually enable runtime linking for executables by adding
+ ``-Wl,-brtl`` to their link flags (e.g. in the
+ :variable:`CMAKE_EXE_LINKER_FLAGS` variable).
+
+Command-Line
+------------
+
+* :manual:`cmake(1)` ``-E`` now supports ``true`` and ``false`` commands,
+ which do nothing while returning exit codes of 0 and 1, respectively.
+
+* :manual:`cmake(1)` gained a ``--trace-redirect=<file>`` command line
+ option that can be used to redirect ``--trace`` output to a file instead
+ of ``stderr``.
+
+* The :manual:`cmake(1)` ``--loglevel`` command line option has been
+ renamed to ``--log-level`` to make it consistent with the naming of other
+ command line options. The ``--loglevel`` option is still supported to
+ preserve backward compatibility.
+
+Commands
+--------
+
+* The :command:`add_test` command learned the option ``COMMAND_EXPAND_LISTS``
+ which causes lists in the ``COMMAND`` argument to be expanded, including
+ lists created by generator expressions.
+
+* The :command:`file` command learned a new sub-command,
+ ``GET_RUNTIME_DEPENDENCIES``, which allows you to recursively get the list of
+ libraries linked by an executable or library. This sub-command is intended as
+ a replacement for :module:`GetPrerequisites`.
+
+* The :command:`find_file`, :command:`find_library`, :command:`find_path`,
+ :command:`find_package`, and :command:`find_program` commands have learned to
+ check the following variables to control the default behavior for groups of
+ search locations:
+
+ * :variable:`CMAKE_FIND_USE_PACKAGE_ROOT_PATH` - Controls the default
+ behavior of searching the :variable:`<PackageName>_ROOT` variables.
+
+ * :variable:`CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH` - Controls the default
+ behavior of searching the CMake-specific environment variables.
+
+ * :variable:`CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH` - Controls the default
+ behavior of searching the standard system environment variables.
+
+ * :variable:`CMAKE_FIND_USE_CMAKE_PATH` - Controls the default behavior of
+ searching the CMake-specific cache variables.
+
+ * :variable:`CMAKE_FIND_USE_CMAKE_SYSTEM_PATH` - Controls the default
+ behavior of searching the platform-specific CMake variables.
+
+* The :command:`find_package` command has learned to check the
+ :variable:`CMAKE_FIND_USE_PACKAGE_REGISTRY` variable to control the default
+ behavior of searching the CMake user package registry and to check the
+ :variable:`CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY` variable to control
+ the default behavior of searching the CMake system package registry.
+
+* The :command:`message` command learned indentation control with the new
+ :variable:`CMAKE_MESSAGE_INDENT` variable.
+
+* The :command:`target_precompile_headers` command was added to specify
+ a list of headers to precompile for faster compilation times.
+
+Variables
+---------
+
+* The :variable:`CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS` variable has been
+ introduced to optionally initialize the
+ :prop_tgt:`CUDA_RESOLVE_DEVICE_SYMBOLS` target property.
+
+* The :variable:`CMAKE_ECLIPSE_RESOURCE_ENCODING` variable was added to
+ specify the resource encoding for the the :generator:`Eclipse CDT4` extra
+ generator.
+
+* The :variable:`CMAKE_UNITY_BUILD` variable was added to initialize the
+ :prop_tgt:`UNITY_BUILD` target property to tell generators to batch
+ include source files for faster compilation times.
+
+Properties
+----------
+
+* The :prop_tgt:`BUILD_RPATH` and :prop_tgt:`INSTALL_RPATH` target properties
+ now support :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+* The :prop_tgt:`INSTALL_REMOVE_ENVIRONMENT_RPATH` target property was
+ added to remove compiler-defined ``RPATH`` entries from a target.
+ This property is initialized by the
+ :variable:`CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH` variable.
+
+* The :prop_tgt:`PRECOMPILE_HEADERS` target property was added to specify
+ a list of headers to precompile for faster compilation times.
+ Set it using the :command:`target_precompile_headers` command.
+
+* The :prop_tgt:`UNITY_BUILD` target property was added to tell
+ generators to batch include source files for faster compilation
+ times.
+
+* The :prop_tgt:`VS_CONFIGURATION_TYPE` target property now supports
+ :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+* The :prop_tgt:`VS_DPI_AWARE` target property was added to tell
+ :ref:`Visual Studio Generators` to set the ``EnableDpiAwareness``
+ property in ``.vcxproj`` files.
+
+* The :prop_tgt:`XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING` target property was
+ added to tell the :generator:`Xcode` generator to set the value of the
+ ``Allow debugging when using document Versions Browser`` schema option.
+
+Modules
+-------
+
+* The :module:`FindDoxygen` module :command:`doxygen_add_docs` command
+ gained a new ``USE_STAMP_FILE`` option. When this option present,
+ the custom target created by the command will only re-run Doxygen if
+ any of the source files have changed since the last successful run.
+
+* The :module:`FindGnuTLS` module now provides an imported target.
+
+* The :module:`FindPackageHandleStandardArgs` module
+ :command:`find_package_handle_standard_args` command gained
+ a new ``REASON_FAILURE_MESSAGE`` option to specify a message
+ giving the reason for the failure.
+
+* The :module:`FindPkgConfig` module :command:`pkg_search_module` macro
+ now defines a ``<prefix>_MODULE_NAME`` result variable containing the
+ first matching module name.
+
+* The :module:`FindPython3` and :module:`FindPython` modules gained
+ options to control which ``ABIs`` will be searched.
+
+* The :module:`FindPython3`, :module:`FindPython2`, and :module:`FindPython`
+ modules now support direct specification of artifacts via cache entries.
+
+Autogen
+-------
+
+* When using :prop_tgt:`AUTOMOC`, CMake now generates the ``-p`` path prefix
+ option for ``moc``. This ensures that ``moc`` output files are identical
+ on different build setups (given, that the headers compiled by ``moc`` are
+ in an :command:`include directory <target_include_directories>`).
+ Also it ensures that ``moc`` output files will compile correctly when the
+ source and/or build directory is a symbolic link.
+
+ The ``moc`` path prefix generation behavior can be configured by setting
+ the new :variable:`CMAKE_AUTOMOC_PATH_PREFIX` variable and/or
+ :prop_tgt:`AUTOMOC_PATH_PREFIX` target property.
+
+CTest
+-----
+
+* :manual:`ctest(1)` now has the ability to schedule tests based on resource
+ requirements for each test. See :ref:`ctest-resource-allocation` for
+ details.
+
+* A new test property, :prop_test:`SKIP_REGULAR_EXPRESSION`, has been added.
+ This property is similar to :prop_test:`FAIL_REGULAR_EXPRESSION` and
+ :prop_test:`PASS_REGULAR_EXPRESSION`, but with the same meaning as
+ :prop_test:`SKIP_RETURN_CODE`. This is useful, for example, in cases where
+ the user has no control over the return code of the test. For example, in
+ Catch2, the return value is the number of assertion failed, therefore it is
+ impossible to use it for :prop_test:`SKIP_RETURN_CODE`.
+
+CPack
+-----
+
+* :manual:`cpack(1)` learned support for multiple configurations for ``-C``
+ option.
+
+* The :cpack_gen:`CPack DEB Generator` is now able to format generic text
+ (usually used as the description for multiple CPack generators) according
+ to the `Debian Policy Manual`_. See the
+ :variable:`CPACK_PACKAGE_DESCRIPTION_FILE` and
+ :variable:`CPACK_DEBIAN_<COMPONENT>_DESCRIPTION` variables.
+
+* The :cpack_gen:`CPack Archive Generator` learned to generate ``.tar.zst``
+ packages with Zstandard compression.
+
+.. _`Debian Policy Manual`: https://www.debian.org/doc/debian-policy/ch-controlfields.html#description
+
+Deprecated and Removed Features
+===============================
+
+* An explicit deprecation diagnostic was added for policy ``CMP0067``
+ (``CMP0066`` and below were already deprecated).
+ The :manual:`cmake-policies(7)` manual explains that the OLD behaviors
+ of all policies are deprecated and that projects should port to the
+ NEW behaviors.
+
+* The :variable:`CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY` variable has been
+ deprecated. Use the :variable:`CMAKE_FIND_USE_PACKAGE_REGISTRY` variable
+ instead.
+
+* The :module:`GetPrerequisites` module has been deprecated, as it has been
+ superceded by :command:`file(GET_RUNTIME_DEPENDENCIES)`.
+
+* The ``CPACK_INSTALL_SCRIPT`` variable has been deprecated in favor of the
+ new, more accurately named :variable:`CPACK_INSTALL_SCRIPTS` variable.
+
+Other Changes
+=============
+
+* The :manual:`cmake(1)` ``-C <initial-cache>`` option now evaluates the
+ initial cache script with :variable:`CMAKE_SOURCE_DIR` and
+ :variable:`CMAKE_BINARY_DIR` set to the top-level source and build trees.
+
+* The :manual:`cmake(1)` ``-E remove_directory`` command-line tool,
+ when given the path to a symlink to a directory, now removes just
+ the symlink. It no longer removes content of the linked directory.
+
+* The :manual:`ctest(1)` ``--build-makeprogram`` command-line option now
+ specifies the make program used when configuring a project with the
+ :generator:`Ninja` generator or the :ref:`Makefile Generators`.
+
+* The :module:`ExternalProject` module :command:`ExternalProject_Add` command
+ has been updated so that ``GIT_SUBMODULES ""`` initializes no submodules.
+ See policy :policy:`CMP0097`.
+
+* The :module:`FindGTest` module has been updated to recognize
+ MSVC build trees generated by GTest 1.8.1.
+
+* The :command:`project` command no longer strips leading zeros in version
+ components. See policy :policy:`CMP0096`.
+
+* The Qt Compressed Help file is now named ``CMake.qch``, which no longer
+ contains the release version in the file name. When CMake is upgraded
+ in-place, the name and location of this file will remain constant.
+ Tools such as IDEs, help viewers, etc. should now be able to refer to this
+ file at a fixed location that remains valid across CMake upgrades.
+
+* ``RPATH`` entries are properly escaped in the generated CMake scripts
+ used for installation. See policy :policy:`CMP0095`.
+
+* When using :variable:`CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS` on Windows the
+ auto-generated exports are now updated only when the object files
+ providing the symbols are updated.
+
+Updates
+=======
+
+Changes made since CMake 3.16.0 include the following.
+
+3.16.2
+------
+
+* CMake 3.16.0 and 3.16.1 processed ``.hh`` files with :prop_tgt:`AUTOMOC`.
+ This was a behavior change from CMake 3.15 and below that can break
+ existing projects, so it has been reverted as of 3.16.2.
+
+3.16.5
+------
+
+* The :module:`FindPython`, :module:`FindPython2`, and :module:`FindPython3`
+ modules no longer create cache entries for ``Python{,2,3}_LIBRARY_RELEASE``
+ and ``Python{,2,3}_LIBRARY_DEBUG``. Those values are always computed from
+ other results and so should not be cached. The entries were created by
+ CMake 3.16.0 through 3.16.4 but were always ``FORCE``-set and could not
+ be meaningfully edited by users.
+
+ Additionally, the modules no longer expose their internal ``_Python*``
+ cache entries publicly. CMake 3.16.0 through 3.16.4 accidentally
+ made them visible as advanced cache entries.
diff --git a/share/cmake-3.17/Help/release/3.17.rst b/share/cmake-3.17/Help/release/3.17.rst
new file mode 100644
index 0000000..c2cfdf0
--- /dev/null
+++ b/share/cmake-3.17/Help/release/3.17.rst
@@ -0,0 +1,321 @@
+CMake 3.17 Release Notes
+************************
+
+.. only:: html
+
+ .. contents::
+
+Changes made since CMake 3.16 include the following.
+
+New Features
+============
+
+Generators
+----------
+
+* :manual:`cmake(1)` gained a :generator:`Ninja Multi-Config` generator,
+ which is similar to the :generator:`Ninja` generator but can be used to build
+ multiple configurations at once.
+
+* :ref:`Visual Studio Generators` learned to support per-config sources.
+ Previously only :ref:`Command-Line Build Tool Generators` supported them.
+
+* :ref:`Visual Studio Generators` for VS 2010 and above now support
+ specifying the ``VCTargetsPath`` value for project files in
+ :variable:`CMAKE_GENERATOR_TOOLSET` setting.
+
+* :ref:`Visual Studio Generators` for VS 2010 and above learned to
+ support .NET Standard and .NET Core. See the
+ :prop_tgt:`DOTNET_TARGET_FRAMEWORK` target property and
+ associated :variable:`CMAKE_DOTNET_TARGET_FRAMEWORK` variable.
+
+Languages
+---------
+
+* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
+ now offers meta-features for the CUDA language standard levels
+ (e.g. ``cuda_std_03``, ``cuda_std_14``). See
+ :prop_gbl:`CMAKE_CUDA_KNOWN_FEATURES`.
+
+Compilers
+---------
+
+* The IBM XL Fortran compiler is now supported by the :generator:`Ninja`
+ generator.
+
+Command-Line
+------------
+
+* :manual:`cmake(1)` gained a ``--debug-find`` command-line option to
+ enable additional human-readable output on where ``find_*`` commands search.
+
+* :manual:`cmake(1)` gained a ``--trace-format`` command-line option that
+ can be used to set the ``--trace`` output format. Currently, the old
+ human readable and the new JSON format are supported. The new JSON format
+ is easier to parse automatically than the existing format.
+
+* :manual:`cmake(1)` gained a ``-E rm`` command-line tool that can be
+ used to remove directories and files. This supersedes the existing
+ ``-E remove`` and ``-E remove_directory`` tools and has better semantics.
+
+Commands
+--------
+
+* The :command:`add_custom_command` command learned to interpret paths in
+ ``DEPENDS`` arguments that are specified relative to the current
+ binary directory.
+
+* The :command:`foreach` command learned a new ``ZIP_LISTS`` option to iterate
+ over multiple lists simultaneously.
+
+* The :command:`load_cache(READ_WITH_PREFIX)` command mode is now allowed
+ when using ``cmake -P`` to :ref:`Run a Script <Script Processing Mode>`.
+
+* The :command:`message` command learned to output context provided in
+ the :variable:`CMAKE_MESSAGE_CONTEXT` variable for log levels
+ ``NOTICE`` and below. Enable this output with the new ``--log-context``
+ command-line option or :variable:`CMAKE_MESSAGE_CONTEXT_SHOW` variable.
+
+* The :command:`message` command gained new keywords ``CHECK_START``,
+ ``CHECK_PASS`` and ``CHECK_FAIL``.
+
+* The :command:`target_compile_options` command now honors the ``BEFORE``
+ keyword more consistently. See policy :policy:`CMP0101`.
+
+Variables
+---------
+
+* A :variable:`CMAKE_CTEST_ARGUMENTS` variable was added to specify a list
+ of command-line arguments passed to CTest when running through the
+ ``test`` (or ``RUN_TESTS``) target of the generated build system.
+
+* The following variables are now defined inside a :command:`function`:
+
+ - :variable:`CMAKE_CURRENT_FUNCTION`
+ - :variable:`CMAKE_CURRENT_FUNCTION_LIST_DIR`
+ - :variable:`CMAKE_CURRENT_FUNCTION_LIST_FILE`
+ - :variable:`CMAKE_CURRENT_FUNCTION_LIST_LINE`
+
+* The :variable:`CMAKE_CUDA_RUNTIME_LIBRARY` variable and
+ :prop_tgt:`CUDA_RUNTIME_LIBRARY` target property were introduced to
+ select the CUDA runtime library used when linking targets that
+ use CUDA.
+
+* The :variable:`CMAKE_FIND_DEBUG_MODE` variable was introduced to
+ print extra ``find_*`` call information during the cmake run to standard
+ error. Output is designed for human consumption and not for parsing.
+
+* The :variable:`CMAKE_EXPORT_COMPILE_COMMANDS` variable now takes its
+ initial value from the :envvar:`CMAKE_EXPORT_COMPILE_COMMANDS` environment
+ variable if no explicit configuration is given.
+
+* The :variable:`CMAKE_<LANG>_COMPILER_LAUNCHER` variable, if not set
+ explicitly, now takes its initial value from the
+ :envvar:`CMAKE_<LANG>_COMPILER_LAUNCHER` environment variable.
+
+* The :variable:`CMAKE_MESSAGE_LOG_LEVEL` variable can now be used
+ to persist a log level between CMake runs, unlike the ``--log-level``
+ command line option which only applies to that particular run.
+
+* The :variable:`CMAKE_XCODE_SCHEME_ENVIRONMENT` variable was added
+ to initialize the :prop_tgt:`XCODE_SCHEME_ENVIRONMENT` target property.
+
+* The :variable:`CMAKE_XCODE_SCHEME_WORKING_DIRECTORY` variable and
+ associated :prop_tgt:`XCODE_SCHEME_WORKING_DIRECTORY` target property
+ were added to tell the :generator:`Xcode` generator to set the value of
+ the ``Custom Working Directory`` schema option.
+
+Properties
+----------
+
+* The :prop_tgt:`AIX_EXPORT_ALL_SYMBOLS` target property and associated
+ :variable:`CMAKE_AIX_EXPORT_ALL_SYMBOLS` variable were created to
+ optionally explicitly disable automatic export of symbols from shared
+ libraries on AIX.
+
+* The :prop_tgt:`DEPRECATION` target property was added to mark
+ a target as deprecated. If a linked target is marked as
+ deprecated, a warning with the deprecation message is issued
+ at generate time.
+
+* The :prop_tgt:`INSTALL_NAME_DIR` target property now supports
+ :manual:`generator expressions <cmake-generator-expressions(7)>`.
+ In particular, the ``$<INSTALL_PREFIX>`` generator expression can
+ be used to set the directory relative to the install-time prefix.
+
+* Target properties :prop_tgt:`MACHO_COMPATIBILITY_VERSION` and
+ :prop_tgt:`MACHO_CURRENT_VERSION` were added to set the
+ ``compatibility_version`` and ``curent_version``, respectively,
+ for Mach-O binaries. For backwards compatibility, if these properties
+ are not set, :prop_tgt:`SOVERSION` and :prop_tgt:`VERSION`
+ are used respectively as fallbacks.
+
+* The :prop_tgt:`VS_DOTNET_DOCUMENTATION_FILE` target property was added
+ to tell :ref:`Visual Studio Generators` to generate a ``DocumentationFile``
+ reference in ``.csproj`` files.
+
+Modules
+-------
+
+* The :module:`ExternalProject` module :command:`ExternalProject_Add`
+ command gained a ``GIT_SUBMODULES_RECURSE`` option to specify whether
+ Git submodules should be updated recursively. The default is on to
+ preserve existing behavior.
+
+* The :module:`FindCUDAToolkit` module was added to find the
+ CUDA Toolkit without enabling CUDA as a language.
+
+* The :module:`FindCURL` module learned to find CURL using
+ the ``CURLConfig.cmake`` package configuration file generated by
+ CURL's cmake buildsystem. It also gained a new ``CURL_NO_CURL_CMAKE``
+ option to disable this behavior.
+
+* The :module:`FindFLEX` module's ``FLEX_TARGET`` command now runs ``flex``
+ with :variable:`CMAKE_CURRENT_BINARY_DIR` as the working directory.
+ See policy :policy:`CMP0098`.
+
+* The :module:`FindLibArchive` module now provides an imported target
+ for libarchive.
+
+* The :module:`FindPython` module has learned to find Python components
+ in active virtual environments managed by ``conda``.
+
+* The :module:`FindPython3` and :module:`FindPython` modules gained,
+ respectively, variable ``Python3_SOABI`` and ``Python_SOABI`` giving
+ the standard extension suffix for modules. Moreover, commands
+ ``Python3_add_library()`` and ``Python_add_library()`` gained the option
+ ``WITH_SOABI`` to prefix the library suffix with the value of ``SOABI``.
+
+* The :module:`FindLibXml2` module now provides an imported target for the
+ ``xmllint`` executable.
+
+Autogen
+-------
+
+* :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC` learned to process headers
+ with a ``.hh`` extension. See policy :policy:`CMP0100`.
+
+CTest
+-----
+
+* The :variable:`CTEST_CONFIGURATION_TYPE` variable is now set from the
+ command line when :manual:`ctest(1)` is invoked with ``-C <cfg>``.
+
+* The :manual:`ctest(1)` tool gained support for Dr. Memory to run
+ memcheck runs.
+
+* The :manual:`ctest(1)` tool gained a ``--no-tests=<[error|ignore]>`` option
+ to explicitly set and unify the behavior between direct invocation and
+ script mode if no tests were found.
+
+* The :manual:`ctest(1)` tool gained a ``--repeat <mode>:<n>`` option
+ to specify conditions in which to repeat tests. This generalizes
+ the existing ``--repeat-until-fail <n>`` option to add modes for
+ ``until-pass`` and ``after-timeout``.
+
+* The :command:`ctest_test` command gained a ``REPEAT <mode>:<n>`` option
+ to specify conditions in which to repeat tests.
+
+CPack
+-----
+
+* The :cpack_gen:`CPack DragNDrop Generator` learned to use
+ the :variable:`CPACK_DMG_<component>_FILE_NAME` variable
+ to set a custom filename when packaging components into
+ their own DMGs.
+
+* The :cpack_gen:`CPack DragNDrop Generator` learned to handle
+ RTF formatted license files. When :variable:`CPACK_DMG_SLA_DIR`
+ variable is set, ``<language>.license.rtf`` is considered, but
+ only as a fallback when the plaintext (``.txt``) file is not found
+ in order to maintain backwards compatibility.
+
+* The :cpack_gen:`CPack NSIS Generator` gained a new variable
+ :variable:`CPACK_NSIS_MUI_HEADERIMAGE` to set the header image.
+ To not break existing setups, it still defaults to
+ :variable:`CPACK_PACKAGE_ICON` if the new variable is not set.
+
+* The :cpack_gen:`CPack NSIS Generator` now supports
+ :variable:`CPACK_NSIS_UNINSTALL_NAME`.
+ This can be used to specify the name of the Uninstall program.
+
+* The :cpack_gen:`CPack NSIS Generator` now supports
+ :variable:`CPACK_NSIS_WELCOME_TITLE` and
+ :variable:`CPACK_NSIS_WELCOME_TITLE_3LINES`.
+ These can be used to specify the welcome page title and display it in 3 lines.
+
+* The :cpack_gen:`CPack NSIS Generator` now supports
+ :variable:`CPACK_NSIS_FINISH_TITLE` and
+ :variable:`CPACK_NSIS_FINISH_TITLE_3LINES`.
+ These can be used to specify the finish page title and display it in 3 lines.
+
+* The :cpack_gen:`CPack productbuild Generator` gained support for a
+ :variable:`CPACK_PRODUCTBUILD_BACKGROUND` variable to specify a background
+ image for the macOS installer.
+
+Other
+-----
+
+* :manual:`ccmake(1)` now displays cache values using colors
+ based on the entry type if the terminal supports color.
+
+* :manual:`ccmake(1)` now displays messages and a progress bar during
+ configure and generate. It will keep the output displayed if any
+ errors or warnings occurred.
+
+Deprecated and Removed Features
+===============================
+
+* An explicit deprecation diagnostic was added for policy ``CMP0068``
+ and policy ``CMP0069`` (``CMP0067`` and below were already deprecated).
+ The :manual:`cmake-policies(7)` manual explains that the OLD behaviors
+ of all policies are deprecated and that projects should port to the
+ NEW behaviors.
+
+* The :cpack_gen:`CPack PackageMaker Generator` generator has been
+ deprecated because Xcode no longer distributes the PackageMaker tools.
+ The undocumented ``OSXX11`` generator has also been deprecated.
+
+* The :manual:`cmake(1)` command-line ``-E remove`` and ``-E remove_directory``
+ tools are deprecated in favor of the new ``-E rm`` tool. The older tools
+ always returned 0 if a named path did not exist even without the force
+ option and cannot be fixed without breaking compatibility, and so have
+ been superseded.
+
+Other Changes
+=============
+
+* The :manual:`file API <cmake-file-api(7)>` index file now emits a
+ ``multiConfig`` flag specifying whether or not the generator supports
+ multiple output configurations.
+
+* Target link properties :prop_tgt:`INTERFACE_LINK_OPTIONS`,
+ :prop_tgt:`INTERFACE_LINK_DIRECTORIES` and
+ :prop_tgt:`INTERFACE_LINK_DEPENDS` are now transitive over private
+ dependencies on static libraries.
+ See policy :policy:`CMP0099`.
+
+* When using MinGW tools, the :command:`find_library` command no longer
+ finds ``.dll`` files by default. Instead, it expects ``.dll.a`` import
+ libraries to be available.
+
+* The :generator:`MinGW Makefiles` generator no longer issues an error if
+ ``sh.exe`` is present in the environment's ``PATH``.
+
+* The :generator:`Ninja` generator now prefers the first ninja build
+ tool to appear in the ``PATH`` no matter whether it is called
+ ``ninja-build``, ``ninja``, or ``samu``. Previously the first
+ of those names to appear anywhere in the ``PATH`` would be preferred.
+
+* With SDCC the ``sdar`` tool is now preferred over ``sdcclib`` as librarian.
+ The latter was deprecated by SDCC 3.2.0 and removed in SDCC 3.8.6.
+
+* With SDCC the default flags no longer include any target-specific flags.
+ Previously the default flags were hard-coded for 8051.
+
+* The :variable:`CMAKE_VS_GLOBALS` variable value now applies during
+ compiler identification and in targets created by the
+ :command:`add_custom_target` command.
+
+* The :generator:`Xcode` generator no longer hard-codes ``-Wmost``,
+ ``-Wno-four-char-constants``, and ``-Wno-unknown-pragmas`` warning flags.
diff --git a/share/cmake-3.16/Help/release/3.2.rst b/share/cmake-3.17/Help/release/3.2.rst
index 992d44b..992d44b 100644
--- a/share/cmake-3.16/Help/release/3.2.rst
+++ b/share/cmake-3.17/Help/release/3.2.rst
diff --git a/share/cmake-3.16/Help/release/3.3.rst b/share/cmake-3.17/Help/release/3.3.rst
index 6657e8d..6657e8d 100644
--- a/share/cmake-3.16/Help/release/3.3.rst
+++ b/share/cmake-3.17/Help/release/3.3.rst
diff --git a/share/cmake-3.16/Help/release/3.4.rst b/share/cmake-3.17/Help/release/3.4.rst
index 943d267..943d267 100644
--- a/share/cmake-3.16/Help/release/3.4.rst
+++ b/share/cmake-3.17/Help/release/3.4.rst
diff --git a/share/cmake-3.16/Help/release/3.5.rst b/share/cmake-3.17/Help/release/3.5.rst
index 58a5d4e..58a5d4e 100644
--- a/share/cmake-3.16/Help/release/3.5.rst
+++ b/share/cmake-3.17/Help/release/3.5.rst
diff --git a/share/cmake-3.16/Help/release/3.6.rst b/share/cmake-3.17/Help/release/3.6.rst
index f0add07..f0add07 100644
--- a/share/cmake-3.16/Help/release/3.6.rst
+++ b/share/cmake-3.17/Help/release/3.6.rst
diff --git a/share/cmake-3.16/Help/release/3.7.rst b/share/cmake-3.17/Help/release/3.7.rst
index 345c056..345c056 100644
--- a/share/cmake-3.16/Help/release/3.7.rst
+++ b/share/cmake-3.17/Help/release/3.7.rst
diff --git a/share/cmake-3.16/Help/release/3.8.rst b/share/cmake-3.17/Help/release/3.8.rst
index de51a7b..de51a7b 100644
--- a/share/cmake-3.16/Help/release/3.8.rst
+++ b/share/cmake-3.17/Help/release/3.8.rst
diff --git a/share/cmake-3.16/Help/release/3.9.rst b/share/cmake-3.17/Help/release/3.9.rst
index 89da627..89da627 100644
--- a/share/cmake-3.16/Help/release/3.9.rst
+++ b/share/cmake-3.17/Help/release/3.9.rst
diff --git a/share/cmake-3.16/Help/release/dev.txt b/share/cmake-3.17/Help/release/dev.txt
index 2cf9193..2cf9193 100644
--- a/share/cmake-3.16/Help/release/dev.txt
+++ b/share/cmake-3.17/Help/release/dev.txt
diff --git a/share/cmake-3.17/Help/release/index.rst b/share/cmake-3.17/Help/release/index.rst
new file mode 100644
index 0000000..5d1f8a2
--- /dev/null
+++ b/share/cmake-3.17/Help/release/index.rst
@@ -0,0 +1,33 @@
+:orphan:
+
+CMake Release Notes
+*******************
+
+..
+ This file should include the adjacent "dev.txt" file
+ in development versions but not in release versions.
+
+Releases
+========
+
+.. toctree::
+ :maxdepth: 1
+
+ 3.17 <3.17>
+ 3.16 <3.16>
+ 3.15 <3.15>
+ 3.14 <3.14>
+ 3.13 <3.13>
+ 3.12 <3.12>
+ 3.11 <3.11>
+ 3.10 <3.10>
+ 3.9 <3.9>
+ 3.8 <3.8>
+ 3.7 <3.7>
+ 3.6 <3.6>
+ 3.5 <3.5>
+ 3.4 <3.4>
+ 3.3 <3.3>
+ 3.2 <3.2>
+ 3.1 <3.1>
+ 3.0 <3.0>
diff --git a/share/cmake-3.16/Help/variable/ANDROID.rst b/share/cmake-3.17/Help/variable/ANDROID.rst
index fede4ca..fede4ca 100644
--- a/share/cmake-3.16/Help/variable/ANDROID.rst
+++ b/share/cmake-3.17/Help/variable/ANDROID.rst
diff --git a/share/cmake-3.16/Help/variable/APPLE.rst b/share/cmake-3.17/Help/variable/APPLE.rst
index 810d5fc..810d5fc 100644
--- a/share/cmake-3.16/Help/variable/APPLE.rst
+++ b/share/cmake-3.17/Help/variable/APPLE.rst
diff --git a/share/cmake-3.16/Help/variable/BORLAND.rst b/share/cmake-3.17/Help/variable/BORLAND.rst
index badb733..badb733 100644
--- a/share/cmake-3.16/Help/variable/BORLAND.rst
+++ b/share/cmake-3.17/Help/variable/BORLAND.rst
diff --git a/share/cmake-3.16/Help/variable/BUILD_SHARED_LIBS.rst b/share/cmake-3.17/Help/variable/BUILD_SHARED_LIBS.rst
index 53087b2..53087b2 100644
--- a/share/cmake-3.16/Help/variable/BUILD_SHARED_LIBS.rst
+++ b/share/cmake-3.17/Help/variable/BUILD_SHARED_LIBS.rst
diff --git a/share/cmake-3.16/Help/variable/CACHE.rst b/share/cmake-3.17/Help/variable/CACHE.rst
index 2cef27e..2cef27e 100644
--- a/share/cmake-3.16/Help/variable/CACHE.rst
+++ b/share/cmake-3.17/Help/variable/CACHE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst b/share/cmake-3.17/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst
index b6d0054..b6d0054 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS.rst b/share/cmake-3.17/Help/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS.rst
new file mode 100644
index 0000000..c64dd48
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS.rst
@@ -0,0 +1,6 @@
+CMAKE_AIX_EXPORT_ALL_SYMBOLS
+----------------------------
+
+Default value for :prop_tgt:`AIX_EXPORT_ALL_SYMBOLS` target property.
+This variable is used to initialize the property on each target as it is
+created.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst
index 8862ba9..8862ba9 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_API.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_API.rst
index c07a05a..c07a05a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_API.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_API.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_API_MIN.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_API_MIN.rst
index 0246c75..0246c75 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_API_MIN.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_API_MIN.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_ARCH.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH.rst
index b91ca57..b91ca57 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_ARCH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst
index 0a3ed3c..0a3ed3c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_ARM_MODE.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_MODE.rst
index ad3c37c..ad3c37c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_ARM_MODE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_MODE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_ARM_NEON.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_NEON.rst
index 4b7ae03..4b7ae03 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_ARM_NEON.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_NEON.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst
index c372fe4..c372fe4 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_GUI.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_GUI.rst
index 1755375..1755375 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_GUI.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_GUI.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst
index 451a929..451a929 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst
index af83e34..af83e34 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst
index 3dc05e0..3dc05e0 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst
index 4191907..4191907 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst
index 7cb9527..7cb9527 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_NDK.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK.rst
index d241dd0..d241dd0 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_NDK.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst
index 8ea1257..8ea1257 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst
index 207019a..207019a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst
index 22808e3..22808e3 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst
index 19fb527..19fb527 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_PROGUARD.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD.rst
index b8fdd46..b8fdd46 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_PROGUARD.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst
index 8dea009..8dea009 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst
index 69a4d0b..69a4d0b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst
index 0a96df9..0a96df9 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst
index ea62cab..ea62cab 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_STL_TYPE.rst b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_STL_TYPE.rst
index d174575..d174575 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ANDROID_STL_TYPE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ANDROID_STL_TYPE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_APPBUNDLE_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_APPBUNDLE_PATH.rst
index 1c7ca51..1c7ca51 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_APPBUNDLE_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_APPBUNDLE_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AR.rst b/share/cmake-3.17/Help/variable/CMAKE_AR.rst
index 5893677..5893677 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst b/share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst
index c889321..c889321 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
index 94c2b6e..94c2b6e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ARGC.rst b/share/cmake-3.17/Help/variable/CMAKE_ARGC.rst
index 30db2a2..30db2a2 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ARGC.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ARGC.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ARGV0.rst b/share/cmake-3.17/Help/variable/CMAKE_ARGV0.rst
index c4d1c21..c4d1c21 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ARGV0.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ARGV0.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst
index 1398e78..1398e78 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst
index dd9499a..dd9499a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst
index bad9cf2..bad9cf2 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC.rst
index 02e5eb5..02e5eb5 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst
index 7e1c53d..7e1c53d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst
index 5c3662d..5c3662d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst
index ba1b9d2..ba1b9d2 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst
index 09bf5cd..09bf5cd 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst
index dca0b06..dca0b06 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst
index 6c0c61b..6c0c61b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTORCC.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTORCC.rst
index 7426105..7426105 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTORCC.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTORCC.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTORCC_OPTIONS.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTORCC_OPTIONS.rst
index 815d39d..815d39d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTORCC_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTORCC_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTOUIC.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC.rst
index 5abefaa..5abefaa 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTOUIC.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst
index 28fa92f..28fa92f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst b/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst
index aa132bf..aa132bf 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst b/share/cmake-3.17/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst
index 05c366a..05c366a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_BINARY_DIR.rst b/share/cmake-3.17/Help/variable/CMAKE_BINARY_DIR.rst
index 3b323b7..3b323b7 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_BINARY_DIR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_BINARY_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_BUILD_RPATH.rst b/share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH.rst
index f5d53b8..f5d53b8 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_BUILD_RPATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst b/share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst
index e34ede6..e34ede6 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_BUILD_TOOL.rst b/share/cmake-3.17/Help/variable/CMAKE_BUILD_TOOL.rst
index 6133491..6133491 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_BUILD_TOOL.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_BUILD_TOOL.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_BUILD_TYPE.rst b/share/cmake-3.17/Help/variable/CMAKE_BUILD_TYPE.rst
index 2d35635..2d35635 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_BUILD_TYPE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_BUILD_TYPE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst b/share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst
index 30d5d3b..30d5d3b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst b/share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst
index 5b59a6e..5b59a6e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CACHEFILE_DIR.rst b/share/cmake-3.17/Help/variable/CMAKE_CACHEFILE_DIR.rst
index 8604d0e..8604d0e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CACHEFILE_DIR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CACHEFILE_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst
index 1e53ed6..1e53ed6 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst
index 5d174a3..5d174a3 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst
index 22d267c..22d267c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CFG_INTDIR.rst b/share/cmake-3.17/Help/variable/CMAKE_CFG_INTDIR.rst
new file mode 100644
index 0000000..842654e
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_CFG_INTDIR.rst
@@ -0,0 +1,52 @@
+CMAKE_CFG_INTDIR
+----------------
+
+Build-time reference to per-configuration output subdirectory.
+
+For native build systems supporting multiple configurations in the
+build tree (such as :ref:`Visual Studio Generators` and :generator:`Xcode`),
+the value is a reference to a build-time variable specifying the name
+of the per-configuration output subdirectory. On :ref:`Makefile Generators`
+this evaluates to `.` because there is only one configuration in a build tree.
+Example values:
+
+::
+
+ $(ConfigurationName) = Visual Studio 9
+ $(Configuration) = Visual Studio 10
+ $(CONFIGURATION) = Xcode
+ . = Make-based tools
+ . = Ninja
+ ${CONFIGURATION} = Ninja Multi-Config
+
+Note that this variable only has limited support on
+:generator:`Ninja Multi-Config`. It is recommended that you use the
+``$<CONFIG>`` :manual:`generator expression <cmake-generator-expressions(7)>`
+instead.
+
+Since these values are evaluated by the native build system, this
+variable is suitable only for use in command lines that will be
+evaluated at build time. Example of intended usage:
+
+::
+
+ add_executable(mytool mytool.c)
+ add_custom_command(
+ OUTPUT out.txt
+ COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool
+ ${CMAKE_CURRENT_SOURCE_DIR}/in.txt out.txt
+ DEPENDS mytool in.txt
+ )
+ add_custom_target(drive ALL DEPENDS out.txt)
+
+Note that ``CMAKE_CFG_INTDIR`` is no longer necessary for this purpose but
+has been left for compatibility with existing projects. Instead
+:command:`add_custom_command` recognizes executable target names in its
+``COMMAND`` option, so
+``${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool`` can be replaced
+by just ``mytool``.
+
+This variable is read-only. Setting it is undefined behavior. In
+multi-configuration build systems the value of this variable is passed
+as the value of preprocessor symbol ``CMAKE_INTDIR`` to the compilation
+of all source files.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CL_64.rst b/share/cmake-3.17/Help/variable/CMAKE_CL_64.rst
index 4e80d1f..4e80d1f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CL_64.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CL_64.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst b/share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst
index ad2709d..ad2709d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst b/share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst
index 80ffce3..80ffce3 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst b/share/cmake-3.17/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst
index 33cdf6c..33cdf6c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_COLOR_MAKEFILE.rst b/share/cmake-3.17/Help/variable/CMAKE_COLOR_MAKEFILE.rst
index bb86ecc..bb86ecc 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_COLOR_MAKEFILE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_COLOR_MAKEFILE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_COMMAND.rst b/share/cmake-3.17/Help/variable/CMAKE_COMMAND.rst
index f80b46c..f80b46c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_COMPILER_2005.rst b/share/cmake-3.17/Help/variable/CMAKE_COMPILER_2005.rst
index 134559b..134559b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_COMPILER_2005.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_COMPILER_2005.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst b/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst
index a40667e..a40667e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst b/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst
index f1f5cf7..f1f5cf7 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst b/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst
index 3d6dab4..3d6dab4 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst b/share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst
index ea33c7d..ea33c7d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
index fdeb9ab..fdeb9ab 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CONFIGURATION_TYPES.rst b/share/cmake-3.17/Help/variable/CMAKE_CONFIGURATION_TYPES.rst
index 34e99eb..34e99eb 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CONFIGURATION_TYPES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CONFIGURATION_TYPES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CONFIG_POSTFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_CONFIG_POSTFIX.rst
index e686a43..e686a43 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CONFIG_POSTFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CONFIG_POSTFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CPACK_COMMAND.rst b/share/cmake-3.17/Help/variable/CMAKE_CPACK_COMMAND.rst
index 559108a..559108a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CPACK_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CPACK_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CROSSCOMPILING.rst b/share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING.rst
index 7e6ec33..7e6ec33 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CROSSCOMPILING.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst b/share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst
index 1d013b7..1d013b7 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CROSS_CONFIGS.rst b/share/cmake-3.17/Help/variable/CMAKE_CROSS_CONFIGS.rst
new file mode 100644
index 0000000..c850af2
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_CROSS_CONFIGS.rst
@@ -0,0 +1,7 @@
+CMAKE_CROSS_CONFIGS
+-------------------
+
+Specifies a :ref:`semicolon-separated list <CMake Language Lists>` of
+configurations available from all ``build-<Config>.ninja`` files in the
+:generator:`Ninja Multi-Config` generator. See the generator's
+documentation for more details.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CTEST_ARGUMENTS.rst b/share/cmake-3.17/Help/variable/CMAKE_CTEST_ARGUMENTS.rst
new file mode 100644
index 0000000..0940b46
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_CTEST_ARGUMENTS.rst
@@ -0,0 +1,6 @@
+CMAKE_CTEST_ARGUMENTS
+---------------------
+
+Set this to a :ref:`semicolon-separated list <CMake Language Lists>` of
+command-line arguments to pass to :manual:`ctest(1)` when running tests
+through the ``test`` (or ``RUN_TESTS``) target of the generated build system.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CTEST_COMMAND.rst b/share/cmake-3.17/Help/variable/CMAKE_CTEST_COMMAND.rst
index b2942e2..b2942e2 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CTEST_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CTEST_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst b/share/cmake-3.17/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst
new file mode 100644
index 0000000..2cd2650
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst
@@ -0,0 +1,11 @@
+CMAKE_CUDA_COMPILE_FEATURES
+---------------------------
+
+List of features known to the CUDA compiler
+
+These features are known to be available for use with the CUDA compiler. This
+list is a subset of the features listed in the
+:prop_gbl:`CMAKE_CUDA_KNOWN_FEATURES` global property.
+
+See the :manual:`cmake-compile-features(7)` manual for information on
+compile features and a list of supported compilers.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CUDA_EXTENSIONS.rst b/share/cmake-3.17/Help/variable/CMAKE_CUDA_EXTENSIONS.rst
index 4fe758e..4fe758e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CUDA_EXTENSIONS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CUDA_EXTENSIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst b/share/cmake-3.17/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst
index 6d34c5c..6d34c5c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst b/share/cmake-3.17/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst
index fc835cd..fc835cd 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst b/share/cmake-3.17/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst
new file mode 100644
index 0000000..ea1c1b8
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst
@@ -0,0 +1,24 @@
+CMAKE_CUDA_RUNTIME_LIBRARY
+--------------------------
+
+Select the CUDA runtime library for use by compilers targeting the MSVC ABI.
+This variable is used to initialize the :prop_tgt:`CUDA_RUNTIME_LIBRARY`
+property on all targets as they are created.
+
+The allowed case insensitive values are:
+
+.. include:: ../prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt
+
+Contents of ``CMAKE_CUDA_RUNTIME_LIBRARY`` may use
+:manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+If this variable is not set then the :prop_tgt:`CUDA_RUNTIME_LIBRARY` target
+property will not be set automatically. If that property is not set then
+CMake uses the default value ``Static`` to select the CUDA runtime library.
+
+.. note::
+
+ This property has effect only when the ``CUDA`` language is enabled. To
+ control the CUDA runtime linking when only using the CUDA SDK with the
+ ``C`` or ``C++`` language we recommend using the :module:`FindCUDAToolkit`
+ module.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst b/share/cmake-3.17/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst
index eef92fb..eef92fb 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CUDA_STANDARD.rst b/share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD.rst
index 6c23031..6c23031 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CUDA_STANDARD.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst b/share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst
index 935d605..935d605 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst
index 7de50a5..7de50a5 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst
index 40496b5..40496b5 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION.rst
new file mode 100644
index 0000000..aa2936c
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION.rst
@@ -0,0 +1,6 @@
+CMAKE_CURRENT_FUNCTION
+----------------------
+
+When executing code inside a :command:`function`, this variable
+contains the name of the current function. It can be used for
+diagnostic or debug messages.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst
new file mode 100644
index 0000000..0119381
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst
@@ -0,0 +1,33 @@
+CMAKE_CURRENT_FUNCTION_LIST_DIR
+-------------------------------
+
+When executing code inside a :command:`function`, this variable
+contains the full directory of the listfile defining the current function.
+
+It is quite common practice in CMake that modules use some additional files
+(e.g., templates to render). And the code typically did the following:
+
+.. code-block:: cmake
+ :caption: Bad
+
+ set(_THIS_MODULE_BASE_DIR "${CMAKE_CURRENT_LIST_DIR}")
+
+ function(foo)
+ configure_file(
+ "${_THIS_MODULE_BASE_DIR}/some.template.in"
+ some.output
+ )
+ endfunction()
+
+Using this variable inside a function eliminates the neccessity of the
+additional one with "global" scope:
+
+.. code-block:: cmake
+ :caption: Good
+
+ function(foo)
+ configure_file(
+ "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/some.template.in"
+ some.output
+ )
+ endfunction()
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst
new file mode 100644
index 0000000..d2c846a
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst
@@ -0,0 +1,5 @@
+CMAKE_CURRENT_FUNCTION_LIST_FILE
+--------------------------------
+
+When executing code inside a :command:`function`, this variable
+contains the full path to the listfile declaring a current function.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst
new file mode 100644
index 0000000..5a7cd13
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst
@@ -0,0 +1,5 @@
+CMAKE_CURRENT_FUNCTION_LIST_LINE
+--------------------------------
+
+When executing code inside a :command:`function`, this variable
+contains the line number in the listfile where a current function has defined.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CURRENT_LIST_DIR.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_DIR.rst
index ebc3ab9..ebc3ab9 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CURRENT_LIST_DIR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CURRENT_LIST_FILE.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_FILE.rst
index 84b0eee..84b0eee 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CURRENT_LIST_FILE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_FILE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CURRENT_LIST_LINE.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_LINE.rst
index 60e8e26..60e8e26 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CURRENT_LIST_LINE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_LINE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst
index c1b755a..c1b755a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst b/share/cmake-3.17/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst
index 5c59f95..5c59f95 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CXX_EXTENSIONS.rst b/share/cmake-3.17/Help/variable/CMAKE_CXX_EXTENSIONS.rst
index 4a92425..4a92425 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CXX_EXTENSIONS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CXX_EXTENSIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CXX_STANDARD.rst b/share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD.rst
index 8a8bdff..8a8bdff 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CXX_STANDARD.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst b/share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst
index 4c71058..4c71058 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_C_COMPILE_FEATURES.rst b/share/cmake-3.17/Help/variable/CMAKE_C_COMPILE_FEATURES.rst
index 8d1eca0..8d1eca0 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_C_COMPILE_FEATURES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_C_COMPILE_FEATURES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_C_EXTENSIONS.rst b/share/cmake-3.17/Help/variable/CMAKE_C_EXTENSIONS.rst
index fa510d4..fa510d4 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_C_EXTENSIONS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_C_EXTENSIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_C_STANDARD.rst b/share/cmake-3.17/Help/variable/CMAKE_C_STANDARD.rst
index b55e00c..b55e00c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_C_STANDARD.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_C_STANDARD.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst b/share/cmake-3.17/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst
index 7f70f6e..7f70f6e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_DEBUG_POSTFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_DEBUG_POSTFIX.rst
index 08577a5..08577a5 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_DEBUG_POSTFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_DEBUG_POSTFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst b/share/cmake-3.17/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
index a1fa1ff..a1fa1ff 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst b/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst
new file mode 100644
index 0000000..62ee0d2
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst
@@ -0,0 +1,6 @@
+CMAKE_DEFAULT_BUILD_TYPE
+------------------------
+
+Specifies the configuration to use by default in a ``build.ninja`` file in the
+:generator:`Ninja Multi-Config` generator. See the generator's documentation
+for more details.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_CONFIGS.rst b/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_CONFIGS.rst
new file mode 100644
index 0000000..86d8a5a
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_CONFIGS.rst
@@ -0,0 +1,7 @@
+CMAKE_DEFAULT_CONFIGS
+---------------------
+
+Specifies a :ref:`semicolon-separated list <CMake Language Lists>` of configurations
+to build for a target in ``build.ninja`` if no ``:<Config>`` suffix is specified in
+the :generator:`Ninja Multi-Config` generator.
+See the generator's documentation for more details.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst b/share/cmake-3.17/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst
index 7179071..7179071 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_DIRECTORY_LABELS.rst b/share/cmake-3.17/Help/variable/CMAKE_DIRECTORY_LABELS.rst
index 2a6c410..2a6c410 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_DIRECTORY_LABELS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_DIRECTORY_LABELS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst b/share/cmake-3.17/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst
index ed60020..ed60020 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst b/share/cmake-3.17/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst
index 7c30ede..7c30ede 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_DL_LIBS.rst b/share/cmake-3.17/Help/variable/CMAKE_DL_LIBS.rst
index 50d313d..50d313d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_DL_LIBS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_DL_LIBS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst b/share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst
new file mode 100644
index 0000000..8edcd1e
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst
@@ -0,0 +1,16 @@
+CMAKE_DOTNET_TARGET_FRAMEWORK
+-----------------------------
+
+Default value for :prop_tgt:`DOTNET_TARGET_FRAMEWORK` property of
+targets.
+
+This variable is used to initialize the
+:prop_tgt:`DOTNET_TARGET_FRAMEWORK` property on all targets. See that
+target property for additional information.
+
+Setting ``CMAKE_DOTNET_TARGET_FRAMEWORK`` may be necessary
+when working with ``C#`` and newer .NET framework versions to
+avoid referencing errors with the ``ALL_BUILD`` CMake target.
+
+This variable is only evaluated for :ref:`Visual Studio Generators`
+VS 2010 and above.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst
new file mode 100644
index 0000000..c2eef9e
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst
@@ -0,0 +1,20 @@
+CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION
+-------------------------------------
+
+Default value for :prop_tgt:`DOTNET_TARGET_FRAMEWORK_VERSION`
+property of targets.
+
+This variable is used to initialize the
+:prop_tgt:`DOTNET_TARGET_FRAMEWORK_VERSION` property on all
+targets. See that target property for additional information. When set,
+:variable:`CMAKE_DOTNET_TARGET_FRAMEWORK` takes precednece over this
+variable. See that variable or the associated target property
+:prop_tgt:`DOTNET_TARGET_FRAMEWORK` for additional information.
+
+
+Setting ``CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION`` may be necessary
+when working with ``C#`` and newer .NET framework versions to
+avoid referencing errors with the ``ALL_BUILD`` CMake target.
+
+This variable is only evaluated for :ref:`Visual Studio Generators`
+VS 2010 and above.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst b/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst
index 331aae8..331aae8 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst b/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst
index 7b4367d..7b4367d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst b/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst
index 6e8a408..6e8a408 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst b/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst
index 314efe5..314efe5 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_VERSION.rst
index 8cc7882..8cc7882 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ECLIPSE_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_EDIT_COMMAND.rst b/share/cmake-3.17/Help/variable/CMAKE_EDIT_COMMAND.rst
index 2f4ab1f..2f4ab1f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_EDIT_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_EDIT_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ENABLE_EXPORTS.rst b/share/cmake-3.17/Help/variable/CMAKE_ENABLE_EXPORTS.rst
index 8848da1..8848da1 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ENABLE_EXPORTS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ENABLE_EXPORTS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ERROR_DEPRECATED.rst b/share/cmake-3.17/Help/variable/CMAKE_ERROR_DEPRECATED.rst
index f3a6738..f3a6738 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ERROR_DEPRECATED.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ERROR_DEPRECATED.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst b/share/cmake-3.17/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
index 38e9b7b..38e9b7b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst
index 356590f..356590f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst b/share/cmake-3.17/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst
index 76561d8..76561d8 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst b/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst
index 9e108f8..9e108f8 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst b/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst
index 0cd8113..0cd8113 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst
index 592a369..592a369 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst
index 0b8afe4..0b8afe4 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst b/share/cmake-3.17/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst
new file mode 100644
index 0000000..6d2450b
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst
@@ -0,0 +1,37 @@
+CMAKE_EXPORT_COMPILE_COMMANDS
+-----------------------------
+
+Enable/Disable output of compile commands during generation.
+
+If enabled, generates a ``compile_commands.json`` file containing the exact
+compiler calls for all translation units of the project in machine-readable
+form. The format of the JSON file looks like:
+
+.. code-block:: javascript
+
+ [
+ {
+ "directory": "/home/user/development/project",
+ "command": "/usr/bin/c++ ... -c ../foo/foo.cc",
+ "file": "../foo/foo.cc"
+ },
+
+ ...
+
+ {
+ "directory": "/home/user/development/project",
+ "command": "/usr/bin/c++ ... -c ../foo/bar.cc",
+ "file": "../foo/bar.cc"
+ }
+ ]
+
+This is initialized by the :envvar:`CMAKE_EXPORT_COMPILE_COMMANDS` environment
+variable.
+
+.. note::
+ This option is implemented only by :ref:`Makefile Generators`
+ and the :generator:`Ninja`. It is ignored on other generators.
+
+ This option currently does not work well in combination with
+ the :prop_tgt:`UNITY_BUILD` target property or the
+ :variable:`CMAKE_UNITY_BUILD` variable.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst b/share/cmake-3.17/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst
index 768ed64..768ed64 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst b/share/cmake-3.17/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst
index 3476a19..3476a19 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_EXTRA_GENERATOR.rst b/share/cmake-3.17/Help/variable/CMAKE_EXTRA_GENERATOR.rst
index 2c92323..2c92323 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_EXTRA_GENERATOR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_EXTRA_GENERATOR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst b/share/cmake-3.17/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst
index a130adb..a130adb 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_APPBUNDLE.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_APPBUNDLE.rst
index 7a05fac..7a05fac 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_APPBUNDLE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_APPBUNDLE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_DEBUG_MODE.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_DEBUG_MODE.rst
new file mode 100644
index 0000000..33ffdd6
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_DEBUG_MODE.rst
@@ -0,0 +1,22 @@
+CMAKE_FIND_DEBUG_MODE
+---------------------
+
+Print extra find call information for the following commands to standard
+error:
+* :command:`find_program`
+* :command:`find_library`
+* :command:`find_file`
+* :command:`find_path`
+* :command:`find_package`
+
+Output is designed for human consumption and not for parsing.
+Enabling this variable is equivalent to using :manual:`cmake <cmake(1)>` ``--debug-find``
+with the added ability to enable debugging for a subset of find calls.
+
+.. code-block:: cmake
+
+ set(CMAKE_FIND_DEBUG_MODE TRUE)
+ find_program(...)
+ set(CMAKE_FIND_DEBUG_MODE FALSE)
+
+Default is unset.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_FRAMEWORK.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_FRAMEWORK.rst
index 4d5078f..4d5078f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_FRAMEWORK.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_FRAMEWORK.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst
index ada8955..ada8955 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst
index 58354b2..58354b2 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst
index 4a64e33..4a64e33 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst
index 789dc99..789dc99 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
index bd1a30f..bd1a30f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst
index 4ee9d8b..4ee9d8b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst
index 107c183..107c183 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst
index db658a1..db658a1 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst
index dfbde20..dfbde20 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst
index 99e4ec1..99e4ec1 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst
index ba5f3a8..ba5f3a8 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst
index 5c4f23a..5c4f23a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH.rst
index 6172c56..6172c56 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst
index df1af5a..df1af5a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst
index 52ab89d..52ab89d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst
index 3872947..3872947 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst
index d24a78a..d24a78a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt b/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt
index ab65e09..ab65e09 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst
index 957e956..957e956 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst
index d2bdb09..d2bdb09 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst
index b99081d..b99081d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst
index 7c7ca36..7c7ca36 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst
index e7f5b0f..e7f5b0f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst
index fbaba5a..fbaba5a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst
index cb4eec5..cb4eec5 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FOLDER.rst b/share/cmake-3.17/Help/variable/CMAKE_FOLDER.rst
index 50a2b88..50a2b88 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FOLDER.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FOLDER.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FRAMEWORK.rst b/share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK.rst
index 591041c..591041c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FRAMEWORK.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_FRAMEWORK_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK_PATH.rst
index 13ade4e..13ade4e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_FRAMEWORK_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_Fortran_FORMAT.rst b/share/cmake-3.17/Help/variable/CMAKE_Fortran_FORMAT.rst
index 1406e59..1406e59 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_Fortran_FORMAT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_Fortran_FORMAT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst b/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst
index 5aeab07..5aeab07 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst b/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst
index 1da55ca..1da55ca 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst b/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst
index 2f83880..2f83880 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst b/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst
index 3c7edc1..3c7edc1 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_GENERATOR.rst b/share/cmake-3.17/Help/variable/CMAKE_GENERATOR.rst
index ec52cd4..ec52cd4 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_GENERATOR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_GENERATOR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_GENERATOR_INSTANCE.rst b/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_INSTANCE.rst
index 3657ed4..3657ed4 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_GENERATOR_INSTANCE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_INSTANCE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_GENERATOR_PLATFORM.rst b/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_PLATFORM.rst
index 2c115a3..2c115a3 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_GENERATOR_PLATFORM.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_PLATFORM.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_TOOLSET.rst b/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_TOOLSET.rst
new file mode 100644
index 0000000..53ad2f3
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_TOOLSET.rst
@@ -0,0 +1,65 @@
+CMAKE_GENERATOR_TOOLSET
+-----------------------
+
+Native build system toolset specification provided by user.
+
+Some CMake generators support a toolset specification to tell the
+native build system how to choose a compiler. If the user specifies
+a toolset (e.g. via the :manual:`cmake(1)` ``-T`` option or via
+the :envvar:`CMAKE_GENERATOR_TOOLSET` environment variable) the value
+will be available in this variable.
+
+The value of this variable should never be modified by project code.
+A toolchain file specified by the :variable:`CMAKE_TOOLCHAIN_FILE`
+variable may initialize ``CMAKE_GENERATOR_TOOLSET``. Once a given
+build tree has been initialized with a particular value for this
+variable, changing the value has undefined behavior.
+
+Toolset specification is supported only on specific generators:
+
+* :ref:`Visual Studio Generators` for VS 2010 and above
+* The :generator:`Xcode` generator for Xcode 3.0 and above
+* The :generator:`Green Hills MULTI` generator
+
+See native build system documentation for allowed toolset names.
+
+Visual Studio Toolset Selection
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The :ref:`Visual Studio Generators` support toolset specification
+using one of these forms:
+
+* ``toolset``
+* ``toolset[,key=value]*``
+* ``key=value[,key=value]*``
+
+The ``toolset`` specifies the toolset name. The selected toolset name
+is provided in the :variable:`CMAKE_VS_PLATFORM_TOOLSET` variable.
+
+The ``key=value`` pairs form a comma-separated list of options to
+specify generator-specific details of the toolset selection.
+Supported pairs are:
+
+``cuda=<version>|<path>``
+ Specify the CUDA toolkit version to use or the path to a
+ standalone CUDA toolkit directory. Supported by VS 2010
+ and above. The version can only be used with the CUDA
+ toolkit VS integration globally installed.
+ See the :variable:`CMAKE_VS_PLATFORM_TOOLSET_CUDA` and
+ :variable:`CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR` variables.
+
+``host=<arch>``
+ Specify the host tools architecture as ``x64`` or ``x86``.
+ Supported by VS 2013 and above.
+ See the :variable:`CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE`
+ variable.
+
+``version=<version>``
+ Specify the toolset version to use. Supported by VS 2017
+ and above with the specified toolset installed.
+ See the :variable:`CMAKE_VS_PLATFORM_TOOLSET_VERSION` variable.
+
+``VCTargetsPath=<path>``
+ Specify an alternative ``VCTargetsPath`` value for Visual Studio
+ project files. This allows use of VS platform extension configuration
+ files (``.props`` and ``.targets``) that are not installed with VS.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst b/share/cmake-3.17/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst
index b6768a1..b6768a1 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst b/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst
new file mode 100644
index 0000000..8587742
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst
@@ -0,0 +1,26 @@
+CMAKE_GLOBAL_AUTOGEN_TARGET
+---------------------------
+
+Switch to enable generation of a global ``autogen`` target.
+
+When :variable:`CMAKE_GLOBAL_AUTOGEN_TARGET` is enabled, a custom target
+``autogen`` is generated. This target depends on all :prop_tgt:`AUTOMOC` and
+:prop_tgt:`AUTOUIC` generated ``<ORIGIN>_autogen`` targets in the project.
+By building the global ``autogen`` target, all :prop_tgt:`AUTOMOC` and
+:prop_tgt:`AUTOUIC` files in the project will be generated.
+
+The name of the global ``autogen`` target can be changed by setting
+:variable:`CMAKE_GLOBAL_AUTOGEN_TARGET_NAME`.
+
+By default :variable:`CMAKE_GLOBAL_AUTOGEN_TARGET` is unset.
+
+See the :manual:`cmake-qt(7)` manual for more information on using CMake
+with Qt.
+
+Note
+^^^^
+
+``<ORIGIN>_autogen`` targets by default inherit their origin target's
+dependencies. This might result in unintended dependency target
+builds when only ``<ORIGIN>_autogen`` targets are built. A solution is to
+disable :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` on the respective origin targets.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst b/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst
index c86a5d0..c86a5d0 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst b/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst
index f92128c..f92128c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst b/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst
index c6e05de..c6e05de 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_GNUtoMS.rst b/share/cmake-3.17/Help/variable/CMAKE_GNUtoMS.rst
index 9c0f59e..9c0f59e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_GNUtoMS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_GNUtoMS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_HOME_DIRECTORY.rst b/share/cmake-3.17/Help/variable/CMAKE_HOME_DIRECTORY.rst
index b03d956..b03d956 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_HOME_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_HOME_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_HOST_APPLE.rst b/share/cmake-3.17/Help/variable/CMAKE_HOST_APPLE.rst
index 9c205ec..9c205ec 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_HOST_APPLE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_HOST_APPLE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_HOST_SOLARIS.rst b/share/cmake-3.17/Help/variable/CMAKE_HOST_SOLARIS.rst
index 82b5d69..82b5d69 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_HOST_SOLARIS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_HOST_SOLARIS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_HOST_SYSTEM.rst b/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM.rst
index 12d11d1..12d11d1 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_HOST_SYSTEM.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst b/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst
index e892677..e892677 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst b/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst
new file mode 100644
index 0000000..5f08728
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst
@@ -0,0 +1,15 @@
+CMAKE_HOST_SYSTEM_PROCESSOR
+---------------------------
+
+The name of the CPU CMake is running on.
+
+On Windows, this variable is set to the value of the environment variable
+``PROCESSOR_ARCHITECTURE``. On systems that support ``uname``, this variable is
+set to the output of:
+
+- ``uname -m`` on GNU, Linux, Cygwin, Darwin, Android, or
+- ``arch`` on OpenBSD, or
+- on other systems,
+
+ * ``uname -p`` if its exit code is nonzero, or
+ * ``uname -m`` otherwise.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst
index ed23070..ed23070 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_HOST_UNIX.rst b/share/cmake-3.17/Help/variable/CMAKE_HOST_UNIX.rst
index 817a957..817a957 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_HOST_UNIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_HOST_UNIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_HOST_WIN32.rst b/share/cmake-3.17/Help/variable/CMAKE_HOST_WIN32.rst
index 876b34c..876b34c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_HOST_WIN32.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_HOST_WIN32.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_IGNORE_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_IGNORE_PATH.rst
index 4bca34b..4bca34b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_IGNORE_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_IGNORE_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst
index 1561a1d..1561a1d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst
index 11aeab7..11aeab7 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst b/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst
index 98d99eb..98d99eb 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst b/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst
index 697682b..697682b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst b/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst
index e0f2a2e..e0f2a2e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst b/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst
index 37d0a3d..37d0a3d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INCLUDE_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_PATH.rst
index 4918e99..4918e99 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INCLUDE_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst
index 57160f1..57160f1 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
index f994fbe..f994fbe 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_MESSAGE.rst b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_MESSAGE.rst
index 304df26..304df26 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_MESSAGE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_MESSAGE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_NAME_DIR.rst b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
index 5ba4c04..5ba4c04 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_PREFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX.rst
index 02ba645..02ba645 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_PREFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst
index 2a5842d..2a5842d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
index 76ca3da..76ca3da 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_RPATH.rst b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH.rst
index 813d1e0..813d1e0 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INSTALL_RPATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
new file mode 100644
index 0000000..a99c108
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
@@ -0,0 +1,13 @@
+CMAKE_INSTALL_RPATH_USE_LINK_PATH
+---------------------------------
+
+Add paths to linker search and installed rpath.
+
+``CMAKE_INSTALL_RPATH_USE_LINK_PATH`` is a boolean that if set to ``True``
+will append to the runtime search path (rpath) of installed binaries
+any directories outside the project that are in the linker search path or
+contain linked library files. The directories are appended after the
+value of the :prop_tgt:`INSTALL_RPATH` target property.
+
+This varibale is used to initialize the target property
+:prop_tgt:`INSTALL_RPATH_USE_LINK_PATH` for all targets.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst b/share/cmake-3.17/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst
index 9693bf6..9693bf6 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst b/share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst
index b0cbb62..b0cbb62 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst b/share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
index b291102..b291102 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst b/share/cmake-3.17/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst
index c5cb9b6..c5cb9b6 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_JOB_POOLS.rst b/share/cmake-3.17/Help/variable/CMAKE_JOB_POOLS.rst
index 72b50b4..72b50b4 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_JOB_POOLS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_JOB_POOLS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_JOB_POOL_COMPILE.rst b/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_COMPILE.rst
index e5c2d9a..e5c2d9a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_JOB_POOL_COMPILE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_COMPILE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_JOB_POOL_LINK.rst b/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_LINK.rst
index eeee6e0..eeee6e0 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_JOB_POOL_LINK.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_LINK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER.rst b/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER.rst
new file mode 100644
index 0000000..f9467b3
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER.rst
@@ -0,0 +1,6 @@
+CMAKE_JOB_POOL_PRECOMPILE_HEADER
+--------------------------------
+
+This variable is used to initialize the :prop_tgt:`JOB_POOL_PRECOMPILE_HEADER`
+property on all the targets. See :prop_tgt:`JOB_POOL_PRECOMPILE_HEADER`
+for additional information.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst
index d336364..d336364 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst
index db04af3..db04af3 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst
index 159eb22..159eb22 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst
index ab4ad71..ab4ad71 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst
index fc295af..fc295af 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst
index 1bb5d65..1bb5d65 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_CLANG_TIDY.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_CLANG_TIDY.rst
index bd49de3..bd49de3 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_CLANG_TIDY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_CLANG_TIDY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER.rst
index 89df495..89df495 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_ABI.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ABI.rst
index be946c0..be946c0 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_ABI.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ABI.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_AR.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_AR.rst
index b83a1d4..b83a1d4 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_AR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_AR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
index 054c648..054c648 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst
index cbe3544..cbe3544 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_ID.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ID.rst
index 8eb4fb6..8eb4fb6 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_ID.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ID.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst
new file mode 100644
index 0000000..c76e2d0
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst
@@ -0,0 +1,10 @@
+CMAKE_<LANG>_COMPILER_LAUNCHER
+------------------------------
+
+Default value for :prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property.
+This variable is used to initialize the property on each target as it is
+created. This is done only when ``<LANG>`` is ``C``, ``CXX``, ``Fortran``,
+``OBJC``, ``OBJCXX``, or ``CUDA``.
+
+This variable is initialized to the :envvar:`CMAKE_<LANG>_COMPILER_LAUNCHER`
+environment variable if it is set.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst
index 9308878..9308878 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst
index e050f43..e050f43 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst
index 945160b..945160b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst
index 656c57d..656c57d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst
index 27b0cad..27b0cad 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst
index c3cd980..c3cd980 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst
index ba59cad..ba59cad 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_CPPCHECK.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_CPPCHECK.rst
index 50b478f..50b478f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_CPPCHECK.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_CPPCHECK.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_CPPLINT.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_CPPLINT.rst
index 3b6f452..3b6f452 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_CPPLINT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_CPPLINT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst
index 16fcc03..16fcc03 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst
index 807229d..807229d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst
index 0cff200..0cff200 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS.rst
index 14b2694..14b2694 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst
index 1dbd036..1dbd036 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst
index 1eb5b3f..1eb5b3f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst
index 6be424a..6be424a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst
index de7fcfc..de7fcfc 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_INIT.rst
index a88d122..a88d122 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_INIT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst
index 634fab9..634fab9 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst
index 1e7003c..1e7003c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst
index 3baeab0..3baeab0 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst
index e7c73fe..e7c73fe 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst
index 67a5073..67a5073 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst
index 3ab3975..3ab3975 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst
index 3d07e91..3d07e91 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst
index e361fd9..e361fd9 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst
index e9e04be..e9e04be 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst
index 61ccc5a..61ccc5a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst
index ec16477..ec16477 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst
index 2c8028a..2c8028a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst
index 7f888ee..7f888ee 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst
index ff82f8b..ff82f8b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst
index dbbeb0a..dbbeb0a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst
index df51407..df51407 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst
index faf1481..faf1481 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst
index abd5891..abd5891 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst
index d54f080..d54f080 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst
index d7bb0d8..d7bb0d8 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst
index a378657..a378657 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst
index 0fbc566..0fbc566 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_PLATFORM_ID.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_PLATFORM_ID.rst
index 1b243e3..1b243e3 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_PLATFORM_ID.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_PLATFORM_ID.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_SIMULATE_ID.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_ID.rst
index 15c87a1..15c87a1 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_SIMULATE_ID.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_ID.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst
index d6325e0..d6325e0 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst
index 7465923..7465923 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst
index e085fee..e085fee 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst
index c8e3d57..c8e3d57 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst
index ba6df93..ba6df93 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst
index 1961ea0..1961ea0 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst b/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst
index 8a7dcbd..8a7dcbd 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst b/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst
index 1eb2ac2..1eb2ac2 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst b/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst
index e97296d..e97296d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
index e069cdd..e069cdd 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LIBRARY_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH.rst
index 8135b65..8135b65 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LIBRARY_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst b/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst
index ebe5fda..ebe5fda 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst b/share/cmake-3.17/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst
index fa09f9f..fa09f9f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst b/share/cmake-3.17/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst
index cec7906..cec7906 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst b/share/cmake-3.17/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst
index 026ca35..026ca35 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst b/share/cmake-3.17/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst
index 33865da..33865da 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst b/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst
index 6858e2c..6858e2c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst b/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst
index b5197e4..b5197e4 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst
index 0ddafe8..0ddafe8 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst b/share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst
index 54cdaaa..54cdaaa 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst b/share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst
index 0d52a31..0d52a31 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst b/share/cmake-3.17/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst
index 90c4d3f..90c4d3f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MACOSX_BUNDLE.rst b/share/cmake-3.17/Help/variable/CMAKE_MACOSX_BUNDLE.rst
index 43ddff5..43ddff5 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MACOSX_BUNDLE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MACOSX_BUNDLE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MACOSX_RPATH.rst b/share/cmake-3.17/Help/variable/CMAKE_MACOSX_RPATH.rst
index 2fc648d..2fc648d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MACOSX_RPATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MACOSX_RPATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MAJOR_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_MAJOR_VERSION.rst
index 079ad70..079ad70 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MAJOR_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MAJOR_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MAKE_PROGRAM.rst b/share/cmake-3.17/Help/variable/CMAKE_MAKE_PROGRAM.rst
index a3c8b7c..a3c8b7c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MAKE_PROGRAM.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MAKE_PROGRAM.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst b/share/cmake-3.17/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst
index ed29afe..ed29afe 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MATCH_COUNT.rst b/share/cmake-3.17/Help/variable/CMAKE_MATCH_COUNT.rst
index 355e834..355e834 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MATCH_COUNT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MATCH_COUNT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MATCH_n.rst b/share/cmake-3.17/Help/variable/CMAKE_MATCH_n.rst
index c7dd623..c7dd623 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MATCH_n.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MATCH_n.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst b/share/cmake-3.17/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst
index 7110b16..7110b16 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT.rst b/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT.rst
new file mode 100644
index 0000000..6b4ca40
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT.rst
@@ -0,0 +1,62 @@
+CMAKE_MESSAGE_CONTEXT
+---------------------
+
+When enabled by the :manual:`cmake <cmake(1)>` ``--log-context`` command line
+option or the :variable:`CMAKE_MESSAGE_CONTEXT_SHOW` variable, the
+:command:`message` command converts the ``CMAKE_MESSAGE_CONTEXT`` list into a
+dot-separated string surrounded by square brackets and prepends it to each line
+for messages of log levels ``NOTICE`` and below.
+
+For logging contexts to work effectively, projects should generally
+``APPEND`` and ``POP_BACK`` an item to the current value of
+``CMAKE_MESSAGE_CONTEXT`` rather than replace it.
+Projects should not assume the message context at the top of the source tree
+is empty, as there are scenarios where the context might have already been set
+(e.g. hierarchical projects).
+
+.. warning::
+
+ Valid context names are restricted to anything that could be used
+ as a CMake variable name. All names that begin with an underscore
+ or the string ``cmake_`` are also reserved for use by CMake and
+ should not be used by projects.
+
+Example:
+
+.. code-block:: cmake
+
+ function(bar)
+ list(APPEND CMAKE_MESSAGE_CONTEXT "bar")
+ message(VERBOSE "bar VERBOSE message")
+ endfunction()
+
+ function(baz)
+ list(APPEND CMAKE_MESSAGE_CONTEXT "baz")
+ message(DEBUG "baz DEBUG message")
+ endfunction()
+
+ function(foo)
+ list(APPEND CMAKE_MESSAGE_CONTEXT "foo")
+ bar()
+ message(TRACE "foo TRACE message")
+ baz()
+ endfunction()
+
+ list(APPEND CMAKE_MESSAGE_CONTEXT "top")
+
+ message(VERBOSE "Before `foo`")
+ foo()
+ message(VERBOSE "After `foo`")
+
+ list(POP_BACK CMAKE_MESSAGE_CONTEXT)
+
+
+Which results in the following output:
+
+.. code-block:: none
+
+ -- [top] Before `foo`
+ -- [top.foo.bar] bar VERBOSE message
+ -- [top.foo] foo TRACE message
+ -- [top.foo.baz] baz DEBUG message
+ -- [top] After `foo`
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst b/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst
new file mode 100644
index 0000000..7ec218e
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst
@@ -0,0 +1,15 @@
+CMAKE_MESSAGE_CONTEXT_SHOW
+--------------------------
+
+Setting this variable to true enables showing a context with each line
+logged by the :command:`message` command (see :variable:`CMAKE_MESSAGE_CONTEXT`
+for how the context itself is specified).
+
+This variable is an alternative to providing the ``--log-context`` option
+on the :manual:`cmake <cmake(1)>` command line. Whereas the command line
+option will apply only to that one CMake run, setting
+``CMAKE_MESSAGE_CONTEXT_SHOW`` to true as a cache variable will ensure that
+subsequent CMake runs will continue to show the message context.
+
+Projects should not set ``CMAKE_MESSAGE_CONTEXT_SHOW``. It is intended for
+users so that they may control whether or not to include context with messages.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MESSAGE_INDENT.rst b/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_INDENT.rst
index 7e44a4c..7e44a4c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MESSAGE_INDENT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_INDENT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst b/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst
new file mode 100644
index 0000000..1d4cfe6
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst
@@ -0,0 +1,15 @@
+CMAKE_MESSAGE_LOG_LEVEL
+-----------------------
+
+When set, this variable specifies the logging level used by the
+:command:`message` command. Valid values are the same as those for the
+``--log-level`` command line option of the :manual:`cmake(1)` program.
+If this variable is set and the ``--log-level`` command line option is
+given, the command line option takes precedence.
+
+The main advantage to using this variable is to make a log level persist
+between CMake runs. Setting it as a cache variable will ensure that
+subsequent CMake runs will continue to use the chosen log level.
+
+Projects should not set this variable, it is intended for users so that
+they may control the log level according to their own needs.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MFC_FLAG.rst b/share/cmake-3.17/Help/variable/CMAKE_MFC_FLAG.rst
index 2c4d1c5..2c4d1c5 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MFC_FLAG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MFC_FLAG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst
index f466468..f466468 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MINOR_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_MINOR_VERSION.rst
index f67cfb9..f67cfb9 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MINOR_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MINOR_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst b/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst
index 6372bbd..6372bbd 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst b/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst
index 393263e..393263e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst
index 3279014..3279014 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst
index 91b39f6..91b39f6 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MODULE_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_MODULE_PATH.rst
index 4dcf6b5..4dcf6b5 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MODULE_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MODULE_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst
index 22e727f..22e727f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst b/share/cmake-3.17/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst
index 8b54e7e..8b54e7e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_NETRC.rst b/share/cmake-3.17/Help/variable/CMAKE_NETRC.rst
index 903ec31..903ec31 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_NETRC.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_NETRC.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_NETRC_FILE.rst b/share/cmake-3.17/Help/variable/CMAKE_NETRC_FILE.rst
index 0f09afe..0f09afe 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_NETRC_FILE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_NETRC_FILE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst
index 64091aa..64091aa 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst b/share/cmake-3.17/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst
index 98960c5..98960c5 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst b/share/cmake-3.17/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst
index 189f59f..189f59f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst b/share/cmake-3.17/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst
index 61e04b4..61e04b4 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst b/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst
index 8afa6f2..8afa6f2 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_OBJCXX_STANDARD.rst b/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD.rst
index 4e5016a..4e5016a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_OBJCXX_STANDARD.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst b/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst
index 3a0602a..3a0602a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_OBJC_EXTENSIONS.rst b/share/cmake-3.17/Help/variable/CMAKE_OBJC_EXTENSIONS.rst
index d9619d8..d9619d8 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_OBJC_EXTENSIONS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_OBJC_EXTENSIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_OBJC_STANDARD.rst b/share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD.rst
index 976c441..976c441 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_OBJC_STANDARD.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst b/share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst
index 5c02096..5c02096 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_OBJECT_PATH_MAX.rst b/share/cmake-3.17/Help/variable/CMAKE_OBJECT_PATH_MAX.rst
index 9e30cbb..9e30cbb 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_OBJECT_PATH_MAX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_OBJECT_PATH_MAX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_OSX_ARCHITECTURES.rst b/share/cmake-3.17/Help/variable/CMAKE_OSX_ARCHITECTURES.rst
index fdaca28..fdaca28 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_OSX_ARCHITECTURES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_OSX_ARCHITECTURES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst b/share/cmake-3.17/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst
index 9df5edd..9df5edd 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_OSX_SYSROOT.rst b/share/cmake-3.17/Help/variable/CMAKE_OSX_SYSROOT.rst
index db9fccd..db9fccd 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_OSX_SYSROOT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_OSX_SYSROOT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_OSX_VARIABLE.txt b/share/cmake-3.17/Help/variable/CMAKE_OSX_VARIABLE.txt
index 16f3c1a..16f3c1a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_OSX_VARIABLE.txt
+++ b/share/cmake-3.17/Help/variable/CMAKE_OSX_VARIABLE.txt
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PARENT_LIST_FILE.rst b/share/cmake-3.17/Help/variable/CMAKE_PARENT_LIST_FILE.rst
index cfd8608..cfd8608 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PARENT_LIST_FILE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PARENT_LIST_FILE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PATCH_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_PATCH_VERSION.rst
index 991ae76..991ae76 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PATCH_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PATCH_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst b/share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst
index 763bcb3..763bcb3 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
index 4d18eec..4d18eec 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst b/share/cmake-3.17/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst
index 43582be..43582be 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst b/share/cmake-3.17/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst
new file mode 100644
index 0000000..de71d0e
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst
@@ -0,0 +1,33 @@
+CMAKE_POLICY_WARNING_CMP<NNNN>
+------------------------------
+
+Explicitly enable or disable the warning when CMake Policy ``CMP<NNNN>``
+is not set. This is meaningful only for the few policies that do not
+warn by default:
+
+* ``CMAKE_POLICY_WARNING_CMP0025`` controls the warning for
+ policy :policy:`CMP0025`.
+* ``CMAKE_POLICY_WARNING_CMP0047`` controls the warning for
+ policy :policy:`CMP0047`.
+* ``CMAKE_POLICY_WARNING_CMP0056`` controls the warning for
+ policy :policy:`CMP0056`.
+* ``CMAKE_POLICY_WARNING_CMP0060`` controls the warning for
+ policy :policy:`CMP0060`.
+* ``CMAKE_POLICY_WARNING_CMP0065`` controls the warning for
+ policy :policy:`CMP0065`.
+* ``CMAKE_POLICY_WARNING_CMP0066`` controls the warning for
+ policy :policy:`CMP0066`.
+* ``CMAKE_POLICY_WARNING_CMP0067`` controls the warning for
+ policy :policy:`CMP0067`.
+* ``CMAKE_POLICY_WARNING_CMP0082`` controls the warning for
+ policy :policy:`CMP0082`.
+* ``CMAKE_POLICY_WARNING_CMP0089`` controls the warning for
+ policy :policy:`CMP0089`.
+* ``CMAKE_POLICY_WARNING_CMP0102`` controls the warning for
+ policy :policy:`CMP0102`.
+
+This variable should not be set by a project in CMake code. Project
+developers running CMake may set this variable in their cache to
+enable the warning (e.g. ``-DCMAKE_POLICY_WARNING_CMP<NNNN>=ON``).
+Alternatively, running :manual:`cmake(1)` with the ``--debug-output``,
+``--trace``, or ``--trace-expand`` option will also enable the warning.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst b/share/cmake-3.17/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst
index 43b1397..43b1397 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PREFIX_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_PREFIX_PATH.rst
index 1d4fd0b..1d4fd0b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PREFIX_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PREFIX_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PROGRAM_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_PROGRAM_PATH.rst
index 2d0c090..2d0c090 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PROGRAM_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PROGRAM_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst
index 51b0592..51b0592 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst
index ee0bf7c..ee0bf7c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE.rst b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE.rst
new file mode 100644
index 0000000..5835264
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE.rst
@@ -0,0 +1,10 @@
+CMAKE_PROJECT_INCLUDE
+---------------------
+
+A CMake language file or module to be included as the last step of all
+:command:`project` command calls. This is intended for injecting custom code
+into project builds without modifying their source.
+
+See also the :variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE`,
+:variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE_BEFORE` and
+:variable:`CMAKE_PROJECT_INCLUDE_BEFORE` variables.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst
new file mode 100644
index 0000000..280c14a
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst
@@ -0,0 +1,10 @@
+CMAKE_PROJECT_INCLUDE_BEFORE
+----------------------------
+
+A CMake language file or module to be included as the first step of all
+:command:`project` command calls. This is intended for injecting custom code
+into project builds without modifying their source.
+
+See also the :variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE`,
+:variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE_BEFORE` and
+:variable:`CMAKE_PROJECT_INCLUDE` variables.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_NAME.rst b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_NAME.rst
index 94b8dba..94b8dba 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_NAME.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst
new file mode 100644
index 0000000..74247f1
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst
@@ -0,0 +1,11 @@
+CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE
+------------------------------------
+
+A CMake language file or module to be included as the last step of any
+:command:`project` command calls that specify ``<PROJECT-NAME>`` as the project
+name. This is intended for injecting custom code into project builds without
+modifying their source.
+
+See also the :variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE_BEFORE`,
+:variable:`CMAKE_PROJECT_INCLUDE` and
+:variable:`CMAKE_PROJECT_INCLUDE_BEFORE` variables.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst
new file mode 100644
index 0000000..db1432d
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst
@@ -0,0 +1,11 @@
+CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE_BEFORE
+-------------------------------------------
+
+A CMake language file or module to be included as the first step of any
+:command:`project` command calls that specify ``<PROJECT-NAME>`` as the project
+name. This is intended for injecting custom code into project builds without
+modifying their source.
+
+See also the :variable:`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE`,
+:variable:`CMAKE_PROJECT_INCLUDE` and
+:variable:`CMAKE_PROJECT_INCLUDE_BEFORE` variables.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION.rst
index 4f8f556..4f8f556 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst
index f1001ac..f1001ac 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst
index 13202be..13202be 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst
index b8570d9..b8570d9 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst
index e1ad4be..e1ad4be 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_RANLIB.rst b/share/cmake-3.17/Help/variable/CMAKE_RANLIB.rst
index 82672e9..82672e9 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_RANLIB.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_RANLIB.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_ROOT.rst b/share/cmake-3.17/Help/variable/CMAKE_ROOT.rst
index 1d0a8af..1d0a8af 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_ROOT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_ROOT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_RULE_MESSAGES.rst b/share/cmake-3.17/Help/variable/CMAKE_RULE_MESSAGES.rst
index 7460a81..7460a81 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_RULE_MESSAGES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_RULE_MESSAGES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst b/share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst
index 6253d4a..6253d4a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
index 080dea6..080dea6 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst b/share/cmake-3.17/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst
index 981af60..981af60 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst
index 8afabaf..8afabaf 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst
index 1f96a32..1f96a32 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst b/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst
index fce950c..fce950c 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst b/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst
index 4bf87a0..4bf87a0 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst
index 185df38..185df38 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst
index cb819a7..cb819a7 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst
index d6eef98..d6eef98 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst
index 81515c3..81515c3 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SIZEOF_VOID_P.rst b/share/cmake-3.17/Help/variable/CMAKE_SIZEOF_VOID_P.rst
index f5464d1..f5464d1 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SIZEOF_VOID_P.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SIZEOF_VOID_P.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst b/share/cmake-3.17/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst
index 8da6100..8da6100 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst b/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst
index 80a68c9..80a68c9 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst b/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst
index cc0ac21..cc0ac21 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst b/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
index b77bb68..b77bb68 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SKIP_RPATH.rst b/share/cmake-3.17/Help/variable/CMAKE_SKIP_RPATH.rst
index d7ce8e4..d7ce8e4 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SKIP_RPATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SKIP_RPATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SOURCE_DIR.rst b/share/cmake-3.17/Help/variable/CMAKE_SOURCE_DIR.rst
index d1f1798..d1f1798 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SOURCE_DIR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SOURCE_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_STAGING_PREFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_STAGING_PREFIX.rst
index bdb97fa..bdb97fa 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_STAGING_PREFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_STAGING_PREFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst
index 714b5cc..714b5cc 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst b/share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst
index 28dc09d..28dc09d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst b/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst
index 1a810ce..1a810ce 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst b/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst
index e561dc6..e561dc6 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst
index a49d1cb..a49d1cb 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst
index 113ca71..113ca71 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst b/share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst
index 02c8663..02c8663 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst b/share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst
index d654425..d654425 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst b/share/cmake-3.17/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst
index 96184dd..96184dd 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSROOT.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSROOT.rst
index 35b944f..35b944f 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSROOT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSROOT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSROOT_COMPILE.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSROOT_COMPILE.rst
index e96c62b..e96c62b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSROOT_COMPILE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSROOT_COMPILE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSROOT_LINK.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSROOT_LINK.rst
index 88b48ef..88b48ef 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSROOT_LINK.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSROOT_LINK.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM.rst
index c7d0d8a..c7d0d8a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst
index 666af46..666af46 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst
index 14ba18e..14ba18e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst
index 6afbd33..6afbd33 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst
index 680404e..680404e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst
index 116832b..116832b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_NAME.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_NAME.rst
index fef53ee..fef53ee 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_NAME.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_NAME.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
index 87a9d06..87a9d06 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst
index 8ad89f1..8ad89f1 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst
index 9b70361..9b70361 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_VERSION.rst
index aba8ca3..aba8ca3 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_SYSTEM_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst
index b4a74eb..b4a74eb 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst b/share/cmake-3.17/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst
index b11253b..b11253b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_Swift_NUM_THREADS.rst b/share/cmake-3.17/Help/variable/CMAKE_Swift_NUM_THREADS.rst
index cb33678..cb33678 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_Swift_NUM_THREADS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_Swift_NUM_THREADS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_TOOLCHAIN_FILE.rst b/share/cmake-3.17/Help/variable/CMAKE_TOOLCHAIN_FILE.rst
index 168ee74..168ee74 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_TOOLCHAIN_FILE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_TOOLCHAIN_FILE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst b/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst
index d731f02..d731f02 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst b/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst
index 0f96787..0f96787 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst b/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst
index 5fa8dfc..5fa8dfc 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_TWEAK_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_TWEAK_VERSION.rst
index be2e050..be2e050 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_TWEAK_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_TWEAK_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_UNITY_BUILD.rst b/share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD.rst
index a86cd67..a86cd67 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_UNITY_BUILD.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst b/share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst
index 7988d4b..7988d4b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst b/share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst
index 622278e..622278e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst b/share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst
index e7139ac..e7139ac 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst b/share/cmake-3.17/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
index 06fe0fb..06fe0fb 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst b/share/cmake-3.17/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst
index 232a2fd..232a2fd 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_VERSION.rst
index 872e2fa..872e2fa 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst b/share/cmake-3.17/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst
index 150bacc..150bacc 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst
index f109a9e..f109a9e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_GLOBALS.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_GLOBALS.rst
index 83777b6..83777b6 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_GLOBALS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_GLOBALS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst
index f54472a..f54472a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst
index 693ba45..693ba45 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst
index ceedf28..ceedf28 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst
index 546cdf4..546cdf4 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst
index 58f2bef..58f2bef 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst
index 386c3a9..386c3a9 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_NAME.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME.rst
index 7a4642a..7a4642a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_NAME.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst
index c18e6fd..c18e6fd 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst
index ed2d3f3..ed2d3f3 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst
index 67b7f74..67b7f74 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst
index 060648a..060648a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst
index 99ac90d..99ac90d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst
index 4d9b978..4d9b978 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst
index 36c4dcc..36c4dcc 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst
index 3ec755b..3ec755b 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst
index da10bde..da10bde 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst
index b33754a..b33754a 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst
index b022215..b022215 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst
index c03f0ae..c03f0ae 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst
index 0c73f06..0c73f06 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst
index 83b9bc1..83b9bc1 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst b/share/cmake-3.17/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst
new file mode 100644
index 0000000..2eea424
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst
@@ -0,0 +1,18 @@
+CMAKE_VS_WINRT_BY_DEFAULT
+-------------------------
+
+Inform :ref:`Visual Studio Generators` for VS 2010 and above that the
+target platform enables WinRT compilation by default and it needs to
+be explicitly disabled if ``/ZW`` or :prop_tgt:`VS_WINRT_COMPONENT` is
+omitted (as opposed to enabling it when either of those options is
+present)
+
+This makes cmake configuration consistent in terms of WinRT among
+platforms - if you did not enable the WinRT compilation explicitly, it
+will be disabled (by either not enabling it or explicitly disabling it)
+
+Note: WinRT compilation is always explicitly disabled for C language
+source files, even if it is expliclty enabled for a project
+
+This variable is meant to be set by a
+:variable:`toolchain file <CMAKE_TOOLCHAIN_FILE>` for such platforms.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_WARN_DEPRECATED.rst b/share/cmake-3.17/Help/variable/CMAKE_WARN_DEPRECATED.rst
index 4a224fa..4a224fa 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_WARN_DEPRECATED.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_WARN_DEPRECATED.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst b/share/cmake-3.17/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
index 81c1158..81c1158 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_WIN32_EXECUTABLE.rst b/share/cmake-3.17/Help/variable/CMAKE_WIN32_EXECUTABLE.rst
index b96abba..b96abba 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_WIN32_EXECUTABLE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_WIN32_EXECUTABLE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst b/share/cmake-3.17/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst
index 1636842..1636842 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst
index be683d6..be683d6 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst
index 5b1a003..5b1a003 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst
index ea3e240..ea3e240 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst
index 210da52..210da52 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst
index b972ba5..b972ba5 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
index 59eb32d..59eb32d 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
index a264d36..a264d36 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
index 71bcf42..71bcf42 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
index 53f55e6..53f55e6 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
index 784ceb6..784ceb6 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT.rst
new file mode 100644
index 0000000..4832659
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT.rst
@@ -0,0 +1,15 @@
+CMAKE_XCODE_SCHEME_ENVIRONMENT
+------------------------------
+
+Specify environment variables that should be added to the Arguments
+section of the generated Xcode scheme.
+
+If set to a list of environment variables and values of the form
+``MYVAR=value`` those environment variables will be added to the
+scheme.
+
+This variable initializes the :prop_tgt:`XCODE_SCHEME_ENVIRONMENT`
+property on all targets.
+
+Please refer to the :prop_tgt:`XCODE_GENERATE_SCHEME` target property
+documentation to see all Xcode schema related properties.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst
index 9350244..9350244 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
index 45a2dad..45a2dad 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
index 94d1c61..94d1c61 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst
index 9bf0eb4..9bf0eb4 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst
index 4cc21ee..4cc21ee 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst
index 6d1b56e..6d1b56e 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
index de40478..de40478 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
index ec5df66..ec5df66 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
index dcec9b0..dcec9b0 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst
new file mode 100644
index 0000000..cc690f7
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst
@@ -0,0 +1,12 @@
+CMAKE_XCODE_SCHEME_WORKING_DIRECTORY
+------------------------------------
+
+Specify the ``Working Directory`` a of the `Run` and `Profile`
+action in the generated Xcode scheme.
+
+This variable initializes the
+:prop_tgt:`XCODE_SCHEME_WORKING_DIRECTORY`
+property on all targets.
+
+Please refer to the :prop_tgt:`XCODE_GENERATE_SCHEME` target property
+documentation to see all Xcode schema related properties.
diff --git a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst
index 82e9d76..82e9d76 100644
--- a/share/cmake-3.16/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst
+++ b/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst
diff --git a/share/cmake-3.16/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst b/share/cmake-3.17/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst
index 928fe45..928fe45 100644
--- a/share/cmake-3.16/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst
+++ b/share/cmake-3.17/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst
diff --git a/share/cmake-3.16/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst b/share/cmake-3.17/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst
index 6cf75e4..6cf75e4 100644
--- a/share/cmake-3.16/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst b/share/cmake-3.17/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
index 30ae236..30ae236 100644
--- a/share/cmake-3.16/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
+++ b/share/cmake-3.17/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
diff --git a/share/cmake-3.16/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst b/share/cmake-3.17/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst
index b8e9105..b8e9105 100644
--- a/share/cmake-3.16/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst b/share/cmake-3.17/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
index 83d5ce7..83d5ce7 100644
--- a/share/cmake-3.16/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
+++ b/share/cmake-3.17/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst b/share/cmake-3.17/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst
index f423e2e..f423e2e 100644
--- a/share/cmake-3.16/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst
+++ b/share/cmake-3.17/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst
diff --git a/share/cmake-3.16/Help/variable/CPACK_SET_DESTDIR.rst b/share/cmake-3.17/Help/variable/CPACK_SET_DESTDIR.rst
index 27fd355..27fd355 100644
--- a/share/cmake-3.16/Help/variable/CPACK_SET_DESTDIR.rst
+++ b/share/cmake-3.17/Help/variable/CPACK_SET_DESTDIR.rst
diff --git a/share/cmake-3.16/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst b/share/cmake-3.17/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
index 3fc5cca..3fc5cca 100644
--- a/share/cmake-3.16/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
+++ b/share/cmake-3.17/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_BINARY_DIRECTORY.rst b/share/cmake-3.17/Help/variable/CTEST_BINARY_DIRECTORY.rst
index fd8461f..fd8461f 100644
--- a/share/cmake-3.16/Help/variable/CTEST_BINARY_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_BINARY_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_BUILD_COMMAND.rst b/share/cmake-3.17/Help/variable/CTEST_BUILD_COMMAND.rst
index 7b13ba0..7b13ba0 100644
--- a/share/cmake-3.16/Help/variable/CTEST_BUILD_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_BUILD_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_BUILD_NAME.rst b/share/cmake-3.17/Help/variable/CTEST_BUILD_NAME.rst
index d25d84c..d25d84c 100644
--- a/share/cmake-3.16/Help/variable/CTEST_BUILD_NAME.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_BUILD_NAME.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_BZR_COMMAND.rst b/share/cmake-3.17/Help/variable/CTEST_BZR_COMMAND.rst
index 474d621..474d621 100644
--- a/share/cmake-3.16/Help/variable/CTEST_BZR_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_BZR_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst b/share/cmake-3.17/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst
index d0f9579..d0f9579 100644
--- a/share/cmake-3.16/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CHANGE_ID.rst b/share/cmake-3.17/Help/variable/CTEST_CHANGE_ID.rst
index a423f49..a423f49 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CHANGE_ID.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CHANGE_ID.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CHECKOUT_COMMAND.rst b/share/cmake-3.17/Help/variable/CTEST_CHECKOUT_COMMAND.rst
index da256f2..da256f2 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CHECKOUT_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CHECKOUT_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CONFIGURATION_TYPE.rst b/share/cmake-3.17/Help/variable/CTEST_CONFIGURATION_TYPE.rst
new file mode 100644
index 0000000..9e277fa
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CTEST_CONFIGURATION_TYPE.rst
@@ -0,0 +1,8 @@
+CTEST_CONFIGURATION_TYPE
+------------------------
+
+Specify the CTest ``DefaultCTestConfigurationType`` setting
+in a :manual:`ctest(1)` dashboard client script.
+
+If the configuration type is set via ``-C <cfg>`` from the command line
+then this variable is populated accordingly.
diff --git a/share/cmake-3.16/Help/variable/CTEST_CONFIGURE_COMMAND.rst b/share/cmake-3.17/Help/variable/CTEST_CONFIGURE_COMMAND.rst
index 5561b6d..5561b6d 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CONFIGURE_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CONFIGURE_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_COVERAGE_COMMAND.rst b/share/cmake-3.17/Help/variable/CTEST_COVERAGE_COMMAND.rst
index a78792e..a78792e 100644
--- a/share/cmake-3.16/Help/variable/CTEST_COVERAGE_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_COVERAGE_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst b/share/cmake-3.17/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst
index 2981955..2981955 100644
--- a/share/cmake-3.16/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CURL_OPTIONS.rst b/share/cmake-3.17/Help/variable/CTEST_CURL_OPTIONS.rst
index fc5dfc4..fc5dfc4 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CURL_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CURL_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst
index d5893c9..d5893c9 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst
index cd65ae3..cd65ae3 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst
index 558f5e5..558f5e5 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst
index 614859b..614859b 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst
index 74dc47a..74dc47a 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst
index 5aeae88..5aeae88 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst
index 920cb04..920cb04 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst
index a1f1cc1..a1f1cc1 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst
index 1fbb8c5..1fbb8c5 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst
index 578576c..578576c 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst
index 40291fe..40291fe 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_POST_TEST.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_TEST.rst
index 791292c..791292c 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_POST_TEST.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_TEST.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst
index 00de8aa..00de8aa 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_PRE_TEST.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_TEST.rst
index 6af7152..6af7152 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_PRE_TEST.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_TEST.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst
index 57222ca..57222ca 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst
index a03d473..a03d473 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst
index 18aa6b3..18aa6b3 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_XXX.txt b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_XXX.txt
index 02d1547..02d1547 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CUSTOM_XXX.txt
+++ b/share/cmake-3.17/Help/variable/CTEST_CUSTOM_XXX.txt
diff --git a/share/cmake-3.16/Help/variable/CTEST_CVS_CHECKOUT.rst b/share/cmake-3.17/Help/variable/CTEST_CVS_CHECKOUT.rst
index 6431c02..6431c02 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CVS_CHECKOUT.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CVS_CHECKOUT.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CVS_COMMAND.rst b/share/cmake-3.17/Help/variable/CTEST_CVS_COMMAND.rst
index 049700b..049700b 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CVS_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CVS_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst b/share/cmake-3.17/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst
index d7f2f7c..d7f2f7c 100644
--- a/share/cmake-3.16/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_DROP_LOCATION.rst b/share/cmake-3.17/Help/variable/CTEST_DROP_LOCATION.rst
index c0f2215..c0f2215 100644
--- a/share/cmake-3.16/Help/variable/CTEST_DROP_LOCATION.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_DROP_LOCATION.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_DROP_METHOD.rst b/share/cmake-3.17/Help/variable/CTEST_DROP_METHOD.rst
index 50fbd4d..50fbd4d 100644
--- a/share/cmake-3.16/Help/variable/CTEST_DROP_METHOD.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_DROP_METHOD.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_DROP_SITE.rst b/share/cmake-3.17/Help/variable/CTEST_DROP_SITE.rst
index d15d99b..d15d99b 100644
--- a/share/cmake-3.16/Help/variable/CTEST_DROP_SITE.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_DROP_SITE.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_DROP_SITE_CDASH.rst b/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_CDASH.rst
index 22b9776..22b9776 100644
--- a/share/cmake-3.16/Help/variable/CTEST_DROP_SITE_CDASH.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_CDASH.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_DROP_SITE_PASSWORD.rst b/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_PASSWORD.rst
index 904d2c8..904d2c8 100644
--- a/share/cmake-3.16/Help/variable/CTEST_DROP_SITE_PASSWORD.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_PASSWORD.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_DROP_SITE_USER.rst b/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_USER.rst
index a860a03..a860a03 100644
--- a/share/cmake-3.16/Help/variable/CTEST_DROP_SITE_USER.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_USER.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst b/share/cmake-3.17/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst
index 286f7df..286f7df 100644
--- a/share/cmake-3.16/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_GIT_COMMAND.rst b/share/cmake-3.17/Help/variable/CTEST_GIT_COMMAND.rst
index eb83792..eb83792 100644
--- a/share/cmake-3.16/Help/variable/CTEST_GIT_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_GIT_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst b/share/cmake-3.17/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst
index fd27003..fd27003 100644
--- a/share/cmake-3.16/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst b/share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst
index 0c479e6..0c479e6 100644
--- a/share/cmake-3.16/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst b/share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst
index 4590a78..4590a78 100644
--- a/share/cmake-3.16/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_HG_COMMAND.rst b/share/cmake-3.17/Help/variable/CTEST_HG_COMMAND.rst
index 3854950..3854950 100644
--- a/share/cmake-3.16/Help/variable/CTEST_HG_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_HG_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst b/share/cmake-3.17/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst
index 9049c1f..9049c1f 100644
--- a/share/cmake-3.16/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst b/share/cmake-3.17/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst
index 959596b..959596b 100644
--- a/share/cmake-3.16/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst b/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst
index 8c199ba..8c199ba 100644
--- a/share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst b/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst
index 3e26ab5..3e26ab5 100644
--- a/share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst b/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst
index 2de5fb6..2de5fb6 100644
--- a/share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst b/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst
index 1147ee8..1147ee8 100644
--- a/share/cmake-3.16/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_TYPE.rst b/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_TYPE.rst
new file mode 100644
index 0000000..4e7d5c0
--- /dev/null
+++ b/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_TYPE.rst
@@ -0,0 +1,8 @@
+CTEST_MEMORYCHECK_TYPE
+----------------------
+
+Specify the CTest ``MemoryCheckType`` setting
+in a :manual:`ctest(1)` dashboard client script.
+Valid values are ``Valgrind``, ``Purify``, ``BoundsChecker``, ``DrMemory`` and
+``ThreadSanitizer``, ``AddressSanitizer``, ``LeakSanitizer``, ``MemorySanitizer``, and
+``UndefinedBehaviorSanitizer``.
diff --git a/share/cmake-3.16/Help/variable/CTEST_NIGHTLY_START_TIME.rst b/share/cmake-3.17/Help/variable/CTEST_NIGHTLY_START_TIME.rst
index bc80276..bc80276 100644
--- a/share/cmake-3.16/Help/variable/CTEST_NIGHTLY_START_TIME.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_NIGHTLY_START_TIME.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_P4_CLIENT.rst b/share/cmake-3.17/Help/variable/CTEST_P4_CLIENT.rst
index 347ea54..347ea54 100644
--- a/share/cmake-3.16/Help/variable/CTEST_P4_CLIENT.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_P4_CLIENT.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_P4_COMMAND.rst b/share/cmake-3.17/Help/variable/CTEST_P4_COMMAND.rst
index defab12..defab12 100644
--- a/share/cmake-3.16/Help/variable/CTEST_P4_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_P4_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_P4_OPTIONS.rst b/share/cmake-3.17/Help/variable/CTEST_P4_OPTIONS.rst
index fee4ce2..fee4ce2 100644
--- a/share/cmake-3.16/Help/variable/CTEST_P4_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_P4_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst b/share/cmake-3.17/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst
index 0e2790f..0e2790f 100644
--- a/share/cmake-3.16/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst b/share/cmake-3.17/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst
index abc123c..abc123c 100644
--- a/share/cmake-3.16/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_SCP_COMMAND.rst b/share/cmake-3.17/Help/variable/CTEST_SCP_COMMAND.rst
index 19ea8b3..19ea8b3 100644
--- a/share/cmake-3.16/Help/variable/CTEST_SCP_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_SCP_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_SITE.rst b/share/cmake-3.17/Help/variable/CTEST_SITE.rst
index 8a5ec25..8a5ec25 100644
--- a/share/cmake-3.16/Help/variable/CTEST_SITE.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_SITE.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_SOURCE_DIRECTORY.rst b/share/cmake-3.17/Help/variable/CTEST_SOURCE_DIRECTORY.rst
index b6837d1..b6837d1 100644
--- a/share/cmake-3.16/Help/variable/CTEST_SOURCE_DIRECTORY.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_SOURCE_DIRECTORY.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_SUBMIT_URL.rst b/share/cmake-3.17/Help/variable/CTEST_SUBMIT_URL.rst
index 7d84da4..7d84da4 100644
--- a/share/cmake-3.16/Help/variable/CTEST_SUBMIT_URL.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_SUBMIT_URL.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_SVN_COMMAND.rst b/share/cmake-3.17/Help/variable/CTEST_SVN_COMMAND.rst
index af90143..af90143 100644
--- a/share/cmake-3.16/Help/variable/CTEST_SVN_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_SVN_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_SVN_OPTIONS.rst b/share/cmake-3.17/Help/variable/CTEST_SVN_OPTIONS.rst
index 76551dc..76551dc 100644
--- a/share/cmake-3.16/Help/variable/CTEST_SVN_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_SVN_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst b/share/cmake-3.17/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst
index 5f01a19..5f01a19 100644
--- a/share/cmake-3.16/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_TEST_LOAD.rst b/share/cmake-3.17/Help/variable/CTEST_TEST_LOAD.rst
index 80823fe..80823fe 100644
--- a/share/cmake-3.16/Help/variable/CTEST_TEST_LOAD.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_TEST_LOAD.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_TEST_TIMEOUT.rst b/share/cmake-3.17/Help/variable/CTEST_TEST_TIMEOUT.rst
index c031437..c031437 100644
--- a/share/cmake-3.16/Help/variable/CTEST_TEST_TIMEOUT.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_TEST_TIMEOUT.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_TRIGGER_SITE.rst b/share/cmake-3.17/Help/variable/CTEST_TRIGGER_SITE.rst
index a50e405..a50e405 100644
--- a/share/cmake-3.16/Help/variable/CTEST_TRIGGER_SITE.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_TRIGGER_SITE.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_UPDATE_COMMAND.rst b/share/cmake-3.17/Help/variable/CTEST_UPDATE_COMMAND.rst
index 90155d0..90155d0 100644
--- a/share/cmake-3.16/Help/variable/CTEST_UPDATE_COMMAND.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_UPDATE_COMMAND.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_UPDATE_OPTIONS.rst b/share/cmake-3.17/Help/variable/CTEST_UPDATE_OPTIONS.rst
index e43d61d..e43d61d 100644
--- a/share/cmake-3.16/Help/variable/CTEST_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst b/share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst
index a862baa..a862baa 100644
--- a/share/cmake-3.16/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst b/share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst
index 39fbaba..39fbaba 100644
--- a/share/cmake-3.16/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst
diff --git a/share/cmake-3.16/Help/variable/CTEST_USE_LAUNCHERS.rst b/share/cmake-3.17/Help/variable/CTEST_USE_LAUNCHERS.rst
index 9f48a2e..9f48a2e 100644
--- a/share/cmake-3.16/Help/variable/CTEST_USE_LAUNCHERS.rst
+++ b/share/cmake-3.17/Help/variable/CTEST_USE_LAUNCHERS.rst
diff --git a/share/cmake-3.16/Help/variable/CYGWIN.rst b/share/cmake-3.17/Help/variable/CYGWIN.rst
index 0039e07..0039e07 100644
--- a/share/cmake-3.16/Help/variable/CYGWIN.rst
+++ b/share/cmake-3.17/Help/variable/CYGWIN.rst
diff --git a/share/cmake-3.16/Help/variable/ENV.rst b/share/cmake-3.17/Help/variable/ENV.rst
index 2b43934..2b43934 100644
--- a/share/cmake-3.16/Help/variable/ENV.rst
+++ b/share/cmake-3.17/Help/variable/ENV.rst
diff --git a/share/cmake-3.16/Help/variable/EXECUTABLE_OUTPUT_PATH.rst b/share/cmake-3.17/Help/variable/EXECUTABLE_OUTPUT_PATH.rst
index 26d3e92..26d3e92 100644
--- a/share/cmake-3.16/Help/variable/EXECUTABLE_OUTPUT_PATH.rst
+++ b/share/cmake-3.17/Help/variable/EXECUTABLE_OUTPUT_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/GHS-MULTI.rst b/share/cmake-3.17/Help/variable/GHS-MULTI.rst
index fe3b17e..fe3b17e 100644
--- a/share/cmake-3.16/Help/variable/GHS-MULTI.rst
+++ b/share/cmake-3.17/Help/variable/GHS-MULTI.rst
diff --git a/share/cmake-3.16/Help/variable/IOS.rst b/share/cmake-3.17/Help/variable/IOS.rst
index e5cc3f6..e5cc3f6 100644
--- a/share/cmake-3.16/Help/variable/IOS.rst
+++ b/share/cmake-3.17/Help/variable/IOS.rst
diff --git a/share/cmake-3.16/Help/variable/LIBRARY_OUTPUT_PATH.rst b/share/cmake-3.17/Help/variable/LIBRARY_OUTPUT_PATH.rst
index bb4328f..bb4328f 100644
--- a/share/cmake-3.16/Help/variable/LIBRARY_OUTPUT_PATH.rst
+++ b/share/cmake-3.17/Help/variable/LIBRARY_OUTPUT_PATH.rst
diff --git a/share/cmake-3.16/Help/variable/MINGW.rst b/share/cmake-3.17/Help/variable/MINGW.rst
index 6d29be4..6d29be4 100644
--- a/share/cmake-3.16/Help/variable/MINGW.rst
+++ b/share/cmake-3.17/Help/variable/MINGW.rst
diff --git a/share/cmake-3.16/Help/variable/MSVC.rst b/share/cmake-3.17/Help/variable/MSVC.rst
index ca8775c..ca8775c 100644
--- a/share/cmake-3.16/Help/variable/MSVC.rst
+++ b/share/cmake-3.17/Help/variable/MSVC.rst
diff --git a/share/cmake-3.16/Help/variable/MSVC10.rst b/share/cmake-3.17/Help/variable/MSVC10.rst
index 55c6337..55c6337 100644
--- a/share/cmake-3.16/Help/variable/MSVC10.rst
+++ b/share/cmake-3.17/Help/variable/MSVC10.rst
diff --git a/share/cmake-3.16/Help/variable/MSVC11.rst b/share/cmake-3.17/Help/variable/MSVC11.rst
index 17943dc..17943dc 100644
--- a/share/cmake-3.16/Help/variable/MSVC11.rst
+++ b/share/cmake-3.17/Help/variable/MSVC11.rst
diff --git a/share/cmake-3.16/Help/variable/MSVC12.rst b/share/cmake-3.17/Help/variable/MSVC12.rst
index a524fab..a524fab 100644
--- a/share/cmake-3.16/Help/variable/MSVC12.rst
+++ b/share/cmake-3.17/Help/variable/MSVC12.rst
diff --git a/share/cmake-3.16/Help/variable/MSVC14.rst b/share/cmake-3.17/Help/variable/MSVC14.rst
index 79e0c10..79e0c10 100644
--- a/share/cmake-3.16/Help/variable/MSVC14.rst
+++ b/share/cmake-3.17/Help/variable/MSVC14.rst
diff --git a/share/cmake-3.16/Help/variable/MSVC60.rst b/share/cmake-3.17/Help/variable/MSVC60.rst
index 14164bf..14164bf 100644
--- a/share/cmake-3.16/Help/variable/MSVC60.rst
+++ b/share/cmake-3.17/Help/variable/MSVC60.rst
diff --git a/share/cmake-3.16/Help/variable/MSVC70.rst b/share/cmake-3.17/Help/variable/MSVC70.rst
index ed3b0bb..ed3b0bb 100644
--- a/share/cmake-3.16/Help/variable/MSVC70.rst
+++ b/share/cmake-3.17/Help/variable/MSVC70.rst
diff --git a/share/cmake-3.16/Help/variable/MSVC71.rst b/share/cmake-3.17/Help/variable/MSVC71.rst
index 0237592..0237592 100644
--- a/share/cmake-3.16/Help/variable/MSVC71.rst
+++ b/share/cmake-3.17/Help/variable/MSVC71.rst
diff --git a/share/cmake-3.16/Help/variable/MSVC80.rst b/share/cmake-3.17/Help/variable/MSVC80.rst
index 1533218..1533218 100644
--- a/share/cmake-3.16/Help/variable/MSVC80.rst
+++ b/share/cmake-3.17/Help/variable/MSVC80.rst
diff --git a/share/cmake-3.16/Help/variable/MSVC90.rst b/share/cmake-3.17/Help/variable/MSVC90.rst
index 4981ecf..4981ecf 100644
--- a/share/cmake-3.16/Help/variable/MSVC90.rst
+++ b/share/cmake-3.17/Help/variable/MSVC90.rst
diff --git a/share/cmake-3.16/Help/variable/MSVC_IDE.rst b/share/cmake-3.17/Help/variable/MSVC_IDE.rst
index 027d1bc..027d1bc 100644
--- a/share/cmake-3.16/Help/variable/MSVC_IDE.rst
+++ b/share/cmake-3.17/Help/variable/MSVC_IDE.rst
diff --git a/share/cmake-3.16/Help/variable/MSVC_TOOLSET_VERSION.rst b/share/cmake-3.17/Help/variable/MSVC_TOOLSET_VERSION.rst
index f4a33e2..f4a33e2 100644
--- a/share/cmake-3.16/Help/variable/MSVC_TOOLSET_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/MSVC_TOOLSET_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/MSVC_VERSION.rst b/share/cmake-3.17/Help/variable/MSVC_VERSION.rst
index 45df37f..45df37f 100644
--- a/share/cmake-3.16/Help/variable/MSVC_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/MSVC_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/MSYS.rst b/share/cmake-3.17/Help/variable/MSYS.rst
index 25ddc7f..25ddc7f 100644
--- a/share/cmake-3.16/Help/variable/MSYS.rst
+++ b/share/cmake-3.17/Help/variable/MSYS.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT-NAME_BINARY_DIR.rst b/share/cmake-3.17/Help/variable/PROJECT-NAME_BINARY_DIR.rst
index 49bc558..49bc558 100644
--- a/share/cmake-3.16/Help/variable/PROJECT-NAME_BINARY_DIR.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT-NAME_BINARY_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT-NAME_DESCRIPTION.rst b/share/cmake-3.17/Help/variable/PROJECT-NAME_DESCRIPTION.rst
index 2b88b1a..2b88b1a 100644
--- a/share/cmake-3.16/Help/variable/PROJECT-NAME_DESCRIPTION.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT-NAME_DESCRIPTION.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst b/share/cmake-3.17/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst
index 22cc304..22cc304 100644
--- a/share/cmake-3.16/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT-NAME_SOURCE_DIR.rst b/share/cmake-3.17/Help/variable/PROJECT-NAME_SOURCE_DIR.rst
index 4df3e22..4df3e22 100644
--- a/share/cmake-3.16/Help/variable/PROJECT-NAME_SOURCE_DIR.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT-NAME_SOURCE_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION.rst b/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION.rst
index 0f6ed51..0f6ed51 100644
--- a/share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst b/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst
index 9e2d755..9e2d755 100644
--- a/share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION_MINOR.rst b/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MINOR.rst
index fa2cdab..fa2cdab 100644
--- a/share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION_MINOR.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MINOR.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION_PATCH.rst b/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_PATCH.rst
index 85b5e6b..85b5e6b 100644
--- a/share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION_PATCH.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_PATCH.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst b/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst
index 65c4044..65c4044 100644
--- a/share/cmake-3.16/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT_BINARY_DIR.rst b/share/cmake-3.17/Help/variable/PROJECT_BINARY_DIR.rst
index 09e9ef2..09e9ef2 100644
--- a/share/cmake-3.16/Help/variable/PROJECT_BINARY_DIR.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT_BINARY_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT_DESCRIPTION.rst b/share/cmake-3.17/Help/variable/PROJECT_DESCRIPTION.rst
index 2833e11..2833e11 100644
--- a/share/cmake-3.16/Help/variable/PROJECT_DESCRIPTION.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT_DESCRIPTION.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT_HOMEPAGE_URL.rst b/share/cmake-3.17/Help/variable/PROJECT_HOMEPAGE_URL.rst
index 754c9e8..754c9e8 100644
--- a/share/cmake-3.16/Help/variable/PROJECT_HOMEPAGE_URL.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT_HOMEPAGE_URL.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT_NAME.rst b/share/cmake-3.17/Help/variable/PROJECT_NAME.rst
index 672680a..672680a 100644
--- a/share/cmake-3.16/Help/variable/PROJECT_NAME.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT_NAME.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT_SOURCE_DIR.rst b/share/cmake-3.17/Help/variable/PROJECT_SOURCE_DIR.rst
index 27f2838..27f2838 100644
--- a/share/cmake-3.16/Help/variable/PROJECT_SOURCE_DIR.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT_SOURCE_DIR.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT_VERSION.rst b/share/cmake-3.17/Help/variable/PROJECT_VERSION.rst
index 234558d..234558d 100644
--- a/share/cmake-3.16/Help/variable/PROJECT_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT_VERSION.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT_VERSION_MAJOR.rst b/share/cmake-3.17/Help/variable/PROJECT_VERSION_MAJOR.rst
index 4b6072c..4b6072c 100644
--- a/share/cmake-3.16/Help/variable/PROJECT_VERSION_MAJOR.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT_VERSION_MAJOR.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT_VERSION_MINOR.rst b/share/cmake-3.17/Help/variable/PROJECT_VERSION_MINOR.rst
index 5f31220..5f31220 100644
--- a/share/cmake-3.16/Help/variable/PROJECT_VERSION_MINOR.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT_VERSION_MINOR.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT_VERSION_PATCH.rst b/share/cmake-3.17/Help/variable/PROJECT_VERSION_PATCH.rst
index ac72ec0..ac72ec0 100644
--- a/share/cmake-3.16/Help/variable/PROJECT_VERSION_PATCH.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT_VERSION_PATCH.rst
diff --git a/share/cmake-3.16/Help/variable/PROJECT_VERSION_TWEAK.rst b/share/cmake-3.17/Help/variable/PROJECT_VERSION_TWEAK.rst
index d7f96d6..d7f96d6 100644
--- a/share/cmake-3.16/Help/variable/PROJECT_VERSION_TWEAK.rst
+++ b/share/cmake-3.17/Help/variable/PROJECT_VERSION_TWEAK.rst
diff --git a/share/cmake-3.16/Help/variable/PackageName_ROOT.rst b/share/cmake-3.17/Help/variable/PackageName_ROOT.rst
index 1c2fd34..1c2fd34 100644
--- a/share/cmake-3.16/Help/variable/PackageName_ROOT.rst
+++ b/share/cmake-3.17/Help/variable/PackageName_ROOT.rst
diff --git a/share/cmake-3.16/Help/variable/UNIX.rst b/share/cmake-3.17/Help/variable/UNIX.rst
index 49d8668..49d8668 100644
--- a/share/cmake-3.16/Help/variable/UNIX.rst
+++ b/share/cmake-3.17/Help/variable/UNIX.rst
diff --git a/share/cmake-3.16/Help/variable/WIN32.rst b/share/cmake-3.17/Help/variable/WIN32.rst
index 78ab772..78ab772 100644
--- a/share/cmake-3.16/Help/variable/WIN32.rst
+++ b/share/cmake-3.17/Help/variable/WIN32.rst
diff --git a/share/cmake-3.16/Help/variable/WINCE.rst b/share/cmake-3.17/Help/variable/WINCE.rst
index 54ff7de..54ff7de 100644
--- a/share/cmake-3.16/Help/variable/WINCE.rst
+++ b/share/cmake-3.17/Help/variable/WINCE.rst
diff --git a/share/cmake-3.16/Help/variable/WINDOWS_PHONE.rst b/share/cmake-3.17/Help/variable/WINDOWS_PHONE.rst
index 61d91b0..61d91b0 100644
--- a/share/cmake-3.16/Help/variable/WINDOWS_PHONE.rst
+++ b/share/cmake-3.17/Help/variable/WINDOWS_PHONE.rst
diff --git a/share/cmake-3.16/Help/variable/WINDOWS_STORE.rst b/share/cmake-3.17/Help/variable/WINDOWS_STORE.rst
index dae3b53..dae3b53 100644
--- a/share/cmake-3.16/Help/variable/WINDOWS_STORE.rst
+++ b/share/cmake-3.17/Help/variable/WINDOWS_STORE.rst
diff --git a/share/cmake-3.16/Help/variable/XCODE.rst b/share/cmake-3.17/Help/variable/XCODE.rst
index 99f20fb..99f20fb 100644
--- a/share/cmake-3.16/Help/variable/XCODE.rst
+++ b/share/cmake-3.17/Help/variable/XCODE.rst
diff --git a/share/cmake-3.16/Help/variable/XCODE_VERSION.rst b/share/cmake-3.17/Help/variable/XCODE_VERSION.rst
index 9caf19a..9caf19a 100644
--- a/share/cmake-3.16/Help/variable/XCODE_VERSION.rst
+++ b/share/cmake-3.17/Help/variable/XCODE_VERSION.rst
diff --git a/share/cmake-3.16/Modules/AddFileDependencies.cmake b/share/cmake-3.17/Modules/AddFileDependencies.cmake
index 598a52f..598a52f 100644
--- a/share/cmake-3.16/Modules/AddFileDependencies.cmake
+++ b/share/cmake-3.17/Modules/AddFileDependencies.cmake
diff --git a/share/cmake-3.17/Modules/AndroidTestUtilities.cmake b/share/cmake-3.17/Modules/AndroidTestUtilities.cmake
new file mode 100644
index 0000000..95e2ef7
--- /dev/null
+++ b/share/cmake-3.17/Modules/AndroidTestUtilities.cmake
@@ -0,0 +1,162 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[======================================================================[.rst:
+AndroidTestUtilities
+------------------------
+
+Create a test that automatically loads specified data onto an Android device.
+
+Introduction
+^^^^^^^^^^^^
+
+Use this module to push data needed for testing an Android device behavior
+onto a connected Android device. The module will accept files and libraries as
+well as separate destinations for each. It will create a test that loads the
+files into a device object store and link to them from the specified
+destination. The files are only uploaded if they are not already in the object
+store.
+
+For example:
+
+.. code-block:: cmake
+
+ include(AndroidTestUtilities)
+ android_add_test_data(
+ example_setup_test
+ FILES <files>...
+ LIBS <libs>...
+ DEVICE_TEST_DIR "/data/local/tests/example"
+ DEVICE_OBJECT_STORE "/sdcard/.ExternalData/SHA"
+ )
+
+
+At build time a test named "example_setup_test" will be created. Run this test
+on the command line with :manual:`ctest(1)` to load the data onto the Android
+device.
+
+Module Functions
+^^^^^^^^^^^^^^^^
+
+.. command:: android_add_test_data
+
+ .. code-block:: cmake
+
+ android_add_test_data(<test-name>
+ [FILES <files>...] [FILES_DEST <device-dir>]
+ [LIBS <libs>...] [LIBS_DEST <device-dir>]
+ [DEVICE_OBJECT_STORE <device-dir>]
+ [DEVICE_TEST_DIR <device-dir>]
+ [NO_LINK_REGEX <strings>...]
+ )
+
+ The ``android_add_test_data`` function is used to copy files and libraries
+ needed to run project-specific tests. On the host operating system, this is
+ done at build time. For on-device testing, the files are loaded onto the
+ device by the manufactured test at run time.
+
+ This function accepts the following named parameters:
+
+ ``FILES <files>...``
+ zero or more files needed for testing
+ ``LIBS <libs>...``
+ zero or more libraries needed for testing
+ ``FILES_DEST <device-dir>``
+ absolute path where the data files are expected to be
+ ``LIBS_DEST <device-dir>``
+ absolute path where the libraries are expected to be
+ ``DEVICE_OBJECT_STORE <device-dir>``
+ absolute path to the location where the data is stored on-device
+ ``DEVICE_TEST_DIR <device-dir>``
+ absolute path to the root directory of the on-device test location
+ ``NO_LINK_REGEX <strings>...``
+ list of regex strings matching the names of files that should be
+ copied from the object store to the testing directory
+#]======================================================================]
+
+include(${CMAKE_CURRENT_LIST_DIR}/ExternalData.cmake)
+
+# The parameters to this function should be set to the list of directories,
+# files, and libraries that need to be installed prior to testing.
+function(android_add_test_data test_name)
+ # As the names suggest, oneValueArgs lists the arguments that specify a
+ # single value, while multiValueArgs can contain one or more values.
+ set(keywordArgs)
+ set(oneValueArgs FILES_DEST LIBS_DEST DEVICE_OBJECT_STORE DEVICE_TEST_DIR)
+ set(multiValueArgs FILES LIBS NO_LINK_REGEX)
+
+ # For example, if you called this function with FILES </path/to/file>
+ # then this path would be stored in the variable AST_FILES.
+ # The AST prefix stands for the name of this function (android_add_test_data).
+ cmake_parse_arguments(AST "${keywordArgs}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+ if(NOT AST_DEVICE_TEST_DIR)
+ message(FATAL_ERROR "-- You must specify the location of the on device test directory.")
+ endif()
+ if(NOT AST_DEVICE_OBJECT_STORE)
+ message(FATAL_ERROR "-- You must specify the location of the on device object store.")
+ endif()
+ if(${AST_DEVICE_TEST_DIR} STREQUAL "/")
+ message(FATAL_ERROR "-- The device test directory cannot be '/'")
+ endif()
+
+ # Copy all test data files into the binary directory, where tests are run.
+ # ExternalData will handle fetching DATA{...} references.
+ string(REPLACE "|" ";" hash_algs "${_ExternalData_REGEX_EXT}")
+ # Convert ExternalData placeholder file names to DATA{} syntax.
+ foreach(alg ${hash_algs})
+ string(REGEX REPLACE "([^ ;]+)\\.${alg}" "DATA{\\1}" AST_FILES "${AST_FILES}")
+ endforeach()
+
+ set(DATA_TARGET_NAME "${test_name}")
+ string(FIND "${AST_FILES}" "DATA{" data_files_found)
+ if(${data_files_found} GREATER "-1")
+ # Use ExternalData if any DATA{} files were found.
+ ExternalData_Expand_Arguments(
+ ${DATA_TARGET_NAME}
+ extern_data_output
+ ${AST_FILES})
+ ExternalData_Add_Target(${DATA_TARGET_NAME})
+ else()
+ add_custom_target(${DATA_TARGET_NAME} ALL)
+ set(extern_data_output ${AST_FILES})
+ endif()
+
+ # For regular files on Linux, just copy them directly.
+ foreach(path ${AST_FILES})
+ foreach(output ${extern_data_output})
+ if(${output} STREQUAL ${path})
+ # Check if a destination was specified. If not, we copy by default
+ # into this project's binary directory, preserving its relative path.
+ if(AST_${VAR}_DEST)
+ set(DEST ${CMAKE_BINARY_DIR}/${parent_dir}/${AST_${VAR}_DEST})
+ else()
+ get_filename_component(parent_dir ${path} DIRECTORY)
+ set(DEST "${CMAKE_BINARY_DIR}/${parent_dir}")
+ endif()
+ get_filename_component(extern_data_source ${output} REALPATH)
+ get_filename_component(extern_data_basename ${output} NAME)
+ add_custom_command(
+ TARGET ${DATA_TARGET_NAME} POST_BUILD
+ DEPENDS ${extern_data_source}
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${extern_data_source} ${DEST}/${extern_data_basename}
+ )
+ endif()
+ endforeach()
+ endforeach()
+
+ if(ANDROID)
+ string(REGEX REPLACE "DATA{([^ ;]+)}" "\\1" processed_FILES "${AST_FILES}")
+ add_test(
+ NAME ${test_name}
+ COMMAND ${CMAKE_COMMAND}
+ "-Darg_files_dest=${AST_FILES_DEST}"
+ "-Darg_libs_dest=${AST_LIBS_DEST}"
+ "-Darg_dev_test_dir=${AST_DEVICE_TEST_DIR}"
+ "-Darg_dev_obj_store=${AST_DEVICE_OBJECT_STORE}"
+ "-Darg_no_link_regex=${AST_NO_LINK_REGEX}"
+ "-Darg_files=${processed_FILES}"
+ "-Darg_libs=${AST_LIBS}"
+ "-Darg_src_dir=${CMAKE_CURRENT_SOURCE_DIR}"
+ -P ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/AndroidTestUtilities/PushToAndroidDevice.cmake)
+ endif()
+endfunction()
diff --git a/share/cmake-3.16/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake b/share/cmake-3.17/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake
index fccff67..fccff67 100644
--- a/share/cmake-3.16/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake
+++ b/share/cmake-3.17/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake
diff --git a/share/cmake-3.16/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in b/share/cmake-3.17/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
index a6e5fda..a6e5fda 100644
--- a/share/cmake-3.16/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
+++ b/share/cmake-3.17/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
diff --git a/share/cmake-3.16/Modules/BasicConfigVersion-ExactVersion.cmake.in b/share/cmake-3.17/Modules/BasicConfigVersion-ExactVersion.cmake.in
index 43fc4d0..43fc4d0 100644
--- a/share/cmake-3.16/Modules/BasicConfigVersion-ExactVersion.cmake.in
+++ b/share/cmake-3.17/Modules/BasicConfigVersion-ExactVersion.cmake.in
diff --git a/share/cmake-3.16/Modules/BasicConfigVersion-SameMajorVersion.cmake.in b/share/cmake-3.17/Modules/BasicConfigVersion-SameMajorVersion.cmake.in
index 8c3b6a2..8c3b6a2 100644
--- a/share/cmake-3.16/Modules/BasicConfigVersion-SameMajorVersion.cmake.in
+++ b/share/cmake-3.17/Modules/BasicConfigVersion-SameMajorVersion.cmake.in
diff --git a/share/cmake-3.16/Modules/BasicConfigVersion-SameMinorVersion.cmake.in b/share/cmake-3.17/Modules/BasicConfigVersion-SameMinorVersion.cmake.in
index e2030d2..e2030d2 100644
--- a/share/cmake-3.16/Modules/BasicConfigVersion-SameMinorVersion.cmake.in
+++ b/share/cmake-3.17/Modules/BasicConfigVersion-SameMinorVersion.cmake.in
diff --git a/share/cmake-3.16/Modules/BundleUtilities.cmake b/share/cmake-3.17/Modules/BundleUtilities.cmake
index 2f3b9e1..2f3b9e1 100644
--- a/share/cmake-3.16/Modules/BundleUtilities.cmake
+++ b/share/cmake-3.17/Modules/BundleUtilities.cmake
diff --git a/share/cmake-3.16/Modules/CMake.cmake b/share/cmake-3.17/Modules/CMake.cmake
index caa5479..caa5479 100644
--- a/share/cmake-3.16/Modules/CMake.cmake
+++ b/share/cmake-3.17/Modules/CMake.cmake
diff --git a/share/cmake-3.16/Modules/CMakeASM-ATTInformation.cmake b/share/cmake-3.17/Modules/CMakeASM-ATTInformation.cmake
index d1970a2..d1970a2 100644
--- a/share/cmake-3.16/Modules/CMakeASM-ATTInformation.cmake
+++ b/share/cmake-3.17/Modules/CMakeASM-ATTInformation.cmake
diff --git a/share/cmake-3.16/Modules/CMakeASMCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeASMCompiler.cmake.in
index b8e09fe..b8e09fe 100644
--- a/share/cmake-3.16/Modules/CMakeASMCompiler.cmake.in
+++ b/share/cmake-3.17/Modules/CMakeASMCompiler.cmake.in
diff --git a/share/cmake-3.16/Modules/CMakeASMInformation.cmake b/share/cmake-3.17/Modules/CMakeASMInformation.cmake
index 6b73730..6b73730 100644
--- a/share/cmake-3.16/Modules/CMakeASMInformation.cmake
+++ b/share/cmake-3.17/Modules/CMakeASMInformation.cmake
diff --git a/share/cmake-3.16/Modules/CMakeASM_MASMInformation.cmake b/share/cmake-3.17/Modules/CMakeASM_MASMInformation.cmake
index 9f7e934..9f7e934 100644
--- a/share/cmake-3.16/Modules/CMakeASM_MASMInformation.cmake
+++ b/share/cmake-3.17/Modules/CMakeASM_MASMInformation.cmake
diff --git a/share/cmake-3.16/Modules/CMakeASM_NASMInformation.cmake b/share/cmake-3.17/Modules/CMakeASM_NASMInformation.cmake
index cb793e7..cb793e7 100644
--- a/share/cmake-3.16/Modules/CMakeASM_NASMInformation.cmake
+++ b/share/cmake-3.17/Modules/CMakeASM_NASMInformation.cmake
diff --git a/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory.cmake b/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory.cmake
new file mode 100644
index 0000000..69a8417
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory.cmake
@@ -0,0 +1,194 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CMakeAddFortranSubdirectory
+---------------------------
+
+Add a fortran-only subdirectory, find a fortran compiler, and build.
+
+The ``cmake_add_fortran_subdirectory`` function adds a subdirectory
+to a project that contains a fortran-only subproject. The module will
+check the current compiler and see if it can support fortran. If no
+fortran compiler is found and the compiler is MSVC, then this module
+will find the MinGW gfortran. It will then use an external project to
+build with the MinGW tools. It will also create imported targets for
+the libraries created. This will only work if the fortran code is
+built into a dll, so :variable:`BUILD_SHARED_LIBS` is turned on in
+the project. In addition the :variable:`CMAKE_GNUtoMS` option is set
+to on, so that Microsoft ``.lib`` files are created. Usage is as follows:
+
+::
+
+ cmake_add_fortran_subdirectory(
+ <subdir> # name of subdirectory
+ PROJECT <project_name> # project name in subdir top CMakeLists.txt
+ ARCHIVE_DIR <dir> # dir where project places .lib files
+ RUNTIME_DIR <dir> # dir where project places .dll files
+ LIBRARIES <lib>... # names of library targets to import
+ LINK_LIBRARIES # link interface libraries for LIBRARIES
+ [LINK_LIBS <lib> <dep>...]...
+ CMAKE_COMMAND_LINE ... # extra command line flags to pass to cmake
+ NO_EXTERNAL_INSTALL # skip installation of external project
+ )
+
+Relative paths in ``ARCHIVE_DIR`` and ``RUNTIME_DIR`` are interpreted with
+respect to the build directory corresponding to the source directory
+in which the function is invoked.
+
+Limitations:
+
+``NO_EXTERNAL_INSTALL`` is required for forward compatibility with a
+future version that supports installation of the external project
+binaries during ``make install``.
+#]=======================================================================]
+
+include(CheckLanguage)
+include(ExternalProject)
+
+function(_setup_mingw_config_and_build source_dir build_dir)
+ # Look for a MinGW gfortran.
+ find_program(MINGW_GFORTRAN
+ NAMES gfortran
+ PATHS
+ c:/MinGW/bin
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\MinGW;InstallLocation]/bin"
+ )
+ if(NOT MINGW_GFORTRAN)
+ message(FATAL_ERROR
+ "gfortran not found, please install MinGW with the gfortran option."
+ "Or set the cache variable MINGW_GFORTRAN to the full path. "
+ " This is required to build")
+ endif()
+
+ # Validate the MinGW gfortran we found.
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(_mingw_target "Target:.*64.*mingw")
+ else()
+ set(_mingw_target "Target:.*mingw32")
+ endif()
+ execute_process(COMMAND "${MINGW_GFORTRAN}" -v
+ ERROR_VARIABLE out ERROR_STRIP_TRAILING_WHITESPACE)
+ if(NOT "${out}" MATCHES "${_mingw_target}")
+ string(REPLACE "\n" "\n " out " ${out}")
+ message(FATAL_ERROR
+ "MINGW_GFORTRAN is set to\n"
+ " ${MINGW_GFORTRAN}\n"
+ "which is not a MinGW gfortran for this architecture. "
+ "The output from -v does not match \"${_mingw_target}\":\n"
+ "${out}\n"
+ "Set MINGW_GFORTRAN to a proper MinGW gfortran for this architecture."
+ )
+ endif()
+
+ # Configure scripts to run MinGW tools with the proper PATH.
+ get_filename_component(MINGW_PATH ${MINGW_GFORTRAN} PATH)
+ file(TO_NATIVE_PATH "${MINGW_PATH}" MINGW_PATH)
+ string(REPLACE "\\" "\\\\" MINGW_PATH "${MINGW_PATH}")
+ configure_file(
+ ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/CMakeAddFortranSubdirectory/config_mingw.cmake.in
+ ${build_dir}/config_mingw.cmake
+ @ONLY)
+ configure_file(
+ ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/CMakeAddFortranSubdirectory/build_mingw.cmake.in
+ ${build_dir}/build_mingw.cmake
+ @ONLY)
+endfunction()
+
+function(_add_fortran_library_link_interface library depend_library)
+ set_target_properties(${library} PROPERTIES
+ IMPORTED_LINK_INTERFACE_LIBRARIES_NOCONFIG "${depend_library}")
+endfunction()
+
+
+function(cmake_add_fortran_subdirectory subdir)
+ # Parse arguments to function
+ set(options NO_EXTERNAL_INSTALL)
+ set(oneValueArgs PROJECT ARCHIVE_DIR RUNTIME_DIR)
+ set(multiValueArgs LIBRARIES LINK_LIBRARIES CMAKE_COMMAND_LINE)
+ cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+ if(NOT ARGS_NO_EXTERNAL_INSTALL)
+ message(FATAL_ERROR
+ "Option NO_EXTERNAL_INSTALL is required (for forward compatibility) "
+ "but was not given."
+ )
+ endif()
+
+ # if we are not using MSVC without fortran support
+ # then just use the usual add_subdirectory to build
+ # the fortran library
+ check_language(Fortran)
+ if(NOT (MSVC AND (NOT CMAKE_Fortran_COMPILER)))
+ add_subdirectory(${subdir})
+ return()
+ endif()
+
+ # if we have MSVC without Intel fortran then setup
+ # external projects to build with mingw fortran
+
+ set(source_dir "${CMAKE_CURRENT_SOURCE_DIR}/${subdir}")
+ set(project_name "${ARGS_PROJECT}")
+ set(library_dir "${ARGS_ARCHIVE_DIR}")
+ set(binary_dir "${ARGS_RUNTIME_DIR}")
+ set(libraries ${ARGS_LIBRARIES})
+ # use the same directory that add_subdirectory would have used
+ set(build_dir "${CMAKE_CURRENT_BINARY_DIR}/${subdir}")
+ foreach(dir_var library_dir binary_dir)
+ if(NOT IS_ABSOLUTE "${${dir_var}}")
+ get_filename_component(${dir_var}
+ "${CMAKE_CURRENT_BINARY_DIR}/${${dir_var}}" ABSOLUTE)
+ endif()
+ endforeach()
+ # create build and configure wrapper scripts
+ _setup_mingw_config_and_build("${source_dir}" "${build_dir}")
+ # create the external project
+ externalproject_add(${project_name}_build
+ SOURCE_DIR ${source_dir}
+ BINARY_DIR ${build_dir}
+ CONFIGURE_COMMAND ${CMAKE_COMMAND}
+ -P ${build_dir}/config_mingw.cmake
+ BUILD_COMMAND ${CMAKE_COMMAND}
+ -P ${build_dir}/build_mingw.cmake
+ BUILD_ALWAYS 1
+ INSTALL_COMMAND ""
+ )
+ # create imported targets for all libraries
+ foreach(lib ${libraries})
+ add_library(${lib} SHARED IMPORTED GLOBAL)
+ set_property(TARGET ${lib} APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG)
+ set_target_properties(${lib} PROPERTIES
+ IMPORTED_IMPLIB_NOCONFIG "${library_dir}/lib${lib}.lib"
+ IMPORTED_LOCATION_NOCONFIG "${binary_dir}/lib${lib}.dll"
+ )
+ add_dependencies(${lib} ${project_name}_build)
+ endforeach()
+
+ # now setup link libraries for targets
+ set(start FALSE)
+ set(target)
+ foreach(lib ${ARGS_LINK_LIBRARIES})
+ if("${lib}" STREQUAL "LINK_LIBS")
+ set(start TRUE)
+ else()
+ if(start)
+ if(DEFINED target)
+ # process current target and target_libs
+ _add_fortran_library_link_interface(${target} "${target_libs}")
+ # zero out target and target_libs
+ set(target)
+ set(target_libs)
+ endif()
+ # save the current target and set start to FALSE
+ set(target ${lib})
+ set(start FALSE)
+ else()
+ # append the lib to target_libs
+ list(APPEND target_libs "${lib}")
+ endif()
+ endif()
+ endforeach()
+ # process anything that is left in target and target_libs
+ if(DEFINED target)
+ _add_fortran_library_link_interface(${target} "${target_libs}")
+ endif()
+endfunction()
diff --git a/share/cmake-3.16/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in b/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in
index 55b271a..55b271a 100644
--- a/share/cmake-3.16/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in
+++ b/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in
diff --git a/share/cmake-3.16/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in b/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in
index 97f6769..97f6769 100644
--- a/share/cmake-3.16/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in
+++ b/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in
diff --git a/share/cmake-3.16/Modules/CMakeAddNewLanguage.txt b/share/cmake-3.17/Modules/CMakeAddNewLanguage.txt
index b0be590..b0be590 100644
--- a/share/cmake-3.16/Modules/CMakeAddNewLanguage.txt
+++ b/share/cmake-3.17/Modules/CMakeAddNewLanguage.txt
diff --git a/share/cmake-3.16/Modules/CMakeBackwardCompatibilityC.cmake b/share/cmake-3.17/Modules/CMakeBackwardCompatibilityC.cmake
index 775a513..775a513 100644
--- a/share/cmake-3.16/Modules/CMakeBackwardCompatibilityC.cmake
+++ b/share/cmake-3.17/Modules/CMakeBackwardCompatibilityC.cmake
diff --git a/share/cmake-3.16/Modules/CMakeBackwardCompatibilityCXX.cmake b/share/cmake-3.17/Modules/CMakeBackwardCompatibilityCXX.cmake
index 02744a9..02744a9 100644
--- a/share/cmake-3.16/Modules/CMakeBackwardCompatibilityCXX.cmake
+++ b/share/cmake-3.17/Modules/CMakeBackwardCompatibilityCXX.cmake
diff --git a/share/cmake-3.16/Modules/CMakeBorlandFindMake.cmake b/share/cmake-3.17/Modules/CMakeBorlandFindMake.cmake
index 18b9962..18b9962 100644
--- a/share/cmake-3.16/Modules/CMakeBorlandFindMake.cmake
+++ b/share/cmake-3.17/Modules/CMakeBorlandFindMake.cmake
diff --git a/share/cmake-3.16/Modules/CMakeBuildSettings.cmake.in b/share/cmake-3.17/Modules/CMakeBuildSettings.cmake.in
index 7c4aa14..7c4aa14 100644
--- a/share/cmake-3.16/Modules/CMakeBuildSettings.cmake.in
+++ b/share/cmake-3.17/Modules/CMakeBuildSettings.cmake.in
diff --git a/share/cmake-3.16/Modules/CMakeCCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeCCompiler.cmake.in
index 9b8d423..9b8d423 100644
--- a/share/cmake-3.16/Modules/CMakeCCompiler.cmake.in
+++ b/share/cmake-3.17/Modules/CMakeCCompiler.cmake.in
diff --git a/share/cmake-3.16/Modules/CMakeCCompilerABI.c b/share/cmake-3.17/Modules/CMakeCCompilerABI.c
index 08cf39b..08cf39b 100644
--- a/share/cmake-3.16/Modules/CMakeCCompilerABI.c
+++ b/share/cmake-3.17/Modules/CMakeCCompilerABI.c
diff --git a/share/cmake-3.16/Modules/CMakeCCompilerId.c.in b/share/cmake-3.17/Modules/CMakeCCompilerId.c.in
index 2f6bdb4..2f6bdb4 100644
--- a/share/cmake-3.16/Modules/CMakeCCompilerId.c.in
+++ b/share/cmake-3.17/Modules/CMakeCCompilerId.c.in
diff --git a/share/cmake-3.17/Modules/CMakeCInformation.cmake b/share/cmake-3.17/Modules/CMakeCInformation.cmake
new file mode 100644
index 0000000..1e08bb7
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeCInformation.cmake
@@ -0,0 +1,195 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This file sets the basic flags for the C language in CMake.
+# It also loads the available platform file for the system-compiler
+# if it exists.
+# It also loads a system - compiler - processor (or target hardware)
+# specific file, which is mainly useful for crosscompiling and embedded systems.
+
+include(CMakeLanguageInformation)
+
+# some compilers use different extensions (e.g. sdcc uses .rel)
+# so set the extension here first so it can be overridden by the compiler specific file
+if(UNIX)
+ set(CMAKE_C_OUTPUT_EXTENSION .o)
+else()
+ set(CMAKE_C_OUTPUT_EXTENSION .obj)
+endif()
+
+set(_INCLUDED_FILE 0)
+
+# Load compiler-specific information.
+if(CMAKE_C_COMPILER_ID)
+ include(Compiler/${CMAKE_C_COMPILER_ID}-C OPTIONAL)
+endif()
+
+set(CMAKE_BASE_NAME)
+get_filename_component(CMAKE_BASE_NAME "${CMAKE_C_COMPILER}" NAME_WE)
+if(CMAKE_COMPILER_IS_GNUCC)
+ set(CMAKE_BASE_NAME gcc)
+endif()
+
+
+# load a hardware specific file, mostly useful for embedded compilers
+if(CMAKE_SYSTEM_PROCESSOR)
+ if(CMAKE_C_COMPILER_ID)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+ endif()
+ if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
+ endif ()
+endif()
+
+
+# load the system- and compiler specific files
+if(CMAKE_C_COMPILER_ID)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C
+ OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+endif()
+if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}
+ OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+endif ()
+
+# load any compiler-wrapper specific information
+if (CMAKE_C_COMPILER_WRAPPER)
+ __cmake_include_compiler_wrapper(C)
+endif ()
+
+# We specify the compiler information in the system file for some
+# platforms, but this language may not have been enabled when the file
+# was first included. Include it again to get the language info.
+# Remove this when all compiler info is removed from system files.
+if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_SYSTEM_NAME} OPTIONAL)
+endif ()
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+ foreach(f ${CMAKE_C_ABI_FILES})
+ include(${f})
+ endforeach()
+ unset(CMAKE_C_ABI_FILES)
+endif()
+
+# This should be included before the _INIT variables are
+# used to initialize the cache. Since the rule variables
+# have if blocks on them, users can still define them here.
+# But, it should still be after the platform file so changes can
+# be made to those values.
+
+if(CMAKE_USER_MAKE_RULES_OVERRIDE)
+ # Save the full path of the file so try_compile can use it.
+ include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
+ set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
+endif()
+
+if(CMAKE_USER_MAKE_RULES_OVERRIDE_C)
+ # Save the full path of the file so try_compile can use it.
+ include(${CMAKE_USER_MAKE_RULES_OVERRIDE_C} RESULT_VARIABLE _override)
+ set(CMAKE_USER_MAKE_RULES_OVERRIDE_C "${_override}")
+endif()
+
+
+# for most systems a module is the same as a shared library
+# so unless the variable CMAKE_MODULE_EXISTS is set just
+# copy the values from the LIBRARY variables
+if(NOT CMAKE_MODULE_EXISTS)
+ set(CMAKE_SHARED_MODULE_C_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS})
+ set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS})
+endif()
+
+set(CMAKE_C_FLAGS_INIT "$ENV{CFLAGS} ${CMAKE_C_FLAGS_INIT}")
+
+cmake_initialize_per_config_variable(CMAKE_C_FLAGS "Flags used by the C compiler")
+
+if(CMAKE_C_STANDARD_LIBRARIES_INIT)
+ set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES_INIT}"
+ CACHE STRING "Libraries linked by default with all C applications.")
+ mark_as_advanced(CMAKE_C_STANDARD_LIBRARIES)
+endif()
+
+if(NOT CMAKE_C_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_C_COMPILER_LAUNCHER})
+ set(CMAKE_C_COMPILER_LAUNCHER "$ENV{CMAKE_C_COMPILER_LAUNCHER}"
+ CACHE STRING "Compiler launcher for C.")
+endif()
+
+include(CMakeCommonLanguageInclude)
+
+# now define the following rule variables
+
+# CMAKE_C_CREATE_SHARED_LIBRARY
+# CMAKE_C_CREATE_SHARED_MODULE
+# CMAKE_C_COMPILE_OBJECT
+# CMAKE_C_LINK_EXECUTABLE
+
+# variables supplied by the generator at use time
+# <TARGET>
+# <TARGET_BASE> the target without the suffix
+# <OBJECTS>
+# <OBJECT>
+# <LINK_LIBRARIES>
+# <FLAGS>
+# <LINK_FLAGS>
+
+# C compiler information
+# <CMAKE_C_COMPILER>
+# <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS>
+# <CMAKE_SHARED_MODULE_CREATE_C_FLAGS>
+# <CMAKE_C_LINK_FLAGS>
+
+# Static library tools
+# <CMAKE_AR>
+# <CMAKE_RANLIB>
+
+
+# create a C shared library
+if(NOT CMAKE_C_CREATE_SHARED_LIBRARY)
+ set(CMAKE_C_CREATE_SHARED_LIBRARY
+ "<CMAKE_C_COMPILER> <CMAKE_SHARED_LIBRARY_C_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
+endif()
+
+# create a C shared module just copy the shared library rule
+if(NOT CMAKE_C_CREATE_SHARED_MODULE)
+ set(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_C_CREATE_SHARED_LIBRARY})
+endif()
+
+# Create a static archive incrementally for large object file counts.
+# If CMAKE_C_CREATE_STATIC_LIBRARY is set it will override these.
+if(NOT DEFINED CMAKE_C_ARCHIVE_CREATE)
+ set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
+endif()
+if(NOT DEFINED CMAKE_C_ARCHIVE_APPEND)
+ set(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
+endif()
+if(NOT DEFINED CMAKE_C_ARCHIVE_FINISH)
+ set(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
+endif()
+
+# compile a C file into an object file
+if(NOT CMAKE_C_COMPILE_OBJECT)
+ set(CMAKE_C_COMPILE_OBJECT
+ "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+endif()
+
+if(NOT CMAKE_C_LINK_EXECUTABLE)
+ set(CMAKE_C_LINK_EXECUTABLE
+ "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RUNTIME_C_FLAG)
+ set(CMAKE_EXECUTABLE_RUNTIME_C_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RUNTIME_C_FLAG_SEP)
+ set(CMAKE_EXECUTABLE_RUNTIME_C_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RPATH_LINK_C_FLAG)
+ set(CMAKE_EXECUTABLE_RPATH_LINK_C_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG})
+endif()
+
+set(CMAKE_C_INFORMATION_LOADED 1)
+
+
diff --git a/share/cmake-3.16/Modules/CMakeCSharpCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeCSharpCompiler.cmake.in
index 3d49b6b..3d49b6b 100644
--- a/share/cmake-3.16/Modules/CMakeCSharpCompiler.cmake.in
+++ b/share/cmake-3.17/Modules/CMakeCSharpCompiler.cmake.in
diff --git a/share/cmake-3.16/Modules/CMakeCSharpCompilerId.cs.in b/share/cmake-3.17/Modules/CMakeCSharpCompilerId.cs.in
index 987f63a..987f63a 100644
--- a/share/cmake-3.16/Modules/CMakeCSharpCompilerId.cs.in
+++ b/share/cmake-3.17/Modules/CMakeCSharpCompilerId.cs.in
diff --git a/share/cmake-3.17/Modules/CMakeCSharpInformation.cmake b/share/cmake-3.17/Modules/CMakeCSharpInformation.cmake
new file mode 100644
index 0000000..41cd449
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeCSharpInformation.cmake
@@ -0,0 +1,67 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# This file sets the basic flags for the C# language in CMake.
+# It also loads the available platform file for the system-compiler
+# if it exists.
+
+set(CMAKE_BASE_NAME)
+get_filename_component(CMAKE_BASE_NAME "${CMAKE_CSharp_COMPILER}" NAME_WE)
+
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+set(CMAKE_CSharp_FLAGS_INIT "/define:TRACE")
+set(CMAKE_CSharp_FLAGS_DEBUG_INIT "/debug:full /optimize- /warn:3 /errorreport:prompt /define:DEBUG")
+set(CMAKE_CSharp_FLAGS_RELEASE_INIT "/debug:none /optimize /warn:1 /errorreport:queue")
+set(CMAKE_CSharp_FLAGS_RELWITHDEBINFO_INIT "/debug:full /optimize-")
+set(CMAKE_CSharp_FLAGS_MINSIZEREL_INIT "/debug:none /optimize")
+set(CMAKE_CSharp_LINKER_SUPPORTS_PDB ON)
+
+set(CMAKE_CSharp_STANDARD_LIBRARIES_INIT "System")
+
+if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ set(CMAKE_CSharp_FLAGS_INIT "/platform:x86 ${CMAKE_CSharp_FLAGS_INIT}")
+else()
+ set(CMAKE_CSharp_FLAGS_INIT "/platform:x64 ${CMAKE_CSharp_FLAGS_INIT}")
+endif()
+
+# This should be included before the _INIT variables are
+# used to initialize the cache. Since the rule variables
+# have if blocks on them, users can still define them here.
+# But, it should still be after the platform file so changes can
+# be made to those values.
+
+# for most systems a module is the same as a shared library
+# so unless the variable CMAKE_MODULE_EXISTS is set just
+# copy the values from the LIBRARY variables
+if(NOT CMAKE_MODULE_EXISTS)
+ set(CMAKE_SHARED_MODULE_CSharp_FLAGS ${CMAKE_SHARED_LIBRARY_CSharp_FLAGS})
+ set(CMAKE_SHARED_MODULE_CREATE_CSharp_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_CSharp_FLAGS})
+endif()
+
+# add the flags to the cache based
+# on the initial values computed in the platform/*.cmake files
+# use _INIT variables so that this only happens the first time
+# and you can set these flags in the cmake cache
+set(CMAKE_CSharp_FLAGS_INIT "$ENV{CSFLAGS} ${CMAKE_CSharp_FLAGS_INIT}")
+
+cmake_initialize_per_config_variable(CMAKE_CSharp_FLAGS "Flags used by the C# compiler")
+
+if(CMAKE_CSharp_STANDARD_LIBRARIES_INIT)
+ set(CMAKE_CSharp_STANDARD_LIBRARIES "${CMAKE_CSharp_STANDARD_LIBRARIES_INIT}"
+ CACHE STRING "Libraries linked by default with all C# applications.")
+ mark_as_advanced(CMAKE_CSharp_STANDARD_LIBRARIES)
+endif()
+
+# set missing flags (if they are not defined). This is needed in the
+# unlikely case that you have only C# and no C/C++ targets in your
+# project.
+cmake_initialize_per_config_variable(CMAKE_EXE_LINKER_FLAGS "Flags used by the linker")
+cmake_initialize_per_config_variable(CMAKE_SHARED_LINKER_FLAGS "Flags used by the linker during the creation of shared libraries")
+
+set(CMAKE_CSharp_CREATE_SHARED_LIBRARY "CSharp_NO_CREATE_SHARED_LIBRARY")
+set(CMAKE_CSharp_CREATE_SHARED_MODULE "CSharp_NO_CREATE_SHARED_MODULE")
+set(CMAKE_CSharp_LINK_EXECUTABLE "CSharp_NO_LINK_EXECUTABLE")
+
+set(CMAKE_CSharp_USE_RESPONSE_FILE_FOR_OBJECTS 1)
+set(CMAKE_CSharp_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.17/Modules/CMakeCUDACompiler.cmake.in b/share/cmake-3.17/Modules/CMakeCUDACompiler.cmake.in
new file mode 100644
index 0000000..4a615a3
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeCUDACompiler.cmake.in
@@ -0,0 +1,57 @@
+set(CMAKE_CUDA_COMPILER "@CMAKE_CUDA_COMPILER@")
+set(CMAKE_CUDA_HOST_COMPILER "@CMAKE_CUDA_HOST_COMPILER@")
+set(CMAKE_CUDA_HOST_LINK_LAUNCHER "@CMAKE_CUDA_HOST_LINK_LAUNCHER@")
+set(CMAKE_CUDA_COMPILER_ID "@CMAKE_CUDA_COMPILER_ID@")
+set(CMAKE_CUDA_COMPILER_VERSION "@CMAKE_CUDA_COMPILER_VERSION@")
+set(CMAKE_CUDA_STANDARD_COMPUTED_DEFAULT "@CMAKE_CUDA_STANDARD_COMPUTED_DEFAULT@")
+set(CMAKE_CUDA_COMPILE_FEATURES "@CMAKE_CUDA_COMPILE_FEATURES@")
+set(CMAKE_CUDA03_COMPILE_FEATURES "@CMAKE_CUDA03_COMPILE_FEATURES@")
+set(CMAKE_CUDA11_COMPILE_FEATURES "@CMAKE_CUDA11_COMPILE_FEATURES@")
+set(CMAKE_CUDA14_COMPILE_FEATURES "@CMAKE_CUDA14_COMPILE_FEATURES@")
+set(CMAKE_CUDA17_COMPILE_FEATURES "@CMAKE_CUDA17_COMPILE_FEATURES@")
+set(CMAKE_CUDA20_COMPILE_FEATURES "@CMAKE_CUDA20_COMPILE_FEATURES@")
+
+set(CMAKE_CUDA_PLATFORM_ID "@CMAKE_CUDA_PLATFORM_ID@")
+set(CMAKE_CUDA_SIMULATE_ID "@CMAKE_CUDA_SIMULATE_ID@")
+set(CMAKE_CUDA_COMPILER_FRONTEND_VARIANT "@CMAKE_CUDA_COMPILER_FRONTEND_VARIANT@")
+set(CMAKE_CUDA_SIMULATE_VERSION "@CMAKE_CUDA_SIMULATE_VERSION@")
+@SET_MSVC_CUDA_ARCHITECTURE_ID@
+
+set(CMAKE_CUDA_COMPILER_ENV_VAR "CUDACXX")
+set(CMAKE_CUDA_HOST_COMPILER_ENV_VAR "CUDAHOSTCXX")
+
+set(CMAKE_CUDA_COMPILER_LOADED 1)
+set(CMAKE_CUDA_COMPILER_ID_RUN 1)
+set(CMAKE_CUDA_SOURCE_FILE_EXTENSIONS cu)
+set(CMAKE_CUDA_LINKER_PREFERENCE 15)
+set(CMAKE_CUDA_LINKER_PREFERENCE_PROPAGATES 1)
+
+set(CMAKE_CUDA_SIZEOF_DATA_PTR "@CMAKE_CUDA_SIZEOF_DATA_PTR@")
+set(CMAKE_CUDA_COMPILER_ABI "@CMAKE_CUDA_COMPILER_ABI@")
+set(CMAKE_CUDA_LIBRARY_ARCHITECTURE "@CMAKE_CUDA_LIBRARY_ARCHITECTURE@")
+
+if(CMAKE_CUDA_SIZEOF_DATA_PTR)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_CUDA_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CUDA_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CUDA_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CUDA_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "@CMAKE_CUDA_LIBRARY_ARCHITECTURE@")
+endif()
+
+set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "@CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES@")
+
+set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "@CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES@")
+set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "@CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES@")
+set(CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "@CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES@")
+
+set(CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES "@CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES@")
+set(CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES "@CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES@")
+set(CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES "@CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES@")
+set(CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "@CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES@")
+
+set(CMAKE_LINKER "@CMAKE_LINKER@")
+set(CMAKE_MT "@CMAKE_MT@")
diff --git a/share/cmake-3.16/Modules/CMakeCUDACompilerABI.cu b/share/cmake-3.17/Modules/CMakeCUDACompilerABI.cu
index 702a7c5..702a7c5 100644
--- a/share/cmake-3.16/Modules/CMakeCUDACompilerABI.cu
+++ b/share/cmake-3.17/Modules/CMakeCUDACompilerABI.cu
diff --git a/share/cmake-3.17/Modules/CMakeCUDACompilerId.cu.in b/share/cmake-3.17/Modules/CMakeCUDACompilerId.cu.in
new file mode 100644
index 0000000..2055de2
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeCUDACompilerId.cu.in
@@ -0,0 +1,52 @@
+#ifndef __CUDACC__
+# error "A C or C++ compiler has been selected for CUDA"
+#endif
+
+@CMAKE_CUDA_COMPILER_ID_CONTENT@
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+@CMAKE_CUDA_COMPILER_ID_PLATFORM_CONTENT@
+@CMAKE_CUDA_COMPILER_ID_ERROR_FOR_TEST@
+
+const char* info_language_dialect_default = "INFO" ":" "dialect_default["
+#if __cplusplus > 201703L
+ "20"
+#elif __cplusplus >= 201703L
+ "17"
+#elif __cplusplus >= 201402L
+ "14"
+#elif __cplusplus >= 201103L
+ "11"
+#else
+ "03"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+ int require = 0;
+ require += info_compiler[argc];
+ require += info_platform[argc];
+#ifdef COMPILER_VERSION_MAJOR
+ require += info_version[argc];
+#endif
+#ifdef SIMULATE_ID
+ require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+ require += info_simulate_version[argc];
+#endif
+ require += info_language_dialect_default[argc];
+ (void)argv;
+ return require;
+}
diff --git a/share/cmake-3.17/Modules/CMakeCUDAInformation.cmake b/share/cmake-3.17/Modules/CMakeCUDAInformation.cmake
new file mode 100644
index 0000000..974f5fa
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeCUDAInformation.cmake
@@ -0,0 +1,205 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+if(UNIX)
+ set(CMAKE_CUDA_OUTPUT_EXTENSION .o)
+else()
+ set(CMAKE_CUDA_OUTPUT_EXTENSION .obj)
+endif()
+set(CMAKE_INCLUDE_FLAG_CUDA "-I")
+
+# Load compiler-specific information.
+if(CMAKE_CUDA_COMPILER_ID)
+ include(Compiler/${CMAKE_CUDA_COMPILER_ID}-CUDA OPTIONAL)
+endif()
+
+# load the system- and compiler specific files
+if(CMAKE_CUDA_COMPILER_ID)
+ # load a hardware specific file, mostly useful for embedded compilers
+ if(CMAKE_SYSTEM_PROCESSOR)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_CUDA_COMPILER_ID}-CUDA-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
+ endif()
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_CUDA_COMPILER_ID}-CUDA OPTIONAL)
+endif()
+
+
+if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG)
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG})
+endif()
+
+if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG_SEP)
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP})
+endif()
+
+if(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_CUDA_FLAG)
+ set(CMAKE_SHARED_LIBRARY_RPATH_LINK_CUDA_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_EXE_EXPORTS_CUDA_FLAG)
+ set(CMAKE_EXE_EXPORTS_CUDA_FLAG ${CMAKE_EXE_EXPORTS_C_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_SONAME_CUDA_FLAG)
+ set(CMAKE_SHARED_LIBRARY_SONAME_CUDA_FLAG ${CMAKE_SHARED_LIBRARY_SONAME_C_FLAG})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RUNTIME_CUDA_FLAG)
+ set(CMAKE_EXECUTABLE_RUNTIME_CUDA_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RUNTIME_CUDA_FLAG_SEP)
+ set(CMAKE_EXECUTABLE_RUNTIME_CUDA_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG_SEP})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RPATH_LINK_CUDA_FLAG)
+ set(CMAKE_EXECUTABLE_RPATH_LINK_CUDA_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_CUDA_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_CUDA_WITH_RUNTIME_PATH)
+ set(CMAKE_SHARED_LIBRARY_LINK_CUDA_WITH_RUNTIME_PATH ${CMAKE_SHARED_LIBRARY_LINK_C_WITH_RUNTIME_PATH})
+endif()
+
+
+# for most systems a module is the same as a shared library
+# so unless the variable CMAKE_MODULE_EXISTS is set just
+# copy the values from the LIBRARY variables
+if(NOT CMAKE_MODULE_EXISTS)
+ set(CMAKE_SHARED_MODULE_CUDA_FLAGS ${CMAKE_SHARED_LIBRARY_CUDA_FLAGS})
+ set(CMAKE_SHARED_MODULE_CREATE_CUDA_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS})
+endif()
+
+# add the flags to the cache based
+# on the initial values computed in the platform/*.cmake files
+# use _INIT variables so that this only happens the first time
+# and you can set these flags in the cmake cache
+set(CMAKE_CUDA_FLAGS_INIT "$ENV{CUDAFLAGS} ${CMAKE_CUDA_FLAGS_INIT}")
+
+cmake_initialize_per_config_variable(CMAKE_CUDA_FLAGS "Flags used by the CUDA compiler")
+
+if(CMAKE_CUDA_STANDARD_LIBRARIES_INIT)
+ set(CMAKE_CUDA_STANDARD_LIBRARIES "${CMAKE_CUDA_STANDARD_LIBRARIES_INIT}"
+ CACHE STRING "Libraries linked by default with all CUDA applications.")
+ mark_as_advanced(CMAKE_CUDA_STANDARD_LIBRARIES)
+endif()
+
+if(NOT CMAKE_CUDA_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_CUDA_COMPILER_LAUNCHER})
+ set(CMAKE_CUDA_COMPILER_LAUNCHER "$ENV{CMAKE_CUDA_COMPILER_LAUNCHER}"
+ CACHE STRING "Compiler launcher for CUDA.")
+endif()
+
+include(CMakeCommonLanguageInclude)
+
+# now define the following rules:
+# CMAKE_CUDA_CREATE_SHARED_LIBRARY
+# CMAKE_CUDA_CREATE_SHARED_MODULE
+# CMAKE_CUDA_COMPILE_WHOLE_COMPILATION
+# CMAKE_CUDA_COMPILE_PTX_COMPILATION
+# CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION
+# CMAKE_CUDA_LINK_EXECUTABLE
+
+if(CMAKE_CUDA_HOST_COMPILER)
+ string(APPEND _CMAKE_CUDA_EXTRA_FLAGS " -ccbin=<CMAKE_CUDA_HOST_COMPILER>")
+endif()
+
+set(__IMPLICT_LINKS )
+foreach(dir ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
+ string(APPEND __IMPLICT_LINKS " -L\"${dir}\"")
+endforeach()
+foreach(lib ${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES})
+ if(${lib} MATCHES "/")
+ string(APPEND __IMPLICT_LINKS " \"${lib}\"")
+ else()
+ string(APPEND __IMPLICT_LINKS " -l${lib}")
+ endif()
+endforeach()
+
+# create a shared library
+if(NOT CMAKE_CUDA_CREATE_SHARED_LIBRARY)
+ set(CMAKE_CUDA_CREATE_SHARED_LIBRARY
+ "<CMAKE_CUDA_HOST_LINK_LAUNCHER> <CMAKE_SHARED_LIBRARY_CUDA_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>${__IMPLICT_LINKS}")
+endif()
+
+# create a shared module copy the shared library rule by default
+if(NOT CMAKE_CUDA_CREATE_SHARED_MODULE)
+ set(CMAKE_CUDA_CREATE_SHARED_MODULE ${CMAKE_CUDA_CREATE_SHARED_LIBRARY})
+endif()
+
+# Create a static archive incrementally for large object file counts.
+if(NOT DEFINED CMAKE_CUDA_ARCHIVE_CREATE)
+ set(CMAKE_CUDA_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
+endif()
+if(NOT DEFINED CMAKE_CUDA_ARCHIVE_APPEND)
+ set(CMAKE_CUDA_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
+endif()
+if(NOT DEFINED CMAKE_CUDA_ARCHIVE_FINISH)
+ set(CMAKE_CUDA_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
+endif()
+
+#Specify how to compile when ptx has been requested
+if(NOT CMAKE_CUDA_COMPILE_PTX_COMPILATION)
+ set(CMAKE_CUDA_COMPILE_PTX_COMPILATION
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -ptx <SOURCE> -o <OBJECT>")
+endif()
+
+#Specify how to compile when separable compilation has been requested
+if(NOT CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION)
+ set(CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -dc <SOURCE> -o <OBJECT>")
+endif()
+
+#Specify how to compile when whole compilation has been requested
+if(NOT CMAKE_CUDA_COMPILE_WHOLE_COMPILATION)
+ set(CMAKE_CUDA_COMPILE_WHOLE_COMPILATION
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -c <SOURCE> -o <OBJECT>")
+endif()
+
+if(CMAKE_GENERATOR STREQUAL "Ninja" AND NOT CMAKE_DEPFILE_FLAGS_CUDA )
+ set(CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -M <SOURCE> -MT <OBJECT> -o $DEP_FILE")
+ #The Ninja generator uses the make file dependency files to determine what
+ #files need to be recompiled. Unfortunately, nvcc < 10.2 doesn't support building
+ #a source file and generating the dependencies of said file in a single
+ #invocation. Instead we have to state that you need to chain two commands.
+ #
+ #The makefile generators uses the custom CMake dependency scanner, and thus
+ #it is exempt from this logic.
+ list(APPEND CMAKE_CUDA_COMPILE_PTX_COMPILATION "${CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION}")
+ list(APPEND CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION "${CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION}")
+ list(APPEND CMAKE_CUDA_COMPILE_WHOLE_COMPILATION "${CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION}")
+endif()
+
+# compile a cu file into an executable
+if(NOT CMAKE_CUDA_LINK_EXECUTABLE)
+ set(CMAKE_CUDA_LINK_EXECUTABLE
+ "<CMAKE_CUDA_HOST_LINK_LAUNCHER> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_LINKS}")
+endif()
+
+# Add implicit host link directories that contain device libraries
+# to the device link line.
+set(__IMPLICT_DLINK_DIRS ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
+if(__IMPLICT_DLINK_DIRS)
+ list(REMOVE_ITEM __IMPLICT_DLINK_DIRS ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
+endif()
+set(__IMPLICT_DLINK_FLAGS )
+foreach(dir ${__IMPLICT_DLINK_DIRS})
+ if(EXISTS "${dir}/libcurand_static.a")
+ string(APPEND __IMPLICT_DLINK_FLAGS " -L\"${dir}\"")
+ endif()
+endforeach()
+unset(__IMPLICT_DLINK_DIRS)
+
+
+#These are used when linking relocatable (dc) cuda code
+if(NOT CMAKE_CUDA_DEVICE_LINK_LIBRARY)
+ set(CMAKE_CUDA_DEVICE_LINK_LIBRARY
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <LANGUAGE_COMPILE_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
+endif()
+if(NOT CMAKE_CUDA_DEVICE_LINK_EXECUTABLE)
+ set(CMAKE_CUDA_DEVICE_LINK_EXECUTABLE
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
+endif()
+
+unset(_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS)
+unset(__IMPLICT_DLINK_FLAGS)
+
+set(CMAKE_CUDA_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.16/Modules/CMakeCXXCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeCXXCompiler.cmake.in
index efb8abf..efb8abf 100644
--- a/share/cmake-3.16/Modules/CMakeCXXCompiler.cmake.in
+++ b/share/cmake-3.17/Modules/CMakeCXXCompiler.cmake.in
diff --git a/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp b/share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp
index 2360534..2360534 100644
--- a/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp
+++ b/share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp
diff --git a/share/cmake-3.16/Modules/CMakeCXXCompilerId.cpp.in b/share/cmake-3.17/Modules/CMakeCXXCompilerId.cpp.in
index a743ce7..a743ce7 100644
--- a/share/cmake-3.16/Modules/CMakeCXXCompilerId.cpp.in
+++ b/share/cmake-3.17/Modules/CMakeCXXCompilerId.cpp.in
diff --git a/share/cmake-3.17/Modules/CMakeCXXInformation.cmake b/share/cmake-3.17/Modules/CMakeCXXInformation.cmake
new file mode 100644
index 0000000..da7440a
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeCXXInformation.cmake
@@ -0,0 +1,282 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This file sets the basic flags for the C++ language in CMake.
+# It also loads the available platform file for the system-compiler
+# if it exists.
+# It also loads a system - compiler - processor (or target hardware)
+# specific file, which is mainly useful for crosscompiling and embedded systems.
+
+include(CMakeLanguageInformation)
+
+# some compilers use different extensions (e.g. sdcc uses .rel)
+# so set the extension here first so it can be overridden by the compiler specific file
+if(UNIX)
+ set(CMAKE_CXX_OUTPUT_EXTENSION .o)
+else()
+ set(CMAKE_CXX_OUTPUT_EXTENSION .obj)
+endif()
+
+set(_INCLUDED_FILE 0)
+
+# Load compiler-specific information.
+if(CMAKE_CXX_COMPILER_ID)
+ include(Compiler/${CMAKE_CXX_COMPILER_ID}-CXX OPTIONAL)
+endif()
+
+set(CMAKE_BASE_NAME)
+get_filename_component(CMAKE_BASE_NAME "${CMAKE_CXX_COMPILER}" NAME_WE)
+# since the gnu compiler has several names force g++
+if(CMAKE_COMPILER_IS_GNUCXX)
+ set(CMAKE_BASE_NAME g++)
+endif()
+
+
+# load a hardware specific file, mostly useful for embedded compilers
+if(CMAKE_SYSTEM_PROCESSOR)
+ if(CMAKE_CXX_COMPILER_ID)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+ endif()
+ if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
+ endif ()
+endif()
+
+# load the system- and compiler specific files
+if(CMAKE_CXX_COMPILER_ID)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+endif()
+if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL
+ RESULT_VARIABLE _INCLUDED_FILE)
+endif ()
+
+# load any compiler-wrapper specific information
+if (CMAKE_CXX_COMPILER_WRAPPER)
+ __cmake_include_compiler_wrapper(CXX)
+endif ()
+
+# We specify the compiler information in the system file for some
+# platforms, but this language may not have been enabled when the file
+# was first included. Include it again to get the language info.
+# Remove this when all compiler info is removed from system files.
+if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_SYSTEM_NAME} OPTIONAL)
+endif ()
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+ foreach(f ${CMAKE_CXX_ABI_FILES})
+ include(${f})
+ endforeach()
+ unset(CMAKE_CXX_ABI_FILES)
+endif()
+
+# This should be included before the _INIT variables are
+# used to initialize the cache. Since the rule variables
+# have if blocks on them, users can still define them here.
+# But, it should still be after the platform file so changes can
+# be made to those values.
+
+if(CMAKE_USER_MAKE_RULES_OVERRIDE)
+ # Save the full path of the file so try_compile can use it.
+ include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
+ set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
+endif()
+
+if(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX)
+ # Save the full path of the file so try_compile can use it.
+ include(${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX} RESULT_VARIABLE _override)
+ set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX "${_override}")
+endif()
+
+
+# Create a set of shared library variable specific to C++
+# For 90% of the systems, these are the same flags as the C versions
+# so if these are not set just copy the flags from the c version
+if(NOT CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS)
+ set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS})
+endif()
+
+if(NOT CMAKE_CXX_COMPILE_OPTIONS_PIC)
+ set(CMAKE_CXX_COMPILE_OPTIONS_PIC ${CMAKE_C_COMPILE_OPTIONS_PIC})
+endif()
+
+if(NOT CMAKE_CXX_COMPILE_OPTIONS_PIE)
+ set(CMAKE_CXX_COMPILE_OPTIONS_PIE ${CMAKE_C_COMPILE_OPTIONS_PIE})
+endif()
+if(NOT CMAKE_CXX_LINK_OPTIONS_PIE)
+ set(CMAKE_CXX_LINK_OPTIONS_PIE ${CMAKE_C_LINK_OPTIONS_PIE})
+endif()
+if(NOT CMAKE_CXX_LINK_OPTIONS_NO_PIE)
+ set(CMAKE_CXX_LINK_OPTIONS_NO_PIE ${CMAKE_C_LINK_OPTIONS_NO_PIE})
+endif()
+
+if(NOT CMAKE_CXX_COMPILE_OPTIONS_DLL)
+ set(CMAKE_CXX_COMPILE_OPTIONS_DLL ${CMAKE_C_COMPILE_OPTIONS_DLL})
+endif()
+
+if(NOT CMAKE_SHARED_LIBRARY_CXX_FLAGS)
+ set(CMAKE_SHARED_LIBRARY_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS)
+ set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS})
+endif()
+
+if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG)
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG})
+endif()
+
+if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP)
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP})
+endif()
+
+if(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_CXX_FLAG)
+ set(CMAKE_SHARED_LIBRARY_RPATH_LINK_CXX_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_EXE_EXPORTS_CXX_FLAG)
+ set(CMAKE_EXE_EXPORTS_CXX_FLAG ${CMAKE_EXE_EXPORTS_C_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG)
+ set(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG ${CMAKE_SHARED_LIBRARY_SONAME_C_FLAG})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG)
+ set(CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG_SEP)
+ set(CMAKE_EXECUTABLE_RUNTIME_CXX_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RPATH_LINK_CXX_FLAG)
+ set(CMAKE_EXECUTABLE_RPATH_LINK_CXX_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_CXX_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_CXX_WITH_RUNTIME_PATH)
+ set(CMAKE_SHARED_LIBRARY_LINK_CXX_WITH_RUNTIME_PATH ${CMAKE_SHARED_LIBRARY_LINK_C_WITH_RUNTIME_PATH})
+endif()
+
+if(NOT CMAKE_INCLUDE_FLAG_CXX)
+ set(CMAKE_INCLUDE_FLAG_CXX ${CMAKE_INCLUDE_FLAG_C})
+endif()
+
+# for most systems a module is the same as a shared library
+# so unless the variable CMAKE_MODULE_EXISTS is set just
+# copy the values from the LIBRARY variables
+if(NOT CMAKE_MODULE_EXISTS)
+ set(CMAKE_SHARED_MODULE_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS})
+ set(CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS})
+endif()
+
+# repeat for modules
+if(NOT CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS)
+ set(CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS ${CMAKE_SHARED_MODULE_CREATE_C_FLAGS})
+endif()
+
+if(NOT CMAKE_SHARED_MODULE_CXX_FLAGS)
+ set(CMAKE_SHARED_MODULE_CXX_FLAGS ${CMAKE_SHARED_MODULE_C_FLAGS})
+endif()
+
+# Initialize CXX link type selection flags from C versions.
+foreach(type SHARED_LIBRARY SHARED_MODULE EXE)
+ if(NOT CMAKE_${type}_LINK_STATIC_CXX_FLAGS)
+ set(CMAKE_${type}_LINK_STATIC_CXX_FLAGS
+ ${CMAKE_${type}_LINK_STATIC_C_FLAGS})
+ endif()
+ if(NOT CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS)
+ set(CMAKE_${type}_LINK_DYNAMIC_CXX_FLAGS
+ ${CMAKE_${type}_LINK_DYNAMIC_C_FLAGS})
+ endif()
+endforeach()
+
+# add the flags to the cache based
+# on the initial values computed in the platform/*.cmake files
+# use _INIT variables so that this only happens the first time
+# and you can set these flags in the cmake cache
+set(CMAKE_CXX_FLAGS_INIT "$ENV{CXXFLAGS} ${CMAKE_CXX_FLAGS_INIT}")
+
+cmake_initialize_per_config_variable(CMAKE_CXX_FLAGS "Flags used by the CXX compiler")
+
+if(CMAKE_CXX_STANDARD_LIBRARIES_INIT)
+ set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES_INIT}"
+ CACHE STRING "Libraries linked by default with all C++ applications.")
+ mark_as_advanced(CMAKE_CXX_STANDARD_LIBRARIES)
+endif()
+
+if(NOT CMAKE_CXX_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_CXX_COMPILER_LAUNCHER})
+ set(CMAKE_CXX_COMPILER_LAUNCHER "$ENV{CMAKE_CXX_COMPILER_LAUNCHER}"
+ CACHE STRING "Compiler launcher for CXX.")
+endif()
+
+include(CMakeCommonLanguageInclude)
+
+# now define the following rules:
+# CMAKE_CXX_CREATE_SHARED_LIBRARY
+# CMAKE_CXX_CREATE_SHARED_MODULE
+# CMAKE_CXX_COMPILE_OBJECT
+# CMAKE_CXX_LINK_EXECUTABLE
+
+# variables supplied by the generator at use time
+# <TARGET>
+# <TARGET_BASE> the target without the suffix
+# <OBJECTS>
+# <OBJECT>
+# <LINK_LIBRARIES>
+# <FLAGS>
+# <LINK_FLAGS>
+
+# CXX compiler information
+# <CMAKE_CXX_COMPILER>
+# <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS>
+# <CMAKE_CXX_SHARED_MODULE_CREATE_FLAGS>
+# <CMAKE_CXX_LINK_FLAGS>
+
+# Static library tools
+# <CMAKE_AR>
+# <CMAKE_RANLIB>
+
+
+# create a shared C++ library
+if(NOT CMAKE_CXX_CREATE_SHARED_LIBRARY)
+ set(CMAKE_CXX_CREATE_SHARED_LIBRARY
+ "<CMAKE_CXX_COMPILER> <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
+endif()
+
+# create a c++ shared module copy the shared library rule by default
+if(NOT CMAKE_CXX_CREATE_SHARED_MODULE)
+ set(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_LIBRARY})
+endif()
+
+
+# Create a static archive incrementally for large object file counts.
+# If CMAKE_CXX_CREATE_STATIC_LIBRARY is set it will override these.
+if(NOT DEFINED CMAKE_CXX_ARCHIVE_CREATE)
+ set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
+endif()
+if(NOT DEFINED CMAKE_CXX_ARCHIVE_APPEND)
+ set(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
+endif()
+if(NOT DEFINED CMAKE_CXX_ARCHIVE_FINISH)
+ set(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
+endif()
+
+# compile a C++ file into an object file
+if(NOT CMAKE_CXX_COMPILE_OBJECT)
+ set(CMAKE_CXX_COMPILE_OBJECT
+ "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+endif()
+
+if(NOT CMAKE_CXX_LINK_EXECUTABLE)
+ set(CMAKE_CXX_LINK_EXECUTABLE
+ "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+endif()
+
+mark_as_advanced(
+CMAKE_VERBOSE_MAKEFILE
+)
+
+set(CMAKE_CXX_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.17/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake b/share/cmake-3.17/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
new file mode 100644
index 0000000..2dc75d6
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
@@ -0,0 +1,36 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# Do NOT include this module directly into any of your code. It is meant as
+# a library for Check*CompilerFlag.cmake modules. It's content may change in
+# any way between releases.
+
+macro (CHECK_COMPILER_FLAG_COMMON_PATTERNS _VAR)
+ set(${_VAR}
+ FAIL_REGEX "[Uu]nrecogni[sz]ed .*option" # GNU, NAG
+ FAIL_REGEX "switch .* is no longer supported" # GNU
+ FAIL_REGEX "unknown .*option" # Clang
+ FAIL_REGEX "optimization flag .* not supported" # Clang
+ FAIL_REGEX "unknown argument ignored" # Clang (cl)
+ FAIL_REGEX "ignoring unknown option" # MSVC, Intel
+ FAIL_REGEX "warning D9002" # MSVC, any lang
+ FAIL_REGEX "option.*not supported" # Intel
+ FAIL_REGEX "invalid argument .*option" # Intel
+ FAIL_REGEX "ignoring option .*argument required" # Intel
+ FAIL_REGEX "ignoring option .*argument is of wrong type" # Intel
+ FAIL_REGEX "[Uu]nknown option" # HP
+ FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro
+ FAIL_REGEX "command option .* is not recognized" # XL
+ FAIL_REGEX "command option .* contains an incorrect subargument" # XL
+ FAIL_REGEX "Option .* is not recognized. Option will be ignored." # XL
+ FAIL_REGEX "not supported in this configuration. ignored" # AIX
+ FAIL_REGEX "File with unknown suffix passed to linker" # PGI
+ FAIL_REGEX "[Uu]nknown switch" # PGI
+ FAIL_REGEX "WARNING: unknown flag:" # Open64
+ FAIL_REGEX "Incorrect command line option:" # Borland
+ FAIL_REGEX "Warning: illegal option" # SunStudio 12
+ FAIL_REGEX "[Ww]arning: Invalid suboption" # Fujitsu
+ FAIL_REGEX "An invalid option .* appears on the command line" # Cray
+ )
+endmacro ()
diff --git a/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake b/share/cmake-3.17/Modules/CMakeCommonLanguageInclude.cmake
index b043e18..b043e18 100644
--- a/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake
+++ b/share/cmake-3.17/Modules/CMakeCommonLanguageInclude.cmake
diff --git a/share/cmake-3.16/Modules/CMakeCompilerABI.h b/share/cmake-3.17/Modules/CMakeCompilerABI.h
index 45532af..45532af 100644
--- a/share/cmake-3.16/Modules/CMakeCompilerABI.h
+++ b/share/cmake-3.17/Modules/CMakeCompilerABI.h
diff --git a/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake b/share/cmake-3.17/Modules/CMakeCompilerIdDetection.cmake
index bb573b7..bb573b7 100644
--- a/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake
+++ b/share/cmake-3.17/Modules/CMakeCompilerIdDetection.cmake
diff --git a/share/cmake-3.16/Modules/CMakeConfigurableFile.in b/share/cmake-3.17/Modules/CMakeConfigurableFile.in
index df2c382..df2c382 100644
--- a/share/cmake-3.16/Modules/CMakeConfigurableFile.in
+++ b/share/cmake-3.17/Modules/CMakeConfigurableFile.in
diff --git a/share/cmake-3.16/Modules/CMakeDependentOption.cmake b/share/cmake-3.17/Modules/CMakeDependentOption.cmake
index 99d5070..99d5070 100644
--- a/share/cmake-3.16/Modules/CMakeDependentOption.cmake
+++ b/share/cmake-3.17/Modules/CMakeDependentOption.cmake
diff --git a/share/cmake-3.16/Modules/CMakeDetermineASM-ATTCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineASM-ATTCompiler.cmake
index a2efb6a..a2efb6a 100644
--- a/share/cmake-3.16/Modules/CMakeDetermineASM-ATTCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeDetermineASM-ATTCompiler.cmake
diff --git a/share/cmake-3.16/Modules/CMakeDetermineASMCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineASMCompiler.cmake
index e47f3a4..e47f3a4 100644
--- a/share/cmake-3.16/Modules/CMakeDetermineASMCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeDetermineASMCompiler.cmake
diff --git a/share/cmake-3.16/Modules/CMakeDetermineASM_MASMCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineASM_MASMCompiler.cmake
index 80188fb..80188fb 100644
--- a/share/cmake-3.16/Modules/CMakeDetermineASM_MASMCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeDetermineASM_MASMCompiler.cmake
diff --git a/share/cmake-3.16/Modules/CMakeDetermineASM_NASMCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineASM_NASMCompiler.cmake
index dd75310..dd75310 100644
--- a/share/cmake-3.16/Modules/CMakeDetermineASM_NASMCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeDetermineASM_NASMCompiler.cmake
diff --git a/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineCCompiler.cmake
index 037c33b..037c33b 100644
--- a/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeDetermineCCompiler.cmake
diff --git a/share/cmake-3.16/Modules/CMakeDetermineCSharpCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineCSharpCompiler.cmake
index da860a8..da860a8 100644
--- a/share/cmake-3.16/Modules/CMakeDetermineCSharpCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeDetermineCSharpCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCUDACompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineCUDACompiler.cmake
new file mode 100644
index 0000000..7d7fb9a
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeDetermineCUDACompiler.cmake
@@ -0,0 +1,224 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
+include(${CMAKE_ROOT}/Modules//CMakeParseImplicitLinkInfo.cmake)
+
+if( NOT ( ("${CMAKE_GENERATOR}" MATCHES "Make") OR
+ ("${CMAKE_GENERATOR}" MATCHES "Ninja") OR
+ ("${CMAKE_GENERATOR}" MATCHES "Visual Studio (1|[9][0-9])") ) )
+ message(FATAL_ERROR "CUDA language not currently supported by \"${CMAKE_GENERATOR}\" generator")
+endif()
+
+if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
+else()
+ if(NOT CMAKE_CUDA_COMPILER)
+ set(CMAKE_CUDA_COMPILER_INIT NOTFOUND)
+
+ # prefer the environment variable CUDACXX
+ if(NOT $ENV{CUDACXX} STREQUAL "")
+ get_filename_component(CMAKE_CUDA_COMPILER_INIT $ENV{CUDACXX} PROGRAM PROGRAM_ARGS CMAKE_CUDA_FLAGS_ENV_INIT)
+ if(CMAKE_CUDA_FLAGS_ENV_INIT)
+ set(CMAKE_CUDA_COMPILER_ARG1 "${CMAKE_CUDA_FLAGS_ENV_INIT}" CACHE STRING "First argument to CXX compiler")
+ endif()
+ if(NOT EXISTS ${CMAKE_CUDA_COMPILER_INIT})
+ message(FATAL_ERROR "Could not find compiler set in environment variable CUDACXX:\n$ENV{CUDACXX}.\n${CMAKE_CUDA_COMPILER_INIT}")
+ endif()
+ endif()
+
+ # finally list compilers to try
+ if(NOT CMAKE_CUDA_COMPILER_INIT)
+ set(CMAKE_CUDA_COMPILER_LIST nvcc)
+ endif()
+
+ _cmake_find_compiler(CUDA)
+ else()
+ _cmake_find_compiler_path(CUDA)
+ endif()
+
+ mark_as_advanced(CMAKE_CUDA_COMPILER)
+endif()
+
+#Allow the user to specify a host compiler
+if(NOT $ENV{CUDAHOSTCXX} STREQUAL "")
+ get_filename_component(CMAKE_CUDA_HOST_COMPILER $ENV{CUDAHOSTCXX} PROGRAM)
+ if(NOT EXISTS ${CMAKE_CUDA_HOST_COMPILER})
+ message(FATAL_ERROR "Could not find compiler set in environment variable CUDAHOSTCXX:\n$ENV{CUDAHOSTCXX}.\n${CMAKE_CUDA_HOST_COMPILER}")
+ endif()
+endif()
+
+# Build a small source file to identify the compiler.
+if(NOT CMAKE_CUDA_COMPILER_ID_RUN)
+ set(CMAKE_CUDA_COMPILER_ID_RUN 1)
+
+ # Try to identify the compiler.
+ set(CMAKE_CUDA_COMPILER_ID)
+ set(CMAKE_CUDA_PLATFORM_ID)
+ file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
+ CMAKE_CUDA_COMPILER_ID_PLATFORM_CONTENT)
+
+ list(APPEND CMAKE_CUDA_COMPILER_ID_MATCH_VENDORS NVIDIA)
+ set(CMAKE_CUDA_COMPILER_ID_MATCH_VENDOR_REGEX_NVIDIA "nvcc: NVIDIA \(R\) Cuda compiler driver")
+
+ set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdCUDA/(\\./)?(CompilerIdCUDA.xctest/)?CompilerIdCUDA[ \t\n\\\"]")
+ set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_INDEX 2)
+
+ set(CMAKE_CUDA_COMPILER_ID_FLAGS_ALWAYS -v --keep --keep-dir tmp)
+ if(CMAKE_CUDA_HOST_COMPILER)
+ list(APPEND CMAKE_CUDA_COMPILER_ID_FLAGS_ALWAYS "-ccbin=${CMAKE_CUDA_HOST_COMPILER}")
+ endif()
+
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
+ CMAKE_DETERMINE_COMPILER_ID(CUDA CUDAFLAGS CMakeCUDACompilerId.cu)
+endif()
+
+set(_CMAKE_PROCESSING_LANGUAGE "CUDA")
+include(CMakeFindBinUtils)
+unset(_CMAKE_PROCESSING_LANGUAGE)
+
+if(MSVC_CUDA_ARCHITECTURE_ID)
+ set(SET_MSVC_CUDA_ARCHITECTURE_ID
+ "set(MSVC_CUDA_ARCHITECTURE_ID ${MSVC_CUDA_ARCHITECTURE_ID})")
+endif()
+
+if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
+ set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${CMAKE_LINKER}")
+ set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "")
+ set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "")
+ set(CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
+elseif(CMAKE_CUDA_COMPILER_ID STREQUAL NVIDIA)
+ set(_nvcc_log "")
+ string(REPLACE "\r" "" _nvcc_output_orig "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
+ if(_nvcc_output_orig MATCHES "#\\\$ +PATH= *([^\n]*)\n")
+ set(_nvcc_path "${CMAKE_MATCH_1}")
+ string(APPEND _nvcc_log " found 'PATH=' string: [${_nvcc_path}]\n")
+ string(REPLACE ":" ";" _nvcc_path "${_nvcc_path}")
+ else()
+ set(_nvcc_path "")
+ string(REPLACE "\n" "\n " _nvcc_output_log "\n${_nvcc_output_orig}")
+ string(APPEND _nvcc_log " no 'PATH=' string found in nvcc output:${_nvcc_output_log}\n")
+ endif()
+ if(_nvcc_output_orig MATCHES "#\\\$ +LIBRARIES= *([^\n]*)\n")
+ set(_nvcc_libraries "${CMAKE_MATCH_1}")
+ string(APPEND _nvcc_log " found 'LIBRARIES=' string: [${_nvcc_libraries}]\n")
+ else()
+ set(_nvcc_libraries "")
+ string(REPLACE "\n" "\n " _nvcc_output_log "\n${_nvcc_output_orig}")
+ string(APPEND _nvcc_log " no 'LIBRARIES=' string found in nvcc output:${_nvcc_output_log}\n")
+ endif()
+
+ set(_nvcc_link_line "")
+ if(_nvcc_libraries)
+ # Remove variable assignments.
+ string(REGEX REPLACE "#\\\$ *[^= ]+=[^\n]*\n" "" _nvcc_output "${_nvcc_output_orig}")
+ # Encode [] characters that break list expansion.
+ string(REPLACE "[" "{==={" _nvcc_output "${_nvcc_output}")
+ string(REPLACE "]" "}===}" _nvcc_output "${_nvcc_output}")
+ # Split lines.
+ string(REGEX REPLACE "\n+(#\\\$ )?" ";" _nvcc_output "${_nvcc_output}")
+ foreach(line IN LISTS _nvcc_output)
+ set(_nvcc_output_line "${line}")
+ string(REPLACE "{==={" "[" _nvcc_output_line "${_nvcc_output_line}")
+ string(REPLACE "}===}" "]" _nvcc_output_line "${_nvcc_output_line}")
+ string(APPEND _nvcc_log " considering line: [${_nvcc_output_line}]\n")
+ if("${_nvcc_output_line}" MATCHES "^ *nvlink")
+ string(APPEND _nvcc_log " ignoring nvlink line\n")
+ elseif(_nvcc_libraries)
+ if("${_nvcc_output_line}" MATCHES "(@\"?tmp/a\\.exe\\.res\"?)")
+ set(_nvcc_link_res_arg "${CMAKE_MATCH_1}")
+ set(_nvcc_link_res "${CMAKE_PLATFORM_INFO_DIR}/CompilerIdCUDA/tmp/a.exe.res")
+ if(EXISTS "${_nvcc_link_res}")
+ file(READ "${_nvcc_link_res}" _nvcc_link_res_content)
+ string(REPLACE "${_nvcc_link_res_arg}" "${_nvcc_link_res_content}" _nvcc_output_line "${_nvcc_output_line}")
+ endif()
+ endif()
+ string(FIND "${_nvcc_output_line}" "${_nvcc_libraries}" _nvcc_libraries_pos)
+ if(NOT _nvcc_libraries_pos EQUAL -1)
+ set(_nvcc_link_line "${_nvcc_output_line}")
+ string(APPEND _nvcc_log " extracted link line: [${_nvcc_link_line}]\n")
+ endif()
+ endif()
+ endforeach()
+ endif()
+
+ if(_nvcc_link_line)
+ if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
+ set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${CMAKE_LINKER}")
+ else()
+ #extract the compiler that is being used for linking
+ separate_arguments(_nvcc_link_line_args UNIX_COMMAND "${_nvcc_link_line}")
+ list(GET _nvcc_link_line_args 0 _nvcc_host_link_launcher)
+ if(IS_ABSOLUTE "${_nvcc_host_link_launcher}")
+ string(APPEND _nvcc_log " extracted link launcher absolute path: [${_nvcc_host_link_launcher}]\n")
+ set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${_nvcc_host_link_launcher}")
+ else()
+ string(APPEND _nvcc_log " extracted link launcher name: [${_nvcc_host_link_launcher}]\n")
+ find_program(_nvcc_find_host_link_launcher
+ NAMES ${_nvcc_host_link_launcher}
+ PATHS ${_nvcc_path} NO_DEFAULT_PATH)
+ find_program(_nvcc_find_host_link_launcher
+ NAMES ${_nvcc_host_link_launcher})
+ if(_nvcc_find_host_link_launcher)
+ string(APPEND _nvcc_log " found link launcher absolute path: [${_nvcc_find_host_link_launcher}]\n")
+ set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${_nvcc_find_host_link_launcher}")
+ else()
+ string(APPEND _nvcc_log " could not find link launcher absolute path\n")
+ set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${_nvcc_host_link_launcher}")
+ endif()
+ unset(_nvcc_find_host_link_launcher CACHE)
+ endif()
+ endif()
+
+ #prefix the line with cuda-fake-ld so that implicit link info believes it is
+ #a link line
+ set(_nvcc_link_line "cuda-fake-ld ${_nvcc_link_line}")
+ CMAKE_PARSE_IMPLICIT_LINK_INFO("${_nvcc_link_line}"
+ CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES
+ CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES
+ CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ log
+ "${CMAKE_CUDA_IMPLICIT_OBJECT_REGEX}")
+
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Parsed CUDA nvcc implicit link information from above output:\n${_nvcc_log}\n${log}\n\n")
+ else()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Failed to parsed CUDA nvcc implicit link information:\n${_nvcc_log}\n\n")
+ message(FATAL_ERROR "Failed to extract nvcc implicit link line.")
+ endif()
+endif()
+
+set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES )
+string(REPLACE "\r" "" _nvcc_output_orig "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
+if(_nvcc_output_orig MATCHES "#\\\$ +INCLUDES= *([^\n]*)\n")
+ set(_nvcc_includes "${CMAKE_MATCH_1}")
+ string(APPEND _nvcc_log " found 'INCLUDES=' string: [${_nvcc_includes}]\n")
+else()
+ set(_nvcc_includes "")
+ string(REPLACE "\n" "\n " _nvcc_output_log "\n${_nvcc_output_orig}")
+ string(APPEND _nvcc_log " no 'INCLUDES=' string found in nvcc output:${_nvcc_output_log}\n")
+endif()
+if(_nvcc_includes)
+ # across all operating system each include directory is prefixed with -I
+ separate_arguments(_nvcc_output NATIVE_COMMAND "${_nvcc_includes}")
+ foreach(line IN LISTS _nvcc_output)
+ string(REGEX REPLACE "^-I" "" line "${line}")
+ get_filename_component(line "${line}" ABSOLUTE)
+ list(APPEND CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "${line}")
+ endforeach()
+
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Parsed CUDA nvcc include information from above output:\n${_nvcc_log}\n${log}\n\n")
+else()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Failed to detect CUDA nvcc include information:\n${_nvcc_log}\n\n")
+endif()
+
+# configure all variables set in this file
+configure_file(${CMAKE_ROOT}/Modules/CMakeCUDACompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeCUDACompiler.cmake
+ @ONLY
+ )
+
+set(CMAKE_CUDA_COMPILER_ENV_VAR "CUDACXX")
+set(CMAKE_CUDA_HOST_COMPILER_ENV_VAR "CUDAHOSTCXX")
diff --git a/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineCXXCompiler.cmake
index 7274eec..7274eec 100644
--- a/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeDetermineCXXCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCompileFeatures.cmake b/share/cmake-3.17/Modules/CMakeDetermineCompileFeatures.cmake
new file mode 100644
index 0000000..b50e5f1
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeDetermineCompileFeatures.cmake
@@ -0,0 +1,147 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+function(cmake_determine_compile_features lang)
+
+ if(lang STREQUAL C AND COMMAND cmake_record_c_compile_features)
+ message(CHECK_START "Detecting ${lang} compile features")
+
+ set(CMAKE_C90_COMPILE_FEATURES)
+ set(CMAKE_C99_COMPILE_FEATURES)
+ set(CMAKE_C11_COMPILE_FEATURES)
+
+ include("${CMAKE_ROOT}/Modules/Internal/FeatureTesting.cmake")
+
+ cmake_record_c_compile_features()
+
+ if(NOT _result EQUAL 0)
+ message(CHECK_FAIL "failed")
+ return()
+ endif()
+
+ if (CMAKE_C99_COMPILE_FEATURES AND CMAKE_C11_COMPILE_FEATURES)
+ list(REMOVE_ITEM CMAKE_C11_COMPILE_FEATURES ${CMAKE_C99_COMPILE_FEATURES})
+ endif()
+ if (CMAKE_C90_COMPILE_FEATURES AND CMAKE_C99_COMPILE_FEATURES)
+ list(REMOVE_ITEM CMAKE_C99_COMPILE_FEATURES ${CMAKE_C90_COMPILE_FEATURES})
+ endif()
+
+ if(NOT CMAKE_C_COMPILE_FEATURES)
+ set(CMAKE_C_COMPILE_FEATURES
+ ${CMAKE_C90_COMPILE_FEATURES}
+ ${CMAKE_C99_COMPILE_FEATURES}
+ ${CMAKE_C11_COMPILE_FEATURES}
+ )
+ endif()
+
+ set(CMAKE_C_COMPILE_FEATURES ${CMAKE_C_COMPILE_FEATURES} PARENT_SCOPE)
+ set(CMAKE_C90_COMPILE_FEATURES ${CMAKE_C90_COMPILE_FEATURES} PARENT_SCOPE)
+ set(CMAKE_C99_COMPILE_FEATURES ${CMAKE_C99_COMPILE_FEATURES} PARENT_SCOPE)
+ set(CMAKE_C11_COMPILE_FEATURES ${CMAKE_C11_COMPILE_FEATURES} PARENT_SCOPE)
+
+ message(CHECK_PASS "done")
+
+ elseif(lang STREQUAL CXX AND COMMAND cmake_record_cxx_compile_features)
+ message(CHECK_START "Detecting ${lang} compile features")
+
+ set(CMAKE_CXX98_COMPILE_FEATURES)
+ set(CMAKE_CXX11_COMPILE_FEATURES)
+ set(CMAKE_CXX14_COMPILE_FEATURES)
+ set(CMAKE_CXX17_COMPILE_FEATURES)
+ set(CMAKE_CXX20_COMPILE_FEATURES)
+
+ include("${CMAKE_ROOT}/Modules/Internal/FeatureTesting.cmake")
+
+ cmake_record_cxx_compile_features()
+
+ if(NOT _result EQUAL 0)
+ message(CHECK_FAIL "failed")
+ return()
+ endif()
+
+ if (CMAKE_CXX17_COMPILE_FEATURES AND CMAKE_CXX20_COMPILE_FEATURES)
+ list(REMOVE_ITEM CMAKE_CXX20_COMPILE_FEATURES ${CMAKE_CXX17_COMPILE_FEATURES})
+ endif()
+ if (CMAKE_CXX14_COMPILE_FEATURES AND CMAKE_CXX17_COMPILE_FEATURES)
+ list(REMOVE_ITEM CMAKE_CXX17_COMPILE_FEATURES ${CMAKE_CXX14_COMPILE_FEATURES})
+ endif()
+ if (CMAKE_CXX11_COMPILE_FEATURES AND CMAKE_CXX14_COMPILE_FEATURES)
+ list(REMOVE_ITEM CMAKE_CXX14_COMPILE_FEATURES ${CMAKE_CXX11_COMPILE_FEATURES})
+ endif()
+ if (CMAKE_CXX98_COMPILE_FEATURES AND CMAKE_CXX11_COMPILE_FEATURES)
+ list(REMOVE_ITEM CMAKE_CXX11_COMPILE_FEATURES ${CMAKE_CXX98_COMPILE_FEATURES})
+ endif()
+
+ if(NOT CMAKE_CXX_COMPILE_FEATURES)
+ set(CMAKE_CXX_COMPILE_FEATURES
+ ${CMAKE_CXX98_COMPILE_FEATURES}
+ ${CMAKE_CXX11_COMPILE_FEATURES}
+ ${CMAKE_CXX14_COMPILE_FEATURES}
+ ${CMAKE_CXX17_COMPILE_FEATURES}
+ ${CMAKE_CXX20_COMPILE_FEATURES}
+ )
+ endif()
+
+ set(CMAKE_CXX_COMPILE_FEATURES ${CMAKE_CXX_COMPILE_FEATURES} PARENT_SCOPE)
+ set(CMAKE_CXX98_COMPILE_FEATURES ${CMAKE_CXX98_COMPILE_FEATURES} PARENT_SCOPE)
+ set(CMAKE_CXX11_COMPILE_FEATURES ${CMAKE_CXX11_COMPILE_FEATURES} PARENT_SCOPE)
+ set(CMAKE_CXX14_COMPILE_FEATURES ${CMAKE_CXX14_COMPILE_FEATURES} PARENT_SCOPE)
+ set(CMAKE_CXX17_COMPILE_FEATURES ${CMAKE_CXX17_COMPILE_FEATURES} PARENT_SCOPE)
+ set(CMAKE_CXX20_COMPILE_FEATURES ${CMAKE_CXX20_COMPILE_FEATURES} PARENT_SCOPE)
+
+ message(CHECK_PASS "done")
+
+ elseif(lang STREQUAL CUDA AND COMMAND cmake_record_cuda_compile_features)
+ message(CHECK_START "Detecting ${lang} compile features")
+
+ set(CMAKE_CUDA03_COMPILE_FEATURES)
+ set(CMAKE_CUDA11_COMPILE_FEATURES)
+ set(CMAKE_CUDA14_COMPILE_FEATURES)
+ set(CMAKE_CUDA17_COMPILE_FEATURES)
+ set(CMAKE_CUDA20_COMPILE_FEATURES)
+
+ include("${CMAKE_ROOT}/Modules/Internal/FeatureTesting.cmake")
+
+ cmake_record_cuda_compile_features()
+
+ if(NOT _result EQUAL 0)
+ message(CHECK_FAIL "failed")
+ return()
+ endif()
+
+ if (CMAKE_CUDA17_COMPILE_FEATURES AND CMAKE_CUDA20_COMPILE_FEATURES)
+ list(REMOVE_ITEM CMAKE_CUDA20_COMPILE_FEATURES ${CMAKE_CUDA17_COMPILE_FEATURES})
+ endif()
+ if (CMAKE_CUDA14_COMPILE_FEATURES AND CMAKE_CUDA17_COMPILE_FEATURES)
+ list(REMOVE_ITEM CMAKE_CUDA17_COMPILE_FEATURES ${CMAKE_CUDA14_COMPILE_FEATURES})
+ endif()
+ if (CMAKE_CUDA11_COMPILE_FEATURES AND CMAKE_CUDA14_COMPILE_FEATURES)
+ list(REMOVE_ITEM CMAKE_CUDA14_COMPILE_FEATURES ${CMAKE_CUDA11_COMPILE_FEATURES})
+ endif()
+ if (CMAKE_CUDA03_COMPILE_FEATURES AND CMAKE_CUDA11_COMPILE_FEATURES)
+ list(REMOVE_ITEM CMAKE_CUDA11_COMPILE_FEATURES ${CMAKE_CUDA03_COMPILE_FEATURES})
+ endif()
+
+ if(NOT CMAKE_CUDA_COMPILE_FEATURES)
+ set(CMAKE_CUDA_COMPILE_FEATURES
+ ${CMAKE_CUDA03_COMPILE_FEATURES}
+ ${CMAKE_CUDA11_COMPILE_FEATURES}
+ ${CMAKE_CUDA14_COMPILE_FEATURES}
+ ${CMAKE_CUDA17_COMPILE_FEATURES}
+ ${CMAKE_CUDA20_COMPILE_FEATURES}
+ )
+ endif()
+
+ set(CMAKE_CUDA_COMPILE_FEATURES ${CMAKE_CUDA_COMPILE_FEATURES} PARENT_SCOPE)
+ set(CMAKE_CUDA03_COMPILE_FEATURES ${CMAKE_CUDA03_COMPILE_FEATURES} PARENT_SCOPE)
+ set(CMAKE_CUDA11_COMPILE_FEATURES ${CMAKE_CUDA11_COMPILE_FEATURES} PARENT_SCOPE)
+ set(CMAKE_CUDA14_COMPILE_FEATURES ${CMAKE_CUDA14_COMPILE_FEATURES} PARENT_SCOPE)
+ set(CMAKE_CUDA17_COMPILE_FEATURES ${CMAKE_CUDA17_COMPILE_FEATURES} PARENT_SCOPE)
+ set(CMAKE_CUDA20_COMPILE_FEATURES ${CMAKE_CUDA20_COMPILE_FEATURES} PARENT_SCOPE)
+
+ message(CHECK_PASS "done")
+
+ endif()
+
+endfunction()
diff --git a/share/cmake-3.16/Modules/CMakeDetermineCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineCompiler.cmake
index c37adae..c37adae 100644
--- a/share/cmake-3.16/Modules/CMakeDetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeDetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCompilerABI.cmake b/share/cmake-3.17/Modules/CMakeDetermineCompilerABI.cmake
new file mode 100644
index 0000000..e1b3c52
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeDetermineCompilerABI.cmake
@@ -0,0 +1,187 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# Function to compile a source file to identify the compiler ABI.
+# This is used internally by CMake and should not be included by user
+# code.
+
+include(${CMAKE_ROOT}/Modules/CMakeParseImplicitIncludeInfo.cmake)
+include(${CMAKE_ROOT}/Modules/CMakeParseImplicitLinkInfo.cmake)
+include(CMakeTestCompilerCommon)
+
+function(CMAKE_DETERMINE_COMPILER_ABI lang src)
+ if(NOT DEFINED CMAKE_${lang}_ABI_COMPILED)
+ message(CHECK_START "Detecting ${lang} compiler ABI info")
+
+ # Compile the ABI identification source.
+ set(BIN "${CMAKE_PLATFORM_INFO_DIR}/CMakeDetermineCompilerABI_${lang}.bin")
+ set(CMAKE_FLAGS )
+ set(COMPILE_DEFINITIONS )
+ if(DEFINED CMAKE_${lang}_VERBOSE_FLAG)
+ set(CMAKE_FLAGS "-DEXE_LINKER_FLAGS=${CMAKE_${lang}_VERBOSE_FLAG}")
+ set(COMPILE_DEFINITIONS "${CMAKE_${lang}_VERBOSE_FLAG}")
+ endif()
+ if(DEFINED CMAKE_${lang}_VERBOSE_COMPILE_FLAG)
+ set(COMPILE_DEFINITIONS "${CMAKE_${lang}_VERBOSE_COMPILE_FLAG}")
+ endif()
+ if(NOT "x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xMSVC")
+ # Avoid adding our own platform standard libraries for compilers
+ # from which we might detect implicit link libraries.
+ list(APPEND CMAKE_FLAGS "-DCMAKE_${lang}_STANDARD_LIBRARIES=")
+ endif()
+ __TestCompiler_setTryCompileTargetType()
+
+ # Avoid failing ABI detection on warnings.
+ string(REGEX REPLACE "(^| )-Werror(=[^ ]*)?( |$)" " " CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS}")
+
+ # Save the current LC_ALL, LC_MESSAGES, and LANG environment variables
+ # and set them to "C" that way GCC's "search starts here" text is in
+ # English and we can grok it.
+ set(_orig_lc_all $ENV{LC_ALL})
+ set(_orig_lc_messages $ENV{LC_MESSAGES})
+ set(_orig_lang $ENV{LANG})
+ set(ENV{LC_ALL} C)
+ set(ENV{LC_MESSAGES} C)
+ set(ENV{LANG} C)
+
+ try_compile(CMAKE_${lang}_ABI_COMPILED
+ ${CMAKE_BINARY_DIR} ${src}
+ CMAKE_FLAGS ${CMAKE_FLAGS}
+ # Ignore unused flags when we are just determining the ABI.
+ "--no-warn-unused-cli"
+ COMPILE_DEFINITIONS ${COMPILE_DEFINITIONS}
+ OUTPUT_VARIABLE OUTPUT
+ COPY_FILE "${BIN}"
+ COPY_FILE_ERROR _copy_error
+ __CMAKE_INTERNAL ABI
+ )
+
+ # Restore original LC_ALL, LC_MESSAGES, and LANG
+ set(ENV{LC_ALL} ${_orig_lc_all})
+ set(ENV{LC_MESSAGES} ${_orig_lc_messages})
+ set(ENV{LANG} ${_orig_lang})
+
+ # Move result from cache to normal variable.
+ set(CMAKE_${lang}_ABI_COMPILED ${CMAKE_${lang}_ABI_COMPILED})
+ unset(CMAKE_${lang}_ABI_COMPILED CACHE)
+ set(CMAKE_${lang}_ABI_COMPILED ${CMAKE_${lang}_ABI_COMPILED} PARENT_SCOPE)
+
+ # Load the resulting information strings.
+ if(CMAKE_${lang}_ABI_COMPILED AND NOT _copy_error)
+ message(CHECK_PASS "done")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Detecting ${lang} compiler ABI info compiled with the following output:\n${OUTPUT}\n\n")
+ file(STRINGS "${BIN}" ABI_STRINGS LIMIT_COUNT 2 REGEX "INFO:[A-Za-z0-9_]+\\[[^]]*\\]")
+ foreach(info ${ABI_STRINGS})
+ if("${info}" MATCHES "INFO:sizeof_dptr\\[0*([^]]*)\\]")
+ set(ABI_SIZEOF_DPTR "${CMAKE_MATCH_1}")
+ endif()
+ if("${info}" MATCHES "INFO:abi\\[([^]]*)\\]")
+ set(ABI_NAME "${CMAKE_MATCH_1}")
+ endif()
+ endforeach()
+
+ if(ABI_SIZEOF_DPTR)
+ set(CMAKE_${lang}_SIZEOF_DATA_PTR "${ABI_SIZEOF_DPTR}" PARENT_SCOPE)
+ elseif(CMAKE_${lang}_SIZEOF_DATA_PTR_DEFAULT)
+ set(CMAKE_${lang}_SIZEOF_DATA_PTR "${CMAKE_${lang}_SIZEOF_DATA_PTR_DEFAULT}" PARENT_SCOPE)
+ endif()
+
+ if(ABI_NAME)
+ set(CMAKE_${lang}_COMPILER_ABI "${ABI_NAME}" PARENT_SCOPE)
+ endif()
+
+ # Parse implicit include directory for this language, if available.
+ if(CMAKE_${lang}_VERBOSE_FLAG)
+ set (implicit_incdirs "")
+ cmake_parse_implicit_include_info("${OUTPUT}" "${lang}"
+ implicit_incdirs log rv)
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Parsed ${lang} implicit include dir info from above output: rv=${rv}\n${log}\n\n")
+ if("${rv}" STREQUAL "done")
+ # Entries that we have been told to explicitly pass as standard include
+ # directories will not be implicitly added by the compiler.
+ if(CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES)
+ list(REMOVE_ITEM implicit_incdirs ${CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES})
+ endif()
+
+ # We parsed implicit include directories, so override the default initializer.
+ set(_CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT "${implicit_incdirs}")
+ endif()
+ endif()
+ set(CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES "${_CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT}" PARENT_SCOPE)
+
+ # Parse implicit linker information for this language, if available.
+ set(implicit_dirs "")
+ set(implicit_libs "")
+ set(implicit_fwks "")
+ if(CMAKE_${lang}_VERBOSE_FLAG)
+ CMAKE_PARSE_IMPLICIT_LINK_INFO("${OUTPUT}" implicit_libs implicit_dirs implicit_fwks log
+ "${CMAKE_${lang}_IMPLICIT_OBJECT_REGEX}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Parsed ${lang} implicit link information from above output:\n${log}\n\n")
+ endif()
+ # for VS IDE Intel Fortran we have to figure out the
+ # implicit link path for the fortran run time using
+ # a try-compile
+ if("${lang}" MATCHES "Fortran"
+ AND "${CMAKE_GENERATOR}" MATCHES "Visual Studio")
+ message(CHECK_START "Determine Intel Fortran Compiler Implicit Link Path")
+ # Build a sample project which reports symbols.
+ try_compile(IFORT_LIB_PATH_COMPILED
+ ${CMAKE_BINARY_DIR}/CMakeFiles/IntelVSImplicitPath
+ ${CMAKE_ROOT}/Modules/IntelVSImplicitPath
+ IntelFortranImplicit
+ CMAKE_FLAGS
+ "-DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}"
+ OUTPUT_VARIABLE _output)
+ file(WRITE
+ "${CMAKE_BINARY_DIR}/CMakeFiles/IntelVSImplicitPath/output.txt"
+ "${_output}")
+ include(${CMAKE_BINARY_DIR}/CMakeFiles/IntelVSImplicitPath/output.cmake OPTIONAL)
+ message(CHECK_PASS "done")
+ endif()
+
+ # Implicit link libraries cannot be used explicitly for multiple
+ # OS X architectures, so we skip it.
+ if(DEFINED CMAKE_OSX_ARCHITECTURES)
+ if("${CMAKE_OSX_ARCHITECTURES}" MATCHES ";")
+ set(implicit_libs "")
+ endif()
+ endif()
+
+ set(CMAKE_${lang}_IMPLICIT_LINK_LIBRARIES "${implicit_libs}" PARENT_SCOPE)
+ set(CMAKE_${lang}_IMPLICIT_LINK_DIRECTORIES "${implicit_dirs}" PARENT_SCOPE)
+ set(CMAKE_${lang}_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "${implicit_fwks}" PARENT_SCOPE)
+
+ # Detect library architecture directory name.
+ if(CMAKE_LIBRARY_ARCHITECTURE_REGEX)
+ foreach(dir ${implicit_dirs})
+ if("${dir}" MATCHES "/lib/${CMAKE_LIBRARY_ARCHITECTURE_REGEX}$")
+ get_filename_component(arch "${dir}" NAME)
+ set(CMAKE_${lang}_LIBRARY_ARCHITECTURE "${arch}" PARENT_SCOPE)
+ break()
+ endif()
+ endforeach()
+ elseif(CMAKE_CXX_COMPILER_ID STREQUAL QCC)
+ foreach(dir ${implicit_dirs})
+ if (dir MATCHES "/lib$")
+ get_filename_component(assumedArchDir "${dir}" DIRECTORY)
+ get_filename_component(archParentDir "${assumedArchDir}" DIRECTORY)
+ if (archParentDir STREQUAL CMAKE_SYSROOT)
+ get_filename_component(archDirName "${assumedArchDir}" NAME)
+ set(CMAKE_${lang}_LIBRARY_ARCHITECTURE "${archDirName}" PARENT_SCOPE)
+ break()
+ endif()
+ endif()
+ endforeach()
+ endif()
+
+ else()
+ message(CHECK_FAIL "failed")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Detecting ${lang} compiler ABI info failed to compile with the following output:\n${OUTPUT}\n${_copy_error}\n\n")
+ endif()
+ endif()
+endfunction()
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCompilerId.cmake b/share/cmake-3.17/Modules/CMakeDetermineCompilerId.cmake
new file mode 100644
index 0000000..d125791
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeDetermineCompilerId.cmake
@@ -0,0 +1,930 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# Function to compile a source file to identify the compiler. This is
+# used internally by CMake and should not be included by user code.
+# If successful, sets CMAKE_<lang>_COMPILER_ID and CMAKE_<lang>_PLATFORM_ID
+
+function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
+ # Make sure the compiler arguments are clean.
+ string(STRIP "${CMAKE_${lang}_COMPILER_ARG1}" CMAKE_${lang}_COMPILER_ID_ARG1)
+ string(REGEX REPLACE " +" ";" CMAKE_${lang}_COMPILER_ID_ARG1 "${CMAKE_${lang}_COMPILER_ID_ARG1}")
+
+ # Make sure user-specified compiler flags are used.
+ if(CMAKE_${lang}_FLAGS)
+ set(CMAKE_${lang}_COMPILER_ID_FLAGS ${CMAKE_${lang}_FLAGS})
+ else()
+ set(CMAKE_${lang}_COMPILER_ID_FLAGS $ENV{${flagvar}})
+ endif()
+ string(REPLACE " " ";" CMAKE_${lang}_COMPILER_ID_FLAGS_LIST "${CMAKE_${lang}_COMPILER_ID_FLAGS}")
+
+ # Compute the directory in which to run the test.
+ set(CMAKE_${lang}_COMPILER_ID_DIR ${CMAKE_PLATFORM_INFO_DIR}/CompilerId${lang})
+
+ # Try building with no extra flags and then try each set
+ # of helper flags. Stop when the compiler is identified.
+ foreach(userflags "${CMAKE_${lang}_COMPILER_ID_FLAGS_LIST}" "")
+ foreach(testflags ${CMAKE_${lang}_COMPILER_ID_TEST_FLAGS_FIRST}
+ ""
+ ${CMAKE_${lang}_COMPILER_ID_TEST_FLAGS})
+ separate_arguments(testflags UNIX_COMMAND "${testflags}")
+ CMAKE_DETERMINE_COMPILER_ID_BUILD("${lang}" "${testflags}" "${userflags}" "${src}")
+ CMAKE_DETERMINE_COMPILER_ID_MATCH_VENDOR("${lang}" "${COMPILER_${lang}_PRODUCED_OUTPUT}")
+ if(CMAKE_${lang}_COMPILER_ID)
+ break()
+ endif()
+ foreach(file ${COMPILER_${lang}_PRODUCED_FILES})
+ CMAKE_DETERMINE_COMPILER_ID_CHECK("${lang}" "${CMAKE_${lang}_COMPILER_ID_DIR}/${file}" "${src}")
+ endforeach()
+ if(CMAKE_${lang}_COMPILER_ID)
+ break()
+ endif()
+ endforeach()
+ if(CMAKE_${lang}_COMPILER_ID)
+ break()
+ endif()
+ endforeach()
+
+ # Check if compiler id detection gave us the compiler tool.
+ if(CMAKE_${lang}_COMPILER_ID_TOOL)
+ set(CMAKE_${lang}_COMPILER "${CMAKE_${lang}_COMPILER_ID_TOOL}")
+ set(CMAKE_${lang}_COMPILER "${CMAKE_${lang}_COMPILER_ID_TOOL}" PARENT_SCOPE)
+ elseif(NOT CMAKE_${lang}_COMPILER)
+ set(CMAKE_${lang}_COMPILER "CMAKE_${lang}_COMPILER-NOTFOUND" PARENT_SCOPE)
+ endif()
+
+ # If the compiler is still unknown, try to query its vendor.
+ if(CMAKE_${lang}_COMPILER AND NOT CMAKE_${lang}_COMPILER_ID)
+ foreach(userflags "${CMAKE_${lang}_COMPILER_ID_FLAGS_LIST}" "")
+ CMAKE_DETERMINE_COMPILER_ID_VENDOR(${lang} "${userflags}")
+ endforeach()
+ endif()
+
+ # If the compiler is still unknown, fallback to GHS
+ if(NOT CMAKE_${lang}_COMPILER_ID AND "${CMAKE_GENERATOR}" MATCHES "Green Hills MULTI")
+ set(CMAKE_${lang}_COMPILER_ID GHS)
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "The ${lang} compiler identification is falling back to GHS.\n\n")
+ endif()
+
+ # CUDA < 7.5 is missing version macros
+ if(lang STREQUAL "CUDA"
+ AND CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA"
+ AND NOT CMAKE_${lang}_COMPILER_VERSION)
+ execute_process(
+ COMMAND "${CMAKE_${lang}_COMPILER}"
+ --version
+ OUTPUT_VARIABLE output ERROR_VARIABLE output
+ RESULT_VARIABLE result
+ TIMEOUT 10
+ )
+ if(output MATCHES [=[ V([0-9]+)\.([0-9]+)\.([0-9]+)]=])
+ set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
+ endif()
+ endif()
+
+ # For Swift we need to explicitly query the version.
+ if(lang STREQUAL "Swift"
+ AND CMAKE_${lang}_COMPILER
+ AND NOT CMAKE_${lang}_COMPILER_VERSION)
+ execute_process(
+ COMMAND "${CMAKE_${lang}_COMPILER}"
+ -version
+ OUTPUT_VARIABLE output ERROR_VARIABLE output
+ RESULT_VARIABLE result
+ TIMEOUT 10
+ )
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Running the ${lang} compiler: \"${CMAKE_${lang}_COMPILER}\" -version\n"
+ "${output}\n"
+ )
+
+ if(output MATCHES [[Swift version ([0-9]+\.[0-9]+(\.[0-9]+)?)]])
+ set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_MATCH_1}")
+ if(NOT CMAKE_${lang}_COMPILER_ID)
+ set(CMAKE_Swift_COMPILER_ID "Apple")
+ endif()
+ endif()
+ endif()
+
+ if (COMPILER_QNXNTO AND CMAKE_${lang}_COMPILER_ID STREQUAL "GNU")
+ execute_process(
+ COMMAND "${CMAKE_${lang}_COMPILER}"
+ -V
+ OUTPUT_VARIABLE output ERROR_VARIABLE output
+ RESULT_VARIABLE result
+ TIMEOUT 10
+ )
+ if (output MATCHES "targets available")
+ set(CMAKE_${lang}_COMPILER_ID QCC)
+ # http://community.qnx.com/sf/discussion/do/listPosts/projects.community/discussion.qnx_momentics_community_support.topc3555?_pagenum=2
+ # The qcc driver does not itself have a version.
+ endif()
+ endif()
+
+ # if the format is unknown after all files have been checked, put "Unknown" in the cache
+ if(NOT CMAKE_EXECUTABLE_FORMAT)
+ set(CMAKE_EXECUTABLE_FORMAT "Unknown" CACHE INTERNAL "Executable file format")
+ endif()
+
+ if(CMAKE_GENERATOR STREQUAL "Ninja" AND MSVC_${lang}_ARCHITECTURE_ID)
+ foreach(userflags "${CMAKE_${lang}_COMPILER_ID_FLAGS_LIST}" "")
+ CMAKE_DETERMINE_MSVC_SHOWINCLUDES_PREFIX(${lang} "${userflags}")
+ endforeach()
+ else()
+ set(CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX "")
+ endif()
+
+ set(_variant "")
+ if("x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xClang")
+ if("x${CMAKE_${lang}_SIMULATE_ID}" STREQUAL "xMSVC")
+ if(CMAKE_GENERATOR MATCHES "Visual Studio")
+ set(CMAKE_${lang}_COMPILER_FRONTEND_VARIANT "MSVC")
+ else()
+ # Test whether an MSVC-like command-line option works.
+ execute_process(COMMAND "${CMAKE_${lang}_COMPILER}" -?
+ RESULT_VARIABLE _clang_result
+ OUTPUT_VARIABLE _clang_stdout
+ ERROR_VARIABLE _clang_stderr)
+ if(_clang_result EQUAL 0)
+ set(CMAKE_${lang}_COMPILER_FRONTEND_VARIANT "MSVC")
+ else()
+ set(CMAKE_${lang}_COMPILER_FRONTEND_VARIANT "GNU")
+ endif()
+ endif()
+ set(_variant " with ${CMAKE_${lang}_COMPILER_FRONTEND_VARIANT}-like command-line")
+ else()
+ set(CMAKE_${lang}_COMPILER_FRONTEND_VARIANT "GNU")
+ endif()
+ else()
+ set(CMAKE_${lang}_COMPILER_FRONTEND_VARIANT "")
+ endif()
+
+ # Display the final identification result.
+ if(CMAKE_${lang}_COMPILER_ID)
+ if(CMAKE_${lang}_COMPILER_VERSION)
+ set(_version " ${CMAKE_${lang}_COMPILER_VERSION}")
+ else()
+ set(_version "")
+ endif()
+ if(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID AND "x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xIAR")
+ set(_archid " ${CMAKE_${lang}_COMPILER_ARCHITECTURE_ID}")
+ else()
+ set(_archid "")
+ endif()
+ message(STATUS "The ${lang} compiler identification is "
+ "${CMAKE_${lang}_COMPILER_ID}${_archid}${_version}${_variant}")
+ unset(_archid)
+ unset(_version)
+ unset(_variant)
+ else()
+ message(STATUS "The ${lang} compiler identification is unknown")
+ endif()
+
+ if(lang STREQUAL "Fortran" AND CMAKE_${lang}_COMPILER_ID STREQUAL "XL")
+ set(CMAKE_${lang}_XL_CPP "${CMAKE_${lang}_COMPILER_ID_CPP}" PARENT_SCOPE)
+ endif()
+
+ set(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE)
+ set(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE)
+ set(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID "${CMAKE_${lang}_COMPILER_ARCHITECTURE_ID}" PARENT_SCOPE)
+ set(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}"
+ PARENT_SCOPE)
+ set(CMAKE_${lang}_XCODE_ARCHS "${CMAKE_${lang}_XCODE_ARCHS}" PARENT_SCOPE)
+ set(CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX "${CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX}" PARENT_SCOPE)
+ set(CMAKE_${lang}_COMPILER_FRONTEND_VARIANT "${CMAKE_${lang}_COMPILER_FRONTEND_VARIANT}" PARENT_SCOPE)
+ set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_${lang}_COMPILER_VERSION}" PARENT_SCOPE)
+ set(CMAKE_${lang}_COMPILER_VERSION_INTERNAL "${CMAKE_${lang}_COMPILER_VERSION_INTERNAL}" PARENT_SCOPE)
+ set(CMAKE_${lang}_COMPILER_WRAPPER "${CMAKE_${lang}_COMPILER_WRAPPER}" PARENT_SCOPE)
+ set(CMAKE_${lang}_SIMULATE_ID "${CMAKE_${lang}_SIMULATE_ID}" PARENT_SCOPE)
+ set(CMAKE_${lang}_SIMULATE_VERSION "${CMAKE_${lang}_SIMULATE_VERSION}" PARENT_SCOPE)
+ set(CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT "${CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT}" PARENT_SCOPE)
+ set(CMAKE_${lang}_COMPILER_PRODUCED_OUTPUT "${COMPILER_${lang}_PRODUCED_OUTPUT}" PARENT_SCOPE)
+ set(CMAKE_${lang}_COMPILER_PRODUCED_FILES "${COMPILER_${lang}_PRODUCED_FILES}" PARENT_SCOPE)
+endfunction()
+
+include(CMakeCompilerIdDetection)
+
+#-----------------------------------------------------------------------------
+# Function to write the compiler id source file.
+function(CMAKE_DETERMINE_COMPILER_ID_WRITE lang src)
+ find_file(src_in ${src}.in PATHS ${CMAKE_ROOT}/Modules ${CMAKE_MODULE_PATH} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
+ file(READ ${src_in} ID_CONTENT_IN)
+
+ compiler_id_detection(CMAKE_${lang}_COMPILER_ID_CONTENT ${lang}
+ ID_STRING
+ VERSION_STRINGS
+ PLATFORM_DEFAULT_COMPILER
+ )
+
+ unset(src_in CACHE)
+ string(CONFIGURE "${ID_CONTENT_IN}" ID_CONTENT_OUT @ONLY)
+ file(WRITE ${CMAKE_${lang}_COMPILER_ID_DIR}/${src} "${ID_CONTENT_OUT}")
+endfunction()
+
+#-----------------------------------------------------------------------------
+# Function to build the compiler id source file and look for output
+# files.
+function(CMAKE_DETERMINE_COMPILER_ID_BUILD lang testflags userflags src)
+ # Create a clean working directory.
+ file(REMOVE_RECURSE ${CMAKE_${lang}_COMPILER_ID_DIR})
+ file(MAKE_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR})
+ file(MAKE_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}/tmp)
+ CMAKE_DETERMINE_COMPILER_ID_WRITE("${lang}" "${src}")
+
+ # Construct a description of this test case.
+ set(COMPILER_DESCRIPTION
+ "Compiler: ${CMAKE_${lang}_COMPILER} ${CMAKE_${lang}_COMPILER_ID_ARG1}
+Build flags: ${userflags}
+Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS}
+")
+
+ # Compile the compiler identification source.
+ if("${CMAKE_GENERATOR}" MATCHES "Visual Studio ([0-9]+)")
+ set(vs_version ${CMAKE_MATCH_1})
+ set(id_platform ${CMAKE_VS_PLATFORM_NAME})
+ set(id_lang "${lang}")
+ set(id_PostBuildEvent_Command "")
+ if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "^([Ll][Ll][Vv][Mm](_v[0-9]+(_xp)?)?|[Cc][Ll][Aa][Nn][Gg][Cc][Ll])$")
+ set(id_cl_var "ClangClExecutable")
+ elseif(CMAKE_VS_PLATFORM_TOOLSET MATCHES "v[0-9]+_clang_.*")
+ set(id_cl clang.exe)
+ else()
+ set(id_cl cl.exe)
+ endif()
+ if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
+ set(v NsightTegra)
+ set(ext vcxproj)
+ if(lang STREQUAL CXX)
+ set(id_gcc g++)
+ set(id_clang clang++)
+ else()
+ set(id_gcc gcc)
+ set(id_clang clang)
+ endif()
+ elseif(lang STREQUAL Fortran)
+ set(v Intel)
+ set(ext vfproj)
+ set(id_cl ifort.exe)
+ elseif(lang STREQUAL CSharp)
+ set(v 10)
+ set(ext csproj)
+ set(id_cl csc.exe)
+ elseif(NOT "${vs_version}" VERSION_LESS 10)
+ set(v 10)
+ set(ext vcxproj)
+ else()
+ set(id_version ${vs_version}.00)
+ set(v 7)
+ set(ext vcproj)
+ endif()
+ if(CMAKE_VS_PLATFORM_TOOLSET)
+ if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
+ set(id_toolset "<NdkToolchainVersion>${CMAKE_VS_PLATFORM_TOOLSET}</NdkToolchainVersion>")
+ else()
+ set(id_toolset "<PlatformToolset>${CMAKE_VS_PLATFORM_TOOLSET}</PlatformToolset>")
+ if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "Intel")
+ set(id_cl icl.exe)
+ endif()
+ if(CMAKE_VS_PLATFORM_TOOLSET_VERSION)
+ set(id_sep "\\")
+ if(CMAKE_VS_PLATFORM_TOOLSET_VERSION VERSION_GREATER_EQUAL "14.20")
+ if(EXISTS "${CMAKE_GENERATOR_INSTANCE}/VC/Auxiliary/Build.${CMAKE_VS_PLATFORM_TOOLSET_VERSION}/Microsoft.VCToolsVersion.${CMAKE_VS_PLATFORM_TOOLSET_VERSION}.props")
+ set(id_sep ".")
+ endif()
+ endif()
+ set(id_toolset_version_props "<Import Project=\"${CMAKE_GENERATOR_INSTANCE}\\VC\\Auxiliary\\Build${id_sep}${CMAKE_VS_PLATFORM_TOOLSET_VERSION}\\Microsoft.VCToolsVersion.${CMAKE_VS_PLATFORM_TOOLSET_VERSION}.props\" />")
+ unset(id_sep)
+ endif()
+ endif()
+ else()
+ set(id_toolset "")
+ set(id_toolset_version_props "")
+ endif()
+ if(CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE)
+ set(id_PreferredToolArchitecture "<PreferredToolArchitecture>${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE}</PreferredToolArchitecture>")
+ else()
+ set(id_PreferredToolArchitecture "")
+ endif()
+ if(CMAKE_SYSTEM_NAME STREQUAL "WindowsPhone")
+ set(id_system "<ApplicationType>Windows Phone</ApplicationType>")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(id_system "<ApplicationType>Windows Store</ApplicationType>")
+ else()
+ set(id_system "")
+ endif()
+ if(id_system AND CMAKE_SYSTEM_VERSION MATCHES "^([0-9]+\\.[0-9]+)")
+ set(id_system_version "<ApplicationTypeRevision>${CMAKE_MATCH_1}</ApplicationTypeRevision>")
+ else()
+ set(id_system_version "")
+ endif()
+ if(CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION)
+ set(id_WindowsTargetPlatformVersion "<WindowsTargetPlatformVersion>${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}</WindowsTargetPlatformVersion>")
+ endif()
+ if(CMAKE_VS_PLATFORM_TOOLSET_VCTARGETS_CUSTOM_DIR)
+ set(id_ToolsetVCTargetsDir "<VCTargetsPath>${CMAKE_VS_PLATFORM_TOOLSET_VCTARGETS_CUSTOM_DIR}</VCTargetsPath>")
+ endif()
+ set(id_CustomGlobals "")
+ foreach(pair IN LISTS CMAKE_VS_GLOBALS)
+ if("${pair}" MATCHES "([^=]+)=(.*)$")
+ string(APPEND id_CustomGlobals "<${CMAKE_MATCH_1}>${CMAKE_MATCH_2}</${CMAKE_MATCH_1}>\n ")
+ endif()
+ endforeach()
+ if(id_platform STREQUAL ARM64)
+ set(id_WindowsSDKDesktopARMSupport "<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>")
+ elseif(id_platform STREQUAL ARM)
+ set(id_WindowsSDKDesktopARMSupport "<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>")
+ else()
+ set(id_WindowsSDKDesktopARMSupport "")
+ endif()
+ if(CMAKE_VS_WINCE_VERSION)
+ set(id_entrypoint "mainACRTStartup")
+ if("${vs_version}" VERSION_LESS 9)
+ set(id_subsystem 9)
+ else()
+ set(id_subsystem 8)
+ endif()
+ else()
+ set(id_subsystem 1)
+ endif()
+ set(id_dir ${CMAKE_${lang}_COMPILER_ID_DIR})
+ set(id_src "${src}")
+ set(id_compile "ClCompile")
+ if(id_cl_var)
+ set(id_PostBuildEvent_Command "echo CMAKE_${lang}_COMPILER=$(${id_cl_var})")
+ else()
+ set(id_PostBuildEvent_Command "for %%i in (${id_cl}) do %40echo CMAKE_${lang}_COMPILER=%%~$PATH:i")
+ endif()
+ set(id_Import_props "")
+ set(id_Import_targets "")
+ set(id_ItemDefinitionGroup_entry "")
+ set(id_Link_AdditionalDependencies "")
+ if(lang STREQUAL CUDA)
+ if(NOT CMAKE_VS_PLATFORM_TOOLSET_CUDA)
+ message(FATAL_ERROR "No CUDA toolset found.")
+ endif()
+ set(cuda_tools "CUDA ${CMAKE_VS_PLATFORM_TOOLSET_CUDA}")
+ set(id_compile "CudaCompile")
+ set(id_ItemDefinitionGroup_entry "<CudaCompile><AdditionalOptions>%(AdditionalOptions)-v</AdditionalOptions></CudaCompile>")
+ set(id_PostBuildEvent_Command [[echo CMAKE_CUDA_COMPILER=$(CudaToolkitBinDir)\nvcc.exe]])
+ if(CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR)
+ set(id_CudaToolkitCustomDir "<CudaToolkitCustomDir>${CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR}nvcc</CudaToolkitCustomDir>")
+ string(CONCAT id_Import_props "<Import Project=\"${CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR}\\CUDAVisualStudioIntegration\\extras\\visual_studio_integration\\MSBuildExtensions\\${cuda_tools}.props\" />")
+ string(CONCAT id_Import_targets "<Import Project=\"${CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR}\\CUDAVisualStudioIntegration\\extras\\visual_studio_integration\\MSBuildExtensions\\${cuda_tools}.targets\" />")
+ else()
+ string(CONCAT id_Import_props [[<Import Project="$(VCTargetsPath)\BuildCustomizations\]] "${cuda_tools}" [[.props" />]])
+ string(CONCAT id_Import_targets [[<Import Project="$(VCTargetsPath)\BuildCustomizations\]] "${cuda_tools}" [[.targets" />]])
+ endif()
+ if(CMAKE_VS_PLATFORM_NAME STREQUAL x64)
+ set(id_ItemDefinitionGroup_entry "<CudaCompile><TargetMachinePlatform>64</TargetMachinePlatform><AdditionalOptions>%(AdditionalOptions)-v</AdditionalOptions></CudaCompile>")
+ endif()
+ set(id_Link_AdditionalDependencies "<AdditionalDependencies>cudart.lib</AdditionalDependencies>")
+ endif()
+ configure_file(${CMAKE_ROOT}/Modules/CompilerId/VS-${v}.${ext}.in
+ ${id_dir}/CompilerId${lang}.${ext} @ONLY)
+ if(CMAKE_VS_MSBUILD_COMMAND AND NOT lang STREQUAL "Fortran")
+ set(command "${CMAKE_VS_MSBUILD_COMMAND}" "CompilerId${lang}.${ext}"
+ "/p:Configuration=Debug" "/p:Platform=${id_platform}" "/p:VisualStudioVersion=${vs_version}.0"
+ )
+ elseif(CMAKE_VS_DEVENV_COMMAND)
+ set(command "${CMAKE_VS_DEVENV_COMMAND}" "CompilerId${lang}.${ext}" "/build" "Debug")
+ else()
+ set(command "")
+ endif()
+ if(command)
+ execute_process(
+ COMMAND ${command}
+ WORKING_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}
+ OUTPUT_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
+ ERROR_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
+ RESULT_VARIABLE CMAKE_${lang}_COMPILER_ID_RESULT
+ )
+ else()
+ set(CMAKE_${lang}_COMPILER_ID_RESULT 1)
+ set(CMAKE_${lang}_COMPILER_ID_OUTPUT "VS environment not known to support ${lang}")
+ endif()
+ # Match the compiler location line printed out.
+ if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "CMAKE_${lang}_COMPILER=([^%\r\n]+)[\r\n]")
+ # Strip VS diagnostic output from the end of the line.
+ string(REGEX REPLACE " \\(TaskId:[0-9]*\\)$" "" _comp "${CMAKE_MATCH_1}")
+ if(EXISTS "${_comp}")
+ file(TO_CMAKE_PATH "${_comp}" _comp)
+ set(CMAKE_${lang}_COMPILER_ID_TOOL "${_comp}" PARENT_SCOPE)
+ endif()
+ endif()
+ elseif("${CMAKE_GENERATOR}" MATCHES "Xcode")
+ set(id_lang "${lang}")
+ set(id_type ${CMAKE_${lang}_COMPILER_XCODE_TYPE})
+ set(id_dir ${CMAKE_${lang}_COMPILER_ID_DIR})
+ set(id_src "${src}")
+ if(CMAKE_XCODE_PLATFORM_TOOLSET)
+ set(id_toolset "GCC_VERSION = ${CMAKE_XCODE_PLATFORM_TOOLSET};")
+ else()
+ set(id_toolset "")
+ endif()
+ if("${lang}" STREQUAL "Swift")
+ if(CMAKE_Swift_LANGUAGE_VERSION)
+ set(id_lang_version "SWIFT_VERSION = ${CMAKE_Swift_LANGUAGE_VERSION};")
+ elseif(XCODE_VERSION VERSION_GREATER_EQUAL 10.2)
+ set(id_lang_version "SWIFT_VERSION = 4.0;")
+ elseif(XCODE_VERSION VERSION_GREATER_EQUAL 8.3)
+ set(id_lang_version "SWIFT_VERSION = 3.0;")
+ else()
+ set(id_lang_version "SWIFT_VERSION = 2.3;")
+ endif()
+ else()
+ set(id_lang_version "")
+ endif()
+ if(CMAKE_OSX_DEPLOYMENT_TARGET)
+ set(id_deployment_target
+ "MACOSX_DEPLOYMENT_TARGET = \"${CMAKE_OSX_DEPLOYMENT_TARGET}\";")
+ else()
+ set(id_deployment_target "")
+ endif()
+ set(id_product_type "com.apple.product-type.tool")
+ if(CMAKE_OSX_SYSROOT)
+ set(id_sdkroot "SDKROOT = \"${CMAKE_OSX_SYSROOT}\";")
+ if(CMAKE_OSX_SYSROOT MATCHES "(^|/)[Ii][Pp][Hh][Oo][Nn][Ee]" OR
+ CMAKE_OSX_SYSROOT MATCHES "(^|/)[Aa][Pp][Pp][Ll][Ee][Tt][Vv]")
+ set(id_product_type "com.apple.product-type.bundle.unit-test")
+ elseif(CMAKE_OSX_SYSROOT MATCHES "(^|/)[Ww][Aa][Tt][Cc][Hh]")
+ set(id_product_type "com.apple.product-type.framework")
+ endif()
+ else()
+ set(id_sdkroot "")
+ endif()
+ set(id_clang_cxx_library "")
+ set(stdlib_regex "(^| )(-stdlib=)([^ ]+)( |$)")
+ string(REGEX MATCHALL "${stdlib_regex}" all_stdlib_matches "${CMAKE_CXX_FLAGS}")
+ if(all_stdlib_matches)
+ list(GET all_stdlib_matches "-1" last_stdlib_match)
+ if(last_stdlib_match MATCHES "${stdlib_regex}")
+ set(id_clang_cxx_library "CLANG_CXX_LIBRARY = \"${CMAKE_MATCH_3}\";")
+ endif()
+ endif()
+ configure_file(${CMAKE_ROOT}/Modules/CompilerId/Xcode-3.pbxproj.in
+ ${id_dir}/CompilerId${lang}.xcodeproj/project.pbxproj @ONLY)
+ unset(_ENV_MACOSX_DEPLOYMENT_TARGET)
+ if(DEFINED ENV{MACOSX_DEPLOYMENT_TARGET})
+ set(_ENV_MACOSX_DEPLOYMENT_TARGET "$ENV{MACOSX_DEPLOYMENT_TARGET}")
+ set(ENV{MACOSX_DEPLOYMENT_TARGET} "")
+ endif()
+ execute_process(COMMAND xcodebuild
+ WORKING_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}
+ OUTPUT_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
+ ERROR_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
+ RESULT_VARIABLE CMAKE_${lang}_COMPILER_ID_RESULT
+ )
+ if(DEFINED _ENV_MACOSX_DEPLOYMENT_TARGET)
+ set(ENV{MACOSX_DEPLOYMENT_TARGET} "${_ENV_MACOSX_DEPLOYMENT_TARGET}")
+ endif()
+
+ if(DEFINED CMAKE_${lang}_COMPILER_ID_TOOL_MATCH_REGEX)
+ if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "${CMAKE_${lang}_COMPILER_ID_TOOL_MATCH_REGEX}")
+ set(_comp "${CMAKE_MATCH_${CMAKE_${lang}_COMPILER_ID_TOOL_MATCH_INDEX}}")
+ if(EXISTS "${_comp}")
+ set(CMAKE_${lang}_COMPILER_ID_TOOL "${_comp}" PARENT_SCOPE)
+ endif()
+ endif()
+ endif()
+ if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "ARCHS=([^%\r\n]+)[\r\n]")
+ set(CMAKE_${lang}_XCODE_ARCHS "${CMAKE_MATCH_1}")
+ separate_arguments(CMAKE_${lang}_XCODE_ARCHS)
+ set(CMAKE_${lang}_XCODE_ARCHS "${CMAKE_${lang}_XCODE_ARCHS}" PARENT_SCOPE)
+ endif()
+ elseif("${CMAKE_GENERATOR}" MATCHES "Green Hills MULTI")
+ set(id_dir ${CMAKE_${lang}_COMPILER_ID_DIR})
+ set(id_src "${src}")
+ if (GHS_PRIMARY_TARGET)
+ set(ghs_primary_target "${GHS_PRIMARY_TARGET}")
+ else()
+ set(ghs_primary_target "${CMAKE_GENERATOR_PLATFORM}_${GHS_TARGET_PLATFORM}.tgt")
+ endif()
+ if ("${GHS_TARGET_PLATFORM}" MATCHES "integrity")
+ set(bsp_name "macro GHS_BSP=${GHS_BSP_NAME}")
+ set(os_dir "macro GHS_OS=${GHS_OS_DIR}")
+ endif()
+ set(command "${CMAKE_MAKE_PROGRAM}" "-commands" "-top" "GHS_default.gpj")
+ configure_file(${CMAKE_ROOT}/Modules/CompilerId/GHS_default.gpj.in
+ ${id_dir}/GHS_default.gpj @ONLY)
+ configure_file(${CMAKE_ROOT}/Modules/CompilerId/GHS_lib.gpj.in
+ ${id_dir}/GHS_lib.gpj @ONLY)
+ execute_process(COMMAND ${command}
+ WORKING_DIRECTORY ${id_dir}
+ OUTPUT_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
+ ERROR_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
+ RESULT_VARIABLE CMAKE_${lang}_COMPILER_ID_RESULT
+ )
+ # Match the compiler location line printed out.
+ set(ghs_toolpath "${CMAKE_MAKE_PROGRAM}")
+ if(CMAKE_HOST_UNIX)
+ string(REPLACE "/gbuild" "/" ghs_toolpath ${ghs_toolpath})
+ else()
+ string(REPLACE "/gbuild.exe" "/" ghs_toolpath ${ghs_toolpath})
+ string(REPLACE / "\\\\" ghs_toolpath ${ghs_toolpath})
+ endif()
+ if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "(${ghs_toolpath}[^ ]*)")
+ if(CMAKE_HOST_UNIX)
+ set(_comp "${CMAKE_MATCH_1}")
+ else()
+ set(_comp "${CMAKE_MATCH_1}.exe")
+ endif()
+ if(EXISTS "${_comp}")
+ file(TO_CMAKE_PATH "${_comp}" _comp)
+ set(CMAKE_${lang}_COMPILER_ID_TOOL "${_comp}" PARENT_SCOPE)
+ endif()
+ endif()
+ else()
+ execute_process(
+ COMMAND "${CMAKE_${lang}_COMPILER}"
+ ${CMAKE_${lang}_COMPILER_ID_ARG1}
+ ${userflags}
+ ${testflags}
+ ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS}
+ "${src}"
+ WORKING_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}
+ OUTPUT_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
+ ERROR_VARIABLE CMAKE_${lang}_COMPILER_ID_OUTPUT
+ RESULT_VARIABLE CMAKE_${lang}_COMPILER_ID_RESULT
+ )
+ if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "exec: [^\n]*\\((/[^,\n]*/cpp),CMakeFortranCompilerId.F")
+ set(_cpp "${CMAKE_MATCH_1}")
+ if(EXISTS "${_cpp}")
+ set(CMAKE_${lang}_COMPILER_ID_CPP "${_cpp}" PARENT_SCOPE)
+ endif()
+ endif()
+ endif()
+
+ # Check the result of compilation.
+ if(CMAKE_${lang}_COMPILER_ID_RESULT
+ # Intel Fortran warns and ignores preprocessor lines without /fpp
+ OR CMAKE_${lang}_COMPILER_ID_OUTPUT MATCHES "Bad # preprocessor line"
+ )
+ # Compilation failed.
+ set(MSG
+ "Compiling the ${lang} compiler identification source file \"${src}\" failed.
+${COMPILER_DESCRIPTION}
+The output was:
+${CMAKE_${lang}_COMPILER_ID_RESULT}
+${CMAKE_${lang}_COMPILER_ID_OUTPUT}
+
+")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log "${MSG}")
+ #if(NOT CMAKE_${lang}_COMPILER_ID_ALLOW_FAIL)
+ # message(FATAL_ERROR "${MSG}")
+ #endif()
+
+ # No output files should be inspected.
+ set(COMPILER_${lang}_PRODUCED_FILES)
+ set(COMPILER_${lang}_PRODUCED_OUTPUT)
+ else()
+ # Compilation succeeded.
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Compiling the ${lang} compiler identification source file \"${src}\" succeeded.
+${COMPILER_DESCRIPTION}
+The output was:
+${CMAKE_${lang}_COMPILER_ID_RESULT}
+${CMAKE_${lang}_COMPILER_ID_OUTPUT}
+
+")
+
+ # Find the executable produced by the compiler, try all files in the
+ # binary dir.
+ string(REGEX REPLACE "([][])" "[\\1]" _glob_id_dir "${CMAKE_${lang}_COMPILER_ID_DIR}")
+ file(GLOB files
+ RELATIVE ${CMAKE_${lang}_COMPILER_ID_DIR}
+
+ # normal case
+ ${_glob_id_dir}/*
+
+ # com.apple.package-type.bundle.unit-test
+ ${_glob_id_dir}/*.xctest/*
+
+ # com.apple.product-type.framework
+ ${_glob_id_dir}/*.framework/*
+ )
+ list(REMOVE_ITEM files "${src}")
+ set(COMPILER_${lang}_PRODUCED_FILES "")
+ foreach(file ${files})
+ if(NOT IS_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}/${file})
+ list(APPEND COMPILER_${lang}_PRODUCED_FILES ${file})
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Compilation of the ${lang} compiler identification source \""
+ "${src}\" produced \"${file}\"\n\n")
+ endif()
+ endforeach()
+
+ if(NOT COMPILER_${lang}_PRODUCED_FILES)
+ # No executable was found.
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Compilation of the ${lang} compiler identification source \""
+ "${src}\" did not produce an executable in \""
+ "${CMAKE_${lang}_COMPILER_ID_DIR}\".\n\n")
+ endif()
+
+ set(COMPILER_${lang}_PRODUCED_OUTPUT "${CMAKE_${lang}_COMPILER_ID_OUTPUT}")
+ endif()
+
+ # Return the files produced by the compilation.
+ set(COMPILER_${lang}_PRODUCED_FILES "${COMPILER_${lang}_PRODUCED_FILES}" PARENT_SCOPE)
+ set(COMPILER_${lang}_PRODUCED_OUTPUT "${COMPILER_${lang}_PRODUCED_OUTPUT}" PARENT_SCOPE)
+
+endfunction()
+
+#-----------------------------------------------------------------------------
+# Function to extract the compiler id from compiler output.
+function(CMAKE_DETERMINE_COMPILER_ID_MATCH_VENDOR lang output)
+ foreach(vendor ${CMAKE_${lang}_COMPILER_ID_MATCH_VENDORS})
+ if(output MATCHES "${CMAKE_${lang}_COMPILER_ID_MATCH_VENDOR_REGEX_${vendor}}")
+ set(CMAKE_${lang}_COMPILER_ID "${vendor}")
+ endif()
+ endforeach()
+ set(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE)
+endfunction()
+
+#-----------------------------------------------------------------------------
+# Function to extract the compiler id from an executable.
+function(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file)
+ # Look for a compiler id if not yet known.
+ if(NOT CMAKE_${lang}_COMPILER_ID)
+ # Read the compiler identification string from the executable file.
+ set(COMPILER_ID)
+ set(COMPILER_VERSION)
+ set(COMPILER_VERSION_MAJOR 0)
+ set(COMPILER_VERSION_MINOR 0)
+ set(COMPILER_VERSION_PATCH 0)
+ set(COMPILER_VERSION_TWEAK 0)
+ set(COMPILER_VERSION_INTERNAL "")
+ set(HAVE_COMPILER_VERSION_MAJOR 0)
+ set(HAVE_COMPILER_VERSION_MINOR 0)
+ set(HAVE_COMPILER_VERSION_PATCH 0)
+ set(HAVE_COMPILER_VERSION_TWEAK 0)
+ set(COMPILER_WRAPPER)
+ set(DIGIT_VALUE_1 1)
+ set(DIGIT_VALUE_2 10)
+ set(DIGIT_VALUE_3 100)
+ set(DIGIT_VALUE_4 1000)
+ set(DIGIT_VALUE_5 10000)
+ set(DIGIT_VALUE_6 100000)
+ set(DIGIT_VALUE_7 1000000)
+ set(DIGIT_VALUE_8 10000000)
+ set(PLATFORM_ID)
+ set(ARCHITECTURE_ID)
+ set(SIMULATE_ID)
+ set(SIMULATE_VERSION)
+ foreach(encoding "" "ENCODING;UTF-16LE" "ENCODING;UTF-16BE")
+ file(STRINGS "${file}" CMAKE_${lang}_COMPILER_ID_STRINGS
+ LIMIT_COUNT 38 ${encoding}
+ REGEX ".?I.?N.?F.?O.?:.?[A-Za-z0-9_]+\\[[^]]*\\]")
+ if(NOT CMAKE_${lang}_COMPILER_ID_STRINGS STREQUAL "")
+ break()
+ endif()
+ endforeach()
+ set(COMPILER_ID_TWICE)
+ # With the IAR Compiler, some strings are found twice, first time as incomplete
+ # list like "?<Constant "INFO:compiler[IAR]">". Remove the incomplete copies.
+ list(FILTER CMAKE_${lang}_COMPILER_ID_STRINGS EXCLUDE REGEX "\\?<Constant \\\"")
+ # In C# binaries, some strings are found more than once.
+ list(REMOVE_DUPLICATES CMAKE_${lang}_COMPILER_ID_STRINGS)
+ foreach(info ${CMAKE_${lang}_COMPILER_ID_STRINGS})
+ # The IAR-AVR compiler uses a binary format that places a '6'
+ # character (0x34) before each character in the string. Strip
+ # out these characters without removing any legitamate characters.
+ if("${info}" MATCHES "(.)I.N.F.O.:.")
+ string(REGEX REPLACE "${CMAKE_MATCH_1}(.)" "\\1" info "${info}")
+ endif()
+ if("${info}" MATCHES "INFO:compiler\\[([^]\"]*)\\]")
+ if(COMPILER_ID)
+ set(COMPILER_ID_TWICE 1)
+ endif()
+ set(COMPILER_ID "${CMAKE_MATCH_1}")
+ endif()
+ if("${info}" MATCHES "INFO:platform\\[([^]\"]*)\\]")
+ set(PLATFORM_ID "${CMAKE_MATCH_1}")
+ endif()
+ if("${info}" MATCHES "INFO:arch\\[([^]\"]*)\\]")
+ set(ARCHITECTURE_ID "${CMAKE_MATCH_1}")
+ endif()
+ if("${info}" MATCHES "INFO:compiler_version\\[([^]\"]*)\\]")
+ string(REGEX REPLACE "^0+([0-9]+)" "\\1" COMPILER_VERSION "${CMAKE_MATCH_1}")
+ string(REGEX REPLACE "\\.0+([0-9])" ".\\1" COMPILER_VERSION "${COMPILER_VERSION}")
+ endif()
+ if("${info}" MATCHES "INFO:compiler_version_internal\\[([^]\"]*)\\]")
+ string(REGEX REPLACE "^0+([0-9])" "\\1" COMPILER_VERSION_INTERNAL "${CMAKE_MATCH_1}")
+ string(REGEX REPLACE "\\.0+([0-9])" ".\\1" COMPILER_VERSION_INTERNAL "${COMPILER_VERSION_INTERNAL}")
+ endif()
+ foreach(comp MAJOR MINOR PATCH TWEAK)
+ foreach(digit 1 2 3 4 5 6 7 8 9)
+ if("${info}" MATCHES "INFO:compiler_version_${comp}_digit_${digit}\\[([0-9])\\]")
+ set(value ${CMAKE_MATCH_1})
+ math(EXPR COMPILER_VERSION_${comp} "${COMPILER_VERSION_${comp}} + ${value} * ${DIGIT_VALUE_${digit}}")
+ set(HAVE_COMPILER_VERSION_${comp} 1)
+ endif()
+ endforeach()
+ endforeach()
+ if("${info}" MATCHES "INFO:compiler_wrapper\\[([^]\"]*)\\]")
+ set(COMPILER_WRAPPER "${CMAKE_MATCH_1}")
+ endif()
+ if("${info}" MATCHES "INFO:simulate\\[([^]\"]*)\\]")
+ set(SIMULATE_ID "${CMAKE_MATCH_1}")
+ endif()
+ if("${info}" MATCHES "INFO:simulate_version\\[([^]\"]*)\\]")
+ string(REGEX REPLACE "^0+([0-9])" "\\1" SIMULATE_VERSION "${CMAKE_MATCH_1}")
+ string(REGEX REPLACE "\\.0+([0-9])" ".\\1" SIMULATE_VERSION "${SIMULATE_VERSION}")
+ endif()
+ if("${info}" MATCHES "INFO:qnxnto\\[\\]")
+ set(COMPILER_QNXNTO 1)
+ endif()
+ if("${info}" MATCHES "INFO:dialect_default\\[([^]\"]*)\\]")
+ set(CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT "${CMAKE_MATCH_1}")
+ endif()
+ endforeach()
+
+ # Construct compiler version from components if needed.
+ if(NOT DEFINED COMPILER_VERSION AND HAVE_COMPILER_VERSION_MAJOR)
+ set(COMPILER_VERSION "${COMPILER_VERSION_MAJOR}")
+ if(HAVE_COMPILER_VERSION_MINOR)
+ string(APPEND COMPILER_VERSION ".${COMPILER_VERSION_MINOR}")
+ if(HAVE_COMPILER_VERSION_PATCH)
+ string(APPEND COMPILER_VERSION ".${COMPILER_VERSION_PATCH}")
+ if(HAVE_COMPILER_VERSION_TWEAK)
+ string(APPEND COMPILER_VERSION ".${COMPILER_VERSION_TWEAK}")
+ endif()
+ endif()
+ endif()
+ endif()
+
+ # Detect the exact architecture from the PE header.
+ if(WIN32)
+ # The offset to the PE signature is stored at 0x3c.
+ file(READ ${file} peoffsethex LIMIT 1 OFFSET 60 HEX)
+ if(NOT peoffsethex STREQUAL "")
+ string(SUBSTRING "${peoffsethex}" 0 1 peoffsethex1)
+ string(SUBSTRING "${peoffsethex}" 1 1 peoffsethex2)
+ set(peoffsetexpression "${peoffsethex1} * 16 + ${peoffsethex2}")
+ string(REPLACE "a" "10" peoffsetexpression "${peoffsetexpression}")
+ string(REPLACE "b" "11" peoffsetexpression "${peoffsetexpression}")
+ string(REPLACE "c" "12" peoffsetexpression "${peoffsetexpression}")
+ string(REPLACE "d" "13" peoffsetexpression "${peoffsetexpression}")
+ string(REPLACE "e" "14" peoffsetexpression "${peoffsetexpression}")
+ string(REPLACE "f" "15" peoffsetexpression "${peoffsetexpression}")
+ math(EXPR peoffset "${peoffsetexpression}")
+
+ file(READ ${file} peheader LIMIT 6 OFFSET ${peoffset} HEX)
+ if(peheader STREQUAL "50450000a201")
+ set(ARCHITECTURE_ID "SH3")
+ elseif(peheader STREQUAL "50450000a301")
+ set(ARCHITECTURE_ID "SH3DSP")
+ elseif(peheader STREQUAL "50450000a601")
+ set(ARCHITECTURE_ID "SH4")
+ elseif(peheader STREQUAL "50450000a801")
+ set(ARCHITECTURE_ID "SH5")
+ endif()
+ endif()
+ endif()
+
+ # Check if a valid compiler and platform were found.
+ if(COMPILER_ID AND NOT COMPILER_ID_TWICE)
+ set(CMAKE_${lang}_COMPILER_ID "${COMPILER_ID}")
+ set(CMAKE_${lang}_PLATFORM_ID "${PLATFORM_ID}")
+ set(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID "${ARCHITECTURE_ID}")
+ set(MSVC_${lang}_ARCHITECTURE_ID "${ARCHITECTURE_ID}")
+ set(CMAKE_${lang}_COMPILER_VERSION "${COMPILER_VERSION}")
+ set(CMAKE_${lang}_COMPILER_VERSION_INTERNAL "${COMPILER_VERSION_INTERNAL}")
+ set(CMAKE_${lang}_SIMULATE_ID "${SIMULATE_ID}")
+ set(CMAKE_${lang}_SIMULATE_VERSION "${SIMULATE_VERSION}")
+ endif()
+
+ # Check the compiler identification string.
+ if(CMAKE_${lang}_COMPILER_ID)
+ # The compiler identification was found.
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "The ${lang} compiler identification is ${CMAKE_${lang}_COMPILER_ID}, found in \""
+ "${file}\"\n\n")
+ else()
+ # The compiler identification could not be found.
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "The ${lang} compiler identification could not be found in \""
+ "${file}\"\n\n")
+ endif()
+ endif()
+
+ # try to figure out the executable format: ELF, COFF, Mach-O
+ if(NOT CMAKE_EXECUTABLE_FORMAT)
+ file(READ ${file} CMAKE_EXECUTABLE_MAGIC LIMIT 4 HEX)
+
+ # ELF files start with 0x7f"ELF"
+ if("${CMAKE_EXECUTABLE_MAGIC}" STREQUAL "7f454c46")
+ set(CMAKE_EXECUTABLE_FORMAT "ELF" CACHE INTERNAL "Executable file format")
+ endif()
+
+# # COFF (.exe) files start with "MZ"
+# if("${CMAKE_EXECUTABLE_MAGIC}" MATCHES "4d5a....")
+# set(CMAKE_EXECUTABLE_FORMAT "COFF" CACHE STRING "Executable file format")
+# endif()
+#
+ # Mach-O files start with MH_MAGIC or MH_CIGAM
+ if("${CMAKE_EXECUTABLE_MAGIC}" MATCHES "feedface|cefaedfe|feedfacf|cffaedfe")
+ set(CMAKE_EXECUTABLE_FORMAT "MACHO" CACHE STRING "Executable file format")
+ endif()
+
+ endif()
+ if(NOT DEFINED CMAKE_EXECUTABLE_FORMAT)
+ set(CMAKE_EXECUTABLE_FORMAT)
+ endif()
+ # Return the information extracted.
+ set(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE)
+ set(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE)
+ set(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID "${CMAKE_${lang}_COMPILER_ARCHITECTURE_ID}" PARENT_SCOPE)
+ set(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}"
+ PARENT_SCOPE)
+ set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_${lang}_COMPILER_VERSION}" PARENT_SCOPE)
+ set(CMAKE_${lang}_COMPILER_VERSION_INTERNAL "${CMAKE_${lang}_COMPILER_VERSION_INTERNAL}" PARENT_SCOPE)
+ set(CMAKE_${lang}_COMPILER_WRAPPER "${COMPILER_WRAPPER}" PARENT_SCOPE)
+ set(CMAKE_${lang}_SIMULATE_ID "${CMAKE_${lang}_SIMULATE_ID}" PARENT_SCOPE)
+ set(CMAKE_${lang}_SIMULATE_VERSION "${CMAKE_${lang}_SIMULATE_VERSION}" PARENT_SCOPE)
+ set(CMAKE_EXECUTABLE_FORMAT "${CMAKE_EXECUTABLE_FORMAT}" PARENT_SCOPE)
+ set(COMPILER_QNXNTO "${COMPILER_QNXNTO}" PARENT_SCOPE)
+ set(CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT "${CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT}" PARENT_SCOPE)
+endfunction()
+
+#-----------------------------------------------------------------------------
+# Function to query the compiler vendor.
+# This uses a table with entries of the form
+# list(APPEND CMAKE_${lang}_COMPILER_ID_VENDORS ${vendor})
+# set(CMAKE_${lang}_COMPILER_ID_VENDOR_FLAGS_${vendor} -some-vendor-flag)
+# set(CMAKE_${lang}_COMPILER_ID_VENDOR_REGEX_${vendor} "Some Vendor Output")
+# We try running the compiler with the flag for each vendor and
+# matching its regular expression in the output.
+function(CMAKE_DETERMINE_COMPILER_ID_VENDOR lang userflags)
+
+ if(NOT CMAKE_${lang}_COMPILER_ID_DIR)
+ # We get here when this function is called not from within CMAKE_DETERMINE_COMPILER_ID()
+ # This is done e.g. for detecting the compiler ID for assemblers.
+ # Compute the directory in which to run the test and Create a clean working directory.
+ set(CMAKE_${lang}_COMPILER_ID_DIR ${CMAKE_PLATFORM_INFO_DIR}/CompilerId${lang})
+ file(REMOVE_RECURSE ${CMAKE_${lang}_COMPILER_ID_DIR})
+ file(MAKE_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR})
+ endif()
+
+
+ foreach(vendor ${CMAKE_${lang}_COMPILER_ID_VENDORS})
+ set(flags ${CMAKE_${lang}_COMPILER_ID_VENDOR_FLAGS_${vendor}})
+ set(regex ${CMAKE_${lang}_COMPILER_ID_VENDOR_REGEX_${vendor}})
+ execute_process(
+ COMMAND "${CMAKE_${lang}_COMPILER}"
+ ${CMAKE_${lang}_COMPILER_ID_ARG1}
+ ${userflags}
+ ${flags}
+ WORKING_DIRECTORY ${CMAKE_${lang}_COMPILER_ID_DIR}
+ OUTPUT_VARIABLE output ERROR_VARIABLE output
+ RESULT_VARIABLE result
+ TIMEOUT 10
+ )
+
+ if("${output}" MATCHES "${regex}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
+ "matched \"${regex}\":\n${output}")
+ set(CMAKE_${lang}_COMPILER_ID "${vendor}" PARENT_SCOPE)
+ set(CMAKE_${lang}_COMPILER_ID_OUTPUT "${output}" PARENT_SCOPE)
+ break()
+ else()
+ if("${result}" MATCHES "timeout")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
+ "terminated after 10 s due to timeout.")
+ else()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
+ "did not match \"${regex}\":\n${output}")
+ endif()
+ endif()
+ endforeach()
+endfunction()
+
+function(CMAKE_DETERMINE_MSVC_SHOWINCLUDES_PREFIX lang userflags)
+ # Run this MSVC-compatible compiler to detect what the /showIncludes
+ # option displays. We can use a C source even with the C++ compiler
+ # because MSVC-compatible compilers handle both and show the same output.
+ set(showdir ${CMAKE_BINARY_DIR}/CMakeFiles/ShowIncludes)
+ file(WRITE ${showdir}/foo.h "\n")
+ file(WRITE ${showdir}/main.c "#include \"foo.h\" \nint main(){}\n")
+ execute_process(
+ COMMAND "${CMAKE_${lang}_COMPILER}"
+ ${CMAKE_${lang}_COMPILER_ID_ARG1}
+ ${userflags}
+ /nologo /showIncludes /c main.c
+ WORKING_DIRECTORY ${showdir}
+ OUTPUT_VARIABLE out
+ ERROR_VARIABLE err
+ RESULT_VARIABLE res
+ ENCODING AUTO # cl prints in current code page
+ )
+ if(res EQUAL 0 AND "${out}" MATCHES "(^|\n)([^:\n]*:[^:\n]*:[ \t]*)")
+ set(CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX "${CMAKE_MATCH_2}" PARENT_SCOPE)
+ else()
+ set(CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX "" PARENT_SCOPE)
+ endif()
+endfunction()
diff --git a/share/cmake-3.17/Modules/CMakeDetermineFortranCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineFortranCompiler.cmake
new file mode 100644
index 0000000..e850541
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeDetermineFortranCompiler.cmake
@@ -0,0 +1,295 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# determine the compiler to use for Fortran programs
+# NOTE, a generator may set CMAKE_Fortran_COMPILER before
+# loading this file to force a compiler.
+# use environment variable FC first if defined by user, next use
+# the cmake variable CMAKE_GENERATOR_FC which can be defined by a generator
+# as a default compiler
+
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
+include(Platform/${CMAKE_SYSTEM_NAME}-Determine-Fortran OPTIONAL)
+include(Platform/${CMAKE_SYSTEM_NAME}-Fortran OPTIONAL)
+if(NOT CMAKE_Fortran_COMPILER_NAMES)
+ set(CMAKE_Fortran_COMPILER_NAMES f95)
+endif()
+
+if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
+elseif("${CMAKE_GENERATOR}" MATCHES "Xcode")
+ set(CMAKE_Fortran_COMPILER_XCODE_TYPE sourcecode.fortran.f90)
+ _cmake_find_compiler_path(Fortran)
+else()
+ if(NOT CMAKE_Fortran_COMPILER)
+ # prefer the environment variable CC
+ if(NOT $ENV{FC} STREQUAL "")
+ get_filename_component(CMAKE_Fortran_COMPILER_INIT $ENV{FC} PROGRAM PROGRAM_ARGS CMAKE_Fortran_FLAGS_ENV_INIT)
+ if(CMAKE_Fortran_FLAGS_ENV_INIT)
+ set(CMAKE_Fortran_COMPILER_ARG1 "${CMAKE_Fortran_FLAGS_ENV_INIT}" CACHE STRING "First argument to Fortran compiler")
+ endif()
+ if(EXISTS ${CMAKE_Fortran_COMPILER_INIT})
+ else()
+ message(FATAL_ERROR "Could not find compiler set in environment variable FC:\n$ENV{FC}.")
+ endif()
+ endif()
+
+ # next try prefer the compiler specified by the generator
+ if(CMAKE_GENERATOR_FC)
+ if(NOT CMAKE_Fortran_COMPILER_INIT)
+ set(CMAKE_Fortran_COMPILER_INIT ${CMAKE_GENERATOR_FC})
+ endif()
+ endif()
+
+ # finally list compilers to try
+ if(NOT CMAKE_Fortran_COMPILER_INIT)
+ # Known compilers:
+ # f77/f90/f95: generic compiler names
+ # ftn: Cray fortran compiler wrapper
+ # g77: GNU Fortran 77 compiler
+ # gfortran: putative GNU Fortran 95+ compiler (in progress)
+ # fort77: native F77 compiler under HP-UX (and some older Crays)
+ # frt: Fujitsu F77 compiler
+ # pathf90/pathf95/pathf2003: PathScale Fortran compiler
+ # pgf77/pgf90/pgf95/pgfortran: Portland Group F77/F90/F95 compilers
+ # flang: Flang Fortran compiler
+ # xlf/xlf90/xlf95: IBM (AIX) F77/F90/F95 compilers
+ # lf95: Lahey-Fujitsu F95 compiler
+ # fl32: Microsoft Fortran 77 "PowerStation" compiler
+ # af77: Apogee F77 compiler for Intergraph hardware running CLIX
+ # epcf90: "Edinburgh Portable Compiler" F90
+ # fort: Compaq (now HP) Fortran 90/95 compiler for Tru64 and Linux/Alpha
+ # ifc: Intel Fortran 95 compiler for Linux/x86
+ # efc: Intel Fortran 95 compiler for IA64
+ # nagfor: NAG Fortran compiler
+ #
+ # The order is 95 or newer compilers first, then 90,
+ # then 77 or older compilers, gnu is always last in the group,
+ # so if you paid for a compiler it is picked by default.
+ if(CMAKE_HOST_WIN32)
+ set(CMAKE_Fortran_COMPILER_LIST
+ ifort pgf95 pgfortran lf95 fort
+ flang gfortran gfortran-4 g95 f90 pgf90
+ pgf77 g77 f77 nag
+ )
+ else()
+ set(CMAKE_Fortran_COMPILER_LIST
+ ftn
+ ifort ifc efc pgf95 pgfortran lf95 xlf95 fort
+ flang gfortran gfortran-4 g95 f90 pgf90
+ frt pgf77 xlf g77 f77 nag
+ )
+ endif()
+
+ # Vendor-specific compiler names.
+ set(_Fortran_COMPILER_NAMES_GNU gfortran gfortran-4 g95 g77)
+ set(_Fortran_COMPILER_NAMES_Intel ifort ifc efc)
+ set(_Fortran_COMPILER_NAMES_Absoft af95 af90 af77)
+ set(_Fortran_COMPILER_NAMES_PGI pgf95 pgfortran pgf90 pgf77)
+ set(_Fortran_COMPILER_NAMES_Flang flang)
+ set(_Fortran_COMPILER_NAMES_PathScale pathf2003 pathf95 pathf90)
+ set(_Fortran_COMPILER_NAMES_XL xlf)
+ set(_Fortran_COMPILER_NAMES_VisualAge xlf95 xlf90 xlf)
+ set(_Fortran_COMPILER_NAMES_NAG nagfor)
+ endif()
+
+ _cmake_find_compiler(Fortran)
+
+ else()
+ _cmake_find_compiler_path(Fortran)
+ endif()
+ mark_as_advanced(CMAKE_Fortran_COMPILER)
+
+ # Each entry in this list is a set of extra flags to try
+ # adding to the compile line to see if it helps produce
+ # a valid identification executable.
+ set(CMAKE_Fortran_COMPILER_ID_TEST_FLAGS_FIRST
+ # Get verbose output to help distinguish compilers.
+ "-v"
+ )
+ set(CMAKE_Fortran_COMPILER_ID_TEST_FLAGS
+ # Try compiling to an object file only.
+ "-c"
+
+ # Intel on windows does not preprocess by default.
+ "-fpp"
+ )
+endif()
+
+# Build a small source file to identify the compiler.
+if(NOT CMAKE_Fortran_COMPILER_ID_RUN)
+ set(CMAKE_Fortran_COMPILER_ID_RUN 1)
+
+ # Table of per-vendor compiler output regular expressions.
+ list(APPEND CMAKE_Fortran_COMPILER_ID_MATCH_VENDORS CCur)
+ set(CMAKE_Fortran_COMPILER_ID_MATCH_VENDOR_REGEX_CCur "Concurrent Fortran [0-9]+ Compiler")
+
+ # Table of per-vendor compiler id flags with expected output.
+ list(APPEND CMAKE_Fortran_COMPILER_ID_VENDORS Compaq)
+ set(CMAKE_Fortran_COMPILER_ID_VENDOR_FLAGS_Compaq "-what")
+ set(CMAKE_Fortran_COMPILER_ID_VENDOR_REGEX_Compaq "Compaq Visual Fortran")
+ list(APPEND CMAKE_Fortran_COMPILER_ID_VENDORS NAG) # Numerical Algorithms Group
+ set(CMAKE_Fortran_COMPILER_ID_VENDOR_FLAGS_NAG "-V")
+ set(CMAKE_Fortran_COMPILER_ID_VENDOR_REGEX_NAG "NAG Fortran Compiler")
+
+ # Match the link line from xcodebuild output of the form
+ # Ld ...
+ # ...
+ # /path/to/cc ...CompilerIdFortran/...
+ # to extract the compiler front-end for the language.
+ set(CMAKE_Fortran_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdFortran/(\\./)?(CompilerIdFortran.xctest/)?CompilerIdFortran[ \t\n\\\"]")
+ set(CMAKE_Fortran_COMPILER_ID_TOOL_MATCH_INDEX 2)
+
+ set(_version_info "")
+ foreach(m MAJOR MINOR PATCH TWEAK)
+ set(_COMP "_${m}")
+ string(APPEND _version_info "
+#if defined(COMPILER_VERSION${_COMP})")
+ foreach(d 1 2 3 4 5 6 7 8)
+ string(APPEND _version_info "
+# undef DEC
+# undef HEX
+# define DEC(n) DEC_${d}(n)
+# define HEX(n) HEX_${d}(n)
+# if COMPILER_VERSION${_COMP} == 0
+ PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[0]'
+# elif COMPILER_VERSION${_COMP} == 1
+ PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[1]'
+# elif COMPILER_VERSION${_COMP} == 2
+ PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[2]'
+# elif COMPILER_VERSION${_COMP} == 3
+ PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[3]'
+# elif COMPILER_VERSION${_COMP} == 4
+ PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[4]'
+# elif COMPILER_VERSION${_COMP} == 5
+ PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[5]'
+# elif COMPILER_VERSION${_COMP} == 6
+ PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[6]'
+# elif COMPILER_VERSION${_COMP} == 7
+ PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[7]'
+# elif COMPILER_VERSION${_COMP} == 8
+ PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[8]'
+# elif COMPILER_VERSION${_COMP} == 9
+ PRINT *, 'INFO:compiler_version${_COMP}_digit_${d}[9]'
+# endif
+")
+ endforeach()
+ string(APPEND _version_info "
+#endif")
+ endforeach()
+ set(CMAKE_Fortran_COMPILER_ID_VERSION_INFO "${_version_info}")
+ unset(_version_info)
+ unset(_COMP)
+
+ # Try to identify the compiler.
+ set(CMAKE_Fortran_COMPILER_ID)
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
+ CMAKE_DETERMINE_COMPILER_ID(Fortran FFLAGS CMakeFortranCompilerId.F)
+
+ # Fall back to old is-GNU test.
+ if(NOT CMAKE_Fortran_COMPILER_ID)
+ execute_process(COMMAND ${CMAKE_Fortran_COMPILER} ${CMAKE_Fortran_COMPILER_ID_FLAGS_LIST} -E "${CMAKE_ROOT}/Modules/CMakeTestGNU.c"
+ OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT RESULT_VARIABLE CMAKE_COMPILER_RETURN)
+ if(NOT CMAKE_COMPILER_RETURN)
+ if(CMAKE_COMPILER_OUTPUT MATCHES "THIS_IS_GNU")
+ set(CMAKE_Fortran_COMPILER_ID "GNU")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the Fortran compiler is GNU succeeded with "
+ "the following output:\n${CMAKE_COMPILER_OUTPUT}\n\n")
+ else()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the Fortran compiler is GNU failed with "
+ "the following output:\n${CMAKE_COMPILER_OUTPUT}\n\n")
+ endif()
+ if(NOT CMAKE_Fortran_PLATFORM_ID)
+ if(CMAKE_COMPILER_OUTPUT MATCHES "THIS_IS_MINGW")
+ set(CMAKE_Fortran_PLATFORM_ID "MinGW")
+ endif()
+ if(CMAKE_COMPILER_OUTPUT MATCHES "THIS_IS_CYGWIN")
+ set(CMAKE_Fortran_PLATFORM_ID "Cygwin")
+ endif()
+ endif()
+ endif()
+ endif()
+
+ # Fall back for GNU MINGW, which is not always detected correctly
+ # (__MINGW32__ is defined for the C language, but perhaps not for Fortran!)
+ if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU" AND NOT CMAKE_Fortran_PLATFORM_ID)
+ execute_process(COMMAND ${CMAKE_Fortran_COMPILER} ${CMAKE_Fortran_COMPILER_ID_FLAGS_LIST} -E "${CMAKE_ROOT}/Modules/CMakeTestGNU.c"
+ OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT RESULT_VARIABLE CMAKE_COMPILER_RETURN)
+ if(NOT CMAKE_COMPILER_RETURN)
+ if(CMAKE_COMPILER_OUTPUT MATCHES "THIS_IS_MINGW")
+ set(CMAKE_Fortran_PLATFORM_ID "MinGW")
+ endif()
+ if(CMAKE_COMPILER_OUTPUT MATCHES "THIS_IS_CYGWIN")
+ set(CMAKE_Fortran_PLATFORM_ID "Cygwin")
+ endif()
+ endif()
+ endif()
+
+ # Set old compiler and platform id variables.
+ if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
+ set(CMAKE_COMPILER_IS_GNUG77 1)
+ endif()
+ if(CMAKE_Fortran_PLATFORM_ID MATCHES "MinGW")
+ set(CMAKE_COMPILER_IS_MINGW 1)
+ elseif(CMAKE_Fortran_PLATFORM_ID MATCHES "Cygwin")
+ set(CMAKE_COMPILER_IS_CYGWIN 1)
+ endif()
+endif()
+
+if (NOT _CMAKE_TOOLCHAIN_LOCATION)
+ get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_Fortran_COMPILER}" PATH)
+endif ()
+
+# if we have a fortran cross compiler, they have usually some prefix, like
+# e.g. powerpc-linux-gfortran, arm-elf-gfortran or i586-mingw32msvc-gfortran , optionally
+# with a 3-component version number at the end (e.g. arm-eabi-gcc-4.5.2).
+# The other tools of the toolchain usually have the same prefix
+# NAME_WE cannot be used since then this test will fail for names like
+# "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be
+# "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
+if (CMAKE_CROSSCOMPILING AND NOT _CMAKE_TOOLCHAIN_PREFIX)
+
+ if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
+ get_filename_component(COMPILER_BASENAME "${CMAKE_Fortran_COMPILER}" NAME)
+ if (COMPILER_BASENAME MATCHES "^(.+-)g?fortran(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
+ set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
+ endif ()
+
+ # if "llvm-" is part of the prefix, remove it, since llvm doesn't have its own binutils
+ # but uses the regular ar, objcopy, etc. (instead of llvm-objcopy etc.)
+ if ("${_CMAKE_TOOLCHAIN_PREFIX}" MATCHES "(.+-)?llvm-$")
+ set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
+ endif ()
+ endif()
+
+endif ()
+
+set(_CMAKE_PROCESSING_LANGUAGE "Fortran")
+include(CMakeFindBinUtils)
+include(Compiler/${CMAKE_Fortran_COMPILER_ID}-FindBinUtils OPTIONAL)
+unset(_CMAKE_PROCESSING_LANGUAGE)
+
+if(CMAKE_Fortran_XL_CPP)
+ set(_SET_CMAKE_Fortran_XL_CPP
+ "set(CMAKE_Fortran_XL_CPP \"${CMAKE_Fortran_XL_CPP}\")")
+endif()
+
+if(CMAKE_Fortran_COMPILER_ARCHITECTURE_ID)
+ set(_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID
+ "set(CMAKE_Fortran_COMPILER_ARCHITECTURE_ID ${CMAKE_Fortran_COMPILER_ARCHITECTURE_ID})")
+else()
+ set(_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID "")
+endif()
+
+if(MSVC_Fortran_ARCHITECTURE_ID)
+ set(SET_MSVC_Fortran_ARCHITECTURE_ID
+ "set(MSVC_Fortran_ARCHITECTURE_ID ${MSVC_Fortran_ARCHITECTURE_ID})")
+endif()
+# configure variables set in this file for fast reload later on
+configure_file(${CMAKE_ROOT}/Modules/CMakeFortranCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeFortranCompiler.cmake
+ @ONLY
+ )
+set(CMAKE_Fortran_COMPILER_ENV_VAR "FC")
diff --git a/share/cmake-3.16/Modules/CMakeDetermineJavaCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineJavaCompiler.cmake
index 3092bb5..3092bb5 100644
--- a/share/cmake-3.16/Modules/CMakeDetermineJavaCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeDetermineJavaCompiler.cmake
diff --git a/share/cmake-3.16/Modules/CMakeDetermineOBJCCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineOBJCCompiler.cmake
index ad13eab..ad13eab 100644
--- a/share/cmake-3.16/Modules/CMakeDetermineOBJCCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeDetermineOBJCCompiler.cmake
diff --git a/share/cmake-3.16/Modules/CMakeDetermineOBJCXXCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineOBJCXXCompiler.cmake
index 60fcbb3..60fcbb3 100644
--- a/share/cmake-3.16/Modules/CMakeDetermineOBJCXXCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeDetermineOBJCXXCompiler.cmake
diff --git a/share/cmake-3.16/Modules/CMakeDetermineRCCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineRCCompiler.cmake
index 8801e16..8801e16 100644
--- a/share/cmake-3.16/Modules/CMakeDetermineRCCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeDetermineRCCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineSwiftCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineSwiftCompiler.cmake
new file mode 100644
index 0000000..688133f
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeDetermineSwiftCompiler.cmake
@@ -0,0 +1,78 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
+
+# Local system-specific compiler preferences for this language.
+include(Platform/${CMAKE_SYSTEM_NAME}-Determine-Swift OPTIONAL)
+include(Platform/${CMAKE_SYSTEM_NAME}-Swift OPTIONAL)
+if(NOT CMAKE_Swift_COMPILER_NAMES)
+ set(CMAKE_Swift_COMPILER_NAMES swiftc)
+endif()
+
+if("${CMAKE_GENERATOR}" STREQUAL "Xcode")
+ if(XCODE_VERSION VERSION_LESS 6.1)
+ message(FATAL_ERROR "Swift language not supported by Xcode ${XCODE_VERSION}")
+ endif()
+ set(CMAKE_Swift_COMPILER_XCODE_TYPE sourcecode.swift)
+ _cmake_find_compiler_path(Swift)
+elseif("${CMAKE_GENERATOR}" MATCHES "^Ninja")
+ if(CMAKE_Swift_COMPILER)
+ _cmake_find_compiler_path(Swift)
+ else()
+ set(CMAKE_Swift_COMPILER_INIT NOTFOUND)
+
+ if(NOT $ENV{SWIFTC} STREQUAL "")
+ get_filename_component(CMAKE_Swift_COMPILER_INIT $ENV{SWIFTC} PROGRAM
+ PROGRAM_ARGS CMAKE_Swift_FLAGS_ENV_INIT)
+ if(CMAKE_Swift_FLAGS_ENV_INIT)
+ set(CMAKE_Swift_COMPILER_ARG1 "${CMAKE_Swift_FLAGS_ENV_INIT}" CACHE
+ STRING "First argument to the Swift compiler")
+ endif()
+ if(NOT EXISTS ${CMAKE_Swift_COMPILER_INIT})
+ message(FATAL_ERROR "Could not find compiler set in environment variable SWIFTC\n$ENV{SWIFTC}.\n${CMAKE_Swift_COMPILER_INIT}")
+ endif()
+ endif()
+
+ if(NOT CMAKE_Swift_COMPILER_INIT)
+ set(CMAKE_Swift_COMPILER_LIST swiftc ${_CMAKE_TOOLCHAIN_PREFIX}swiftc)
+ endif()
+
+ _cmake_find_compiler(Swift)
+ endif()
+ mark_as_advanced(CMAKE_Swift_COMPILER)
+else()
+ message(FATAL_ERROR "Swift language not supported by \"${CMAKE_GENERATOR}\" generator")
+endif()
+
+# Build a small source file to identify the compiler.
+if(NOT CMAKE_Swift_COMPILER_ID_RUN)
+ set(CMAKE_Swift_COMPILER_ID_RUN 1)
+
+ if("${CMAKE_GENERATOR}" STREQUAL "Xcode")
+ list(APPEND CMAKE_Swift_COMPILER_ID_MATCH_VENDORS Apple)
+ set(CMAKE_Swift_COMPILER_ID_MATCH_VENDOR_REGEX_Apple "com.apple.xcode.tools.swift.compiler")
+
+ set(CMAKE_Swift_COMPILER_ID_TOOL_MATCH_REGEX "\nCompileSwift[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]* -c[^\r\n]*CompilerIdSwift/CompilerId/main.swift")
+ set(CMAKE_Swift_COMPILER_ID_TOOL_MATCH_INDEX 2)
+ endif()
+
+ # Try to identify the compiler.
+ set(CMAKE_Swift_COMPILER_ID)
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
+ CMAKE_DETERMINE_COMPILER_ID(Swift "" CompilerId/main.swift)
+endif()
+
+if (NOT _CMAKE_TOOLCHAIN_LOCATION)
+ get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_Swift_COMPILER}" PATH)
+endif ()
+
+set(_CMAKE_PROCESSING_LANGUAGE "Swift")
+include(CMakeFindBinUtils)
+unset(_CMAKE_PROCESSING_LANGUAGE)
+
+# configure variables set in this file for fast reload later on
+configure_file(${CMAKE_ROOT}/Modules/CMakeSwiftCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeSwiftCompiler.cmake @ONLY)
+
+set(CMAKE_Swift_COMPILER_ENV_VAR "SWIFTC")
diff --git a/share/cmake-3.17/Modules/CMakeDetermineSystem.cmake b/share/cmake-3.17/Modules/CMakeDetermineSystem.cmake
new file mode 100644
index 0000000..f3ec4da
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeDetermineSystem.cmake
@@ -0,0 +1,189 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This module is used by the Makefile generator to determine the following variables:
+# CMAKE_SYSTEM_NAME - on unix this is uname -s, for windows it is Windows
+# CMAKE_SYSTEM_VERSION - on unix this is uname -r, for windows it is empty
+# CMAKE_SYSTEM - ${CMAKE_SYSTEM}-${CMAKE_SYSTEM_VERSION}, for windows: ${CMAKE_SYSTEM}
+#
+# Expected uname -s output:
+#
+# AIX AIX
+# BSD/OS BSD/OS
+# FreeBSD FreeBSD
+# HP-UX HP-UX
+# Linux Linux
+# GNU/kFreeBSD GNU/kFreeBSD
+# NetBSD NetBSD
+# OpenBSD OpenBSD
+# OFS/1 (Digital Unix) OSF1
+# SCO OpenServer 5 SCO_SV
+# SCO UnixWare 7 UnixWare
+# SCO UnixWare (pre release 7) UNIX_SV
+# SCO XENIX Xenix
+# Solaris SunOS
+# SunOS SunOS
+# Tru64 Tru64
+# Ultrix ULTRIX
+# cygwin CYGWIN_NT-5.1
+# MacOSX Darwin
+
+
+# find out on which system cmake runs
+if(CMAKE_HOST_UNIX)
+ find_program(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin )
+ if(CMAKE_UNAME)
+ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "AIX")
+ exec_program(${CMAKE_UNAME} ARGS -v OUTPUT_VARIABLE _CMAKE_HOST_SYSTEM_MAJOR_VERSION)
+ exec_program(${CMAKE_UNAME} ARGS -r OUTPUT_VARIABLE _CMAKE_HOST_SYSTEM_MINOR_VERSION)
+ set(CMAKE_HOST_SYSTEM_VERSION "${_CMAKE_HOST_SYSTEM_MAJOR_VERSION}.${_CMAKE_HOST_SYSTEM_MINOR_VERSION}")
+ unset(_CMAKE_HOST_SYSTEM_MAJOR_VERSION)
+ unset(_CMAKE_HOST_SYSTEM_MINOR_VERSION)
+ else()
+ exec_program(${CMAKE_UNAME} ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION)
+ endif()
+ if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|CYGWIN.*|Darwin|^GNU$|Android")
+ exec_program(${CMAKE_UNAME} ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
+ RETURN_VALUE val)
+ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin" AND
+ CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "Power Macintosh")
+ # OS X ppc 'uname -m' may report 'Power Macintosh' instead of 'powerpc'
+ set(CMAKE_HOST_SYSTEM_PROCESSOR "powerpc")
+ endif()
+ elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "OpenBSD")
+ exec_program(arch ARGS -s OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
+ RETURN_VALUE val)
+ else()
+ exec_program(${CMAKE_UNAME} ARGS -p OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
+ RETURN_VALUE val)
+ if("${val}" GREATER 0)
+ exec_program(${CMAKE_UNAME} ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
+ RETURN_VALUE val)
+ endif()
+ endif()
+ # check the return of the last uname -m or -p
+ if("${val}" GREATER 0)
+ set(CMAKE_HOST_SYSTEM_PROCESSOR "unknown")
+ endif()
+ set(CMAKE_UNAME ${CMAKE_UNAME} CACHE INTERNAL "uname command")
+ # processor may have double quote in the name, and that needs to be removed
+ string(REPLACE "\"" "" CMAKE_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}")
+ string(REPLACE "/" "_" CMAKE_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}")
+ endif()
+else()
+ if(CMAKE_HOST_WIN32)
+ if (DEFINED ENV{PROCESSOR_ARCHITEW6432})
+ set (CMAKE_HOST_SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITEW6432}")
+ else()
+ set (CMAKE_HOST_SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITECTURE}")
+ endif()
+ endif()
+endif()
+
+# if a toolchain file is used, the user wants to cross compile.
+# in this case read the toolchain file and keep the CMAKE_HOST_SYSTEM_*
+# variables around so they can be used in CMakeLists.txt.
+# In all other cases, the host and target platform are the same.
+if(CMAKE_TOOLCHAIN_FILE)
+ # at first try to load it as path relative to the directory from which cmake has been run
+ include("${CMAKE_BINARY_DIR}/${CMAKE_TOOLCHAIN_FILE}" OPTIONAL RESULT_VARIABLE _INCLUDED_TOOLCHAIN_FILE)
+ if(NOT _INCLUDED_TOOLCHAIN_FILE)
+ # if the file isn't found there, check the default locations
+ include("${CMAKE_TOOLCHAIN_FILE}" OPTIONAL RESULT_VARIABLE _INCLUDED_TOOLCHAIN_FILE)
+ endif()
+
+ if(_INCLUDED_TOOLCHAIN_FILE)
+ set(CMAKE_TOOLCHAIN_FILE "${_INCLUDED_TOOLCHAIN_FILE}" CACHE FILEPATH "The CMake toolchain file" FORCE)
+ else()
+ message(FATAL_ERROR "Could not find toolchain file: ${CMAKE_TOOLCHAIN_FILE}")
+ set(CMAKE_TOOLCHAIN_FILE "NOTFOUND" CACHE FILEPATH "The CMake toolchain file" FORCE)
+ endif()
+endif()
+
+
+# if CMAKE_SYSTEM_NAME is here already set, either it comes from a toolchain file
+# or it was set via -DCMAKE_SYSTEM_NAME=...
+# if that's the case, assume we are crosscompiling
+if(CMAKE_SYSTEM_NAME)
+ if(NOT DEFINED CMAKE_CROSSCOMPILING)
+ set(CMAKE_CROSSCOMPILING TRUE)
+ endif()
+ set(PRESET_CMAKE_SYSTEM_NAME TRUE)
+elseif(CMAKE_VS_WINCE_VERSION)
+ set(CMAKE_SYSTEM_NAME "WindowsCE")
+ set(CMAKE_SYSTEM_VERSION "${CMAKE_VS_WINCE_VERSION}")
+ set(CMAKE_SYSTEM_PROCESSOR "${MSVC_C_ARCHITECTURE_ID}")
+ set(CMAKE_CROSSCOMPILING TRUE)
+ set(PRESET_CMAKE_SYSTEM_NAME TRUE)
+else()
+ set(CMAKE_SYSTEM_NAME "${CMAKE_HOST_SYSTEM_NAME}")
+ if(NOT DEFINED CMAKE_SYSTEM_VERSION)
+ set(CMAKE_SYSTEM_VERSION "${CMAKE_HOST_SYSTEM_VERSION}")
+ endif()
+ set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}")
+ set(CMAKE_CROSSCOMPILING FALSE)
+ set(PRESET_CMAKE_SYSTEM_NAME FALSE)
+endif()
+
+include(Platform/${CMAKE_SYSTEM_NAME}-Determine OPTIONAL)
+
+macro(ADJUST_CMAKE_SYSTEM_VARIABLES _PREFIX)
+ if(NOT ${_PREFIX}_NAME)
+ set(${_PREFIX}_NAME "UnknownOS")
+ endif()
+
+ # fix for BSD/OS , remove the /
+ if(${_PREFIX}_NAME MATCHES BSD.OS)
+ set(${_PREFIX}_NAME BSDOS)
+ endif()
+
+ # fix for GNU/kFreeBSD, remove the GNU/
+ if(${_PREFIX}_NAME MATCHES kFreeBSD)
+ set(${_PREFIX}_NAME kFreeBSD)
+ endif()
+
+ # fix for CYGWIN which has windows version in it
+ if(${_PREFIX}_NAME MATCHES CYGWIN)
+ set(${_PREFIX}_NAME CYGWIN)
+ endif()
+
+ # set CMAKE_SYSTEM to the CMAKE_SYSTEM_NAME
+ set(${_PREFIX} ${${_PREFIX}_NAME})
+ # if there is a CMAKE_SYSTEM_VERSION then add a -${CMAKE_SYSTEM_VERSION}
+ if(${_PREFIX}_VERSION)
+ set(${_PREFIX} ${${_PREFIX}}-${${_PREFIX}_VERSION})
+ endif()
+
+endmacro()
+
+ADJUST_CMAKE_SYSTEM_VARIABLES(CMAKE_SYSTEM)
+ADJUST_CMAKE_SYSTEM_VARIABLES(CMAKE_HOST_SYSTEM)
+
+# this file is also executed from cpack, then we don't need to generate these files
+# in this case there is no CMAKE_BINARY_DIR
+if(CMAKE_BINARY_DIR)
+ # write entry to the log file
+ if(PRESET_CMAKE_SYSTEM_NAME)
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "The target system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "The host system is: ${CMAKE_HOST_SYSTEM_NAME} - ${CMAKE_HOST_SYSTEM_VERSION} - ${CMAKE_HOST_SYSTEM_PROCESSOR}\n")
+ else()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "The system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n")
+ endif()
+
+ # if a toolchain file is used, it needs to be included in the configured file,
+ # so settings done there are also available if they don't go in the cache and in try_compile()
+ set(INCLUDE_CMAKE_TOOLCHAIN_FILE_IF_REQUIRED)
+ if(CMAKE_TOOLCHAIN_FILE)
+ set(INCLUDE_CMAKE_TOOLCHAIN_FILE_IF_REQUIRED "include(\"${CMAKE_TOOLCHAIN_FILE}\")")
+ endif()
+
+ # configure variables set in this file for fast reload, the template file is defined at the top of this file
+ configure_file(${CMAKE_ROOT}/Modules/CMakeSystem.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeSystem.cmake
+ @ONLY)
+
+endif()
diff --git a/share/cmake-3.16/Modules/CMakeDetermineVSServicePack.cmake b/share/cmake-3.17/Modules/CMakeDetermineVSServicePack.cmake
index 53868d2..53868d2 100644
--- a/share/cmake-3.16/Modules/CMakeDetermineVSServicePack.cmake
+++ b/share/cmake-3.17/Modules/CMakeDetermineVSServicePack.cmake
diff --git a/share/cmake-3.16/Modules/CMakeExpandImportedTargets.cmake b/share/cmake-3.17/Modules/CMakeExpandImportedTargets.cmake
index b8f471c..b8f471c 100644
--- a/share/cmake-3.16/Modules/CMakeExpandImportedTargets.cmake
+++ b/share/cmake-3.17/Modules/CMakeExpandImportedTargets.cmake
diff --git a/share/cmake-3.16/Modules/CMakeExportBuildSettings.cmake b/share/cmake-3.17/Modules/CMakeExportBuildSettings.cmake
index cafc830..cafc830 100644
--- a/share/cmake-3.16/Modules/CMakeExportBuildSettings.cmake
+++ b/share/cmake-3.17/Modules/CMakeExportBuildSettings.cmake
diff --git a/share/cmake-3.16/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake b/share/cmake-3.17/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
index 11f4a29..11f4a29 100644
--- a/share/cmake-3.16/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
+++ b/share/cmake-3.17/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
diff --git a/share/cmake-3.16/Modules/CMakeFindBinUtils.cmake b/share/cmake-3.17/Modules/CMakeFindBinUtils.cmake
index c23e447..c23e447 100644
--- a/share/cmake-3.16/Modules/CMakeFindBinUtils.cmake
+++ b/share/cmake-3.17/Modules/CMakeFindBinUtils.cmake
diff --git a/share/cmake-3.16/Modules/CMakeFindCodeBlocks.cmake b/share/cmake-3.17/Modules/CMakeFindCodeBlocks.cmake
index bf27ec1..bf27ec1 100644
--- a/share/cmake-3.16/Modules/CMakeFindCodeBlocks.cmake
+++ b/share/cmake-3.17/Modules/CMakeFindCodeBlocks.cmake
diff --git a/share/cmake-3.16/Modules/CMakeFindDependencyMacro.cmake b/share/cmake-3.17/Modules/CMakeFindDependencyMacro.cmake
index bcdfbeb..bcdfbeb 100644
--- a/share/cmake-3.16/Modules/CMakeFindDependencyMacro.cmake
+++ b/share/cmake-3.17/Modules/CMakeFindDependencyMacro.cmake
diff --git a/share/cmake-3.16/Modules/CMakeFindEclipseCDT4.cmake b/share/cmake-3.17/Modules/CMakeFindEclipseCDT4.cmake
index 199005d..199005d 100644
--- a/share/cmake-3.16/Modules/CMakeFindEclipseCDT4.cmake
+++ b/share/cmake-3.17/Modules/CMakeFindEclipseCDT4.cmake
diff --git a/share/cmake-3.16/Modules/CMakeFindFrameworks.cmake b/share/cmake-3.17/Modules/CMakeFindFrameworks.cmake
index 06c05fb..06c05fb 100644
--- a/share/cmake-3.16/Modules/CMakeFindFrameworks.cmake
+++ b/share/cmake-3.17/Modules/CMakeFindFrameworks.cmake
diff --git a/share/cmake-3.16/Modules/CMakeFindJavaCommon.cmake b/share/cmake-3.17/Modules/CMakeFindJavaCommon.cmake
index 46b6280..46b6280 100644
--- a/share/cmake-3.16/Modules/CMakeFindJavaCommon.cmake
+++ b/share/cmake-3.17/Modules/CMakeFindJavaCommon.cmake
diff --git a/share/cmake-3.16/Modules/CMakeFindKate.cmake b/share/cmake-3.17/Modules/CMakeFindKate.cmake
index 9aaf6e5..9aaf6e5 100644
--- a/share/cmake-3.16/Modules/CMakeFindKate.cmake
+++ b/share/cmake-3.17/Modules/CMakeFindKate.cmake
diff --git a/share/cmake-3.16/Modules/CMakeFindPackageMode.cmake b/share/cmake-3.17/Modules/CMakeFindPackageMode.cmake
index 815dfc9..815dfc9 100644
--- a/share/cmake-3.16/Modules/CMakeFindPackageMode.cmake
+++ b/share/cmake-3.17/Modules/CMakeFindPackageMode.cmake
diff --git a/share/cmake-3.16/Modules/CMakeFindSublimeText2.cmake b/share/cmake-3.17/Modules/CMakeFindSublimeText2.cmake
index 7f67bf0..7f67bf0 100644
--- a/share/cmake-3.16/Modules/CMakeFindSublimeText2.cmake
+++ b/share/cmake-3.17/Modules/CMakeFindSublimeText2.cmake
diff --git a/share/cmake-3.16/Modules/CMakeFindWMake.cmake b/share/cmake-3.17/Modules/CMakeFindWMake.cmake
index a20d069..a20d069 100644
--- a/share/cmake-3.16/Modules/CMakeFindWMake.cmake
+++ b/share/cmake-3.17/Modules/CMakeFindWMake.cmake
diff --git a/share/cmake-3.16/Modules/CMakeFindXCode.cmake b/share/cmake-3.17/Modules/CMakeFindXCode.cmake
index 281af96..281af96 100644
--- a/share/cmake-3.16/Modules/CMakeFindXCode.cmake
+++ b/share/cmake-3.17/Modules/CMakeFindXCode.cmake
diff --git a/share/cmake-3.16/Modules/CMakeForceCompiler.cmake b/share/cmake-3.17/Modules/CMakeForceCompiler.cmake
index 7048806..7048806 100644
--- a/share/cmake-3.16/Modules/CMakeForceCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeForceCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFortranCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeFortranCompiler.cmake.in
new file mode 100644
index 0000000..34f44aa
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeFortranCompiler.cmake.in
@@ -0,0 +1,68 @@
+set(CMAKE_Fortran_COMPILER "@CMAKE_Fortran_COMPILER@")
+set(CMAKE_Fortran_COMPILER_ARG1 "@CMAKE_Fortran_COMPILER_ARG1@")
+set(CMAKE_Fortran_COMPILER_ID "@CMAKE_Fortran_COMPILER_ID@")
+set(CMAKE_Fortran_COMPILER_VERSION "@CMAKE_Fortran_COMPILER_VERSION@")
+set(CMAKE_Fortran_COMPILER_WRAPPER "@CMAKE_Fortran_COMPILER_WRAPPER@")
+set(CMAKE_Fortran_PLATFORM_ID "@CMAKE_Fortran_PLATFORM_ID@")
+set(CMAKE_Fortran_SIMULATE_ID "@CMAKE_Fortran_SIMULATE_ID@")
+set(CMAKE_Fortran_SIMULATE_VERSION "@CMAKE_Fortran_SIMULATE_VERSION@")
+@_SET_CMAKE_Fortran_XL_CPP@
+@_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID@
+@SET_MSVC_Fortran_ARCHITECTURE_ID@
+set(CMAKE_AR "@CMAKE_AR@")
+set(CMAKE_Fortran_COMPILER_AR "@CMAKE_Fortran_COMPILER_AR@")
+set(CMAKE_RANLIB "@CMAKE_RANLIB@")
+set(CMAKE_Fortran_COMPILER_RANLIB "@CMAKE_Fortran_COMPILER_RANLIB@")
+set(CMAKE_COMPILER_IS_GNUG77 @CMAKE_COMPILER_IS_GNUG77@)
+set(CMAKE_Fortran_COMPILER_LOADED 1)
+set(CMAKE_Fortran_COMPILER_WORKS @CMAKE_Fortran_COMPILER_WORKS@)
+set(CMAKE_Fortran_ABI_COMPILED @CMAKE_Fortran_ABI_COMPILED@)
+set(CMAKE_COMPILER_IS_MINGW @CMAKE_COMPILER_IS_MINGW@)
+set(CMAKE_COMPILER_IS_CYGWIN @CMAKE_COMPILER_IS_CYGWIN@)
+if(CMAKE_COMPILER_IS_CYGWIN)
+ set(CYGWIN 1)
+ set(UNIX 1)
+endif()
+
+set(CMAKE_Fortran_COMPILER_ENV_VAR "FC")
+
+set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 @CMAKE_Fortran_COMPILER_SUPPORTS_F90@)
+
+if(CMAKE_COMPILER_IS_MINGW)
+ set(MINGW 1)
+endif()
+set(CMAKE_Fortran_COMPILER_ID_RUN 1)
+set(CMAKE_Fortran_SOURCE_FILE_EXTENSIONS f;F;fpp;FPP;f77;F77;f90;F90;for;For;FOR;f95;F95)
+set(CMAKE_Fortran_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_Fortran_LINKER_PREFERENCE 20)
+if(UNIX)
+ set(CMAKE_Fortran_OUTPUT_EXTENSION .o)
+else()
+ set(CMAKE_Fortran_OUTPUT_EXTENSION .obj)
+endif()
+
+# Save compiler ABI information.
+set(CMAKE_Fortran_SIZEOF_DATA_PTR "@CMAKE_Fortran_SIZEOF_DATA_PTR@")
+set(CMAKE_Fortran_COMPILER_ABI "@CMAKE_Fortran_COMPILER_ABI@")
+set(CMAKE_Fortran_LIBRARY_ARCHITECTURE "@CMAKE_Fortran_LIBRARY_ARCHITECTURE@")
+
+if(CMAKE_Fortran_SIZEOF_DATA_PTR AND NOT CMAKE_SIZEOF_VOID_P)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_Fortran_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_Fortran_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_Fortran_COMPILER_ABI}")
+endif()
+
+if(CMAKE_Fortran_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "@CMAKE_Fortran_LIBRARY_ARCHITECTURE@")
+endif()
+
+@CMAKE_Fortran_COMPILER_CUSTOM_CODE@
+@CMAKE_Fortran_SYSROOT_FLAG_CODE@
+@CMAKE_Fortran_OSX_DEPLOYMENT_TARGET_FLAG_CODE@
+
+set(CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES "@CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES@")
+set(CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES "@CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES@")
+set(CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES "@CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES@")
+set(CMAKE_Fortran_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "@CMAKE_Fortran_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES@")
diff --git a/share/cmake-3.16/Modules/CMakeFortranCompilerABI.F b/share/cmake-3.17/Modules/CMakeFortranCompilerABI.F
index f4a5489..f4a5489 100644
--- a/share/cmake-3.16/Modules/CMakeFortranCompilerABI.F
+++ b/share/cmake-3.17/Modules/CMakeFortranCompilerABI.F
diff --git a/share/cmake-3.16/Modules/CMakeFortranCompilerId.F.in b/share/cmake-3.17/Modules/CMakeFortranCompilerId.F.in
index 30f8d4c..30f8d4c 100644
--- a/share/cmake-3.16/Modules/CMakeFortranCompilerId.F.in
+++ b/share/cmake-3.17/Modules/CMakeFortranCompilerId.F.in
diff --git a/share/cmake-3.17/Modules/CMakeFortranInformation.cmake b/share/cmake-3.17/Modules/CMakeFortranInformation.cmake
new file mode 100644
index 0000000..e80716b
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeFortranInformation.cmake
@@ -0,0 +1,222 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+include(CMakeLanguageInformation)
+
+# This file sets the basic flags for the Fortran language in CMake.
+# It also loads the available platform file for the system-compiler
+# if it exists.
+
+set(_INCLUDED_FILE 0)
+
+# Load compiler-specific information.
+if(CMAKE_Fortran_COMPILER_ID)
+ include(Compiler/${CMAKE_Fortran_COMPILER_ID}-Fortran OPTIONAL)
+endif()
+
+set(CMAKE_BASE_NAME)
+get_filename_component(CMAKE_BASE_NAME "${CMAKE_Fortran_COMPILER}" NAME_WE)
+# since the gnu compiler has several names force g++
+if(CMAKE_COMPILER_IS_GNUG77)
+ set(CMAKE_BASE_NAME g77)
+endif()
+if(CMAKE_Fortran_COMPILER_ID)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_Fortran_COMPILER_ID}-Fortran OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+endif()
+if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL
+ RESULT_VARIABLE _INCLUDED_FILE)
+endif ()
+
+# load any compiler-wrapper specific information
+if (CMAKE_Fortran_COMPILER_WRAPPER)
+ __cmake_include_compiler_wrapper(Fortran)
+endif ()
+
+# We specify the compiler information in the system file for some
+# platforms, but this language may not have been enabled when the file
+# was first included. Include it again to get the language info.
+# Remove this when all compiler info is removed from system files.
+if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_SYSTEM_NAME} OPTIONAL)
+endif ()
+
+if(CMAKE_Fortran_SIZEOF_DATA_PTR)
+ foreach(f ${CMAKE_Fortran_ABI_FILES})
+ include(${f})
+ endforeach()
+ unset(CMAKE_Fortran_ABI_FILES)
+endif()
+
+# This should be included before the _INIT variables are
+# used to initialize the cache. Since the rule variables
+# have if blocks on them, users can still define them here.
+# But, it should still be after the platform file so changes can
+# be made to those values.
+
+if(CMAKE_USER_MAKE_RULES_OVERRIDE)
+ # Save the full path of the file so try_compile can use it.
+ include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
+ set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
+endif()
+
+if(CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran)
+ # Save the full path of the file so try_compile can use it.
+ include(${CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran} RESULT_VARIABLE _override)
+ set(CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran "${_override}")
+endif()
+
+if(NOT CMAKE_Fortran_COMPILE_OPTIONS_PIC)
+ set(CMAKE_Fortran_COMPILE_OPTIONS_PIC ${CMAKE_C_COMPILE_OPTIONS_PIC})
+endif()
+
+if(NOT CMAKE_Fortran_COMPILE_OPTIONS_PIE)
+ set(CMAKE_Fortran_COMPILE_OPTIONS_PIE ${CMAKE_C_COMPILE_OPTIONS_PIE})
+endif()
+if(NOT CMAKE_Fortran_LINK_OPTIONS_PIE)
+ set(CMAKE_Fortran_LINK_OPTIONS_PIE ${CMAKE_C_LINK_OPTIONS_PIE})
+endif()
+if(NOT CMAKE_Fortran_LINK_OPTIONS_NO_PIE)
+ set(CMAKE_Fortran_LINK_OPTIONS_NO_PIE ${CMAKE_C_LINK_OPTIONS_NO_PIE})
+endif()
+
+if(NOT CMAKE_Fortran_COMPILE_OPTIONS_DLL)
+ set(CMAKE_Fortran_COMPILE_OPTIONS_DLL ${CMAKE_C_COMPILE_OPTIONS_DLL})
+endif()
+
+# Create a set of shared library variable specific to Fortran
+# For 90% of the systems, these are the same flags as the C versions
+# so if these are not set just copy the flags from the c version
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS)
+ set(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_Fortran_FLAGS)
+ set(CMAKE_SHARED_LIBRARY_Fortran_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS)
+ set(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG)
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP)
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_RPATH_LINK_Fortran_FLAG)
+ set(CMAKE_SHARED_LIBRARY_RPATH_LINK_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_EXE_EXPORTS_Fortran_FLAG)
+ set(CMAKE_EXE_EXPORTS_Fortran_FLAG ${CMAKE_EXE_EXPORTS_C_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG)
+ set(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_SONAME_C_FLAG})
+endif()
+
+# for most systems a module is the same as a shared library
+# so unless the variable CMAKE_MODULE_EXISTS is set just
+# copy the values from the LIBRARY variables
+if(NOT CMAKE_MODULE_EXISTS)
+ set(CMAKE_SHARED_MODULE_Fortran_FLAGS ${CMAKE_SHARED_LIBRARY_Fortran_FLAGS})
+ set(CMAKE_SHARED_MODULE_CREATE_Fortran_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS})
+endif()
+
+# repeat for modules
+if(NOT DEFINED CMAKE_SHARED_MODULE_CREATE_Fortran_FLAGS)
+ set(CMAKE_SHARED_MODULE_CREATE_Fortran_FLAGS ${CMAKE_SHARED_MODULE_CREATE_C_FLAGS})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_MODULE_Fortran_FLAGS)
+ set(CMAKE_SHARED_MODULE_Fortran_FLAGS ${CMAKE_SHARED_MODULE_C_FLAGS})
+endif()
+
+if(NOT DEFINED CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG)
+ set(CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG_SEP)
+ set(CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP})
+endif()
+
+if(NOT DEFINED CMAKE_EXECUTABLE_RPATH_LINK_Fortran_FLAG)
+ set(CMAKE_EXECUTABLE_RPATH_LINK_Fortran_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_Fortran_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_Fortran_WITH_RUNTIME_PATH)
+ set(CMAKE_SHARED_LIBRARY_LINK_Fortran_WITH_RUNTIME_PATH ${CMAKE_SHARED_LIBRARY_LINK_C_WITH_RUNTIME_PATH})
+endif()
+
+if(NOT CMAKE_INCLUDE_FLAG_Fortran)
+ set(CMAKE_INCLUDE_FLAG_Fortran ${CMAKE_INCLUDE_FLAG_C})
+endif()
+
+set(CMAKE_VERBOSE_MAKEFILE FALSE CACHE BOOL "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo.")
+
+set(CMAKE_Fortran_FLAGS_INIT "$ENV{FFLAGS} ${CMAKE_Fortran_FLAGS_INIT}")
+
+cmake_initialize_per_config_variable(CMAKE_Fortran_FLAGS "Flags used by the Fortran compiler")
+
+if(NOT CMAKE_Fortran_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_Fortran_COMPILER_LAUNCHER})
+ set(CMAKE_Fortran_COMPILER_LAUNCHER "$ENV{CMAKE_Fortran_COMPILER_LAUNCHER}"
+ CACHE STRING "Compiler launcher for Fortran.")
+endif()
+
+include(CMakeCommonLanguageInclude)
+
+# now define the following rule variables
+# CMAKE_Fortran_CREATE_SHARED_LIBRARY
+# CMAKE_Fortran_CREATE_SHARED_MODULE
+# CMAKE_Fortran_COMPILE_OBJECT
+# CMAKE_Fortran_LINK_EXECUTABLE
+
+# create a Fortran shared library
+if(NOT CMAKE_Fortran_CREATE_SHARED_LIBRARY)
+ set(CMAKE_Fortran_CREATE_SHARED_LIBRARY
+ "<CMAKE_Fortran_COMPILER> <CMAKE_SHARED_LIBRARY_Fortran_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
+endif()
+
+# create a Fortran shared module just copy the shared library rule
+if(NOT CMAKE_Fortran_CREATE_SHARED_MODULE)
+ set(CMAKE_Fortran_CREATE_SHARED_MODULE ${CMAKE_Fortran_CREATE_SHARED_LIBRARY})
+endif()
+
+# Create a static archive incrementally for large object file counts.
+# If CMAKE_Fortran_CREATE_STATIC_LIBRARY is set it will override these.
+if(NOT DEFINED CMAKE_Fortran_ARCHIVE_CREATE)
+ set(CMAKE_Fortran_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
+endif()
+if(NOT DEFINED CMAKE_Fortran_ARCHIVE_APPEND)
+ set(CMAKE_Fortran_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
+endif()
+if(NOT DEFINED CMAKE_Fortran_ARCHIVE_FINISH)
+ set(CMAKE_Fortran_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
+endif()
+
+# compile a Fortran file into an object file
+# (put -o after -c to workaround bug in at least one mpif77 wrapper)
+if(NOT CMAKE_Fortran_COMPILE_OBJECT)
+ set(CMAKE_Fortran_COMPILE_OBJECT
+ "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -c <SOURCE> -o <OBJECT>")
+endif()
+
+# link a fortran program
+if(NOT CMAKE_Fortran_LINK_EXECUTABLE)
+ set(CMAKE_Fortran_LINK_EXECUTABLE
+ "<CMAKE_Fortran_COMPILER> <CMAKE_Fortran_LINK_FLAGS> <LINK_FLAGS> <FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+endif()
+
+if(CMAKE_Fortran_STANDARD_LIBRARIES_INIT)
+ set(CMAKE_Fortran_STANDARD_LIBRARIES "${CMAKE_Fortran_STANDARD_LIBRARIES_INIT}"
+ CACHE STRING "Libraries linked by default with all Fortran applications.")
+ mark_as_advanced(CMAKE_Fortran_STANDARD_LIBRARIES)
+endif()
+
+# set this variable so we can avoid loading this more than once.
+set(CMAKE_Fortran_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.17/Modules/CMakeGenericSystem.cmake b/share/cmake-3.17/Modules/CMakeGenericSystem.cmake
new file mode 100644
index 0000000..f539b46
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeGenericSystem.cmake
@@ -0,0 +1,187 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+include(CMakeInitializeConfigs)
+
+set(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic
+set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared
+set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib
+set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath
+set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty
+set(CMAKE_INCLUDE_FLAG_C "-I") # -I
+set(CMAKE_LIBRARY_PATH_FLAG "-L")
+set(CMAKE_LIBRARY_PATH_TERMINATOR "") # for the Digital Mars D compiler the link paths have to be terminated with a "/"
+set(CMAKE_LINK_LIBRARY_FLAG "-l")
+
+set(CMAKE_LINK_LIBRARY_SUFFIX "")
+set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
+set(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") # .so
+set(CMAKE_EXECUTABLE_SUFFIX "") # .exe
+set(CMAKE_DL_LIBS "dl")
+
+set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a")
+
+set(CMAKE_AUTOGEN_ORIGIN_DEPENDS ON)
+set(CMAKE_AUTOMOC_COMPILER_PREDEFINES ON)
+set(CMAKE_AUTOMOC_PATH_PREFIX ON)
+set(CMAKE_AUTOMOC_MACRO_NAMES "Q_OBJECT" "Q_GADGET" "Q_NAMESPACE" "Q_NAMESPACE_EXPORT")
+
+# basically all general purpose OSs support shared libs
+set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)
+
+set (CMAKE_SKIP_RPATH "NO" CACHE BOOL
+ "If set, runtime paths are not added when using shared libraries.")
+set (CMAKE_SKIP_INSTALL_RPATH "NO" CACHE BOOL
+ "If set, runtime paths are not added when installing shared libraries, but are added when building.")
+
+set(CMAKE_VERBOSE_MAKEFILE FALSE CACHE BOOL "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo.")
+
+if(CMAKE_GENERATOR MATCHES "Make")
+ set(CMAKE_COLOR_MAKEFILE ON CACHE BOOL
+ "Enable/Disable color output during build."
+ )
+ mark_as_advanced(CMAKE_COLOR_MAKEFILE)
+ if(DEFINED CMAKE_RULE_MESSAGES)
+ set_property(GLOBAL PROPERTY RULE_MESSAGES ${CMAKE_RULE_MESSAGES})
+ endif()
+ if(DEFINED CMAKE_TARGET_MESSAGES)
+ set_property(GLOBAL PROPERTY TARGET_MESSAGES ${CMAKE_TARGET_MESSAGES})
+ endif()
+ if(CMAKE_GENERATOR MATCHES "Unix Makefiles")
+ set(CMAKE_EXPORT_COMPILE_COMMANDS "$ENV{CMAKE_EXPORT_COMPILE_COMMANDS}"
+ CACHE BOOL "Enable/Disable output of compile commands during generation."
+ )
+ mark_as_advanced(CMAKE_EXPORT_COMPILE_COMMANDS)
+ endif()
+endif()
+
+if(CMAKE_GENERATOR MATCHES "Ninja")
+ set(CMAKE_EXPORT_COMPILE_COMMANDS "$ENV{CMAKE_EXPORT_COMPILE_COMMANDS}"
+ CACHE BOOL "Enable/Disable output of compile commands during generation."
+ )
+ mark_as_advanced(CMAKE_EXPORT_COMPILE_COMMANDS)
+endif()
+
+# GetDefaultWindowsPrefixBase
+#
+# Compute the base directory for CMAKE_INSTALL_PREFIX based on:
+# - is this 32-bit or 64-bit Windows
+# - is this 32-bit or 64-bit CMake running
+# - what architecture targets will be built
+#
+function(GetDefaultWindowsPrefixBase var)
+
+ # Try to guess what architecture targets will end up being built as,
+ # even if CMAKE_SIZEOF_VOID_P is not computed yet... We need to know
+ # the architecture of the targets being built to choose the right
+ # default value for CMAKE_INSTALL_PREFIX.
+ #
+ if("${CMAKE_GENERATOR}" MATCHES "(Win64|IA64)")
+ set(arch_hint "x64")
+ elseif("${CMAKE_GENERATOR_PLATFORM}" MATCHES "ARM64")
+ set(arch_hint "ARM64")
+ elseif("${CMAKE_GENERATOR}" MATCHES "ARM")
+ set(arch_hint "ARM")
+ elseif("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
+ set(arch_hint "x64")
+ elseif("$ENV{LIB}" MATCHES "(amd64|ia64)")
+ set(arch_hint "x64")
+ endif()
+
+ if(NOT arch_hint)
+ set(arch_hint "x86")
+ endif()
+
+ # default env in a 64-bit app on Win64:
+ # ProgramFiles=C:\Program Files
+ # ProgramFiles(x86)=C:\Program Files (x86)
+ # ProgramW6432=C:\Program Files
+ #
+ # default env in a 32-bit app on Win64:
+ # ProgramFiles=C:\Program Files (x86)
+ # ProgramFiles(x86)=C:\Program Files (x86)
+ # ProgramW6432=C:\Program Files
+ #
+ # default env in a 32-bit app on Win32:
+ # ProgramFiles=C:\Program Files
+ # ProgramFiles(x86) NOT DEFINED
+ # ProgramW6432 NOT DEFINED
+
+ # By default, use the ProgramFiles env var as the base value of
+ # CMAKE_INSTALL_PREFIX:
+ #
+ set(_PREFIX_ENV_VAR "ProgramFiles")
+
+ if ("$ENV{ProgramW6432}" STREQUAL "")
+ # running on 32-bit Windows
+ # must be a 32-bit CMake, too...
+ #message("guess: this is a 32-bit CMake running on 32-bit Windows")
+ else()
+ # running on 64-bit Windows
+ if ("$ENV{ProgramW6432}" STREQUAL "$ENV{ProgramFiles}")
+ # 64-bit CMake
+ #message("guess: this is a 64-bit CMake running on 64-bit Windows")
+ if(NOT "${arch_hint}" STREQUAL "x64")
+ # building 32-bit targets
+ set(_PREFIX_ENV_VAR "ProgramFiles(x86)")
+ endif()
+ else()
+ # 32-bit CMake
+ #message("guess: this is a 32-bit CMake running on 64-bit Windows")
+ if("${arch_hint}" STREQUAL "x64")
+ # building 64-bit targets
+ set(_PREFIX_ENV_VAR "ProgramW6432")
+ endif()
+ endif()
+ endif()
+
+ #if("${arch_hint}" STREQUAL "x64")
+ # message("guess: you are building a 64-bit app")
+ #else()
+ # message("guess: you are building a 32-bit app")
+ #endif()
+
+ if(NOT "$ENV{${_PREFIX_ENV_VAR}}" STREQUAL "")
+ file(TO_CMAKE_PATH "$ENV{${_PREFIX_ENV_VAR}}" _base)
+ elseif(NOT "$ENV{SystemDrive}" STREQUAL "")
+ set(_base "$ENV{SystemDrive}/Program Files")
+ else()
+ set(_base "C:/Program Files")
+ endif()
+
+ set(${var} "${_base}" PARENT_SCOPE)
+endfunction()
+
+
+# Set a variable to indicate whether the value of CMAKE_INSTALL_PREFIX
+# was initialized by the block below. This is useful for user
+# projects to change the default prefix while still allowing the
+# command line to override it.
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT 1)
+endif()
+
+# Choose a default install prefix for this platform.
+if(CMAKE_HOST_UNIX)
+ set(CMAKE_INSTALL_PREFIX "/usr/local"
+ CACHE PATH "Install path prefix, prepended onto install directories.")
+else()
+ GetDefaultWindowsPrefixBase(CMAKE_GENERIC_PROGRAM_FILES)
+ set(CMAKE_INSTALL_PREFIX
+ "${CMAKE_GENERIC_PROGRAM_FILES}/${PROJECT_NAME}"
+ CACHE PATH "Install path prefix, prepended onto install directories.")
+ set(CMAKE_GENERIC_PROGRAM_FILES)
+endif()
+
+# Set a variable which will be used as component name in install() commands
+# where no COMPONENT has been given:
+set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "Unspecified")
+
+mark_as_advanced(
+ CMAKE_SKIP_RPATH
+ CMAKE_SKIP_INSTALL_RPATH
+ CMAKE_VERBOSE_MAKEFILE
+)
diff --git a/share/cmake-3.17/Modules/CMakeGraphVizOptions.cmake b/share/cmake-3.17/Modules/CMakeGraphVizOptions.cmake
new file mode 100644
index 0000000..be4a3be
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeGraphVizOptions.cmake
@@ -0,0 +1,149 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CMakeGraphVizOptions
+--------------------
+
+The builtin Graphviz support of CMake.
+
+Generating Graphviz files
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+CMake can generate `Graphviz <https://www.graphviz.org/>`_ files showing the
+dependencies between the targets in a project, as well as external libraries
+which are linked against.
+
+When running CMake with the ``--graphviz=foo.dot`` option, it produces:
+
+* a ``foo.dot`` file, showing all dependencies in the project
+* a ``foo.dot.<target>`` file for each target, showing on which other targets
+ it depends
+* a ``foo.dot.<target>.dependers`` file for each target, showing which other
+ targets depend on it
+
+Those .dot files can be converted to images using the *dot* command from the
+Graphviz package:
+
+.. code-block:: shell
+
+ dot -Tpng -o foo.png foo.dot
+
+The different dependency types ``PUBLIC``, ``INTERFACE`` and ``PRIVATE``
+are represented as solid, dashed and dotted edges.
+
+Variables specific to the Graphviz support
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The resulting graphs can be huge. The look and content of the generated graphs
+can be controlled using the file ``CMakeGraphVizOptions.cmake``. This file is
+first searched in :variable:`CMAKE_BINARY_DIR`, and then in
+:variable:`CMAKE_SOURCE_DIR`. If found, the variables set in it are used to
+adjust options for the generated Graphviz files.
+
+.. variable:: GRAPHVIZ_GRAPH_NAME
+
+ The graph name.
+
+ * Mandatory: NO
+ * Default: value of :variable:`CMAKE_PROJECT_NAME`
+
+.. variable:: GRAPHVIZ_GRAPH_HEADER
+
+ The header written at the top of the Graphviz files.
+
+ * Mandatory: NO
+ * Default: "node [ fontsize = "12" ];"
+
+.. variable:: GRAPHVIZ_NODE_PREFIX
+
+ The prefix for each node in the Graphviz files.
+
+ * Mandatory: NO
+ * Default: "node"
+
+.. variable:: GRAPHVIZ_EXECUTABLES
+
+ Set to FALSE to exclude executables from the generated graphs.
+
+ * Mandatory: NO
+ * Default: TRUE
+
+.. variable:: GRAPHVIZ_STATIC_LIBS
+
+ Set to FALSE to exclude static libraries from the generated graphs.
+
+ * Mandatory: NO
+ * Default: TRUE
+
+.. variable:: GRAPHVIZ_SHARED_LIBS
+
+ Set to FALSE to exclude shared libraries from the generated graphs.
+
+ * Mandatory: NO
+ * Default: TRUE
+
+.. variable:: GRAPHVIZ_MODULE_LIBS
+
+ Set to FALSE to exclude module libraries from the generated graphs.
+
+ * Mandatory: NO
+ * Default: TRUE
+
+.. variable:: GRAPHVIZ_INTERFACE_LIBS
+
+ Set to FALSE to exclude interface libraries from the generated graphs.
+
+ * Mandatory: NO
+ * Default: TRUE
+
+.. variable:: GRAPHVIZ_OBJECT_LIBS
+
+ Set to FALSE to exclude object libraries from the generated graphs.
+
+ * Mandatory: NO
+ * Default: TRUE
+
+.. variable:: GRAPHVIZ_UNKNOWN_LIBS
+
+ Set to FALSE to exclude unknown libraries from the generated graphs.
+
+ * Mandatory: NO
+ * Default: TRUE
+
+.. variable:: GRAPHVIZ_EXTERNAL_LIBS
+
+ Set to FALSE to exclude external libraries from the generated graphs.
+
+ * Mandatory: NO
+ * Default: TRUE
+
+.. variable:: GRAPHVIZ_CUSTOM_TARGETS
+
+ Set to TRUE to include custom targets in the generated graphs.
+
+ * Mandatory: NO
+ * Default: FALSE
+
+.. variable:: GRAPHVIZ_IGNORE_TARGETS
+
+ A list of regular expressions for names of targets to exclude from the
+ generated graphs.
+
+ * Mandatory: NO
+ * Default: empty
+
+.. variable:: GRAPHVIZ_GENERATE_PER_TARGET
+
+ Set to FALSE to not generate per-target graphs ``foo.dot.<target>``.
+
+ * Mandatory: NO
+ * Default: TRUE
+
+.. variable:: GRAPHVIZ_GENERATE_DEPENDERS
+
+ Set to FALSE to not generate depender graphs ``foo.dot.<target>.dependers``.
+
+ * Mandatory: NO
+ * Default: TRUE
+#]=======================================================================]
diff --git a/share/cmake-3.16/Modules/CMakeIOSInstallCombined.cmake b/share/cmake-3.17/Modules/CMakeIOSInstallCombined.cmake
index 418bafd..418bafd 100644
--- a/share/cmake-3.16/Modules/CMakeIOSInstallCombined.cmake
+++ b/share/cmake-3.17/Modules/CMakeIOSInstallCombined.cmake
diff --git a/share/cmake-3.16/Modules/CMakeImportBuildSettings.cmake b/share/cmake-3.17/Modules/CMakeImportBuildSettings.cmake
index ec1effb..ec1effb 100644
--- a/share/cmake-3.16/Modules/CMakeImportBuildSettings.cmake
+++ b/share/cmake-3.17/Modules/CMakeImportBuildSettings.cmake
diff --git a/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake b/share/cmake-3.17/Modules/CMakeInitializeConfigs.cmake
index 9dfe040..9dfe040 100644
--- a/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake
+++ b/share/cmake-3.17/Modules/CMakeInitializeConfigs.cmake
diff --git a/share/cmake-3.16/Modules/CMakeJOMFindMake.cmake b/share/cmake-3.17/Modules/CMakeJOMFindMake.cmake
index f56a588..f56a588 100644
--- a/share/cmake-3.16/Modules/CMakeJOMFindMake.cmake
+++ b/share/cmake-3.17/Modules/CMakeJOMFindMake.cmake
diff --git a/share/cmake-3.16/Modules/CMakeJavaCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeJavaCompiler.cmake.in
index cd4158c..cd4158c 100644
--- a/share/cmake-3.16/Modules/CMakeJavaCompiler.cmake.in
+++ b/share/cmake-3.17/Modules/CMakeJavaCompiler.cmake.in
diff --git a/share/cmake-3.16/Modules/CMakeJavaInformation.cmake b/share/cmake-3.17/Modules/CMakeJavaInformation.cmake
index 989afc1..989afc1 100644
--- a/share/cmake-3.16/Modules/CMakeJavaInformation.cmake
+++ b/share/cmake-3.17/Modules/CMakeJavaInformation.cmake
diff --git a/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake b/share/cmake-3.17/Modules/CMakeLanguageInformation.cmake
index 674ab86..674ab86 100644
--- a/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake
+++ b/share/cmake-3.17/Modules/CMakeLanguageInformation.cmake
diff --git a/share/cmake-3.16/Modules/CMakeMSYSFindMake.cmake b/share/cmake-3.17/Modules/CMakeMSYSFindMake.cmake
index 33b02c9..33b02c9 100644
--- a/share/cmake-3.16/Modules/CMakeMSYSFindMake.cmake
+++ b/share/cmake-3.17/Modules/CMakeMSYSFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeMinGWFindMake.cmake b/share/cmake-3.17/Modules/CMakeMinGWFindMake.cmake
new file mode 100644
index 0000000..f026e9a
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeMinGWFindMake.cmake
@@ -0,0 +1,11 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+find_program(CMAKE_MAKE_PROGRAM mingw32-make.exe PATHS
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\MinGW;InstallLocation]/bin"
+ c:/MinGW/bin /MinGW/bin
+ "[HKEY_CURRENT_USER\\Software\\CodeBlocks;Path]/MinGW/bin"
+ )
+
+mark_as_advanced(CMAKE_MAKE_PROGRAM)
diff --git a/share/cmake-3.16/Modules/CMakeNMakeFindMake.cmake b/share/cmake-3.17/Modules/CMakeNMakeFindMake.cmake
index 0335744..0335744 100644
--- a/share/cmake-3.16/Modules/CMakeNMakeFindMake.cmake
+++ b/share/cmake-3.17/Modules/CMakeNMakeFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeNinjaFindMake.cmake b/share/cmake-3.17/Modules/CMakeNinjaFindMake.cmake
new file mode 100644
index 0000000..32f78da
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeNinjaFindMake.cmake
@@ -0,0 +1,9 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+find_program(CMAKE_MAKE_PROGRAM
+ NAMES ninja-build ninja samu
+ NAMES_PER_DIR
+ DOC "Program used to build from build.ninja files.")
+mark_as_advanced(CMAKE_MAKE_PROGRAM)
diff --git a/share/cmake-3.16/Modules/CMakeOBJCCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeOBJCCompiler.cmake.in
index 1555517..1555517 100644
--- a/share/cmake-3.16/Modules/CMakeOBJCCompiler.cmake.in
+++ b/share/cmake-3.17/Modules/CMakeOBJCCompiler.cmake.in
diff --git a/share/cmake-3.16/Modules/CMakeOBJCCompilerABI.m b/share/cmake-3.17/Modules/CMakeOBJCCompilerABI.m
index 8fa8511..8fa8511 100644
--- a/share/cmake-3.16/Modules/CMakeOBJCCompilerABI.m
+++ b/share/cmake-3.17/Modules/CMakeOBJCCompilerABI.m
diff --git a/share/cmake-3.16/Modules/CMakeOBJCCompilerId.m.in b/share/cmake-3.17/Modules/CMakeOBJCCompilerId.m.in
index 2b8aa30..2b8aa30 100644
--- a/share/cmake-3.16/Modules/CMakeOBJCCompilerId.m.in
+++ b/share/cmake-3.17/Modules/CMakeOBJCCompilerId.m.in
diff --git a/share/cmake-3.17/Modules/CMakeOBJCInformation.cmake b/share/cmake-3.17/Modules/CMakeOBJCInformation.cmake
new file mode 100644
index 0000000..15a3311
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeOBJCInformation.cmake
@@ -0,0 +1,193 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This file sets the basic flags for the Objective-C language in CMake.
+# It also loads the available platform file for the system-compiler
+# if it exists.
+# It also loads a system - compiler - processor (or target hardware)
+# specific file, which is mainly useful for crosscompiling and embedded systems.
+
+include(CMakeLanguageInformation)
+
+# some compilers use different extensions (e.g. sdcc uses .rel)
+# so set the extension here first so it can be overridden by the compiler specific file
+set(CMAKE_OBJC_OUTPUT_EXTENSION .o)
+
+if(NOT CMAKE_INCLUDE_FLAG_OBJC)
+ set(CMAKE_INCLUDE_FLAG_OBJC ${CMAKE_INCLUDE_FLAG_C})
+endif()
+
+set(_INCLUDED_FILE 0)
+
+# Load compiler-specific information.
+if(CMAKE_OBJC_COMPILER_ID)
+ include(Compiler/${CMAKE_OBJC_COMPILER_ID}-OBJC OPTIONAL)
+endif()
+
+set(CMAKE_BASE_NAME)
+get_filename_component(CMAKE_BASE_NAME "${CMAKE_OBJC_COMPILER}" NAME_WE)
+if(CMAKE_COMPILER_IS_GNUOBJC)
+ set(CMAKE_BASE_NAME gcc)
+endif()
+
+
+# load a hardware specific file, mostly useful for embedded compilers
+if(CMAKE_SYSTEM_PROCESSOR)
+ if(CMAKE_OBJC_COMPILER_ID)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_OBJC_COMPILER_ID}-OBJC-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+ endif()
+ if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
+ endif ()
+endif()
+
+
+# load the system- and compiler specific files
+if(CMAKE_OBJC_COMPILER_ID)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_OBJC_COMPILER_ID}-OBJC
+ OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+endif()
+if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}
+ OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+endif ()
+
+# load any compiler-wrapper specific information
+if (CMAKE_OBJC_COMPILER_WRAPPER)
+ __cmake_include_compiler_wrapper(OBJC)
+endif ()
+
+# We specify the compiler information in the system file for some
+# platforms, but this language may not have been enabled when the file
+# was first included. Include it again to get the language info.
+# Remove this when all compiler info is removed from system files.
+if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_SYSTEM_NAME} OPTIONAL)
+endif ()
+
+if(CMAKE_OBJC_SIZEOF_DATA_PTR)
+ foreach(f ${CMAKE_OBJC_ABI_FILES})
+ include(${f})
+ endforeach()
+ unset(CMAKE_OBJC_ABI_FILES)
+endif()
+
+# This should be included before the _INIT variables are
+# used to initialize the cache. Since the rule variables
+# have if blocks on them, users can still define them here.
+# But, it should still be after the platform file so changes can
+# be made to those values.
+
+if(CMAKE_USER_MAKE_RULES_OVERRIDE)
+ # Save the full path of the file so try_compile can use it.
+ include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
+ set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
+endif()
+
+if(CMAKE_USER_MAKE_RULES_OVERRIDE_OBJC)
+ # Save the full path of the file so try_compile can use it.
+ include(${CMAKE_USER_MAKE_RULES_OVERRIDE_OBJC} RESULT_VARIABLE _override)
+ set(CMAKE_USER_MAKE_RULES_OVERRIDE_OBJC "${_override}")
+endif()
+
+
+# for most systems a module is the same as a shared library
+# so unless the variable CMAKE_MODULE_EXISTS is set just
+# copy the values from the LIBRARY variables
+if(NOT CMAKE_MODULE_EXISTS)
+ set(CMAKE_SHARED_MODULE_OBJC_FLAGS ${CMAKE_SHARED_LIBRARY_OBJC_FLAGS})
+ set(CMAKE_SHARED_MODULE_CREATE_OBJC_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_OBJC_FLAGS})
+endif()
+
+set(CMAKE_OBJC_FLAGS_INIT "$ENV{OBJCFLAGS} ${CMAKE_OBJC_FLAGS_INIT}")
+
+cmake_initialize_per_config_variable(CMAKE_OBJC_FLAGS "Flags used by the Objective-C compiler")
+
+if(CMAKE_OBJC_STANDARD_LIBRARIES_INIT)
+ set(CMAKE_OBJC_STANDARD_LIBRARIES "${CMAKE_OBJC_STANDARD_LIBRARIES_INIT}"
+ CACHE STRING "Libraries linked by default with all Objective-C applications.")
+ mark_as_advanced(CMAKE_OBJC_STANDARD_LIBRARIES)
+endif()
+
+if(NOT CMAKE_OBJC_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_OBJC_COMPILER_LAUNCHER})
+ set(CMAKE_OBJC_COMPILER_LAUNCHER "$ENV{CMAKE_OBJC_COMPILER_LAUNCHER}"
+ CACHE STRING "Compiler launcher for OBJC.")
+endif()
+
+include(CMakeCommonLanguageInclude)
+
+# now define the following rule variables
+
+# CMAKE_OBJC_CREATE_SHARED_LIBRARY
+# CMAKE_OBJC_CREATE_SHARED_MODULE
+# CMAKE_OBJC_COMPILE_OBJECT
+# CMAKE_OBJC_LINK_EXECUTABLE
+
+# variables supplied by the generator at use time
+# <TARGET>
+# <TARGET_BASE> the target without the suffix
+# <OBJECTS>
+# <OBJECT>
+# <LINK_LIBRARIES>
+# <FLAGS>
+# <LINK_FLAGS>
+
+# Objective-C compiler information
+# <CMAKE_OBJC_COMPILER>
+# <CMAKE_SHARED_LIBRARY_CREATE_OBJC_FLAGS>
+# <CMAKE_SHARED_MODULE_CREATE_OBJC_FLAGS>
+# <CMAKE_OBJC_LINK_FLAGS>
+
+# Static library tools
+# <CMAKE_AR>
+# <CMAKE_RANLIB>
+
+
+# create an Objective-C shared library
+if(NOT CMAKE_OBJC_CREATE_SHARED_LIBRARY)
+ set(CMAKE_OBJC_CREATE_SHARED_LIBRARY
+ "<CMAKE_OBJC_COMPILER> <CMAKE_SHARED_LIBRARY_OBJC_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_OBJC_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
+endif()
+
+# create an Objective-C shared module just copy the shared library rule
+if(NOT CMAKE_OBJC_CREATE_SHARED_MODULE)
+ set(CMAKE_OBJC_CREATE_SHARED_MODULE ${CMAKE_OBJC_CREATE_SHARED_LIBRARY})
+endif()
+
+# Create an static archive incrementally for large object file counts.
+# If CMAKE_OBJC_CREATE_STATIC_LIBRARY is set it will override these.
+if(NOT DEFINED CMAKE_OBJC_ARCHIVE_CREATE)
+ set(CMAKE_OBJC_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
+endif()
+if(NOT DEFINED CMAKE_OBJC_ARCHIVE_APPEND)
+ set(CMAKE_OBJC_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
+endif()
+if(NOT DEFINED CMAKE_OBJC_ARCHIVE_FINISH)
+ set(CMAKE_OBJC_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
+endif()
+
+# compile an Objective-C file into an object file
+if(NOT CMAKE_OBJC_COMPILE_OBJECT)
+ set(CMAKE_OBJC_COMPILE_OBJECT
+ "<CMAKE_OBJC_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -x objective-c -o <OBJECT> -c <SOURCE>")
+endif()
+
+if(NOT CMAKE_OBJC_LINK_EXECUTABLE)
+ set(CMAKE_OBJC_LINK_EXECUTABLE
+ "<CMAKE_OBJC_COMPILER> <FLAGS> <CMAKE_OBJC_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RUNTIME_OBJC_FLAG)
+ set(CMAKE_EXECUTABLE_RUNTIME_OBJC_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_OBJC_FLAG})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RUNTIME_OBJC_FLAG_SEP)
+ set(CMAKE_EXECUTABLE_RUNTIME_OBJC_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_OBJC_FLAG_SEP})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RPATH_LINK_OBJC_FLAG)
+ set(CMAKE_EXECUTABLE_RPATH_LINK_OBJC_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_OBJC_FLAG})
+endif()
+
+set(CMAKE_OBJC_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.16/Modules/CMakeOBJCXXCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeOBJCXXCompiler.cmake.in
index b6452c4..b6452c4 100644
--- a/share/cmake-3.16/Modules/CMakeOBJCXXCompiler.cmake.in
+++ b/share/cmake-3.17/Modules/CMakeOBJCXXCompiler.cmake.in
diff --git a/share/cmake-3.16/Modules/CMakeOBJCXXCompilerABI.mm b/share/cmake-3.17/Modules/CMakeOBJCXXCompilerABI.mm
index 288a58c..288a58c 100644
--- a/share/cmake-3.16/Modules/CMakeOBJCXXCompilerABI.mm
+++ b/share/cmake-3.17/Modules/CMakeOBJCXXCompilerABI.mm
diff --git a/share/cmake-3.16/Modules/CMakeOBJCXXCompilerId.mm.in b/share/cmake-3.17/Modules/CMakeOBJCXXCompilerId.mm.in
index fe04de1..fe04de1 100644
--- a/share/cmake-3.16/Modules/CMakeOBJCXXCompilerId.mm.in
+++ b/share/cmake-3.17/Modules/CMakeOBJCXXCompilerId.mm.in
diff --git a/share/cmake-3.17/Modules/CMakeOBJCXXInformation.cmake b/share/cmake-3.17/Modules/CMakeOBJCXXInformation.cmake
new file mode 100644
index 0000000..cb349d7
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeOBJCXXInformation.cmake
@@ -0,0 +1,278 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This file sets the basic flags for the Objective-C++ language in CMake.
+# It also loads the available platform file for the system-compiler
+# if it exists.
+# It also loads a system - compiler - processor (or target hardware)
+# specific file, which is mainly useful for crosscompiling and embedded systems.
+
+include(CMakeLanguageInformation)
+
+# some compilers use different extensions (e.g. sdcc uses .rel)
+# so set the extension here first so it can be overridden by the compiler specific file
+set(CMAKE_OBJCXX_OUTPUT_EXTENSION .o)
+
+set(_INCLUDED_FILE 0)
+
+# Load compiler-specific information.
+if(CMAKE_OBJCXX_COMPILER_ID)
+ include(Compiler/${CMAKE_OBJCXX_COMPILER_ID}-OBJCXX OPTIONAL)
+endif()
+
+set(CMAKE_BASE_NAME)
+get_filename_component(CMAKE_BASE_NAME "${CMAKE_OBJCXX_COMPILER}" NAME_WE)
+# since the gnu compiler has several names force g++
+if(CMAKE_COMPILER_IS_GNUOBJCXX)
+ set(CMAKE_BASE_NAME g++)
+endif()
+
+
+# load a hardware specific file, mostly useful for embedded compilers
+if(CMAKE_SYSTEM_PROCESSOR)
+ if(CMAKE_OBJCXX_COMPILER_ID)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_OBJCXX_COMPILER_ID}-OBJCXX-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+ endif()
+ if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
+ endif ()
+endif()
+
+# load the system- and compiler specific files
+if(CMAKE_OBJCXX_COMPILER_ID)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_OBJCXX_COMPILER_ID}-OBJCXX OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+endif()
+if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL
+ RESULT_VARIABLE _INCLUDED_FILE)
+endif ()
+
+# load any compiler-wrapper specific information
+if (CMAKE_OBJCXX_COMPILER_WRAPPER)
+ __cmake_include_compiler_wrapper(OBJCXX)
+endif ()
+
+# We specify the compiler information in the system file for some
+# platforms, but this language may not have been enabled when the file
+# was first included. Include it again to get the language info.
+# Remove this when all compiler info is removed from system files.
+if (NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_SYSTEM_NAME} OPTIONAL)
+endif ()
+
+if(CMAKE_OBJCXX_SIZEOF_DATA_PTR)
+ foreach(f ${CMAKE_OBJCXX_ABI_FILES})
+ include(${f})
+ endforeach()
+ unset(CMAKE_OBJCXX_ABI_FILES)
+endif()
+
+# This should be included before the _INIT variables are
+# used to initialize the cache. Since the rule variables
+# have if blocks on them, users can still define them here.
+# But, it should still be after the platform file so changes can
+# be made to those values.
+
+if(CMAKE_USER_MAKE_RULES_OVERRIDE)
+ # Save the full path of the file so try_compile can use it.
+ include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
+ set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
+endif()
+
+if(CMAKE_USER_MAKE_RULES_OVERRIDE_OBJCXX)
+ # Save the full path of the file so try_compile can use it.
+ include(${CMAKE_USER_MAKE_RULES_OVERRIDE_OBJCXX} RESULT_VARIABLE _override)
+ set(CMAKE_USER_MAKE_RULES_OVERRIDE_OBJCXX "${_override}")
+endif()
+
+
+# Create a set of shared library variable specific to Objective-C++
+# For 90% of the systems, these are the same flags as the Objective-C versions
+# so if these are not set just copy the flags from the Objective-C version
+if(NOT CMAKE_SHARED_LIBRARY_CREATE_OBJCXX_FLAGS)
+ set(CMAKE_SHARED_LIBRARY_CREATE_OBJCXX_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_OBJC_FLAGS})
+endif()
+
+if(NOT CMAKE_OBJCXX_COMPILE_OPTIONS_PIC)
+ set(CMAKE_OBJCXX_COMPILE_OPTIONS_PIC ${CMAKE_OBJC_COMPILE_OPTIONS_PIC})
+endif()
+
+if(NOT CMAKE_OBJCXX_COMPILE_OPTIONS_PIE)
+ set(CMAKE_OBJCXX_COMPILE_OPTIONS_PIE ${CMAKE_OBJC_COMPILE_OPTIONS_PIE})
+endif()
+if(NOT CMAKE_OBJCXX_LINK_OPTIONS_PIE)
+ set(CMAKE_OBJCXX_LINK_OPTIONS_PIE ${CMAKE_OBJC_LINK_OPTIONS_PIE})
+endif()
+if(NOT CMAKE_OBJCXX_LINK_OPTIONS_NO_PIE)
+ set(CMAKE_OBJCXX_LINK_OPTIONS_NO_PIE ${CMAKE_OBJC_LINK_OPTIONS_NO_PIE})
+endif()
+
+if(NOT CMAKE_OBJCXX_COMPILE_OPTIONS_DLL)
+ set(CMAKE_OBJCXX_COMPILE_OPTIONS_DLL ${CMAKE_OBJC_COMPILE_OPTIONS_DLL})
+endif()
+
+if(NOT CMAKE_SHARED_LIBRARY_OBJCXX_FLAGS)
+ set(CMAKE_SHARED_LIBRARY_OBJCXX_FLAGS ${CMAKE_SHARED_LIBRARY_OBJC_FLAGS})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_OBJCXX_FLAGS)
+ set(CMAKE_SHARED_LIBRARY_LINK_OBJCXX_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_OBJC_FLAGS})
+endif()
+
+if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_OBJCXX_FLAG)
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_OBJCXX_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_OBJC_FLAG})
+endif()
+
+if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_OBJCXX_FLAG_SEP)
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_OBJCXX_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_OBJC_FLAG_SEP})
+endif()
+
+if(NOT CMAKE_SHARED_LIBRARY_RPATH_LINK_OBJCXX_FLAG)
+ set(CMAKE_SHARED_LIBRARY_RPATH_LINK_OBJCXX_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_OBJC_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_EXE_EXPORTS_OBJCXX_FLAG)
+ set(CMAKE_EXE_EXPORTS_OBJCXX_FLAG ${CMAKE_EXE_EXPORTS_OBJC_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_SONAME_OBJCXX_FLAG)
+ set(CMAKE_SHARED_LIBRARY_SONAME_OBJCXX_FLAG ${CMAKE_SHARED_LIBRARY_SONAME_OBJC_FLAG})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RUNTIME_OBJCXX_FLAG)
+ set(CMAKE_EXECUTABLE_RUNTIME_OBJCXX_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_OBJCXX_FLAG})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RUNTIME_OBJCXX_FLAG_SEP)
+ set(CMAKE_EXECUTABLE_RUNTIME_OBJCXX_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_OBJCXX_FLAG_SEP})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RPATH_LINK_OBJCXX_FLAG)
+ set(CMAKE_EXECUTABLE_RPATH_LINK_OBJCXX_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_OBJCXX_FLAG})
+endif()
+
+if(NOT DEFINED CMAKE_SHARED_LIBRARY_LINK_OBJCXX_WITH_RUNTIME_PATH)
+ set(CMAKE_SHARED_LIBRARY_LINK_OBJCXX_WITH_RUNTIME_PATH ${CMAKE_SHARED_LIBRARY_LINK_OBJC_WITH_RUNTIME_PATH})
+endif()
+
+if(NOT CMAKE_INCLUDE_FLAG_OBJCXX)
+ set(CMAKE_INCLUDE_FLAG_OBJCXX ${CMAKE_INCLUDE_FLAG_C})
+endif()
+
+# for most systems a module is the same as a shared library
+# so unless the variable CMAKE_MODULE_EXISTS is set just
+# copy the values from the LIBRARY variables
+if(NOT CMAKE_MODULE_EXISTS)
+ set(CMAKE_SHARED_MODULE_OBJCXX_FLAGS ${CMAKE_SHARED_LIBRARY_OBJCXX_FLAGS})
+ set(CMAKE_SHARED_MODULE_CREATE_OBJCXX_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_OBJCXX_FLAGS})
+endif()
+
+# repeat for modules
+if(NOT CMAKE_SHARED_MODULE_CREATE_OBJCXX_FLAGS)
+ set(CMAKE_SHARED_MODULE_CREATE_OBJCXX_FLAGS ${CMAKE_SHARED_MODULE_CREATE_OBJC_FLAGS})
+endif()
+
+if(NOT CMAKE_SHARED_MODULE_OBJCXX_FLAGS)
+ set(CMAKE_SHARED_MODULE_OBJCXX_FLAGS ${CMAKE_SHARED_MODULE_OBJC_FLAGS})
+endif()
+
+# Initialize OBJCXX link type selection flags from OBJC versions.
+foreach(type SHARED_LIBRARY SHARED_MODULE EXE)
+ if(NOT CMAKE_${type}_LINK_STATIC_OBJCXX_FLAGS)
+ set(CMAKE_${type}_LINK_STATIC_OBJCXX_FLAGS
+ ${CMAKE_${type}_LINK_STATIC_OBJC_FLAGS})
+ endif()
+ if(NOT CMAKE_${type}_LINK_DYNAMIC_OBJCXX_FLAGS)
+ set(CMAKE_${type}_LINK_DYNAMIC_OBJCXX_FLAGS
+ ${CMAKE_${type}_LINK_DYNAMIC_OBJC_FLAGS})
+ endif()
+endforeach()
+
+# add the flags to the cache based
+# on the initial values computed in the platform/*.cmake files
+# use _INIT variables so that this only happens the first time
+# and you can set these flags in the cmake cache
+set(CMAKE_OBJCXX_FLAGS_INIT "$ENV{OBJCXXFLAGS} ${CMAKE_OBJCXX_FLAGS_INIT}")
+
+cmake_initialize_per_config_variable(CMAKE_OBJCXX_FLAGS "Flags used by the Objective-C++ compiler")
+
+if(CMAKE_OBJCXX_STANDARD_LIBRARIES_INIT)
+ set(CMAKE_OBJCXX_STANDARD_LIBRARIES "${CMAKE_OBJCXX_STANDARD_LIBRARIES_INIT}"
+ CACHE STRING "Libraries linked by default with all Objective-C++ applications.")
+ mark_as_advanced(CMAKE_OBJCXX_STANDARD_LIBRARIES)
+endif()
+
+if(NOT CMAKE_OBJCXX_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_OBJCXX_COMPILER_LAUNCHER})
+ set(CMAKE_OBJCXX_COMPILER_LAUNCHER "$ENV{CMAKE_OBJCXX_COMPILER_LAUNCHER}"
+ CACHE STRING "Compiler launcher for OBJCXX.")
+endif()
+
+include(CMakeCommonLanguageInclude)
+
+# now define the following rules:
+# CMAKE_OBJCXX_CREATE_SHARED_LIBRARY
+# CMAKE_OBJCXX_CREATE_SHARED_MODULE
+# CMAKE_OBJCXX_COMPILE_OBJECT
+# CMAKE_OBJCXX_LINK_EXECUTABLE
+
+# variables supplied by the generator at use time
+# <TARGET>
+# <TARGET_BASE> the target without the suffix
+# <OBJECTS>
+# <OBJECT>
+# <LINK_LIBRARIES>
+# <FLAGS>
+# <LINK_FLAGS>
+
+# Objective-C++ compiler information
+# <CMAKE_OBJCXX_COMPILER>
+# <CMAKE_SHARED_LIBRARY_CREATE_OBJCXX_FLAGS>
+# <CMAKE_OBJCXX_SHARED_MODULE_CREATE_FLAGS>
+# <CMAKE_OBJCXX_LINK_FLAGS>
+
+# Static library tools
+# <CMAKE_AR>
+# <CMAKE_RANLIB>
+
+
+# create a shared Objective-C++ library
+if(NOT CMAKE_OBJCXX_CREATE_SHARED_LIBRARY)
+ set(CMAKE_OBJCXX_CREATE_SHARED_LIBRARY
+ "<CMAKE_OBJCXX_COMPILER> <CMAKE_SHARED_LIBRARY_OBJCXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_OBJCXX_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
+endif()
+
+# create an Objective-C++ shared module copy the shared library rule by default
+if(NOT CMAKE_OBJCXX_CREATE_SHARED_MODULE)
+ set(CMAKE_OBJCXX_CREATE_SHARED_MODULE ${CMAKE_OBJCXX_CREATE_SHARED_LIBRARY})
+endif()
+
+
+# Create a static archive incrementally for large object file counts.
+# If CMAKE_OBJCXX_CREATE_STATIC_LIBRARY is set it will override these.
+if(NOT DEFINED CMAKE_OBJCXX_ARCHIVE_CREATE)
+ set(CMAKE_OBJCXX_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
+endif()
+if(NOT DEFINED CMAKE_OBJCXX_ARCHIVE_APPEND)
+ set(CMAKE_OBJCXX_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
+endif()
+if(NOT DEFINED CMAKE_OBJCXX_ARCHIVE_FINISH)
+ set(CMAKE_OBJCXX_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
+endif()
+
+# compile an Objective-C++ file into an object file
+if(NOT CMAKE_OBJCXX_COMPILE_OBJECT)
+ set(CMAKE_OBJCXX_COMPILE_OBJECT
+ "<CMAKE_OBJCXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -x objective-c++ -o <OBJECT> -c <SOURCE>")
+endif()
+
+if(NOT CMAKE_OBJCXX_LINK_EXECUTABLE)
+ set(CMAKE_OBJCXX_LINK_EXECUTABLE
+ "<CMAKE_OBJCXX_COMPILER> <FLAGS> <CMAKE_OBJCXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+endif()
+
+mark_as_advanced(
+CMAKE_VERBOSE_MAKEFILE
+)
+
+set(CMAKE_OBJCXX_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.16/Modules/CMakePackageConfigHelpers.cmake b/share/cmake-3.17/Modules/CMakePackageConfigHelpers.cmake
index 22fc953..22fc953 100644
--- a/share/cmake-3.16/Modules/CMakePackageConfigHelpers.cmake
+++ b/share/cmake-3.17/Modules/CMakePackageConfigHelpers.cmake
diff --git a/share/cmake-3.16/Modules/CMakeParseArguments.cmake b/share/cmake-3.17/Modules/CMakeParseArguments.cmake
index c753b7f..c753b7f 100644
--- a/share/cmake-3.16/Modules/CMakeParseArguments.cmake
+++ b/share/cmake-3.17/Modules/CMakeParseArguments.cmake
diff --git a/share/cmake-3.16/Modules/CMakeParseImplicitIncludeInfo.cmake b/share/cmake-3.17/Modules/CMakeParseImplicitIncludeInfo.cmake
index ff4c325..ff4c325 100644
--- a/share/cmake-3.16/Modules/CMakeParseImplicitIncludeInfo.cmake
+++ b/share/cmake-3.17/Modules/CMakeParseImplicitIncludeInfo.cmake
diff --git a/share/cmake-3.16/Modules/CMakeParseImplicitLinkInfo.cmake b/share/cmake-3.17/Modules/CMakeParseImplicitLinkInfo.cmake
index 0465515..0465515 100644
--- a/share/cmake-3.16/Modules/CMakeParseImplicitLinkInfo.cmake
+++ b/share/cmake-3.17/Modules/CMakeParseImplicitLinkInfo.cmake
diff --git a/share/cmake-3.16/Modules/CMakePlatformId.h.in b/share/cmake-3.17/Modules/CMakePlatformId.h.in
index 64a00b3..64a00b3 100644
--- a/share/cmake-3.16/Modules/CMakePlatformId.h.in
+++ b/share/cmake-3.17/Modules/CMakePlatformId.h.in
diff --git a/share/cmake-3.16/Modules/CMakePrintHelpers.cmake b/share/cmake-3.17/Modules/CMakePrintHelpers.cmake
index d652ffa..d652ffa 100644
--- a/share/cmake-3.16/Modules/CMakePrintHelpers.cmake
+++ b/share/cmake-3.17/Modules/CMakePrintHelpers.cmake
diff --git a/share/cmake-3.17/Modules/CMakePrintSystemInformation.cmake b/share/cmake-3.17/Modules/CMakePrintSystemInformation.cmake
new file mode 100644
index 0000000..8d5cf5c
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakePrintSystemInformation.cmake
@@ -0,0 +1,41 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CMakePrintSystemInformation
+---------------------------
+
+Print system information.
+
+This module serves diagnostic purposes. Just include it in a
+project to see various internal CMake variables.
+#]=======================================================================]
+
+message("CMAKE_SYSTEM is ${CMAKE_SYSTEM} ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION}")
+message("CMAKE_SYSTEM file is ${CMAKE_SYSTEM_INFO_FILE}")
+message("CMAKE_C_COMPILER is ${CMAKE_C_COMPILER}")
+message("CMAKE_CXX_COMPILER is ${CMAKE_CXX_COMPILER}")
+
+
+message("CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS is ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}")
+message("CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS is ${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS}")
+message("CMAKE_DL_LIBS is ${CMAKE_DL_LIBS}")
+message("CMAKE_SHARED_LIBRARY_PREFIX is ${CMAKE_SHARED_LIBRARY_PREFIX}")
+message("CMAKE_SHARED_LIBRARY_SUFFIX is ${CMAKE_SHARED_LIBRARY_SUFFIX}")
+message("CMAKE_COMPILER_IS_GNUCC = ${CMAKE_COMPILER_IS_GNUCC}")
+message("CMAKE_COMPILER_IS_GNUCXX = ${CMAKE_COMPILER_IS_GNUCXX}")
+
+message("CMAKE_CXX_CREATE_SHARED_LIBRARY is ${CMAKE_CXX_CREATE_SHARED_LIBRARY}")
+message("CMAKE_CXX_CREATE_SHARED_MODULE is ${CMAKE_CXX_CREATE_SHARED_MODULE}")
+message("CMAKE_CXX_CREATE_STATIC_LIBRARY is ${CMAKE_CXX_CREATE_STATIC_LIBRARY}")
+message("CMAKE_CXX_COMPILE_OBJECT is ${CMAKE_CXX_COMPILE_OBJECT}")
+message("CMAKE_CXX_LINK_EXECUTABLE ${CMAKE_CXX_LINK_EXECUTABLE}")
+
+message("CMAKE_C_CREATE_SHARED_LIBRARY is ${CMAKE_C_CREATE_SHARED_LIBRARY}")
+message("CMAKE_C_CREATE_SHARED_MODULE is ${CMAKE_C_CREATE_SHARED_MODULE}")
+message("CMAKE_C_CREATE_STATIC_LIBRARY is ${CMAKE_C_CREATE_STATIC_LIBRARY}")
+message("CMAKE_C_COMPILE_OBJECT is ${CMAKE_C_COMPILE_OBJECT}")
+message("CMAKE_C_LINK_EXECUTABLE ${CMAKE_C_LINK_EXECUTABLE}")
+
+message("CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE ${CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE}")
+message("CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE ${CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE}")
diff --git a/share/cmake-3.16/Modules/CMakePushCheckState.cmake b/share/cmake-3.17/Modules/CMakePushCheckState.cmake
index 3e519ee..3e519ee 100644
--- a/share/cmake-3.16/Modules/CMakePushCheckState.cmake
+++ b/share/cmake-3.17/Modules/CMakePushCheckState.cmake
diff --git a/share/cmake-3.16/Modules/CMakeRCCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeRCCompiler.cmake.in
index 8257cd6..8257cd6 100644
--- a/share/cmake-3.16/Modules/CMakeRCCompiler.cmake.in
+++ b/share/cmake-3.17/Modules/CMakeRCCompiler.cmake.in
diff --git a/share/cmake-3.16/Modules/CMakeRCInformation.cmake b/share/cmake-3.17/Modules/CMakeRCInformation.cmake
index 7c3a5ab..7c3a5ab 100644
--- a/share/cmake-3.16/Modules/CMakeRCInformation.cmake
+++ b/share/cmake-3.17/Modules/CMakeRCInformation.cmake
diff --git a/share/cmake-3.17/Modules/CMakeSwiftCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeSwiftCompiler.cmake.in
new file mode 100644
index 0000000..47ada38
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeSwiftCompiler.cmake.in
@@ -0,0 +1,16 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+set(CMAKE_Swift_COMPILER "@CMAKE_Swift_COMPILER@")
+set(CMAKE_Swift_COMPILER_ID "@CMAKE_Swift_COMPILER_ID@")
+set(CMAKE_Swift_COMPILER_VERSION "@CMAKE_Swift_COMPILER_VERSION@")
+
+set(CMAKE_Swift_COMPILER_LOADED 1)
+set(CMAKE_Swift_COMPILER_WORKS "@CMAKE_Swift_COMPILER_WORKS@")
+
+set(CMAKE_Swift_COMPILER_ENV_VAR "SWIFTC")
+
+set(CMAKE_Swift_COMPILER_ID_RUN 1)
+set(CMAKE_Swift_SOURCE_FILE_EXTENSIONS swift)
+
+set(CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES "@CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES@")
diff --git a/share/cmake-3.17/Modules/CMakeSwiftInformation.cmake b/share/cmake-3.17/Modules/CMakeSwiftInformation.cmake
new file mode 100644
index 0000000..8f0909c
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeSwiftInformation.cmake
@@ -0,0 +1,103 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+if(UNIX)
+ set(CMAKE_Swift_OUTPUT_EXTENSION .o)
+else()
+ set(CMAKE_Swift_OUTPUT_EXTENSION .obj)
+endif()
+
+# Load compiler-specific information.
+if(CMAKE_Swift_COMPILER_ID)
+ include(Compiler/${CMAKE_Swift_COMPILER_ID}-Swift OPTIONAL)
+
+ if(CMAKE_SYSTEM_PROCESSOR)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_Swift_COMPILER_ID}-Swift-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
+ endif()
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_Swift_COMPILER_ID}-Swift OPTIONAL)
+endif()
+
+set(CMAKE_EXE_EXPORTS_Swift_FLAG "-emit-module -emit-module-path <SWIFT_MODULE> ${CMAKE_Swift_IMPLIB_LINKER_FLAGS}")
+
+set(CMAKE_INCLUDE_FLAG_Swift "-I ")
+if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
+ set(CMAKE_SHARED_LIBRARY_SONAME_Swift_FLAG "-Xlinker -install_name -Xlinker ")
+elseif(NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
+ set(CMAKE_SHARED_LIBRARY_SONAME_Swift_FLAG "-Xlinker -soname -Xlinker ")
+endif()
+
+if(NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
+ set(CMAKE_EXECUTABLE_RUNTIME_Swift_FLAG "-Xlinker -rpath -Xlinker ")
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_Swift_FLAG "-Xlinker -rpath -Xlinker ")
+ if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
+ set(CMAKE_EXECUTABLE_RUNTIME_Swift_FLAG_SEP "")
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_Swift_FLAG_SEP "")
+ else()
+ set(CMAKE_EXECUTABLE_RUNTIME_Swift_FLAG_SEP ":")
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_Swift_FLAG_SEP ":")
+ endif()
+endif()
+
+set(CMAKE_Swift_COMPILE_OPTIONS_TARGET "-target ")
+set(CMAKE_Swift_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "-tools-directory ")
+# NOTE(compnerd) the `-sdk` support is not yet ready in the compiler; when that
+# is fully working, we should be able to enable this.
+# set(CMAKE_Swift_COMPILE_OPTIONS_SYSROOT "-sdk ")
+# NOTE(compnerd) do not setup `-frontend` as we use the compiler as the driver
+# during the link phase and use that to drive the compilation
+set(CMAKE_Swift_COMPILER_ARG1 "")
+set(CMAKE_Swift_DEFINE_FLAG -D)
+set(CMAKE_Swift_FRAMEWORK_SEARCH_FLAG "-F ")
+set(CMAKE_Swift_LIBRARY_PATH_FLAG "-L ")
+set(CMAKE_Swift_LIBRARY_PATH_TERMINATOR "")
+set(CMAKE_Swift_LINK_LIBRARY_FLAG "-l")
+set(CMAKE_Swift_LINKER_WRAPPER_FLAG "-Xlinker" " ")
+set(CMAKE_Swift_RESPONSE_FILE_LINK_FLAG @)
+
+set(CMAKE_Swift_LINKER_PREFERENCE 50)
+set(CMAKE_Swift_LINKER_PREFERENCE_PROPAGATES 1)
+
+# NOTE(compnerd) use the short form for convenience and ease of search. They
+# are treated equivalent to their long form names as well as custom Swift
+# specific names.
+set(CMAKE_Swift_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded -libc MT)
+set(CMAKE_Swift_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL -libc MD)
+set(CMAKE_Swift_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug -libc MTd)
+set(CMAKE_Swift_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL -libc MDd)
+
+set(CMAKE_Swift_FLAGS_DEBUG_INIT "-g")
+set(CMAKE_Swift_FLAGS_RELEASE_INIT "-O")
+set(CMAKE_Swift_FLAGS_RELWITHDEBINFO_INIT "-O -g")
+set(CMAKE_Swift_FLAGS_MINSIZEREL_INIT "-Osize")
+
+cmake_initialize_per_config_variable(CMAKE_Swift_FLAGS "Swift Compiler Flags")
+
+# NOTE(compnerd) we do not have an object compile rule since we build the objects as part of the link step
+if(NOT CMAKE_Swift_COMPILE_OBJECT)
+ set(CMAKE_Swift_COMPILE_OBJECT ":")
+endif()
+
+if(NOT CMAKE_Swift_NUM_THREADS MATCHES "^[0-9]+$")
+ cmake_host_system_information(RESULT CMAKE_Swift_NUM_THREADS QUERY NUMBER_OF_LOGICAL_CORES)
+endif()
+
+if(NOT CMAKE_Swift_CREATE_SHARED_LIBRARY)
+ set(CMAKE_Swift_CREATE_SHARED_LIBRARY "<CMAKE_Swift_COMPILER> -output-file-map <SWIFT_OUTPUT_FILE_MAP> -incremental -j ${CMAKE_Swift_NUM_THREADS} -emit-library -o <TARGET> -module-name <SWIFT_MODULE_NAME> -module-link-name <SWIFT_LIBRARY_NAME> -emit-module -emit-module-path <SWIFT_MODULE> -emit-dependencies <DEFINES> <FLAGS> <INCLUDES> <SWIFT_SOURCES> <LINK_FLAGS> <SONAME_FLAG> <TARGET_INSTALLNAME_DIR><TARGET_SONAME> ${CMAKE_Swift_IMPLIB_LINKER_FLAGS} <LINK_LIBRARIES>")
+endif()
+
+if(NOT CMAKE_Swift_CREATE_SHARED_MODULE)
+ set(CMAKE_Swift_CREATE_SHARED_MODULE ${CMAKE_Swift_CREATE_SHARED_LIBRARY})
+endif()
+
+if(NOT CMAKE_Swift_LINK_EXECUTABLE)
+ set(CMAKE_Swift_LINK_EXECUTABLE "<CMAKE_Swift_COMPILER> -output-file-map <SWIFT_OUTPUT_FILE_MAP> -incremental -j ${CMAKE_Swift_NUM_THREADS} -emit-executable -o <TARGET> -emit-dependencies <DEFINES> <FLAGS> <INCLUDES> <SWIFT_SOURCES> <LINK_FLAGS> <LINK_LIBRARIES>")
+endif()
+
+if(NOT CMAKE_Swift_CREATE_STATIC_LIBRARY)
+ set(CMAKE_Swift_CREATE_STATIC_LIBRARY "<CMAKE_Swift_COMPILER> -output-file-map <SWIFT_OUTPUT_FILE_MAP> -incremental -j ${CMAKE_Swift_NUM_THREADS} -emit-library -static -o <TARGET> -module-name <SWIFT_MODULE_NAME> -module-link-name <SWIFT_LIBRARY_NAME> -emit-module -emit-module-path <SWIFT_MODULE> -emit-dependencies <DEFINES> <FLAGS> <INCLUDES> <SWIFT_SOURCES> <LINK_FLAGS> <LINK_LIBRARIES>")
+
+ set(CMAKE_Swift_ARCHIVE_CREATE "<CMAKE_AR> crs <TARGET> <OBJECTS>")
+ set(CMAKE_Swift_ARCHIVE_FINISH "")
+endif()
+
+set(CMAKE_Swift_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.16/Modules/CMakeSystem.cmake.in b/share/cmake-3.17/Modules/CMakeSystem.cmake.in
index ef8aaa0..ef8aaa0 100644
--- a/share/cmake-3.16/Modules/CMakeSystem.cmake.in
+++ b/share/cmake-3.17/Modules/CMakeSystem.cmake.in
diff --git a/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake b/share/cmake-3.17/Modules/CMakeSystemSpecificInformation.cmake
index ea3a445..ea3a445 100644
--- a/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake
+++ b/share/cmake-3.17/Modules/CMakeSystemSpecificInformation.cmake
diff --git a/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake b/share/cmake-3.17/Modules/CMakeSystemSpecificInitialize.cmake
index 21bcd40..21bcd40 100644
--- a/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake
+++ b/share/cmake-3.17/Modules/CMakeSystemSpecificInitialize.cmake
diff --git a/share/cmake-3.16/Modules/CMakeTestASM-ATTCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestASM-ATTCompiler.cmake
index df735c4..df735c4 100644
--- a/share/cmake-3.16/Modules/CMakeTestASM-ATTCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeTestASM-ATTCompiler.cmake
diff --git a/share/cmake-3.16/Modules/CMakeTestASMCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestASMCompiler.cmake
index 7f0b9a7..7f0b9a7 100644
--- a/share/cmake-3.16/Modules/CMakeTestASMCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeTestASMCompiler.cmake
diff --git a/share/cmake-3.16/Modules/CMakeTestASM_MASMCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestASM_MASMCompiler.cmake
index c1308ff..c1308ff 100644
--- a/share/cmake-3.16/Modules/CMakeTestASM_MASMCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeTestASM_MASMCompiler.cmake
diff --git a/share/cmake-3.16/Modules/CMakeTestASM_NASMCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestASM_NASMCompiler.cmake
index a9ee39d..a9ee39d 100644
--- a/share/cmake-3.16/Modules/CMakeTestASM_NASMCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeTestASM_NASMCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestCCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestCCompiler.cmake
new file mode 100644
index 0000000..eadea89
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeTestCCompiler.cmake
@@ -0,0 +1,97 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+if(CMAKE_C_COMPILER_FORCED)
+ # The compiler configuration was forced by the user.
+ # Assume the user has configured all compiler information.
+ set(CMAKE_C_COMPILER_WORKS TRUE)
+ return()
+endif()
+
+include(CMakeTestCompilerCommon)
+
+# work around enforced code signing and / or missing exectuable target type
+set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
+if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
+ set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
+endif()
+
+# Remove any cached result from an older CMake version.
+# We now store this in CMakeCCompiler.cmake.
+unset(CMAKE_C_COMPILER_WORKS CACHE)
+
+# This file is used by EnableLanguage in cmGlobalGenerator to
+# determine that that selected C compiler can actually compile
+# and link the most basic of programs. If not, a fatal error
+# is set and cmake stops processing commands and will not generate
+# any makefiles or projects.
+if(NOT CMAKE_C_COMPILER_WORKS)
+ PrintTestCompilerStatus("C")
+ __TestCompiler_setTryCompileTargetType()
+ file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCCompiler.c
+ "#ifdef __cplusplus\n"
+ "# error \"The CMAKE_C_COMPILER is set to a C++ compiler\"\n"
+ "#endif\n"
+ "#if defined(__CLASSIC_C__)\n"
+ "int main(argc, argv)\n"
+ " int argc;\n"
+ " char* argv[];\n"
+ "#else\n"
+ "int main(int argc, char* argv[])\n"
+ "#endif\n"
+ "{ (void)argv; return argc-1;}\n")
+ try_compile(CMAKE_C_COMPILER_WORKS ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCCompiler.c
+ OUTPUT_VARIABLE __CMAKE_C_COMPILER_OUTPUT)
+ # Move result from cache to normal variable.
+ set(CMAKE_C_COMPILER_WORKS ${CMAKE_C_COMPILER_WORKS})
+ unset(CMAKE_C_COMPILER_WORKS CACHE)
+ set(C_TEST_WAS_RUN 1)
+ __TestCompiler_restoreTryCompileTargetType()
+endif()
+
+if(NOT CMAKE_C_COMPILER_WORKS)
+ PrintTestCompilerResult(CHECK_FAIL "broken")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the C compiler works failed with "
+ "the following output:\n${__CMAKE_C_COMPILER_OUTPUT}\n\n")
+ string(REPLACE "\n" "\n " _output "${__CMAKE_C_COMPILER_OUTPUT}")
+ message(FATAL_ERROR "The C compiler\n \"${CMAKE_C_COMPILER}\"\n"
+ "is not able to compile a simple test program.\nIt fails "
+ "with the following output:\n ${_output}\n\n"
+ "CMake will not be able to correctly generate this project.")
+else()
+ if(C_TEST_WAS_RUN)
+ PrintTestCompilerResult(CHECK_PASS "works")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the C compiler works passed with "
+ "the following output:\n${__CMAKE_C_COMPILER_OUTPUT}\n\n")
+ endif()
+
+ # Try to identify the ABI and configure it into CMakeCCompiler.cmake
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
+ CMAKE_DETERMINE_COMPILER_ABI(C ${CMAKE_ROOT}/Modules/CMakeCCompilerABI.c)
+ # Try to identify the compiler features
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
+ CMAKE_DETERMINE_COMPILE_FEATURES(C)
+
+ # Re-configure to save learned information.
+ configure_file(
+ ${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeCCompiler.cmake
+ @ONLY
+ )
+ include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCCompiler.cmake)
+
+ if(CMAKE_C_SIZEOF_DATA_PTR)
+ foreach(f ${CMAKE_C_ABI_FILES})
+ include(${f})
+ endforeach()
+ unset(CMAKE_C_ABI_FILES)
+ endif()
+endif()
+
+set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
+unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
+unset(__CMAKE_C_COMPILER_OUTPUT)
diff --git a/share/cmake-3.17/Modules/CMakeTestCSharpCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestCSharpCompiler.cmake
new file mode 100644
index 0000000..1119a45
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeTestCSharpCompiler.cmake
@@ -0,0 +1,67 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+if(CMAKE_CSharp_COMPILER_FORCED)
+ # The compiler configuration was forced by the user.
+ # Assume the user has configured all compiler information.
+ set(CMAKE_CSharp_COMPILER_WORKS TRUE)
+ return()
+endif()
+
+include(CMakeTestCompilerCommon)
+
+unset(CMAKE_CSharp_COMPILER_WORKS CACHE)
+
+set(test_compile_file "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCSharpCompiler.cs")
+
+# This file is used by EnableLanguage in cmGlobalGenerator to
+# determine that the selected C# compiler can actually compile
+# and link the most basic of programs. If not, a fatal error
+# is set and cmake stops processing commands and will not generate
+# any makefiles or projects.
+if(NOT CMAKE_CSharp_COMPILER_WORKS)
+ # Don't call PrintTestCompilerStatus() because the "C#" we want to pass
+ # as the LANG doesn't match with the variable name "CMAKE_CSharp_COMPILER"
+ message(CHECK_START "Check for working C# compiler: ${CMAKE_CSharp_COMPILER}")
+ file(WRITE "${test_compile_file}"
+ "namespace Test {"
+ " public class CSharp {"
+ " static void Main(string[] args) {}"
+ " }"
+ "}"
+ )
+ try_compile(CMAKE_CSharp_COMPILER_WORKS ${CMAKE_BINARY_DIR} "${test_compile_file}"
+ OUTPUT_VARIABLE __CMAKE_CSharp_COMPILER_OUTPUT
+ )
+ # Move result from cache to normal variable.
+ set(CMAKE_CSharp_COMPILER_WORKS ${CMAKE_CSharp_COMPILER_WORKS})
+ unset(CMAKE_CSharp_COMPILER_WORKS CACHE)
+ set(CSharp_TEST_WAS_RUN 1)
+endif()
+
+if(NOT CMAKE_CSharp_COMPILER_WORKS)
+ PrintTestCompilerResult(CHECK_FAIL "broken")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the C# compiler works failed with "
+ "the following output:\n${__CMAKE_CSharp_COMPILER_OUTPUT}\n\n")
+ string(REPLACE "\n" "\n " _output "${__CMAKE_CSharp_COMPILER_OUTPUT}")
+ message(FATAL_ERROR "The C# compiler\n \"${CMAKE_CSharp_COMPILER}\"\n"
+ "is not able to compile a simple test program.\nIt fails "
+ "with the following output:\n ${_output}\n\n"
+ "CMake will not be able to correctly generate this project.")
+else()
+ if(CSharp_TEST_WAS_RUN)
+ PrintTestCompilerResult(CHECK_PASS "works")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the C# compiler works passed with "
+ "the following output:\n${__CMAKE_CSharp_COMPILER_OUTPUT}\n\n")
+ endif()
+
+ # Re-configure to save learned information.
+ configure_file(
+ ${CMAKE_ROOT}/Modules/CMakeCSharpCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeCSharpCompiler.cmake
+ @ONLY
+ )
+ include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCSharpCompiler.cmake)
+endif()
diff --git a/share/cmake-3.17/Modules/CMakeTestCUDACompiler.cmake b/share/cmake-3.17/Modules/CMakeTestCUDACompiler.cmake
new file mode 100644
index 0000000..05811a8
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeTestCUDACompiler.cmake
@@ -0,0 +1,103 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+if(CMAKE_CUDA_COMPILER_FORCED)
+ # The compiler configuration was forced by the user.
+ # Assume the user has configured all compiler information.
+ set(CMAKE_CUDA_COMPILER_WORKS TRUE)
+ return()
+endif()
+
+include(CMakeTestCompilerCommon)
+
+# Remove any cached result from an older CMake version.
+# We now store this in CMakeCUDACompiler.cmake.
+unset(CMAKE_CUDA_COMPILER_WORKS CACHE)
+
+# This file is used by EnableLanguage in cmGlobalGenerator to
+# determine that the selected cuda compiler can actually compile
+# and link the most basic of programs. If not, a fatal error
+# is set and cmake stops processing commands and will not generate
+# any makefiles or projects.
+if(NOT CMAKE_CUDA_COMPILER_WORKS)
+ PrintTestCompilerStatus("CUDA")
+ file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.cu
+ "#ifndef __CUDACC__\n"
+ "# error \"The CMAKE_CUDA_COMPILER is set to an invalid CUDA compiler\"\n"
+ "#endif\n"
+ "int main(){return 0;}\n")
+
+ try_compile(CMAKE_CUDA_COMPILER_WORKS ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.cu
+ OUTPUT_VARIABLE __CMAKE_CUDA_COMPILER_OUTPUT)
+
+ # Move result from cache to normal variable.
+ set(CMAKE_CUDA_COMPILER_WORKS ${CMAKE_CUDA_COMPILER_WORKS})
+ unset(CMAKE_CUDA_COMPILER_WORKS CACHE)
+ set(CUDA_TEST_WAS_RUN 1)
+endif()
+
+if(NOT CMAKE_CUDA_COMPILER_WORKS)
+ PrintTestCompilerResult(CHECK_FAIL "broken")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the CUDA compiler works failed with "
+ "the following output:\n${__CMAKE_CUDA_COMPILER_OUTPUT}\n\n")
+ string(REPLACE "\n" "\n " _output "${__CMAKE_CUDA_COMPILER_OUTPUT}")
+ message(FATAL_ERROR "The CUDA compiler\n \"${CMAKE_CUDA_COMPILER}\"\n"
+ "is not able to compile a simple test program.\nIt fails "
+ "with the following output:\n ${_output}\n\n"
+ "CMake will not be able to correctly generate this project.")
+else()
+ if(CUDA_TEST_WAS_RUN)
+ PrintTestCompilerResult(CHECK_PASS "works")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the CUDA compiler works passed with "
+ "the following output:\n${__CMAKE_CUDA_COMPILER_OUTPUT}\n\n")
+ endif()
+
+ # Try to identify the ABI and configure it into CMakeCUDACompiler.cmake
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
+ CMAKE_DETERMINE_COMPILER_ABI(CUDA ${CMAKE_ROOT}/Modules/CMakeCUDACompilerABI.cu)
+ # Try to identify the compiler features
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
+ CMAKE_DETERMINE_COMPILE_FEATURES(CUDA)
+
+ if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
+ set(CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES "${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES}")
+ set(CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES "${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES}")
+ endif()
+
+ # Remove the following libraries from CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES and
+ # CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES
+ #
+ # - cudart
+ # - cudart_static
+ # - cudadevrt
+ #
+ # These are controlled by CMAKE_CUDA_RUNTIME_LIBRARY
+ list(REMOVE_ITEM CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES cudart cudart_static cudadevrt)
+ list(REMOVE_ITEM CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES cudart cudart_static cudadevrt)
+
+ # Remove the CUDA Toolkit include directories from the set of
+ # implicit system include directories.
+ # This resolves the issue that NVCC doesn't specify these
+ # includes as SYSTEM includes when compiling device code, and sometimes
+ # they contain headers that generate warnings, so let users mark them
+ # as SYSTEM explicitly
+ if(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES)
+ list(REMOVE_ITEM CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES
+ ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
+ )
+ endif()
+
+ # Re-configure to save learned information.
+ configure_file(
+ ${CMAKE_ROOT}/Modules/CMakeCUDACompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeCUDACompiler.cmake
+ @ONLY
+ )
+ include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCUDACompiler.cmake)
+endif()
+
+
+unset(__CMAKE_CUDA_COMPILER_OUTPUT)
diff --git a/share/cmake-3.17/Modules/CMakeTestCXXCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestCXXCompiler.cmake
new file mode 100644
index 0000000..bd42153
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeTestCXXCompiler.cmake
@@ -0,0 +1,90 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+if(CMAKE_CXX_COMPILER_FORCED)
+ # The compiler configuration was forced by the user.
+ # Assume the user has configured all compiler information.
+ set(CMAKE_CXX_COMPILER_WORKS TRUE)
+ return()
+endif()
+
+include(CMakeTestCompilerCommon)
+
+# work around enforced code signing and / or missing exectuable target type
+set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
+if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
+ set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
+endif()
+
+# Remove any cached result from an older CMake version.
+# We now store this in CMakeCXXCompiler.cmake.
+unset(CMAKE_CXX_COMPILER_WORKS CACHE)
+
+# This file is used by EnableLanguage in cmGlobalGenerator to
+# determine that the selected C++ compiler can actually compile
+# and link the most basic of programs. If not, a fatal error
+# is set and cmake stops processing commands and will not generate
+# any makefiles or projects.
+if(NOT CMAKE_CXX_COMPILER_WORKS)
+ PrintTestCompilerStatus("CXX")
+ __TestCompiler_setTryCompileTargetType()
+ file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCXXCompiler.cxx
+ "#ifndef __cplusplus\n"
+ "# error \"The CMAKE_CXX_COMPILER is set to a C compiler\"\n"
+ "#endif\n"
+ "int main(){return 0;}\n")
+ try_compile(CMAKE_CXX_COMPILER_WORKS ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCXXCompiler.cxx
+ OUTPUT_VARIABLE __CMAKE_CXX_COMPILER_OUTPUT)
+ # Move result from cache to normal variable.
+ set(CMAKE_CXX_COMPILER_WORKS ${CMAKE_CXX_COMPILER_WORKS})
+ unset(CMAKE_CXX_COMPILER_WORKS CACHE)
+ set(CXX_TEST_WAS_RUN 1)
+ __TestCompiler_restoreTryCompileTargetType()
+endif()
+
+if(NOT CMAKE_CXX_COMPILER_WORKS)
+ PrintTestCompilerResult(CHECK_FAIL "broken")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the CXX compiler works failed with "
+ "the following output:\n${__CMAKE_CXX_COMPILER_OUTPUT}\n\n")
+ string(REPLACE "\n" "\n " _output "${__CMAKE_CXX_COMPILER_OUTPUT}")
+ message(FATAL_ERROR "The C++ compiler\n \"${CMAKE_CXX_COMPILER}\"\n"
+ "is not able to compile a simple test program.\nIt fails "
+ "with the following output:\n ${_output}\n\n"
+ "CMake will not be able to correctly generate this project.")
+else()
+ if(CXX_TEST_WAS_RUN)
+ PrintTestCompilerResult(CHECK_PASS "works")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the CXX compiler works passed with "
+ "the following output:\n${__CMAKE_CXX_COMPILER_OUTPUT}\n\n")
+ endif()
+
+ # Try to identify the ABI and configure it into CMakeCXXCompiler.cmake
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
+ CMAKE_DETERMINE_COMPILER_ABI(CXX ${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp)
+ # Try to identify the compiler features
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
+ CMAKE_DETERMINE_COMPILE_FEATURES(CXX)
+
+ # Re-configure to save learned information.
+ configure_file(
+ ${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeCXXCompiler.cmake
+ @ONLY
+ )
+ include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCXXCompiler.cmake)
+
+ if(CMAKE_CXX_SIZEOF_DATA_PTR)
+ foreach(f ${CMAKE_CXX_ABI_FILES})
+ include(${f})
+ endforeach()
+ unset(CMAKE_CXX_ABI_FILES)
+ endif()
+endif()
+
+set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
+unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
+unset(__CMAKE_CXX_COMPILER_OUTPUT)
diff --git a/share/cmake-3.17/Modules/CMakeTestCompilerCommon.cmake b/share/cmake-3.17/Modules/CMakeTestCompilerCommon.cmake
new file mode 100644
index 0000000..da7c007
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeTestCompilerCommon.cmake
@@ -0,0 +1,34 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+function(PrintTestCompilerStatus LANG)
+ # ARGN shouldn't be needed now, but it is there to preserve backward
+ # compatibility in case this function is called from project code or
+ # custom toolchains (they shouldn't, but we can easily support it)
+ message(CHECK_START "Check for working ${LANG} compiler: ${CMAKE_${LANG}_COMPILER}${ARGN}")
+endfunction()
+
+function(PrintTestCompilerResult TYPE MSG)
+ message(${TYPE} "${MSG}")
+endfunction()
+
+# if required set the target type if not already explicitly set
+macro(__TestCompiler_setTryCompileTargetType)
+ if(NOT CMAKE_TRY_COMPILE_TARGET_TYPE)
+ if("${CMAKE_GENERATOR}" MATCHES "Green Hills MULTI")
+ #prefer static libraries to avoid linking issues
+ set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
+ set(__CMAKE_TEST_COMPILER_TARGET_TYPE_RESTORE 1)
+ endif()
+ endif()
+endmacro()
+
+# restore the original value
+# -- not necessary if __TestCompiler_setTryCompileTargetType() was used in function scope
+macro(__TestCompiler_restoreTryCompileTargetType)
+ if(__CMAKE_TEST_COMPILER_TARGET_TYPE_RESTORE)
+ unset(CMAKE_TRY_COMPILE_TARGET_TYPE)
+ unset(__CMAKE_TEST_COMPILER_TARGET_TYPE_RESTORE)
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/CMakeTestFortranCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestFortranCompiler.cmake
new file mode 100644
index 0000000..7461f9c
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeTestFortranCompiler.cmake
@@ -0,0 +1,102 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+if(CMAKE_Fortran_COMPILER_FORCED)
+ # The compiler configuration was forced by the user.
+ # Assume the user has configured all compiler information.
+ set(CMAKE_Fortran_COMPILER_WORKS TRUE)
+ return()
+endif()
+
+include(CMakeTestCompilerCommon)
+
+# Remove any cached result from an older CMake version.
+# We now store this in CMakeFortranCompiler.cmake.
+unset(CMAKE_Fortran_COMPILER_WORKS CACHE)
+
+# This file is used by EnableLanguage in cmGlobalGenerator to
+# determine that the selected Fortran compiler can actually compile
+# and link the most basic of programs. If not, a fatal error
+# is set and cmake stops processing commands and will not generate
+# any makefiles or projects.
+if(NOT CMAKE_Fortran_COMPILER_WORKS)
+ PrintTestCompilerStatus("Fortran")
+ file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f "
+ PROGRAM TESTFortran
+ PRINT *, 'Hello'
+ END
+ ")
+ try_compile(CMAKE_Fortran_COMPILER_WORKS ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f
+ OUTPUT_VARIABLE OUTPUT)
+ # Move result from cache to normal variable.
+ set(CMAKE_Fortran_COMPILER_WORKS ${CMAKE_Fortran_COMPILER_WORKS})
+ unset(CMAKE_Fortran_COMPILER_WORKS CACHE)
+ set(FORTRAN_TEST_WAS_RUN 1)
+endif()
+
+if(NOT CMAKE_Fortran_COMPILER_WORKS)
+ PrintTestCompilerResult(CHECK_FAIL "broken")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the Fortran compiler works failed with "
+ "the following output:\n${OUTPUT}\n\n")
+ string(REPLACE "\n" "\n " _output "${OUTPUT}")
+ message(FATAL_ERROR "The Fortran compiler\n \"${CMAKE_Fortran_COMPILER}\"\n"
+ "is not able to compile a simple test program.\nIt fails "
+ "with the following output:\n ${_output}\n\n"
+ "CMake will not be able to correctly generate this project.")
+else()
+ if(FORTRAN_TEST_WAS_RUN)
+ PrintTestCompilerResult(CHECK_PASS "works")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the Fortran compiler works passed with "
+ "the following output:\n${OUTPUT}\n\n")
+ endif()
+
+ # Try to identify the ABI and configure it into CMakeFortranCompiler.cmake
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
+ CMAKE_DETERMINE_COMPILER_ABI(Fortran ${CMAKE_ROOT}/Modules/CMakeFortranCompilerABI.F)
+
+ # Test for Fortran 90 support by using an f90-specific construct.
+ if(NOT DEFINED CMAKE_Fortran_COMPILER_SUPPORTS_F90)
+ message(CHECK_START "Checking whether ${CMAKE_Fortran_COMPILER} supports Fortran 90")
+ file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompilerF90.f90 "
+ PROGRAM TESTFortran90
+ integer stop ; stop = 1 ; do while ( stop .eq. 0 ) ; end do
+ END PROGRAM TESTFortran90
+")
+ try_compile(CMAKE_Fortran_COMPILER_SUPPORTS_F90 ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompilerF90.f90
+ OUTPUT_VARIABLE OUTPUT)
+ if(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
+ message(CHECK_PASS "yes")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the Fortran compiler supports Fortran 90 passed with "
+ "the following output:\n${OUTPUT}\n\n")
+ set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 1)
+ else()
+ message(CHECK_FAIL "no")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the Fortran compiler supports Fortran 90 failed with "
+ "the following output:\n${OUTPUT}\n\n")
+ set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 0)
+ endif()
+ unset(CMAKE_Fortran_COMPILER_SUPPORTS_F90 CACHE)
+ endif()
+
+ # Re-configure to save learned information.
+ configure_file(
+ ${CMAKE_ROOT}/Modules/CMakeFortranCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeFortranCompiler.cmake
+ @ONLY
+ )
+ include(${CMAKE_PLATFORM_INFO_DIR}/CMakeFortranCompiler.cmake)
+
+ if(CMAKE_Fortran_SIZEOF_DATA_PTR)
+ foreach(f ${CMAKE_Fortran_ABI_FILES})
+ include(${f})
+ endforeach()
+ unset(CMAKE_Fortran_ABI_FILES)
+ endif()
+endif()
diff --git a/share/cmake-3.16/Modules/CMakeTestGNU.c b/share/cmake-3.17/Modules/CMakeTestGNU.c
index 933e5a2..933e5a2 100644
--- a/share/cmake-3.16/Modules/CMakeTestGNU.c
+++ b/share/cmake-3.17/Modules/CMakeTestGNU.c
diff --git a/share/cmake-3.16/Modules/CMakeTestJavaCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestJavaCompiler.cmake
index 3c33573..3c33573 100644
--- a/share/cmake-3.16/Modules/CMakeTestJavaCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeTestJavaCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestOBJCCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestOBJCCompiler.cmake
new file mode 100644
index 0000000..bcc6fae
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeTestOBJCCompiler.cmake
@@ -0,0 +1,94 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+if(CMAKE_OBJC_COMPILER_FORCED)
+ # The compiler configuration was forced by the user.
+ # Assume the user has configured all compiler information.
+ set(CMAKE_OBJC_COMPILER_WORKS TRUE)
+ return()
+endif()
+
+include(CMakeTestCompilerCommon)
+
+# work around enforced code signing and / or missing exectuable target type
+set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
+if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
+ set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
+endif()
+
+# Remove any cached result from an older CMake version.
+# We now store this in CMakeCCompiler.cmake.
+unset(CMAKE_OBJC_COMPILER_WORKS CACHE)
+
+# This file is used by EnableLanguage in cmGlobalGenerator to
+# determine that that selected Objective-C compiler can actually compile
+# and link the most basic of programs. If not, a fatal error
+# is set and cmake stops processing commands and will not generate
+# any makefiles or projects.
+if(NOT CMAKE_OBJC_COMPILER_WORKS)
+ PrintTestCompilerStatus("OBJC")
+ __TestCompiler_setTryCompileTargetType()
+ file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCCompiler.m
+ "#ifdef __cplusplus\n"
+ "# error \"The CMAKE_OBJC_COMPILER is set to a C++ compiler\"\n"
+ "#endif\n"
+ "#ifndef __OBJC__\n"
+ "# error \"The CMAKE_OBJC_COMPILER is not an Objective-C compiler\"\n"
+ "#endif\n"
+ "int main(int argc, char* argv[])\n"
+ "{ (void)argv; return argc-1;}\n")
+ try_compile(CMAKE_OBJC_COMPILER_WORKS ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCCompiler.m
+ OUTPUT_VARIABLE __CMAKE_OBJC_COMPILER_OUTPUT)
+ # Move result from cache to normal variable.
+ set(CMAKE_OBJC_COMPILER_WORKS ${CMAKE_OBJC_COMPILER_WORKS})
+ unset(CMAKE_OBJC_COMPILER_WORKS CACHE)
+ set(OBJC_TEST_WAS_RUN 1)
+ __TestCompiler_restoreTryCompileTargetType()
+endif()
+
+if(NOT CMAKE_OBJC_COMPILER_WORKS)
+ PrintTestCompilerResult(CHECK_FAIL "broken")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the Objective-C compiler works failed with "
+ "the following output:\n${__CMAKE_OBJC_COMPILER_OUTPUT}\n\n")
+ string(REPLACE "\n" "\n " _output "${__CMAKE_OBJC_COMPILER_OUTPUT}")
+ message(FATAL_ERROR "The Objective-C compiler\n \"${CMAKE_OBJC_COMPILER}\"\n"
+ "is not able to compile a simple test program.\nIt fails "
+ "with the following output:\n ${_output}\n\n"
+ "CMake will not be able to correctly generate this project.")
+else()
+ if(OBJC_TEST_WAS_RUN)
+ PrintTestCompilerResult(CHECK_PASS "works")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the Objective-C compiler works passed with "
+ "the following output:\n${__CMAKE_OBJC_COMPILER_OUTPUT}\n\n")
+ endif()
+
+ # Try to identify the ABI and configure it into CMakeOBJCCompiler.cmake
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
+ CMAKE_DETERMINE_COMPILER_ABI(OBJC ${CMAKE_ROOT}/Modules/CMakeOBJCCompilerABI.m)
+ # Try to identify the compiler features
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
+ CMAKE_DETERMINE_COMPILE_FEATURES(OBJC)
+
+ # Re-configure to save learned information.
+ configure_file(
+ ${CMAKE_ROOT}/Modules/CMakeOBJCCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake
+ @ONLY
+ )
+ include(${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake)
+
+ if(CMAKE_OBJC_SIZEOF_DATA_PTR)
+ foreach(f ${CMAKE_OBJC_ABI_FILES})
+ include(${f})
+ endforeach()
+ unset(CMAKE_OBJC_ABI_FILES)
+ endif()
+endif()
+
+set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
+unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
+unset(__CMAKE_OBJC_COMPILER_OUTPUT)
diff --git a/share/cmake-3.17/Modules/CMakeTestOBJCXXCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestOBJCXXCompiler.cmake
new file mode 100644
index 0000000..83227d5
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeTestOBJCXXCompiler.cmake
@@ -0,0 +1,93 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+if(CMAKE_OBJCXX_COMPILER_FORCED)
+ # The compiler configuration was forced by the user.
+ # Assume the user has configured all compiler information.
+ set(CMAKE_OBJCXX_COMPILER_WORKS TRUE)
+ return()
+endif()
+
+include(CMakeTestCompilerCommon)
+
+# work around enforced code signing and / or missing exectuable target type
+set(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
+if(_CMAKE_FEATURE_DETECTION_TARGET_TYPE)
+ set(CMAKE_TRY_COMPILE_TARGET_TYPE ${_CMAKE_FEATURE_DETECTION_TARGET_TYPE})
+endif()
+
+# Remove any cached result from an older CMake version.
+# We now store this in CMakeOBJCXXCompiler.cmake.
+unset(CMAKE_OBJCXX_COMPILER_WORKS CACHE)
+
+# This file is used by EnableLanguage in cmGlobalGenerator to
+# determine that the selected Objective-C++ compiler can actually compile
+# and link the most basic of programs. If not, a fatal error
+# is set and cmake stops processing commands and will not generate
+# any makefiles or projects.
+if(NOT CMAKE_OBJCXX_COMPILER_WORKS)
+ PrintTestCompilerStatus("OBJCXX")
+ __TestCompiler_setTryCompileTargetType()
+ file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCXXCompiler.mm
+ "#ifndef __cplusplus\n"
+ "# error \"The CMAKE_OBJCXX_COMPILER is set to a C compiler\"\n"
+ "#endif\n"
+ "#ifndef __OBJC__\n"
+ "# error \"The CMAKE_OBJCXX_COMPILER is not an Objective-C++ compiler\"\n"
+ "#endif\n"
+ "int main(){return 0;}\n")
+ try_compile(CMAKE_OBJCXX_COMPILER_WORKS ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testOBJCXXCompiler.mm
+ OUTPUT_VARIABLE __CMAKE_OBJCXX_COMPILER_OUTPUT)
+ # Move result from cache to normal variable.
+ set(CMAKE_OBJCXX_COMPILER_WORKS ${CMAKE_OBJCXX_COMPILER_WORKS})
+ unset(CMAKE_OBJCXX_COMPILER_WORKS CACHE)
+ set(OBJCXX_TEST_WAS_RUN 1)
+ __TestCompiler_restoreTryCompileTargetType()
+endif()
+
+if(NOT CMAKE_OBJCXX_COMPILER_WORKS)
+ PrintTestCompilerResult(CHECK_FAIL "broken")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the Objective-C++ compiler works failed with "
+ "the following output:\n${__CMAKE_OBJCXX_COMPILER_OUTPUT}\n\n")
+ string(REPLACE "\n" "\n " _output "${__CMAKE_OBJCXX_COMPILER_OUTPUT}")
+ message(FATAL_ERROR "The Objective-C++ compiler\n \"${CMAKE_OBJCXX_COMPILER}\"\n"
+ "is not able to compile a simple test program.\nIt fails "
+ "with the following output:\n ${_output}\n\n"
+ "CMake will not be able to correctly generate this project.")
+else()
+ if(OBJCXX_TEST_WAS_RUN)
+ PrintTestCompilerResult(CHECK_PASS "works")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the Objective-C++ compiler works passed with "
+ "the following output:\n${__CMAKE_OBJCXX_COMPILER_OUTPUT}\n\n")
+ endif()
+
+ # Try to identify the ABI and configure it into CMakeOBJCXXCompiler.cmake
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
+ CMAKE_DETERMINE_COMPILER_ABI(OBJCXX ${CMAKE_ROOT}/Modules/CMakeOBJCXXCompilerABI.mm)
+ # Try to identify the compiler features
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake)
+ CMAKE_DETERMINE_COMPILE_FEATURES(OBJCXX)
+
+ # Re-configure to save learned information.
+ configure_file(
+ ${CMAKE_ROOT}/Modules/CMakeOBJCXXCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCXXCompiler.cmake
+ @ONLY
+ )
+ include(${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCXXCompiler.cmake)
+
+ if(CMAKE_OBJCXX_SIZEOF_DATA_PTR)
+ foreach(f ${CMAKE_OBJCXX_ABI_FILES})
+ include(${f})
+ endforeach()
+ unset(CMAKE_OBJCXX_ABI_FILES)
+ endif()
+endif()
+
+set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE})
+unset(__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE)
+unset(__CMAKE_OBJCXX_COMPILER_OUTPUT)
diff --git a/share/cmake-3.16/Modules/CMakeTestRCCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestRCCompiler.cmake
index 3123a6c..3123a6c 100644
--- a/share/cmake-3.16/Modules/CMakeTestRCCompiler.cmake
+++ b/share/cmake-3.17/Modules/CMakeTestRCCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestSwiftCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestSwiftCompiler.cmake
new file mode 100644
index 0000000..d98dc9d
--- /dev/null
+++ b/share/cmake-3.17/Modules/CMakeTestSwiftCompiler.cmake
@@ -0,0 +1,64 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+if(CMAKE_Swift_COMPILER_FORCED)
+ # The compiler configuration was forced by the user.
+ # Assume the user has configured all compiler information.
+ set(CMAKE_Swift_COMPILER_WORKS TRUE)
+ return()
+endif()
+
+include(CMakeTestCompilerCommon)
+
+# Remove any cached result from an older CMake version.
+# We now store this in CMakeSwiftCompiler.cmake.
+unset(CMAKE_Swift_COMPILER_WORKS CACHE)
+
+# This file is used by EnableLanguage in cmGlobalGenerator to
+# determine that the selected C++ compiler can actually compile
+# and link the most basic of programs. If not, a fatal error
+# is set and cmake stops processing commands and will not generate
+# any makefiles or projects.
+if(NOT CMAKE_Swift_COMPILER_WORKS)
+ PrintTestCompilerStatus("Swift")
+ file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.swift
+ "print(\"CMake\")\n")
+ try_compile(CMAKE_Swift_COMPILER_WORKS ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.swift
+ OUTPUT_VARIABLE __CMAKE_Swift_COMPILER_OUTPUT)
+ # Move result from cache to normal variable.
+ set(CMAKE_Swift_COMPILER_WORKS ${CMAKE_Swift_COMPILER_WORKS})
+ unset(CMAKE_Swift_COMPILER_WORKS CACHE)
+ set(Swift_TEST_WAS_RUN 1)
+endif()
+
+if(NOT CMAKE_Swift_COMPILER_WORKS)
+ PrintTestCompilerResult(CHECK_FAIL "broken")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the Swift compiler works failed with "
+ "the following output:\n${__CMAKE_Swift_COMPILER_OUTPUT}\n\n")
+ string(REPLACE "\n" "\n " _output "${__CMAKE_Swift_COMPILER_OUTPUT}")
+ message(FATAL_ERROR "The Swift compiler\n \"${CMAKE_Swift_COMPILER}\"\n"
+ "is not able to compile a simple test program.\nIt fails "
+ "with the following output:\n ${_output}\n\n"
+ "CMake will not be able to correctly generate this project.")
+else()
+ if(Swift_TEST_WAS_RUN)
+ PrintTestCompilerResult(CHECK_PASS "works")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the Swift compiler works passed with "
+ "the following output:\n${__CMAKE_Swift_COMPILER_OUTPUT}\n\n")
+ endif()
+
+ # Unlike C and CXX we do not yet detect any information about the Swift ABI.
+ # However, one of the steps done for C and CXX as part of that detection is
+ # to initialize the implicit include directories. That is relevant here.
+ set(CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES "${_CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES_INIT}")
+
+ # Re-configure to save learned information.
+ configure_file(${CMAKE_ROOT}/Modules/CMakeSwiftCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeSwiftCompiler.cmake @ONLY)
+ include(${CMAKE_PLATFORM_INFO_DIR}/CMakeSwiftCompiler.cmake)
+endif()
+
+unset(__CMAKE_Swift_COMPILER_OUTPUT)
diff --git a/share/cmake-3.16/Modules/CMakeUnixFindMake.cmake b/share/cmake-3.17/Modules/CMakeUnixFindMake.cmake
index 1165656..1165656 100644
--- a/share/cmake-3.16/Modules/CMakeUnixFindMake.cmake
+++ b/share/cmake-3.17/Modules/CMakeUnixFindMake.cmake
diff --git a/share/cmake-3.16/Modules/CMakeVerifyManifest.cmake b/share/cmake-3.17/Modules/CMakeVerifyManifest.cmake
index 705ef8a..705ef8a 100644
--- a/share/cmake-3.16/Modules/CMakeVerifyManifest.cmake
+++ b/share/cmake-3.17/Modules/CMakeVerifyManifest.cmake
diff --git a/share/cmake-3.17/Modules/CPack.cmake b/share/cmake-3.17/Modules/CPack.cmake
new file mode 100644
index 0000000..baf7e47
--- /dev/null
+++ b/share/cmake-3.17/Modules/CPack.cmake
@@ -0,0 +1,809 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CPack
+-----
+
+Configure the binary and source package installers.
+
+Introduction
+^^^^^^^^^^^^
+
+The CPack module generates the configuration files ``CPackConfig.cmake``
+and ``CPackSourceConfig.cmake``. They are intended for use in a subsequent
+run of the :manual:`cpack <cpack(1)>` program where they steer the generation
+of installers or/and source packages.
+
+Depending on the CMake generator, the CPack module may also add two new build
+targets, ``package`` and ``package_source``. See the `packaging targets`_
+section below for details.
+
+The generated binary installers contain everything installed via CMake's
+:command:`install` command (and the deprecated commands :command:`install_files`,
+:command:`install_programs`, and :command:`install_targets`).
+For certain kinds of binary installers (including the graphical
+installers on macOS and Windows), CPack generates installers that
+allow users to select individual application components to install.
+See :module:`CPackComponent` module for further details.
+
+CPack Generators
+^^^^^^^^^^^^^^^^
+
+The :variable:`CPACK_GENERATOR` variable has different meanings in different
+contexts. In a ``CMakeLists.txt`` file, :variable:`CPACK_GENERATOR` is a
+*list of generators*: and when :manual:`cpack <cpack(1)>` is run with no other
+arguments, it will iterate over that list and produce one package for each
+generator. In a :variable:`CPACK_PROJECT_CONFIG_FILE`,
+:variable:`CPACK_GENERATOR` is a *string naming a single generator*. If you
+need per-cpack-generator logic to control *other* cpack settings, then you
+need a :variable:`CPACK_PROJECT_CONFIG_FILE`.
+
+The CMake source tree itself contains a :variable:`CPACK_PROJECT_CONFIG_FILE`.
+See the top level file ``CMakeCPackOptions.cmake.in`` for an example.
+
+If set, the :variable:`CPACK_PROJECT_CONFIG_FILE` is included automatically
+on a per-generator basis. It only need contain overrides.
+
+Here's how it works:
+
+* :manual:`cpack <cpack(1)>` runs
+* it includes ``CPackConfig.cmake``
+* it iterates over the generators given by the ``-G`` command line option,
+ or if no such option was specified, over the list of generators given by
+ the :variable:`CPACK_GENERATOR` variable set in the ``CPackConfig.cmake``
+ input file.
+* foreach generator, it then
+
+ - sets :variable:`CPACK_GENERATOR` to the one currently being iterated
+ - includes the :variable:`CPACK_PROJECT_CONFIG_FILE`
+ - produces the package for that generator
+
+This is the key: For each generator listed in :variable:`CPACK_GENERATOR` in
+``CPackConfig.cmake``, cpack will *reset* :variable:`CPACK_GENERATOR`
+internally to *the one currently being used* and then include the
+:variable:`CPACK_PROJECT_CONFIG_FILE`.
+
+For a list of available generators, see :manual:`cpack-generators(7)`.
+
+.. _`packaging targets`:
+
+Targets package and package_source
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If CMake is run with the Makefile, Ninja, or Xcode generator, then
+``include(CPack)`` generates a target ``package``. This makes it possible
+to build a binary installer from CMake, Make, or Ninja: Instead of ``cpack``,
+one may call ``cmake --build . --target package`` or ``make package`` or
+``ninja package``. The VS generator creates an uppercase target ``PACKAGE``.
+
+If CMake is run with the Makefile or Ninja generator, then ``include(CPack)``
+also generates a target ``package_source``. To build a source package,
+instead of ``cpack -G TGZ --config CPackConfig.cmake`` one may call
+``cmake --build . --target package_source``, ``make package_source``,
+or ``ninja package_source``.
+
+
+Variables common to all CPack Generators
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Before including this CPack module in your ``CMakeLists.txt`` file, there
+are a variety of variables that can be set to customize the resulting
+installers. The most commonly-used variables are:
+
+.. variable:: CPACK_PACKAGE_NAME
+
+ The name of the package (or application). If not specified, it defaults to
+ the project name.
+
+.. variable:: CPACK_PACKAGE_VENDOR
+
+ The name of the package vendor. (e.g., "Kitware"). The default is "Humanity".
+
+.. variable:: CPACK_PACKAGE_DIRECTORY
+
+ The directory in which CPack is doing its packaging. If it is not set
+ then this will default (internally) to the build dir. This variable may
+ be defined in a CPack config file or from the :manual:`cpack <cpack(1)>`
+ command line option ``-B``. If set, the command line option overrides the
+ value found in the config file.
+
+.. variable:: CPACK_PACKAGE_VERSION_MAJOR
+
+ Package major version. This variable will always be set, but its default
+ value depends on whether or not version details were given to the
+ :command:`project` command in the top level CMakeLists.txt file. If version
+ details were given, the default value will be
+ :variable:`CMAKE_PROJECT_VERSION_MAJOR`. If no version details were given,
+ a default version of 0.1.1 will be assumed, leading to
+ ``CPACK_PACKAGE_VERSION_MAJOR`` having a default value of 0.
+
+.. variable:: CPACK_PACKAGE_VERSION_MINOR
+
+ Package minor version. The default value is determined based on whether or
+ not version details were given to the :command:`project` command in the top
+ level CMakeLists.txt file. If version details were given, the default
+ value will be :variable:`CMAKE_PROJECT_VERSION_MINOR`, but if no minor
+ version component was specified then ``CPACK_PACKAGE_VERSION_MINOR`` will be
+ left unset. If no project version was given at all, a default version of
+ 0.1.1 will be assumed, leading to ``CPACK_PACKAGE_VERSION_MINOR`` having a
+ default value of 1.
+
+.. variable:: CPACK_PACKAGE_VERSION_PATCH
+
+ Package patch version. The default value is determined based on whether or
+ not version details were given to the :command:`project` command in the top
+ level CMakeLists.txt file. If version details were given, the default
+ value will be :variable:`CMAKE_PROJECT_VERSION_PATCH`, but if no patch
+ version component was specified then ``CPACK_PACKAGE_VERSION_PATCH`` will be
+ left unset. If no project version was given at all, a default version of
+ 0.1.1 will be assumed, leading to ``CPACK_PACKAGE_VERSION_PATCH`` having a
+ default value of 1.
+
+.. variable:: CPACK_PACKAGE_DESCRIPTION
+
+ A description of the project, used in places such as the introduction
+ screen of CPack-generated Windows installers. If not set, the value of
+ this variable is populated from the file named by
+ :variable:`CPACK_PACKAGE_DESCRIPTION_FILE`.
+
+.. variable:: CPACK_PACKAGE_DESCRIPTION_FILE
+
+ A text file used to describe the project when
+ :variable:`CPACK_PACKAGE_DESCRIPTION` is not explicitly set. The default
+ value for ``CPACK_PACKAGE_DESCRIPTION_FILE`` points to a built-in template
+ file ``Templates/CPack.GenericDescription.txt``.
+
+.. variable:: CPACK_PACKAGE_DESCRIPTION_SUMMARY
+
+ Short description of the project (only a few words). If the
+ :variable:`CMAKE_PROJECT_DESCRIPTION` variable is set, it is used as the
+ default value, otherwise the default will be a string generated by CMake
+ based on :variable:`CMAKE_PROJECT_NAME`.
+
+.. variable:: CPACK_PACKAGE_HOMEPAGE_URL
+
+ Project homepage URL. The default value is taken from the
+ :variable:`CMAKE_PROJECT_HOMEPAGE_URL` variable, which is set by the top
+ level :command:`project` command, or else the default will be empty if no
+ URL was provided to :command:`project`.
+
+.. variable:: CPACK_PACKAGE_FILE_NAME
+
+ The name of the package file to generate, not including the
+ extension. For example, ``cmake-2.6.1-Linux-i686``. The default value
+ is::
+
+ ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}
+
+.. variable:: CPACK_PACKAGE_INSTALL_DIRECTORY
+
+ Installation directory on the target system. This may be used by some
+ CPack generators like NSIS to create an installation directory e.g.,
+ "CMake 2.5" below the installation prefix. All installed elements will be
+ put inside this directory.
+
+.. variable:: CPACK_PACKAGE_ICON
+
+ A branding image that will be displayed inside the installer (used by GUI
+ installers).
+
+.. variable:: CPACK_PACKAGE_CHECKSUM
+
+ An algorithm that will be used to generate an additional file with the
+ checksum of the package. The output file name will be::
+
+ ${CPACK_PACKAGE_FILE_NAME}.${CPACK_PACKAGE_CHECKSUM}
+
+ Supported algorithms are those listed by the
+ :ref:`string(\<HASH\>) <Supported Hash Algorithms>` command.
+
+.. variable:: CPACK_PROJECT_CONFIG_FILE
+
+ CPack-time project CPack configuration file. This file is included at cpack
+ time, once per generator after CPack has set :variable:`CPACK_GENERATOR`
+ to the actual generator being used. It allows per-generator setting of
+ ``CPACK_*`` variables at cpack time.
+
+.. variable:: CPACK_RESOURCE_FILE_LICENSE
+
+ License to be embedded in the installer. It will typically be displayed
+ to the user by the produced installer (often with an explicit "Accept"
+ button, for graphical installers) prior to installation. This license
+ file is NOT added to the installed files but is used by some CPack generators
+ like NSIS. If you want to install a license file (may be the same as this
+ one) along with your project, you must add an appropriate CMake
+ :command:`install` command in your ``CMakeLists.txt``.
+
+.. variable:: CPACK_RESOURCE_FILE_README
+
+ ReadMe file to be embedded in the installer. It typically describes in
+ some detail the purpose of the project during the installation. Not all
+ CPack generators use this file.
+
+.. variable:: CPACK_RESOURCE_FILE_WELCOME
+
+ Welcome file to be embedded in the installer. It welcomes users to this
+ installer. Typically used in the graphical installers on Windows and Mac
+ OS X.
+
+.. variable:: CPACK_MONOLITHIC_INSTALL
+
+ Disables the component-based installation mechanism. When set, the
+ component specification is ignored and all installed items are put in a
+ single "MONOLITHIC" package. Some CPack generators do monolithic
+ packaging by default and may be asked to do component packaging by
+ setting ``CPACK_<GENNAME>_COMPONENT_INSTALL`` to ``TRUE``.
+
+.. variable:: CPACK_GENERATOR
+
+ List of CPack generators to use. If not specified, CPack will create a
+ set of options following the naming pattern
+ :variable:`CPACK_BINARY_<GENNAME>` (e.g. ``CPACK_BINARY_NSIS``) allowing
+ the user to enable/disable individual generators. If the ``-G`` option is
+ given on the :manual:`cpack <cpack(1)>` command line, it will override this
+ variable and any ``CPACK_BINARY_<GENNAME>`` options.
+
+.. variable:: CPACK_OUTPUT_CONFIG_FILE
+
+ The name of the CPack binary configuration file. This file is the CPack
+ configuration generated by the CPack module for binary installers.
+ Defaults to ``CPackConfig.cmake``.
+
+.. variable:: CPACK_PACKAGE_EXECUTABLES
+
+ Lists each of the executables and associated text label to be used to
+ create Start Menu shortcuts. For example, setting this to the list
+ ``ccmake;CMake`` will create a shortcut named "CMake" that will execute the
+ installed executable ``ccmake``. Not all CPack generators use it (at least
+ NSIS, WIX and OSXX11 do).
+
+.. variable:: CPACK_STRIP_FILES
+
+ List of files to be stripped. Starting with CMake 2.6.0,
+ ``CPACK_STRIP_FILES`` will be a boolean variable which enables
+ stripping of all files (a list of files evaluates to ``TRUE`` in CMake,
+ so this change is compatible).
+
+.. variable:: CPACK_VERBATIM_VARIABLES
+
+ If set to ``TRUE``, values of variables prefixed with ``CPACK_`` will be
+ escaped before being written to the configuration files, so that the cpack
+ program receives them exactly as they were specified. If not, characters
+ like quotes and backslashes can cause parsing errors or alter the value
+ received by the cpack program. Defaults to ``FALSE`` for backwards
+ compatibility.
+
+Variables for Source Package Generators
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The following CPack variables are specific to source packages, and
+will not affect binary packages:
+
+.. variable:: CPACK_SOURCE_PACKAGE_FILE_NAME
+
+ The name of the source package. For example ``cmake-2.6.1``.
+
+.. variable:: CPACK_SOURCE_STRIP_FILES
+
+ List of files in the source tree that will be stripped. Starting with
+ CMake 2.6.0, ``CPACK_SOURCE_STRIP_FILES`` will be a boolean
+ variable which enables stripping of all files (a list of files evaluates
+ to ``TRUE`` in CMake, so this change is compatible).
+
+.. variable:: CPACK_SOURCE_GENERATOR
+
+ List of generators used for the source packages. As with
+ :variable:`CPACK_GENERATOR`, if this is not specified then CPack will
+ create a set of options (e.g. ``CPACK_SOURCE_ZIP``) allowing
+ users to select which packages will be generated.
+
+.. variable:: CPACK_SOURCE_OUTPUT_CONFIG_FILE
+
+ The name of the CPack source configuration file. This file is the CPack
+ configuration generated by the CPack module for source installers.
+ Defaults to ``CPackSourceConfig.cmake``.
+
+.. variable:: CPACK_SOURCE_IGNORE_FILES
+
+ Pattern of files in the source tree that won't be packaged when building
+ a source package. This is a list of regular expression patterns (that
+ must be properly escaped), e.g.,
+ ``/CVS/;/\\.svn/;\\.swp$;\\.#;/#;.*~;cscope.*``
+
+Variables for Advanced Use
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The following variables are for advanced uses of CPack:
+
+.. variable:: CPACK_CMAKE_GENERATOR
+
+ What CMake generator should be used if the project is a CMake
+ project. Defaults to the value of :variable:`CMAKE_GENERATOR`. Few users
+ will want to change this setting.
+
+.. variable:: CPACK_INSTALL_CMAKE_PROJECTS
+
+ List of four values that specify what project to install. The four values
+ are: Build directory, Project Name, Project Component, Directory. If
+ omitted, CPack will build an installer that installs everything.
+
+.. variable:: CPACK_SYSTEM_NAME
+
+ System name, defaults to the value of :variable:`CMAKE_SYSTEM_NAME`,
+ except on Windows where it will be ``win32`` or ``win64``.
+
+.. variable:: CPACK_PACKAGE_VERSION
+
+ Package full version, used internally. By default, this is built from
+ :variable:`CPACK_PACKAGE_VERSION_MAJOR`,
+ :variable:`CPACK_PACKAGE_VERSION_MINOR`, and
+ :variable:`CPACK_PACKAGE_VERSION_PATCH`.
+
+.. variable:: CPACK_TOPLEVEL_TAG
+
+ Directory for the installed files.
+
+.. variable:: CPACK_INSTALL_COMMANDS
+
+ Extra commands to install components. The environment variable
+ ``CMAKE_INSTALL_PREFIX`` is set to the temporary install directory
+ during execution.
+
+.. variable:: CPACK_INSTALL_SCRIPTS
+
+ Extra CMake scripts executed by CPack during its local staging
+ installation, which is done right before packaging the files.
+ The scripts are not called by a standalone install (e.g.: ``make install``).
+ For every script, the following variables will be set:
+ :variable:`CMAKE_CURRENT_SOURCE_DIR`, :variable:`CMAKE_CURRENT_BINARY_DIR`
+ and :variable:`CMAKE_INSTALL_PREFIX` (which is set to the staging install
+ directory). The singular form ``CMAKE_INSTALL_SCRIPT`` is supported as
+ an alternative variable for historical reasons, but its value is ignored if
+ ``CMAKE_INSTALL_SCRIPTS`` is set and a warning will be issued.
+
+.. variable:: CPACK_INSTALLED_DIRECTORIES
+
+ Extra directories to install.
+
+.. variable:: CPACK_PACKAGE_INSTALL_REGISTRY_KEY
+
+ Registry key used when installing this project. This is only used by
+ installers for Windows. The default value is based on the installation
+ directory.
+
+.. variable:: CPACK_CREATE_DESKTOP_LINKS
+
+ List of desktop links to create. Each desktop link requires a
+ corresponding start menu shortcut as created by
+ :variable:`CPACK_PACKAGE_EXECUTABLES`.
+
+.. variable:: CPACK_BINARY_<GENNAME>
+
+ CPack generated options for binary generators. The ``CPack.cmake`` module
+ generates (when :variable:`CPACK_GENERATOR` is not set) a set of CMake
+ options (see CMake :command:`option` command) which may then be used to
+ select the CPack generator(s) to be used when building the ``package``
+ target or when running :manual:`cpack <cpack(1)>` without the ``-G`` option.
+
+#]=======================================================================]
+
+# Define this var in order to avoid (or warn) concerning multiple inclusion
+if(CPack_CMake_INCLUDED)
+ message(WARNING "CPack.cmake has already been included!!")
+else()
+ set(CPack_CMake_INCLUDED 1)
+endif()
+
+# Pick a configuration file
+set(cpack_input_file "${CMAKE_ROOT}/Templates/CPackConfig.cmake.in")
+if(EXISTS "${CMAKE_SOURCE_DIR}/CPackConfig.cmake.in")
+ set(cpack_input_file "${CMAKE_SOURCE_DIR}/CPackConfig.cmake.in")
+endif()
+set(cpack_source_input_file "${CMAKE_ROOT}/Templates/CPackConfig.cmake.in")
+if(EXISTS "${CMAKE_SOURCE_DIR}/CPackSourceConfig.cmake.in")
+ set(cpack_source_input_file "${CMAKE_SOURCE_DIR}/CPackSourceConfig.cmake.in")
+endif()
+
+# Backward compatibility
+# Include CPackComponent macros if it has not already been included before.
+include(CPackComponent)
+
+# Macro for setting values if a user did not overwrite them
+# Mangles CMake-special characters. Only kept for backwards compatibility.
+macro(cpack_set_if_not_set name value)
+ message(DEPRECATION "cpack_set_if_not_set is obsolete; do not use.")
+ _cpack_set_default("${name}" "${value}")
+endmacro()
+
+# cpack_encode_variables - Function to encode variables for the configuration file
+# find any variable that starts with CPACK and create a variable
+# _CPACK_OTHER_VARIABLES_ that contains SET commands for
+# each cpack variable. _CPACK_OTHER_VARIABLES_ is then
+# used as an @ replacment in configure_file for the CPackConfig.
+function(cpack_encode_variables)
+ set(commands "")
+ get_cmake_property(res VARIABLES)
+ foreach(var ${res})
+ if(var MATCHES "^CPACK")
+ if(CPACK_VERBATIM_VARIABLES)
+ _cpack_escape_for_cmake(value "${${var}}")
+ else()
+ set(value "${${var}}")
+ endif()
+
+ string(APPEND commands "\nset(${var} \"${value}\")")
+ endif()
+ endforeach()
+
+ set(_CPACK_OTHER_VARIABLES_ "${commands}" PARENT_SCOPE)
+endfunction()
+
+# Internal use functions
+function(_cpack_set_default name value)
+ if(NOT DEFINED "${name}")
+ set("${name}" "${value}" PARENT_SCOPE)
+ endif()
+endfunction()
+
+function(_cpack_escape_for_cmake var value)
+ string(REGEX REPLACE "([\\\$\"])" "\\\\\\1" escaped "${value}")
+ set("${var}" "${escaped}" PARENT_SCOPE)
+endfunction()
+
+# Set the package name
+_cpack_set_default(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
+
+# Set the package version
+if(CMAKE_PROJECT_VERSION_MAJOR GREATER_EQUAL 0)
+ _cpack_set_default(CPACK_PACKAGE_VERSION_MAJOR "${CMAKE_PROJECT_VERSION_MAJOR}")
+ if(CMAKE_PROJECT_VERSION_MINOR GREATER_EQUAL 0)
+ _cpack_set_default(CPACK_PACKAGE_VERSION_MINOR "${CMAKE_PROJECT_VERSION_MINOR}")
+ if(CMAKE_PROJECT_VERSION_PATCH GREATER_EQUAL 0)
+ _cpack_set_default(CPACK_PACKAGE_VERSION_PATCH "${CMAKE_PROJECT_VERSION_PATCH}")
+ endif()
+ endif()
+else()
+ _cpack_set_default(CPACK_PACKAGE_VERSION_MAJOR "0")
+ _cpack_set_default(CPACK_PACKAGE_VERSION_MINOR "1")
+ _cpack_set_default(CPACK_PACKAGE_VERSION_PATCH "1")
+endif()
+if(NOT DEFINED CPACK_PACKAGE_VERSION)
+ set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}")
+ if(CPACK_PACKAGE_VERSION_MINOR GREATER_EQUAL 0)
+ string(APPEND CPACK_PACKAGE_VERSION ".${CPACK_PACKAGE_VERSION_MINOR}")
+ if(CPACK_PACKAGE_VERSION_PATCH GREATER_EQUAL 0)
+ string(APPEND CPACK_PACKAGE_VERSION ".${CPACK_PACKAGE_VERSION_PATCH}")
+ endif()
+ endif()
+endif()
+
+_cpack_set_default(CPACK_PACKAGE_VENDOR "Humanity")
+set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "${CMAKE_PROJECT_NAME} built using CMake")
+if(CMAKE_PROJECT_DESCRIPTION)
+ _cpack_set_default(CPACK_PACKAGE_DESCRIPTION_SUMMARY
+ "${CMAKE_PROJECT_DESCRIPTION}")
+else()
+ _cpack_set_default(CPACK_PACKAGE_DESCRIPTION_SUMMARY
+ "${CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY}")
+endif()
+if(CMAKE_PROJECT_HOMEPAGE_URL)
+ _cpack_set_default(CPACK_PACKAGE_HOMEPAGE_URL
+ "${CMAKE_PROJECT_HOMEPAGE_URL}")
+endif()
+
+set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE
+ "${CMAKE_ROOT}/Templates/CPack.GenericDescription.txt")
+_cpack_set_default(CPACK_PACKAGE_DESCRIPTION_FILE
+ "${CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE}")
+_cpack_set_default(CPACK_RESOURCE_FILE_LICENSE
+ "${CMAKE_ROOT}/Templates/CPack.GenericLicense.txt")
+_cpack_set_default(CPACK_RESOURCE_FILE_README
+ "${CMAKE_ROOT}/Templates/CPack.GenericDescription.txt")
+_cpack_set_default(CPACK_RESOURCE_FILE_WELCOME
+ "${CMAKE_ROOT}/Templates/CPack.GenericWelcome.txt")
+
+_cpack_set_default(CPACK_MODULE_PATH "${CMAKE_MODULE_PATH}")
+
+# Set default directory creation permissions mode
+if(CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS)
+ _cpack_set_default(CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
+ "${CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS}")
+endif()
+
+if(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL)
+ set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
+endif()
+
+if(CPACK_NSIS_MODIFY_PATH)
+ set(CPACK_NSIS_MODIFY_PATH ON)
+endif()
+
+set(__cpack_system_name ${CMAKE_SYSTEM_NAME})
+if(__cpack_system_name MATCHES "Windows")
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(__cpack_system_name win64)
+ else()
+ set(__cpack_system_name win32)
+ endif()
+endif()
+_cpack_set_default(CPACK_SYSTEM_NAME "${__cpack_system_name}")
+
+# Root dir: default value should be the string literal "$PROGRAMFILES"
+# for backwards compatibility. Projects may set this value to anything.
+# When creating 64 bit binaries we set the default value to "$PROGRAMFILES64"
+if("x${__cpack_system_name}" STREQUAL "xwin64")
+ set(__cpack_root_default "$PROGRAMFILES64")
+else()
+ set(__cpack_root_default "$PROGRAMFILES")
+endif()
+_cpack_set_default(CPACK_NSIS_INSTALL_ROOT "${__cpack_root_default}")
+
+# <project>-<major>.<minor>.<patch>-<release>-<platform>.<pkgtype>
+_cpack_set_default(CPACK_PACKAGE_FILE_NAME
+ "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}")
+_cpack_set_default(CPACK_PACKAGE_INSTALL_DIRECTORY
+ "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}")
+_cpack_set_default(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
+ "${CPACK_PACKAGE_INSTALL_DIRECTORY}")
+_cpack_set_default(CPACK_PACKAGE_DEFAULT_LOCATION "/")
+_cpack_set_default(CPACK_PACKAGE_RELOCATABLE "true")
+
+# always force to exactly "true" or "false" for CPack.Info.plist.in:
+if(CPACK_PACKAGE_RELOCATABLE)
+ set(CPACK_PACKAGE_RELOCATABLE "true")
+else()
+ set(CPACK_PACKAGE_RELOCATABLE "false")
+endif()
+
+macro(cpack_check_file_exists file description)
+ if(NOT EXISTS "${file}")
+ message(SEND_ERROR "CPack ${description} file: \"${file}\" could not be found.")
+ endif()
+endmacro()
+
+cpack_check_file_exists("${CPACK_PACKAGE_DESCRIPTION_FILE}" "package description")
+cpack_check_file_exists("${CPACK_RESOURCE_FILE_LICENSE}" "license resource")
+cpack_check_file_exists("${CPACK_RESOURCE_FILE_README}" "readme resource")
+cpack_check_file_exists("${CPACK_RESOURCE_FILE_WELCOME}" "welcome resource")
+
+macro(cpack_optional_append _list _cond _item)
+ if(${_cond})
+ set(${_list} ${${_list}} ${_item})
+ endif()
+endmacro()
+
+# Provide options to choose generators we might check here if the required
+# tools for the generators exist and set the defaults according to the
+# results.
+if(NOT CPACK_GENERATOR)
+ if(UNIX)
+ if(CYGWIN)
+ option(CPACK_BINARY_CYGWIN "Enable to build Cygwin binary packages" ON)
+ else()
+ if(APPLE)
+ option(CPACK_BINARY_BUNDLE "Enable to build OSX bundles" OFF)
+ option(CPACK_BINARY_DRAGNDROP "Enable to build OSX Drag And Drop package" OFF)
+ option(CPACK_BINARY_OSXX11 "Enable to build OSX X11 packages (deprecated)" OFF)
+ option(CPACK_BINARY_PACKAGEMAKER "Enable to build PackageMaker packages (deprecated)" OFF)
+ option(CPACK_BINARY_PRODUCTBUILD "Enable to build productbuild packages" OFF)
+ mark_as_advanced(
+ CPACK_BINARY_BUNDLE
+ CPACK_BINARY_DRAGNDROP
+ CPACK_BINARY_OSXX11
+ CPACK_BINARY_PACKAGEMAKER
+ CPACK_BINARY_PRODUCTBUILD
+ )
+ else()
+ option(CPACK_BINARY_TZ "Enable to build TZ packages" ON)
+ mark_as_advanced(CPACK_BINARY_TZ)
+ endif()
+ option(CPACK_BINARY_DEB "Enable to build Debian packages" OFF)
+ option(CPACK_BINARY_FREEBSD "Enable to build FreeBSD packages" OFF)
+ option(CPACK_BINARY_NSIS "Enable to build NSIS packages" OFF)
+ option(CPACK_BINARY_RPM "Enable to build RPM packages" OFF)
+ option(CPACK_BINARY_STGZ "Enable to build STGZ packages" ON)
+ option(CPACK_BINARY_TBZ2 "Enable to build TBZ2 packages" OFF)
+ option(CPACK_BINARY_TGZ "Enable to build TGZ packages" ON)
+ option(CPACK_BINARY_TXZ "Enable to build TXZ packages" OFF)
+ mark_as_advanced(
+ CPACK_BINARY_DEB
+ CPACK_BINARY_FREEBSD
+ CPACK_BINARY_NSIS
+ CPACK_BINARY_RPM
+ CPACK_BINARY_STGZ
+ CPACK_BINARY_TBZ2
+ CPACK_BINARY_TGZ
+ CPACK_BINARY_TXZ
+ )
+ endif()
+ else()
+ option(CPACK_BINARY_7Z "Enable to build 7-Zip packages" OFF)
+ option(CPACK_BINARY_NSIS "Enable to build NSIS packages" ON)
+ option(CPACK_BINARY_NUGET "Enable to build NuGet packages" OFF)
+ option(CPACK_BINARY_WIX "Enable to build WiX packages" OFF)
+ option(CPACK_BINARY_ZIP "Enable to build ZIP packages" OFF)
+ mark_as_advanced(
+ CPACK_BINARY_7Z
+ CPACK_BINARY_NSIS
+ CPACK_BINARY_NUGET
+ CPACK_BINARY_WIX
+ CPACK_BINARY_ZIP
+ )
+ endif()
+ option(CPACK_BINARY_IFW "Enable to build IFW packages" OFF)
+ mark_as_advanced(CPACK_BINARY_IFW)
+
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_7Z 7Z)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_BUNDLE Bundle)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_CYGWIN CygwinBinary)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_DEB DEB)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_DRAGNDROP DragNDrop)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_FREEBSD FREEBSD)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_IFW IFW)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_NSIS NSIS)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_NUGET NuGet)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_OSXX11 OSXX11)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_PACKAGEMAKER PackageMaker)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_PRODUCTBUILD productbuild)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_RPM RPM)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_STGZ STGZ)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_TBZ2 TBZ2)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_TGZ TGZ)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_TXZ TXZ)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_TZ TZ)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_WIX WIX)
+ cpack_optional_append(CPACK_GENERATOR CPACK_BINARY_ZIP ZIP)
+
+endif()
+
+# Provide options to choose source generators
+if(NOT CPACK_SOURCE_GENERATOR)
+ if(UNIX)
+ if(CYGWIN)
+ option(CPACK_SOURCE_CYGWIN "Enable to build Cygwin source packages" ON)
+ mark_as_advanced(CPACK_SOURCE_CYGWIN)
+ else()
+ option(CPACK_SOURCE_RPM "Enable to build RPM source packages" OFF)
+ option(CPACK_SOURCE_TBZ2 "Enable to build TBZ2 source packages" ON)
+ option(CPACK_SOURCE_TGZ "Enable to build TGZ source packages" ON)
+ option(CPACK_SOURCE_TXZ "Enable to build TXZ source packages" ON)
+ option(CPACK_SOURCE_TZ "Enable to build TZ source packages" ON)
+ option(CPACK_SOURCE_ZIP "Enable to build ZIP source packages" OFF)
+ mark_as_advanced(
+ CPACK_SOURCE_RPM
+ CPACK_SOURCE_TBZ2
+ CPACK_SOURCE_TGZ
+ CPACK_SOURCE_TXZ
+ CPACK_SOURCE_TZ
+ CPACK_SOURCE_ZIP
+ )
+ endif()
+ else()
+ option(CPACK_SOURCE_7Z "Enable to build 7-Zip source packages" ON)
+ option(CPACK_SOURCE_ZIP "Enable to build ZIP source packages" ON)
+ mark_as_advanced(
+ CPACK_SOURCE_7Z
+ CPACK_SOURCE_ZIP
+ )
+ endif()
+
+ cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_7Z 7Z)
+ cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_CYGWIN CygwinSource)
+ cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_RPM RPM)
+ cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TBZ2 TBZ2)
+ cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TGZ TGZ)
+ cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TXZ TXZ)
+ cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_TZ TZ)
+ cpack_optional_append(CPACK_SOURCE_GENERATOR CPACK_SOURCE_ZIP ZIP)
+endif()
+
+# Set some other variables
+_cpack_set_default(CPACK_INSTALL_CMAKE_PROJECTS
+ "${CMAKE_BINARY_DIR};${CMAKE_PROJECT_NAME};ALL;/")
+_cpack_set_default(CPACK_CMAKE_GENERATOR "${CMAKE_GENERATOR}")
+_cpack_set_default(CPACK_TOPLEVEL_TAG "${CPACK_SYSTEM_NAME}")
+# if the user has set CPACK_NSIS_DISPLAY_NAME remember it
+if(DEFINED CPACK_NSIS_DISPLAY_NAME)
+ set(CPACK_NSIS_DISPLAY_NAME_SET TRUE)
+endif()
+# if the user has set CPACK_NSIS_DISPLAY
+# explicitly, then use that as the default
+# value of CPACK_NSIS_PACKAGE_NAME instead
+# of CPACK_PACKAGE_INSTALL_DIRECTORY
+_cpack_set_default(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}")
+# Specify the name of the Uninstall file in NSIS
+_cpack_set_default(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
+
+if(CPACK_NSIS_DISPLAY_NAME_SET)
+ _cpack_set_default(CPACK_NSIS_PACKAGE_NAME "${CPACK_NSIS_DISPLAY_NAME}")
+else()
+ _cpack_set_default(CPACK_NSIS_PACKAGE_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}")
+endif()
+
+_cpack_set_default(CPACK_OUTPUT_CONFIG_FILE
+ "${CMAKE_BINARY_DIR}/CPackConfig.cmake")
+
+_cpack_set_default(CPACK_SOURCE_OUTPUT_CONFIG_FILE
+ "${CMAKE_BINARY_DIR}/CPackSourceConfig.cmake")
+
+_cpack_set_default(CPACK_SET_DESTDIR OFF)
+_cpack_set_default(CPACK_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+_cpack_set_default(CPACK_NSIS_INSTALLER_ICON_CODE "")
+_cpack_set_default(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
+
+# WiX specific variables
+_cpack_set_default(CPACK_WIX_SIZEOF_VOID_P "${CMAKE_SIZEOF_VOID_P}")
+
+# set sysroot so SDK tools can be used
+if(CMAKE_OSX_SYSROOT)
+ _cpack_set_default(CPACK_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_PATH}")
+endif()
+
+_cpack_set_default(CPACK_BUILD_SOURCE_DIRS "${CMAKE_SOURCE_DIR};${CMAKE_BINARY_DIR}")
+
+if(DEFINED CPACK_COMPONENTS_ALL)
+ if(CPACK_MONOLITHIC_INSTALL)
+ message("CPack warning: both CPACK_COMPONENTS_ALL and CPACK_MONOLITHIC_INSTALL have been set.\nDefaulting to a monolithic installation.")
+ set(CPACK_COMPONENTS_ALL)
+ else()
+ # The user has provided the set of components to be installed as
+ # part of a component-based installation; trust her.
+ set(CPACK_COMPONENTS_ALL_SET_BY_USER TRUE)
+ endif()
+else()
+ # If the user has not specifically requested a monolithic installer
+ # but has specified components in various "install" commands, tell
+ # CPack about those components.
+ if(NOT CPACK_MONOLITHIC_INSTALL)
+ get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS)
+ list(LENGTH CPACK_COMPONENTS_ALL CPACK_COMPONENTS_LEN)
+ if(CPACK_COMPONENTS_LEN EQUAL 1)
+ # Only one component: this is not a component-based installation
+ # (at least, it isn't a component-based installation, but may
+ # become one later if the user uses the cpack_add_* commands).
+ set(CPACK_COMPONENTS_ALL)
+ endif()
+ set(CPACK_COMPONENTS_LEN)
+ endif()
+endif()
+
+# CMake always generates a component named "Unspecified", which is
+# used to install everything that doesn't have an explicitly-provided
+# component. Since these files should always be installed, we'll make
+# them hidden and required.
+set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN TRUE)
+set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED TRUE)
+
+cpack_encode_variables()
+configure_file("${cpack_input_file}" "${CPACK_OUTPUT_CONFIG_FILE}" @ONLY)
+
+# Generate source file
+_cpack_set_default(CPACK_SOURCE_INSTALLED_DIRECTORIES
+ "${CMAKE_SOURCE_DIR};/")
+_cpack_set_default(CPACK_SOURCE_TOPLEVEL_TAG "${CPACK_SYSTEM_NAME}-Source")
+_cpack_set_default(CPACK_SOURCE_PACKAGE_FILE_NAME
+ "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Source")
+
+set(__cpack_source_ignore_files_default
+ "/CVS/;/\\.svn/;/\\.bzr/;/\\.hg/;/\\.git/;\\.swp$;\\.#;/#")
+if(NOT CPACK_VERBATIM_VARIABLES)
+ _cpack_escape_for_cmake(__cpack_source_ignore_files_default
+ "${__cpack_source_ignore_files_default}")
+endif()
+_cpack_set_default(CPACK_SOURCE_IGNORE_FILES "${__cpack_source_ignore_files_default}")
+
+set(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_SOURCE_INSTALL_CMAKE_PROJECTS}")
+set(CPACK_INSTALLED_DIRECTORIES "${CPACK_SOURCE_INSTALLED_DIRECTORIES}")
+set(CPACK_GENERATOR "${CPACK_SOURCE_GENERATOR}")
+set(CPACK_TOPLEVEL_TAG "${CPACK_SOURCE_TOPLEVEL_TAG}")
+set(CPACK_PACKAGE_FILE_NAME "${CPACK_SOURCE_PACKAGE_FILE_NAME}")
+set(CPACK_IGNORE_FILES "${CPACK_SOURCE_IGNORE_FILES}")
+set(CPACK_STRIP_FILES "${CPACK_SOURCE_STRIP_FILES}")
+
+set(CPACK_RPM_PACKAGE_SOURCES "ON")
+
+cpack_encode_variables()
+configure_file("${cpack_source_input_file}"
+ "${CPACK_SOURCE_OUTPUT_CONFIG_FILE}" @ONLY)
diff --git a/share/cmake-3.16/Modules/CPackComponent.cmake b/share/cmake-3.17/Modules/CPackComponent.cmake
index 211d767..211d767 100644
--- a/share/cmake-3.16/Modules/CPackComponent.cmake
+++ b/share/cmake-3.17/Modules/CPackComponent.cmake
diff --git a/share/cmake-3.17/Modules/CPackIFW.cmake b/share/cmake-3.17/Modules/CPackIFW.cmake
new file mode 100644
index 0000000..f58f9ef
--- /dev/null
+++ b/share/cmake-3.17/Modules/CPackIFW.cmake
@@ -0,0 +1,737 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CPackIFW
+--------
+
+This module looks for the location of the command-line utilities supplied with the
+`Qt Installer Framework <http://doc.qt.io/qtinstallerframework/index.html>`_
+(QtIFW).
+
+The module also defines several commands to control the behavior of the
+:cpack_gen:`CPack IFW Generator`.
+
+Commands
+^^^^^^^^
+
+The module defines the following commands:
+
+.. command:: cpack_ifw_configure_component
+
+ Sets the arguments specific to the CPack IFW generator.
+
+ ::
+
+ cpack_ifw_configure_component(<compname> [COMMON] [ESSENTIAL] [VIRTUAL]
+ [FORCED_INSTALLATION] [REQUIRES_ADMIN_RIGHTS]
+ [NAME <name>]
+ [DISPLAY_NAME <display_name>] # Note: Internationalization supported
+ [DESCRIPTION <description>] # Note: Internationalization supported
+ [UPDATE_TEXT <update_text>]
+ [VERSION <version>]
+ [RELEASE_DATE <release_date>]
+ [SCRIPT <script>]
+ [PRIORITY|SORTING_PRIORITY <sorting_priority>] # Note: PRIORITY is deprecated
+ [DEPENDS|DEPENDENCIES <com_id> ...]
+ [AUTO_DEPEND_ON <comp_id> ...]
+ [LICENSES <display_name> <file_path> ...]
+ [DEFAULT <value>]
+ [USER_INTERFACES <file_path> <file_path> ...]
+ [TRANSLATIONS <file_path> <file_path> ...]
+ [REPLACES <comp_id> ...]
+ [CHECKABLE <value>])
+
+ This command should be called after :command:`cpack_add_component` command.
+
+ ``COMMON``
+ if set, then the component will be packaged and installed as part
+ of a group to which it belongs.
+
+ ``ESSENTIAL``
+ if set, then the package manager stays disabled until that
+ component is updated.
+
+ ``VIRTUAL``
+ if set, then the component will be hidden from the installer.
+ It is a equivalent of the ``HIDDEN`` option from the
+ :command:`cpack_add_component` command.
+
+ ``FORCED_INSTALLATION``
+ if set, then the component must always be installed.
+ It is a equivalent of the ``REQUARED`` option from the
+ :command:`cpack_add_component` command.
+
+ ``REQUIRES_ADMIN_RIGHTS``
+ set it if the component needs to be installed with elevated permissions.
+
+ ``NAME``
+ is used to create domain-like identification for this component.
+ By default used origin component name.
+
+ ``DISPLAY_NAME``
+ set to rewrite original name configured by
+ :command:`cpack_add_component` command.
+
+ ``DESCRIPTION``
+ set to rewrite original description configured by
+ :command:`cpack_add_component` command.
+
+ ``UPDATE_TEXT``
+ will be added to the component description if this is an update to
+ the component.
+
+ ``VERSION``
+ is version of component.
+ By default used :variable:`CPACK_PACKAGE_VERSION`.
+
+ ``RELEASE_DATE``
+ keep empty to auto generate.
+
+ ``SCRIPT``
+ is a relative or absolute path to operations script
+ for this component.
+
+ ``PRIORITY`` | ``SORTING_PRIORITY``
+ is priority of the component in the tree.
+ The ``PRIORITY`` option is deprecated and will be removed in a future
+ version of CMake. Please use ``SORTING_PRIORITY`` option instead.
+
+ ``DEPENDS`` | ``DEPENDENCIES``
+ list of dependency component or component group identifiers in
+ QtIFW style.
+
+ ``AUTO_DEPEND_ON``
+ list of identifiers of component or component group in QtIFW style
+ that this component has an automatic dependency on.
+
+ ``LICENSES``
+ pair of <display_name> and <file_path> of license text for this
+ component. You can specify more then one license.
+
+ ``DEFAULT``
+ Possible values are: TRUE, FALSE, and SCRIPT.
+ Set to FALSE to disable the component in the installer or to SCRIPT
+ to resolved during runtime (don't forget add the file of the script
+ as a value of the ``SCRIPT`` option).
+
+ ``USER_INTERFACES``
+ is a list of <file_path> ('.ui' files) representing pages to load.
+
+ ``TRANSLATIONS``
+ is a list of <file_path> ('.qm' files) representing translations to load.
+
+ ``REPLACES``
+ list of identifiers of component or component group to replace.
+
+ ``CHECKABLE``
+ Possible values are: TRUE, FALSE.
+ Set to FALSE if you want to hide the checkbox for an item.
+ This is useful when only a few subcomponents should be selected
+ instead of all.
+
+
+.. command:: cpack_ifw_configure_component_group
+
+ Sets the arguments specific to the CPack IFW generator.
+
+ ::
+
+ cpack_ifw_configure_component_group(<groupname> [VIRTUAL]
+ [FORCED_INSTALLATION] [REQUIRES_ADMIN_RIGHTS]
+ [NAME <name>]
+ [DISPLAY_NAME <display_name>] # Note: Internationalization supported
+ [DESCRIPTION <description>] # Note: Internationalization supported
+ [UPDATE_TEXT <update_text>]
+ [VERSION <version>]
+ [RELEASE_DATE <release_date>]
+ [SCRIPT <script>]
+ [PRIORITY|SORTING_PRIORITY <sorting_priority>] # Note: PRIORITY is deprecated
+ [DEPENDS|DEPENDENCIES <com_id> ...]
+ [AUTO_DEPEND_ON <comp_id> ...]
+ [LICENSES <display_name> <file_path> ...]
+ [DEFAULT <value>]
+ [USER_INTERFACES <file_path> <file_path> ...]
+ [TRANSLATIONS <file_path> <file_path> ...]
+ [REPLACES <comp_id> ...]
+ [CHECKABLE <value>])
+
+ This command should be called after :command:`cpack_add_component_group`
+ command.
+
+ ``VIRTUAL``
+ if set, then the group will be hidden from the installer.
+ Note that setting this on a root component does not work.
+
+ ``FORCED_INSTALLATION``
+ if set, then the group must always be installed.
+
+ ``REQUIRES_ADMIN_RIGHTS``
+ set it if the component group needs to be installed with elevated
+ permissions.
+
+ ``NAME``
+ is used to create domain-like identification for this component group.
+ By default used origin component group name.
+
+ ``DISPLAY_NAME``
+ set to rewrite original name configured by
+ :command:`cpack_add_component_group` command.
+
+ ``DESCRIPTION``
+ set to rewrite original description configured by
+ :command:`cpack_add_component_group` command.
+
+ ``UPDATE_TEXT``
+ will be added to the component group description if this is an update to
+ the component group.
+
+ ``VERSION``
+ is version of component group.
+ By default used :variable:`CPACK_PACKAGE_VERSION`.
+
+ ``RELEASE_DATE``
+ keep empty to auto generate.
+
+ ``SCRIPT``
+ is a relative or absolute path to operations script
+ for this component group.
+
+ ``PRIORITY`` | ``SORTING_PRIORITY``
+ is priority of the component group in the tree.
+ The ``PRIORITY`` option is deprecated and will be removed in a future
+ version of CMake. Please use ``SORTING_PRIORITY`` option instead.
+
+ ``DEPENDS`` | ``DEPENDENCIES``
+ list of dependency component or component group identifiers in
+ QtIFW style.
+
+ ``AUTO_DEPEND_ON``
+ list of identifiers of component or component group in QtIFW style
+ that this component group has an automatic dependency on.
+
+ ``LICENSES``
+ pair of <display_name> and <file_path> of license text for this
+ component group. You can specify more then one license.
+
+ ``DEFAULT``
+ Possible values are: TRUE, FALSE, and SCRIPT.
+ Set to TRUE to preselect the group in the installer
+ (this takes effect only on groups that have no visible child components)
+ or to SCRIPT to resolved during runtime (don't forget add the file of
+ the script as a value of the ``SCRIPT`` option).
+
+ ``USER_INTERFACES``
+ is a list of <file_path> ('.ui' files) representing pages to load.
+
+ ``TRANSLATIONS``
+ is a list of <file_path> ('.qm' files) representing translations to load.
+
+ ``REPLACES``
+ list of identifiers of component or component group to replace.
+
+ ``CHECKABLE``
+ Possible values are: TRUE, FALSE.
+ Set to FALSE if you want to hide the checkbox for an item.
+ This is useful when only a few subcomponents should be selected
+ instead of all.
+
+
+.. command:: cpack_ifw_add_repository
+
+ Add QtIFW specific remote repository to binary installer.
+
+ ::
+
+ cpack_ifw_add_repository(<reponame> [DISABLED]
+ URL <url>
+ [USERNAME <username>]
+ [PASSWORD <password>]
+ [DISPLAY_NAME <display_name>])
+
+ This command will also add the <reponame> repository
+ to a variable :variable:`CPACK_IFW_REPOSITORIES_ALL`.
+
+ ``DISABLED``
+ if set, then the repository will be disabled by default.
+
+ ``URL``
+ is points to a list of available components.
+
+ ``USERNAME``
+ is used as user on a protected repository.
+
+ ``PASSWORD``
+ is password to use on a protected repository.
+
+ ``DISPLAY_NAME``
+ is string to display instead of the URL.
+
+
+.. command:: cpack_ifw_update_repository
+
+ Update QtIFW specific repository from remote repository.
+
+ ::
+
+ cpack_ifw_update_repository(<reponame>
+ [[ADD|REMOVE] URL <url>]|
+ [REPLACE OLD_URL <old_url> NEW_URL <new_url>]]
+ [USERNAME <username>]
+ [PASSWORD <password>]
+ [DISPLAY_NAME <display_name>])
+
+ This command will also add the <reponame> repository
+ to a variable :variable:`CPACK_IFW_REPOSITORIES_ALL`.
+
+ ``URL``
+ is points to a list of available components.
+
+ ``OLD_URL``
+ is points to a list that will replaced.
+
+ ``NEW_URL``
+ is points to a list that will replace to.
+
+ ``USERNAME``
+ is used as user on a protected repository.
+
+ ``PASSWORD``
+ is password to use on a protected repository.
+
+ ``DISPLAY_NAME``
+ is string to display instead of the URL.
+
+
+.. command:: cpack_ifw_add_package_resources
+
+ Add additional resources in the installer binary.
+
+ ::
+
+ cpack_ifw_add_package_resources(<file_path> <file_path> ...)
+
+ This command will also add the specified files
+ to a variable :variable:`CPACK_IFW_PACKAGE_RESOURCES`.
+
+#]=======================================================================]
+
+# TODO:
+# All of the internal implementation CMake modules for other CPack generators
+# have been moved into the Internal/CPack directory. This one has not, because
+# it contains user-facing macros which would be lost if it were moved. At some
+# point, this module should be split into user-facing macros (which would live
+# in this module) and internal implementation details (which would live in
+# Internal/CPack/CPackIFW.cmake).
+
+#=============================================================================
+# Search Qt Installer Framework tools
+#=============================================================================
+
+# Default path
+
+foreach(_CPACK_IFW_PATH_VAR "CPACK_IFW_ROOT" "QTIFWDIR" "QTDIR")
+ if(DEFINED ${_CPACK_IFW_PATH_VAR}
+ AND NOT "${${_CPACK_IFW_PATH_VAR}}" STREQUAL "")
+ list(APPEND _CPACK_IFW_PATHS "${${_CPACK_IFW_PATH_VAR}}")
+ endif()
+ if(NOT "$ENV{${_CPACK_IFW_PATH_VAR}}" STREQUAL "")
+ list(APPEND _CPACK_IFW_PATHS "$ENV{${_CPACK_IFW_PATH_VAR}}")
+ endif()
+endforeach()
+if(WIN32)
+ list(APPEND _CPACK_IFW_PATHS
+ "$ENV{HOMEDRIVE}/Qt"
+ "C:/Qt")
+else()
+ list(APPEND _CPACK_IFW_PATHS
+ "$ENV{HOME}/Qt"
+ "/opt/Qt")
+endif()
+list(REMOVE_DUPLICATES _CPACK_IFW_PATHS)
+
+set(_CPACK_IFW_PREFIXES
+ # QtSDK
+ "Tools/QtInstallerFramework/"
+ # Second branch
+ "QtIFW"
+ # First branch
+ "QtIFW-")
+
+set(_CPACK_IFW_VERSIONS
+ "3.1"
+ "3.1.0"
+ "3.0"
+ "3.0.0"
+ "2.3"
+ "2.3.0"
+ "2.2"
+ "2.2.0"
+ "2.1"
+ "2.1.0"
+ "2.0"
+ "2.0.5"
+ "2.0.3"
+ "2.0.2"
+ "2.0.1"
+ "2.0.0"
+ "1.6"
+ "1.6.0"
+ "1.5"
+ "1.5.0"
+ "1.4"
+ "1.4.0"
+ "1.3"
+ "1.3.0")
+
+set(_CPACK_IFW_SUFFIXES "bin")
+foreach(_CPACK_IFW_PREFIX ${_CPACK_IFW_PREFIXES})
+ foreach(_CPACK_IFW_VERSION ${_CPACK_IFW_VERSIONS})
+ list(APPEND
+ _CPACK_IFW_SUFFIXES "${_CPACK_IFW_PREFIX}${_CPACK_IFW_VERSION}/bin")
+ endforeach()
+endforeach()
+
+# Look for 'binarycreator'
+
+find_program(CPACK_IFW_BINARYCREATOR_EXECUTABLE
+ NAMES binarycreator
+ PATHS ${_CPACK_IFW_PATHS}
+ PATH_SUFFIXES ${_CPACK_IFW_SUFFIXES}
+ DOC "QtIFW binarycreator command line client")
+
+mark_as_advanced(CPACK_IFW_BINARYCREATOR_EXECUTABLE)
+
+# Look for 'repogen'
+
+find_program(CPACK_IFW_REPOGEN_EXECUTABLE
+ NAMES repogen
+ PATHS ${_CPACK_IFW_PATHS}
+ PATH_SUFFIXES ${_CPACK_IFW_SUFFIXES}
+ DOC "QtIFW repogen command line client"
+ )
+mark_as_advanced(CPACK_IFW_REPOGEN_EXECUTABLE)
+
+# Look for 'installerbase'
+
+find_program(CPACK_IFW_INSTALLERBASE_EXECUTABLE
+ NAMES installerbase
+ PATHS ${_CPACK_IFW_PATHS}
+ PATH_SUFFIXES ${_CPACK_IFW_SUFFIXES}
+ DOC "QtIFW installer executable base"
+ )
+mark_as_advanced(CPACK_IFW_INSTALLERBASE_EXECUTABLE)
+
+# Look for 'devtool' (appeared in the second branch)
+
+find_program(CPACK_IFW_DEVTOOL_EXECUTABLE
+ NAMES devtool
+ PATHS ${_CPACK_IFW_PATHS}
+ PATH_SUFFIXES ${_CPACK_IFW_SUFFIXES}
+ DOC "QtIFW devtool command line client"
+ )
+mark_as_advanced(CPACK_IFW_DEVTOOL_EXECUTABLE)
+
+#
+## Next code is included only once
+#
+
+if(NOT CPackIFW_CMake_INCLUDED)
+set(CPackIFW_CMake_INCLUDED 1)
+
+#=============================================================================
+# Framework version
+#=============================================================================
+
+set(CPACK_IFW_FRAMEWORK_VERSION_FORCED ""
+ CACHE STRING "The forced version of used QtIFW tools")
+mark_as_advanced(CPACK_IFW_FRAMEWORK_VERSION_FORCED)
+set(CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT 1
+ CACHE STRING "The timeout to return QtIFW framework version string from \"installerbase\" executable")
+mark_as_advanced(CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT)
+if(CPACK_IFW_INSTALLERBASE_EXECUTABLE AND NOT CPACK_IFW_FRAMEWORK_VERSION_FORCED)
+ set(CPACK_IFW_FRAMEWORK_VERSION)
+ # Invoke version from "installerbase" executable
+ foreach(_ifw_version_argument --framework-version --version)
+ if(NOT CPACK_IFW_FRAMEWORK_VERSION)
+ execute_process(COMMAND
+ "${CPACK_IFW_INSTALLERBASE_EXECUTABLE}" ${_ifw_version_argument}
+ TIMEOUT ${CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT}
+ RESULT_VARIABLE CPACK_IFW_FRAMEWORK_VERSION_RESULT
+ OUTPUT_VARIABLE CPACK_IFW_FRAMEWORK_VERSION_OUTPUT
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ENCODING UTF8)
+ if(NOT CPACK_IFW_FRAMEWORK_VERSION_RESULT AND CPACK_IFW_FRAMEWORK_VERSION_OUTPUT)
+ string(REGEX MATCH "[0-9]+(\\.[0-9]+)*"
+ CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_FRAMEWORK_VERSION_OUTPUT}")
+ if(CPACK_IFW_FRAMEWORK_VERSION)
+ if("${_ifw_version_argument}" STREQUAL "--framework-version")
+ set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "INSTALLERBASE_FRAMEWORK_VERSION")
+ elseif("${_ifw_version_argument}" STREQUAL "--version")
+ set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "INSTALLERBASE_FRAMEWORK_VERSION")
+ endif()
+ endif()
+ endif()
+ endif()
+ endforeach()
+ # Finally try to get version from executable path
+ if(NOT CPACK_IFW_FRAMEWORK_VERSION)
+ string(REGEX MATCH "[0-9]+(\\.[0-9]+)*"
+ CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_INSTALLERBASE_EXECUTABLE}")
+ if(CPACK_IFW_FRAMEWORK_VERSION)
+ set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "INSTALLERBASE_PATH")
+ endif()
+ endif()
+elseif(CPACK_IFW_FRAMEWORK_VERSION_FORCED)
+ set(CPACK_IFW_FRAMEWORK_VERSION ${CPACK_IFW_FRAMEWORK_VERSION_FORCED})
+ set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "FORCED")
+endif()
+if(CPACK_IFW_VERBOSE)
+ if(CPACK_IFW_FRAMEWORK_VERSION AND CPACK_IFW_FRAMEWORK_VERSION_FORCED)
+ message(STATUS "Found QtIFW ${CPACK_IFW_FRAMEWORK_VERSION} (forced) version")
+ elseif(CPACK_IFW_FRAMEWORK_VERSION)
+ message(STATUS "Found QtIFW ${CPACK_IFW_FRAMEWORK_VERSION} version")
+ endif()
+endif()
+if(CPACK_IFW_INSTALLERBASE_EXECUTABLE AND NOT CPACK_IFW_FRAMEWORK_VERSION)
+ message(WARNING "Could not detect QtIFW tools version. Set used version to variable \"CPACK_IFW_FRAMEWORK_VERSION_FORCED\" manually.")
+endif()
+
+#=============================================================================
+# Macro definition
+#=============================================================================
+
+# Macro definition based on CPackComponent
+
+if(NOT CPackComponent_CMake_INCLUDED)
+ include(CPackComponent)
+endif()
+
+# Resolve full filename for script file
+macro(_cpack_ifw_resolve_script _variable)
+ set(_ifw_script_macro ${_variable})
+ set(_ifw_script_file ${${_ifw_script_macro}})
+ if(DEFINED ${_ifw_script_macro})
+ get_filename_component(${_ifw_script_macro} ${_ifw_script_file} ABSOLUTE)
+ set(_ifw_script_file ${${_ifw_script_macro}})
+ if(NOT EXISTS ${_ifw_script_file})
+ message(WARNING "CPack IFW: script file \"${_ifw_script_file}\" does not exist")
+ set(${_ifw_script_macro})
+ endif()
+ endif()
+endmacro()
+
+# Resolve full path to license file
+macro(_cpack_ifw_resolve_lisenses _variable)
+ if(${_variable})
+ set(_ifw_license_file FALSE)
+ set(_ifw_licenses_fix)
+ foreach(_ifw_licenses_arg ${${_variable}})
+ if(_ifw_license_file)
+ get_filename_component(_ifw_licenses_arg "${_ifw_licenses_arg}" ABSOLUTE)
+ set(_ifw_license_file FALSE)
+ else()
+ set(_ifw_license_file TRUE)
+ endif()
+ list(APPEND _ifw_licenses_fix "${_ifw_licenses_arg}")
+ endforeach(_ifw_licenses_arg)
+ set(${_variable} "${_ifw_licenses_fix}")
+ endif()
+endmacro()
+
+# Resolve full path to a list of provided files
+macro(_cpack_ifw_resolve_file_list _variable)
+ if(${_variable})
+ set(_ifw_list_fix)
+ foreach(_ifw_file_arg ${${_variable}})
+ get_filename_component(_ifw_file_arg "${_ifw_file_arg}" ABSOLUTE)
+ if(EXISTS ${_ifw_file_arg})
+ list(APPEND _ifw_list_fix "${_ifw_file_arg}")
+ else()
+ message(WARNING "CPack IFW: page file \"${_ifw_file_arg}\" does not exist. Skipping")
+ endif()
+ endforeach(_ifw_file_arg)
+ set(${_variable} "${_ifw_list_fix}")
+ endif()
+endmacro()
+
+# Macro for configure component
+macro(cpack_ifw_configure_component compname)
+
+ string(TOUPPER ${compname} _CPACK_IFWCOMP_UNAME)
+
+ set(_IFW_OPT COMMON ESSENTIAL VIRTUAL FORCED_INSTALLATION REQUIRES_ADMIN_RIGHTS)
+ set(_IFW_ARGS NAME VERSION RELEASE_DATE SCRIPT PRIORITY SORTING_PRIORITY UPDATE_TEXT DEFAULT CHECKABLE)
+ set(_IFW_MULTI_ARGS DISPLAY_NAME DESCRIPTION DEPENDS DEPENDENCIES AUTO_DEPEND_ON LICENSES USER_INTERFACES TRANSLATIONS REPLACES)
+ cmake_parse_arguments(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
+
+ _cpack_ifw_resolve_script(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_SCRIPT)
+ _cpack_ifw_resolve_lisenses(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_LICENSES)
+ _cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_USER_INTERFACES)
+ _cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_TRANSLATIONS)
+
+ set(_CPACK_IFWCOMP_STR "\n# Configuration for IFW component \"${compname}\"\n")
+
+ foreach(_IFW_ARG_NAME ${_IFW_OPT})
+ cpack_append_option_set_command(
+ CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_${_IFW_ARG_NAME}
+ _CPACK_IFWCOMP_STR)
+ endforeach()
+
+ foreach(_IFW_ARG_NAME ${_IFW_ARGS})
+ cpack_append_string_variable_set_command(
+ CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_${_IFW_ARG_NAME}
+ _CPACK_IFWCOMP_STR)
+ endforeach()
+
+ foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
+ cpack_append_list_variable_set_command(
+ CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_${_IFW_ARG_NAME}
+ _CPACK_IFWCOMP_STR)
+ endforeach()
+
+ if(CPack_CMake_INCLUDED)
+ file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWCOMP_STR}")
+ endif()
+
+endmacro()
+
+# Macro for configure group
+macro(cpack_ifw_configure_component_group grpname)
+
+ string(TOUPPER ${grpname} _CPACK_IFWGRP_UNAME)
+
+ set(_IFW_OPT VIRTUAL FORCED_INSTALLATION REQUIRES_ADMIN_RIGHTS)
+ set(_IFW_ARGS NAME VERSION RELEASE_DATE SCRIPT PRIORITY SORTING_PRIORITY UPDATE_TEXT DEFAULT CHECKABLE)
+ set(_IFW_MULTI_ARGS DISPLAY_NAME DESCRIPTION DEPENDS DEPENDENCIES AUTO_DEPEND_ON LICENSES USER_INTERFACES TRANSLATIONS REPLACES)
+ cmake_parse_arguments(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
+
+ _cpack_ifw_resolve_script(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_SCRIPT)
+ _cpack_ifw_resolve_lisenses(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_LICENSES)
+ _cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_USER_INTERFACES)
+ _cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_TRANSLATIONS)
+
+ set(_CPACK_IFWGRP_STR "\n# Configuration for IFW component group \"${grpname}\"\n")
+
+ foreach(_IFW_ARG_NAME ${_IFW_OPT})
+ cpack_append_option_set_command(
+ CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_${_IFW_ARG_NAME}
+ _CPACK_IFWGRP_STR)
+ endforeach()
+
+ foreach(_IFW_ARG_NAME ${_IFW_ARGS})
+ cpack_append_string_variable_set_command(
+ CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_${_IFW_ARG_NAME}
+ _CPACK_IFWGRP_STR)
+ endforeach()
+
+ foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
+ cpack_append_list_variable_set_command(
+ CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_${_IFW_ARG_NAME}
+ _CPACK_IFWGRP_STR)
+ endforeach()
+
+ if(CPack_CMake_INCLUDED)
+ file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWGRP_STR}")
+ endif()
+endmacro()
+
+# Macro for adding repository
+macro(cpack_ifw_add_repository reponame)
+
+ string(TOUPPER ${reponame} _CPACK_IFWREPO_UNAME)
+
+ set(_IFW_OPT DISABLED)
+ set(_IFW_ARGS URL USERNAME PASSWORD DISPLAY_NAME)
+ set(_IFW_MULTI_ARGS)
+ cmake_parse_arguments(CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
+
+ set(_CPACK_IFWREPO_STR "\n# Configuration for IFW repository \"${reponame}\"\n")
+
+ foreach(_IFW_ARG_NAME ${_IFW_OPT})
+ cpack_append_option_set_command(
+ CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
+ _CPACK_IFWREPO_STR)
+ endforeach()
+
+ foreach(_IFW_ARG_NAME ${_IFW_ARGS})
+ cpack_append_string_variable_set_command(
+ CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
+ _CPACK_IFWREPO_STR)
+ endforeach()
+
+ foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
+ cpack_append_variable_set_command(
+ CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
+ _CPACK_IFWREPO_STR)
+ endforeach()
+
+ list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})
+ string(APPEND _CPACK_IFWREPO_STR "list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})\n")
+
+ if(CPack_CMake_INCLUDED)
+ file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWREPO_STR}")
+ endif()
+
+endmacro()
+
+# Macro for updating repository
+macro(cpack_ifw_update_repository reponame)
+
+ string(TOUPPER ${reponame} _CPACK_IFWREPO_UNAME)
+
+ set(_IFW_OPT ADD REMOVE REPLACE DISABLED)
+ set(_IFW_ARGS URL OLD_URL NEW_URL USERNAME PASSWORD DISPLAY_NAME)
+ set(_IFW_MULTI_ARGS)
+ cmake_parse_arguments(CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
+
+ set(_CPACK_IFWREPO_STR "\n# Configuration for IFW repository \"${reponame}\" update\n")
+
+ foreach(_IFW_ARG_NAME ${_IFW_OPT})
+ cpack_append_option_set_command(
+ CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
+ _CPACK_IFWREPO_STR)
+ endforeach()
+
+ foreach(_IFW_ARG_NAME ${_IFW_ARGS})
+ cpack_append_string_variable_set_command(
+ CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
+ _CPACK_IFWREPO_STR)
+ endforeach()
+
+ foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
+ cpack_append_variable_set_command(
+ CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
+ _CPACK_IFWREPO_STR)
+ endforeach()
+
+ if(CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_ADD
+ OR CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_REMOVE
+ OR CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_REPLACE)
+ list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})
+ string(APPEND _CPACK_IFWREPO_STR "list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})\n")
+ else()
+ set(_CPACK_IFWREPO_STR)
+ endif()
+
+ if(CPack_CMake_INCLUDED AND _CPACK_IFWREPO_STR)
+ file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWREPO_STR}")
+ endif()
+
+endmacro()
+
+# Macro for adding resources
+macro(cpack_ifw_add_package_resources)
+ set(_CPACK_IFW_PACKAGE_RESOURCES ${ARGV})
+ _cpack_ifw_resolve_file_list(_CPACK_IFW_PACKAGE_RESOURCES)
+ list(APPEND CPACK_IFW_PACKAGE_RESOURCES ${_CPACK_IFW_PACKAGE_RESOURCES})
+ set(_CPACK_IFWQRC_STR "list(APPEND CPACK_IFW_PACKAGE_RESOURCES \"${_CPACK_IFW_PACKAGE_RESOURCES}\")\n")
+ if(CPack_CMake_INCLUDED)
+ file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWQRC_STR}")
+ endif()
+endmacro()
+
+# Resolve package control script
+_cpack_ifw_resolve_script(CPACK_IFW_PACKAGE_CONTROL_SCRIPT)
+
+endif() # NOT CPackIFW_CMake_INCLUDED
diff --git a/share/cmake-3.16/Modules/CPackIFWConfigureFile.cmake b/share/cmake-3.17/Modules/CPackIFWConfigureFile.cmake
index 0abe0da..0abe0da 100644
--- a/share/cmake-3.16/Modules/CPackIFWConfigureFile.cmake
+++ b/share/cmake-3.17/Modules/CPackIFWConfigureFile.cmake
diff --git a/share/cmake-3.16/Modules/CSharpUtilities.cmake b/share/cmake-3.17/Modules/CSharpUtilities.cmake
index 6a4b5c7..6a4b5c7 100644
--- a/share/cmake-3.16/Modules/CSharpUtilities.cmake
+++ b/share/cmake-3.17/Modules/CSharpUtilities.cmake
diff --git a/share/cmake-3.17/Modules/CTest.cmake b/share/cmake-3.17/Modules/CTest.cmake
new file mode 100644
index 0000000..8109108
--- /dev/null
+++ b/share/cmake-3.17/Modules/CTest.cmake
@@ -0,0 +1,269 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CTest
+-----
+
+Configure a project for testing with CTest/CDash
+
+Include this module in the top CMakeLists.txt file of a project to
+enable testing with CTest and dashboard submissions to CDash::
+
+ project(MyProject)
+ ...
+ include(CTest)
+
+The module automatically creates a ``BUILD_TESTING`` option that selects
+whether to enable testing support (``ON`` by default). After including
+the module, use code like::
+
+ if(BUILD_TESTING)
+ # ... CMake code to create tests ...
+ endif()
+
+to creating tests when testing is enabled.
+
+To enable submissions to a CDash server, create a ``CTestConfig.cmake``
+file at the top of the project with content such as::
+
+ set(CTEST_NIGHTLY_START_TIME "01:00:00 UTC")
+ set(CTEST_SUBMIT_URL "http://my.cdash.org/submit.php?project=MyProject")
+
+(the CDash server can provide the file to a project administrator who
+configures ``MyProject``). Settings in the config file are shared by
+both this ``CTest`` module and the :manual:`ctest(1)` command-line
+:ref:`Dashboard Client` mode (``ctest -S``).
+
+While building a project for submission to CDash, CTest scans the
+build output for errors and warnings and reports them with surrounding
+context from the build log. This generic approach works for all build
+tools, but does not give details about the command invocation that
+produced a given problem. One may get more detailed reports by setting
+the :variable:`CTEST_USE_LAUNCHERS` variable::
+
+ set(CTEST_USE_LAUNCHERS 1)
+
+in the ``CTestConfig.cmake`` file.
+#]=======================================================================]
+
+option(BUILD_TESTING "Build the testing tree." ON)
+
+# function to turn generator name into a version string
+# like vs9 or vs10
+function(GET_VS_VERSION_STRING generator var)
+ string(REGEX REPLACE "Visual Studio ([0-9][0-9]?)($|.*)" "\\1"
+ NUMBER "${generator}")
+ set(ver_string "vs${NUMBER}")
+ set(${var} ${ver_string} PARENT_SCOPE)
+endfunction()
+
+include(CTestUseLaunchers)
+
+if(BUILD_TESTING)
+ # Setup some auxiliary macros
+ macro(SET_IF_NOT_SET var val)
+ if(NOT DEFINED "${var}")
+ set("${var}" "${val}")
+ endif()
+ endmacro()
+
+ macro(SET_IF_SET var val)
+ if(NOT "${val}" STREQUAL "")
+ set("${var}" "${val}")
+ endif()
+ endmacro()
+
+ macro(SET_IF_SET_AND_NOT_SET var val)
+ if(NOT "${val}" STREQUAL "")
+ SET_IF_NOT_SET("${var}" "${val}")
+ endif()
+ endmacro()
+
+ # Make sure testing is enabled
+ enable_testing()
+
+ if(EXISTS "${PROJECT_SOURCE_DIR}/CTestConfig.cmake")
+ include("${PROJECT_SOURCE_DIR}/CTestConfig.cmake")
+ SET_IF_SET_AND_NOT_SET(NIGHTLY_START_TIME "${CTEST_NIGHTLY_START_TIME}")
+ SET_IF_SET_AND_NOT_SET(SUBMIT_URL "${CTEST_SUBMIT_URL}")
+ SET_IF_SET_AND_NOT_SET(DROP_METHOD "${CTEST_DROP_METHOD}")
+ SET_IF_SET_AND_NOT_SET(DROP_SITE "${CTEST_DROP_SITE}")
+ SET_IF_SET_AND_NOT_SET(DROP_SITE_USER "${CTEST_DROP_SITE_USER}")
+ SET_IF_SET_AND_NOT_SET(DROP_SITE_PASSWORD "${CTEST_DROP_SITE_PASWORD}")
+ SET_IF_SET_AND_NOT_SET(DROP_SITE_MODE "${CTEST_DROP_SITE_MODE}")
+ SET_IF_SET_AND_NOT_SET(DROP_LOCATION "${CTEST_DROP_LOCATION}")
+ SET_IF_SET_AND_NOT_SET(TRIGGER_SITE "${CTEST_TRIGGER_SITE}")
+ SET_IF_SET_AND_NOT_SET(UPDATE_TYPE "${CTEST_UPDATE_TYPE}")
+ endif()
+
+ # the project can have a DartConfig.cmake file
+ if(EXISTS "${PROJECT_SOURCE_DIR}/DartConfig.cmake")
+ include("${PROJECT_SOURCE_DIR}/DartConfig.cmake")
+ else()
+ # Dashboard is opened for submissions for a 24 hour period starting at
+ # the specified NIGHTLY_START_TIME. Time is specified in 24 hour format.
+ SET_IF_NOT_SET (NIGHTLY_START_TIME "00:00:00 EDT")
+ SET_IF_NOT_SET(DROP_METHOD "http")
+ SET_IF_NOT_SET (COMPRESS_SUBMISSION ON)
+ endif()
+ SET_IF_NOT_SET (NIGHTLY_START_TIME "00:00:00 EDT")
+
+ if(NOT SUBMIT_URL)
+ set(SUBMIT_URL "${DROP_METHOD}://")
+ if(DROP_SITE_USER)
+ string(APPEND SUBMIT_URL "${DROP_SITE_USER}")
+ if(DROP_SITE_PASSWORD)
+ string(APPEND SUBMIT_URL ":${DROP_SITE_PASSWORD}")
+ endif()
+ string(APPEND SUBMIT_URL "@")
+ endif()
+ string(APPEND SUBMIT_URL "${DROP_SITE}${DROP_LOCATION}")
+ endif()
+
+ find_program(CVSCOMMAND cvs )
+ set(CVS_UPDATE_OPTIONS "-d -A -P" CACHE STRING
+ "Options passed to the cvs update command.")
+ find_program(SVNCOMMAND svn)
+ find_program(BZRCOMMAND bzr)
+ find_program(HGCOMMAND hg)
+ find_program(GITCOMMAND git)
+ find_program(P4COMMAND p4)
+
+ if(NOT UPDATE_TYPE)
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CVS")
+ set(UPDATE_TYPE cvs)
+ elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.svn")
+ set(UPDATE_TYPE svn)
+ elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.bzr")
+ set(UPDATE_TYPE bzr)
+ elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.hg")
+ set(UPDATE_TYPE hg)
+ elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
+ set(UPDATE_TYPE git)
+ endif()
+ endif()
+
+ string(TOLOWER "${UPDATE_TYPE}" _update_type)
+ if("${_update_type}" STREQUAL "cvs")
+ set(UPDATE_COMMAND "${CVSCOMMAND}")
+ set(UPDATE_OPTIONS "${CVS_UPDATE_OPTIONS}")
+ elseif("${_update_type}" STREQUAL "svn")
+ set(UPDATE_COMMAND "${SVNCOMMAND}")
+ set(UPDATE_OPTIONS "${SVN_UPDATE_OPTIONS}")
+ elseif("${_update_type}" STREQUAL "bzr")
+ set(UPDATE_COMMAND "${BZRCOMMAND}")
+ set(UPDATE_OPTIONS "${BZR_UPDATE_OPTIONS}")
+ elseif("${_update_type}" STREQUAL "hg")
+ set(UPDATE_COMMAND "${HGCOMMAND}")
+ set(UPDATE_OPTIONS "${HG_UPDATE_OPTIONS}")
+ elseif("${_update_type}" STREQUAL "git")
+ set(UPDATE_COMMAND "${GITCOMMAND}")
+ set(UPDATE_OPTIONS "${GIT_UPDATE_OPTIONS}")
+ elseif("${_update_type}" STREQUAL "p4")
+ set(UPDATE_COMMAND "${P4COMMAND}")
+ set(UPDATE_OPTIONS "${P4_UPDATE_OPTIONS}")
+ endif()
+
+ set(DART_TESTING_TIMEOUT 1500 CACHE STRING
+ "Maximum time allowed before CTest will kill the test.")
+
+ set(CTEST_SUBMIT_RETRY_DELAY 5 CACHE STRING
+ "How long to wait between timed-out CTest submissions.")
+ set(CTEST_SUBMIT_RETRY_COUNT 3 CACHE STRING
+ "How many times to retry timed-out CTest submissions.")
+
+ find_program(MEMORYCHECK_COMMAND
+ NAMES purify valgrind boundscheck drmemory
+ PATHS
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Purify\\Setup;InstallFolder]"
+ DOC "Path to the memory checking command, used for memory error detection."
+ )
+ find_program(SLURM_SBATCH_COMMAND sbatch DOC
+ "Path to the SLURM sbatch executable"
+ )
+ find_program(SLURM_SRUN_COMMAND srun DOC
+ "Path to the SLURM srun executable"
+ )
+ set(MEMORYCHECK_SUPPRESSIONS_FILE "" CACHE FILEPATH
+ "File that contains suppressions for the memory checker")
+ find_program(COVERAGE_COMMAND gcov DOC
+ "Path to the coverage program that CTest uses for performing coverage inspection"
+ )
+ set(COVERAGE_EXTRA_FLAGS "-l" CACHE STRING
+ "Extra command line flags to pass to the coverage tool")
+
+ # set the site name
+ site_name(SITE)
+ # set the build name
+ if(NOT BUILDNAME)
+ set(DART_COMPILER "${CMAKE_CXX_COMPILER}")
+ if(NOT DART_COMPILER)
+ set(DART_COMPILER "${CMAKE_C_COMPILER}")
+ endif()
+ if(NOT DART_COMPILER)
+ set(DART_COMPILER "unknown")
+ endif()
+ if(WIN32)
+ set(DART_NAME_COMPONENT "NAME_WE")
+ else()
+ set(DART_NAME_COMPONENT "NAME")
+ endif()
+ if(NOT BUILD_NAME_SYSTEM_NAME)
+ set(BUILD_NAME_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}")
+ endif()
+ if(WIN32)
+ set(BUILD_NAME_SYSTEM_NAME "Win32")
+ endif()
+ if(UNIX OR BORLAND)
+ get_filename_component(DART_COMPILER_NAME
+ "${DART_COMPILER}" ${DART_NAME_COMPONENT})
+ else()
+ get_filename_component(DART_COMPILER_NAME
+ "${CMAKE_MAKE_PROGRAM}" ${DART_NAME_COMPONENT})
+ endif()
+ if(DART_COMPILER_NAME MATCHES "devenv")
+ GET_VS_VERSION_STRING("${CMAKE_GENERATOR}" DART_COMPILER_NAME)
+ endif()
+ set(BUILDNAME "${BUILD_NAME_SYSTEM_NAME}-${DART_COMPILER_NAME}")
+ endif()
+
+ # the build command
+ build_command(MAKECOMMAND_DEFAULT_VALUE
+ CONFIGURATION "\${CTEST_CONFIGURATION_TYPE}")
+ set(MAKECOMMAND ${MAKECOMMAND_DEFAULT_VALUE}
+ CACHE STRING "Command to build the project")
+
+ # the default build configuration the ctest build handler will use
+ # if there is no -C arg given to ctest:
+ set(DEFAULT_CTEST_CONFIGURATION_TYPE "$ENV{CMAKE_CONFIG_TYPE}")
+ if(DEFAULT_CTEST_CONFIGURATION_TYPE STREQUAL "")
+ set(DEFAULT_CTEST_CONFIGURATION_TYPE "Release")
+ endif()
+
+ mark_as_advanced(
+ BZRCOMMAND
+ COVERAGE_COMMAND
+ COVERAGE_EXTRA_FLAGS
+ CTEST_SUBMIT_RETRY_DELAY
+ CTEST_SUBMIT_RETRY_COUNT
+ CVSCOMMAND
+ CVS_UPDATE_OPTIONS
+ DART_TESTING_TIMEOUT
+ GITCOMMAND
+ P4COMMAND
+ HGCOMMAND
+ MAKECOMMAND
+ MEMORYCHECK_COMMAND
+ MEMORYCHECK_SUPPRESSIONS_FILE
+ SLURM_SBATCH_COMMAND
+ SLURM_SRUN_COMMAND
+ SITE
+ SVNCOMMAND
+ )
+ if(NOT RUN_FROM_DART)
+ set(RUN_FROM_CTEST_OR_DART 1)
+ include(CTestTargets)
+ set(RUN_FROM_CTEST_OR_DART)
+ endif()
+endif()
diff --git a/share/cmake-3.16/Modules/CTestCoverageCollectGCOV.cmake b/share/cmake-3.17/Modules/CTestCoverageCollectGCOV.cmake
index ff48cc2..ff48cc2 100644
--- a/share/cmake-3.16/Modules/CTestCoverageCollectGCOV.cmake
+++ b/share/cmake-3.17/Modules/CTestCoverageCollectGCOV.cmake
diff --git a/share/cmake-3.16/Modules/CTestScriptMode.cmake b/share/cmake-3.17/Modules/CTestScriptMode.cmake
index 7af3577..7af3577 100644
--- a/share/cmake-3.16/Modules/CTestScriptMode.cmake
+++ b/share/cmake-3.17/Modules/CTestScriptMode.cmake
diff --git a/share/cmake-3.16/Modules/CTestTargets.cmake b/share/cmake-3.17/Modules/CTestTargets.cmake
index 838fbbf..838fbbf 100644
--- a/share/cmake-3.16/Modules/CTestTargets.cmake
+++ b/share/cmake-3.17/Modules/CTestTargets.cmake
diff --git a/share/cmake-3.16/Modules/CTestUseLaunchers.cmake b/share/cmake-3.17/Modules/CTestUseLaunchers.cmake
index 3dff926..3dff926 100644
--- a/share/cmake-3.16/Modules/CTestUseLaunchers.cmake
+++ b/share/cmake-3.17/Modules/CTestUseLaunchers.cmake
diff --git a/share/cmake-3.17/Modules/CheckCCompilerFlag.cmake b/share/cmake-3.17/Modules/CheckCCompilerFlag.cmake
new file mode 100644
index 0000000..6d65313
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckCCompilerFlag.cmake
@@ -0,0 +1,58 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckCCompilerFlag
+------------------
+
+Check whether the C compiler supports a given flag.
+
+.. command:: check_c_compiler_flag
+
+ .. code-block:: cmake
+
+ check_c_compiler_flag(<flag> <var>)
+
+ Check that the ``<flag>`` is accepted by the compiler without
+ a diagnostic. Stores the result in an internal cache entry
+ named ``<var>``.
+
+This command temporarily sets the ``CMAKE_REQUIRED_DEFINITIONS`` variable
+and calls the ``check_c_source_compiles`` macro from the
+:module:`CheckCSourceCompiles` module. See documentation of that
+module for a listing of variables that can otherwise modify the build.
+
+A positive result from this check indicates only that the compiler did not
+issue a diagnostic message when given the flag. Whether the flag has any
+effect or even a specific one is beyond the scope of this module.
+
+.. note::
+ Since the :command:`try_compile` command forwards flags from variables
+ like :variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>`, unknown flags
+ in such variables may cause a false negative for this check.
+#]=======================================================================]
+
+include_guard(GLOBAL)
+include(CheckCSourceCompiles)
+include(CMakeCheckCompilerFlagCommonPatterns)
+
+function(check_c_compiler_flag _flag _var)
+ set(CMAKE_REQUIRED_DEFINITIONS "${_flag}")
+
+ # Normalize locale during test compilation.
+ set(_locale_vars LC_ALL LC_MESSAGES LANG)
+ foreach(v IN LISTS _locale_vars)
+ set(_locale_vars_saved_${v} "$ENV{${v}}")
+ set(ENV{${v}} C)
+ endforeach()
+ check_compiler_flag_common_patterns(_common_patterns)
+ check_c_source_compiles("int main(void) { return 0; }" ${_var}
+ # Some compilers do not fail with a bad flag
+ FAIL_REGEX "command line option .* is valid for .* but not for C" # GNU
+ ${_common_patterns}
+ )
+ foreach(v IN LISTS _locale_vars)
+ set(ENV{${v}} ${_locale_vars_saved_${v}})
+ endforeach()
+ set(${_var} "${${_var}}" PARENT_SCOPE)
+endfunction()
diff --git a/share/cmake-3.17/Modules/CheckCSourceCompiles.cmake b/share/cmake-3.17/Modules/CheckCSourceCompiles.cmake
new file mode 100644
index 0000000..67fc993
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckCSourceCompiles.cmake
@@ -0,0 +1,145 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckCSourceCompiles
+--------------------
+
+Check if given C source compiles and links into an executable.
+
+.. command:: check_c_source_compiles
+
+ .. code-block:: cmake
+
+ check_c_source_compiles(<code> <resultVar>
+ [FAIL_REGEX <regex1> [<regex2>...]])
+
+ Check that the source supplied in ``<code>`` can be compiled as a C source
+ file and linked as an executable (so it must contain at least a ``main()``
+ function). The result will be stored in the internal cache variable specified
+ by ``<resultVar>``, with a boolean true value for success and boolean false
+ for failure. If ``FAIL_REGEX`` is provided, then failure is determined by
+ checking if anything in the output matches any of the specified regular
+ expressions.
+
+ The underlying check is performed by the :command:`try_compile` command. The
+ compile and link commands can be influenced by setting any of the following
+ variables prior to calling ``check_c_source_compiles()``:
+
+ ``CMAKE_REQUIRED_FLAGS``
+ Additional flags to pass to the compiler. Note that the contents of
+ :variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
+ configuration-specific variable are automatically added to the compiler
+ command before the contents of ``CMAKE_REQUIRED_FLAGS``.
+
+ ``CMAKE_REQUIRED_DEFINITIONS``
+ A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
+ ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
+ ``<resultVar>`` will also be added automatically.
+
+ ``CMAKE_REQUIRED_INCLUDES``
+ A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler. These will be the only header search paths used by
+ ``try_compile()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
+ directory property will be ignored.
+
+ ``CMAKE_REQUIRED_LINK_OPTIONS``
+ A :ref:`;-list <CMake Language Lists>` of options to add to the link
+ command (see :command:`try_compile` for further details).
+
+ ``CMAKE_REQUIRED_LIBRARIES``
+ A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. These can be the name of system libraries or they can be
+ :ref:`Imported Targets <Imported Targets>` (see :command:`try_compile` for
+ further details).
+
+ ``CMAKE_REQUIRED_QUIET``
+ If this variable evaluates to a boolean true value, all status messages
+ associated with the check will be suppressed.
+
+ The check is only performed once, with the result cached in the variable
+ named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+ value rather than performing the check again, even if the ``<code>`` changes.
+ In order to force the check to be re-evaluated, the variable named by
+ ``<resultVar>`` must be manually removed from the cache.
+
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_C_SOURCE_COMPILES SOURCE VAR)
+ if(NOT DEFINED "${VAR}")
+ set(_FAIL_REGEX)
+ set(_key)
+ foreach(arg ${ARGN})
+ if("${arg}" MATCHES "^(FAIL_REGEX)$")
+ set(_key "${arg}")
+ elseif(_key)
+ list(APPEND _${_key} "${arg}")
+ else()
+ message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
+ endif()
+ endforeach()
+ set(MACRO_CHECK_FUNCTION_DEFINITIONS
+ "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_C_SOURCE_COMPILES_ADD_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_C_SOURCE_COMPILES_ADD_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES)
+ endif()
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES)
+ endif()
+ file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c"
+ "${SOURCE}\n")
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Performing Test ${VAR}")
+ endif()
+ try_compile(${VAR}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_C_SOURCE_COMPILES_ADD_LINK_OPTIONS}
+ ${CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+ "${CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}"
+ OUTPUT_VARIABLE OUTPUT)
+
+ foreach(_regex ${_FAIL_REGEX})
+ if("${OUTPUT}" MATCHES "${_regex}")
+ set(${VAR} 0)
+ endif()
+ endforeach()
+
+ if(${VAR})
+ set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "Success")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Performing C SOURCE FILE Test ${VAR} succeeded with the following output:\n"
+ "${OUTPUT}\n"
+ "Source file was:\n${SOURCE}\n")
+ else()
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "Failed")
+ endif()
+ set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Performing C SOURCE FILE Test ${VAR} failed with the following output:\n"
+ "${OUTPUT}\n"
+ "Source file was:\n${SOURCE}\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/CheckCSourceRuns.cmake b/share/cmake-3.17/Modules/CheckCSourceRuns.cmake
new file mode 100644
index 0000000..7d116db
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckCSourceRuns.cmake
@@ -0,0 +1,145 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckCSourceRuns
+----------------
+
+Check if given C source compiles and links into an executable and can
+subsequently be run.
+
+.. command:: check_c_source_runs
+
+ .. code-block:: cmake
+
+ check_c_source_runs(<code> <resultVar>)
+
+ Check that the source supplied in ``<code>`` can be compiled as a C source
+ file, linked as an executable and then run. The ``<code>`` must contain at
+ least a ``main()`` function. If the ``<code>`` could be built and run
+ successfully, the internal cache variable specified by ``<resultVar>`` will
+ be set to 1, otherwise it will be set to an value that evaluates to boolean
+ false (e.g. an empty string or an error message).
+
+ The underlying check is performed by the :command:`try_run` command. The
+ compile and link commands can be influenced by setting any of the following
+ variables prior to calling ``check_c_source_runs()``:
+
+ ``CMAKE_REQUIRED_FLAGS``
+ Additional flags to pass to the compiler. Note that the contents of
+ :variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
+ configuration-specific variable are automatically added to the compiler
+ command before the contents of ``CMAKE_REQUIRED_FLAGS``.
+
+ ``CMAKE_REQUIRED_DEFINITIONS``
+ A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
+ ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
+ ``<resultVar>`` will also be added automatically.
+
+ ``CMAKE_REQUIRED_INCLUDES``
+ A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler. These will be the only header search paths used by
+ ``try_run()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
+ directory property will be ignored.
+
+ ``CMAKE_REQUIRED_LINK_OPTIONS``
+ A :ref:`;-list <CMake Language Lists>` of options to add to the link
+ command (see :command:`try_run` for further details).
+
+ ``CMAKE_REQUIRED_LIBRARIES``
+ A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. These can be the name of system libraries or they can be
+ :ref:`Imported Targets <Imported Targets>` (see :command:`try_run` for
+ further details).
+
+ ``CMAKE_REQUIRED_QUIET``
+ If this variable evaluates to a boolean true value, all status messages
+ associated with the check will be suppressed.
+
+ The check is only performed once, with the result cached in the variable
+ named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+ value rather than performing the check again, even if the ``<code>`` changes.
+ In order to force the check to be re-evaluated, the variable named by
+ ``<resultVar>`` must be manually removed from the cache.
+
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_C_SOURCE_RUNS SOURCE VAR)
+ if(NOT DEFINED "${VAR}")
+ set(MACRO_CHECK_FUNCTION_DEFINITIONS
+ "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_C_SOURCE_COMPILES_ADD_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_C_SOURCE_COMPILES_ADD_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES)
+ endif()
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES)
+ endif()
+ file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c"
+ "${SOURCE}\n")
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Performing Test ${VAR}")
+ endif()
+ try_run(${VAR}_EXITCODE ${VAR}_COMPILED
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_C_SOURCE_COMPILES_ADD_LINK_OPTIONS}
+ ${CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+ -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
+ "${CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}"
+ COMPILE_OUTPUT_VARIABLE OUTPUT
+ RUN_OUTPUT_VARIABLE RUN_OUTPUT)
+ # if it did not compile make the return value fail code of 1
+ if(NOT ${VAR}_COMPILED)
+ set(${VAR}_EXITCODE 1)
+ endif()
+ # if the return value was 0 then it worked
+ if("${${VAR}_EXITCODE}" EQUAL 0)
+ set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "Success")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Performing C SOURCE FILE Test ${VAR} succeeded with the following compile output:\n"
+ "${OUTPUT}\n"
+ "...and run output:\n"
+ "${RUN_OUTPUT}\n"
+ "Return value: ${${VAR}}\n"
+ "Source file was:\n${SOURCE}\n")
+ else()
+ if(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
+ set(${VAR} "${${VAR}_EXITCODE}")
+ else()
+ set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
+ endif()
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "Failed")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Performing C SOURCE FILE Test ${VAR} failed with the following compile output:\n"
+ "${OUTPUT}\n"
+ "...and run output:\n"
+ "${RUN_OUTPUT}\n"
+ "Return value: ${${VAR}_EXITCODE}\n"
+ "Source file was:\n${SOURCE}\n")
+
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/CheckCXXCompilerFlag.cmake b/share/cmake-3.17/Modules/CheckCXXCompilerFlag.cmake
new file mode 100644
index 0000000..5e07c25
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckCXXCompilerFlag.cmake
@@ -0,0 +1,58 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckCXXCompilerFlag
+------------------------
+
+Check whether the CXX compiler supports a given flag.
+
+.. command:: check_cxx_compiler_flag
+
+ .. code-block:: cmake
+
+ check_cxx_compiler_flag(<flag> <var>)
+
+ Check that the ``<flag>`` is accepted by the compiler without
+ a diagnostic. Stores the result in an internal cache entry
+ named ``<var>``.
+
+This command temporarily sets the ``CMAKE_REQUIRED_DEFINITIONS`` variable
+and calls the ``check_cxx_source_compiles`` macro from the
+:module:`CheckCXXSourceCompiles` module. See documentation of that
+module for a listing of variables that can otherwise modify the build.
+
+A positive result from this check indicates only that the compiler did not
+issue a diagnostic message when given the flag. Whether the flag has any
+effect or even a specific one is beyond the scope of this module.
+
+.. note::
+ Since the :command:`try_compile` command forwards flags from variables
+ like :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>`, unknown flags
+ in such variables may cause a false negative for this check.
+#]=======================================================================]
+
+include_guard(GLOBAL)
+include(CheckCXXSourceCompiles)
+include(CMakeCheckCompilerFlagCommonPatterns)
+
+function(check_cxx_compiler_flag _flag _var)
+ set(CMAKE_REQUIRED_DEFINITIONS "${_flag}")
+
+ # Normalize locale during test compilation.
+ set(_locale_vars LC_ALL LC_MESSAGES LANG)
+ foreach(v IN LISTS _locale_vars)
+ set(_locale_vars_saved_${v} "$ENV{${v}}")
+ set(ENV{${v}} C)
+ endforeach()
+ check_compiler_flag_common_patterns(_common_patterns)
+ check_cxx_source_compiles("int main() { return 0; }" ${_var}
+ # Some compilers do not fail with a bad flag
+ FAIL_REGEX "command line option .* is valid for .* but not for C\\\\+\\\\+" # GNU
+ ${_common_patterns}
+ )
+ foreach(v IN LISTS _locale_vars)
+ set(ENV{${v}} ${_locale_vars_saved_${v}})
+ endforeach()
+ set(${_var} "${${_var}}" PARENT_SCOPE)
+endfunction()
diff --git a/share/cmake-3.17/Modules/CheckCXXSourceCompiles.cmake b/share/cmake-3.17/Modules/CheckCXXSourceCompiles.cmake
new file mode 100644
index 0000000..c693d32
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckCXXSourceCompiles.cmake
@@ -0,0 +1,146 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckCXXSourceCompiles
+----------------------
+
+Check if given C++ source compiles and links into an executable.
+
+.. command:: check_cxx_source_compiles
+
+ .. code-block:: cmake
+
+ check_cxx_source_compiles(<code> <resultVar>
+ [FAIL_REGEX <regex1> [<regex2>...]])
+
+ Check that the source supplied in ``<code>`` can be compiled as a C++ source
+ file and linked as an executable (so it must contain at least a ``main()``
+ function). The result will be stored in the internal cache variable specified
+ by ``<resultVar>``, with a boolean true value for success and boolean false
+ for failure. If ``FAIL_REGEX`` is provided, then failure is determined by
+ checking if anything in the output matches any of the specified regular
+ expressions.
+
+ The underlying check is performed by the :command:`try_compile` command. The
+ compile and link commands can be influenced by setting any of the following
+ variables prior to calling ``check_cxx_source_compiles()``:
+
+ ``CMAKE_REQUIRED_FLAGS``
+ Additional flags to pass to the compiler. Note that the contents of
+ :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
+ configuration-specific variable are automatically added to the compiler
+ command before the contents of ``CMAKE_REQUIRED_FLAGS``.
+
+ ``CMAKE_REQUIRED_DEFINITIONS``
+ A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
+ ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
+ ``<resultVar>`` will also be added automatically.
+
+ ``CMAKE_REQUIRED_INCLUDES``
+ A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler. These will be the only header search paths used by
+ ``try_compile()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
+ directory property will be ignored.
+
+ ``CMAKE_REQUIRED_LINK_OPTIONS``
+ A :ref:`;-list <CMake Language Lists>` of options to add to the link
+ command (see :command:`try_compile` for further details).
+
+ ``CMAKE_REQUIRED_LIBRARIES``
+ A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. These can be the name of system libraries or they can be
+ :ref:`Imported Targets <Imported Targets>` (see :command:`try_compile` for
+ further details).
+
+ ``CMAKE_REQUIRED_QUIET``
+ If this variable evaluates to a boolean true value, all status messages
+ associated with the check will be suppressed.
+
+ The check is only performed once, with the result cached in the variable
+ named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+ value rather than performing the check again, even if the ``<code>`` changes.
+ In order to force the check to be re-evaluated, the variable named by
+ ``<resultVar>`` must be manually removed from the cache.
+
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_CXX_SOURCE_COMPILES SOURCE VAR)
+ if(NOT DEFINED "${VAR}")
+ set(_FAIL_REGEX)
+ set(_key)
+ foreach(arg ${ARGN})
+ if("${arg}" MATCHES "^(FAIL_REGEX)$")
+ set(_key "${arg}")
+ elseif(_key)
+ list(APPEND _${_key} "${arg}")
+ else()
+ message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
+ endif()
+ endforeach()
+
+ set(MACRO_CHECK_FUNCTION_DEFINITIONS
+ "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES)
+ endif()
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES)
+ endif()
+ file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx"
+ "${SOURCE}\n")
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Performing Test ${VAR}")
+ endif()
+ try_compile(${VAR}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS}
+ ${CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+ "${CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES}"
+ OUTPUT_VARIABLE OUTPUT)
+
+ foreach(_regex ${_FAIL_REGEX})
+ if("${OUTPUT}" MATCHES "${_regex}")
+ set(${VAR} 0)
+ endif()
+ endforeach()
+
+ if(${VAR})
+ set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "Success")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Performing C++ SOURCE FILE Test ${VAR} succeeded with the following output:\n"
+ "${OUTPUT}\n"
+ "Source file was:\n${SOURCE}\n")
+ else()
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "Failed")
+ endif()
+ set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Performing C++ SOURCE FILE Test ${VAR} failed with the following output:\n"
+ "${OUTPUT}\n"
+ "Source file was:\n${SOURCE}\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/CheckCXXSourceRuns.cmake b/share/cmake-3.17/Modules/CheckCXXSourceRuns.cmake
new file mode 100644
index 0000000..408e183
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckCXXSourceRuns.cmake
@@ -0,0 +1,145 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckCXXSourceRuns
+------------------
+
+Check if given C++ source compiles and links into an executable and can
+subsequently be run.
+
+.. command:: check_cxx_source_runs
+
+ .. code-block:: cmake
+
+ check_cxx_source_runs(<code> <resultVar>)
+
+ Check that the source supplied in ``<code>`` can be compiled as a C++ source
+ file, linked as an executable and then run. The ``<code>`` must contain at
+ least a ``main()`` function. If the ``<code>`` could be built and run
+ successfully, the internal cache variable specified by ``<resultVar>`` will
+ be set to 1, otherwise it will be set to an value that evaluates to boolean
+ false (e.g. an empty string or an error message).
+
+ The underlying check is performed by the :command:`try_run` command. The
+ compile and link commands can be influenced by setting any of the following
+ variables prior to calling ``check_cxx_source_runs()``:
+
+ ``CMAKE_REQUIRED_FLAGS``
+ Additional flags to pass to the compiler. Note that the contents of
+ :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
+ configuration-specific variable are automatically added to the compiler
+ command before the contents of ``CMAKE_REQUIRED_FLAGS``.
+
+ ``CMAKE_REQUIRED_DEFINITIONS``
+ A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
+ ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
+ ``<resultVar>`` will also be added automatically.
+
+ ``CMAKE_REQUIRED_INCLUDES``
+ A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler. These will be the only header search paths used by
+ ``try_run()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
+ directory property will be ignored.
+
+ ``CMAKE_REQUIRED_LINK_OPTIONS``
+ A :ref:`;-list <CMake Language Lists>` of options to add to the link
+ command (see :command:`try_run` for further details).
+
+ ``CMAKE_REQUIRED_LIBRARIES``
+ A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. These can be the name of system libraries or they can be
+ :ref:`Imported Targets <Imported Targets>` (see :command:`try_run` for
+ further details).
+
+ ``CMAKE_REQUIRED_QUIET``
+ If this variable evaluates to a boolean true value, all status messages
+ associated with the check will be suppressed.
+
+ The check is only performed once, with the result cached in the variable
+ named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+ value rather than performing the check again, even if the ``<code>`` changes.
+ In order to force the check to be re-evaluated, the variable named by
+ ``<resultVar>`` must be manually removed from the cache.
+
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_CXX_SOURCE_RUNS SOURCE VAR)
+ if(NOT DEFINED "${VAR}")
+ set(MACRO_CHECK_FUNCTION_DEFINITIONS
+ "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES)
+ endif()
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES)
+ endif()
+ file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx"
+ "${SOURCE}\n")
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Performing Test ${VAR}")
+ endif()
+ try_run(${VAR}_EXITCODE ${VAR}_COMPILED
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS}
+ ${CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+ -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
+ "${CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES}"
+ COMPILE_OUTPUT_VARIABLE OUTPUT
+ RUN_OUTPUT_VARIABLE RUN_OUTPUT)
+
+ # if it did not compile make the return value fail code of 1
+ if(NOT ${VAR}_COMPILED)
+ set(${VAR}_EXITCODE 1)
+ endif()
+ # if the return value was 0 then it worked
+ if("${${VAR}_EXITCODE}" EQUAL 0)
+ set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "Success")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Performing C++ SOURCE FILE Test ${VAR} succeeded with the following output:\n"
+ "${OUTPUT}\n"
+ "...and run output:\n"
+ "${RUN_OUTPUT}\n"
+ "Return value: ${${VAR}}\n"
+ "Source file was:\n${SOURCE}\n")
+ else()
+ if(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
+ set(${VAR} "${${VAR}_EXITCODE}")
+ else()
+ set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
+ endif()
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "Failed")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Performing C++ SOURCE FILE Test ${VAR} failed with the following output:\n"
+ "${OUTPUT}\n"
+ "...and run output:\n"
+ "${RUN_OUTPUT}\n"
+ "Return value: ${${VAR}_EXITCODE}\n"
+ "Source file was:\n${SOURCE}\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/CheckCXXSymbolExists.cmake b/share/cmake-3.17/Modules/CheckCXXSymbolExists.cmake
index 5c9079d..5c9079d 100644
--- a/share/cmake-3.16/Modules/CheckCXXSymbolExists.cmake
+++ b/share/cmake-3.17/Modules/CheckCXXSymbolExists.cmake
diff --git a/share/cmake-3.16/Modules/CheckForPthreads.c b/share/cmake-3.17/Modules/CheckForPthreads.c
index e70ceb1..e70ceb1 100644
--- a/share/cmake-3.16/Modules/CheckForPthreads.c
+++ b/share/cmake-3.17/Modules/CheckForPthreads.c
diff --git a/share/cmake-3.16/Modules/CheckFortranCompilerFlag.cmake b/share/cmake-3.17/Modules/CheckFortranCompilerFlag.cmake
index 299cd8c..299cd8c 100644
--- a/share/cmake-3.16/Modules/CheckFortranCompilerFlag.cmake
+++ b/share/cmake-3.17/Modules/CheckFortranCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/CheckFortranFunctionExists.cmake b/share/cmake-3.17/Modules/CheckFortranFunctionExists.cmake
new file mode 100644
index 0000000..d06203f
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckFortranFunctionExists.cmake
@@ -0,0 +1,84 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckFortranFunctionExists
+--------------------------
+
+Check if a Fortran function exists.
+
+.. command:: CHECK_FORTRAN_FUNCTION_EXISTS
+
+ .. code-block:: cmake
+
+ CHECK_FORTRAN_FUNCTION_EXISTS(<function> <result>)
+
+ where
+
+ ``<function>``
+ the name of the Fortran function
+ ``<result>``
+ variable to store the result; will be created as an internal cache variable.
+
+The following variables may be set before calling this macro to modify
+the way the check is run:
+
+``CMAKE_REQUIRED_LINK_OPTIONS``
+ A :ref:`;-list <CMake Language Lists>` of options to add to the link
+ command (see :command:`try_compile` for further details).
+
+``CMAKE_REQUIRED_LIBRARIES``
+ A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. These can be the name of system libraries or they can be
+ :ref:`Imported Targets <Imported Targets>` (see :command:`try_compile` for
+ further details).
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_FORTRAN_FUNCTION_EXISTS FUNCTION VARIABLE)
+ if(NOT DEFINED ${VARIABLE})
+ message(CHECK_START "Looking for Fortran ${FUNCTION}")
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES)
+ endif()
+ file(WRITE
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f
+ "
+ program TESTFortran
+ external ${FUNCTION}
+ call ${FUNCTION}()
+ end program TESTFortran
+ "
+ )
+ try_compile(${VARIABLE}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f
+ ${CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS}
+ ${CHECK_FUNCTION_EXISTS_ADD_LIBRARIES}
+ OUTPUT_VARIABLE OUTPUT
+ )
+ if(${VARIABLE})
+ set(${VARIABLE} 1 CACHE INTERNAL "Have Fortran function ${FUNCTION}")
+ message(CHECK_PASS "found")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the Fortran ${FUNCTION} exists passed with the following output:\n"
+ "${OUTPUT}\n\n")
+ else()
+ message(CHECK_FAIL "not found")
+ set(${VARIABLE} "" CACHE INTERNAL "Have Fortran function ${FUNCTION}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the Fortran ${FUNCTION} exists failed with the following output:\n"
+ "${OUTPUT}\n\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/CheckFortranSourceCompiles.cmake b/share/cmake-3.17/Modules/CheckFortranSourceCompiles.cmake
new file mode 100644
index 0000000..f0fde8d
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckFortranSourceCompiles.cmake
@@ -0,0 +1,168 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckFortranSourceCompiles
+--------------------------
+
+Check if given Fortran source compiles and links into an executable.
+
+.. command:: check_fortran_source_compiles
+
+ .. code-block:: cmake
+
+ check_fortran_source_compiles(<code> <resultVar>
+ [FAIL_REGEX <regex>...]
+ [SRC_EXT <extension>]
+ )
+
+ Checks that the source supplied in ``<code>`` can be compiled as a Fortran
+ source file and linked as an executable. The ``<code>`` must be a Fortran program
+ containing at least an ``end`` statement--for example:
+
+ .. code-block:: cmake
+
+ check_fortran_source_compiles("character :: b; error stop b; end" F2018ESTOPOK SRC_EXT F90)
+
+ This command can help avoid costly build processes when a compiler lacks support
+ for a necessary feature, or a particular vendor library is not compatible with
+ the Fortran compiler version being used. This generate-time check may advise the
+ user of such before the main build process. See also the
+ :command:`check_fortran_source_runs` command to actually run the compiled code.
+
+ The result will be stored in the internal cache
+ variable ``<resultVar>``, with a boolean true value for success and boolean
+ false for failure.
+
+ If ``FAIL_REGEX`` is provided, then failure is determined by checking
+ if anything in the output matches any of the specified regular expressions.
+
+ By default, the test source file will be given a ``.F`` file extension. The
+ ``SRC_EXT`` option can be used to override this with ``.<extension>`` instead--
+ ``.F90`` is a typical choice.
+
+ The underlying check is performed by the :command:`try_compile` command. The
+ compile and link commands can be influenced by setting any of the following
+ variables prior to calling ``check_fortran_source_compiles()``:
+
+ ``CMAKE_REQUIRED_FLAGS``
+ Additional flags to pass to the compiler. Note that the contents of
+ :variable:`CMAKE_Fortran_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
+ configuration-specific variable are automatically added to the compiler
+ command before the contents of ``CMAKE_REQUIRED_FLAGS``.
+
+ ``CMAKE_REQUIRED_DEFINITIONS``
+ A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
+ ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
+ ``<resultVar>`` will also be added automatically.
+
+ ``CMAKE_REQUIRED_INCLUDES``
+ A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler. These will be the only header search paths used by
+ ``try_compile()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
+ directory property will be ignored.
+
+ ``CMAKE_REQUIRED_LINK_OPTIONS``
+ A :ref:`;-list <CMake Language Lists>` of options to add to the link
+ command (see :command:`try_compile` for further details).
+
+ ``CMAKE_REQUIRED_LIBRARIES``
+ A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. These can be the name of system libraries or they can be
+ :ref:`Imported Targets <Imported Targets>` (see :command:`try_compile` for
+ further details).
+
+ ``CMAKE_REQUIRED_QUIET``
+ If this variable evaluates to a boolean true value, all status messages
+ associated with the check will be suppressed.
+
+ The check is only performed once, with the result cached in the variable
+ named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+ value rather than performing the check again, even if the ``<code>`` changes.
+ In order to force the check to be re-evaluated, the variable named by
+ ``<resultVar>`` must be manually removed from the cache.
+
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_Fortran_SOURCE_COMPILES SOURCE VAR)
+ if(NOT DEFINED "${VAR}")
+ set(_FAIL_REGEX)
+ set(_SRC_EXT)
+ set(_key)
+ foreach(arg ${ARGN})
+ if("${arg}" MATCHES "^(FAIL_REGEX|SRC_EXT)$")
+ set(_key "${arg}")
+ elseif(_key)
+ list(APPEND _${_key} "${arg}")
+ else()
+ message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
+ endif()
+ endforeach()
+ if(NOT _SRC_EXT)
+ set(_SRC_EXT F)
+ endif()
+ set(MACRO_CHECK_FUNCTION_DEFINITIONS
+ "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES)
+ endif()
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES)
+ endif()
+ file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.${_SRC_EXT}"
+ "${SOURCE}\n")
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Performing Test ${VAR}")
+ endif()
+ try_compile(${VAR}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.${_SRC_EXT}
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS}
+ ${CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+ "${CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES}"
+ OUTPUT_VARIABLE OUTPUT)
+
+ foreach(_regex ${_FAIL_REGEX})
+ if("${OUTPUT}" MATCHES "${_regex}")
+ set(${VAR} 0)
+ endif()
+ endforeach()
+
+ if(${VAR})
+ set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "Success")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Performing Fortran SOURCE FILE Test ${VAR} succeeded with the following output:\n"
+ "${OUTPUT}\n"
+ "Source file was:\n${SOURCE}\n")
+ else()
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "Failed")
+ endif()
+ set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Performing Fortran SOURCE FILE Test ${VAR} failed with the following output:\n"
+ "${OUTPUT}\n"
+ "Source file was:\n${SOURCE}\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/CheckFortranSourceRuns.cmake b/share/cmake-3.17/Modules/CheckFortranSourceRuns.cmake
new file mode 100644
index 0000000..a3e5d5d
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckFortranSourceRuns.cmake
@@ -0,0 +1,175 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckFortranSourceRuns
+----------------------
+
+Check if given Fortran source compiles and links into an executable and can
+subsequently be run.
+
+.. command:: check_fortran_source_runs
+
+ .. code-block:: cmake
+
+ check_fortran_source_runs(<code> <resultVar>
+ [SRC_EXT <extension>])
+
+ Check that the source supplied in ``<code>`` can be compiled as a Fortran source
+ file, linked as an executable and then run. The ``<code>`` must be a Fortran program
+ containing at least an ``end`` statement--for example:
+
+ .. code-block:: cmake
+
+ check_fortran_source_runs("real :: x[*]; call co_sum(x); end" F2018coarrayOK)
+
+ This command can help avoid costly build processes when a compiler lacks support
+ for a necessary feature, or a particular vendor library is not compatible with
+ the Fortran compiler version being used. Some of these failures only occur at runtime
+ instead of linktime, and a trivial runtime example can catch the issue before the
+ main build process.
+
+ If the ``<code>`` could be built and run
+ successfully, the internal cache variable specified by ``<resultVar>`` will
+ be set to 1, otherwise it will be set to an value that evaluates to boolean
+ false (e.g. an empty string or an error message).
+
+ By default, the test source file will be given a ``.F90`` file extension. The
+ ``SRC_EXT`` option can be used to override this with ``.<extension>`` instead.
+
+ The underlying check is performed by the :command:`try_run` command. The
+ compile and link commands can be influenced by setting any of the following
+ variables prior to calling ``check_fortran_source_runs()``:
+
+ ``CMAKE_REQUIRED_FLAGS``
+ Additional flags to pass to the compiler. Note that the contents of
+ :variable:`CMAKE_Fortran_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
+ configuration-specific variable are automatically added to the compiler
+ command before the contents of ``CMAKE_REQUIRED_FLAGS``.
+
+ ``CMAKE_REQUIRED_DEFINITIONS``
+ A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
+ ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
+ ``<resultVar>`` will also be added automatically.
+
+ ``CMAKE_REQUIRED_INCLUDES``
+ A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler. These will be the only header search paths used by
+ ``try_run()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
+ directory property will be ignored.
+
+ ``CMAKE_REQUIRED_LINK_OPTIONS``
+ A :ref:`;-list <CMake Language Lists>` of options to add to the link
+ command (see :command:`try_run` for further details).
+
+ ``CMAKE_REQUIRED_LIBRARIES``
+ A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. These can be the name of system libraries or they can be
+ :ref:`Imported Targets <Imported Targets>` (see :command:`try_run` for
+ further details).
+
+ ``CMAKE_REQUIRED_QUIET``
+ If this variable evaluates to a boolean true value, all status messages
+ associated with the check will be suppressed.
+
+ The check is only performed once, with the result cached in the variable
+ named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+ value rather than performing the check again, even if the ``<code>`` changes.
+ In order to force the check to be re-evaluated, the variable named by
+ ``<resultVar>`` must be manually removed from the cache.
+
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_Fortran_SOURCE_RUNS SOURCE VAR)
+ if(NOT DEFINED "${VAR}")
+ set(_SRC_EXT)
+ set(_key)
+ foreach(arg ${ARGN})
+ if("${arg}" MATCHES "^(SRC_EXT)$")
+ set(_key "${arg}")
+ elseif(_key)
+ list(APPEND _${_key} "${arg}")
+ else()
+ message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
+ endif()
+ endforeach()
+ if(NOT _SRC_EXT)
+ set(_SRC_EXT F90)
+ endif()
+ set(MACRO_CHECK_FUNCTION_DEFINITIONS
+ "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES)
+ endif()
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES)
+ endif()
+ file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.${_SRC_EXT}"
+ "${SOURCE}\n")
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Performing Test ${VAR}")
+ endif()
+ try_run(${VAR}_EXITCODE ${VAR}_COMPILED
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.${_SRC_EXT}
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS}
+ ${CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+ -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
+ "${CHECK_Fortran_SOURCE_COMPILES_ADD_INCLUDES}"
+ COMPILE_OUTPUT_VARIABLE OUTPUT
+ RUN_OUTPUT_VARIABLE RUN_OUTPUT)
+
+ # if it did not compile make the return value fail code of 1
+ if(NOT ${VAR}_COMPILED)
+ set(${VAR}_EXITCODE 1)
+ endif()
+ # if the return value was 0 then it worked
+ if("${${VAR}_EXITCODE}" EQUAL 0)
+ set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "Success")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Performing Fortran SOURCE FILE Test ${VAR} succeeded with the following output:\n"
+ "${OUTPUT}\n"
+ "...and run output:\n"
+ "${RUN_OUTPUT}\n"
+ "Return value: ${${VAR}}\n"
+ "Source file was:\n${SOURCE}\n")
+ else()
+ if(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
+ set(${VAR} "${${VAR}_EXITCODE}")
+ else()
+ set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
+ endif()
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "Failed")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Performing Fortran SOURCE FILE Test ${VAR} failed with the following output:\n"
+ "${OUTPUT}\n"
+ "...and run output:\n"
+ "${RUN_OUTPUT}\n"
+ "Return value: ${${VAR}_EXITCODE}\n"
+ "Source file was:\n${SOURCE}\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/CheckFunctionExists.c b/share/cmake-3.17/Modules/CheckFunctionExists.c
index 13435e0..13435e0 100644
--- a/share/cmake-3.16/Modules/CheckFunctionExists.c
+++ b/share/cmake-3.17/Modules/CheckFunctionExists.c
diff --git a/share/cmake-3.17/Modules/CheckFunctionExists.cmake b/share/cmake-3.17/Modules/CheckFunctionExists.cmake
new file mode 100644
index 0000000..136da89
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckFunctionExists.cmake
@@ -0,0 +1,119 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckFunctionExists
+-------------------
+
+Check if a C function can be linked
+
+.. command:: check_function_exists
+
+ .. code-block:: cmake
+
+ check_function_exists(<function> <variable>)
+
+ Checks that the ``<function>`` is provided by libraries on the system and store
+ the result in a ``<variable>``, which will be created as an internal
+ cache variable.
+
+The following variables may be set before calling this macro to modify the
+way the check is run:
+
+``CMAKE_REQUIRED_FLAGS``
+ string of compile command line flags.
+``CMAKE_REQUIRED_DEFINITIONS``
+ a :ref:`;-list <CMake Language Lists>` of macros to define (-DFOO=bar).
+``CMAKE_REQUIRED_INCLUDES``
+ a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler.
+``CMAKE_REQUIRED_LINK_OPTIONS``
+ a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
+``CMAKE_REQUIRED_LIBRARIES``
+ a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. See policy :policy:`CMP0075`.
+``CMAKE_REQUIRED_QUIET``
+ execute quietly without messages.
+
+.. note::
+
+ Prefer using :Module:`CheckSymbolExists` instead of this module,
+ for the following reasons:
+
+ * ``check_function_exists()`` can't detect functions that are inlined
+ in headers or specified as a macro.
+
+ * ``check_function_exists()`` can't detect anything in the 32-bit
+ versions of the Win32 API, because of a mismatch in calling conventions.
+
+ * ``check_function_exists()`` only verifies linking, it does not verify
+ that the function is declared in system headers.
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_FUNCTION_EXISTS FUNCTION VARIABLE)
+ if(NOT DEFINED "${VARIABLE}" OR "x${${VARIABLE}}" STREQUAL "x${VARIABLE}")
+ set(MACRO_CHECK_FUNCTION_DEFINITIONS
+ "-DCHECK_FUNCTION_EXISTS=${FUNCTION} ${CMAKE_REQUIRED_FLAGS}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Looking for ${FUNCTION}")
+ endif()
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES)
+ endif()
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_FUNCTION_EXISTS_ADD_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_FUNCTION_EXISTS_ADD_INCLUDES)
+ endif()
+
+ if(CMAKE_C_COMPILER_LOADED)
+ set(_cfe_source ${CMAKE_ROOT}/Modules/CheckFunctionExists.c)
+ elseif(CMAKE_CXX_COMPILER_LOADED)
+ set(_cfe_source ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckFunctionExists/CheckFunctionExists.cxx)
+ configure_file(${CMAKE_ROOT}/Modules/CheckFunctionExists.c "${_cfe_source}" COPYONLY)
+ else()
+ message(FATAL_ERROR "CHECK_FUNCTION_EXISTS needs either C or CXX language enabled")
+ endif()
+
+ try_compile(${VARIABLE}
+ ${CMAKE_BINARY_DIR}
+ ${_cfe_source}
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS}
+ ${CHECK_FUNCTION_EXISTS_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+ "${CHECK_FUNCTION_EXISTS_ADD_INCLUDES}"
+ OUTPUT_VARIABLE OUTPUT)
+ unset(_cfe_source)
+
+ if(${VARIABLE})
+ set(${VARIABLE} 1 CACHE INTERNAL "Have function ${FUNCTION}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "found")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the function ${FUNCTION} exists passed with the following output:\n"
+ "${OUTPUT}\n\n")
+ else()
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "not found")
+ endif()
+ set(${VARIABLE} "" CACHE INTERNAL "Have function ${FUNCTION}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the function ${FUNCTION} exists failed with the following output:\n"
+ "${OUTPUT}\n\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/CheckIPOSupported.cmake b/share/cmake-3.17/Modules/CheckIPOSupported.cmake
index 0d6ad20..0d6ad20 100644
--- a/share/cmake-3.16/Modules/CheckIPOSupported.cmake
+++ b/share/cmake-3.17/Modules/CheckIPOSupported.cmake
diff --git a/share/cmake-3.16/Modules/CheckIPOSupported/CMakeLists-C.txt.in b/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-C.txt.in
index 5a3b8ee..5a3b8ee 100644
--- a/share/cmake-3.16/Modules/CheckIPOSupported/CMakeLists-C.txt.in
+++ b/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-C.txt.in
diff --git a/share/cmake-3.16/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in b/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in
index 30993fa..30993fa 100644
--- a/share/cmake-3.16/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in
+++ b/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in
diff --git a/share/cmake-3.16/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in b/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in
index 9fab077..9fab077 100644
--- a/share/cmake-3.16/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in
+++ b/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in
diff --git a/share/cmake-3.16/Modules/CheckIPOSupported/foo.c b/share/cmake-3.17/Modules/CheckIPOSupported/foo.c
index 1e56597..1e56597 100644
--- a/share/cmake-3.16/Modules/CheckIPOSupported/foo.c
+++ b/share/cmake-3.17/Modules/CheckIPOSupported/foo.c
diff --git a/share/cmake-3.16/Modules/CheckIPOSupported/foo.cpp b/share/cmake-3.17/Modules/CheckIPOSupported/foo.cpp
index 1e56597..1e56597 100644
--- a/share/cmake-3.16/Modules/CheckIPOSupported/foo.cpp
+++ b/share/cmake-3.17/Modules/CheckIPOSupported/foo.cpp
diff --git a/share/cmake-3.16/Modules/CheckIPOSupported/foo.f b/share/cmake-3.17/Modules/CheckIPOSupported/foo.f
index 945d2d5..945d2d5 100644
--- a/share/cmake-3.16/Modules/CheckIPOSupported/foo.f
+++ b/share/cmake-3.17/Modules/CheckIPOSupported/foo.f
diff --git a/share/cmake-3.16/Modules/CheckIPOSupported/main.c b/share/cmake-3.17/Modules/CheckIPOSupported/main.c
index 5be0864..5be0864 100644
--- a/share/cmake-3.16/Modules/CheckIPOSupported/main.c
+++ b/share/cmake-3.17/Modules/CheckIPOSupported/main.c
diff --git a/share/cmake-3.16/Modules/CheckIPOSupported/main.cpp b/share/cmake-3.17/Modules/CheckIPOSupported/main.cpp
index 5be0864..5be0864 100644
--- a/share/cmake-3.16/Modules/CheckIPOSupported/main.cpp
+++ b/share/cmake-3.17/Modules/CheckIPOSupported/main.cpp
diff --git a/share/cmake-3.16/Modules/CheckIPOSupported/main.f b/share/cmake-3.17/Modules/CheckIPOSupported/main.f
index 9d1de9f..9d1de9f 100644
--- a/share/cmake-3.16/Modules/CheckIPOSupported/main.f
+++ b/share/cmake-3.17/Modules/CheckIPOSupported/main.f
diff --git a/share/cmake-3.16/Modules/CheckIncludeFile.c.in b/share/cmake-3.17/Modules/CheckIncludeFile.c.in
index ddfbee8..ddfbee8 100644
--- a/share/cmake-3.16/Modules/CheckIncludeFile.c.in
+++ b/share/cmake-3.17/Modules/CheckIncludeFile.c.in
diff --git a/share/cmake-3.17/Modules/CheckIncludeFile.cmake b/share/cmake-3.17/Modules/CheckIncludeFile.cmake
new file mode 100644
index 0000000..3a10473
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckIncludeFile.cmake
@@ -0,0 +1,130 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckIncludeFile
+----------------
+
+Provides a macro to check if a header file can be included in ``C``.
+
+.. command:: CHECK_INCLUDE_FILE
+
+ .. code-block:: cmake
+
+ CHECK_INCLUDE_FILE(<include> <variable> [<flags>])
+
+ Check if the given ``<include>`` file may be included in a ``C``
+ source file and store the result in an internal cache entry named
+ ``<variable>``. The optional third argument may be used to add
+ compilation flags to the check (or use ``CMAKE_REQUIRED_FLAGS`` below).
+
+The following variables may be set before calling this macro to modify
+the way the check is run:
+
+``CMAKE_REQUIRED_FLAGS``
+ string of compile command line flags.
+``CMAKE_REQUIRED_DEFINITIONS``
+ a :ref:`;-list <CMake Language Lists>` of macros to define (-DFOO=bar).
+``CMAKE_REQUIRED_INCLUDES``
+ a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler.
+``CMAKE_REQUIRED_LINK_OPTIONS``
+ a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
+``CMAKE_REQUIRED_LIBRARIES``
+ a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. See policy :policy:`CMP0075`.
+``CMAKE_REQUIRED_QUIET``
+ execute quietly without messages.
+
+See the :module:`CheckIncludeFiles` module to check for multiple headers
+at once. See the :module:`CheckIncludeFileCXX` module to check for headers
+using the ``CXX`` language.
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_INCLUDE_FILE INCLUDE VARIABLE)
+ if(NOT DEFINED "${VARIABLE}")
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_INCLUDE_FILE_C_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_INCLUDE_FILE_C_INCLUDE_DIRS)
+ endif()
+ set(MACRO_CHECK_INCLUDE_FILE_FLAGS ${CMAKE_REQUIRED_FLAGS})
+ set(CHECK_INCLUDE_FILE_VAR ${INCLUDE})
+ configure_file(${CMAKE_ROOT}/Modules/CheckIncludeFile.c.in
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.c)
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Looking for ${INCLUDE}")
+ endif()
+ if(${ARGC} EQUAL 3)
+ set(CMAKE_C_FLAGS_SAVE ${CMAKE_C_FLAGS})
+ string(APPEND CMAKE_C_FLAGS " ${ARGV2}")
+ endif()
+
+ set(_CIF_LINK_OPTIONS)
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(_CIF_LINK_OPTIONS LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ endif()
+
+ set(_CIF_LINK_LIBRARIES "")
+ if(CMAKE_REQUIRED_LIBRARIES)
+ cmake_policy(GET CMP0075 _CIF_CMP0075
+ PARENT_SCOPE # undocumented, do not use outside of CMake
+ )
+ if("x${_CIF_CMP0075}x" STREQUAL "xNEWx")
+ set(_CIF_LINK_LIBRARIES LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ elseif("x${_CIF_CMP0075}x" STREQUAL "xOLDx")
+ elseif(NOT _CIF_CMP0075_WARNED)
+ set(_CIF_CMP0075_WARNED 1)
+ message(AUTHOR_WARNING
+ "Policy CMP0075 is not set: Include file check macros honor CMAKE_REQUIRED_LIBRARIES. "
+ "Run \"cmake --help-policy CMP0075\" for policy details. "
+ "Use the cmake_policy command to set the policy and suppress this warning."
+ "\n"
+ "CMAKE_REQUIRED_LIBRARIES is set to:\n"
+ " ${CMAKE_REQUIRED_LIBRARIES}\n"
+ "For compatibility with CMake 3.11 and below this check is ignoring it."
+ )
+ endif()
+ unset(_CIF_CMP0075)
+ endif()
+
+ try_compile(${VARIABLE}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.c
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${_CIF_LINK_OPTIONS}
+ ${_CIF_LINK_LIBRARIES}
+ CMAKE_FLAGS
+ -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILE_FLAGS}
+ "${CHECK_INCLUDE_FILE_C_INCLUDE_DIRS}"
+ OUTPUT_VARIABLE OUTPUT)
+ unset(_CIF_LINK_OPTIONS)
+ unset(_CIF_LINK_LIBRARIES)
+
+ if(${ARGC} EQUAL 3)
+ set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS_SAVE})
+ endif()
+
+ if(${VARIABLE})
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "found")
+ endif()
+ set(${VARIABLE} 1 CACHE INTERNAL "Have include ${INCLUDE}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the include file ${INCLUDE} "
+ "exists passed with the following output:\n"
+ "${OUTPUT}\n\n")
+ else()
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "not found")
+ endif()
+ set(${VARIABLE} "" CACHE INTERNAL "Have include ${INCLUDE}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the include file ${INCLUDE} "
+ "exists failed with the following output:\n"
+ "${OUTPUT}\n\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/CheckIncludeFile.cxx.in b/share/cmake-3.17/Modules/CheckIncludeFile.cxx.in
index 40441f1..40441f1 100644
--- a/share/cmake-3.16/Modules/CheckIncludeFile.cxx.in
+++ b/share/cmake-3.17/Modules/CheckIncludeFile.cxx.in
diff --git a/share/cmake-3.17/Modules/CheckIncludeFileCXX.cmake b/share/cmake-3.17/Modules/CheckIncludeFileCXX.cmake
new file mode 100644
index 0000000..496550f
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckIncludeFileCXX.cmake
@@ -0,0 +1,129 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckIncludeFileCXX
+-------------------
+
+Provides a macro to check if a header file can be included in ``CXX``.
+
+.. command:: CHECK_INCLUDE_FILE_CXX
+
+ .. code-block:: cmake
+
+ CHECK_INCLUDE_FILE_CXX(<include> <variable> [<flags>])
+
+ Check if the given ``<include>`` file may be included in a ``CXX``
+ source file and store the result in an internal cache entry named
+ ``<variable>``. The optional third argument may be used to add
+ compilation flags to the check (or use ``CMAKE_REQUIRED_FLAGS`` below).
+
+The following variables may be set before calling this macro to modify
+the way the check is run:
+
+``CMAKE_REQUIRED_FLAGS``
+ string of compile command line flags.
+``CMAKE_REQUIRED_DEFINITIONS``
+ a :ref:`;-list <CMake Language Lists>` of macros to define (-DFOO=bar).
+``CMAKE_REQUIRED_INCLUDES``
+ a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler.
+``CMAKE_REQUIRED_LINK_OPTIONS``
+ a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
+``CMAKE_REQUIRED_LIBRARIES``
+ a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. See policy :policy:`CMP0075`.
+``CMAKE_REQUIRED_QUIET``
+ execute quietly without messages.
+
+See modules :module:`CheckIncludeFile` and :module:`CheckIncludeFiles`
+to check for one or more ``C`` headers.
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_INCLUDE_FILE_CXX INCLUDE VARIABLE)
+ if(NOT DEFINED "${VARIABLE}" OR "x${${VARIABLE}}" STREQUAL "x${VARIABLE}")
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS)
+ endif()
+ set(MACRO_CHECK_INCLUDE_FILE_FLAGS ${CMAKE_REQUIRED_FLAGS})
+ set(CHECK_INCLUDE_FILE_VAR ${INCLUDE})
+ configure_file(${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx)
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Looking for C++ include ${INCLUDE}")
+ endif()
+ if(${ARGC} EQUAL 3)
+ set(CMAKE_CXX_FLAGS_SAVE ${CMAKE_CXX_FLAGS})
+ string(APPEND CMAKE_CXX_FLAGS " ${ARGV2}")
+ endif()
+
+ set(_CIF_LINK_OPTIONS)
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(_CIF_LINK_OPTIONS LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ endif()
+
+ set(_CIF_LINK_LIBRARIES "")
+ if(CMAKE_REQUIRED_LIBRARIES)
+ cmake_policy(GET CMP0075 _CIF_CMP0075
+ PARENT_SCOPE # undocumented, do not use outside of CMake
+ )
+ if("x${_CIF_CMP0075}x" STREQUAL "xNEWx")
+ set(_CIF_LINK_LIBRARIES LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ elseif("x${_CIF_CMP0075}x" STREQUAL "xOLDx")
+ elseif(NOT _CIF_CMP0075_WARNED)
+ set(_CIF_CMP0075_WARNED 1)
+ message(AUTHOR_WARNING
+ "Policy CMP0075 is not set: Include file check macros honor CMAKE_REQUIRED_LIBRARIES. "
+ "Run \"cmake --help-policy CMP0075\" for policy details. "
+ "Use the cmake_policy command to set the policy and suppress this warning."
+ "\n"
+ "CMAKE_REQUIRED_LIBRARIES is set to:\n"
+ " ${CMAKE_REQUIRED_LIBRARIES}\n"
+ "For compatibility with CMake 3.11 and below this check is ignoring it."
+ )
+ endif()
+ unset(_CIF_CMP0075)
+ endif()
+
+ try_compile(${VARIABLE}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${_CIF_LINK_OPTIONS}
+ ${_CIF_LINK_LIBRARIES}
+ CMAKE_FLAGS
+ -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILE_FLAGS}
+ "${CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS}"
+ OUTPUT_VARIABLE OUTPUT)
+ unset(_CIF_LINK_OPTIONS)
+ unset(_CIF_LINK_LIBRARIES)
+
+ if(${ARGC} EQUAL 3)
+ set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS_SAVE})
+ endif()
+
+ if(${VARIABLE})
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "found")
+ endif()
+ set(${VARIABLE} 1 CACHE INTERNAL "Have include ${INCLUDE}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the include file ${INCLUDE} "
+ "exists passed with the following output:\n"
+ "${OUTPUT}\n\n")
+ else()
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "not found")
+ endif()
+ set(${VARIABLE} "" CACHE INTERNAL "Have include ${INCLUDE}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the include file ${INCLUDE} "
+ "exists failed with the following output:\n"
+ "${OUTPUT}\n\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/CheckIncludeFiles.cmake b/share/cmake-3.17/Modules/CheckIncludeFiles.cmake
new file mode 100644
index 0000000..8e10cd6
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckIncludeFiles.cmake
@@ -0,0 +1,168 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckIncludeFiles
+-----------------
+
+Provides a macro to check if a list of one or more header files can
+be included together.
+
+.. command:: CHECK_INCLUDE_FILES
+
+ .. code-block:: cmake
+
+ CHECK_INCLUDE_FILES("<includes>" <variable> [LANGUAGE <language>])
+
+ Check if the given ``<includes>`` list may be included together
+ in a source file and store the result in an internal cache
+ entry named ``<variable>``. Specify the ``<includes>`` argument
+ as a :ref:`;-list <CMake Language Lists>` of header file names.
+
+ If ``LANGUAGE`` is set, the specified compiler will be used to perform the
+ check. Acceptable values are ``C`` and ``CXX``. If not set, the C compiler
+ will be used if enabled. If the C compiler is not enabled, the C++
+ compiler will be used if enabled.
+
+The following variables may be set before calling this macro to modify
+the way the check is run:
+
+``CMAKE_REQUIRED_FLAGS``
+ string of compile command line flags.
+``CMAKE_REQUIRED_DEFINITIONS``
+ a :ref:`;-list <CMake Language Lists>` of macros to define (-DFOO=bar).
+``CMAKE_REQUIRED_INCLUDES``
+ a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler.
+``CMAKE_REQUIRED_LINK_OPTIONS``
+ a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
+``CMAKE_REQUIRED_LIBRARIES``
+ a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. See policy :policy:`CMP0075`.
+``CMAKE_REQUIRED_QUIET``
+ execute quietly without messages.
+
+See modules :module:`CheckIncludeFile` and :module:`CheckIncludeFileCXX`
+to check for a single header file in ``C`` or ``CXX`` languages.
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_INCLUDE_FILES INCLUDE VARIABLE)
+ if(NOT DEFINED "${VARIABLE}")
+ set(CMAKE_CONFIGURABLE_FILE_CONTENT "/* */\n")
+
+ if("x${ARGN}" STREQUAL "x")
+ if(CMAKE_C_COMPILER_LOADED)
+ set(_lang C)
+ elseif(CMAKE_CXX_COMPILER_LOADED)
+ set(_lang CXX)
+ else()
+ message(FATAL_ERROR "CHECK_INCLUDE_FILES needs either C or CXX language enabled.\n")
+ endif()
+ elseif("x${ARGN}" MATCHES "^xLANGUAGE;([a-zA-Z]+)$")
+ set(_lang "${CMAKE_MATCH_1}")
+ elseif("x${ARGN}" MATCHES "^xLANGUAGE$")
+ message(FATAL_ERROR "No languages listed for LANGUAGE option.\nSupported languages: C, CXX.\n")
+ else()
+ message(FATAL_ERROR "Unknown arguments:\n ${ARGN}\n")
+ endif()
+
+ if(_lang STREQUAL "C")
+ set(src ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckIncludeFiles/${VARIABLE}.c)
+ elseif(_lang STREQUAL "CXX")
+ set(src ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckIncludeFiles/${VARIABLE}.cpp)
+ else()
+ message(FATAL_ERROR "Unknown language:\n ${_lang}\nSupported languages: C, CXX.\n")
+ endif()
+
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_INCLUDE_FILES_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_INCLUDE_FILES_INCLUDE_DIRS)
+ endif()
+ set(CHECK_INCLUDE_FILES_CONTENT "/* */\n")
+ set(MACRO_CHECK_INCLUDE_FILES_FLAGS ${CMAKE_REQUIRED_FLAGS})
+ foreach(FILE ${INCLUDE})
+ string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT
+ "#include <${FILE}>\n")
+ endforeach()
+ string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT
+ "\n\nint main(void){return 0;}\n")
+ configure_file("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
+ "${src}" @ONLY)
+
+ set(_INCLUDE ${INCLUDE}) # remove empty elements
+ if("${_INCLUDE}" MATCHES "^([^;]+);.+;([^;]+)$")
+ list(LENGTH _INCLUDE _INCLUDE_LEN)
+ set(_description "${_INCLUDE_LEN} include files ${CMAKE_MATCH_1}, ..., ${CMAKE_MATCH_2}")
+ elseif("${_INCLUDE}" MATCHES "^([^;]+);([^;]+)$")
+ set(_description "include files ${CMAKE_MATCH_1}, ${CMAKE_MATCH_2}")
+ else()
+ set(_description "include file ${_INCLUDE}")
+ endif()
+
+ set(_CIF_LINK_OPTIONS)
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(_CIF_LINK_OPTIONS LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ endif()
+
+ set(_CIF_LINK_LIBRARIES "")
+ if(CMAKE_REQUIRED_LIBRARIES)
+ cmake_policy(GET CMP0075 _CIF_CMP0075
+ PARENT_SCOPE # undocumented, do not use outside of CMake
+ )
+ if("x${_CIF_CMP0075}x" STREQUAL "xNEWx")
+ set(_CIF_LINK_LIBRARIES LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ elseif("x${_CIF_CMP0075}x" STREQUAL "xOLDx")
+ elseif(NOT _CIF_CMP0075_WARNED)
+ set(_CIF_CMP0075_WARNED 1)
+ message(AUTHOR_WARNING
+ "Policy CMP0075 is not set: Include file check macros honor CMAKE_REQUIRED_LIBRARIES. "
+ "Run \"cmake --help-policy CMP0075\" for policy details. "
+ "Use the cmake_policy command to set the policy and suppress this warning."
+ "\n"
+ "CMAKE_REQUIRED_LIBRARIES is set to:\n"
+ " ${CMAKE_REQUIRED_LIBRARIES}\n"
+ "For compatibility with CMake 3.11 and below this check is ignoring it."
+ )
+ endif()
+ unset(_CIF_CMP0075)
+ endif()
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Looking for ${_description}")
+ endif()
+ try_compile(${VARIABLE}
+ ${CMAKE_BINARY_DIR}
+ ${src}
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${_CIF_LINK_OPTIONS}
+ ${_CIF_LINK_LIBRARIES}
+ CMAKE_FLAGS
+ -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILES_FLAGS}
+ "${CHECK_INCLUDE_FILES_INCLUDE_DIRS}"
+ OUTPUT_VARIABLE OUTPUT)
+ unset(_CIF_LINK_OPTIONS)
+ unset(_CIF_LINK_LIBRARIES)
+ if(${VARIABLE})
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "found")
+ endif()
+ set(${VARIABLE} 1 CACHE INTERNAL "Have include ${INCLUDE}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if files ${INCLUDE} "
+ "exist passed with the following output:\n"
+ "${OUTPUT}\n\n")
+ else()
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "not found")
+ endif()
+ set(${VARIABLE} "" CACHE INTERNAL "Have includes ${INCLUDE}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if files ${INCLUDE} "
+ "exist failed with the following output:\n"
+ "${OUTPUT}\nSource:\n${CMAKE_CONFIGURABLE_FILE_CONTENT}\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/CheckLanguage.cmake b/share/cmake-3.17/Modules/CheckLanguage.cmake
new file mode 100644
index 0000000..997cc8d
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckLanguage.cmake
@@ -0,0 +1,106 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckLanguage
+-------------
+
+Check if a language can be enabled
+
+Usage:
+
+::
+
+ check_language(<lang>)
+
+where ``<lang>`` is a language that may be passed to :command:`enable_language`
+such as ``Fortran``. If :variable:`CMAKE_<LANG>_COMPILER` is already defined
+the check does nothing. Otherwise it tries enabling the language in a
+test project. The result is cached in :variable:`CMAKE_<LANG>_COMPILER`
+as the compiler that was found, or ``NOTFOUND`` if the language cannot be
+enabled. For CUDA which can have an explicit host compiler, the cache
+:variable:`CMAKE_CUDA_HOST_COMPILER` variable will be set if it was required
+for compilation.
+
+Example:
+
+::
+
+ check_language(Fortran)
+ if(CMAKE_Fortran_COMPILER)
+ enable_language(Fortran)
+ else()
+ message(STATUS "No Fortran support")
+ endif()
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(check_language lang)
+ if(NOT DEFINED CMAKE_${lang}_COMPILER)
+ set(_desc "Looking for a ${lang} compiler")
+ message(CHECK_START "${_desc}")
+ file(REMOVE_RECURSE ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang})
+
+ set(extra_compiler_variables)
+ if(lang STREQUAL CUDA)
+ set(extra_compiler_variables "set(CMAKE_CUDA_HOST_COMPILER \\\"\${CMAKE_CUDA_HOST_COMPILER}\\\")")
+ endif()
+
+ set(content
+ "cmake_minimum_required(VERSION ${CMAKE_VERSION})
+project(Check${lang} ${lang})
+file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\"
+ \"set(CMAKE_${lang}_COMPILER \\\"\${CMAKE_${lang}_COMPILER}\\\")\\n\"
+ \"${extra_compiler_variables}\\n\"
+ )"
+ )
+
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}/CMakeLists.txt"
+ "${content}")
+ if(CMAKE_GENERATOR_INSTANCE)
+ set(_D_CMAKE_GENERATOR_INSTANCE "-DCMAKE_GENERATOR_INSTANCE:INTERNAL=${CMAKE_GENERATOR_INSTANCE}")
+ else()
+ set(_D_CMAKE_GENERATOR_INSTANCE "")
+ endif()
+ if(CMAKE_GENERATOR MATCHES "^(Xcode$|Green Hills MULTI$|Visual Studio)")
+ set(_D_CMAKE_MAKE_PROGRAM "")
+ else()
+ set(_D_CMAKE_MAKE_PROGRAM "-DCMAKE_MAKE_PROGRAM:FILEPATH=${CMAKE_MAKE_PROGRAM}")
+ endif()
+ execute_process(
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}
+ COMMAND ${CMAKE_COMMAND} . -G ${CMAKE_GENERATOR}
+ -A "${CMAKE_GENERATOR_PLATFORM}"
+ -T "${CMAKE_GENERATOR_TOOLSET}"
+ ${_D_CMAKE_GENERATOR_INSTANCE}
+ ${_D_CMAKE_MAKE_PROGRAM}
+ OUTPUT_VARIABLE output
+ ERROR_VARIABLE output
+ RESULT_VARIABLE result
+ )
+ include(${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}/result.cmake OPTIONAL)
+ if(CMAKE_${lang}_COMPILER AND "${result}" STREQUAL "0")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "${_desc} passed with the following output:\n"
+ "${output}\n")
+ set(_CHECK_COMPILER_STATUS CHECK_PASS)
+ else()
+ set(CMAKE_${lang}_COMPILER NOTFOUND)
+ set(_CHECK_COMPILER_STATUS CHECK_FAIL)
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "${_desc} failed with the following output:\n"
+ "${output}\n")
+ endif()
+ message(${_CHECK_COMPILER_STATUS} "${CMAKE_${lang}_COMPILER}")
+ set(CMAKE_${lang}_COMPILER "${CMAKE_${lang}_COMPILER}" CACHE FILEPATH "${lang} compiler")
+ mark_as_advanced(CMAKE_${lang}_COMPILER)
+
+ if(CMAKE_${lang}_HOST_COMPILER)
+ message(STATUS "Looking for a ${lang} host compiler - ${CMAKE_${lang}_HOST_COMPILER}")
+ set(CMAKE_${lang}_HOST_COMPILER "${CMAKE_${lang}_HOST_COMPILER}" CACHE FILEPATH "${lang} host compiler")
+ mark_as_advanced(CMAKE_${lang}_HOST_COMPILER)
+ endif()
+
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/CheckLibraryExists.cmake b/share/cmake-3.17/Modules/CheckLibraryExists.cmake
new file mode 100644
index 0000000..6470dfd
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckLibraryExists.cmake
@@ -0,0 +1,99 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckLibraryExists
+------------------
+
+Check if the function exists.
+
+.. command:: CHECK_LIBRARY_EXISTS
+
+ .. code-block:: cmake
+
+ CHECK_LIBRARY_EXISTS(LIBRARY FUNCTION LOCATION VARIABLE)
+
+ ::
+
+ LIBRARY - the name of the library you are looking for
+ FUNCTION - the name of the function
+ LOCATION - location where the library should be found
+ VARIABLE - variable to store the result
+ Will be created as an internal cache variable.
+
+
+
+The following variables may be set before calling this macro to modify
+the way the check is run:
+
+::
+
+ CMAKE_REQUIRED_FLAGS = string of compile command line flags
+ CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
+ CMAKE_REQUIRED_LINK_OPTIONS = list of options to pass to link command
+ CMAKE_REQUIRED_LIBRARIES = list of libraries to link
+ CMAKE_REQUIRED_QUIET = execute quietly without messages
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_LIBRARY_EXISTS LIBRARY FUNCTION LOCATION VARIABLE)
+ if(NOT DEFINED "${VARIABLE}")
+ set(MACRO_CHECK_LIBRARY_EXISTS_DEFINITION
+ "-DCHECK_FUNCTION_EXISTS=${FUNCTION} ${CMAKE_REQUIRED_FLAGS}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Looking for ${FUNCTION} in ${LIBRARY}")
+ endif()
+ set(CHECK_LIBRARY_EXISTS_LINK_OPTIONS)
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_LIBRARY_EXISTS_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ endif()
+ set(CHECK_LIBRARY_EXISTS_LIBRARIES ${LIBRARY})
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_LIBRARY_EXISTS_LIBRARIES
+ ${CHECK_LIBRARY_EXISTS_LIBRARIES} ${CMAKE_REQUIRED_LIBRARIES})
+ endif()
+
+ if(CMAKE_C_COMPILER_LOADED)
+ set(_cle_source ${CMAKE_ROOT}/Modules/CheckFunctionExists.c)
+ elseif(CMAKE_CXX_COMPILER_LOADED)
+ set(_cle_source ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckLibraryExists/CheckFunctionExists.cxx)
+ configure_file(${CMAKE_ROOT}/Modules/CheckFunctionExists.c "${_cle_source}" COPYONLY)
+ else()
+ message(FATAL_ERROR "CHECK_FUNCTION_EXISTS needs either C or CXX language enabled")
+ endif()
+
+ try_compile(${VARIABLE}
+ ${CMAKE_BINARY_DIR}
+ ${_cle_source}
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_LIBRARY_EXISTS_LINK_OPTIONS}
+ LINK_LIBRARIES ${CHECK_LIBRARY_EXISTS_LIBRARIES}
+ CMAKE_FLAGS
+ -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_LIBRARY_EXISTS_DEFINITION}
+ -DLINK_DIRECTORIES:STRING=${LOCATION}
+ OUTPUT_VARIABLE OUTPUT)
+ unset(_cle_source)
+
+ if(${VARIABLE})
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "found")
+ endif()
+ set(${VARIABLE} 1 CACHE INTERNAL "Have library ${LIBRARY}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the function ${FUNCTION} exists in the ${LIBRARY} "
+ "passed with the following output:\n"
+ "${OUTPUT}\n\n")
+ else()
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "not found")
+ endif()
+ set(${VARIABLE} "" CACHE INTERNAL "Have library ${LIBRARY}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the function ${FUNCTION} exists in the ${LIBRARY} "
+ "failed with the following output:\n"
+ "${OUTPUT}\n\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/CheckLibraryExists.lists.in b/share/cmake-3.17/Modules/CheckLibraryExists.lists.in
index 741b87d..741b87d 100644
--- a/share/cmake-3.16/Modules/CheckLibraryExists.lists.in
+++ b/share/cmake-3.17/Modules/CheckLibraryExists.lists.in
diff --git a/share/cmake-3.16/Modules/CheckOBJCCompilerFlag.cmake b/share/cmake-3.17/Modules/CheckOBJCCompilerFlag.cmake
index 1d975da..1d975da 100644
--- a/share/cmake-3.16/Modules/CheckOBJCCompilerFlag.cmake
+++ b/share/cmake-3.17/Modules/CheckOBJCCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/CheckOBJCSourceCompiles.cmake b/share/cmake-3.17/Modules/CheckOBJCSourceCompiles.cmake
new file mode 100644
index 0000000..601f1fa
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckOBJCSourceCompiles.cmake
@@ -0,0 +1,145 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckOBJCSourceCompiles
+-----------------------
+
+Check if given Objective-C source compiles and links into an executable.
+
+.. command:: check_objc_source_compiles
+
+ .. code-block:: cmake
+
+ check_objc_source_compiles(<code> <resultVar>
+ [FAIL_REGEX <regex1> [<regex2>...]])
+
+ Check that the source supplied in ``<code>`` can be compiled as a Objectie-C source
+ file and linked as an executable (so it must contain at least a ``main()``
+ function). The result will be stored in the internal cache variable specified
+ by ``<resultVar>``, with a boolean true value for success and boolean false
+ for failure. If ``FAIL_REGEX`` is provided, then failure is determined by
+ checking if anything in the output matches any of the specified regular
+ expressions.
+
+ The underlying check is performed by the :command:`try_compile` command. The
+ compile and link commands can be influenced by setting any of the following
+ variables prior to calling ``check_objc_source_compiles()``:
+
+ ``CMAKE_REQUIRED_FLAGS``
+ Additional flags to pass to the compiler. Note that the contents of
+ :variable:`CMAKE_OBJC_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
+ configuration-specific variable are automatically added to the compiler
+ command before the contents of ``CMAKE_REQUIRED_FLAGS``.
+
+ ``CMAKE_REQUIRED_DEFINITIONS``
+ A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
+ ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
+ ``<resultVar>`` will also be added automatically.
+
+ ``CMAKE_REQUIRED_INCLUDES``
+ A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler. These will be the only header search paths used by
+ ``try_compile()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
+ directory property will be ignored.
+
+ ``CMAKE_REQUIRED_LINK_OPTIONS``
+ A :ref:`;-list <CMake Language Lists>` of options to add to the link
+ command (see :command:`try_compile` for further details).
+
+ ``CMAKE_REQUIRED_LIBRARIES``
+ A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. These can be the name of system libraries or they can be
+ :ref:`Imported Targets <Imported Targets>` (see :command:`try_compile` for
+ further details).
+
+ ``CMAKE_REQUIRED_QUIET``
+ If this variable evaluates to a boolean true value, all status messages
+ associated with the check will be suppressed.
+
+ The check is only performed once, with the result cached in the variable
+ named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+ value rather than performing the check again, even if the ``<code>`` changes.
+ In order to force the check to be re-evaluated, the variable named by
+ ``<resultVar>`` must be manually removed from the cache.
+
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_OBJC_SOURCE_COMPILES SOURCE VAR)
+ if(NOT DEFINED "${VAR}")
+ set(_FAIL_REGEX)
+ set(_key)
+ foreach(arg ${ARGN})
+ if("${arg}" MATCHES "^(FAIL_REGEX)$")
+ set(_key "${arg}")
+ elseif(_key)
+ list(APPEND _${_key} "${arg}")
+ else()
+ message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
+ endif()
+ endforeach()
+ set(MACRO_CHECK_FUNCTION_DEFINITIONS
+ "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_OBJC_SOURCE_COMPILES_ADD_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_OBJC_SOURCE_COMPILES_ADD_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_OBJC_SOURCE_COMPILES_ADD_LIBRARIES
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_OBJC_SOURCE_COMPILES_ADD_LIBRARIES)
+ endif()
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_OBJC_SOURCE_COMPILES_ADD_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_OBJC_SOURCE_COMPILES_ADD_INCLUDES)
+ endif()
+ file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.m"
+ "${SOURCE}\n")
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Performing Test ${VAR}")
+ endif()
+ try_compile(${VAR}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.m
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_OBJC_SOURCE_COMPILES_ADD_LINK_OPTIONS}
+ ${CHECK_OBJC_SOURCE_COMPILES_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+ "${CHECK_OBJC_SOURCE_COMPILES_ADD_INCLUDES}"
+ OUTPUT_VARIABLE OUTPUT)
+
+ foreach(_regex ${_FAIL_REGEX})
+ if("${OUTPUT}" MATCHES "${_regex}")
+ set(${VAR} 0)
+ endif()
+ endforeach()
+
+ if(${VAR})
+ set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "Success")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Performing Objective-C SOURCE FILE Test ${VAR} succeeded with the following output:\n"
+ "${OUTPUT}\n"
+ "Source file was:\n${SOURCE}\n")
+ else()
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "Failed")
+ endif()
+ set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Performing Objective-C SOURCE FILE Test ${VAR} failed with the following output:\n"
+ "${OUTPUT}\n"
+ "Source file was:\n${SOURCE}\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/CheckOBJCSourceRuns.cmake b/share/cmake-3.17/Modules/CheckOBJCSourceRuns.cmake
new file mode 100644
index 0000000..6684693
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckOBJCSourceRuns.cmake
@@ -0,0 +1,145 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckOBJCSourceRuns
+-------------------
+
+Check if given Objective-C source compiles and links into an executable and can
+subsequently be run.
+
+.. command:: check_objc_source_runs
+
+ .. code-block:: cmake
+
+ check_objc_source_runs(<code> <resultVar>)
+
+ Check that the source supplied in ``<code>`` can be compiled as a Objective-C source
+ file, linked as an executable and then run. The ``<code>`` must contain at
+ least a ``main()`` function. If the ``<code>`` could be built and run
+ successfully, the internal cache variable specified by ``<resultVar>`` will
+ be set to 1, otherwise it will be set to an value that evaluates to boolean
+ false (e.g. an empty string or an error message).
+
+ The underlying check is performed by the :command:`try_run` command. The
+ compile and link commands can be influenced by setting any of the following
+ variables prior to calling ``check_objc_source_runs()``:
+
+ ``CMAKE_REQUIRED_FLAGS``
+ Additional flags to pass to the compiler. Note that the contents of
+ :variable:`CMAKE_OBJC_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
+ configuration-specific variable are automatically added to the compiler
+ command before the contents of ``CMAKE_REQUIRED_FLAGS``.
+
+ ``CMAKE_REQUIRED_DEFINITIONS``
+ A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
+ ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
+ ``<resultVar>`` will also be added automatically.
+
+ ``CMAKE_REQUIRED_INCLUDES``
+ A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler. These will be the only header search paths used by
+ ``try_run()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
+ directory property will be ignored.
+
+ ``CMAKE_REQUIRED_LINK_OPTIONS``
+ A :ref:`;-list <CMake Language Lists>` of options to add to the link
+ command (see :command:`try_run` for further details).
+
+ ``CMAKE_REQUIRED_LIBRARIES``
+ A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. These can be the name of system libraries or they can be
+ :ref:`Imported Targets <Imported Targets>` (see :command:`try_run` for
+ further details).
+
+ ``CMAKE_REQUIRED_QUIET``
+ If this variable evaluates to a boolean true value, all status messages
+ associated with the check will be suppressed.
+
+ The check is only performed once, with the result cached in the variable
+ named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+ value rather than performing the check again, even if the ``<code>`` changes.
+ In order to force the check to be re-evaluated, the variable named by
+ ``<resultVar>`` must be manually removed from the cache.
+
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_OBJC_SOURCE_RUNS SOURCE VAR)
+ if(NOT DEFINED "${VAR}")
+ set(MACRO_CHECK_FUNCTION_DEFINITIONS
+ "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_OBJC_SOURCE_COMPILES_ADD_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_OBJC_SOURCE_COMPILES_ADD_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_OBJC_SOURCE_COMPILES_ADD_LIBRARIES
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_OBJC_SOURCE_COMPILES_ADD_LIBRARIES)
+ endif()
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_OBJC_SOURCE_COMPILES_ADD_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_OBJC_SOURCE_COMPILES_ADD_INCLUDES)
+ endif()
+ file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.m"
+ "${SOURCE}\n")
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Performing Test ${VAR}")
+ endif()
+ try_run(${VAR}_EXITCODE ${VAR}_COMPILED
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.m
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_OBJC_SOURCE_COMPILES_ADD_LINK_OPTIONS}
+ ${CHECK_OBJC_SOURCE_COMPILES_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+ -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
+ "${CHECK_OBJC_SOURCE_COMPILES_ADD_INCLUDES}"
+ COMPILE_OUTPUT_VARIABLE OUTPUT
+ RUN_OUTPUT_VARIABLE RUN_OUTPUT)
+ # if it did not compile make the return value fail code of 1
+ if(NOT ${VAR}_COMPILED)
+ set(${VAR}_EXITCODE 1)
+ endif()
+ # if the return value was 0 then it worked
+ if("${${VAR}_EXITCODE}" EQUAL 0)
+ set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "Success")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Performing Objective-C SOURCE FILE Test ${VAR} succeeded with the following compile output:\n"
+ "${OUTPUT}\n"
+ "...and run output:\n"
+ "${RUN_OUTPUT}\n"
+ "Return value: ${${VAR}}\n"
+ "Source file was:\n${SOURCE}\n")
+ else()
+ if(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
+ set(${VAR} "${${VAR}_EXITCODE}")
+ else()
+ set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
+ endif()
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "Failed")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Performing Objective-C SOURCE FILE Test ${VAR} failed with the following compile output:\n"
+ "${OUTPUT}\n"
+ "...and run output:\n"
+ "${RUN_OUTPUT}\n"
+ "Return value: ${${VAR}_EXITCODE}\n"
+ "Source file was:\n${SOURCE}\n")
+
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/CheckOBJCXXCompilerFlag.cmake b/share/cmake-3.17/Modules/CheckOBJCXXCompilerFlag.cmake
index c32741b..c32741b 100644
--- a/share/cmake-3.16/Modules/CheckOBJCXXCompilerFlag.cmake
+++ b/share/cmake-3.17/Modules/CheckOBJCXXCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/CheckOBJCXXSourceCompiles.cmake b/share/cmake-3.17/Modules/CheckOBJCXXSourceCompiles.cmake
new file mode 100644
index 0000000..2ee79f4
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckOBJCXXSourceCompiles.cmake
@@ -0,0 +1,146 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckOBJCXXSourceCompiles
+-------------------------
+
+Check if given Objective-C++ source compiles and links into an executable.
+
+.. command:: check_objcxx_source_compiles
+
+ .. code-block:: cmake
+
+ check_objcxx_source_compiles(<code> <resultVar>
+ [FAIL_REGEX <regex1> [<regex2>...]])
+
+ Check that the source supplied in ``<code>`` can be compiled as a Objective-C++ source
+ file and linked as an executable (so it must contain at least a ``main()``
+ function). The result will be stored in the internal cache variable specified
+ by ``<resultVar>``, with a boolean true value for success and boolean false
+ for failure. If ``FAIL_REGEX`` is provided, then failure is determined by
+ checking if anything in the output matches any of the specified regular
+ expressions.
+
+ The underlying check is performed by the :command:`try_compile` command. The
+ compile and link commands can be influenced by setting any of the following
+ variables prior to calling ``check_objcxx_source_compiles()``:
+
+ ``CMAKE_REQUIRED_FLAGS``
+ Additional flags to pass to the compiler. Note that the contents of
+ :variable:`CMAKE_OBJCXX_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
+ configuration-specific variable are automatically added to the compiler
+ command before the contents of ``CMAKE_REQUIRED_FLAGS``.
+
+ ``CMAKE_REQUIRED_DEFINITIONS``
+ A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
+ ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
+ ``<resultVar>`` will also be added automatically.
+
+ ``CMAKE_REQUIRED_INCLUDES``
+ A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler. These will be the only header search paths used by
+ ``try_compile()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
+ directory property will be ignored.
+
+ ``CMAKE_REQUIRED_LINK_OPTIONS``
+ A :ref:`;-list <CMake Language Lists>` of options to add to the link
+ command (see :command:`try_compile` for further details).
+
+ ``CMAKE_REQUIRED_LIBRARIES``
+ A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. These can be the name of system libraries or they can be
+ :ref:`Imported Targets <Imported Targets>` (see :command:`try_compile` for
+ further details).
+
+ ``CMAKE_REQUIRED_QUIET``
+ If this variable evaluates to a boolean true value, all status messages
+ associated with the check will be suppressed.
+
+ The check is only performed once, with the result cached in the variable
+ named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+ value rather than performing the check again, even if the ``<code>`` changes.
+ In order to force the check to be re-evaluated, the variable named by
+ ``<resultVar>`` must be manually removed from the cache.
+
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_OBJCXX_SOURCE_COMPILES SOURCE VAR)
+ if(NOT DEFINED "${VAR}")
+ set(_FAIL_REGEX)
+ set(_key)
+ foreach(arg ${ARGN})
+ if("${arg}" MATCHES "^(FAIL_REGEX)$")
+ set(_key "${arg}")
+ elseif(_key)
+ list(APPEND _${_key} "${arg}")
+ else()
+ message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
+ endif()
+ endforeach()
+
+ set(MACRO_CHECK_FUNCTION_DEFINITIONS
+ "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LIBRARIES
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LIBRARIES)
+ endif()
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_INCLUDES)
+ endif()
+ file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.mm"
+ "${SOURCE}\n")
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Performing Test ${VAR}")
+ endif()
+ try_compile(${VAR}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.mm
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_OBJCXX_SOURCE_COMPILES_ADD_LINK_OPTIONS}
+ ${CHECK_OBJCXX_SOURCE_COMPILES_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+ "${CHECK_OBJCXX_SOURCE_COMPILES_ADD_INCLUDES}"
+ OUTPUT_VARIABLE OUTPUT)
+
+ foreach(_regex ${_FAIL_REGEX})
+ if("${OUTPUT}" MATCHES "${_regex}")
+ set(${VAR} 0)
+ endif()
+ endforeach()
+
+ if(${VAR})
+ set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "Success")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Performing Objective-C++ SOURCE FILE Test ${VAR} succeeded with the following output:\n"
+ "${OUTPUT}\n"
+ "Source file was:\n${SOURCE}\n")
+ else()
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "Failed")
+ endif()
+ set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Performing Objective-C++ SOURCE FILE Test ${VAR} failed with the following output:\n"
+ "${OUTPUT}\n"
+ "Source file was:\n${SOURCE}\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/CheckOBJCXXSourceRuns.cmake b/share/cmake-3.17/Modules/CheckOBJCXXSourceRuns.cmake
new file mode 100644
index 0000000..7f7e04f
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckOBJCXXSourceRuns.cmake
@@ -0,0 +1,145 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckOBJCXXSourceRuns
+---------------------
+
+Check if given Objective-C++ source compiles and links into an executable and can
+subsequently be run.
+
+.. command:: check_objcxx_source_runs
+
+ .. code-block:: cmake
+
+ check_objcxx_source_runs(<code> <resultVar>)
+
+ Check that the source supplied in ``<code>`` can be compiled as a Objective-C++ source
+ file, linked as an executable and then run. The ``<code>`` must contain at
+ least a ``main()`` function. If the ``<code>`` could be built and run
+ successfully, the internal cache variable specified by ``<resultVar>`` will
+ be set to 1, otherwise it will be set to an value that evaluates to boolean
+ false (e.g. an empty string or an error message).
+
+ The underlying check is performed by the :command:`try_run` command. The
+ compile and link commands can be influenced by setting any of the following
+ variables prior to calling ``check_objcxx_source_runs()``:
+
+ ``CMAKE_REQUIRED_FLAGS``
+ Additional flags to pass to the compiler. Note that the contents of
+ :variable:`CMAKE_OBJCXX_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
+ configuration-specific variable are automatically added to the compiler
+ command before the contents of ``CMAKE_REQUIRED_FLAGS``.
+
+ ``CMAKE_REQUIRED_DEFINITIONS``
+ A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
+ ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
+ ``<resultVar>`` will also be added automatically.
+
+ ``CMAKE_REQUIRED_INCLUDES``
+ A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler. These will be the only header search paths used by
+ ``try_run()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
+ directory property will be ignored.
+
+ ``CMAKE_REQUIRED_LINK_OPTIONS``
+ A :ref:`;-list <CMake Language Lists>` of options to add to the link
+ command (see :command:`try_run` for further details).
+
+ ``CMAKE_REQUIRED_LIBRARIES``
+ A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. These can be the name of system libraries or they can be
+ :ref:`Imported Targets <Imported Targets>` (see :command:`try_run` for
+ further details).
+
+ ``CMAKE_REQUIRED_QUIET``
+ If this variable evaluates to a boolean true value, all status messages
+ associated with the check will be suppressed.
+
+ The check is only performed once, with the result cached in the variable
+ named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
+ value rather than performing the check again, even if the ``<code>`` changes.
+ In order to force the check to be re-evaluated, the variable named by
+ ``<resultVar>`` must be manually removed from the cache.
+
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_OBJCXX_SOURCE_RUNS SOURCE VAR)
+ if(NOT DEFINED "${VAR}")
+ set(MACRO_CHECK_FUNCTION_DEFINITIONS
+ "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LIBRARIES
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_LIBRARIES)
+ endif()
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CHECK_OBJCXX_SOURCE_COMPILES_ADD_INCLUDES)
+ endif()
+ file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.mm"
+ "${SOURCE}\n")
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Performing Test ${VAR}")
+ endif()
+ try_run(${VAR}_EXITCODE ${VAR}_COMPILED
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.mm
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_OBJCXX_SOURCE_COMPILES_ADD_LINK_OPTIONS}
+ ${CHECK_OBJCXX_SOURCE_COMPILES_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+ -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
+ "${CHECK_OBJCXX_SOURCE_COMPILES_ADD_INCLUDES}"
+ COMPILE_OUTPUT_VARIABLE OUTPUT
+ RUN_OUTPUT_VARIABLE RUN_OUTPUT)
+
+ # if it did not compile make the return value fail code of 1
+ if(NOT ${VAR}_COMPILED)
+ set(${VAR}_EXITCODE 1)
+ endif()
+ # if the return value was 0 then it worked
+ if("${${VAR}_EXITCODE}" EQUAL 0)
+ set(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "Success")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Performing Objective-C++ SOURCE FILE Test ${VAR} succeeded with the following output:\n"
+ "${OUTPUT}\n"
+ "...and run output:\n"
+ "${RUN_OUTPUT}\n"
+ "Return value: ${${VAR}}\n"
+ "Source file was:\n${SOURCE}\n")
+ else()
+ if(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
+ set(${VAR} "${${VAR}_EXITCODE}")
+ else()
+ set(${VAR} "" CACHE INTERNAL "Test ${VAR}")
+ endif()
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "Failed")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Performing Objective-C++ SOURCE FILE Test ${VAR} failed with the following output:\n"
+ "${OUTPUT}\n"
+ "...and run output:\n"
+ "${RUN_OUTPUT}\n"
+ "Return value: ${${VAR}_EXITCODE}\n"
+ "Source file was:\n${SOURCE}\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/CheckPIESupported.cmake b/share/cmake-3.17/Modules/CheckPIESupported.cmake
index 6d63f0b..6d63f0b 100644
--- a/share/cmake-3.16/Modules/CheckPIESupported.cmake
+++ b/share/cmake-3.17/Modules/CheckPIESupported.cmake
diff --git a/share/cmake-3.16/Modules/CheckPrototypeDefinition.c.in b/share/cmake-3.17/Modules/CheckPrototypeDefinition.c.in
index a97344a..a97344a 100644
--- a/share/cmake-3.16/Modules/CheckPrototypeDefinition.c.in
+++ b/share/cmake-3.17/Modules/CheckPrototypeDefinition.c.in
diff --git a/share/cmake-3.17/Modules/CheckPrototypeDefinition.cmake b/share/cmake-3.17/Modules/CheckPrototypeDefinition.cmake
new file mode 100644
index 0000000..8b06403
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckPrototypeDefinition.cmake
@@ -0,0 +1,125 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckPrototypeDefinition
+------------------------
+
+Check if the prototype we expect is correct.
+
+.. command:: check_prototype_definition
+
+ .. code-block:: cmake
+
+ check_prototype_definition(FUNCTION PROTOTYPE RETURN HEADER VARIABLE)
+
+ ::
+
+ FUNCTION - The name of the function (used to check if prototype exists)
+ PROTOTYPE- The prototype to check.
+ RETURN - The return value of the function.
+ HEADER - The header files required.
+ VARIABLE - The variable to store the result.
+ Will be created as an internal cache variable.
+
+ Example:
+
+ .. code-block:: cmake
+
+ check_prototype_definition(getpwent_r
+ "struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen)"
+ "NULL"
+ "unistd.h;pwd.h"
+ SOLARIS_GETPWENT_R)
+
+The following variables may be set before calling this function to modify
+the way the check is run:
+
+::
+
+ CMAKE_REQUIRED_FLAGS = string of compile command line flags
+ CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
+ CMAKE_REQUIRED_INCLUDES = list of include directories
+ CMAKE_REQUIRED_LINK_OPTIONS = list of options to pass to link command
+ CMAKE_REQUIRED_LIBRARIES = list of libraries to link
+ CMAKE_REQUIRED_QUIET = execute quietly without messages
+#]=======================================================================]
+
+#
+
+get_filename_component(__check_proto_def_dir "${CMAKE_CURRENT_LIST_FILE}" PATH)
+
+include_guard(GLOBAL)
+
+function(check_prototype_definition _FUNCTION _PROTOTYPE _RETURN _HEADER _VARIABLE)
+
+ if (NOT DEFINED ${_VARIABLE})
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Checking prototype ${_FUNCTION} for ${_VARIABLE}")
+ endif()
+ set(CHECK_PROTOTYPE_DEFINITION_CONTENT "/* */\n")
+
+ set(CHECK_PROTOTYPE_DEFINITION_FLAGS ${CMAKE_REQUIRED_FLAGS})
+ if (CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_PROTOTYPE_DEFINITION_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_PROTOTYPE_DEFINITION_LINK_OPTIONS)
+ endif()
+ if (CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_PROTOTYPE_DEFINITION_LIBS
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_PROTOTYPE_DEFINITION_LIBS)
+ endif()
+ if (CMAKE_REQUIRED_INCLUDES)
+ set(CMAKE_SYMBOL_EXISTS_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CMAKE_SYMBOL_EXISTS_INCLUDES)
+ endif()
+
+ foreach(_FILE ${_HEADER})
+ string(APPEND CHECK_PROTOTYPE_DEFINITION_HEADER
+ "#include <${_FILE}>\n")
+ endforeach()
+
+ set(CHECK_PROTOTYPE_DEFINITION_SYMBOL ${_FUNCTION})
+ set(CHECK_PROTOTYPE_DEFINITION_PROTO ${_PROTOTYPE})
+ set(CHECK_PROTOTYPE_DEFINITION_RETURN ${_RETURN})
+
+ configure_file("${__check_proto_def_dir}/CheckPrototypeDefinition.c.in"
+ "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckPrototypeDefinition.c" @ONLY)
+
+ file(READ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckPrototypeDefinition.c _SOURCE)
+
+ try_compile(${_VARIABLE}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckPrototypeDefinition.c
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_PROTOTYPE_DEFINITION_LINK_OPTIONS}
+ ${CHECK_PROTOTYPE_DEFINITION_LIBS}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CHECK_PROTOTYPE_DEFINITION_FLAGS}
+ "${CMAKE_SYMBOL_EXISTS_INCLUDES}"
+ OUTPUT_VARIABLE OUTPUT)
+
+ if (${_VARIABLE})
+ set(${_VARIABLE} 1 CACHE INTERNAL "Have correct prototype for ${_FUNCTION}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "True")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the prototype ${_FUNCTION} exists for ${_VARIABLE} passed with the following output:\n"
+ "${OUTPUT}\n\n")
+ else ()
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "False")
+ endif()
+ set(${_VARIABLE} 0 CACHE INTERNAL "Have correct prototype for ${_FUNCTION}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the prototype ${_FUNCTION} exists for ${_VARIABLE} failed with the following output:\n"
+ "${OUTPUT}\n\n${_SOURCE}\n\n")
+ endif ()
+ endif()
+
+endfunction()
diff --git a/share/cmake-3.16/Modules/CheckSizeOf.cmake b/share/cmake-3.17/Modules/CheckSizeOf.cmake
index bd439e1..bd439e1 100644
--- a/share/cmake-3.16/Modules/CheckSizeOf.cmake
+++ b/share/cmake-3.17/Modules/CheckSizeOf.cmake
diff --git a/share/cmake-3.16/Modules/CheckStructHasMember.cmake b/share/cmake-3.17/Modules/CheckStructHasMember.cmake
index 842a8fd..842a8fd 100644
--- a/share/cmake-3.16/Modules/CheckStructHasMember.cmake
+++ b/share/cmake-3.17/Modules/CheckStructHasMember.cmake
diff --git a/share/cmake-3.17/Modules/CheckSymbolExists.cmake b/share/cmake-3.17/Modules/CheckSymbolExists.cmake
new file mode 100644
index 0000000..4f202c4
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckSymbolExists.cmake
@@ -0,0 +1,166 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckSymbolExists
+-----------------
+
+Provides a macro to check if a symbol exists as a function, variable,
+or macro in ``C``.
+
+.. command:: check_symbol_exists
+
+ .. code-block:: cmake
+
+ check_symbol_exists(<symbol> <files> <variable>)
+
+ Check that the ``<symbol>`` is available after including given header
+ ``<files>`` and store the result in a ``<variable>``. Specify the list
+ of files in one argument as a semicolon-separated list.
+ ``<variable>`` will be created as an internal cache variable.
+
+If the header files define the symbol as a macro it is considered
+available and assumed to work. If the header files declare the symbol
+as a function or variable then the symbol must also be available for
+linking (so intrinsics may not be detected).
+If the symbol is a type, enum value, or intrinsic it will not be recognized
+(consider using :module:`CheckTypeSize` or :module:`CheckCSourceCompiles`).
+If the check needs to be done in C++, consider using
+:module:`CheckCXXSymbolExists` instead.
+
+The following variables may be set before calling this macro to modify
+the way the check is run:
+
+``CMAKE_REQUIRED_FLAGS``
+ string of compile command line flags.
+``CMAKE_REQUIRED_DEFINITIONS``
+ a :ref:`;-list <CMake Language Lists>` of macros to define (-DFOO=bar).
+``CMAKE_REQUIRED_INCLUDES``
+ a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
+ the compiler.
+``CMAKE_REQUIRED_LINK_OPTIONS``
+ a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
+``CMAKE_REQUIRED_LIBRARIES``
+ a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
+ command. See policy :policy:`CMP0075`.
+``CMAKE_REQUIRED_QUIET``
+ execute quietly without messages.
+
+For example:
+
+.. code-block:: cmake
+
+ include(CheckSymbolExists)
+
+ # Check for macro SEEK_SET
+ check_symbol_exists(SEEK_SET "stdio.h" HAVE_SEEK_SET)
+ # Check for function fopen
+ check_symbol_exists(fopen "stdio.h" HAVE_FOPEN)
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
+
+macro(CHECK_SYMBOL_EXISTS SYMBOL FILES VARIABLE)
+ if(CMAKE_C_COMPILER_LOADED)
+ __CHECK_SYMBOL_EXISTS_IMPL("${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.c" "${SYMBOL}" "${FILES}" "${VARIABLE}" )
+ elseif(CMAKE_CXX_COMPILER_LOADED)
+ __CHECK_SYMBOL_EXISTS_IMPL("${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckSymbolExists.cxx" "${SYMBOL}" "${FILES}" "${VARIABLE}" )
+ else()
+ message(FATAL_ERROR "CHECK_SYMBOL_EXISTS needs either C or CXX language enabled")
+ endif()
+endmacro()
+
+macro(__CHECK_SYMBOL_EXISTS_IMPL SOURCEFILE SYMBOL FILES VARIABLE)
+ if(NOT DEFINED "${VARIABLE}" OR "x${${VARIABLE}}" STREQUAL "x${VARIABLE}")
+ set(CMAKE_CONFIGURABLE_FILE_CONTENT "/* */\n")
+ set(MACRO_CHECK_SYMBOL_EXISTS_FLAGS ${CMAKE_REQUIRED_FLAGS})
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_SYMBOL_EXISTS_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_SYMBOL_EXISTS_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_SYMBOL_EXISTS_LIBS
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_SYMBOL_EXISTS_LIBS)
+ endif()
+ if(CMAKE_REQUIRED_INCLUDES)
+ set(CMAKE_SYMBOL_EXISTS_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ else()
+ set(CMAKE_SYMBOL_EXISTS_INCLUDES)
+ endif()
+ foreach(FILE ${FILES})
+ string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT
+ "#include <${FILE}>\n")
+ endforeach()
+ string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT "
+int main(int argc, char** argv)
+{
+ (void)argv;")
+ set(_CSE_CHECK_NON_MACRO "return ((int*)(&${SYMBOL}))[argc];")
+ if("${SYMBOL}" MATCHES "^[a-zA-Z_][a-zA-Z0-9_]*$")
+ # The SYMBOL has a legal macro name. Test whether it exists as a macro.
+ string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT "
+#ifndef ${SYMBOL}
+ ${_CSE_CHECK_NON_MACRO}
+#else
+ (void)argc;
+ return 0;
+#endif")
+ else()
+ # The SYMBOL cannot be a macro (e.g., a template function).
+ string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT "
+ ${_CSE_CHECK_NON_MACRO}")
+ endif()
+ string(APPEND CMAKE_CONFIGURABLE_FILE_CONTENT "
+}")
+ unset(_CSE_CHECK_NON_MACRO)
+
+ configure_file("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
+ "${SOURCEFILE}" @ONLY)
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Looking for ${SYMBOL}")
+ endif()
+ try_compile(${VARIABLE}
+ ${CMAKE_BINARY_DIR}
+ "${SOURCEFILE}"
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_SYMBOL_EXISTS_LINK_OPTIONS}
+ ${CHECK_SYMBOL_EXISTS_LIBS}
+ CMAKE_FLAGS
+ -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_SYMBOL_EXISTS_FLAGS}
+ "${CMAKE_SYMBOL_EXISTS_INCLUDES}"
+ OUTPUT_VARIABLE OUTPUT)
+ if(${VARIABLE})
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "found")
+ endif()
+ set(${VARIABLE} 1 CACHE INTERNAL "Have symbol ${SYMBOL}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the ${SYMBOL} "
+ "exist passed with the following output:\n"
+ "${OUTPUT}\nFile ${SOURCEFILE}:\n"
+ "${CMAKE_CONFIGURABLE_FILE_CONTENT}\n")
+ else()
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "not found")
+ endif()
+ set(${VARIABLE} "" CACHE INTERNAL "Have symbol ${SYMBOL}")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the ${SYMBOL} "
+ "exist failed with the following output:\n"
+ "${OUTPUT}\nFile ${SOURCEFILE}:\n"
+ "${CMAKE_CONFIGURABLE_FILE_CONTENT}\n")
+ endif()
+ unset(CMAKE_CONFIGURABLE_FILE_CONTENT)
+ endif()
+endmacro()
+
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/CheckTypeSize.c.in b/share/cmake-3.17/Modules/CheckTypeSize.c.in
index 82035a3..82035a3 100644
--- a/share/cmake-3.16/Modules/CheckTypeSize.c.in
+++ b/share/cmake-3.17/Modules/CheckTypeSize.c.in
diff --git a/share/cmake-3.17/Modules/CheckTypeSize.cmake b/share/cmake-3.17/Modules/CheckTypeSize.cmake
new file mode 100644
index 0000000..2b07b7c
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckTypeSize.cmake
@@ -0,0 +1,270 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckTypeSize
+-------------
+
+Check sizeof a type
+
+.. command:: CHECK_TYPE_SIZE
+
+ .. code-block:: cmake
+
+ CHECK_TYPE_SIZE(TYPE VARIABLE [BUILTIN_TYPES_ONLY]
+ [LANGUAGE <language>])
+
+ Check if the type exists and determine its size. On return,
+ ``HAVE_${VARIABLE}`` holds the existence of the type, and ``${VARIABLE}``
+ holds one of the following:
+
+ ::
+
+ <size> = type has non-zero size <size>
+ "0" = type has arch-dependent size (see below)
+ "" = type does not exist
+
+ Both ``HAVE_${VARIABLE}`` and ``${VARIABLE}`` will be created as internal
+ cache variables.
+
+ Furthermore, the variable ``${VARIABLE}_CODE`` holds C preprocessor code
+ to define the macro ``${VARIABLE}`` to the size of the type, or leave
+ the macro undefined if the type does not exist.
+
+ The variable ``${VARIABLE}`` may be ``0`` when
+ :variable:`CMAKE_OSX_ARCHITECTURES` has multiple architectures for building
+ OS X universal binaries. This indicates that the type size varies across
+ architectures. In this case ``${VARIABLE}_CODE`` contains C preprocessor
+ tests mapping from each architecture macro to the corresponding type size.
+ The list of architecture macros is stored in ``${VARIABLE}_KEYS``, and the
+ value for each key is stored in ``${VARIABLE}-${KEY}``.
+
+ If the ``BUILTIN_TYPES_ONLY`` option is not given, the macro checks for
+ headers ``<sys/types.h>``, ``<stdint.h>``, and ``<stddef.h>``, and saves
+ results in ``HAVE_SYS_TYPES_H``, ``HAVE_STDINT_H``, and ``HAVE_STDDEF_H``.
+ The type size check automatically includes the available headers, thus
+ supporting checks of types defined in the headers.
+
+ If ``LANGUAGE`` is set, the specified compiler will be used to perform the
+ check. Acceptable values are ``C`` and ``CXX``.
+
+Despite the name of the macro you may use it to check the size of more
+complex expressions, too. To check e.g. for the size of a struct
+member you can do something like this:
+
+.. code-block:: cmake
+
+ check_type_size("((struct something*)0)->member" SIZEOF_MEMBER)
+
+
+
+The following variables may be set before calling this macro to modify
+the way the check is run:
+
+::
+
+ CMAKE_REQUIRED_FLAGS = string of compile command line flags
+ CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
+ CMAKE_REQUIRED_INCLUDES = list of include directories
+ CMAKE_REQUIRED_LINK_OPTIONS = list of options to pass to link command
+ CMAKE_REQUIRED_LIBRARIES = list of libraries to link
+ CMAKE_REQUIRED_QUIET = execute quietly without messages
+ CMAKE_EXTRA_INCLUDE_FILES = list of extra headers to include
+#]=======================================================================]
+
+include(CheckIncludeFile)
+include(CheckIncludeFileCXX)
+
+get_filename_component(__check_type_size_dir "${CMAKE_CURRENT_LIST_FILE}" PATH)
+
+include_guard(GLOBAL)
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0054 NEW)
+
+#-----------------------------------------------------------------------------
+# Helper function. DO NOT CALL DIRECTLY.
+function(__check_type_size_impl type var map builtin language)
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Check size of ${type}")
+ endif()
+
+ # Include header files.
+ set(headers)
+ if(builtin)
+ if(HAVE_SYS_TYPES_H)
+ string(APPEND headers "#include <sys/types.h>\n")
+ endif()
+ if(HAVE_STDINT_H)
+ string(APPEND headers "#include <stdint.h>\n")
+ endif()
+ if(HAVE_STDDEF_H)
+ string(APPEND headers "#include <stddef.h>\n")
+ endif()
+ endif()
+ foreach(h ${CMAKE_EXTRA_INCLUDE_FILES})
+ string(APPEND headers "#include \"${h}\"\n")
+ endforeach()
+
+ # Perform the check.
+
+ if(language STREQUAL "C")
+ set(src ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckTypeSize/${var}.c)
+ elseif(language STREQUAL "CXX")
+ set(src ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckTypeSize/${var}.cpp)
+ else()
+ message(FATAL_ERROR "Unknown language:\n ${language}\nSupported languages: C, CXX.\n")
+ endif()
+ set(bin ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckTypeSize/${var}.bin)
+ configure_file(${__check_type_size_dir}/CheckTypeSize.c.in ${src} @ONLY)
+ try_compile(HAVE_${var} ${CMAKE_BINARY_DIR} ${src}
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS}
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}
+ CMAKE_FLAGS
+ "-DCOMPILE_DEFINITIONS:STRING=${CMAKE_REQUIRED_FLAGS}"
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}"
+ OUTPUT_VARIABLE output
+ COPY_FILE ${bin}
+ )
+
+ if(HAVE_${var})
+ # The check compiled. Load information from the binary.
+ file(STRINGS ${bin} strings LIMIT_COUNT 10 REGEX "INFO:size")
+
+ # Parse the information strings.
+ set(regex_size ".*INFO:size\\[0*([^]]*)\\].*")
+ set(regex_key " key\\[([^]]*)\\]")
+ set(keys)
+ set(code)
+ set(mismatch)
+ set(first 1)
+ foreach(info ${strings})
+ if("${info}" MATCHES "${regex_size}")
+ # Get the type size.
+ set(size "${CMAKE_MATCH_1}")
+ if(first)
+ set(${var} ${size})
+ elseif(NOT "${size}" STREQUAL "${${var}}")
+ set(mismatch 1)
+ endif()
+ set(first 0)
+
+ # Get the architecture map key.
+ string(REGEX MATCH "${regex_key}" key "${info}")
+ string(REGEX REPLACE "${regex_key}" "\\1" key "${key}")
+ if(key)
+ string(APPEND code "\nset(${var}-${key} \"${size}\")")
+ list(APPEND keys ${key})
+ endif()
+ endif()
+ endforeach()
+
+ # Update the architecture-to-size map.
+ if(mismatch AND keys)
+ configure_file(${__check_type_size_dir}/CheckTypeSizeMap.cmake.in ${map} @ONLY)
+ set(${var} 0)
+ else()
+ file(REMOVE ${map})
+ endif()
+
+ if(mismatch AND NOT keys)
+ message(SEND_ERROR "CHECK_TYPE_SIZE found different results, consider setting CMAKE_OSX_ARCHITECTURES or CMAKE_TRY_COMPILE_OSX_ARCHITECTURES to one or no architecture !")
+ endif()
+
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "done")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining size of ${type} passed with the following output:\n${output}\n\n")
+ set(${var} "${${var}}" CACHE INTERNAL "CHECK_TYPE_SIZE: sizeof(${type})")
+ else()
+ # The check failed to compile.
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "failed")
+ endif()
+ file(READ ${src} content)
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining size of ${type} failed with the following output:\n${output}\n${src}:\n${content}\n\n")
+ set(${var} "" CACHE INTERNAL "CHECK_TYPE_SIZE: ${type} unknown")
+ file(REMOVE ${map})
+ endif()
+endfunction()
+
+#-----------------------------------------------------------------------------
+macro(CHECK_TYPE_SIZE TYPE VARIABLE)
+ # parse arguments
+ unset(doing)
+ foreach(arg ${ARGN})
+ if("x${arg}" STREQUAL "xBUILTIN_TYPES_ONLY")
+ set(_CHECK_TYPE_SIZE_${arg} 1)
+ unset(doing)
+ elseif("x${arg}" STREQUAL "xLANGUAGE") # change to MATCHES for more keys
+ set(doing "${arg}")
+ set(_CHECK_TYPE_SIZE_${doing} "")
+ elseif("x${doing}" STREQUAL "xLANGUAGE")
+ set(_CHECK_TYPE_SIZE_${doing} "${arg}")
+ unset(doing)
+ else()
+ message(FATAL_ERROR "Unknown argument:\n ${arg}\n")
+ endif()
+ endforeach()
+ if("x${doing}" MATCHES "^x(LANGUAGE)$")
+ message(FATAL_ERROR "Missing argument:\n ${doing} arguments requires a value\n")
+ endif()
+ if(DEFINED _CHECK_TYPE_SIZE_LANGUAGE)
+ if(NOT "x${_CHECK_TYPE_SIZE_LANGUAGE}" MATCHES "^x(C|CXX)$")
+ message(FATAL_ERROR "Unknown language:\n ${_CHECK_TYPE_SIZE_LANGUAGE}.\nSupported languages: C, CXX.\n")
+ endif()
+ set(_language ${_CHECK_TYPE_SIZE_LANGUAGE})
+ else()
+ set(_language C)
+ endif()
+
+ # Optionally check for standard headers.
+ if(_CHECK_TYPE_SIZE_BUILTIN_TYPES_ONLY)
+ set(_builtin 0)
+ else()
+ set(_builtin 1)
+ if(_language STREQUAL "C")
+ check_include_file(sys/types.h HAVE_SYS_TYPES_H)
+ check_include_file(stdint.h HAVE_STDINT_H)
+ check_include_file(stddef.h HAVE_STDDEF_H)
+ elseif(_language STREQUAL "CXX")
+ check_include_file_cxx(sys/types.h HAVE_SYS_TYPES_H)
+ check_include_file_cxx(stdint.h HAVE_STDINT_H)
+ check_include_file_cxx(stddef.h HAVE_STDDEF_H)
+ endif()
+ endif()
+ unset(_CHECK_TYPE_SIZE_BUILTIN_TYPES_ONLY)
+ unset(_CHECK_TYPE_SIZE_LANGUAGE)
+
+ # Compute or load the size or size map.
+ set(${VARIABLE}_KEYS)
+ set(_map_file ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/CheckTypeSize/${VARIABLE}.cmake)
+ if(NOT DEFINED HAVE_${VARIABLE})
+ __check_type_size_impl(${TYPE} ${VARIABLE} ${_map_file} ${_builtin} ${_language})
+ endif()
+ include(${_map_file} OPTIONAL)
+ set(_map_file)
+ set(_builtin)
+
+ # Create preprocessor code.
+ if(${VARIABLE}_KEYS)
+ set(${VARIABLE}_CODE)
+ set(_if if)
+ foreach(key ${${VARIABLE}_KEYS})
+ string(APPEND ${VARIABLE}_CODE "#${_if} defined(${key})\n# define ${VARIABLE} ${${VARIABLE}-${key}}\n")
+ set(_if elif)
+ endforeach()
+ string(APPEND ${VARIABLE}_CODE "#else\n# error ${VARIABLE} unknown\n#endif")
+ set(_if)
+ elseif(${VARIABLE})
+ set(${VARIABLE}_CODE "#define ${VARIABLE} ${${VARIABLE}}")
+ else()
+ set(${VARIABLE}_CODE "/* #undef ${VARIABLE} */")
+ endif()
+endmacro()
+
+#-----------------------------------------------------------------------------
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/CheckTypeSizeMap.cmake.in b/share/cmake-3.17/Modules/CheckTypeSizeMap.cmake.in
index 1e73cff..1e73cff 100644
--- a/share/cmake-3.16/Modules/CheckTypeSizeMap.cmake.in
+++ b/share/cmake-3.17/Modules/CheckTypeSizeMap.cmake.in
diff --git a/share/cmake-3.16/Modules/CheckVariableExists.c b/share/cmake-3.17/Modules/CheckVariableExists.c
index d68afb4..d68afb4 100644
--- a/share/cmake-3.16/Modules/CheckVariableExists.c
+++ b/share/cmake-3.17/Modules/CheckVariableExists.c
diff --git a/share/cmake-3.17/Modules/CheckVariableExists.cmake b/share/cmake-3.17/Modules/CheckVariableExists.cmake
new file mode 100644
index 0000000..8a93535
--- /dev/null
+++ b/share/cmake-3.17/Modules/CheckVariableExists.cmake
@@ -0,0 +1,85 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckVariableExists
+-------------------
+
+Check if the variable exists.
+
+.. command:: CHECK_VARIABLE_EXISTS
+
+ .. code-block:: cmake
+
+ CHECK_VARIABLE_EXISTS(VAR VARIABLE)
+
+
+ ::
+
+ VAR - the name of the variable
+ VARIABLE - variable to store the result
+ Will be created as an internal cache variable.
+
+
+ This macro is only for ``C`` variables.
+
+The following variables may be set before calling this macro to modify
+the way the check is run:
+
+::
+
+ CMAKE_REQUIRED_FLAGS = string of compile command line flags
+ CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
+ CMAKE_REQUIRED_LINK_OPTIONS = list of options to pass to link command
+ CMAKE_REQUIRED_LIBRARIES = list of libraries to link
+ CMAKE_REQUIRED_QUIET = execute quietly without messages
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+macro(CHECK_VARIABLE_EXISTS VAR VARIABLE)
+ if(NOT DEFINED "${VARIABLE}")
+ set(MACRO_CHECK_VARIABLE_DEFINITIONS
+ "-DCHECK_VARIABLE_EXISTS=${VAR} ${CMAKE_REQUIRED_FLAGS}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_START "Looking for ${VAR}")
+ endif()
+ if(CMAKE_REQUIRED_LINK_OPTIONS)
+ set(CHECK_VARIABLE_EXISTS_ADD_LINK_OPTIONS
+ LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
+ else()
+ set(CHECK_VARIABLE_EXISTS_ADD_LINK_OPTIONS)
+ endif()
+ if(CMAKE_REQUIRED_LIBRARIES)
+ set(CHECK_VARIABLE_EXISTS_ADD_LIBRARIES
+ LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ else()
+ set(CHECK_VARIABLE_EXISTS_ADD_LIBRARIES)
+ endif()
+ try_compile(${VARIABLE}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_ROOT}/Modules/CheckVariableExists.c
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_VARIABLE_EXISTS_ADD_LINK_OPTIONS}
+ ${CHECK_VARIABLE_EXISTS_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_VARIABLE_DEFINITIONS}
+ OUTPUT_VARIABLE OUTPUT)
+ if(${VARIABLE})
+ set(${VARIABLE} 1 CACHE INTERNAL "Have variable ${VAR}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_PASS "found")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the variable ${VAR} exists passed with the following output:\n"
+ "${OUTPUT}\n\n")
+ else()
+ set(${VARIABLE} "" CACHE INTERNAL "Have variable ${VAR}")
+ if(NOT CMAKE_REQUIRED_QUIET)
+ message(CHECK_FAIL "not found")
+ endif()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the variable ${VAR} exists failed with the following output:\n"
+ "${OUTPUT}\n\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/Compiler/ADSP-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/ADSP-DetermineCompiler.cmake
index 0340f69..0340f69 100644
--- a/share/cmake-3.16/Modules/Compiler/ADSP-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/ADSP-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/ARMCC-ASM.cmake b/share/cmake-3.17/Modules/Compiler/ARMCC-ASM.cmake
index 5819fc7..5819fc7 100644
--- a/share/cmake-3.16/Modules/Compiler/ARMCC-ASM.cmake
+++ b/share/cmake-3.17/Modules/Compiler/ARMCC-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/ARMCC-C.cmake b/share/cmake-3.17/Modules/Compiler/ARMCC-C.cmake
index dcdcaab..dcdcaab 100644
--- a/share/cmake-3.16/Modules/Compiler/ARMCC-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/ARMCC-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/ARMCC-CXX.cmake b/share/cmake-3.17/Modules/Compiler/ARMCC-CXX.cmake
index 811fc93..811fc93 100644
--- a/share/cmake-3.16/Modules/Compiler/ARMCC-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/ARMCC-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/ARMCC-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/ARMCC-DetermineCompiler.cmake
index 5f2d0f8..5f2d0f8 100644
--- a/share/cmake-3.16/Modules/Compiler/ARMCC-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/ARMCC-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/ARMCC.cmake b/share/cmake-3.17/Modules/Compiler/ARMCC.cmake
index f949568..f949568 100644
--- a/share/cmake-3.16/Modules/Compiler/ARMCC.cmake
+++ b/share/cmake-3.17/Modules/Compiler/ARMCC.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/ARMClang-ASM.cmake b/share/cmake-3.17/Modules/Compiler/ARMClang-ASM.cmake
index ceff3e8..ceff3e8 100644
--- a/share/cmake-3.16/Modules/Compiler/ARMClang-ASM.cmake
+++ b/share/cmake-3.17/Modules/Compiler/ARMClang-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/ARMClang-C-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/ARMClang-C-FeatureTests.cmake
index ef79229..ef79229 100644
--- a/share/cmake-3.16/Modules/Compiler/ARMClang-C-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/ARMClang-C-FeatureTests.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/ARMClang-C.cmake b/share/cmake-3.17/Modules/Compiler/ARMClang-C.cmake
index 0a64a8a..0a64a8a 100644
--- a/share/cmake-3.16/Modules/Compiler/ARMClang-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/ARMClang-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake
index e038e80..e038e80 100644
--- a/share/cmake-3.16/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/ARMClang-CXX.cmake b/share/cmake-3.17/Modules/Compiler/ARMClang-CXX.cmake
index 5dfb401..5dfb401 100644
--- a/share/cmake-3.16/Modules/Compiler/ARMClang-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/ARMClang-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/ARMClang-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/ARMClang-DetermineCompiler.cmake
index eb0de53..eb0de53 100644
--- a/share/cmake-3.16/Modules/Compiler/ARMClang-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/ARMClang-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/ARMClang.cmake b/share/cmake-3.17/Modules/Compiler/ARMClang.cmake
index 2518ac7..2518ac7 100644
--- a/share/cmake-3.16/Modules/Compiler/ARMClang.cmake
+++ b/share/cmake-3.17/Modules/Compiler/ARMClang.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Absoft-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/Absoft-Fortran.cmake
index 76502dc..76502dc 100644
--- a/share/cmake-3.16/Modules/Compiler/Absoft-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Absoft-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/AppleClang-ASM.cmake b/share/cmake-3.17/Modules/Compiler/AppleClang-ASM.cmake
index f52bde0..f52bde0 100644
--- a/share/cmake-3.16/Modules/Compiler/AppleClang-ASM.cmake
+++ b/share/cmake-3.17/Modules/Compiler/AppleClang-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/AppleClang-C-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/AppleClang-C-FeatureTests.cmake
index e80b526..e80b526 100644
--- a/share/cmake-3.16/Modules/Compiler/AppleClang-C-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/AppleClang-C-FeatureTests.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/AppleClang-C.cmake b/share/cmake-3.17/Modules/Compiler/AppleClang-C.cmake
index 2794f52..2794f52 100644
--- a/share/cmake-3.16/Modules/Compiler/AppleClang-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/AppleClang-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake
index f67082c..f67082c 100644
--- a/share/cmake-3.16/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-CXX.cmake b/share/cmake-3.17/Modules/Compiler/AppleClang-CXX.cmake
new file mode 100644
index 0000000..15edc21
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/AppleClang-CXX.cmake
@@ -0,0 +1,45 @@
+include(Compiler/Clang)
+__compiler_clang(CXX)
+
+if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+ set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
+endif()
+
+if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0)
+ set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
+ set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
+ set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
+
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
+endif()
+
+if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.1)
+ set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
+ set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
+ set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
+elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.1)
+ # AppleClang 5.0 knows this flag, but does not set a __cplusplus macro greater than 201103L
+ set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
+ set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
+ set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
+endif()
+
+if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10.0)
+ set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++17")
+ set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
+elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.1)
+ set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++1z")
+ set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z")
+endif()
+
+if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0)
+ set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
+endif()
+
+if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10.0)
+ set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++2a")
+ set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++2a")
+endif()
+
+__compiler_check_default_language_standard(CXX 4.0 98)
diff --git a/share/cmake-3.16/Modules/Compiler/AppleClang-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/AppleClang-DetermineCompiler.cmake
index 83817f7..83817f7 100644
--- a/share/cmake-3.16/Modules/Compiler/AppleClang-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/AppleClang-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/AppleClang-OBJC.cmake b/share/cmake-3.17/Modules/Compiler/AppleClang-OBJC.cmake
index d1f3706..d1f3706 100644
--- a/share/cmake-3.16/Modules/Compiler/AppleClang-OBJC.cmake
+++ b/share/cmake-3.17/Modules/Compiler/AppleClang-OBJC.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-OBJCXX.cmake b/share/cmake-3.17/Modules/Compiler/AppleClang-OBJCXX.cmake
new file mode 100644
index 0000000..409bd4a
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/AppleClang-OBJCXX.cmake
@@ -0,0 +1,42 @@
+include(Compiler/Clang-OBJCXX)
+
+set(CMAKE_OBJCXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
+
+if(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 4.0)
+ set(CMAKE_OBJCXX98_STANDARD_COMPILE_OPTION "-std=c++98")
+ set(CMAKE_OBJCXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
+ set(CMAKE_OBJCXX98_STANDARD__HAS_FULL_SUPPORT ON)
+
+ set(CMAKE_OBJCXX11_STANDARD_COMPILE_OPTION "-std=c++11")
+ set(CMAKE_OBJCXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
+endif()
+
+if(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 6.1)
+ set(CMAKE_OBJCXX14_STANDARD_COMPILE_OPTION "-std=c++14")
+ set(CMAKE_OBJCXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
+ set(CMAKE_OBJCXX14_STANDARD__HAS_FULL_SUPPORT ON)
+elseif(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 5.1)
+ # AppleClang 5.0 knows this flag, but does not set a __cplusplus macro greater than 201103L
+ set(CMAKE_OBJCXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
+ set(CMAKE_OBJCXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
+ set(CMAKE_OBJCXX14_STANDARD__HAS_FULL_SUPPORT ON)
+endif()
+
+if (NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 10.0)
+ set(CMAKE_OBJCXX17_STANDARD_COMPILE_OPTION "-std=c++17")
+ set(CMAKE_OBJCXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
+elseif (NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 6.1)
+ set(CMAKE_OBJCXX17_STANDARD_COMPILE_OPTION "-std=c++1z")
+ set(CMAKE_OBJCXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z")
+endif()
+
+if (NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 8.0)
+ set(CMAKE_OBJCXX11_STANDARD__HAS_FULL_SUPPORT ON)
+endif()
+
+if (NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 10.0)
+ set(CMAKE_OBJCXX20_STANDARD_COMPILE_OPTION "-std=c++2a")
+ set(CMAKE_OBJCXX20_EXTENSION_COMPILE_OPTION "-std=gnu++2a")
+endif()
+
+__compiler_check_default_language_standard(OBJCXX 4.0 98)
diff --git a/share/cmake-3.16/Modules/Compiler/Borland-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/Borland-DetermineCompiler.cmake
index ef3083b..ef3083b 100644
--- a/share/cmake-3.16/Modules/Compiler/Borland-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Borland-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Bruce-C-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/Bruce-C-DetermineCompiler.cmake
index bb9f4b9..bb9f4b9 100644
--- a/share/cmake-3.16/Modules/Compiler/Bruce-C-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Bruce-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Bruce-C.cmake b/share/cmake-3.17/Modules/Compiler/Bruce-C.cmake
index 6b64e58..6b64e58 100644
--- a/share/cmake-3.16/Modules/Compiler/Bruce-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Bruce-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/CCur-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/CCur-Fortran.cmake
index 6ec06ae..6ec06ae 100644
--- a/share/cmake-3.16/Modules/Compiler/CCur-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Compiler/CCur-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/CMakeCommonCompilerMacros.cmake b/share/cmake-3.17/Modules/Compiler/CMakeCommonCompilerMacros.cmake
new file mode 100644
index 0000000..409b65a
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/CMakeCommonCompilerMacros.cmake
@@ -0,0 +1,180 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# This module is shared by multiple languages and compilers; use include guard
+if (__COMPILER_CMAKE_COMMON_COMPILER_MACROS)
+ return()
+endif ()
+set(__COMPILER_CMAKE_COMMON_COMPILER_MACROS 1)
+
+
+# Check that a compiler's language standard is properly detected
+# Parameters:
+# lang - Language to check
+# stdver1 - Minimum version to set a given default for
+# std1 - Default to use for compiler ver >= stdver1
+# stdverN - Minimum version to set a given default for
+# stdN - Default to use for compiler ver >= stdverN
+#
+# The order of stdverN stdN pairs passed as arguments is expected to be in
+# monotonically increasing version order.
+#
+# Note:
+# This macro can be called with multiple version / std pairs to convey that
+# newer compiler versions may use a newer standard default.
+#
+# Example:
+# To specify that compiler version 6.1 and newer defaults to C++11 while
+# 4.8 <= ver < 6.1 default to C++98, you would call:
+#
+# __compiler_check_default_language_standard(CXX 4.8 98 6.1 11)
+#
+macro(__compiler_check_default_language_standard lang stdver1 std1)
+ set(__std_ver_pairs "${stdver1};${std1};${ARGN}")
+ string(REGEX REPLACE " *; *" " " __std_ver_pairs "${__std_ver_pairs}")
+ string(REGEX MATCHALL "[^ ]+ [^ ]+" __std_ver_pairs "${__std_ver_pairs}")
+
+ # If the compiler version is below the threshold of even having CMake
+ # support for language standards, then don't bother.
+ if (CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL "${stdver1}")
+ if (NOT CMAKE_${lang}_COMPILER_FORCED)
+ if (NOT CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT)
+ message(FATAL_ERROR "CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_${lang}_COMPILER_ID} (${CMAKE_${lang}_COMPILER}) version ${CMAKE_${lang}_COMPILER_VERSION}")
+ endif ()
+ set(CMAKE_${lang}_STANDARD_DEFAULT ${CMAKE_${lang}_STANDARD_COMPUTED_DEFAULT})
+ else ()
+ list(REVERSE __std_ver_pairs)
+ foreach (__std_ver_pair IN LISTS __std_ver_pairs)
+ string(REGEX MATCH "([^ ]+) (.+)" __std_ver_pair "${__std_ver_pair}")
+ set(__stdver ${CMAKE_MATCH_1})
+ set(__std ${CMAKE_MATCH_2})
+ if (CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL __stdver AND
+ NOT DEFINED CMAKE_${lang}_STANDARD_DEFAULT)
+ # Compiler id was forced so just guess the default standard level.
+ set(CMAKE_${lang}_STANDARD_DEFAULT ${__std})
+ endif ()
+ unset(__std)
+ unset(__stdver)
+ endforeach ()
+ endif ()
+ endif ()
+ unset(__std_ver_pairs)
+endmacro()
+
+# Define to allow compile features to be automatically determined
+macro(cmake_record_c_compile_features)
+ set(_result 0)
+ if(_result EQUAL 0 AND DEFINED CMAKE_C11_STANDARD_COMPILE_OPTION)
+ if(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT)
+ _has_compiler_features_c(11)
+ else()
+ _record_compiler_features_c(11)
+ endif()
+ unset(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+ if(_result EQUAL 0 AND DEFINED CMAKE_C99_STANDARD_COMPILE_OPTION)
+ if(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT)
+ _has_compiler_features_c(99)
+ else()
+ _record_compiler_features_c(99)
+ endif()
+ unset(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+ if(_result EQUAL 0 AND DEFINED CMAKE_C90_STANDARD_COMPILE_OPTION)
+ if(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT)
+ _has_compiler_features_c(90)
+ else()
+ _record_compiler_features_c(90)
+ endif()
+ unset(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+endmacro()
+
+# Define to allow compile features to be automatically determined
+macro(cmake_record_cxx_compile_features)
+ set(_result 0)
+ if(_result EQUAL 0 AND DEFINED CMAKE_CXX20_STANDARD_COMPILE_OPTION)
+ if(CMAKE_CXX20_STANDARD__HAS_FULL_SUPPORT)
+ _has_compiler_features_cxx(20)
+ else()
+ _record_compiler_features_cxx(20)
+ endif()
+ unset(CMAKE_CXX20_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+ if(_result EQUAL 0 AND DEFINED CMAKE_CXX17_STANDARD_COMPILE_OPTION)
+ if(CMAKE_CXX17_STANDARD__HAS_FULL_SUPPORT)
+ _has_compiler_features_cxx(17)
+ else()
+ _record_compiler_features_cxx(17)
+ endif()
+ unset(CMAKE_CXX17_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+ if(_result EQUAL 0 AND DEFINED CMAKE_CXX14_STANDARD_COMPILE_OPTION)
+ if(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT)
+ _has_compiler_features_cxx(14)
+ else()
+ _record_compiler_features_cxx(14)
+ endif()
+ unset(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+ if(_result EQUAL 0 AND DEFINED CMAKE_CXX11_STANDARD_COMPILE_OPTION)
+ if(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT)
+ _has_compiler_features_cxx(11)
+ else()
+ _record_compiler_features_cxx(11)
+ endif()
+ unset(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+ if(_result EQUAL 0 AND DEFINED CMAKE_CXX98_STANDARD_COMPILE_OPTION)
+ if(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT)
+ _has_compiler_features_cxx(98)
+ else()
+ _record_compiler_features_cxx(98)
+ endif()
+ unset(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+endmacro()
+
+macro(cmake_record_cuda_compile_features)
+ set(_result 0)
+ if(_result EQUAL 0 AND DEFINED CMAKE_CUDA20_STANDARD_COMPILE_OPTION)
+ if(CMAKE_CUDA20_STANDARD__HAS_FULL_SUPPORT)
+ _has_compiler_features_cuda(20)
+ else()
+ _record_compiler_features_cuda(20)
+ endif()
+ unset(CMAKE_CUDA20_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+ if(_result EQUAL 0 AND DEFINED CMAKE_CUDA17_STANDARD_COMPILE_OPTION)
+ if(CMAKE_CUDA17_STANDARD__HAS_FULL_SUPPORT)
+ _has_compiler_features_cuda(17)
+ else()
+ _record_compiler_features_cuda(17)
+ endif()
+ unset(CMAKE_CUDA17_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+ if(_result EQUAL 0 AND DEFINED CMAKE_CUDA14_STANDARD_COMPILE_OPTION)
+ if(CMAKE_CUDA14_STANDARD__HAS_FULL_SUPPORT)
+ _has_compiler_features_cuda(14)
+ else()
+ _record_compiler_features_cuda(14)
+ endif()
+ unset(CMAKE_CUDA14_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+ if(_result EQUAL 0 AND DEFINED CMAKE_CUDA11_STANDARD_COMPILE_OPTION)
+ if(CMAKE_CUDA11_STANDARD__HAS_FULL_SUPPORT)
+ _has_compiler_features_cuda(11)
+ else()
+ _record_compiler_features_cuda(11)
+ endif()
+ unset(CMAKE_CUDA11_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+ if(_result EQUAL 0 AND DEFINED CMAKE_CUDA03_STANDARD_COMPILE_OPTION)
+ if(CMAKE_CUDA03_STANDARD__HAS_FULL_SUPPORT)
+ _has_compiler_features_cuda(03)
+ else()
+ _record_compiler_features_cuda(03)
+ endif()
+ unset(CMAKE_CUDA03_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/Compiler/Clang-ASM.cmake b/share/cmake-3.17/Modules/Compiler/Clang-ASM.cmake
index 16c9c15..16c9c15 100644
--- a/share/cmake-3.16/Modules/Compiler/Clang-ASM.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Clang-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Clang-C-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/Clang-C-FeatureTests.cmake
index 99c2252..99c2252 100644
--- a/share/cmake-3.16/Modules/Compiler/Clang-C-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Clang-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-C.cmake b/share/cmake-3.17/Modules/Compiler/Clang-C.cmake
new file mode 100644
index 0000000..7c4a263
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/Clang-C.cmake
@@ -0,0 +1,46 @@
+include(Compiler/Clang)
+__compiler_clang(C)
+
+cmake_policy(GET CMP0025 appleClangPolicy)
+if(APPLE AND NOT appleClangPolicy STREQUAL NEW)
+ return()
+endif()
+
+if("x${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC")
+ set(CMAKE_C_CLANG_TIDY_DRIVER_MODE "cl")
+endif()
+
+if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
+ if(NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
+ set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90")
+ set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu90")
+ set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
+
+ set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99")
+ set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99")
+ set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
+
+ set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
+ set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
+ set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
+ else()
+ # clang-cl doesn't have any of these
+ set(CMAKE_C90_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_C90_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
+
+ set(CMAKE_C99_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_C99_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
+
+ set(CMAKE_C11_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_C11_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
+ endif()
+endif()
+
+if(NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
+ __compiler_check_default_language_standard(C 3.4 99 3.6 11)
+else()
+ set(CMAKE_C_STANDARD_DEFAULT "")
+endif()
diff --git a/share/cmake-3.16/Modules/Compiler/Clang-CXX-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/Clang-CXX-FeatureTests.cmake
index cd04190..cd04190 100644
--- a/share/cmake-3.16/Modules/Compiler/Clang-CXX-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Clang-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Clang-CXX-TestableFeatures.cmake b/share/cmake-3.17/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
index 69965a6..69965a6 100644
--- a/share/cmake-3.16/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-CXX.cmake b/share/cmake-3.17/Modules/Compiler/Clang-CXX.cmake
new file mode 100644
index 0000000..cb240f9
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/Clang-CXX.cmake
@@ -0,0 +1,133 @@
+include(Compiler/Clang)
+__compiler_clang(CXX)
+
+if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
+ set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
+endif()
+
+cmake_policy(GET CMP0025 appleClangPolicy)
+if(APPLE AND NOT appleClangPolicy STREQUAL NEW)
+ return()
+endif()
+
+if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC")
+ set(CMAKE_CXX_CLANG_TIDY_DRIVER_MODE "cl")
+endif()
+
+if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
+ if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
+ set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
+ set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
+ endif()
+
+ if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.1)
+ set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
+ set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
+ elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
+ endif()
+
+ if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
+ set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
+ set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
+ set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
+ elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4)
+ set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
+ set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
+ set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
+ endif()
+
+ set(_clang_version_std17 5.0)
+ if(CMAKE_SYSTEM_NAME STREQUAL "Android")
+ set(_clang_version_std17 6.0)
+ endif()
+
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}")
+ set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++17")
+ set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
+ elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
+ set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++1z")
+ set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z")
+ endif()
+
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}")
+ set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++2a")
+ set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++2a")
+ endif()
+
+ unset(_clang_version_std17)
+
+ if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+ # The MSVC standard library requires C++14, and MSVC itself has no
+ # notion of operating in a mode not aware of at least that standard.
+ set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++14")
+ set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++14")
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++14")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++14")
+
+ # This clang++ is missing some features because of MSVC compatibility.
+ unset(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT)
+ unset(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT)
+ unset(CMAKE_CXX17_STANDARD__HAS_FULL_SUPPORT)
+ unset(CMAKE_CXX20_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+
+ __compiler_check_default_language_standard(CXX 2.1 98)
+elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 3.9
+ AND CMAKE_CXX_SIMULATE_VERSION VERSION_GREATER_EQUAL 19.0)
+ # This version of clang-cl and the MSVC version it simulates have
+ # support for -std: flags.
+ set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std:c++14")
+ set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std:c++14")
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 6.0)
+ set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std:c++17")
+ set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std:c++17")
+ set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std:c++latest")
+ set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std:c++latest")
+ else()
+ set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std:c++latest")
+ set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std:c++latest")
+ endif()
+
+ __compiler_check_default_language_standard(CXX 3.9 14)
+else()
+ # This version of clang-cl, or the MSVC version it simulates, does not have
+ # language standards. Set these options as empty strings so the feature
+ # test infrastructure can at least check to see if they are defined.
+ set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "")
+
+ # There is no meaningful default for this
+ set(CMAKE_CXX_STANDARD_DEFAULT "")
+
+ # There are no compiler modes so we only need to test features once.
+ # Override the default macro for this special case. Pretend that
+ # all language standards are available so that at least compilation
+ # can be attempted.
+ macro(cmake_record_cxx_compile_features)
+ list(APPEND CMAKE_CXX_COMPILE_FEATURES
+ cxx_std_98
+ cxx_std_11
+ cxx_std_14
+ cxx_std_17
+ cxx_std_20
+ )
+ _record_compiler_features(CXX "" CMAKE_CXX_COMPILE_FEATURES)
+ endmacro()
+endif()
diff --git a/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/Clang-DetermineCompiler.cmake
index 89df1b6..89df1b6 100644
--- a/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Clang-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake b/share/cmake-3.17/Modules/Compiler/Clang-DetermineCompilerInternal.cmake
index 08c1230..08c1230 100644
--- a/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Clang-DetermineCompilerInternal.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Clang-FindBinUtils.cmake b/share/cmake-3.17/Modules/Compiler/Clang-FindBinUtils.cmake
index b852660..b852660 100644
--- a/share/cmake-3.16/Modules/Compiler/Clang-FindBinUtils.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Clang-FindBinUtils.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Clang-OBJC.cmake b/share/cmake-3.17/Modules/Compiler/Clang-OBJC.cmake
index c61c497..c61c497 100644
--- a/share/cmake-3.16/Modules/Compiler/Clang-OBJC.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Clang-OBJC.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Clang-OBJCXX.cmake b/share/cmake-3.17/Modules/Compiler/Clang-OBJCXX.cmake
index b01ce64..b01ce64 100644
--- a/share/cmake-3.16/Modules/Compiler/Clang-OBJCXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Clang-OBJCXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang.cmake b/share/cmake-3.17/Modules/Compiler/Clang.cmake
new file mode 100644
index 0000000..f65916f
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/Clang.cmake
@@ -0,0 +1,107 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This module is shared by multiple languages; use include blocker.
+if(__COMPILER_CLANG)
+ return()
+endif()
+set(__COMPILER_CLANG 1)
+
+include(Compiler/CMakeCommonCompilerMacros)
+
+if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC"
+ OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC"
+ OR "x${CMAKE_Fortran_SIMULATE_ID}" STREQUAL "xMSVC")
+ macro(__compiler_clang lang)
+ endmacro()
+else()
+ include(Compiler/GNU)
+
+ macro(__compiler_clang lang)
+ __compiler_gnu(${lang})
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
+ # Link options for PIE are already set in 'Compiler/GNU.cmake'
+ # but clang may require alternate syntax on some platforms
+ if (APPLE)
+ set(CMAKE_${lang}_LINK_OPTIONS_PIE ${CMAKE_${lang}_COMPILE_OPTIONS_PIE} -Xlinker -pie)
+ set(CMAKE_${lang}_LINK_OPTIONS_NO_PIE -Xlinker -no_pie)
+ endif()
+ set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY "-fvisibility=")
+ if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.4.0)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "-target ")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "-gcc-toolchain ")
+ else()
+ set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "--target=")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "--gcc-toolchain=")
+ endif()
+ 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)
+
+ string(COMPARE EQUAL "${CMAKE_${lang}_COMPILER_ID}" "AppleClang" __is_apple_clang)
+
+ # '-flto=thin' available since Clang 3.9 and Xcode 8
+ # * http://clang.llvm.org/docs/ThinLTO.html#clang-llvm
+ # * https://trac.macports.org/wiki/XcodeVersionInfo
+ set(_CMAKE_LTO_THIN TRUE)
+ if(__is_apple_clang)
+ if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 8.0)
+ set(_CMAKE_LTO_THIN FALSE)
+ endif()
+ else()
+ if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.9)
+ set(_CMAKE_LTO_THIN FALSE)
+ endif()
+ endif()
+
+ if(_CMAKE_LTO_THIN)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto=thin")
+ else()
+ set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto")
+ endif()
+
+ if(ANDROID)
+ # https://github.com/android-ndk/ndk/issues/242
+ set(CMAKE_${lang}_LINK_OPTIONS_IPO "-fuse-ld=gold")
+ endif()
+
+ if(ANDROID OR __is_apple_clang)
+ set(__ar "${CMAKE_AR}")
+ set(__ranlib "${CMAKE_RANLIB}")
+ else()
+ set(__ar "${CMAKE_${lang}_COMPILER_AR}")
+ set(__ranlib "${CMAKE_${lang}_COMPILER_RANLIB}")
+ endif()
+
+ set(CMAKE_${lang}_ARCHIVE_CREATE_IPO
+ "\"${__ar}\" cr <TARGET> <LINK_FLAGS> <OBJECTS>"
+ )
+
+ set(CMAKE_${lang}_ARCHIVE_APPEND_IPO
+ "\"${__ar}\" r <TARGET> <LINK_FLAGS> <OBJECTS>"
+ )
+
+ set(CMAKE_${lang}_ARCHIVE_FINISH_IPO
+ "\"${__ranlib}\" <TARGET>"
+ )
+
+ set(CMAKE_PCH_EXTENSION .pch)
+ if (NOT CMAKE_GENERATOR MATCHES "Xcode")
+ set(CMAKE_PCH_PROLOGUE "#pragma clang system_header")
+ endif()
+ set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Xclang -include-pch -Xclang <PCH_FILE> -Xclang -include -Xclang <PCH_HEADER>)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Xclang -emit-pch -Xclang -include -Xclang <PCH_HEADER>)
+ endmacro()
+endif()
diff --git a/share/cmake-3.16/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake
index 2265e5e..2265e5e 100644
--- a/share/cmake-3.16/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Compaq-C-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/Compaq-C-DetermineCompiler.cmake
index 02e99dc..02e99dc 100644
--- a/share/cmake-3.16/Modules/Compiler/Compaq-C-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Compaq-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake
index c7d0565..c7d0565 100644
--- a/share/cmake-3.16/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Cray-C.cmake b/share/cmake-3.17/Modules/Compiler/Cray-C.cmake
index 9340948..9340948 100644
--- a/share/cmake-3.16/Modules/Compiler/Cray-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Cray-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Cray-CXX.cmake b/share/cmake-3.17/Modules/Compiler/Cray-CXX.cmake
index 38c8b1e..38c8b1e 100644
--- a/share/cmake-3.16/Modules/Compiler/Cray-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Cray-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Cray-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/Cray-DetermineCompiler.cmake
index 6602294..6602294 100644
--- a/share/cmake-3.16/Modules/Compiler/Cray-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Cray-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Cray-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/Cray-Fortran.cmake
index ccb7c2e..ccb7c2e 100644
--- a/share/cmake-3.16/Modules/Compiler/Cray-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Cray-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Cray.cmake b/share/cmake-3.17/Modules/Compiler/Cray.cmake
index c214afc..c214afc 100644
--- a/share/cmake-3.16/Modules/Compiler/Cray.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Cray.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/CrayPrgEnv-C.cmake b/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-C.cmake
index 76aa93b..76aa93b 100644
--- a/share/cmake-3.16/Modules/Compiler/CrayPrgEnv-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/CrayPrgEnv-CXX.cmake b/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-CXX.cmake
index 442370e..442370e 100644
--- a/share/cmake-3.16/Modules/Compiler/CrayPrgEnv-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/CrayPrgEnv-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-Fortran.cmake
index 85f82d3..85f82d3 100644
--- a/share/cmake-3.16/Modules/Compiler/CrayPrgEnv-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/CrayPrgEnv.cmake b/share/cmake-3.17/Modules/Compiler/CrayPrgEnv.cmake
index f6e46ac..f6e46ac 100644
--- a/share/cmake-3.16/Modules/Compiler/CrayPrgEnv.cmake
+++ b/share/cmake-3.17/Modules/Compiler/CrayPrgEnv.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Embarcadero-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/Embarcadero-DetermineCompiler.cmake
index 8375624..8375624 100644
--- a/share/cmake-3.16/Modules/Compiler/Embarcadero-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Embarcadero-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Flang-FindBinUtils.cmake b/share/cmake-3.17/Modules/Compiler/Flang-FindBinUtils.cmake
index e721c87..e721c87 100644
--- a/share/cmake-3.16/Modules/Compiler/Flang-FindBinUtils.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Flang-FindBinUtils.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Flang-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/Flang-Fortran.cmake
index f0e61d8..f0e61d8 100644
--- a/share/cmake-3.16/Modules/Compiler/Flang-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Flang-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Fujitsu-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/Fujitsu-DetermineCompiler.cmake
index 73ee38c..73ee38c 100644
--- a/share/cmake-3.16/Modules/Compiler/Fujitsu-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Fujitsu-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/G95-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/G95-Fortran.cmake
index 03b7e08..03b7e08 100644
--- a/share/cmake-3.16/Modules/Compiler/G95-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Compiler/G95-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GHS-C.cmake b/share/cmake-3.17/Modules/Compiler/GHS-C.cmake
index a825b0b..a825b0b 100644
--- a/share/cmake-3.16/Modules/Compiler/GHS-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GHS-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GHS-CXX.cmake b/share/cmake-3.17/Modules/Compiler/GHS-CXX.cmake
index 07b5044..07b5044 100644
--- a/share/cmake-3.16/Modules/Compiler/GHS-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GHS-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GHS-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/GHS-DetermineCompiler.cmake
index 368b375..368b375 100644
--- a/share/cmake-3.16/Modules/Compiler/GHS-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GHS-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GHS.cmake b/share/cmake-3.17/Modules/Compiler/GHS.cmake
index b41c3eb..b41c3eb 100644
--- a/share/cmake-3.16/Modules/Compiler/GHS.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GHS.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GNU-ASM.cmake b/share/cmake-3.17/Modules/Compiler/GNU-ASM.cmake
index e07401d..e07401d 100644
--- a/share/cmake-3.16/Modules/Compiler/GNU-ASM.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GNU-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GNU-C-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/GNU-C-DetermineCompiler.cmake
index 6ddc566..6ddc566 100644
--- a/share/cmake-3.16/Modules/Compiler/GNU-C-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GNU-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GNU-C-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/GNU-C-FeatureTests.cmake
index 0ab5265..0ab5265 100644
--- a/share/cmake-3.16/Modules/Compiler/GNU-C-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GNU-C-FeatureTests.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GNU-C.cmake b/share/cmake-3.17/Modules/Compiler/GNU-C.cmake
index ca286b3..ca286b3 100644
--- a/share/cmake-3.16/Modules/Compiler/GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake
index c25b147..c25b147 100644
--- a/share/cmake-3.16/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index 45c5470..45c5470 100644
--- a/share/cmake-3.16/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GNU-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake b/share/cmake-3.17/Modules/Compiler/GNU-CXX.cmake
index fcaaeab..fcaaeab 100644
--- a/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GNU-FindBinUtils.cmake b/share/cmake-3.17/Modules/Compiler/GNU-FindBinUtils.cmake
index 097fbf3..097fbf3 100644
--- a/share/cmake-3.16/Modules/Compiler/GNU-FindBinUtils.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GNU-FindBinUtils.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GNU-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/GNU-Fortran.cmake
index 6413769..6413769 100644
--- a/share/cmake-3.16/Modules/Compiler/GNU-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GNU-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GNU-OBJC.cmake b/share/cmake-3.17/Modules/Compiler/GNU-OBJC.cmake
index fb9b0b2..fb9b0b2 100644
--- a/share/cmake-3.16/Modules/Compiler/GNU-OBJC.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GNU-OBJC.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GNU-OBJCXX.cmake b/share/cmake-3.17/Modules/Compiler/GNU-OBJCXX.cmake
index 06f0244..06f0244 100644
--- a/share/cmake-3.16/Modules/Compiler/GNU-OBJCXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GNU-OBJCXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/GNU.cmake b/share/cmake-3.17/Modules/Compiler/GNU.cmake
index 1c050a2..1c050a2 100644
--- a/share/cmake-3.16/Modules/Compiler/GNU.cmake
+++ b/share/cmake-3.17/Modules/Compiler/GNU.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/HP-ASM.cmake b/share/cmake-3.17/Modules/Compiler/HP-ASM.cmake
index b60f207..b60f207 100644
--- a/share/cmake-3.16/Modules/Compiler/HP-ASM.cmake
+++ b/share/cmake-3.17/Modules/Compiler/HP-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/HP-C-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/HP-C-DetermineCompiler.cmake
index 4269799..4269799 100644
--- a/share/cmake-3.16/Modules/Compiler/HP-C-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/HP-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/HP-C.cmake b/share/cmake-3.17/Modules/Compiler/HP-C.cmake
index 8fa4c08..8fa4c08 100644
--- a/share/cmake-3.16/Modules/Compiler/HP-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/HP-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/HP-CXX-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/HP-CXX-DetermineCompiler.cmake
index 3d4d7e4..3d4d7e4 100644
--- a/share/cmake-3.16/Modules/Compiler/HP-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/HP-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/HP-CXX.cmake b/share/cmake-3.17/Modules/Compiler/HP-CXX.cmake
index 5726b64..5726b64 100644
--- a/share/cmake-3.16/Modules/Compiler/HP-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/HP-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/HP-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/HP-Fortran.cmake
index 63a0331..63a0331 100644
--- a/share/cmake-3.16/Modules/Compiler/HP-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Compiler/HP-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/IAR-ASM.cmake b/share/cmake-3.17/Modules/Compiler/IAR-ASM.cmake
index 936d4ae..936d4ae 100644
--- a/share/cmake-3.16/Modules/Compiler/IAR-ASM.cmake
+++ b/share/cmake-3.17/Modules/Compiler/IAR-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/IAR-C.cmake b/share/cmake-3.17/Modules/Compiler/IAR-C.cmake
index e27fdfc..e27fdfc 100644
--- a/share/cmake-3.16/Modules/Compiler/IAR-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/IAR-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/IAR-CXX.cmake b/share/cmake-3.17/Modules/Compiler/IAR-CXX.cmake
index eca89c5..eca89c5 100644
--- a/share/cmake-3.16/Modules/Compiler/IAR-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/IAR-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/IAR-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/IAR-DetermineCompiler.cmake
index 0a026b2..0a026b2 100644
--- a/share/cmake-3.16/Modules/Compiler/IAR-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/IAR-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/IAR-FindBinUtils.cmake b/share/cmake-3.17/Modules/Compiler/IAR-FindBinUtils.cmake
index 6ef3759..6ef3759 100644
--- a/share/cmake-3.16/Modules/Compiler/IAR-FindBinUtils.cmake
+++ b/share/cmake-3.17/Modules/Compiler/IAR-FindBinUtils.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/IAR.cmake b/share/cmake-3.17/Modules/Compiler/IAR.cmake
index 8e75caa..8e75caa 100644
--- a/share/cmake-3.16/Modules/Compiler/IAR.cmake
+++ b/share/cmake-3.17/Modules/Compiler/IAR.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake b/share/cmake-3.17/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake
index 899e284..899e284 100644
--- a/share/cmake-3.16/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake
+++ b/share/cmake-3.17/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake b/share/cmake-3.17/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake
index 73aa2b4..73aa2b4 100644
--- a/share/cmake-3.16/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake
+++ b/share/cmake-3.17/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Intel-ASM.cmake b/share/cmake-3.17/Modules/Compiler/Intel-ASM.cmake
index c2bf465..c2bf465 100644
--- a/share/cmake-3.16/Modules/Compiler/Intel-ASM.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Intel-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Intel-C-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/Intel-C-FeatureTests.cmake
index 5d09767..5d09767 100644
--- a/share/cmake-3.16/Modules/Compiler/Intel-C-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Intel-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-C.cmake b/share/cmake-3.17/Modules/Compiler/Intel-C.cmake
new file mode 100644
index 0000000..ec3bfd8
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/Intel-C.cmake
@@ -0,0 +1,51 @@
+include(Compiler/Intel)
+__compiler_intel(C)
+
+string(APPEND CMAKE_C_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
+string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " -DNDEBUG")
+string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO_INIT " -DNDEBUG")
+
+set(CMAKE_DEPFILE_FLAGS_C "-MD -MT <OBJECT> -MF <DEPFILE>")
+
+if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
+
+ set(CMAKE_C_CLANG_TIDY_DRIVER_MODE "cl")
+
+ if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 16.0.0)
+ set(CMAKE_C11_STANDARD_COMPILE_OPTION "-Qstd=c11")
+ set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-Qstd=c11")
+ set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
+ endif()
+
+ if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.0)
+ set(CMAKE_C90_STANDARD_COMPILE_OPTION "-Qstd=c89")
+ set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-Qstd=c89")
+ set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
+ set(CMAKE_C99_STANDARD_COMPILE_OPTION "-Qstd=c99")
+ set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-Qstd=c99")
+ set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
+ endif()
+
+else()
+
+ if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0.0)
+ set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
+ set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
+ set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
+ endif()
+
+ if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.0)
+ set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c89")
+ set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu89")
+ set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
+ set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99")
+ set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99")
+ set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
+ endif()
+
+endif()
+
+__compiler_check_default_language_standard(C 12.0 90 15.0.0 11)
+
+set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+set(CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
diff --git a/share/cmake-3.16/Modules/Compiler/Intel-CXX-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/Intel-CXX-FeatureTests.cmake
index bbefe15..bbefe15 100644
--- a/share/cmake-3.16/Modules/Compiler/Intel-CXX-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Intel-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-CXX.cmake b/share/cmake-3.17/Modules/Compiler/Intel-CXX.cmake
new file mode 100644
index 0000000..1ed1b08
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/Intel-CXX.cmake
@@ -0,0 +1,86 @@
+include(Compiler/Intel)
+__compiler_intel(CXX)
+
+string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
+string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " -DNDEBUG")
+string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT " -DNDEBUG")
+
+set(CMAKE_DEPFILE_FLAGS_CXX "-MD -MT <OBJECT> -MF <DEPFILE>")
+
+if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+
+ set(CMAKE_CXX_CLANG_TIDY_DRIVER_MODE "cl")
+
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0.0)
+ set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-Qstd=c++17")
+ set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-Qstd=c++17")
+ endif()
+
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0)
+ set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-Qstd=c++14")
+ set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-Qstd=c++14")
+ endif()
+
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0)
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-Qstd=c++11")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-Qstd=c++11")
+ elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-Qstd=c++0x")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-Qstd=c++0x")
+ endif()
+
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
+ set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
+ endif()
+
+else()
+
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0.0)
+ set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++17")
+ set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
+ endif()
+
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 17.0)
+ set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
+ endif()
+
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.2)
+ set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
+ elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.0)
+ set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
+ endif()
+
+ # Intel 15.0.2 accepts c++14 instead of c++1y, but not gnu++14
+ # instead of gnu++1y. Intel 17.0.0 accepts gnu++14 too.
+ if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 17.0)
+ set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
+ elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.0)
+ set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
+ endif()
+
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0)
+ set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
+ endif()
+
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0)
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
+ elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
+ endif()
+
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
+ set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
+ set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
+ set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
+ endif()
+
+endif()
+
+__compiler_check_default_language_standard(CXX 12.1 98)
+
+set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
diff --git a/share/cmake-3.16/Modules/Compiler/Intel-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/Intel-DetermineCompiler.cmake
index c31aa77..c31aa77 100644
--- a/share/cmake-3.16/Modules/Compiler/Intel-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Intel-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Intel-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/Intel-Fortran.cmake
index 156b533..156b533 100644
--- a/share/cmake-3.16/Modules/Compiler/Intel-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Intel-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Intel.cmake b/share/cmake-3.17/Modules/Compiler/Intel.cmake
index d895ed0..d895ed0 100644
--- a/share/cmake-3.16/Modules/Compiler/Intel.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Intel.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/MSVC-ASM.cmake b/share/cmake-3.17/Modules/Compiler/MSVC-ASM.cmake
index 45978c5..45978c5 100644
--- a/share/cmake-3.16/Modules/Compiler/MSVC-ASM.cmake
+++ b/share/cmake-3.17/Modules/Compiler/MSVC-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/MSVC-C-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/MSVC-C-FeatureTests.cmake
index 3f09be2..3f09be2 100644
--- a/share/cmake-3.16/Modules/Compiler/MSVC-C-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/MSVC-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-C.cmake b/share/cmake-3.17/Modules/Compiler/MSVC-C.cmake
new file mode 100644
index 0000000..bca9764
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/MSVC-C.cmake
@@ -0,0 +1,40 @@
+# MSVC has no specific options to set C language standards, but set them as
+# empty strings anyways so the feature test infrastructure can at least check
+# to see if they are defined.
+set(CMAKE_C90_STANDARD_COMPILE_OPTION "")
+set(CMAKE_C90_EXTENSION_COMPILE_OPTION "")
+set(CMAKE_C99_STANDARD_COMPILE_OPTION "")
+set(CMAKE_C99_EXTENSION_COMPILE_OPTION "")
+set(CMAKE_C11_STANDARD_COMPILE_OPTION "")
+set(CMAKE_C11_EXTENSION_COMPILE_OPTION "")
+
+# There is no meaningful default for this
+set(CMAKE_C_STANDARD_DEFAULT "")
+
+set(CMAKE_C_CLANG_TIDY_DRIVER_MODE "cl")
+
+# There are no C compiler modes so we hard-code the known compiler supported
+# features. Override the default macro for this special case. Pretend that
+# all language standards are available so that at least compilation
+# can be attempted.
+macro(cmake_record_c_compile_features)
+ list(APPEND CMAKE_C_COMPILE_FEATURES
+ c_std_90
+ c_std_99
+ c_std_11
+ c_function_prototypes
+ )
+ list(APPEND CMAKE_C90_COMPILE_FEATURES c_std_90 c_function_prototypes)
+ list(APPEND CMAKE_C99_COMPILE_FEATURES c_std_99)
+ list(APPEND CMAKE_C11_COMPILE_FEATURES c_std_11)
+ if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 14.0)
+ list(APPEND CMAKE_C_COMPILE_FEATURES c_variadic_macros)
+ list(APPEND CMAKE_C99_COMPILE_FEATURES c_variadic_macros)
+ endif()
+ set(_result 0) # expected by cmake_determine_compile_features
+endmacro()
+
+# /JMC "Just My Code" is only supported by MSVC 19.05 onward.
+if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 19.05)
+ set(CMAKE_C_COMPILE_OPTIONS_JMC "-JMC")
+endif()
diff --git a/share/cmake-3.16/Modules/Compiler/MSVC-CXX-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/MSVC-CXX-FeatureTests.cmake
index 125974a..125974a 100644
--- a/share/cmake-3.16/Modules/Compiler/MSVC-CXX-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/MSVC-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-CXX.cmake b/share/cmake-3.17/Modules/Compiler/MSVC-CXX.cmake
new file mode 100644
index 0000000..1dfc760
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/MSVC-CXX.cmake
@@ -0,0 +1,74 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+include(Compiler/CMakeCommonCompilerMacros)
+
+set(CMAKE_CXX_CLANG_TIDY_DRIVER_MODE "cl")
+
+if ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0.24215.1 AND
+ CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.10) OR
+ CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.10.25017)
+
+ # VS 2015 Update 3 and above support language standard level flags,
+ # with the default and minimum level being C++14.
+ set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std:c++14")
+ set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std:c++14")
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.11.25505)
+ set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
+ set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
+ set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std:c++17")
+ set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std:c++17")
+ else()
+ set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std:c++latest")
+ set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std:c++latest")
+ endif()
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.12.25835)
+ set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std:c++latest")
+ set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std:c++latest")
+ endif()
+
+ __compiler_check_default_language_standard(CXX 19.0 14)
+
+elseif (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)
+ # MSVC has no specific options to set language standards, but set them as
+ # empty strings anyways so the feature test infrastructure can at least check
+ # to see if they are defined.
+ set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "")
+
+ # There is no meaningful default for this
+ set(CMAKE_CXX_STANDARD_DEFAULT "")
+
+ # There are no compiler modes so we only need to test features once.
+ # Override the default macro for this special case. Pretend that
+ # all language standards are available so that at least compilation
+ # can be attempted.
+ macro(cmake_record_cxx_compile_features)
+ list(APPEND CMAKE_CXX_COMPILE_FEATURES
+ cxx_std_98
+ cxx_std_11
+ cxx_std_14
+ cxx_std_17
+ cxx_std_20
+ )
+ _record_compiler_features(CXX "" CMAKE_CXX_COMPILE_FEATURES)
+ endmacro()
+endif()
+
+# /JMC "Just My Code" is only supported by MSVC 19.05 onward.
+if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.05)
+ set(CMAKE_CXX_COMPILE_OPTIONS_JMC "-JMC")
+endif()
diff --git a/share/cmake-3.16/Modules/Compiler/MSVC-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/MSVC-DetermineCompiler.cmake
index 313de89..313de89 100644
--- a/share/cmake-3.16/Modules/Compiler/MSVC-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/MSVC-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/NAG-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/NAG-Fortran.cmake
new file mode 100644
index 0000000..2111c65
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/NAG-Fortran.cmake
@@ -0,0 +1,39 @@
+# Help CMAKE_PARSE_IMPLICIT_LINK_INFO detect NAG Fortran object files.
+if(NOT CMAKE_Fortran_COMPILER_WORKS AND NOT CMAKE_Fortran_COMPILER_FORCED)
+ message(CHECK_START "Detecting NAG Fortran directory")
+ # Run with -dryrun to see sample "link" line.
+ execute_process(
+ COMMAND ${CMAKE_Fortran_COMPILER} dummy.o -dryrun
+ OUTPUT_VARIABLE _dryrun
+ ERROR_VARIABLE _dryrun
+ )
+ # Match an object file.
+ string(REGEX MATCH "/[^ ]*/[^ /][^ /]*\\.o" _nag_obj "${_dryrun}")
+ if(_nag_obj)
+ # Parse object directory and convert to a regex.
+ string(REGEX REPLACE "/[^/]*$" "" _nag_dir "${_nag_obj}")
+ string(REGEX REPLACE "([][+.*()^])" "\\\\\\1" _nag_regex "${_nag_dir}")
+ set(CMAKE_Fortran_IMPLICIT_OBJECT_REGEX "^${_nag_regex}/")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Detecting NAG Fortran directory with -dryrun found\n"
+ " object: ${_nag_obj}\n"
+ " directory: ${_nag_dir}\n"
+ " regex: ${CMAKE_Fortran_IMPLICIT_OBJECT_REGEX}\n"
+ "from output:\n${_dryrun}\n\n")
+ message(CHECK_PASS "${_nag_dir}")
+ else()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Detecting NAG Fortran directory with -dryrun failed:\n${_dryrun}\n\n")
+ message(CHECK_FAIL "failed")
+ endif()
+endif()
+
+set(CMAKE_Fortran_SUBMODULE_SEP ".")
+set(CMAKE_Fortran_SUBMODULE_EXT ".sub")
+set(CMAKE_Fortran_MODDIR_FLAG "-mdir ")
+set(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-PIC")
+set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixed")
+set(CMAKE_Fortran_FORMAT_FREE_FLAG "-free")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PIC "-PIC")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PIE "-PIC")
+set(CMAKE_Fortran_RESPONSE_FILE_LINK_FLAG "-Wl,@")
diff --git a/share/cmake-3.17/Modules/Compiler/NVIDIA-CUDA.cmake b/share/cmake-3.17/Modules/Compiler/NVIDIA-CUDA.cmake
new file mode 100644
index 0000000..1f4d54d
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/NVIDIA-CUDA.cmake
@@ -0,0 +1,89 @@
+include(Compiler/CMakeCommonCompilerMacros)
+
+set(CMAKE_CUDA_COMPILER_HAS_DEVICE_LINK_PHASE True)
+set(CMAKE_CUDA_VERBOSE_FLAG "-v")
+set(CMAKE_CUDA_VERBOSE_COMPILE_FLAG "-Xcompiler=-v")
+
+if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 10.2.89)
+ # The -forward-unknown-to-host-compiler flag was only
+ # added to nvcc in 10.2 so before that we had no good
+ # way to invoke the CUDA compiler and propagate unknown
+ # flags such as -pthread to the host compiler
+ set(_CMAKE_CUDA_EXTRA_FLAGS "-forward-unknown-to-host-compiler")
+else()
+ set(_CMAKE_CUDA_EXTRA_FLAGS "")
+endif()
+
+if(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "8.0.0")
+ set(_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS "-Wno-deprecated-gpu-targets")
+else()
+ set(_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS "")
+endif()
+
+if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 10.2.89)
+ # The -MD flag was only added to nvcc in 10.2 so
+ # before that we had to invoke the compiler twice
+ # to get header dependency information
+ set(CMAKE_DEPFILE_FLAGS_CUDA "-MD -MT <OBJECT> -MF <DEPFILE>")
+endif()
+
+if(NOT "x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
+ set(CMAKE_CUDA_COMPILE_OPTIONS_PIE -Xcompiler=-fPIE)
+ set(CMAKE_CUDA_COMPILE_OPTIONS_PIC -Xcompiler=-fPIC)
+ set(CMAKE_CUDA_COMPILE_OPTIONS_VISIBILITY -Xcompiler=-fvisibility=)
+ # CMAKE_SHARED_LIBRARY_CUDA_FLAGS is sent to the host linker so we
+ # don't need to forward it through nvcc.
+ set(CMAKE_SHARED_LIBRARY_CUDA_FLAGS -fPIC)
+ string(APPEND CMAKE_CUDA_FLAGS_INIT " ")
+ string(APPEND CMAKE_CUDA_FLAGS_DEBUG_INIT " -g")
+ string(APPEND CMAKE_CUDA_FLAGS_RELEASE_INIT " -O3 -DNDEBUG")
+ string(APPEND CMAKE_CUDA_FLAGS_MINSIZEREL_INIT " -O1 -DNDEBUG")
+ string(APPEND CMAKE_CUDA_FLAGS_RELWITHDEBINFO_INIT " -O2 -g -DNDEBUG")
+endif()
+set(CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS -shared)
+set(CMAKE_INCLUDE_SYSTEM_FLAG_CUDA -isystem=)
+
+set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "STATIC")
+set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_STATIC "cudadevrt;cudart_static")
+set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_SHARED "cudadevrt;cudart")
+set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_NONE "")
+
+if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
+ set(CMAKE_CUDA03_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CUDA03_EXTENSION_COMPILE_OPTION "")
+
+ set(CMAKE_CUDA11_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CUDA11_EXTENSION_COMPILE_OPTION "")
+
+ if (NOT CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 9.0)
+ set(CMAKE_CUDA14_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CUDA14_EXTENSION_COMPILE_OPTION "")
+ endif()
+else()
+ set(CMAKE_CUDA03_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CUDA03_EXTENSION_COMPILE_OPTION "")
+
+ set(CMAKE_CUDA11_STANDARD_COMPILE_OPTION "-std=c++11")
+ set(CMAKE_CUDA11_EXTENSION_COMPILE_OPTION "-std=c++11")
+
+ if (NOT CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 9.0)
+ set(CMAKE_CUDA03_STANDARD_COMPILE_OPTION "-std=c++03")
+ set(CMAKE_CUDA03_EXTENSION_COMPILE_OPTION "-std=c++03")
+ set(CMAKE_CUDA14_STANDARD_COMPILE_OPTION "-std=c++14")
+ set(CMAKE_CUDA14_EXTENSION_COMPILE_OPTION "-std=c++14")
+ endif()
+
+endif()
+
+# FIXME: investigate use of --options-file.
+# Tell Makefile generator that nvcc does not support @<rspfile> syntax.
+set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_INCLUDES 0)
+set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES 0)
+set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_OBJECTS 0)
+
+if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "9.0")
+ set(CMAKE_CUDA_RESPONSE_FILE_DEVICE_LINK_FLAG "--options-file ")
+ set(CMAKE_CUDA_RESPONSE_FILE_FLAG "--options-file ")
+endif()
+
+__compiler_check_default_language_standard(CUDA 6.0 03)
diff --git a/share/cmake-3.16/Modules/Compiler/NVIDIA-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/NVIDIA-DetermineCompiler.cmake
index bf9111a..bf9111a 100644
--- a/share/cmake-3.16/Modules/Compiler/NVIDIA-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/NVIDIA-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake
index 2ed116c..2ed116c 100644
--- a/share/cmake-3.16/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/PGI-C.cmake b/share/cmake-3.17/Modules/Compiler/PGI-C.cmake
index c39dbe5..c39dbe5 100644
--- a/share/cmake-3.16/Modules/Compiler/PGI-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/PGI-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/PGI-CXX.cmake b/share/cmake-3.17/Modules/Compiler/PGI-CXX.cmake
index c77de36..c77de36 100644
--- a/share/cmake-3.16/Modules/Compiler/PGI-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/PGI-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/PGI-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/PGI-DetermineCompiler.cmake
index 8d3dc9c..8d3dc9c 100644
--- a/share/cmake-3.16/Modules/Compiler/PGI-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/PGI-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/PGI-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/PGI-Fortran.cmake
index 3daf798..3daf798 100644
--- a/share/cmake-3.16/Modules/Compiler/PGI-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Compiler/PGI-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/PGI.cmake b/share/cmake-3.17/Modules/Compiler/PGI.cmake
index 4f8b90b..4f8b90b 100644
--- a/share/cmake-3.16/Modules/Compiler/PGI.cmake
+++ b/share/cmake-3.17/Modules/Compiler/PGI.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/PathScale-C.cmake b/share/cmake-3.17/Modules/Compiler/PathScale-C.cmake
index 94c7d08..94c7d08 100644
--- a/share/cmake-3.16/Modules/Compiler/PathScale-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/PathScale-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/PathScale-CXX.cmake b/share/cmake-3.17/Modules/Compiler/PathScale-CXX.cmake
index 276b81b..276b81b 100644
--- a/share/cmake-3.16/Modules/Compiler/PathScale-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/PathScale-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/PathScale-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/PathScale-DetermineCompiler.cmake
index 4eb81de..4eb81de 100644
--- a/share/cmake-3.16/Modules/Compiler/PathScale-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/PathScale-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/PathScale-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/PathScale-Fortran.cmake
index d903621..d903621 100644
--- a/share/cmake-3.16/Modules/Compiler/PathScale-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Compiler/PathScale-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/PathScale.cmake b/share/cmake-3.17/Modules/Compiler/PathScale.cmake
index d5f8cb1..d5f8cb1 100644
--- a/share/cmake-3.16/Modules/Compiler/PathScale.cmake
+++ b/share/cmake-3.17/Modules/Compiler/PathScale.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/QCC-ASM.cmake b/share/cmake-3.17/Modules/Compiler/QCC-ASM.cmake
index 9a9935b..9a9935b 100644
--- a/share/cmake-3.16/Modules/Compiler/QCC-ASM.cmake
+++ b/share/cmake-3.17/Modules/Compiler/QCC-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/QCC-C-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/QCC-C-FeatureTests.cmake
index 68f4197..68f4197 100644
--- a/share/cmake-3.16/Modules/Compiler/QCC-C-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/QCC-C-FeatureTests.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/QCC-C.cmake b/share/cmake-3.17/Modules/Compiler/QCC-C.cmake
index 6db619e..6db619e 100644
--- a/share/cmake-3.16/Modules/Compiler/QCC-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/QCC-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/QCC-CXX-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/QCC-CXX-FeatureTests.cmake
index c836b94..c836b94 100644
--- a/share/cmake-3.16/Modules/Compiler/QCC-CXX-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/QCC-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/QCC-CXX.cmake b/share/cmake-3.17/Modules/Compiler/QCC-CXX.cmake
index 0e7314a..0e7314a 100644
--- a/share/cmake-3.16/Modules/Compiler/QCC-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/QCC-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/QCC.cmake b/share/cmake-3.17/Modules/Compiler/QCC.cmake
new file mode 100644
index 0000000..10e1389
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/QCC.cmake
@@ -0,0 +1,37 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+include(Compiler/GNU)
+
+macro(__compiler_qcc lang)
+ __compiler_gnu(${lang})
+
+ # http://www.qnx.com/developers/docs/6.4.0/neutrino/utilities/q/qcc.html#examples
+ set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "-V")
+
+ set(CMAKE_PREFIX_LIBRARY_ARCHITECTURE "ON")
+
+ set(CMAKE_${lang}_COMPILE_OPTIONS_SYSROOT "-Wc,-isysroot,")
+ set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-Wp,-isystem,")
+ set(CMAKE_DEPFILE_FLAGS_${lang} "-Wp,-MD,<DEPFILE> -Wp,-MT,<OBJECT> -Wp,-MF,<DEPFILE>")
+
+ set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl,")
+ set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",")
+
+ set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE NO)
+ set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO)
+
+ set(CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "${CMAKE_${lang}_COMPILER}")
+ if(CMAKE_${lang}_COMPILER_ARG1)
+ separate_arguments(_COMPILER_ARGS NATIVE_COMMAND "${CMAKE_${lang}_COMPILER_ARG1}")
+ list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND ${_COMPILER_ARGS})
+ unset(_COMPILER_ARGS)
+ endif()
+ list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "-Wp,-dM" "-E" "-c" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
+
+ unset(CMAKE_${lang}_COMPILE_OPTIONS_IPO)
+ unset(CMAKE_${lang}_ARCHIVE_CREATE_IPO)
+ unset(CMAKE_${lang}_ARCHIVE_APPEND_IPO)
+ unset(CMAKE_${lang}_ARCHIVE_FINISH_IPO)
+endmacro()
diff --git a/share/cmake-3.16/Modules/Compiler/SCO-C.cmake b/share/cmake-3.17/Modules/Compiler/SCO-C.cmake
index 6e762cc..6e762cc 100644
--- a/share/cmake-3.16/Modules/Compiler/SCO-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SCO-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/SCO-CXX.cmake b/share/cmake-3.17/Modules/Compiler/SCO-CXX.cmake
index 5b713a0..5b713a0 100644
--- a/share/cmake-3.16/Modules/Compiler/SCO-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SCO-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/SCO-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/SCO-DetermineCompiler.cmake
index a44b22b..a44b22b 100644
--- a/share/cmake-3.16/Modules/Compiler/SCO-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SCO-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/SCO.cmake b/share/cmake-3.17/Modules/Compiler/SCO.cmake
index 7f643d9..7f643d9 100644
--- a/share/cmake-3.16/Modules/Compiler/SCO.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SCO.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/SDCC-C-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/SDCC-C-DetermineCompiler.cmake
index 4c70c5e..4c70c5e 100644
--- a/share/cmake-3.16/Modules/Compiler/SDCC-C-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SDCC-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/SunPro-ASM.cmake b/share/cmake-3.17/Modules/Compiler/SunPro-ASM.cmake
index 0d67400..0d67400 100644
--- a/share/cmake-3.16/Modules/Compiler/SunPro-ASM.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SunPro-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/SunPro-C-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/SunPro-C-DetermineCompiler.cmake
index e9d7457..e9d7457 100644
--- a/share/cmake-3.16/Modules/Compiler/SunPro-C-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SunPro-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/SunPro-C-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/SunPro-C-FeatureTests.cmake
index cccf3ae..cccf3ae 100644
--- a/share/cmake-3.16/Modules/Compiler/SunPro-C-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SunPro-C-FeatureTests.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/SunPro-C.cmake b/share/cmake-3.17/Modules/Compiler/SunPro-C.cmake
index 7e962b8..7e962b8 100644
--- a/share/cmake-3.16/Modules/Compiler/SunPro-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SunPro-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake
index 5c23a95..5c23a95 100644
--- a/share/cmake-3.16/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/SunPro-CXX-FeatureTests.cmake b/share/cmake-3.17/Modules/Compiler/SunPro-CXX-FeatureTests.cmake
index e7133c1..e7133c1 100644
--- a/share/cmake-3.16/Modules/Compiler/SunPro-CXX-FeatureTests.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SunPro-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/SunPro-CXX.cmake b/share/cmake-3.17/Modules/Compiler/SunPro-CXX.cmake
index c946c64..c946c64 100644
--- a/share/cmake-3.16/Modules/Compiler/SunPro-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SunPro-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/SunPro-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/SunPro-Fortran.cmake
index 0c93c94..0c93c94 100644
--- a/share/cmake-3.16/Modules/Compiler/SunPro-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SunPro-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/SunPro.cmake b/share/cmake-3.17/Modules/Compiler/SunPro.cmake
index 52da39a..52da39a 100644
--- a/share/cmake-3.16/Modules/Compiler/SunPro.cmake
+++ b/share/cmake-3.17/Modules/Compiler/SunPro.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/TI-ASM.cmake b/share/cmake-3.17/Modules/Compiler/TI-ASM.cmake
index a566d70..a566d70 100644
--- a/share/cmake-3.16/Modules/Compiler/TI-ASM.cmake
+++ b/share/cmake-3.17/Modules/Compiler/TI-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/TI-C.cmake b/share/cmake-3.17/Modules/Compiler/TI-C.cmake
index 1c0f4bc..1c0f4bc 100644
--- a/share/cmake-3.16/Modules/Compiler/TI-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/TI-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/TI-CXX.cmake b/share/cmake-3.17/Modules/Compiler/TI-CXX.cmake
index 4c6af06..4c6af06 100644
--- a/share/cmake-3.16/Modules/Compiler/TI-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/TI-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/TI-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/TI-DetermineCompiler.cmake
index 19aa9e3..19aa9e3 100644
--- a/share/cmake-3.16/Modules/Compiler/TI-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/TI-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake
index 8d6de7e..8d6de7e 100644
--- a/share/cmake-3.16/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/TinyCC-C.cmake b/share/cmake-3.17/Modules/Compiler/TinyCC-C.cmake
index 6367695..6367695 100644
--- a/share/cmake-3.16/Modules/Compiler/TinyCC-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/TinyCC-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake
index 97c2263..97c2263 100644
--- a/share/cmake-3.16/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/VisualAge-C.cmake b/share/cmake-3.17/Modules/Compiler/VisualAge-C.cmake
index 40b609e..40b609e 100644
--- a/share/cmake-3.16/Modules/Compiler/VisualAge-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/VisualAge-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake
index cd53499..cd53499 100644
--- a/share/cmake-3.16/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/VisualAge-CXX.cmake b/share/cmake-3.17/Modules/Compiler/VisualAge-CXX.cmake
index 2509b43..2509b43 100644
--- a/share/cmake-3.16/Modules/Compiler/VisualAge-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/VisualAge-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/VisualAge-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/VisualAge-Fortran.cmake
index 3ef3178..3ef3178 100644
--- a/share/cmake-3.16/Modules/Compiler/VisualAge-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Compiler/VisualAge-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/Watcom-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/Watcom-DetermineCompiler.cmake
index 153e350..153e350 100644
--- a/share/cmake-3.16/Modules/Compiler/Watcom-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/Watcom-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/XL-ASM.cmake b/share/cmake-3.17/Modules/Compiler/XL-ASM.cmake
index 9177b39..9177b39 100644
--- a/share/cmake-3.16/Modules/Compiler/XL-ASM.cmake
+++ b/share/cmake-3.17/Modules/Compiler/XL-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/XL-C-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/XL-C-DetermineCompiler.cmake
index 3f4e05c..3f4e05c 100644
--- a/share/cmake-3.16/Modules/Compiler/XL-C-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/XL-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/XL-C.cmake b/share/cmake-3.17/Modules/Compiler/XL-C.cmake
index 2077bda..2077bda 100644
--- a/share/cmake-3.16/Modules/Compiler/XL-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/XL-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/XL-CXX-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/XL-CXX-DetermineCompiler.cmake
index dffa4bc..dffa4bc 100644
--- a/share/cmake-3.16/Modules/Compiler/XL-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/XL-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/XL-CXX.cmake b/share/cmake-3.17/Modules/Compiler/XL-CXX.cmake
index 3037851..3037851 100644
--- a/share/cmake-3.16/Modules/Compiler/XL-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XL-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/XL-Fortran.cmake
new file mode 100644
index 0000000..1683dff
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/XL-Fortran.cmake
@@ -0,0 +1,24 @@
+include(Compiler/XL)
+__compiler_xl(Fortran)
+
+set(CMAKE_Fortran_SUBMODULE_SEP "_")
+set(CMAKE_Fortran_SUBMODULE_EXT ".smod")
+
+set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-qfixed") # [=<right_margin>]
+set(CMAKE_Fortran_FORMAT_FREE_FLAG "-qfree") # [=f90|ibm]
+
+set(CMAKE_Fortran_MODDIR_FLAG "-qmoddir=")
+
+set(CMAKE_Fortran_DEFINE_FLAG "-WF,-D")
+
+# -qthreaded = Ensures that all optimizations will be thread-safe
+# -qhalt=e = Halt on error messages (rather than just severe errors)
+string(APPEND CMAKE_Fortran_FLAGS_INIT " -qthreaded -qhalt=e")
+
+# xlf: 1501-214 (W) command option E reserved for future use - ignored
+set(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE)
+set(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE)
+
+set(CMAKE_Fortran_PREPROCESS_SOURCE
+ "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -qpreprocess -qnoobject -qsuppress=1517-020 -tF -B \"${CMAKE_CURRENT_LIST_DIR}/XL-Fortran/\" -WF,--cpp,\"${CMAKE_Fortran_XL_CPP}\",--out,<PREPROCESSED_SOURCE> <SOURCE>"
+ )
diff --git a/share/cmake-3.17/Modules/Compiler/XL-Fortran/cpp b/share/cmake-3.17/Modules/Compiler/XL-Fortran/cpp
new file mode 100644
index 0000000..1fd62c2
--- /dev/null
+++ b/share/cmake-3.17/Modules/Compiler/XL-Fortran/cpp
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+
+# Source file.
+src="$(printf %q "$1")"
+shift
+
+# Output file the compiler expects.
+out="$(printf %q "$1")"
+shift
+
+# Create the file the compiler expects. It will check syntax.
+>"$out"
+
+cpp='cpp'
+opts=''
+while test "$#" != 0; do
+ case "$1" in
+ # Extract the option for the path to cpp.
+ --cpp) shift; cpp="$(printf %q "$1")" ;;
+ # Extract the option for our own output file.
+ --out) shift; out="$(printf %q "$1")" ;;
+ # Collect the rest of the command line.
+ *) opts="$opts $(printf %q "$1")" ;;
+ esac
+ shift
+done
+
+# Execute the real preprocessor tool.
+eval "exec $cpp $src $out $opts"
diff --git a/share/cmake-3.16/Modules/Compiler/XL.cmake b/share/cmake-3.17/Modules/Compiler/XL.cmake
index fc71ab4..fc71ab4 100644
--- a/share/cmake-3.16/Modules/Compiler/XL.cmake
+++ b/share/cmake-3.17/Modules/Compiler/XL.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/XLClang-C-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/XLClang-C-DetermineCompiler.cmake
index 4d89921..4d89921 100644
--- a/share/cmake-3.16/Modules/Compiler/XLClang-C-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/XLClang-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/XLClang-C.cmake b/share/cmake-3.17/Modules/Compiler/XLClang-C.cmake
index 54c18a6..54c18a6 100644
--- a/share/cmake-3.16/Modules/Compiler/XLClang-C.cmake
+++ b/share/cmake-3.17/Modules/Compiler/XLClang-C.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake
index 4d89921..4d89921 100644
--- a/share/cmake-3.16/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/XLClang-CXX.cmake b/share/cmake-3.17/Modules/Compiler/XLClang-CXX.cmake
index 9ea3d7c..9ea3d7c 100644
--- a/share/cmake-3.16/Modules/Compiler/XLClang-CXX.cmake
+++ b/share/cmake-3.17/Modules/Compiler/XLClang-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/XLClang.cmake b/share/cmake-3.17/Modules/Compiler/XLClang.cmake
index cdf0fdc..cdf0fdc 100644
--- a/share/cmake-3.16/Modules/Compiler/XLClang.cmake
+++ b/share/cmake-3.17/Modules/Compiler/XLClang.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/zOS-C-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/zOS-C-DetermineCompiler.cmake
index daa3781..daa3781 100644
--- a/share/cmake-3.16/Modules/Compiler/zOS-C-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/zOS-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake
index a08ff57..a08ff57 100644
--- a/share/cmake-3.16/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.17/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.16/Modules/CompilerId/GHS_default.gpj.in b/share/cmake-3.17/Modules/CompilerId/GHS_default.gpj.in
index b5cea5c..b5cea5c 100644
--- a/share/cmake-3.16/Modules/CompilerId/GHS_default.gpj.in
+++ b/share/cmake-3.17/Modules/CompilerId/GHS_default.gpj.in
diff --git a/share/cmake-3.16/Modules/CompilerId/GHS_lib.gpj.in b/share/cmake-3.17/Modules/CompilerId/GHS_lib.gpj.in
index 149b981..149b981 100644
--- a/share/cmake-3.16/Modules/CompilerId/GHS_lib.gpj.in
+++ b/share/cmake-3.17/Modules/CompilerId/GHS_lib.gpj.in
diff --git a/share/cmake-3.16/Modules/CompilerId/VS-10.csproj.in b/share/cmake-3.17/Modules/CompilerId/VS-10.csproj.in
index ed5e847..ed5e847 100644
--- a/share/cmake-3.16/Modules/CompilerId/VS-10.csproj.in
+++ b/share/cmake-3.17/Modules/CompilerId/VS-10.csproj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/VS-10.vcxproj.in b/share/cmake-3.17/Modules/CompilerId/VS-10.vcxproj.in
new file mode 100644
index 0000000..b48a332
--- /dev/null
+++ b/share/cmake-3.17/Modules/CompilerId/VS-10.vcxproj.in
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|@id_platform@">
+ <Configuration>Debug</Configuration>
+ <Platform>@id_platform@</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{CAE07175-D007-4FC3-BFE8-47B392814159}</ProjectGuid>
+ <RootNamespace>CompilerId@id_lang@</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ @id_system@
+ @id_system_version@
+ @id_WindowsTargetPlatformVersion@
+ @id_WindowsSDKDesktopARMSupport@
+ @id_CudaToolkitCustomDir@
+ @id_ToolsetVCTargetsDir@
+ @id_CustomGlobals@
+ </PropertyGroup>
+ @id_toolset_version_props@
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup>
+ @id_PreferredToolArchitecture@
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ @id_toolset@
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ @id_Import_props@
+ </ImportGroup>
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'">.\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'">$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@id_platform@'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>TurnOffAllWarnings</WarningLevel>
+ <DebugInformationFormat>
+ </DebugInformationFormat>
+ </ClCompile>
+ @id_ItemDefinitionGroup_entry@
+ <Link>
+ <GenerateDebugInformation>false</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ @id_Link_AdditionalDependencies@
+ </Link>
+ <PostBuildEvent>
+ <Command>@id_PostBuildEvent_Command@</Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <@id_compile@ Include="@id_src@" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ @id_Import_targets@
+ </ImportGroup>
+</Project>
diff --git a/share/cmake-3.16/Modules/CompilerId/VS-7.vcproj.in b/share/cmake-3.17/Modules/CompilerId/VS-7.vcproj.in
index 9e3c3c3..9e3c3c3 100644
--- a/share/cmake-3.16/Modules/CompilerId/VS-7.vcproj.in
+++ b/share/cmake-3.17/Modules/CompilerId/VS-7.vcproj.in
diff --git a/share/cmake-3.16/Modules/CompilerId/VS-Intel.vfproj.in b/share/cmake-3.17/Modules/CompilerId/VS-Intel.vfproj.in
index 044dd20..044dd20 100644
--- a/share/cmake-3.16/Modules/CompilerId/VS-Intel.vfproj.in
+++ b/share/cmake-3.17/Modules/CompilerId/VS-Intel.vfproj.in
diff --git a/share/cmake-3.16/Modules/CompilerId/VS-NsightTegra.vcxproj.in b/share/cmake-3.17/Modules/CompilerId/VS-NsightTegra.vcxproj.in
index b7389eb..b7389eb 100644
--- a/share/cmake-3.16/Modules/CompilerId/VS-NsightTegra.vcxproj.in
+++ b/share/cmake-3.17/Modules/CompilerId/VS-NsightTegra.vcxproj.in
diff --git a/share/cmake-3.16/Modules/CompilerId/Xcode-3.pbxproj.in b/share/cmake-3.17/Modules/CompilerId/Xcode-3.pbxproj.in
index 672044e..672044e 100644
--- a/share/cmake-3.16/Modules/CompilerId/Xcode-3.pbxproj.in
+++ b/share/cmake-3.17/Modules/CompilerId/Xcode-3.pbxproj.in
diff --git a/share/cmake-3.16/Modules/CompilerId/main.swift.in b/share/cmake-3.17/Modules/CompilerId/main.swift.in
index 13f0ba0..13f0ba0 100644
--- a/share/cmake-3.16/Modules/CompilerId/main.swift.in
+++ b/share/cmake-3.17/Modules/CompilerId/main.swift.in
diff --git a/share/cmake-3.16/Modules/Dart.cmake b/share/cmake-3.17/Modules/Dart.cmake
index 154fe9d..154fe9d 100644
--- a/share/cmake-3.16/Modules/Dart.cmake
+++ b/share/cmake-3.17/Modules/Dart.cmake
diff --git a/share/cmake-3.17/Modules/DartConfiguration.tcl.in b/share/cmake-3.17/Modules/DartConfiguration.tcl.in
new file mode 100644
index 0000000..086ba07
--- /dev/null
+++ b/share/cmake-3.17/Modules/DartConfiguration.tcl.in
@@ -0,0 +1,107 @@
+# This file is configured by CMake automatically as DartConfiguration.tcl
+# If you choose not to use CMake, this file may be hand configured, by
+# filling in the required variables.
+
+
+# Configuration directories and files
+SourceDirectory: @PROJECT_SOURCE_DIR@
+BuildDirectory: @PROJECT_BINARY_DIR@
+
+# Where to place the cost data store
+CostDataFile: @CTEST_COST_DATA_FILE@
+
+# Site is something like machine.domain, i.e. pragmatic.crd
+Site: @SITE@
+
+# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++
+BuildName: @BUILDNAME@
+
+# Subprojects
+LabelsForSubprojects: @CTEST_LABELS_FOR_SUBPROJECTS@
+
+# Submission information
+SubmitURL: @SUBMIT_URL@
+
+# Dashboard start time
+NightlyStartTime: @NIGHTLY_START_TIME@
+
+# Commands for the build/test/submit cycle
+ConfigureCommand: "@CMAKE_COMMAND@" "@PROJECT_SOURCE_DIR@"
+MakeCommand: @MAKECOMMAND@
+DefaultCTestConfigurationType: @DEFAULT_CTEST_CONFIGURATION_TYPE@
+
+# version control
+UpdateVersionOnly: @CTEST_UPDATE_VERSION_ONLY@
+
+# CVS options
+# Default is "-d -P -A"
+CVSCommand: @CVSCOMMAND@
+CVSUpdateOptions: @CVS_UPDATE_OPTIONS@
+
+# Subversion options
+SVNCommand: @SVNCOMMAND@
+SVNOptions: @CTEST_SVN_OPTIONS@
+SVNUpdateOptions: @SVN_UPDATE_OPTIONS@
+
+# Git options
+GITCommand: @GITCOMMAND@
+GITInitSubmodules: @CTEST_GIT_INIT_SUBMODULES@
+GITUpdateOptions: @GIT_UPDATE_OPTIONS@
+GITUpdateCustom: @CTEST_GIT_UPDATE_CUSTOM@
+
+# Perforce options
+P4Command: @P4COMMAND@
+P4Client: @CTEST_P4_CLIENT@
+P4Options: @CTEST_P4_OPTIONS@
+P4UpdateOptions: @CTEST_P4_UPDATE_OPTIONS@
+P4UpdateCustom: @CTEST_P4_UPDATE_CUSTOM@
+
+# Generic update command
+UpdateCommand: @UPDATE_COMMAND@
+UpdateOptions: @UPDATE_OPTIONS@
+UpdateType: @UPDATE_TYPE@
+
+# Compiler info
+Compiler: @CMAKE_CXX_COMPILER@
+CompilerVersion: @CMAKE_CXX_COMPILER_VERSION@
+
+# Dynamic analysis (MemCheck)
+PurifyCommand: @PURIFYCOMMAND@
+ValgrindCommand: @VALGRIND_COMMAND@
+ValgrindCommandOptions: @VALGRIND_COMMAND_OPTIONS@
+DrMemoryCommand: @DRMEMORY_COMMAND@
+DrMemoryCommandOptions: @DRMEMORY_COMMAND_OPTIONS@
+MemoryCheckType: @MEMORYCHECK_TYPE@
+MemoryCheckSanitizerOptions: @MEMORYCHECK_SANITIZER_OPTIONS@
+MemoryCheckCommand: @MEMORYCHECK_COMMAND@
+MemoryCheckCommandOptions: @MEMORYCHECK_COMMAND_OPTIONS@
+MemoryCheckSuppressionFile: @MEMORYCHECK_SUPPRESSIONS_FILE@
+
+# Coverage
+CoverageCommand: @COVERAGE_COMMAND@
+CoverageExtraFlags: @COVERAGE_EXTRA_FLAGS@
+
+# Cluster commands
+SlurmBatchCommand: @SLURM_SBATCH_COMMAND@
+SlurmRunCommand: @SLURM_SRUN_COMMAND@
+
+# Testing options
+# TimeOut is the amount of time in seconds to wait for processes
+# to complete during testing. After TimeOut seconds, the
+# process will be summarily terminated.
+# Currently set to 25 minutes
+TimeOut: @DART_TESTING_TIMEOUT@
+
+# During parallel testing CTest will not start a new test if doing
+# so would cause the system load to exceed this value.
+TestLoad: @CTEST_TEST_LOAD@
+
+UseLaunchers: @CTEST_USE_LAUNCHERS@
+CurlOptions: @CTEST_CURL_OPTIONS@
+# warning, if you add new options here that have to do with submit,
+# you have to update cmCTestSubmitCommand.cxx
+
+# For CTest submissions that timeout, these options
+# specify behavior for retrying the submission
+CTestSubmitRetryDelay: @CTEST_SUBMIT_RETRY_DELAY@
+CTestSubmitRetryCount: @CTEST_SUBMIT_RETRY_COUNT@
diff --git a/share/cmake-3.17/Modules/DeployQt4.cmake b/share/cmake-3.17/Modules/DeployQt4.cmake
new file mode 100644
index 0000000..9aa4383
--- /dev/null
+++ b/share/cmake-3.17/Modules/DeployQt4.cmake
@@ -0,0 +1,399 @@
+# 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.
+#]=======================================================================]
+
+# The functions defined in this file depend on the fixup_bundle function
+# (and others) found in BundleUtilities.cmake
+
+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}")
+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()
+
+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(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()
+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)
+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(\"${CMAKE_CURRENT_FUNCTION_LIST_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/share/cmake-3.16/Modules/Documentation.cmake b/share/cmake-3.17/Modules/Documentation.cmake
index aaf24f6..aaf24f6 100644
--- a/share/cmake-3.16/Modules/Documentation.cmake
+++ b/share/cmake-3.17/Modules/Documentation.cmake
diff --git a/share/cmake-3.16/Modules/DummyCXXFile.cxx b/share/cmake-3.17/Modules/DummyCXXFile.cxx
index f8b643a..f8b643a 100644
--- a/share/cmake-3.16/Modules/DummyCXXFile.cxx
+++ b/share/cmake-3.17/Modules/DummyCXXFile.cxx
diff --git a/share/cmake-3.16/Modules/ExternalData.cmake b/share/cmake-3.17/Modules/ExternalData.cmake
index e5dbcd9..e5dbcd9 100644
--- a/share/cmake-3.16/Modules/ExternalData.cmake
+++ b/share/cmake-3.17/Modules/ExternalData.cmake
diff --git a/share/cmake-3.16/Modules/ExternalData_config.cmake.in b/share/cmake-3.17/Modules/ExternalData_config.cmake.in
index 18be6b3..18be6b3 100644
--- a/share/cmake-3.16/Modules/ExternalData_config.cmake.in
+++ b/share/cmake-3.17/Modules/ExternalData_config.cmake.in
diff --git a/share/cmake-3.16/Modules/ExternalProject-download.cmake.in b/share/cmake-3.17/Modules/ExternalProject-download.cmake.in
index 99fb917..99fb917 100644
--- a/share/cmake-3.16/Modules/ExternalProject-download.cmake.in
+++ b/share/cmake-3.17/Modules/ExternalProject-download.cmake.in
diff --git a/share/cmake-3.16/Modules/ExternalProject-verify.cmake.in b/share/cmake-3.17/Modules/ExternalProject-verify.cmake.in
index c06da4e..c06da4e 100644
--- a/share/cmake-3.16/Modules/ExternalProject-verify.cmake.in
+++ b/share/cmake-3.17/Modules/ExternalProject-verify.cmake.in
diff --git a/share/cmake-3.17/Modules/ExternalProject.cmake b/share/cmake-3.17/Modules/ExternalProject.cmake
new file mode 100644
index 0000000..5bac0d8
--- /dev/null
+++ b/share/cmake-3.17/Modules/ExternalProject.cmake
@@ -0,0 +1,3280 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+ExternalProject
+---------------
+
+.. only:: html
+
+ .. contents::
+
+External Project Definition
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. command:: ExternalProject_Add
+
+ The ``ExternalProject_Add()`` function creates a custom target to drive
+ download, update/patch, configure, build, install and test steps of an
+ external project:
+
+ .. code-block:: cmake
+
+ ExternalProject_Add(<name> [<option>...])
+
+ The individual steps within the process can be driven independently if
+ required (e.g. for CDash submission) and extra custom steps can be defined,
+ along with the ability to control the step dependencies. The directory
+ structure used for the management of the external project can also be
+ customized. The function supports a large number of options which can be used
+ to tailor the external project behavior.
+
+ **Directory Options:**
+ Most of the time, the default directory layout is sufficient. It is largely
+ an implementation detail that the main project usually doesn't need to
+ change. In some circumstances, however, control over the directory layout
+ can be useful or necessary. The directory options are potentially more
+ useful from the point of view that the main build can use the
+ :command:`ExternalProject_Get_Property` command to retrieve their values,
+ thereby allowing the main project to refer to build artifacts of the
+ external project.
+
+ ``PREFIX <dir>``
+ Root directory for the external project. Unless otherwise noted below,
+ all other directories associated with the external project will be
+ created under here.
+
+ ``TMP_DIR <dir>``
+ Directory in which to store temporary files.
+
+ ``STAMP_DIR <dir>``
+ Directory in which to store the timestamps of each step. Log files from
+ individual steps are also created in here unless overridden by LOG_DIR
+ (see *Logging Options* below).
+
+ ``LOG_DIR <dir>``
+ Directory in which to store the logs of each step.
+
+ ``DOWNLOAD_DIR <dir>``
+ Directory in which to store downloaded files before unpacking them. This
+ directory is only used by the URL download method, all other download
+ methods use ``SOURCE_DIR`` directly instead.
+
+ ``SOURCE_DIR <dir>``
+ Source directory into which downloaded contents will be unpacked, or for
+ non-URL download methods, the directory in which the repository should be
+ checked out, cloned, etc. If no download method is specified, this must
+ point to an existing directory where the external project has already
+ been unpacked or cloned/checked out.
+
+ .. note::
+ If a download method is specified, any existing contents of the source
+ directory may be deleted. Only the URL download method checks whether
+ this directory is either missing or empty before initiating the
+ download, stopping with an error if it is not empty. All other
+ download methods silently discard any previous contents of the source
+ directory.
+
+ ``BINARY_DIR <dir>``
+ Specify the build directory location. This option is ignored if
+ ``BUILD_IN_SOURCE`` is enabled.
+
+ ``INSTALL_DIR <dir>``
+ Installation prefix to be placed in the ``<INSTALL_DIR>`` placeholder.
+ This does not actually configure the external project to install to
+ the given prefix. That must be done by passing appropriate arguments
+ to the external project configuration step, e.g. using ``<INSTALL_DIR>``.
+
+ If any of the above ``..._DIR`` options are not specified, their defaults
+ are computed as follows. If the ``PREFIX`` option is given or the
+ ``EP_PREFIX`` directory property is set, then an external project is built
+ and installed under the specified prefix::
+
+ TMP_DIR = <prefix>/tmp
+ STAMP_DIR = <prefix>/src/<name>-stamp
+ DOWNLOAD_DIR = <prefix>/src
+ SOURCE_DIR = <prefix>/src/<name>
+ BINARY_DIR = <prefix>/src/<name>-build
+ INSTALL_DIR = <prefix>
+ LOG_DIR = <STAMP_DIR>
+
+ Otherwise, if the ``EP_BASE`` directory property is set then components
+ of an external project are stored under the specified base::
+
+ TMP_DIR = <base>/tmp/<name>
+ STAMP_DIR = <base>/Stamp/<name>
+ DOWNLOAD_DIR = <base>/Download/<name>
+ SOURCE_DIR = <base>/Source/<name>
+ BINARY_DIR = <base>/Build/<name>
+ INSTALL_DIR = <base>/Install/<name>
+ LOG_DIR = <STAMP_DIR>
+
+ If no ``PREFIX``, ``EP_PREFIX``, or ``EP_BASE`` is specified, then the
+ default is to set ``PREFIX`` to ``<name>-prefix``. Relative paths are
+ interpreted with respect to :variable:`CMAKE_CURRENT_BINARY_DIR` at the
+ point where ``ExternalProject_Add()`` is called.
+
+ **Download Step Options:**
+ A download method can be omitted if the ``SOURCE_DIR`` option is used to
+ point to an existing non-empty directory. Otherwise, one of the download
+ methods below must be specified (multiple download methods should not be
+ given) or a custom ``DOWNLOAD_COMMAND`` provided.
+
+ ``DOWNLOAD_COMMAND <cmd>...``
+ Overrides the command used for the download step
+ (:manual:`generator expressions <cmake-generator-expressions(7)>` are
+ supported). If this option is specified, all other download options will
+ be ignored. Providing an empty string for ``<cmd>`` effectively disables
+ the download step.
+
+ *URL Download*
+ ``URL <url1> [<url2>...]``
+ List of paths and/or URL(s) of the external project's source. When more
+ than one URL is given, they are tried in turn until one succeeds. A URL
+ may be an ordinary path in the local file system (in which case it
+ must be the only URL provided) or any downloadable URL supported by the
+ :command:`file(DOWNLOAD)` command. A local filesystem path may refer to
+ either an existing directory or to an archive file, whereas a URL is
+ expected to point to a file which can be treated as an archive. When an
+ archive is used, it will be unpacked automatically unless the
+ ``DOWNLOAD_NO_EXTRACT`` option is set to prevent it. The archive type
+ is determined by inspecting the actual content rather than using logic
+ based on the file extension.
+
+ ``URL_HASH <algo>=<hashValue>``
+ Hash of the archive file to be downloaded. The argument should be of
+ the form ``<algo>=<hashValue>`` where ``algo`` can be any of the hashing
+ algorithms supported by the :command:`file()` command. Specifying this
+ option is strongly recommended for URL downloads, as it ensures the
+ integrity of the downloaded content. It is also used as a check for a
+ previously downloaded file, allowing connection to the remote location
+ to be avoided altogether if the local directory already has a file from
+ an earlier download that matches the specified hash.
+
+ ``URL_MD5 <md5>``
+ Equivalent to ``URL_HASH MD5=<md5>``.
+
+ ``DOWNLOAD_NAME <fname>``
+ File name to use for the downloaded file. If not given, the end of the
+ URL is used to determine the file name. This option is rarely needed,
+ the default name is generally suitable and is not normally used outside
+ of code internal to the ``ExternalProject`` module.
+
+ ``DOWNLOAD_NO_EXTRACT <bool>``
+ Allows the extraction part of the download step to be disabled by
+ passing a boolean true value for this option. If this option is not
+ given, the downloaded contents will be unpacked automatically if
+ required. If extraction has been disabled, the full path to the
+ downloaded file is available as ``<DOWNLOADED_FILE>`` in subsequent
+ steps or as the property ``DOWNLOADED_FILE`` with the
+ :command:`ExternalProject_Get_Property` command.
+
+ ``DOWNLOAD_NO_PROGRESS <bool>``
+ Can be used to disable logging the download progress. If this option is
+ not given, download progress messages will be logged.
+
+ ``TIMEOUT <seconds>``
+ Maximum time allowed for file download operations.
+
+ ``HTTP_USERNAME <username>``
+ Username for the download operation if authentication is required.
+
+ ``HTTP_PASSWORD <password>``
+ Password for the download operation if authentication is required.
+
+ ``HTTP_HEADER <header1> [<header2>...]``
+ Provides an arbitrary list of HTTP headers for the download operation.
+ This can be useful for accessing content in systems like AWS, etc.
+
+ ``TLS_VERIFY <bool>``
+ Specifies whether certificate verification should be performed for
+ https URLs. If this option is not provided, the default behavior is
+ determined by the ``CMAKE_TLS_VERIFY`` variable (see
+ :command:`file(DOWNLOAD)`). If that is also not set, certificate
+ verification will not be performed. In situations where ``URL_HASH``
+ cannot be provided, this option can be an alternative verification
+ measure.
+
+ ``TLS_CAINFO <file>``
+ Specify a custom certificate authority file to use if ``TLS_VERIFY``
+ is enabled. If this option is not specified, the value of the
+ ``CMAKE_TLS_CAINFO`` variable will be used instead (see
+ :command:`file(DOWNLOAD)`)
+
+ ``NETRC <level>``
+ Specify whether the ``.netrc`` file is to be used for operation.
+ If this option is not specified, the value of the ``CMAKE_NETRC``
+ variable will be used instead (see :command:`file(DOWNLOAD)`)
+ Valid levels are:
+
+ ``IGNORED``
+ The ``.netrc`` file is ignored.
+ This is the default.
+ ``OPTIONAL``
+ The ``.netrc`` file is optional, and information in the URL
+ is preferred. The file will be scanned to find which ever
+ information is not specified in the URL.
+ ``REQUIRED``
+ The ``.netrc`` file is required, and information in the URL
+ is ignored.
+
+ ``NETRC_FILE <file>``
+ Specify an alternative ``.netrc`` file to the one in your home directory
+ if the ``NETRC`` level is ``OPTIONAL`` or ``REQUIRED``. If this option
+ is not specified, the value of the ``CMAKE_NETRC_FILE`` variable will
+ be used instead (see :command:`file(DOWNLOAD)`)
+
+ *Git*
+ NOTE: A git version of 1.6.5 or later is required if this download method
+ is used.
+
+ ``GIT_REPOSITORY <url>``
+ URL of the git repository. Any URL understood by the ``git`` command
+ may be used.
+
+ ``GIT_TAG <tag>``
+ Git branch name, tag or commit hash. Note that branch names and tags
+ should generally be specified as remote names (i.e. ``origin/myBranch``
+ rather than simply ``myBranch``). This ensures that if the remote end
+ has its tag moved or branch rebased or history rewritten, the local
+ clone will still be updated correctly. In general, however, specifying
+ a commit hash should be preferred for a number of reasons:
+
+ - If the local clone already has the commit corresponding to the hash,
+ no ``git fetch`` needs to be performed to check for changes each time
+ CMake is re-run. This can result in a significant speed up if many
+ external projects are being used.
+ - Using a specific git hash ensures that the main project's own history
+ is fully traceable to a specific point in the external project's
+ evolution. If a branch or tag name is used instead, then checking out
+ a specific commit of the main project doesn't necessarily pin the
+ whole build to a specific point in the life of the external project.
+ The lack of such deterministic behavior makes the main project lose
+ traceability and repeatability.
+
+ If ``GIT_SHALLOW`` is enabled then ``GIT_TAG`` works only with
+ branch names and tags. A commit hash is not allowed.
+
+ ``GIT_REMOTE_NAME <name>``
+ The optional name of the remote. If this option is not specified, it
+ defaults to ``origin``.
+
+ ``GIT_SUBMODULES <module>...``
+ Specific git submodules that should also be updated. If this option is
+ not provided, all git submodules will be updated. When :policy:`CMP0097`
+ is set to ``NEW`` if this value is set to an empty string then no submodules
+ are initialized or updated.
+
+ ``GIT_SUBMODULES_RECURSE <bool>``
+ Specify whether git submodules (if any) should update recursively by
+ passing the ``--recursive`` flag to ``git submodule update``.
+ If not specified, the default is on.
+
+ ``GIT_SHALLOW <bool>``
+ When this option is enabled, the ``git clone`` operation will be given
+ the ``--depth 1`` option. This performs a shallow clone, which avoids
+ downloading the whole history and instead retrieves just the commit
+ denoted by the ``GIT_TAG`` option.
+
+ ``GIT_PROGRESS <bool>``
+ When enabled, this option instructs the ``git clone`` operation to
+ report its progress by passing it the ``--progress`` option. Without
+ this option, the clone step for large projects may appear to make the
+ build stall, since nothing will be logged until the clone operation
+ finishes. While this option can be used to provide progress to prevent
+ the appearance of the build having stalled, it may also make the build
+ overly noisy if lots of external projects are used.
+
+ ``GIT_CONFIG <option1> [<option2>...]``
+ Specify a list of config options to pass to ``git clone``. Each option
+ listed will be transformed into its own ``--config <option>`` on the
+ ``git clone`` command line, with each option required to be in the
+ form ``key=value``.
+
+ *Subversion*
+ ``SVN_REPOSITORY <url>``
+ URL of the Subversion repository.
+
+ ``SVN_REVISION -r<rev>``
+ Revision to checkout from the Subversion repository.
+
+ ``SVN_USERNAME <username>``
+ Username for the Subversion checkout and update.
+
+ ``SVN_PASSWORD <password>``
+ Password for the Subversion checkout and update.
+
+ ``SVN_TRUST_CERT <bool>``
+ Specifies whether to trust the Subversion server site certificate. If
+ enabled, the ``--trust-server-cert`` option is passed to the ``svn``
+ checkout and update commands.
+
+ *Mercurial*
+ ``HG_REPOSITORY <url>``
+ URL of the mercurial repository.
+
+ ``HG_TAG <tag>``
+ Mercurial branch name, tag or commit id.
+
+ *CVS*
+ ``CVS_REPOSITORY <cvsroot>``
+ CVSROOT of the CVS repository.
+
+ ``CVS_MODULE <mod>``
+ Module to checkout from the CVS repository.
+
+ ``CVS_TAG <tag>``
+ Tag to checkout from the CVS repository.
+
+ **Update/Patch Step Options:**
+ Whenever CMake is re-run, by default the external project's sources will be
+ updated if the download method supports updates (e.g. a git repository
+ would be checked if the ``GIT_TAG`` does not refer to a specific commit).
+
+ ``UPDATE_COMMAND <cmd>...``
+ Overrides the download method's update step with a custom command.
+ The command may use
+ :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+ ``UPDATE_DISCONNECTED <bool>``
+ When enabled, this option causes the update step to be skipped. It does
+ not, however, prevent the download step. The update step can still be
+ added as a step target (see :command:`ExternalProject_Add_StepTargets`)
+ and called manually. This is useful if you want to allow developers to
+ build the project when disconnected from the network (the network may
+ still be needed for the download step though).
+
+ When this option is present, it is generally advisable to make the value
+ a cache variable under the developer's control rather than hard-coding
+ it. If this option is not present, the default value is taken from the
+ ``EP_UPDATE_DISCONNECTED`` directory property. If that is also not
+ defined, updates are performed as normal. The ``EP_UPDATE_DISCONNECTED``
+ directory property is intended as a convenience for controlling the
+ ``UPDATE_DISCONNECTED`` behavior for an entire section of a project's
+ directory hierarchy and may be a more convenient method of giving
+ developers control over whether or not to perform updates (assuming the
+ project also provides a cache variable or some other convenient method
+ for setting the directory property).
+
+ ``PATCH_COMMAND <cmd>...``
+ Specifies a custom command to patch the sources after an update. By
+ default, no patch command is defined. Note that it can be quite difficult
+ to define an appropriate patch command that performs robustly, especially
+ for download methods such as git where changing the ``GIT_TAG`` will not
+ discard changes from a previous patch, but the patch command will be
+ called again after updating to the new tag.
+
+ **Configure Step Options:**
+ The configure step is run after the download and update steps. By default,
+ the external project is assumed to be a CMake project, but this can be
+ overridden if required.
+
+ ``CONFIGURE_COMMAND <cmd>...``
+ The default configure command runs CMake with options based on the main
+ project. For non-CMake external projects, the ``CONFIGURE_COMMAND``
+ option must be used to override this behavior
+ (:manual:`generator expressions <cmake-generator-expressions(7)>` are
+ supported). For projects that require no configure step, specify this
+ option with an empty string as the command to execute.
+
+ ``CMAKE_COMMAND /.../cmake``
+ Specify an alternative cmake executable for the configure step (use an
+ absolute path). This is generally not recommended, since it is
+ usually desirable to use the same CMake version throughout the whole
+ build. This option is ignored if a custom configure command has been
+ specified with ``CONFIGURE_COMMAND``.
+
+ ``CMAKE_GENERATOR <gen>``
+ Override the CMake generator used for the configure step. Without this
+ option, the same generator as the main build will be used. This option is
+ ignored if a custom configure command has been specified with the
+ ``CONFIGURE_COMMAND`` option.
+
+ ``CMAKE_GENERATOR_PLATFORM <platform>``
+ Pass a generator-specific platform name to the CMake command (see
+ :variable:`CMAKE_GENERATOR_PLATFORM`). It is an error to provide this
+ option without the ``CMAKE_GENERATOR`` option.
+
+ ``CMAKE_GENERATOR_TOOLSET <toolset>``
+ Pass a generator-specific toolset name to the CMake command (see
+ :variable:`CMAKE_GENERATOR_TOOLSET`). It is an error to provide this
+ option without the ``CMAKE_GENERATOR`` option.
+
+ ``CMAKE_GENERATOR_INSTANCE <instance>``
+ Pass a generator-specific instance selection to the CMake command (see
+ :variable:`CMAKE_GENERATOR_INSTANCE`). It is an error to provide this
+ option without the ``CMAKE_GENERATOR`` option.
+
+ ``CMAKE_ARGS <arg>...``
+ The specified arguments are passed to the ``cmake`` command line. They
+ can be any argument the ``cmake`` command understands, not just cache
+ values defined by ``-D...`` arguments (see also
+ :manual:`CMake Options <cmake(1)>`). In addition, arguments may use
+ :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+ ``CMAKE_CACHE_ARGS <arg>...``
+ This is an alternate way of specifying cache variables where command line
+ length issues may become a problem. The arguments are expected to be in
+ the form ``-Dvar:STRING=value``, which are then transformed into
+ CMake :command:`set` commands with the ``FORCE`` option used. These
+ ``set()`` commands are written to a pre-load script which is then applied
+ using the :manual:`cmake -C <cmake(1)>` command line option. Arguments
+ may use :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+ ``CMAKE_CACHE_DEFAULT_ARGS <arg>...``
+ This is the same as the ``CMAKE_CACHE_ARGS`` option except the ``set()``
+ commands do not include the ``FORCE`` keyword. This means the values act
+ as initial defaults only and will not override any variables already set
+ from a previous run. Use this option with care, as it can lead to
+ different behavior depending on whether the build starts from a fresh
+ build directory or re-uses previous build contents.
+
+ If the CMake generator is the ``Green Hills MULTI`` and not overridden then
+ the original project's settings for the GHS toolset and target system
+ customization cache variables are propagated into the external project.
+
+ ``SOURCE_SUBDIR <dir>``
+ When no ``CONFIGURE_COMMAND`` option is specified, the configure step
+ assumes the external project has a ``CMakeLists.txt`` file at the top of
+ its source tree (i.e. in ``SOURCE_DIR``). The ``SOURCE_SUBDIR`` option
+ can be used to point to an alternative directory within the source tree
+ to use as the top of the CMake source tree instead. This must be a
+ relative path and it will be interpreted as being relative to
+ ``SOURCE_DIR``. When ``BUILD_IN_SOURCE 1`` is specified, the
+ ``BUILD_COMMAND`` is used to point to an alternative directory within the
+ source tree.
+
+ **Build Step Options:**
+ If the configure step assumed the external project uses CMake as its build
+ system, the build step will also. Otherwise, the build step will assume a
+ Makefile-based build and simply run ``make`` with no arguments as the
+ default build step. This can be overridden with custom build commands if
+ required.
+
+ ``BUILD_COMMAND <cmd>...``
+ Overrides the default build command
+ (:manual:`generator expressions <cmake-generator-expressions(7)>` are
+ supported). If this option is not given, the default build command will
+ be chosen to integrate with the main build in the most appropriate way
+ (e.g. using recursive ``make`` for Makefile generators or
+ ``cmake --build`` if the project uses a CMake build). This option can be
+ specified with an empty string as the command to make the build step do
+ nothing.
+
+ ``BUILD_IN_SOURCE <bool>``
+ When this option is enabled, the build will be done directly within the
+ external project's source tree. This should generally be avoided, the use
+ of a separate build directory is usually preferred, but it can be useful
+ when the external project assumes an in-source build. The ``BINARY_DIR``
+ option should not be specified if building in-source.
+
+ ``BUILD_ALWAYS <bool>``
+ Enabling this option forces the build step to always be run. This can be
+ the easiest way to robustly ensure that the external project's own build
+ dependencies are evaluated rather than relying on the default
+ success timestamp-based method. This option is not normally needed unless
+ developers are expected to modify something the external project's build
+ depends on in a way that is not detectable via the step target
+ dependencies (e.g. ``SOURCE_DIR`` is used without a download method and
+ developers might modify the sources in ``SOURCE_DIR``).
+
+ ``BUILD_BYPRODUCTS <file>...``
+ Specifies files that will be generated by the build command but which
+ might or might not have their modification time updated by subsequent
+ builds. These ultimately get passed through as ``BYPRODUCTS`` to the
+ build step's own underlying call to :command:`add_custom_command`.
+
+ **Install Step Options:**
+ If the configure step assumed the external project uses CMake as its build
+ system, the install step will also. Otherwise, the install step will assume
+ a Makefile-based build and simply run ``make install`` as the default build
+ step. This can be overridden with custom install commands if required.
+
+ ``INSTALL_COMMAND <cmd>...``
+ The external project's own install step is invoked as part of the main
+ project's *build*. It is done after the external project's build step
+ and may be before or after the external project's test step (see the
+ ``TEST_BEFORE_INSTALL`` option below). The external project's install
+ rules are not part of the main project's install rules, so if anything
+ from the external project should be installed as part of the main build,
+ these need to be specified in the main build as additional
+ :command:`install` commands. The default install step builds the
+ ``install`` target of the external project, but this can be overridden
+ with a custom command using this option
+ (:manual:`generator expressions <cmake-generator-expressions(7)>` are
+ supported). Passing an empty string as the ``<cmd>`` makes the install
+ step do nothing.
+
+ **Test Step Options:**
+ The test step is only defined if at least one of the following ``TEST_...``
+ options are provided.
+
+ ``TEST_COMMAND <cmd>...``
+ Overrides the default test command
+ (:manual:`generator expressions <cmake-generator-expressions(7)>` are
+ supported). If this option is not given, the default behavior of the test
+ step is to build the external project's own ``test`` target. This option
+ can be specified with ``<cmd>`` as an empty string, which allows the test
+ step to still be defined, but it will do nothing. Do not specify any of
+ the other ``TEST_...`` options if providing an empty string as the test
+ command, but prefer to omit all ``TEST_...`` options altogether if the
+ test step target is not needed.
+
+ ``TEST_BEFORE_INSTALL <bool>``
+ When this option is enabled, the test step will be executed before the
+ install step. The default behavior is for the test step to run after the
+ install step.
+
+ ``TEST_AFTER_INSTALL <bool>``
+ This option is mainly useful as a way to indicate that the test step is
+ desired but all default behavior is sufficient. Specifying this option
+ with a boolean true value ensures the test step is defined and that it
+ comes after the install step. If both ``TEST_BEFORE_INSTALL`` and
+ ``TEST_AFTER_INSTALL`` are enabled, the latter is silently ignored.
+
+ ``TEST_EXCLUDE_FROM_MAIN <bool>``
+ If enabled, the main build's default ALL target will not depend on the
+ test step. This can be a useful way of ensuring the test step is defined
+ but only gets invoked when manually requested.
+
+ **Output Logging Options:**
+ Each of the following ``LOG_...`` options can be used to wrap the relevant
+ step in a script to capture its output to files. The log files will be
+ created in ``LOG_DIR`` if supplied or otherwise the ``STAMP_DIR``
+ directory with step-specific file names.
+
+ ``LOG_DOWNLOAD <bool>``
+ When enabled, the output of the download step is logged to files.
+
+ ``LOG_UPDATE <bool>``
+ When enabled, the output of the update step is logged to files.
+
+ ``LOG_PATCH <bool>``
+ When enabled, the output of the patch step is logged to files.
+
+ ``LOG_CONFIGURE <bool>``
+ When enabled, the output of the configure step is logged to files.
+
+ ``LOG_BUILD <bool>``
+ When enabled, the output of the build step is logged to files.
+
+ ``LOG_INSTALL <bool>``
+ When enabled, the output of the install step is logged to files.
+
+ ``LOG_TEST <bool>``
+ When enabled, the output of the test step is logged to files.
+
+ ``LOG_MERGED_STDOUTERR <bool>``
+ When enabled, stdout and stderr will be merged for any step whose
+ output is being logged to files.
+
+ ``LOG_OUTPUT_ON_FAILURE <bool>``
+ This option only has an effect if at least one of the other ``LOG_<step>``
+ options is enabled. If an error occurs for a step which has logging to
+ file enabled, that step's output will be printed to the console if
+ ``LOG_OUTPUT_ON_FAILURE`` is set to true. For cases where a large amount
+ of output is recorded, just the end of that output may be printed to the
+ console.
+
+ **Terminal Access Options:**
+ Steps can be given direct access to the terminal in some cases. Giving a
+ step access to the terminal may allow it to receive terminal input if
+ required, such as for authentication details not provided by other options.
+ With the :generator:`Ninja` generator, these options place the steps in the
+ ``console`` :prop_gbl:`job pool <JOB_POOLS>`. Each step can be given access
+ to the terminal individually via the following options:
+
+ ``USES_TERMINAL_DOWNLOAD <bool>``
+ Give the download step access to the terminal.
+
+ ``USES_TERMINAL_UPDATE <bool>``
+ Give the update step access to the terminal.
+
+ ``USES_TERMINAL_CONFIGURE <bool>``
+ Give the configure step access to the terminal.
+
+ ``USES_TERMINAL_BUILD <bool>``
+ Give the build step access to the terminal.
+
+ ``USES_TERMINAL_INSTALL <bool>``
+ Give the install step access to the terminal.
+
+ ``USES_TERMINAL_TEST <bool>``
+ Give the test step access to the terminal.
+
+ **Target Options:**
+ ``DEPENDS <targets>...``
+ Specify other targets on which the external project depends. The other
+ targets will be brought up to date before any of the external project's
+ steps are executed. Because the external project uses additional custom
+ targets internally for each step, the ``DEPENDS`` option is the most
+ convenient way to ensure all of those steps depend on the other targets.
+ Simply doing
+ :command:`add_dependencies(\<name\> \<targets\>) <add_dependencies>` will
+ not make any of the steps dependent on ``<targets>``.
+
+ ``EXCLUDE_FROM_ALL <bool>``
+ When enabled, this option excludes the external project from the default
+ ALL target of the main build.
+
+ ``STEP_TARGETS <step-target>...``
+ Generate custom targets for the specified steps. This is required if the
+ steps need to be triggered manually or if they need to be used as
+ dependencies of other targets. If this option is not specified, the
+ default value is taken from the ``EP_STEP_TARGETS`` directory property.
+ See :command:`ExternalProject_Add_Step` below for further discussion of
+ the effects of this option.
+
+ ``INDEPENDENT_STEP_TARGETS <step-target>...``
+ Generate custom targets for the specified steps and prevent these targets
+ from having the usual dependencies applied to them. If this option is not
+ specified, the default value is taken from the
+ ``EP_INDEPENDENT_STEP_TARGETS`` directory property. This option is mostly
+ useful for allowing individual steps to be driven independently, such as
+ for a CDash setup where each step should be initiated and reported
+ individually rather than as one whole build. See
+ :command:`ExternalProject_Add_Step` below for further discussion of the
+ effects of this option.
+
+ **Miscellaneous Options:**
+ ``LIST_SEPARATOR <sep>``
+ For any of the various ``..._COMMAND`` options, replace ``;`` with
+ ``<sep>`` in the specified command lines. This can be useful where list
+ variables may be given in commands where they should end up as
+ space-separated arguments (``<sep>`` would be a single space character
+ string in this case).
+
+ ``COMMAND <cmd>...``
+ Any of the other ``..._COMMAND`` options can have additional commands
+ appended to them by following them with as many ``COMMAND ...`` options
+ as needed
+ (:manual:`generator expressions <cmake-generator-expressions(7)>` are
+ supported). For example:
+
+ .. code-block:: cmake
+
+ ExternalProject_Add(example
+ ... # Download options, etc.
+ BUILD_COMMAND ${CMAKE_COMMAND} -E echo "Starting $<CONFIG> build"
+ COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG>
+ COMMAND ${CMAKE_COMMAND} -E echo "$<CONFIG> build complete"
+ )
+
+ It should also be noted that each build step is created via a call to
+ :command:`ExternalProject_Add_Step`. See that command's documentation for the
+ automatic substitutions that are supported for some options.
+
+Obtaining Project Properties
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. command:: ExternalProject_Get_Property
+
+ The ``ExternalProject_Get_Property()`` function retrieves external project
+ target properties:
+
+ .. code-block:: cmake
+
+ ExternalProject_Get_Property(<name> <prop1> [<prop2>...])
+
+ The function stores property values in variables of the same name. Property
+ names correspond to the keyword argument names of ``ExternalProject_Add()``.
+ For example, the source directory might be retrieved like so:
+
+ .. code-block:: cmake
+
+ ExternalProject_Get_property(myExtProj SOURCE_DIR)
+ message("Source dir of myExtProj = ${SOURCE_DIR}")
+
+Explicit Step Management
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+The ``ExternalProject_Add()`` function on its own is often sufficient for
+incorporating an external project into the main build. Certain scenarios
+require additional work to implement desired behavior, such as adding in a
+custom step or making steps available as manually triggerable targets. The
+``ExternalProject_Add_Step()``, ``ExternalProject_Add_StepTargets()`` and
+``ExternalProject_Add_StepDependencies`` functions provide the lower level
+control needed to implement such step-level capabilities.
+
+.. command:: ExternalProject_Add_Step
+
+ The ``ExternalProject_Add_Step()`` function specifies an additional custom
+ step for an external project defined by an earlier call to
+ :command:`ExternalProject_Add`:
+
+ .. code-block:: cmake
+
+ ExternalProject_Add_Step(<name> <step> [<option>...])
+
+ ``<name>`` is the same as the name passed to the original call to
+ :command:`ExternalProject_Add`. The specified ``<step>`` must not be one of
+ the pre-defined steps (``mkdir``, ``download``, ``update``, ``skip-update``,
+ ``patch``, ``configure``, ``build``, ``install`` or ``test``). The supported
+ options are:
+
+ ``COMMAND <cmd>...``
+ The command line to be executed by this custom step
+ (:manual:`generator expressions <cmake-generator-expressions(7)>` are
+ supported). This option can be repeated multiple times to specify multiple
+ commands to be executed in order.
+
+ ``COMMENT "<text>..."``
+ Text to be printed when the custom step executes.
+
+ ``DEPENDEES <step>...``
+ Other steps (custom or pre-defined) on which this step depends.
+
+ ``DEPENDERS <step>...``
+ Other steps (custom or pre-defined) that depend on this new custom step.
+
+ ``DEPENDS <file>...``
+ Files on which this custom step depends.
+
+ ``BYPRODUCTS <file>...``
+ Files that will be generated by this custom step but which might or might
+ not have their modification time updated by subsequent builds. This list of
+ files will ultimately be passed through as the ``BYPRODUCTS`` option to the
+ :command:`add_custom_command` used to implement the custom step internally.
+
+ ``ALWAYS <bool>``
+ When enabled, this option specifies that the custom step should always be
+ run (i.e. that it is always considered out of date).
+
+ ``EXCLUDE_FROM_MAIN <bool>``
+ When enabled, this option specifies that the external project's main target
+ does not depend on the custom step.
+
+ ``WORKING_DIRECTORY <dir>``
+ Specifies the working directory to set before running the custom step's
+ command. If this option is not specified, the directory will be the value
+ of the :variable:`CMAKE_CURRENT_BINARY_DIR` at the point where
+ ``ExternalProject_Add_Step()`` was called.
+
+ ``LOG <bool>``
+ If set, this causes the output from the custom step to be captured to files
+ in the external project's ``LOG_DIR`` if supplied or ``STAMP_DIR``.
+
+ ``USES_TERMINAL <bool>``
+ If enabled, this gives the custom step direct access to the terminal if
+ possible.
+
+ The command line, comment, working directory and byproducts of every
+ standard and custom step are processed to replace the tokens
+ ``<SOURCE_DIR>``, ``<SOURCE_SUBDIR>``, ``<BINARY_DIR>``, ``<INSTALL_DIR>``
+ ``<TMP_DIR>``, ``<DOWNLOAD_DIR>`` and ``<DOWNLOADED_FILE>`` with their
+ corresponding property values defined in the original call to
+ :command:`ExternalProject_Add`.
+
+.. command:: ExternalProject_Add_StepTargets
+
+ The ``ExternalProject_Add_StepTargets()`` function generates targets for the
+ steps listed. The name of each created target will be of the form
+ ``<name>-<step>``:
+
+ .. code-block:: cmake
+
+ ExternalProject_Add_StepTargets(<name> [NO_DEPENDS] <step1> [<step2>...])
+
+ Creating a target for a step allows it to be used as a dependency of another
+ target or to be triggered manually. Having targets for specific steps also
+ allows them to be driven independently of each other by specifying targets on
+ build command lines. For example, you may be submitting to a sub-project
+ based dashboard where you want to drive the configure portion of the build,
+ then submit to the dashboard, followed by the build portion, followed
+ by tests. If you invoke a custom target that depends on a step halfway
+ through the step dependency chain, then all the previous steps will also run
+ to ensure everything is up to date.
+
+ If the ``NO_DEPENDS`` option is specified, the step target will not depend on
+ the dependencies of the external project (i.e. on any dependencies of the
+ ``<name>`` custom target created by :command:`ExternalProject_Add`). This is
+ usually safe for the ``download``, ``update`` and ``patch`` steps, since they
+ do not typically require that the dependencies are updated and built. Using
+ ``NO_DEPENDS`` for any of the other pre-defined steps, however, may break
+ parallel builds. Only use ``NO_DEPENDS`` where it is certain that the named
+ steps genuinely do not have dependencies. For custom steps, consider whether
+ or not the custom commands require the dependencies to be configured, built
+ and installed.
+
+ Internally, :command:`ExternalProject_Add` calls
+ :command:`ExternalProject_Add_Step` to create each step. If any
+ ``STEP_TARGETS`` or ``INDEPENDENT_STEP_TARGETS`` were specified, then
+ ``ExternalProject_Add_StepTargets()`` will also be called after
+ :command:`ExternalProject_Add_Step`. ``INDEPENDENT_STEP_TARGETS`` have the
+ ``NO_DEPENDS`` option set, whereas ``STEP_TARGETS`` do not. Other than that,
+ the two options result in ``ExternalProject_Add_StepTargets()`` being called
+ in the same way. Even if a step is not mentioned in either of those two
+ options, ``ExternalProject_Add_StepTargets()`` can still be called later to
+ manually define a target for the step.
+
+ The ``STEP_TARGETS`` and ``INDEPENDENT_STEP_TARGETS`` options for
+ :command:`ExternalProject_Add` are generally the easiest way to ensure
+ targets are created for specific steps of interest. For custom steps,
+ ``ExternalProject_Add_StepTargets()`` must be called explicitly if a target
+ should also be created for that custom step. An alternative to these two
+ options is to populate the ``EP_STEP_TARGETS`` and
+ ``EP_INDEPENDENT_STEP_TARGETS`` directory properties. These act as defaults
+ for the step target options and can save having to repeatedly specify the
+ same set of step targets when multiple external projects are being defined.
+
+.. command:: ExternalProject_Add_StepDependencies
+
+ The ``ExternalProject_Add_StepDependencies()`` function can be used to add
+ dependencies to a step. The dependencies added must be targets CMake already
+ knows about (these can be ordinary executable or library targets, custom
+ targets or even step targets of another external project):
+
+ .. code-block:: cmake
+
+ ExternalProject_Add_StepDependencies(<name> <step> <target1> [<target2>...])
+
+ This function takes care to set both target and file level dependencies and
+ will ensure that parallel builds will not break. It should be used instead of
+ :command:`add_dependencies` whenever adding a dependency for some of the step
+ targets generated by the ``ExternalProject`` module.
+
+Examples
+^^^^^^^^
+
+The following example shows how to download and build a hypothetical project
+called *FooBar* from github:
+
+.. code-block:: cmake
+
+ include(ExternalProject)
+ ExternalProject_Add(foobar
+ GIT_REPOSITORY git@github.com:FooCo/FooBar.git
+ GIT_TAG origin/release/1.2.3
+ )
+
+For the sake of the example, also define a second hypothetical external project
+called *SecretSauce*, which is downloaded from a web server. Two URLs are given
+to take advantage of a faster internal network if available, with a fallback to
+a slower external server. The project is a typical ``Makefile`` project with no
+configure step, so some of the default commands are overridden. The build is
+only required to build the *sauce* target:
+
+.. code-block:: cmake
+
+ find_program(MAKE_EXE NAMES gmake nmake make)
+ ExternalProject_Add(secretsauce
+ URL http://intranet.somecompany.com/artifacts/sauce-2.7.tgz
+ https://www.somecompany.com/downloads/sauce-2.7.zip
+ URL_HASH MD5=d41d8cd98f00b204e9800998ecf8427e
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ${MAKE_EXE} sauce
+ )
+
+Suppose the build step of ``secretsauce`` requires that ``foobar`` must already
+be built. This could be enforced like so:
+
+.. code-block:: cmake
+
+ ExternalProject_Add_StepDependencies(secretsauce build foobar)
+
+Another alternative would be to create a custom target for ``foobar``'s build
+step and make ``secretsauce`` depend on that rather than the whole ``foobar``
+project. This would mean ``foobar`` only needs to be built, it doesn't need to
+run its install or test steps before ``secretsauce`` can be built. The
+dependency can also be defined along with the ``secretsauce`` project:
+
+.. code-block:: cmake
+
+ ExternalProject_Add_StepTargets(foobar build)
+ ExternalProject_Add(secretsauce
+ URL http://intranet.somecompany.com/artifacts/sauce-2.7.tgz
+ https://www.somecompany.com/downloads/sauce-2.7.zip
+ URL_HASH MD5=d41d8cd98f00b204e9800998ecf8427e
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ${MAKE_EXE} sauce
+ DEPENDS foobar-build
+ )
+
+Instead of calling :command:`ExternalProject_Add_StepTargets`, the target could
+be defined along with the ``foobar`` project itself:
+
+.. code-block:: cmake
+
+ ExternalProject_Add(foobar
+ GIT_REPOSITORY git@github.com:FooCo/FooBar.git
+ GIT_TAG origin/release/1.2.3
+ STEP_TARGETS build
+ )
+
+If many external projects should have the same set of step targets, setting a
+directory property may be more convenient. The ``build`` step target could be
+created automatically by setting the ``EP_STEP_TARGETS`` directory property
+before creating the external projects with :command:`ExternalProject_Add`:
+
+.. code-block:: cmake
+
+ set_property(DIRECTORY PROPERTY EP_STEP_TARGETS build)
+
+Lastly, suppose that ``secretsauce`` provides a script called ``makedoc`` which
+can be used to generate its own documentation. Further suppose that the script
+expects the output directory to be provided as the only parameter and that it
+should be run from the ``secretsauce`` source directory. A custom step and a
+custom target to trigger the script can be defined like so:
+
+.. code-block:: cmake
+
+ ExternalProject_Add_Step(secretsauce docs
+ COMMAND <SOURCE_DIR>/makedoc <BINARY_DIR>
+ WORKING_DIRECTORY <SOURCE_DIR>
+ COMMENT "Building secretsauce docs"
+ ALWAYS TRUE
+ EXCLUDE_FROM_MAIN TRUE
+ )
+ ExternalProject_Add_StepTargets(secretsauce docs)
+
+The custom step could then be triggered from the main build like so::
+
+ cmake --build . --target secretsauce-docs
+
+#]=======================================================================]
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
+
+# Pre-compute a regex to match documented keywords for each command.
+math(EXPR _ep_documentation_line_count "${CMAKE_CURRENT_LIST_LINE} - 4")
+file(STRINGS "${CMAKE_CURRENT_LIST_FILE}" lines
+ LIMIT_COUNT ${_ep_documentation_line_count}
+ REGEX "^\\.\\. command:: [A-Za-z0-9_]+|^ +``[A-Z0-9_]+ [^`]*``$")
+foreach(line IN LISTS lines)
+ if("${line}" MATCHES "^\\.\\. command:: ([A-Za-z0-9_]+)")
+ if(_ep_func)
+ string(APPEND _ep_keywords_${_ep_func} ")$")
+ endif()
+ set(_ep_func "${CMAKE_MATCH_1}")
+ #message("function [${_ep_func}]")
+ set(_ep_keywords_${_ep_func} "^(")
+ set(_ep_keyword_sep)
+ elseif("${line}" MATCHES "^ +``([A-Z0-9_]+) [^`]*``$")
+ set(_ep_key "${CMAKE_MATCH_1}")
+ # COMMAND should never be included as a keyword,
+ # for ExternalProject_Add(), as it is treated as a
+ # special case by argument parsing as an extension
+ # of a previous ..._COMMAND
+ if("x${_ep_key}x" STREQUAL "xCOMMANDx" AND
+ "x${_ep_func}x" STREQUAL "xExternalProject_Addx")
+ continue()
+ endif()
+ #message(" keyword [${_ep_key}]")
+ string(APPEND _ep_keywords_${_ep_func}
+ "${_ep_keyword_sep}${_ep_key}")
+ set(_ep_keyword_sep "|")
+ endif()
+endforeach()
+if(_ep_func)
+ string(APPEND _ep_keywords_${_ep_func} ")$")
+endif()
+
+# Save regex matching supported hash algorithm names.
+set(_ep_hash_algos "MD5|SHA1|SHA224|SHA256|SHA384|SHA512|SHA3_224|SHA3_256|SHA3_384|SHA3_512")
+set(_ep_hash_regex "^(${_ep_hash_algos})=([0-9A-Fa-f]+)$")
+
+set(_ExternalProject_SELF "${CMAKE_CURRENT_LIST_FILE}")
+get_filename_component(_ExternalProject_SELF_DIR "${_ExternalProject_SELF}" PATH)
+
+function(_ep_parse_arguments f name ns args)
+ # Transfer the arguments to this function into target properties for the
+ # new custom target we just added so that we can set up all the build steps
+ # correctly based on target properties.
+ #
+ # We loop through ARGN and consider the namespace starting with an
+ # upper-case letter followed by at least two more upper-case letters,
+ # numbers or underscores to be keywords.
+
+ if(NOT DEFINED _ExternalProject_SELF)
+ message(FATAL_ERROR "error: ExternalProject module must be explicitly included before using ${f} function")
+ endif()
+
+ set(key)
+
+ foreach(arg IN LISTS args)
+ set(is_value 1)
+
+ if(arg MATCHES "^[A-Z][A-Z0-9_][A-Z0-9_]+$" AND
+ NOT (("x${arg}x" STREQUAL "x${key}x") AND ("x${key}x" STREQUAL "xCOMMANDx")) AND
+ NOT arg MATCHES "^(TRUE|FALSE)$")
+ if(_ep_keywords_${f} AND arg MATCHES "${_ep_keywords_${f}}")
+ set(is_value 0)
+ endif()
+ endif()
+
+ if(is_value)
+ if(key)
+ # Value
+ if(NOT arg STREQUAL "")
+ set_property(TARGET ${name} APPEND PROPERTY ${ns}${key} "${arg}")
+ else()
+ get_property(have_key TARGET ${name} PROPERTY ${ns}${key} SET)
+ if(have_key)
+ get_property(value TARGET ${name} PROPERTY ${ns}${key})
+ set_property(TARGET ${name} PROPERTY ${ns}${key} "${value};${arg}")
+ else()
+ set_property(TARGET ${name} PROPERTY ${ns}${key} "${arg}")
+ endif()
+ endif()
+ else()
+ # Missing Keyword
+ message(AUTHOR_WARNING "value '${arg}' with no previous keyword in ${f}")
+ endif()
+ else()
+ set(key "${arg}")
+ if(key MATCHES GIT)
+ get_property(have_key TARGET ${name} PROPERTY ${ns}${key} SET)
+ endif()
+ endif()
+ endforeach()
+endfunction()
+
+
+define_property(DIRECTORY PROPERTY "EP_BASE" INHERITED
+ BRIEF_DOCS "Base directory for External Project storage."
+ FULL_DOCS
+ "See documentation of the ExternalProject_Add() function in the "
+ "ExternalProject module."
+ )
+
+define_property(DIRECTORY PROPERTY "EP_PREFIX" INHERITED
+ BRIEF_DOCS "Top prefix for External Project storage."
+ FULL_DOCS
+ "See documentation of the ExternalProject_Add() function in the "
+ "ExternalProject module."
+ )
+
+define_property(DIRECTORY PROPERTY "EP_STEP_TARGETS" INHERITED
+ BRIEF_DOCS
+ "List of ExternalProject steps that automatically get corresponding targets"
+ FULL_DOCS
+ "These targets will be dependent on the main target dependencies. "
+ "See documentation of the ExternalProject_Add_StepTargets() function in the "
+ "ExternalProject module."
+ )
+
+define_property(DIRECTORY PROPERTY "EP_INDEPENDENT_STEP_TARGETS" INHERITED
+ BRIEF_DOCS
+ "List of ExternalProject steps that automatically get corresponding targets"
+ FULL_DOCS
+ "These targets will not be dependent on the main target dependencies. "
+ "See documentation of the ExternalProject_Add_StepTargets() function in the "
+ "ExternalProject module."
+ )
+
+define_property(DIRECTORY PROPERTY "EP_UPDATE_DISCONNECTED" INHERITED
+ BRIEF_DOCS "Never update automatically from the remote repo."
+ FULL_DOCS
+ "See documentation of the ExternalProject_Add() function in the "
+ "ExternalProject module."
+ )
+
+function(_ep_write_gitclone_script script_filename source_dir git_EXECUTABLE git_repository git_tag git_remote_name init_submodules git_submodules_recurse git_submodules git_shallow git_progress git_config src_name work_dir gitclone_infofile gitclone_stampfile tls_verify)
+ if(NOT GIT_VERSION_STRING VERSION_LESS 1.8.5)
+ # Use `git checkout <tree-ish> --` to avoid ambiguity with a local path.
+ set(git_checkout_explicit-- "--")
+ else()
+ # Use `git checkout <branch>` even though this risks ambiguity with a
+ # local path. Unfortunately we cannot use `git checkout <tree-ish> --`
+ # because that will not search for remote branch names, a common use case.
+ set(git_checkout_explicit-- "")
+ endif()
+ if("${git_tag}" STREQUAL "")
+ message(FATAL_ERROR "Tag for git checkout should not be empty.")
+ endif()
+
+ set(git_clone_options "--no-checkout")
+ if(git_shallow)
+ if(NOT GIT_VERSION_STRING VERSION_LESS 1.7.10)
+ list(APPEND git_clone_options "--depth 1 --no-single-branch")
+ else()
+ list(APPEND git_clone_options "--depth 1")
+ endif()
+ endif()
+ if(git_progress)
+ list(APPEND git_clone_options --progress)
+ endif()
+ foreach(config IN LISTS git_config)
+ list(APPEND git_clone_options --config \"${config}\")
+ endforeach()
+ if(NOT ${git_remote_name} STREQUAL "origin")
+ list(APPEND git_clone_options --origin \"${git_remote_name}\")
+ endif()
+
+ string (REPLACE ";" " " git_clone_options "${git_clone_options}")
+
+ set(git_options)
+ # disable cert checking if explicitly told not to do it
+ if(NOT "x${tls_verify}" STREQUAL "x" AND NOT tls_verify)
+ set(git_options
+ -c http.sslVerify=false)
+ endif()
+ string (REPLACE ";" " " git_options "${git_options}")
+
+ file(WRITE ${script_filename}
+"
+if(NOT \"${gitclone_infofile}\" IS_NEWER_THAN \"${gitclone_stampfile}\")
+ message(STATUS \"Avoiding repeated git clone, stamp file is up to date: '${gitclone_stampfile}'\")
+ return()
+endif()
+
+execute_process(
+ COMMAND \${CMAKE_COMMAND} -E rm -rf \"${source_dir}\"
+ RESULT_VARIABLE error_code
+ )
+if(error_code)
+ message(FATAL_ERROR \"Failed to remove directory: '${source_dir}'\")
+endif()
+
+# try the clone 3 times in case there is an odd git clone issue
+set(error_code 1)
+set(number_of_tries 0)
+while(error_code AND number_of_tries LESS 3)
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" ${git_options} clone ${git_clone_options} \"${git_repository}\" \"${src_name}\"
+ WORKING_DIRECTORY \"${work_dir}\"
+ RESULT_VARIABLE error_code
+ )
+ math(EXPR number_of_tries \"\${number_of_tries} + 1\")
+endwhile()
+if(number_of_tries GREATER 1)
+ message(STATUS \"Had to git clone more than once:
+ \${number_of_tries} times.\")
+endif()
+if(error_code)
+ message(FATAL_ERROR \"Failed to clone repository: '${git_repository}'\")
+endif()
+
+execute_process(
+ COMMAND \"${git_EXECUTABLE}\" ${git_options} checkout ${git_tag} ${git_checkout_explicit--}
+ WORKING_DIRECTORY \"${work_dir}/${src_name}\"
+ RESULT_VARIABLE error_code
+ )
+if(error_code)
+ message(FATAL_ERROR \"Failed to checkout tag: '${git_tag}'\")
+endif()
+
+set(init_submodules ${init_submodules})
+if(init_submodules)
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" ${git_options} submodule update ${git_submodules_recurse} --init ${git_submodules}
+ WORKING_DIRECTORY \"${work_dir}/${src_name}\"
+ RESULT_VARIABLE error_code
+ )
+endif()
+if(error_code)
+ message(FATAL_ERROR \"Failed to update submodules in: '${work_dir}/${src_name}'\")
+endif()
+
+# Complete success, update the script-last-run stamp file:
+#
+execute_process(
+ COMMAND \${CMAKE_COMMAND} -E copy
+ \"${gitclone_infofile}\"
+ \"${gitclone_stampfile}\"
+ RESULT_VARIABLE error_code
+ )
+if(error_code)
+ message(FATAL_ERROR \"Failed to copy script-last-run stamp file: '${gitclone_stampfile}'\")
+endif()
+
+"
+)
+
+endfunction()
+
+function(_ep_write_hgclone_script script_filename source_dir hg_EXECUTABLE hg_repository hg_tag src_name work_dir hgclone_infofile hgclone_stampfile)
+ if("${hg_tag}" STREQUAL "")
+ message(FATAL_ERROR "Tag for hg checkout should not be empty.")
+ endif()
+ file(WRITE ${script_filename}
+"
+if(NOT \"${hgclone_infofile}\" IS_NEWER_THAN \"${hgclone_stampfile}\")
+ message(STATUS \"Avoiding repeated hg clone, stamp file is up to date: '${hgclone_stampfile}'\")
+ return()
+endif()
+
+execute_process(
+ COMMAND \${CMAKE_COMMAND} -E rm -rf \"${source_dir}\"
+ RESULT_VARIABLE error_code
+ )
+if(error_code)
+ message(FATAL_ERROR \"Failed to remove directory: '${source_dir}'\")
+endif()
+
+execute_process(
+ COMMAND \"${hg_EXECUTABLE}\" clone -U \"${hg_repository}\" \"${src_name}\"
+ WORKING_DIRECTORY \"${work_dir}\"
+ RESULT_VARIABLE error_code
+ )
+if(error_code)
+ message(FATAL_ERROR \"Failed to clone repository: '${hg_repository}'\")
+endif()
+
+execute_process(
+ COMMAND \"${hg_EXECUTABLE}\" update ${hg_tag}
+ WORKING_DIRECTORY \"${work_dir}/${src_name}\"
+ RESULT_VARIABLE error_code
+ )
+if(error_code)
+ message(FATAL_ERROR \"Failed to checkout tag: '${hg_tag}'\")
+endif()
+
+# Complete success, update the script-last-run stamp file:
+#
+execute_process(
+ COMMAND \${CMAKE_COMMAND} -E copy
+ \"${hgclone_infofile}\"
+ \"${hgclone_stampfile}\"
+ RESULT_VARIABLE error_code
+ )
+if(error_code)
+ message(FATAL_ERROR \"Failed to copy script-last-run stamp file: '${hgclone_stampfile}'\")
+endif()
+
+"
+)
+
+endfunction()
+
+
+function(_ep_write_gitupdate_script script_filename git_EXECUTABLE git_tag git_remote_name init_submodules git_submodules_recurse git_submodules git_repository work_dir)
+ if("${git_tag}" STREQUAL "")
+ message(FATAL_ERROR "Tag for git checkout should not be empty.")
+ endif()
+ if(NOT GIT_VERSION_STRING VERSION_LESS 1.7.6)
+ set(git_stash_save_options --all --quiet)
+ else()
+ set(git_stash_save_options --quiet)
+ endif()
+ file(WRITE ${script_filename}
+"
+execute_process(
+ COMMAND \"${git_EXECUTABLE}\" rev-list --max-count=1 HEAD
+ WORKING_DIRECTORY \"${work_dir}\"
+ RESULT_VARIABLE error_code
+ OUTPUT_VARIABLE head_sha
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+if(error_code)
+ message(FATAL_ERROR \"Failed to get the hash for HEAD\")
+endif()
+
+execute_process(
+ COMMAND \"${git_EXECUTABLE}\" show-ref ${git_tag}
+ WORKING_DIRECTORY \"${work_dir}\"
+ OUTPUT_VARIABLE show_ref_output
+ )
+# If a remote ref is asked for, which can possibly move around,
+# we must always do a fetch and checkout.
+if(\"\${show_ref_output}\" MATCHES \"remotes\")
+ set(is_remote_ref 1)
+else()
+ set(is_remote_ref 0)
+endif()
+
+# Tag is in the form <remote>/<tag> (i.e. origin/master) we must strip
+# the remote from the tag.
+if(\"\${show_ref_output}\" MATCHES \"refs/remotes/${git_tag}\")
+ string(REGEX MATCH \"^([^/]+)/(.+)$\" _unused \"${git_tag}\")
+ set(git_remote \"\${CMAKE_MATCH_1}\")
+ set(git_tag \"\${CMAKE_MATCH_2}\")
+else()
+ set(git_remote \"${git_remote_name}\")
+ set(git_tag \"${git_tag}\")
+endif()
+
+# This will fail if the tag does not exist (it probably has not been fetched
+# yet).
+execute_process(
+ COMMAND \"${git_EXECUTABLE}\" rev-list --max-count=1 ${git_tag}
+ WORKING_DIRECTORY \"${work_dir}\"
+ RESULT_VARIABLE error_code
+ OUTPUT_VARIABLE tag_sha
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+
+# Is the hash checkout out that we want?
+if(error_code OR is_remote_ref OR NOT (\"\${tag_sha}\" STREQUAL \"\${head_sha}\"))
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" fetch
+ WORKING_DIRECTORY \"${work_dir}\"
+ RESULT_VARIABLE error_code
+ )
+ if(error_code)
+ message(FATAL_ERROR \"Failed to fetch repository '${git_repository}'\")
+ endif()
+
+ if(is_remote_ref)
+ # Check if stash is needed
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" status --porcelain
+ WORKING_DIRECTORY \"${work_dir}\"
+ RESULT_VARIABLE error_code
+ OUTPUT_VARIABLE repo_status
+ )
+ if(error_code)
+ message(FATAL_ERROR \"Failed to get the status\")
+ endif()
+ string(LENGTH \"\${repo_status}\" need_stash)
+
+ # If not in clean state, stash changes in order to be able to be able to
+ # perform git pull --rebase
+ if(need_stash)
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" stash save ${git_stash_save_options}
+ WORKING_DIRECTORY \"${work_dir}\"
+ RESULT_VARIABLE error_code
+ )
+ if(error_code)
+ message(FATAL_ERROR \"Failed to stash changes\")
+ endif()
+ endif()
+
+ # Pull changes from the remote branch
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" rebase \${git_remote}/\${git_tag}
+ WORKING_DIRECTORY \"${work_dir}\"
+ RESULT_VARIABLE error_code
+ )
+ if(error_code)
+ # Rebase failed: Restore previous state.
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" rebase --abort
+ WORKING_DIRECTORY \"${work_dir}\"
+ )
+ if(need_stash)
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" stash pop --index --quiet
+ WORKING_DIRECTORY \"${work_dir}\"
+ )
+ endif()
+ message(FATAL_ERROR \"\\nFailed to rebase in: '${work_dir}/${src_name}'.\\nYou will have to resolve the conflicts manually\")
+ endif()
+
+ if(need_stash)
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" stash pop --index --quiet
+ WORKING_DIRECTORY \"${work_dir}\"
+ RESULT_VARIABLE error_code
+ )
+ if(error_code)
+ # Stash pop --index failed: Try again dropping the index
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" reset --hard --quiet
+ WORKING_DIRECTORY \"${work_dir}\"
+ RESULT_VARIABLE error_code
+ )
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" stash pop --quiet
+ WORKING_DIRECTORY \"${work_dir}\"
+ RESULT_VARIABLE error_code
+ )
+ if(error_code)
+ # Stash pop failed: Restore previous state.
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" reset --hard --quiet \${head_sha}
+ WORKING_DIRECTORY \"${work_dir}\"
+ )
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" stash pop --index --quiet
+ WORKING_DIRECTORY \"${work_dir}\"
+ )
+ message(FATAL_ERROR \"\\nFailed to unstash changes in: '${work_dir}/${src_name}'.\\nYou will have to resolve the conflicts manually\")
+ endif()
+ endif()
+ endif()
+ else()
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" checkout ${git_tag}
+ WORKING_DIRECTORY \"${work_dir}\"
+ RESULT_VARIABLE error_code
+ )
+ if(error_code)
+ message(FATAL_ERROR \"Failed to checkout tag: '${git_tag}'\")
+ endif()
+ endif()
+
+ set(init_submodules ${init_submodules})
+ if(init_submodules)
+ execute_process(
+ COMMAND \"${git_EXECUTABLE}\" submodule update ${git_submodules_recurse} --init ${git_submodules}
+ WORKING_DIRECTORY \"${work_dir}/${src_name}\"
+ RESULT_VARIABLE error_code
+ )
+ endif()
+ if(error_code)
+ message(FATAL_ERROR \"Failed to update submodules in: '${work_dir}/${src_name}'\")
+ endif()
+endif()
+
+"
+)
+
+endfunction(_ep_write_gitupdate_script)
+
+function(_ep_write_downloadfile_script script_filename REMOTE LOCAL timeout no_progress hash tls_verify tls_cainfo userpwd http_headers netrc netrc_file)
+ if(timeout)
+ set(TIMEOUT_ARGS TIMEOUT ${timeout})
+ set(TIMEOUT_MSG "${timeout} seconds")
+ else()
+ set(TIMEOUT_ARGS "# no TIMEOUT")
+ set(TIMEOUT_MSG "none")
+ endif()
+
+ if(no_progress)
+ set(SHOW_PROGRESS "")
+ else()
+ set(SHOW_PROGRESS "SHOW_PROGRESS")
+ endif()
+
+ if("${hash}" MATCHES "${_ep_hash_regex}")
+ set(ALGO "${CMAKE_MATCH_1}")
+ string(TOLOWER "${CMAKE_MATCH_2}" EXPECT_VALUE)
+ else()
+ set(ALGO "")
+ set(EXPECT_VALUE "")
+ endif()
+
+ set(TLS_VERIFY_CODE "")
+ set(TLS_CAINFO_CODE "")
+ set(NETRC_CODE "")
+ set(NETRC_FILE_CODE "")
+
+ # check for curl globals in the project
+ if(DEFINED CMAKE_TLS_VERIFY)
+ set(TLS_VERIFY_CODE "set(CMAKE_TLS_VERIFY ${CMAKE_TLS_VERIFY})")
+ endif()
+ if(DEFINED CMAKE_TLS_CAINFO)
+ set(TLS_CAINFO_CODE "set(CMAKE_TLS_CAINFO \"${CMAKE_TLS_CAINFO}\")")
+ endif()
+ if(DEFINED CMAKE_NETRC)
+ set(NETRC_CODE "set(CMAKE_NETRC \"${CMAKE_NETRC}\")")
+ endif()
+ if(DEFINED CMAKE_NETRC_FILE)
+ set(NETRC_FILE_CODE "set(CMAKE_NETRC_FILE \"${CMAKE_NETRC_FILE}\")")
+ endif()
+
+ # now check for curl locals so that the local values
+ # will override the globals
+
+ # check for tls_verify argument
+ string(LENGTH "${tls_verify}" tls_verify_len)
+ if(tls_verify_len GREATER 0)
+ set(TLS_VERIFY_CODE "set(CMAKE_TLS_VERIFY ${tls_verify})")
+ endif()
+ # check for tls_cainfo argument
+ string(LENGTH "${tls_cainfo}" tls_cainfo_len)
+ if(tls_cainfo_len GREATER 0)
+ set(TLS_CAINFO_CODE "set(CMAKE_TLS_CAINFO \"${tls_cainfo}\")")
+ endif()
+ # check for netrc argument
+ string(LENGTH "${netrc}" netrc_len)
+ if(netrc_len GREATER 0)
+ set(NETRC_CODE "set(CMAKE_NETRC \"${netrc}\")")
+ endif()
+ # check for netrc_file argument
+ string(LENGTH "${netrc_file}" netrc_file_len)
+ if(netrc_file_len GREATER 0)
+ set(NETRC_FILE_CODE "set(CMAKE_NETRC_FILE \"${netrc_file}\")")
+ endif()
+
+ if(userpwd STREQUAL ":")
+ set(USERPWD_ARGS)
+ else()
+ set(USERPWD_ARGS USERPWD "${userpwd}")
+ endif()
+
+ set(HTTP_HEADERS_ARGS "")
+ if(NOT http_headers STREQUAL "")
+ foreach(header ${http_headers})
+ set(
+ HTTP_HEADERS_ARGS
+ "HTTPHEADER \"${header}\"\n ${HTTP_HEADERS_ARGS}"
+ )
+ endforeach()
+ endif()
+
+ # Used variables:
+ # * TLS_VERIFY_CODE
+ # * TLS_CAINFO_CODE
+ # * ALGO
+ # * EXPECT_VALUE
+ # * REMOTE
+ # * LOCAL
+ # * SHOW_PROGRESS
+ # * TIMEOUT_ARGS
+ # * TIMEOUT_MSG
+ # * USERPWD_ARGS
+ # * HTTP_HEADERS_ARGS
+ configure_file(
+ "${_ExternalProject_SELF_DIR}/ExternalProject-download.cmake.in"
+ "${script_filename}"
+ @ONLY
+ )
+endfunction()
+
+function(_ep_write_verifyfile_script script_filename LOCAL hash)
+ if("${hash}" MATCHES "${_ep_hash_regex}")
+ set(ALGO "${CMAKE_MATCH_1}")
+ string(TOLOWER "${CMAKE_MATCH_2}" EXPECT_VALUE)
+ else()
+ set(ALGO "")
+ set(EXPECT_VALUE "")
+ endif()
+
+ # Used variables:
+ # * ALGO
+ # * EXPECT_VALUE
+ # * LOCAL
+ configure_file(
+ "${_ExternalProject_SELF_DIR}/ExternalProject-verify.cmake.in"
+ "${script_filename}"
+ @ONLY
+ )
+endfunction()
+
+
+function(_ep_write_extractfile_script script_filename name filename directory)
+ set(args "")
+
+ if(filename MATCHES "(\\.|=)(7z|tar\\.bz2|tar\\.gz|tar\\.xz|tbz2|tgz|txz|zip)$")
+ set(args xfz)
+ endif()
+
+ if(filename MATCHES "(\\.|=)tar$")
+ set(args xf)
+ endif()
+
+ if(args STREQUAL "")
+ message(SEND_ERROR "error: do not know how to extract '${filename}' -- known types are .7z, .tar, .tar.bz2, .tar.gz, .tar.xz, .tbz2, .tgz, .txz and .zip")
+ return()
+ endif()
+
+ file(WRITE ${script_filename}
+"# Make file names absolute:
+#
+get_filename_component(filename \"${filename}\" ABSOLUTE)
+get_filename_component(directory \"${directory}\" ABSOLUTE)
+
+message(STATUS \"extracting...
+ src='\${filename}'
+ dst='\${directory}'\")
+
+if(NOT EXISTS \"\${filename}\")
+ message(FATAL_ERROR \"error: file to extract does not exist: '\${filename}'\")
+endif()
+
+# Prepare a space for extracting:
+#
+set(i 1234)
+while(EXISTS \"\${directory}/../ex-${name}\${i}\")
+ math(EXPR i \"\${i} + 1\")
+endwhile()
+set(ut_dir \"\${directory}/../ex-${name}\${i}\")
+file(MAKE_DIRECTORY \"\${ut_dir}\")
+
+# Extract it:
+#
+message(STATUS \"extracting... [tar ${args}]\")
+execute_process(COMMAND \${CMAKE_COMMAND} -E tar ${args} \${filename}
+ WORKING_DIRECTORY \${ut_dir}
+ RESULT_VARIABLE rv)
+
+if(NOT rv EQUAL 0)
+ message(STATUS \"extracting... [error clean up]\")
+ file(REMOVE_RECURSE \"\${ut_dir}\")
+ message(FATAL_ERROR \"error: extract of '\${filename}' failed\")
+endif()
+
+# Analyze what came out of the tar file:
+#
+message(STATUS \"extracting... [analysis]\")
+file(GLOB contents \"\${ut_dir}/*\")
+list(REMOVE_ITEM contents \"\${ut_dir}/.DS_Store\")
+list(LENGTH contents n)
+if(NOT n EQUAL 1 OR NOT IS_DIRECTORY \"\${contents}\")
+ set(contents \"\${ut_dir}\")
+endif()
+
+# Move \"the one\" directory to the final directory:
+#
+message(STATUS \"extracting... [rename]\")
+file(REMOVE_RECURSE \${directory})
+get_filename_component(contents \${contents} ABSOLUTE)
+file(RENAME \${contents} \${directory})
+
+# Clean up:
+#
+message(STATUS \"extracting... [clean up]\")
+file(REMOVE_RECURSE \"\${ut_dir}\")
+
+message(STATUS \"extracting... done\")
+"
+)
+
+endfunction()
+
+
+function(_ep_set_directories name)
+ get_property(prefix TARGET ${name} PROPERTY _EP_PREFIX)
+ if(NOT prefix)
+ get_property(prefix DIRECTORY PROPERTY EP_PREFIX)
+ if(NOT prefix)
+ get_property(base DIRECTORY PROPERTY EP_BASE)
+ if(NOT base)
+ set(prefix "${name}-prefix")
+ endif()
+ endif()
+ endif()
+ if(prefix)
+ set(tmp_default "${prefix}/tmp")
+ set(download_default "${prefix}/src")
+ set(source_default "${prefix}/src/${name}")
+ set(binary_default "${prefix}/src/${name}-build")
+ set(stamp_default "${prefix}/src/${name}-stamp")
+ set(install_default "${prefix}")
+ else()
+ set(tmp_default "${base}/tmp/${name}")
+ set(download_default "${base}/Download/${name}")
+ set(source_default "${base}/Source/${name}")
+ set(binary_default "${base}/Build/${name}")
+ set(stamp_default "${base}/Stamp/${name}")
+ set(install_default "${base}/Install/${name}")
+ endif()
+ get_property(build_in_source TARGET ${name} PROPERTY _EP_BUILD_IN_SOURCE)
+ if(build_in_source)
+ get_property(have_binary_dir TARGET ${name} PROPERTY _EP_BINARY_DIR SET)
+ if(have_binary_dir)
+ message(FATAL_ERROR
+ "External project ${name} has both BINARY_DIR and BUILD_IN_SOURCE!")
+ endif()
+ endif()
+ set(top "${CMAKE_CURRENT_BINARY_DIR}")
+
+ # Apply defaults and convert to absolute paths.
+ set(places stamp download source binary install tmp)
+ foreach(var ${places})
+ string(TOUPPER "${var}" VAR)
+ get_property(${var}_dir TARGET ${name} PROPERTY _EP_${VAR}_DIR)
+ if(NOT ${var}_dir)
+ set(${var}_dir "${${var}_default}")
+ endif()
+ if(NOT IS_ABSOLUTE "${${var}_dir}")
+ get_filename_component(${var}_dir "${top}/${${var}_dir}" ABSOLUTE)
+ endif()
+ set_property(TARGET ${name} PROPERTY _EP_${VAR}_DIR "${${var}_dir}")
+ endforeach()
+
+ # Special case for default log directory based on stamp directory.
+ get_property(log_dir TARGET ${name} PROPERTY _EP_LOG_DIR)
+ if(NOT log_dir)
+ get_property(log_dir TARGET ${name} PROPERTY _EP_STAMP_DIR)
+ endif()
+ if(NOT IS_ABSOLUTE "${log_dir}")
+ get_filename_component(log_dir "${top}/${log_dir}" ABSOLUTE)
+ endif()
+ set_property(TARGET ${name} PROPERTY _EP_LOG_DIR "${log_dir}")
+
+ get_property(source_subdir TARGET ${name} PROPERTY _EP_SOURCE_SUBDIR)
+ if(NOT source_subdir)
+ set_property(TARGET ${name} PROPERTY _EP_SOURCE_SUBDIR "")
+ elseif(IS_ABSOLUTE "${source_subdir}")
+ message(FATAL_ERROR
+ "External project ${name} has non-relative SOURCE_SUBDIR!")
+ else()
+ # Prefix with a slash so that when appended to the source directory, it
+ # behaves as expected.
+ set_property(TARGET ${name} PROPERTY _EP_SOURCE_SUBDIR "/${source_subdir}")
+ endif()
+ if(build_in_source)
+ get_property(source_dir TARGET ${name} PROPERTY _EP_SOURCE_DIR)
+ if(source_subdir)
+ set_property(TARGET ${name} PROPERTY _EP_BINARY_DIR "${source_dir}/${source_subdir}")
+ else()
+ set_property(TARGET ${name} PROPERTY _EP_BINARY_DIR "${source_dir}")
+ endif()
+ endif()
+
+ # Make the directories at CMake configure time *and* add a custom command
+ # to make them at build time. They need to exist at makefile generation
+ # time for Borland make and wmake so that CMake may generate makefiles
+ # with "cd C:\short\paths\with\no\spaces" commands in them.
+ #
+ # Additionally, the add_custom_command is still used in case somebody
+ # removes one of the necessary directories and tries to rebuild without
+ # re-running cmake.
+ foreach(var ${places})
+ string(TOUPPER "${var}" VAR)
+ get_property(dir TARGET ${name} PROPERTY _EP_${VAR}_DIR)
+ file(MAKE_DIRECTORY "${dir}")
+ if(NOT EXISTS "${dir}")
+ message(FATAL_ERROR "dir '${dir}' does not exist after file(MAKE_DIRECTORY)")
+ endif()
+ endforeach()
+endfunction()
+
+
+# IMPORTANT: this MUST be a macro and not a function because of the
+# in-place replacements that occur in each ${var}
+#
+macro(_ep_replace_location_tags target_name)
+ set(vars ${ARGN})
+ foreach(var ${vars})
+ if(${var})
+ foreach(dir SOURCE_DIR SOURCE_SUBDIR BINARY_DIR INSTALL_DIR TMP_DIR DOWNLOAD_DIR DOWNLOADED_FILE LOG_DIR)
+ get_property(val TARGET ${target_name} PROPERTY _EP_${dir})
+ string(REPLACE "<${dir}>" "${val}" ${var} "${${var}}")
+ endforeach()
+ endif()
+ endforeach()
+endmacro()
+
+
+function(_ep_command_line_to_initial_cache var args force)
+ set(script_initial_cache "")
+ set(regex "^([^:]+):([^=]+)=(.*)$")
+ set(setArg "")
+ set(forceArg "")
+ if(force)
+ set(forceArg "FORCE")
+ endif()
+ foreach(line ${args})
+ if("${line}" MATCHES "^-D(.*)")
+ set(line "${CMAKE_MATCH_1}")
+ if(NOT "${setArg}" STREQUAL "")
+ # This is required to build up lists in variables, or complete an entry
+ string(APPEND setArg "${accumulator}\" CACHE ${type} \"Initial cache\" ${forceArg})")
+ string(APPEND script_initial_cache "\n${setArg}")
+ set(accumulator "")
+ set(setArg "")
+ endif()
+ if("${line}" MATCHES "${regex}")
+ set(name "${CMAKE_MATCH_1}")
+ set(type "${CMAKE_MATCH_2}")
+ set(value "${CMAKE_MATCH_3}")
+ set(setArg "set(${name} \"${value}")
+ else()
+ message(WARNING "Line '${line}' does not match regex. Ignoring.")
+ endif()
+ else()
+ # Assume this is a list to append to the last var
+ string(APPEND accumulator ";${line}")
+ endif()
+ endforeach()
+ # Catch the final line of the args
+ if(NOT "${setArg}" STREQUAL "")
+ string(APPEND setArg "${accumulator}\" CACHE ${type} \"Initial cache\" ${forceArg})")
+ string(APPEND script_initial_cache "\n${setArg}")
+ endif()
+ set(${var} ${script_initial_cache} PARENT_SCOPE)
+endfunction()
+
+
+function(_ep_write_initial_cache target_name script_filename script_initial_cache)
+ # Write out values into an initial cache, that will be passed to CMake with -C
+ # Replace location tags.
+ _ep_replace_location_tags(${target_name} script_initial_cache)
+ _ep_replace_location_tags(${target_name} script_filename)
+ # Replace list separators.
+ get_property(sep TARGET ${target_name} PROPERTY _EP_LIST_SEPARATOR)
+ if(sep AND script_initial_cache)
+ string(REPLACE "${sep}" ";" script_initial_cache "${script_initial_cache}")
+ endif()
+ # Write out the initial cache file to the location specified.
+ file(GENERATE OUTPUT "${script_filename}" CONTENT "${script_initial_cache}")
+endfunction()
+
+
+function(ExternalProject_Get_Property name)
+ foreach(var ${ARGN})
+ string(TOUPPER "${var}" VAR)
+ get_property(is_set TARGET ${name} PROPERTY _EP_${VAR} SET)
+ if(NOT is_set)
+ message(FATAL_ERROR "External project \"${name}\" has no ${var}")
+ endif()
+ get_property(${var} TARGET ${name} PROPERTY _EP_${VAR})
+ set(${var} "${${var}}" PARENT_SCOPE)
+ endforeach()
+endfunction()
+
+
+function(_ep_get_configure_command_id name cfg_cmd_id_var)
+ get_target_property(cmd ${name} _EP_CONFIGURE_COMMAND)
+
+ if(cmd STREQUAL "")
+ # Explicit empty string means no configure step for this project
+ set(${cfg_cmd_id_var} "none" PARENT_SCOPE)
+ else()
+ if(NOT cmd)
+ # Default is "use cmake":
+ set(${cfg_cmd_id_var} "cmake" PARENT_SCOPE)
+ else()
+ # Otherwise we have to analyze the value:
+ if(cmd MATCHES "^[^;]*/configure")
+ set(${cfg_cmd_id_var} "configure" PARENT_SCOPE)
+ elseif(cmd MATCHES "^[^;]*/cmake" AND NOT cmd MATCHES ";-[PE];")
+ set(${cfg_cmd_id_var} "cmake" PARENT_SCOPE)
+ elseif(cmd MATCHES "config")
+ set(${cfg_cmd_id_var} "configure" PARENT_SCOPE)
+ else()
+ set(${cfg_cmd_id_var} "unknown:${cmd}" PARENT_SCOPE)
+ endif()
+ endif()
+ endif()
+endfunction()
+
+
+function(_ep_get_build_command name step cmd_var)
+ set(cmd "")
+ set(args)
+ _ep_get_configure_command_id(${name} cfg_cmd_id)
+ if(cfg_cmd_id STREQUAL "cmake")
+ # CMake project. Select build command based on generator.
+ get_target_property(cmake_generator ${name} _EP_CMAKE_GENERATOR)
+ if("${CMAKE_GENERATOR}" MATCHES "Make" AND
+ ("${cmake_generator}" MATCHES "Make" OR NOT cmake_generator))
+ # The project uses the same Makefile generator. Use recursive make.
+ set(cmd "$(MAKE)")
+ if(step STREQUAL "INSTALL")
+ set(args install)
+ endif()
+ if("x${step}x" STREQUAL "xTESTx")
+ set(args test)
+ endif()
+ else()
+ # Drive the project with "cmake --build".
+ get_target_property(cmake_command ${name} _EP_CMAKE_COMMAND)
+ if(cmake_command)
+ set(cmd "${cmake_command}")
+ else()
+ set(cmd "${CMAKE_COMMAND}")
+ endif()
+ set(args --build ".")
+ get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
+ if(_isMultiConfig)
+ if (CMAKE_CFG_INTDIR AND
+ NOT CMAKE_CFG_INTDIR STREQUAL "." AND
+ NOT CMAKE_CFG_INTDIR MATCHES "\\$")
+ # CMake 3.4 and below used the CMAKE_CFG_INTDIR placeholder value
+ # provided by multi-configuration generators. Some projects were
+ # taking advantage of that undocumented implementation detail to
+ # specify a specific configuration here. They should use
+ # BUILD_COMMAND to change the default command instead, but for
+ # compatibility honor the value.
+ set(config ${CMAKE_CFG_INTDIR})
+ message(AUTHOR_WARNING "CMAKE_CFG_INTDIR should not be set by project code.\n"
+ "To get a non-default build command, use the BUILD_COMMAND option.")
+ else()
+ set(config $<CONFIG>)
+ endif()
+ list(APPEND args --config ${config})
+ endif()
+ if(step STREQUAL "INSTALL")
+ list(APPEND args --target install)
+ endif()
+ # But for "TEST" drive the project with corresponding "ctest".
+ if("x${step}x" STREQUAL "xTESTx")
+ string(REGEX REPLACE "^(.*/)cmake([^/]*)$" "\\1ctest\\2" cmd "${cmd}")
+ set(args "")
+ if(_isMultiConfig)
+ list(APPEND args -C ${config})
+ endif()
+ endif()
+ endif()
+ else()
+ # Non-CMake project. Guess "make" and "make install" and "make test".
+ if("${CMAKE_GENERATOR}" MATCHES "Makefiles")
+ # Try to get the parallel arguments
+ set(cmd "$(MAKE)")
+ else()
+ set(cmd "make")
+ endif()
+ if(step STREQUAL "INSTALL")
+ set(args install)
+ endif()
+ if("x${step}x" STREQUAL "xTESTx")
+ set(args test)
+ endif()
+ endif()
+
+ # Use user-specified arguments instead of default arguments, if any.
+ get_property(have_args TARGET ${name} PROPERTY _EP_${step}_ARGS SET)
+ if(have_args)
+ get_target_property(args ${name} _EP_${step}_ARGS)
+ endif()
+
+ list(APPEND cmd ${args})
+ set(${cmd_var} "${cmd}" PARENT_SCOPE)
+endfunction()
+
+function(_ep_write_log_script name step cmd_var)
+ ExternalProject_Get_Property(${name} log_dir)
+ ExternalProject_Get_Property(${name} stamp_dir)
+ set(command "${${cmd_var}}")
+
+ set(make "")
+ set(code_cygpath_make "")
+ if(command MATCHES "^\\$\\(MAKE\\)")
+ # GNU make recognizes the string "$(MAKE)" as recursive make, so
+ # ensure that it appears directly in the makefile.
+ string(REGEX REPLACE "^\\$\\(MAKE\\)" "\${make}" command "${command}")
+ set(make "-Dmake=$(MAKE)")
+
+ if(WIN32 AND NOT CYGWIN)
+ set(code_cygpath_make "
+if(\${make} MATCHES \"^/\")
+ execute_process(
+ COMMAND cygpath -w \${make}
+ OUTPUT_VARIABLE cygpath_make
+ ERROR_VARIABLE cygpath_make
+ RESULT_VARIABLE cygpath_error
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ if(NOT cygpath_error)
+ set(make \${cygpath_make})
+ endif()
+endif()
+")
+ endif()
+ endif()
+
+ set(config "")
+ if("${CMAKE_CFG_INTDIR}" MATCHES "^\\$")
+ string(REPLACE "${CMAKE_CFG_INTDIR}" "\${config}" command "${command}")
+ set(config "-Dconfig=${CMAKE_CFG_INTDIR}")
+ endif()
+
+ # Wrap multiple 'COMMAND' lines up into a second-level wrapper
+ # script so all output can be sent to one log file.
+ if(command MATCHES "(^|;)COMMAND;")
+ set(code_execute_process "
+${code_cygpath_make}
+execute_process(COMMAND \${command} RESULT_VARIABLE result)
+if(result)
+ set(msg \"Command failed (\${result}):\\n\")
+ foreach(arg IN LISTS command)
+ set(msg \"\${msg} '\${arg}'\")
+ endforeach()
+ message(FATAL_ERROR \"\${msg}\")
+endif()
+")
+ set(code "")
+ set(cmd "")
+ set(sep "")
+ foreach(arg IN LISTS command)
+ if("x${arg}" STREQUAL "xCOMMAND")
+ if(NOT "x${cmd}" STREQUAL "x")
+ string(APPEND code "set(command \"${cmd}\")${code_execute_process}")
+ endif()
+ set(cmd "")
+ set(sep "")
+ else()
+ string(APPEND cmd "${sep}${arg}")
+ set(sep ";")
+ endif()
+ endforeach()
+ string(APPEND code "set(command \"${cmd}\")${code_execute_process}")
+ file(GENERATE OUTPUT "${stamp_dir}/${name}-${step}-$<CONFIG>-impl.cmake" CONTENT "${code}")
+ set(command ${CMAKE_COMMAND} "-Dmake=\${make}" "-Dconfig=\${config}" -P ${stamp_dir}/${name}-${step}-$<CONFIG>-impl.cmake)
+ endif()
+
+ # Wrap the command in a script to log output to files.
+ set(script ${stamp_dir}/${name}-${step}-$<CONFIG>.cmake)
+ set(logbase ${log_dir}/${name}-${step})
+ get_property(log_merged TARGET ${name} PROPERTY _EP_LOG_MERGED_STDOUTERR)
+ get_property(log_output_on_failure TARGET ${name} PROPERTY _EP_LOG_OUTPUT_ON_FAILURE)
+ if (log_merged)
+ set(stdout_log "${logbase}.log")
+ set(stderr_log "${logbase}.log")
+ else()
+ set(stdout_log "${logbase}-out.log")
+ set(stderr_log "${logbase}-err.log")
+ endif()
+ set(code "
+cmake_minimum_required(VERSION 3.15)
+${code_cygpath_make}
+set(command \"${command}\")
+set(log_merged \"${log_merged}\")
+set(log_output_on_failure \"${log_output_on_failure}\")
+set(stdout_log \"${stdout_log}\")
+set(stderr_log \"${stderr_log}\")
+execute_process(
+ COMMAND \${command}
+ RESULT_VARIABLE result
+ OUTPUT_FILE \"\${stdout_log}\"
+ ERROR_FILE \"\${stderr_log}\"
+ )
+macro(read_up_to_max_size log_file output_var)
+ file(SIZE \${log_file} determined_size)
+ set(max_size 10240)
+ if (determined_size GREATER max_size)
+ math(EXPR seek_position \"\${determined_size} - \${max_size}\")
+ file(READ \${log_file} \${output_var} OFFSET \${seek_position})
+ set(\${output_var} \"...skipping to end...\\n\${\${output_var}}\")
+ else()
+ file(READ \${log_file} \${output_var})
+ endif()
+endmacro()
+if(result)
+ set(msg \"Command failed: \${result}\\n\")
+ foreach(arg IN LISTS command)
+ set(msg \"\${msg} '\${arg}'\")
+ endforeach()
+ if (\${log_merged})
+ set(msg \"\${msg}\\nSee also\\n \${stderr_log}\")
+ else()
+ set(msg \"\${msg}\\nSee also\\n ${logbase}-*.log\")
+ endif()
+ if (\${log_output_on_failure})
+ message(SEND_ERROR \"\${msg}\")
+ if (\${log_merged})
+ read_up_to_max_size(\"\${stderr_log}\" error_log_contents)
+ message(STATUS \"Log output is:\\n\${error_log_contents}\")
+ else()
+ read_up_to_max_size(\"\${stdout_log}\" out_log_contents)
+ read_up_to_max_size(\"\${stderr_log}\" err_log_contents)
+ message(STATUS \"stdout output is:\\n\${out_log_contents}\")
+ message(STATUS \"stderr output is:\\n\${err_log_contents}\")
+ endif()
+ message(FATAL_ERROR \"Stopping after outputting logs.\")
+ else()
+ message(FATAL_ERROR \"\${msg}\")
+ endif()
+else()
+ set(msg \"${name} ${step} command succeeded. See also ${logbase}-*.log\")
+ message(STATUS \"\${msg}\")
+endif()
+")
+ file(GENERATE OUTPUT "${script}" CONTENT "${code}")
+ set(command ${CMAKE_COMMAND} ${make} ${config} -P ${script})
+ set(${cmd_var} "${command}" PARENT_SCOPE)
+endfunction()
+
+# This module used to use "/${CMAKE_CFG_INTDIR}" directly and produced
+# makefiles with "/./" in paths for custom command dependencies. Which
+# resulted in problems with parallel make -j invocations.
+#
+# This function was added so that the suffix (search below for ${cfgdir}) is
+# only set to "/${CMAKE_CFG_INTDIR}" when ${CMAKE_CFG_INTDIR} is not going to
+# be "." (multi-configuration build systems like Visual Studio and Xcode...)
+#
+function(_ep_get_configuration_subdir_suffix suffix_var)
+ set(suffix "")
+ get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
+ if(_isMultiConfig)
+ set(suffix "/${CMAKE_CFG_INTDIR}")
+ endif()
+ set(${suffix_var} "${suffix}" PARENT_SCOPE)
+endfunction()
+
+
+function(_ep_get_step_stampfile name step stampfile_var)
+ ExternalProject_Get_Property(${name} stamp_dir)
+
+ _ep_get_configuration_subdir_suffix(cfgdir)
+ set(stampfile "${stamp_dir}${cfgdir}/${name}-${step}")
+
+ set(${stampfile_var} "${stampfile}" PARENT_SCOPE)
+endfunction()
+
+
+function(_ep_get_complete_stampfile name stampfile_var)
+ set(cmf_dir ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles)
+ _ep_get_configuration_subdir_suffix(cfgdir)
+ set(stampfile "${cmf_dir}${cfgdir}/${name}-complete")
+
+ set(${stampfile_var} ${stampfile} PARENT_SCOPE)
+endfunction()
+
+
+function(ExternalProject_Add_StepTargets name)
+ set(steps ${ARGN})
+ if(ARGC GREATER 1 AND "${ARGV1}" STREQUAL "NO_DEPENDS")
+ set(no_deps 1)
+ list(REMOVE_AT steps 0)
+ endif()
+ foreach(step ${steps})
+ if(no_deps AND "${step}" MATCHES "^(configure|build|install|test)$")
+ message(AUTHOR_WARNING "Using NO_DEPENDS for \"${step}\" step might break parallel builds")
+ endif()
+ _ep_get_step_stampfile(${name} ${step} stamp_file)
+ add_custom_target(${name}-${step}
+ DEPENDS ${stamp_file})
+ set_property(TARGET ${name}-${step} PROPERTY _EP_IS_EXTERNAL_PROJECT_STEP 1)
+ set_property(TARGET ${name}-${step} PROPERTY LABELS ${name})
+ set_property(TARGET ${name}-${step} PROPERTY FOLDER "ExternalProjectTargets/${name}")
+
+ # Depend on other external projects (target-level).
+ if(NOT no_deps)
+ get_property(deps TARGET ${name} PROPERTY _EP_DEPENDS)
+ foreach(arg IN LISTS deps)
+ add_dependencies(${name}-${step} ${arg})
+ endforeach()
+ endif()
+ endforeach()
+endfunction()
+
+
+function(ExternalProject_Add_Step name step)
+ _ep_get_complete_stampfile(${name} complete_stamp_file)
+ _ep_get_step_stampfile(${name} ${step} stamp_file)
+
+ _ep_parse_arguments(ExternalProject_Add_Step
+ ${name} _EP_${step}_ "${ARGN}")
+
+ get_property(exclude_from_main TARGET ${name} PROPERTY _EP_${step}_EXCLUDE_FROM_MAIN)
+ if(NOT exclude_from_main)
+ add_custom_command(APPEND
+ OUTPUT ${complete_stamp_file}
+ DEPENDS ${stamp_file}
+ )
+ endif()
+
+ # Steps depending on this step.
+ get_property(dependers TARGET ${name} PROPERTY _EP_${step}_DEPENDERS)
+ foreach(depender IN LISTS dependers)
+ _ep_get_step_stampfile(${name} ${depender} depender_stamp_file)
+ add_custom_command(APPEND
+ OUTPUT ${depender_stamp_file}
+ DEPENDS ${stamp_file}
+ )
+ endforeach()
+
+ # Dependencies on files.
+ get_property(depends TARGET ${name} PROPERTY _EP_${step}_DEPENDS)
+
+ # Byproducts of the step.
+ get_property(byproducts TARGET ${name} PROPERTY _EP_${step}_BYPRODUCTS)
+
+ # Dependencies on steps.
+ get_property(dependees TARGET ${name} PROPERTY _EP_${step}_DEPENDEES)
+ foreach(dependee IN LISTS dependees)
+ _ep_get_step_stampfile(${name} ${dependee} dependee_stamp_file)
+ list(APPEND depends ${dependee_stamp_file})
+ endforeach()
+
+ # The command to run.
+ get_property(command TARGET ${name} PROPERTY _EP_${step}_COMMAND)
+ if(command)
+ set(comment "Performing ${step} step for '${name}'")
+ else()
+ set(comment "No ${step} step for '${name}'")
+ endif()
+ get_property(work_dir TARGET ${name} PROPERTY _EP_${step}_WORKING_DIRECTORY)
+
+ # Replace list separators.
+ get_property(sep TARGET ${name} PROPERTY _EP_LIST_SEPARATOR)
+ if(sep AND command)
+ string(REPLACE "${sep}" "\\;" command "${command}")
+ endif()
+
+ # Replace location tags.
+ _ep_replace_location_tags(${name} comment command work_dir byproducts)
+
+ # Custom comment?
+ get_property(comment_set TARGET ${name} PROPERTY _EP_${step}_COMMENT SET)
+ if(comment_set)
+ get_property(comment TARGET ${name} PROPERTY _EP_${step}_COMMENT)
+ endif()
+
+ # Uses terminal?
+ get_property(uses_terminal TARGET ${name} PROPERTY _EP_${step}_USES_TERMINAL)
+ if(uses_terminal)
+ set(uses_terminal USES_TERMINAL)
+ else()
+ set(uses_terminal "")
+ endif()
+
+ # Run every time?
+ get_property(always TARGET ${name} PROPERTY _EP_${step}_ALWAYS)
+ if(always)
+ set_property(SOURCE ${stamp_file} PROPERTY SYMBOLIC 1)
+ set(touch)
+ # Remove any existing stamp in case the option changed in an existing tree.
+ get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
+ if(_isMultiConfig)
+ foreach(cfg ${CMAKE_CONFIGURATION_TYPES})
+ string(REPLACE "/${CMAKE_CFG_INTDIR}" "/${cfg}" stamp_file_config "${stamp_file}")
+ file(REMOVE ${stamp_file_config})
+ endforeach()
+ else()
+ file(REMOVE ${stamp_file})
+ endif()
+ else()
+ set(touch ${CMAKE_COMMAND} -E touch ${stamp_file})
+ endif()
+
+ # Wrap with log script?
+ get_property(log TARGET ${name} PROPERTY _EP_${step}_LOG)
+ if(command AND log)
+ _ep_write_log_script(${name} ${step} command)
+ endif()
+
+ if("${command}" STREQUAL "")
+ # Some generators (i.e. Xcode) will not generate a file level target
+ # if no command is set, and therefore the dependencies on this
+ # target will be broken.
+ # The empty command is replaced by an echo command here in order to
+ # avoid this issue.
+ set(command ${CMAKE_COMMAND} -E echo_append)
+ endif()
+
+ add_custom_command(
+ OUTPUT ${stamp_file}
+ BYPRODUCTS ${byproducts}
+ COMMENT ${comment}
+ COMMAND ${command}
+ COMMAND ${touch}
+ DEPENDS ${depends}
+ WORKING_DIRECTORY ${work_dir}
+ VERBATIM
+ ${uses_terminal}
+ )
+ set_property(TARGET ${name} APPEND PROPERTY _EP_STEPS ${step})
+
+ # Add custom "step target"?
+ get_property(step_targets TARGET ${name} PROPERTY _EP_STEP_TARGETS)
+ if(NOT step_targets)
+ get_property(step_targets DIRECTORY PROPERTY EP_STEP_TARGETS)
+ endif()
+ foreach(st ${step_targets})
+ if("${st}" STREQUAL "${step}")
+ ExternalProject_Add_StepTargets(${name} ${step})
+ break()
+ endif()
+ endforeach()
+
+ get_property(independent_step_targets TARGET ${name} PROPERTY _EP_INDEPENDENT_STEP_TARGETS)
+ if(NOT independent_step_targets)
+ get_property(independent_step_targets DIRECTORY PROPERTY EP_INDEPENDENT_STEP_TARGETS)
+ endif()
+ foreach(st ${independent_step_targets})
+ if("${st}" STREQUAL "${step}")
+ ExternalProject_Add_StepTargets(${name} NO_DEPENDS ${step})
+ break()
+ endif()
+ endforeach()
+endfunction()
+
+
+function(ExternalProject_Add_StepDependencies name step)
+ set(dependencies ${ARGN})
+
+ # Sanity checks on "name" and "step".
+ if(NOT TARGET ${name})
+ message(FATAL_ERROR "Cannot find target \"${name}\". Perhaps it has not yet been created using ExternalProject_Add.")
+ endif()
+
+ get_property(type TARGET ${name} PROPERTY TYPE)
+ if(NOT type STREQUAL "UTILITY")
+ message(FATAL_ERROR "Target \"${name}\" was not generated by ExternalProject_Add.")
+ endif()
+
+ get_property(is_ep TARGET ${name} PROPERTY _EP_IS_EXTERNAL_PROJECT)
+ if(NOT is_ep)
+ message(FATAL_ERROR "Target \"${name}\" was not generated by ExternalProject_Add.")
+ endif()
+
+ get_property(steps TARGET ${name} PROPERTY _EP_STEPS)
+ list(FIND steps ${step} is_step)
+ if(NOT is_step)
+ message(FATAL_ERROR "External project \"${name}\" does not have a step \"${step}\".")
+ endif()
+
+ if(TARGET ${name}-${step})
+ get_property(type TARGET ${name}-${step} PROPERTY TYPE)
+ if(NOT type STREQUAL "UTILITY")
+ message(FATAL_ERROR "Target \"${name}-${step}\" was not generated by ExternalProject_Add_StepTargets.")
+ endif()
+ get_property(is_ep_step TARGET ${name}-${step} PROPERTY _EP_IS_EXTERNAL_PROJECT_STEP)
+ if(NOT is_ep_step)
+ message(FATAL_ERROR "Target \"${name}-${step}\" was not generated by ExternalProject_Add_StepTargets.")
+ endif()
+ endif()
+
+ # Always add file-level dependency, but add target-level dependency
+ # only if the target exists for that step.
+ _ep_get_step_stampfile(${name} ${step} stamp_file)
+ foreach(dep ${dependencies})
+ add_custom_command(APPEND
+ OUTPUT ${stamp_file}
+ DEPENDS ${dep})
+ if(TARGET ${name}-${step})
+ foreach(dep ${dependencies})
+ add_dependencies(${name}-${step} ${dep})
+ endforeach()
+ endif()
+ endforeach()
+
+endfunction()
+
+
+function(_ep_add_mkdir_command name)
+ ExternalProject_Get_Property(${name}
+ source_dir binary_dir install_dir stamp_dir download_dir tmp_dir log_dir)
+
+ _ep_get_configuration_subdir_suffix(cfgdir)
+
+ ExternalProject_Add_Step(${name} mkdir
+ COMMENT "Creating directories for '${name}'"
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${source_dir}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${binary_dir}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${install_dir}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${tmp_dir}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${stamp_dir}${cfgdir}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${download_dir}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${log_dir}
+ )
+endfunction()
+
+
+function(_ep_is_dir_empty dir empty_var)
+ file(GLOB gr "${dir}/*")
+ if("${gr}" STREQUAL "")
+ set(${empty_var} 1 PARENT_SCOPE)
+ else()
+ set(${empty_var} 0 PARENT_SCOPE)
+ endif()
+endfunction()
+
+function(_ep_get_git_submodules_recurse git_submodules_recurse)
+ # Checks for GIT_SUBMODULES_RECURSE property
+ # Default is ON, which sets git_submodules_recurse output variable to "--recursive"
+ # Otherwise, the output variable is set to an empty value ""
+ get_property(git_submodules_recurse_set TARGET ${name} PROPERTY _EP_GIT_SUBMODULES_RECURSE SET)
+ if(NOT git_submodules_recurse_set)
+ set(recurseFlag "--recursive")
+ else()
+ get_property(git_submodules_recurse_value TARGET ${name} PROPERTY _EP_GIT_SUBMODULES_RECURSE)
+ if(git_submodules_recurse_value)
+ set(recurseFlag "--recursive")
+ else()
+ set(recurseFlag "")
+ endif()
+ endif()
+ set(${git_submodules_recurse} "${recurseFlag}" PARENT_SCOPE)
+
+ # The git submodule update '--recursive' flag requires git >= v1.6.5
+ if(recurseFlag AND GIT_VERSION_STRING VERSION_LESS 1.6.5)
+ message(FATAL_ERROR "error: git version 1.6.5 or later required for --recursive flag with 'git submodule ...': GIT_VERSION_STRING='${GIT_VERSION_STRING}'")
+ endif()
+endfunction()
+
+
+function(_ep_add_download_command name)
+ ExternalProject_Get_Property(${name} source_dir stamp_dir download_dir tmp_dir)
+
+ get_property(cmd_set TARGET ${name} PROPERTY _EP_DOWNLOAD_COMMAND SET)
+ get_property(cmd TARGET ${name} PROPERTY _EP_DOWNLOAD_COMMAND)
+ get_property(cvs_repository TARGET ${name} PROPERTY _EP_CVS_REPOSITORY)
+ get_property(svn_repository TARGET ${name} PROPERTY _EP_SVN_REPOSITORY)
+ get_property(git_repository TARGET ${name} PROPERTY _EP_GIT_REPOSITORY)
+ get_property(hg_repository TARGET ${name} PROPERTY _EP_HG_REPOSITORY )
+ get_property(url TARGET ${name} PROPERTY _EP_URL)
+ get_property(fname TARGET ${name} PROPERTY _EP_DOWNLOAD_NAME)
+
+ # TODO: Perhaps file:// should be copied to download dir before extraction.
+ string(REGEX REPLACE "file://" "" url "${url}")
+
+ set(depends)
+ set(comment)
+ set(work_dir)
+
+ if(cmd_set)
+ set(work_dir ${download_dir})
+ elseif(cvs_repository)
+ find_package(CVS QUIET)
+ if(NOT CVS_EXECUTABLE)
+ message(FATAL_ERROR "error: could not find cvs for checkout of ${name}")
+ endif()
+
+ get_target_property(cvs_module ${name} _EP_CVS_MODULE)
+ if(NOT cvs_module)
+ message(FATAL_ERROR "error: no CVS_MODULE")
+ endif()
+
+ get_property(cvs_tag TARGET ${name} PROPERTY _EP_CVS_TAG)
+
+ set(repository ${cvs_repository})
+ set(module ${cvs_module})
+ set(tag ${cvs_tag})
+ configure_file(
+ "${CMAKE_ROOT}/Modules/RepositoryInfo.txt.in"
+ "${stamp_dir}/${name}-cvsinfo.txt"
+ @ONLY
+ )
+
+ get_filename_component(src_name "${source_dir}" NAME)
+ get_filename_component(work_dir "${source_dir}" PATH)
+ set(comment "Performing download step (CVS checkout) for '${name}'")
+ set(cmd ${CVS_EXECUTABLE} -d ${cvs_repository} -q co ${cvs_tag} -d ${src_name} ${cvs_module})
+ list(APPEND depends ${stamp_dir}/${name}-cvsinfo.txt)
+ elseif(svn_repository)
+ find_package(Subversion QUIET)
+ if(NOT Subversion_SVN_EXECUTABLE)
+ message(FATAL_ERROR "error: could not find svn for checkout of ${name}")
+ endif()
+
+ get_property(svn_revision TARGET ${name} PROPERTY _EP_SVN_REVISION)
+ get_property(svn_username TARGET ${name} PROPERTY _EP_SVN_USERNAME)
+ get_property(svn_password TARGET ${name} PROPERTY _EP_SVN_PASSWORD)
+ get_property(svn_trust_cert TARGET ${name} PROPERTY _EP_SVN_TRUST_CERT)
+
+ set(repository "${svn_repository} user=${svn_username} password=${svn_password}")
+ set(module)
+ set(tag ${svn_revision})
+ configure_file(
+ "${CMAKE_ROOT}/Modules/RepositoryInfo.txt.in"
+ "${stamp_dir}/${name}-svninfo.txt"
+ @ONLY
+ )
+
+ get_filename_component(src_name "${source_dir}" NAME)
+ get_filename_component(work_dir "${source_dir}" PATH)
+ set(comment "Performing download step (SVN checkout) for '${name}'")
+ set(svn_user_pw_args "")
+ if(DEFINED svn_username)
+ set(svn_user_pw_args ${svn_user_pw_args} "--username=${svn_username}")
+ endif()
+ if(DEFINED svn_password)
+ set(svn_user_pw_args ${svn_user_pw_args} "--password=${svn_password}")
+ endif()
+ if(svn_trust_cert)
+ set(svn_trust_cert_args --trust-server-cert)
+ endif()
+ set(cmd ${Subversion_SVN_EXECUTABLE} co ${svn_repository} ${svn_revision}
+ --non-interactive ${svn_trust_cert_args} ${svn_user_pw_args} ${src_name})
+ list(APPEND depends ${stamp_dir}/${name}-svninfo.txt)
+ elseif(git_repository)
+ unset(CMAKE_MODULE_PATH) # Use CMake builtin find module
+ find_package(Git QUIET)
+ if(NOT GIT_EXECUTABLE)
+ message(FATAL_ERROR "error: could not find git for clone of ${name}")
+ endif()
+
+ _ep_get_git_submodules_recurse(git_submodules_recurse)
+
+ get_property(git_tag TARGET ${name} PROPERTY _EP_GIT_TAG)
+ if(NOT git_tag)
+ set(git_tag "master")
+ endif()
+
+ set(git_init_submodules TRUE)
+ get_property(git_submodules_set TARGET ${name} PROPERTY _EP_GIT_SUBMODULES SET)
+ if(git_submodules_set)
+ get_property(git_submodules TARGET ${name} PROPERTY _EP_GIT_SUBMODULES)
+ if(git_submodules STREQUAL "" AND _EP_CMP0097 STREQUAL "NEW")
+ set(git_init_submodules FALSE)
+ endif()
+ endif()
+
+ get_property(git_remote_name TARGET ${name} PROPERTY _EP_GIT_REMOTE_NAME)
+ if(NOT git_remote_name)
+ set(git_remote_name "origin")
+ endif()
+
+ get_property(tls_verify TARGET ${name} PROPERTY _EP_TLS_VERIFY)
+ if("x${tls_verify}" STREQUAL "x" AND DEFINED CMAKE_TLS_VERIFY)
+ set(tls_verify "${CMAKE_TLS_VERIFY}")
+ endif()
+ get_property(git_shallow TARGET ${name} PROPERTY _EP_GIT_SHALLOW)
+ get_property(git_progress TARGET ${name} PROPERTY _EP_GIT_PROGRESS)
+ get_property(git_config TARGET ${name} PROPERTY _EP_GIT_CONFIG)
+
+ # For the download step, and the git clone operation, only the repository
+ # should be recorded in a configured RepositoryInfo file. If the repo
+ # changes, the clone script should be run again. But if only the tag
+ # changes, avoid running the clone script again. Let the 'always' running
+ # update step checkout the new tag.
+ #
+ set(repository ${git_repository})
+ set(module)
+ set(tag ${git_remote_name})
+ configure_file(
+ "${CMAKE_ROOT}/Modules/RepositoryInfo.txt.in"
+ "${stamp_dir}/${name}-gitinfo.txt"
+ @ONLY
+ )
+
+ get_filename_component(src_name "${source_dir}" NAME)
+ get_filename_component(work_dir "${source_dir}" PATH)
+
+ # Since git clone doesn't succeed if the non-empty source_dir exists,
+ # create a cmake script to invoke as download command.
+ # The script will delete the source directory and then call git clone.
+ #
+ _ep_write_gitclone_script(${tmp_dir}/${name}-gitclone.cmake ${source_dir}
+ ${GIT_EXECUTABLE} ${git_repository} ${git_tag} ${git_remote_name} ${git_init_submodules} "${git_submodules_recurse}" "${git_submodules}" "${git_shallow}" "${git_progress}" "${git_config}" ${src_name} ${work_dir}
+ ${stamp_dir}/${name}-gitinfo.txt ${stamp_dir}/${name}-gitclone-lastrun.txt "${tls_verify}"
+ )
+ set(comment "Performing download step (git clone) for '${name}'")
+ set(cmd ${CMAKE_COMMAND} -P ${tmp_dir}/${name}-gitclone.cmake)
+ list(APPEND depends ${stamp_dir}/${name}-gitinfo.txt)
+ elseif(hg_repository)
+ find_package(Hg QUIET)
+ if(NOT HG_EXECUTABLE)
+ message(FATAL_ERROR "error: could not find hg for clone of ${name}")
+ endif()
+
+ get_property(hg_tag TARGET ${name} PROPERTY _EP_HG_TAG)
+ if(NOT hg_tag)
+ set(hg_tag "tip")
+ endif()
+
+ # For the download step, and the hg clone operation, only the repository
+ # should be recorded in a configured RepositoryInfo file. If the repo
+ # changes, the clone script should be run again. But if only the tag
+ # changes, avoid running the clone script again. Let the 'always' running
+ # update step checkout the new tag.
+ #
+ set(repository ${hg_repository})
+ set(module)
+ set(tag)
+ configure_file(
+ "${CMAKE_ROOT}/Modules/RepositoryInfo.txt.in"
+ "${stamp_dir}/${name}-hginfo.txt"
+ @ONLY
+ )
+
+ get_filename_component(src_name "${source_dir}" NAME)
+ get_filename_component(work_dir "${source_dir}" PATH)
+
+ # Since hg clone doesn't succeed if the non-empty source_dir exists,
+ # create a cmake script to invoke as download command.
+ # The script will delete the source directory and then call hg clone.
+ #
+ _ep_write_hgclone_script(${tmp_dir}/${name}-hgclone.cmake ${source_dir}
+ ${HG_EXECUTABLE} ${hg_repository} ${hg_tag} ${src_name} ${work_dir}
+ ${stamp_dir}/${name}-hginfo.txt ${stamp_dir}/${name}-hgclone-lastrun.txt
+ )
+ set(comment "Performing download step (hg clone) for '${name}'")
+ set(cmd ${CMAKE_COMMAND} -P ${tmp_dir}/${name}-hgclone.cmake)
+ list(APPEND depends ${stamp_dir}/${name}-hginfo.txt)
+ elseif(url)
+ get_filename_component(work_dir "${source_dir}" PATH)
+ get_property(hash TARGET ${name} PROPERTY _EP_URL_HASH)
+ if(hash AND NOT "${hash}" MATCHES "${_ep_hash_regex}")
+ message(FATAL_ERROR "URL_HASH is set to\n ${hash}\n"
+ "but must be ALGO=value where ALGO is\n ${_ep_hash_algos}\n"
+ "and value is a hex string.")
+ endif()
+ get_property(md5 TARGET ${name} PROPERTY _EP_URL_MD5)
+ if(md5 AND NOT "MD5=${md5}" MATCHES "${_ep_hash_regex}")
+ message(FATAL_ERROR "URL_MD5 is set to\n ${md5}\nbut must be a hex string.")
+ endif()
+ if(md5 AND NOT hash)
+ set(hash "MD5=${md5}")
+ endif()
+ set(repository "external project URL")
+ set(module "${url}")
+ set(tag "${hash}")
+ configure_file(
+ "${CMAKE_ROOT}/Modules/RepositoryInfo.txt.in"
+ "${stamp_dir}/${name}-urlinfo.txt"
+ @ONLY
+ )
+ list(APPEND depends ${stamp_dir}/${name}-urlinfo.txt)
+
+ list(LENGTH url url_list_length)
+ if(NOT "${url_list_length}" STREQUAL "1")
+ foreach(entry ${url})
+ if(NOT "${entry}" MATCHES "^[a-z]+://")
+ message(FATAL_ERROR "At least one entry of URL is a path (invalid in a list)")
+ endif()
+ endforeach()
+ if("x${fname}" STREQUAL "x")
+ list(GET url 0 fname)
+ endif()
+ endif()
+
+ if(IS_DIRECTORY "${url}")
+ get_filename_component(abs_dir "${url}" ABSOLUTE)
+ set(comment "Performing download step (DIR copy) for '${name}'")
+ set(cmd ${CMAKE_COMMAND} -E rm -rf ${source_dir}
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${abs_dir} ${source_dir})
+ else()
+ get_property(no_extract TARGET "${name}" PROPERTY _EP_DOWNLOAD_NO_EXTRACT SET)
+ if("${url}" MATCHES "^[a-z]+://")
+ # TODO: Should download and extraction be different steps?
+ if("x${fname}" STREQUAL "x")
+ set(fname "${url}")
+ endif()
+ if("${fname}" MATCHES [[([^/\?#]+(\.|=)(7z|tar|tar\.bz2|tar\.gz|tar\.xz|tbz2|tgz|txz|zip))([/?#].*)?$]])
+ set(fname "${CMAKE_MATCH_1}")
+ elseif(no_extract)
+ get_filename_component(fname "${fname}" NAME)
+ else()
+ # Fall back to a default file name. The actual file name does not
+ # matter because it is used only internally and our extraction tool
+ # inspects the file content directly. If it turns out the wrong URL
+ # was given that will be revealed during the build which is an easier
+ # place for users to diagnose than an error here anyway.
+ set(fname "archive.tar")
+ endif()
+ string(REPLACE ";" "-" fname "${fname}")
+ set(file ${download_dir}/${fname})
+ get_property(timeout TARGET ${name} PROPERTY _EP_TIMEOUT)
+ get_property(no_progress TARGET ${name} PROPERTY _EP_DOWNLOAD_NO_PROGRESS)
+ get_property(tls_verify TARGET ${name} PROPERTY _EP_TLS_VERIFY)
+ get_property(tls_cainfo TARGET ${name} PROPERTY _EP_TLS_CAINFO)
+ get_property(netrc TARGET ${name} PROPERTY _EP_NETRC)
+ get_property(netrc_file TARGET ${name} PROPERTY _EP_NETRC_FILE)
+ get_property(http_username TARGET ${name} PROPERTY _EP_HTTP_USERNAME)
+ get_property(http_password TARGET ${name} PROPERTY _EP_HTTP_PASSWORD)
+ get_property(http_headers TARGET ${name} PROPERTY _EP_HTTP_HEADER)
+ set(download_script "${stamp_dir}/download-${name}.cmake")
+ _ep_write_downloadfile_script("${download_script}" "${url}" "${file}" "${timeout}" "${no_progress}" "${hash}" "${tls_verify}" "${tls_cainfo}" "${http_username}:${http_password}" "${http_headers}" "${netrc}" "${netrc_file}")
+ set(cmd ${CMAKE_COMMAND} -P "${download_script}"
+ COMMAND)
+ if (no_extract)
+ set(steps "download and verify")
+ else ()
+ set(steps "download, verify and extract")
+ endif ()
+ set(comment "Performing download step (${steps}) for '${name}'")
+ file(WRITE "${stamp_dir}/verify-${name}.cmake" "") # already verified by 'download_script'
+ else()
+ set(file "${url}")
+ if (no_extract)
+ set(steps "verify")
+ else ()
+ set(steps "verify and extract")
+ endif ()
+ set(comment "Performing download step (${steps}) for '${name}'")
+ _ep_write_verifyfile_script("${stamp_dir}/verify-${name}.cmake" "${file}" "${hash}")
+ endif()
+ list(APPEND cmd ${CMAKE_COMMAND} -P ${stamp_dir}/verify-${name}.cmake)
+ if (NOT no_extract)
+ _ep_write_extractfile_script("${stamp_dir}/extract-${name}.cmake" "${name}" "${file}" "${source_dir}")
+ list(APPEND cmd COMMAND ${CMAKE_COMMAND} -P ${stamp_dir}/extract-${name}.cmake)
+ else ()
+ set_property(TARGET ${name} PROPERTY _EP_DOWNLOADED_FILE ${file})
+ endif ()
+ endif()
+ else()
+ _ep_is_dir_empty("${source_dir}" empty)
+ if(${empty})
+ message(SEND_ERROR
+ "No download info given for '${name}' and its source directory:\n"
+ " ${source_dir}\n"
+ "is not an existing non-empty directory. Please specify one of:\n"
+ " * SOURCE_DIR with an existing non-empty directory\n"
+ " * DOWNLOAD_COMMAND\n"
+ " * URL\n"
+ " * GIT_REPOSITORY\n"
+ " * SVN_REPOSITORY\n"
+ " * HG_REPOSITORY\n"
+ " * CVS_REPOSITORY and CVS_MODULE"
+ )
+ endif()
+ endif()
+
+ get_property(log TARGET ${name} PROPERTY _EP_LOG_DOWNLOAD)
+ if(log)
+ set(log LOG 1)
+ else()
+ set(log "")
+ endif()
+
+ get_property(uses_terminal TARGET ${name} PROPERTY
+ _EP_USES_TERMINAL_DOWNLOAD)
+ if(uses_terminal)
+ set(uses_terminal USES_TERMINAL 1)
+ else()
+ set(uses_terminal "")
+ endif()
+
+ ExternalProject_Add_Step(${name} download
+ COMMENT ${comment}
+ COMMAND ${cmd}
+ WORKING_DIRECTORY ${work_dir}
+ DEPENDS ${depends}
+ DEPENDEES mkdir
+ ${log}
+ ${uses_terminal}
+ )
+endfunction()
+
+
+function(_ep_add_update_command name)
+ ExternalProject_Get_Property(${name} source_dir tmp_dir)
+
+ get_property(cmd_set TARGET ${name} PROPERTY _EP_UPDATE_COMMAND SET)
+ get_property(cmd TARGET ${name} PROPERTY _EP_UPDATE_COMMAND)
+ get_property(cvs_repository TARGET ${name} PROPERTY _EP_CVS_REPOSITORY)
+ get_property(svn_repository TARGET ${name} PROPERTY _EP_SVN_REPOSITORY)
+ get_property(git_repository TARGET ${name} PROPERTY _EP_GIT_REPOSITORY)
+ get_property(hg_repository TARGET ${name} PROPERTY _EP_HG_REPOSITORY )
+ get_property(update_disconnected_set TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED SET)
+ if(update_disconnected_set)
+ get_property(update_disconnected TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED)
+ else()
+ get_property(update_disconnected DIRECTORY PROPERTY EP_UPDATE_DISCONNECTED)
+ endif()
+
+ set(work_dir)
+ set(comment)
+ set(always)
+
+ if(cmd_set)
+ set(work_dir ${source_dir})
+ if(NOT "x${cmd}" STREQUAL "x")
+ set(always 1)
+ endif()
+ elseif(cvs_repository)
+ if(NOT CVS_EXECUTABLE)
+ message(FATAL_ERROR "error: could not find cvs for update of ${name}")
+ endif()
+ set(work_dir ${source_dir})
+ set(comment "Performing update step (CVS update) for '${name}'")
+ get_property(cvs_tag TARGET ${name} PROPERTY _EP_CVS_TAG)
+ set(cmd ${CVS_EXECUTABLE} -d ${cvs_repository} -q up -dP ${cvs_tag})
+ set(always 1)
+ elseif(svn_repository)
+ if(NOT Subversion_SVN_EXECUTABLE)
+ message(FATAL_ERROR "error: could not find svn for update of ${name}")
+ endif()
+ set(work_dir ${source_dir})
+ set(comment "Performing update step (SVN update) for '${name}'")
+ get_property(svn_revision TARGET ${name} PROPERTY _EP_SVN_REVISION)
+ get_property(svn_username TARGET ${name} PROPERTY _EP_SVN_USERNAME)
+ get_property(svn_password TARGET ${name} PROPERTY _EP_SVN_PASSWORD)
+ get_property(svn_trust_cert TARGET ${name} PROPERTY _EP_SVN_TRUST_CERT)
+ set(svn_user_pw_args "")
+ if(DEFINED svn_username)
+ set(svn_user_pw_args ${svn_user_pw_args} "--username=${svn_username}")
+ endif()
+ if(DEFINED svn_password)
+ set(svn_user_pw_args ${svn_user_pw_args} "--password=${svn_password}")
+ endif()
+ if(svn_trust_cert)
+ set(svn_trust_cert_args --trust-server-cert)
+ endif()
+ set(cmd ${Subversion_SVN_EXECUTABLE} up ${svn_revision}
+ --non-interactive ${svn_trust_cert_args} ${svn_user_pw_args})
+ set(always 1)
+ elseif(git_repository)
+ unset(CMAKE_MODULE_PATH) # Use CMake builtin find module
+ find_package(Git QUIET)
+ if(NOT GIT_EXECUTABLE)
+ message(FATAL_ERROR "error: could not find git for fetch of ${name}")
+ endif()
+ set(work_dir ${source_dir})
+ set(comment "Performing update step for '${name}'")
+ get_property(git_tag TARGET ${name} PROPERTY _EP_GIT_TAG)
+ if(NOT git_tag)
+ set(git_tag "master")
+ endif()
+ get_property(git_remote_name TARGET ${name} PROPERTY _EP_GIT_REMOTE_NAME)
+ if(NOT git_remote_name)
+ set(git_remote_name "origin")
+ endif()
+
+ set(git_init_submodules TRUE)
+ get_property(git_submodules_set TARGET ${name} PROPERTY _EP_GIT_SUBMODULES SET)
+ if(git_submodules_set)
+ get_property(git_submodules TARGET ${name} PROPERTY _EP_GIT_SUBMODULES)
+ if(git_submodules STREQUAL "" AND _EP_CMP0097 STREQUAL "NEW")
+ set(git_init_submodules FALSE)
+ endif()
+ endif()
+
+ _ep_get_git_submodules_recurse(git_submodules_recurse)
+
+ _ep_write_gitupdate_script(${tmp_dir}/${name}-gitupdate.cmake
+ ${GIT_EXECUTABLE} ${git_tag} ${git_remote_name} ${git_init_submodules} "${git_submodules_recurse}" "${git_submodules}" ${git_repository} ${work_dir}
+ )
+ set(cmd ${CMAKE_COMMAND} -P ${tmp_dir}/${name}-gitupdate.cmake)
+ set(always 1)
+ elseif(hg_repository)
+ if(NOT HG_EXECUTABLE)
+ message(FATAL_ERROR "error: could not find hg for pull of ${name}")
+ endif()
+ set(work_dir ${source_dir})
+ set(comment "Performing update step (hg pull) for '${name}'")
+ get_property(hg_tag TARGET ${name} PROPERTY _EP_HG_TAG)
+ if(NOT hg_tag)
+ set(hg_tag "tip")
+ endif()
+ if("${HG_VERSION_STRING}" STREQUAL "2.1")
+ message(WARNING "Mercurial 2.1 does not distinguish an empty pull from a failed pull:
+ http://mercurial.selenic.com/wiki/UpgradeNotes#A2.1.1:_revert_pull_return_code_change.2C_compile_issue_on_OS_X
+ http://thread.gmane.org/gmane.comp.version-control.mercurial.devel/47656
+Update to Mercurial >= 2.1.1.
+")
+ endif()
+ set(cmd ${HG_EXECUTABLE} pull
+ COMMAND ${HG_EXECUTABLE} update ${hg_tag}
+ )
+ set(always 1)
+ endif()
+
+ get_property(log TARGET ${name} PROPERTY _EP_LOG_UPDATE)
+ if(log)
+ set(log LOG 1)
+ else()
+ set(log "")
+ endif()
+
+ get_property(uses_terminal TARGET ${name} PROPERTY
+ _EP_USES_TERMINAL_UPDATE)
+ if(uses_terminal)
+ set(uses_terminal USES_TERMINAL 1)
+ else()
+ set(uses_terminal "")
+ endif()
+
+ ExternalProject_Add_Step(${name} update
+ COMMENT ${comment}
+ COMMAND ${cmd}
+ ALWAYS ${always}
+ EXCLUDE_FROM_MAIN ${update_disconnected}
+ WORKING_DIRECTORY ${work_dir}
+ DEPENDEES download
+ ${log}
+ ${uses_terminal}
+ )
+
+ if(update_disconnected)
+ _ep_get_step_stampfile(${name} skip-update skip-update_stamp_file)
+ string(REPLACE "Performing" "Skipping" comment "${comment}")
+ ExternalProject_Add_Step(${name} skip-update
+ COMMENT ${comment}
+ ALWAYS ${always}
+ EXCLUDE_FROM_MAIN 1
+ WORKING_DIRECTORY ${work_dir}
+ DEPENDEES download
+ ${log}
+ ${uses_terminal}
+ )
+ set_property(SOURCE ${skip-update_stamp_file} PROPERTY SYMBOLIC 1)
+ endif()
+
+endfunction()
+
+
+function(_ep_add_patch_command name)
+ ExternalProject_Get_Property(${name} source_dir)
+
+ get_property(cmd_set TARGET ${name} PROPERTY _EP_PATCH_COMMAND SET)
+ get_property(cmd TARGET ${name} PROPERTY _EP_PATCH_COMMAND)
+
+ set(work_dir)
+
+ if(cmd_set)
+ set(work_dir ${source_dir})
+ endif()
+
+ get_property(log TARGET ${name} PROPERTY _EP_LOG_PATCH)
+ if(log)
+ set(log LOG 1)
+ else()
+ set(log "")
+ endif()
+
+ ExternalProject_Add_Step(${name} patch
+ COMMAND ${cmd}
+ WORKING_DIRECTORY ${work_dir}
+ DEPENDEES download
+ ${log}
+ )
+endfunction()
+
+
+function(_ep_extract_configure_command var name)
+ get_property(cmd_set TARGET ${name} PROPERTY _EP_CONFIGURE_COMMAND SET)
+ if(cmd_set)
+ get_property(cmd TARGET ${name} PROPERTY _EP_CONFIGURE_COMMAND)
+ else()
+ get_target_property(cmake_command ${name} _EP_CMAKE_COMMAND)
+ if(cmake_command)
+ set(cmd "${cmake_command}")
+ else()
+ set(cmd "${CMAKE_COMMAND}")
+ endif()
+
+ get_property(cmake_args TARGET ${name} PROPERTY _EP_CMAKE_ARGS)
+ list(APPEND cmd ${cmake_args})
+
+ # If there are any CMAKE_CACHE_ARGS or CMAKE_CACHE_DEFAULT_ARGS,
+ # write an initial cache and use it
+ get_property(cmake_cache_args TARGET ${name} PROPERTY _EP_CMAKE_CACHE_ARGS)
+ get_property(cmake_cache_default_args TARGET ${name} PROPERTY _EP_CMAKE_CACHE_DEFAULT_ARGS)
+
+ set(has_cmake_cache_args 0)
+ if(NOT "${cmake_cache_args}" STREQUAL "")
+ set(has_cmake_cache_args 1)
+ endif()
+
+ set(has_cmake_cache_default_args 0)
+ if(NOT "${cmake_cache_default_args}" STREQUAL "")
+ set(has_cmake_cache_default_args 1)
+ endif()
+
+ get_target_property(cmake_generator ${name} _EP_CMAKE_GENERATOR)
+ get_target_property(cmake_generator_instance ${name} _EP_CMAKE_GENERATOR_INSTANCE)
+ get_target_property(cmake_generator_platform ${name} _EP_CMAKE_GENERATOR_PLATFORM)
+ get_target_property(cmake_generator_toolset ${name} _EP_CMAKE_GENERATOR_TOOLSET)
+ if(cmake_generator)
+ list(APPEND cmd "-G${cmake_generator}")
+ if(cmake_generator_platform)
+ list(APPEND cmd "-A${cmake_generator_platform}")
+ endif()
+ if(cmake_generator_toolset)
+ list(APPEND cmd "-T${cmake_generator_toolset}")
+ endif()
+ if(cmake_generator_instance)
+ list(APPEND cmd "-DCMAKE_GENERATOR_INSTANCE:INTERNAL=${cmake_generator_instance}")
+ endif()
+ else()
+ if(CMAKE_EXTRA_GENERATOR)
+ list(APPEND cmd "-G${CMAKE_EXTRA_GENERATOR} - ${CMAKE_GENERATOR}")
+ else()
+ list(APPEND cmd "-G${CMAKE_GENERATOR}")
+ if("${CMAKE_GENERATOR}" MATCHES "Green Hills MULTI")
+ set(has_cmake_cache_default_args 1)
+ set(cmake_cache_default_args ${cmake_cache_default_args}
+ "-DGHS_TARGET_PLATFORM:STRING=${GHS_TARGET_PLATFORM}"
+ "-DGHS_PRIMARY_TARGET:STRING=${GHS_PRIMARY_TARGET}"
+ "-DGHS_TOOLSET_ROOT:STRING=${GHS_TOOLSET_ROOT}"
+ "-DGHS_OS_ROOT:STRING=${GHS_OS_ROOT}"
+ "-DGHS_OS_DIR:STRING=${GHS_OS_DIR}"
+ "-DGHS_BSP_NAME:STRING=${GHS_BSP_NAME}")
+ endif()
+ endif()
+ if(cmake_generator_platform)
+ message(FATAL_ERROR "Option CMAKE_GENERATOR_PLATFORM not allowed without CMAKE_GENERATOR.")
+ endif()
+ if(CMAKE_GENERATOR_PLATFORM)
+ list(APPEND cmd "-A${CMAKE_GENERATOR_PLATFORM}")
+ endif()
+ if(cmake_generator_toolset)
+ message(FATAL_ERROR "Option CMAKE_GENERATOR_TOOLSET not allowed without CMAKE_GENERATOR.")
+ endif()
+ if(CMAKE_GENERATOR_TOOLSET)
+ list(APPEND cmd "-T${CMAKE_GENERATOR_TOOLSET}")
+ endif()
+ if(cmake_generator_instance)
+ message(FATAL_ERROR "Option CMAKE_GENERATOR_INSTANCE not allowed without CMAKE_GENERATOR.")
+ endif()
+ if(CMAKE_GENERATOR_INSTANCE)
+ list(APPEND cmd "-DCMAKE_GENERATOR_INSTANCE:INTERNAL=${CMAKE_GENERATOR_INSTANCE}")
+ endif()
+ endif()
+
+ if(has_cmake_cache_args OR has_cmake_cache_default_args)
+ set(_ep_cache_args_script "<TMP_DIR>/${name}-cache-$<CONFIG>.cmake")
+ if(has_cmake_cache_args)
+ _ep_command_line_to_initial_cache(script_initial_cache_force "${cmake_cache_args}" 1)
+ endif()
+ if(has_cmake_cache_default_args)
+ _ep_command_line_to_initial_cache(script_initial_cache_default "${cmake_cache_default_args}" 0)
+ endif()
+ _ep_write_initial_cache(${name} "${_ep_cache_args_script}" "${script_initial_cache_force}${script_initial_cache_default}")
+ list(APPEND cmd "-C${_ep_cache_args_script}")
+ endif()
+
+ list(APPEND cmd "<SOURCE_DIR><SOURCE_SUBDIR>")
+ endif()
+
+ set("${var}" "${cmd}" PARENT_SCOPE)
+endfunction()
+
+# TODO: Make sure external projects use the proper compiler
+function(_ep_add_configure_command name)
+ ExternalProject_Get_Property(${name} binary_dir tmp_dir)
+
+ # Depend on other external projects (file-level).
+ set(file_deps)
+ get_property(deps TARGET ${name} PROPERTY _EP_DEPENDS)
+ foreach(dep IN LISTS deps)
+ get_property(dep_type TARGET ${dep} PROPERTY TYPE)
+ if(dep_type STREQUAL "UTILITY")
+ get_property(is_ep TARGET ${dep} PROPERTY _EP_IS_EXTERNAL_PROJECT)
+ if(is_ep)
+ _ep_get_step_stampfile(${dep} "done" done_stamp_file)
+ list(APPEND file_deps ${done_stamp_file})
+ endif()
+ endif()
+ endforeach()
+
+ _ep_extract_configure_command(cmd ${name})
+
+ # If anything about the configure command changes, (command itself, cmake
+ # used, cmake args or cmake generator) then re-run the configure step.
+ # Fixes issue https://gitlab.kitware.com/cmake/cmake/issues/10258
+ #
+ if(NOT EXISTS ${tmp_dir}/${name}-cfgcmd.txt.in)
+ file(WRITE ${tmp_dir}/${name}-cfgcmd.txt.in "cmd='\@cmd\@'\n")
+ endif()
+ configure_file(${tmp_dir}/${name}-cfgcmd.txt.in ${tmp_dir}/${name}-cfgcmd.txt)
+ list(APPEND file_deps ${tmp_dir}/${name}-cfgcmd.txt)
+ list(APPEND file_deps ${_ep_cache_args_script})
+
+ get_property(log TARGET ${name} PROPERTY _EP_LOG_CONFIGURE)
+ if(log)
+ set(log LOG 1)
+ else()
+ set(log "")
+ endif()
+
+ get_property(uses_terminal TARGET ${name} PROPERTY
+ _EP_USES_TERMINAL_CONFIGURE)
+ if(uses_terminal)
+ set(uses_terminal USES_TERMINAL 1)
+ else()
+ set(uses_terminal "")
+ endif()
+
+ get_property(update_disconnected_set TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED SET)
+ if(update_disconnected_set)
+ get_property(update_disconnected TARGET ${name} PROPERTY _EP_UPDATE_DISCONNECTED)
+ else()
+ get_property(update_disconnected DIRECTORY PROPERTY EP_UPDATE_DISCONNECTED)
+ endif()
+ if(update_disconnected)
+ set(update_dep skip-update)
+ else()
+ set(update_dep update)
+ endif()
+
+ ExternalProject_Add_Step(${name} configure
+ COMMAND ${cmd}
+ WORKING_DIRECTORY ${binary_dir}
+ DEPENDEES ${update_dep} patch
+ DEPENDS ${file_deps}
+ ${log}
+ ${uses_terminal}
+ )
+endfunction()
+
+
+function(_ep_add_build_command name)
+ ExternalProject_Get_Property(${name} binary_dir)
+
+ get_property(cmd_set TARGET ${name} PROPERTY _EP_BUILD_COMMAND SET)
+ if(cmd_set)
+ get_property(cmd TARGET ${name} PROPERTY _EP_BUILD_COMMAND)
+ else()
+ _ep_get_build_command(${name} BUILD cmd)
+ endif()
+
+ get_property(log TARGET ${name} PROPERTY _EP_LOG_BUILD)
+ if(log)
+ set(log LOG 1)
+ else()
+ set(log "")
+ endif()
+
+ get_property(uses_terminal TARGET ${name} PROPERTY
+ _EP_USES_TERMINAL_BUILD)
+ if(uses_terminal)
+ set(uses_terminal USES_TERMINAL 1)
+ else()
+ set(uses_terminal "")
+ endif()
+
+ get_property(build_always TARGET ${name} PROPERTY _EP_BUILD_ALWAYS)
+ if(build_always)
+ set(always 1)
+ else()
+ set(always 0)
+ endif()
+
+ get_property(build_byproducts TARGET ${name} PROPERTY _EP_BUILD_BYPRODUCTS)
+
+ ExternalProject_Add_Step(${name} build
+ COMMAND ${cmd}
+ BYPRODUCTS ${build_byproducts}
+ WORKING_DIRECTORY ${binary_dir}
+ DEPENDEES configure
+ ALWAYS ${always}
+ ${log}
+ ${uses_terminal}
+ )
+endfunction()
+
+
+function(_ep_add_install_command name)
+ ExternalProject_Get_Property(${name} binary_dir)
+
+ get_property(cmd_set TARGET ${name} PROPERTY _EP_INSTALL_COMMAND SET)
+ if(cmd_set)
+ get_property(cmd TARGET ${name} PROPERTY _EP_INSTALL_COMMAND)
+ else()
+ _ep_get_build_command(${name} INSTALL cmd)
+ endif()
+
+ get_property(log TARGET ${name} PROPERTY _EP_LOG_INSTALL)
+ if(log)
+ set(log LOG 1)
+ else()
+ set(log "")
+ endif()
+
+ get_property(uses_terminal TARGET ${name} PROPERTY
+ _EP_USES_TERMINAL_INSTALL)
+ if(uses_terminal)
+ set(uses_terminal USES_TERMINAL 1)
+ else()
+ set(uses_terminal "")
+ endif()
+
+ ExternalProject_Add_Step(${name} install
+ COMMAND ${cmd}
+ WORKING_DIRECTORY ${binary_dir}
+ DEPENDEES build
+ ${log}
+ ${uses_terminal}
+ )
+endfunction()
+
+
+function(_ep_add_test_command name)
+ ExternalProject_Get_Property(${name} binary_dir)
+
+ get_property(before TARGET ${name} PROPERTY _EP_TEST_BEFORE_INSTALL)
+ get_property(after TARGET ${name} PROPERTY _EP_TEST_AFTER_INSTALL)
+ get_property(exclude TARGET ${name} PROPERTY _EP_TEST_EXCLUDE_FROM_MAIN)
+ get_property(cmd_set TARGET ${name} PROPERTY _EP_TEST_COMMAND SET)
+
+ # Only actually add the test step if one of the test related properties is
+ # explicitly set. (i.e. the test step is omitted unless requested...)
+ #
+ if(cmd_set OR before OR after OR exclude)
+ if(cmd_set)
+ get_property(cmd TARGET ${name} PROPERTY _EP_TEST_COMMAND)
+ else()
+ _ep_get_build_command(${name} TEST cmd)
+ endif()
+
+ if(before)
+ set(dependees_args DEPENDEES build)
+ else()
+ set(dependees_args DEPENDEES install)
+ endif()
+
+ if(exclude)
+ set(dependers_args "")
+ set(exclude_args EXCLUDE_FROM_MAIN 1)
+ else()
+ if(before)
+ set(dependers_args DEPENDERS install)
+ else()
+ set(dependers_args "")
+ endif()
+ set(exclude_args "")
+ endif()
+
+ get_property(log TARGET ${name} PROPERTY _EP_LOG_TEST)
+ if(log)
+ set(log LOG 1)
+ else()
+ set(log "")
+ endif()
+
+ get_property(uses_terminal TARGET ${name} PROPERTY
+ _EP_USES_TERMINAL_TEST)
+ if(uses_terminal)
+ set(uses_terminal USES_TERMINAL 1)
+ else()
+ set(uses_terminal "")
+ endif()
+
+ ExternalProject_Add_Step(${name} test
+ COMMAND ${cmd}
+ WORKING_DIRECTORY ${binary_dir}
+ ${dependees_args}
+ ${dependers_args}
+ ${exclude_args}
+ ${log}
+ ${uses_terminal}
+ )
+ endif()
+endfunction()
+
+
+function(ExternalProject_Add name)
+ cmake_policy(GET CMP0097 _EP_CMP0097
+ PARENT_SCOPE # undocumented, do not use outside of CMake
+ )
+
+ _ep_get_configuration_subdir_suffix(cfgdir)
+
+ # Add a custom target for the external project.
+ set(cmf_dir ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles)
+ _ep_get_complete_stampfile(${name} complete_stamp_file)
+
+ # The "ALL" option to add_custom_target just tells it to not set the
+ # EXCLUDE_FROM_ALL target property. Later, if the EXCLUDE_FROM_ALL
+ # argument was passed, we explicitly set it for the target.
+ add_custom_target(${name} ALL DEPENDS ${complete_stamp_file})
+ set_property(TARGET ${name} PROPERTY _EP_IS_EXTERNAL_PROJECT 1)
+ set_property(TARGET ${name} PROPERTY LABELS ${name})
+ set_property(TARGET ${name} PROPERTY FOLDER "ExternalProjectTargets/${name}")
+
+ _ep_parse_arguments(ExternalProject_Add ${name} _EP_ "${ARGN}")
+ _ep_set_directories(${name})
+ _ep_get_step_stampfile(${name} "done" done_stamp_file)
+ _ep_get_step_stampfile(${name} "install" install_stamp_file)
+
+ # Set the EXCLUDE_FROM_ALL target property if required.
+ get_property(exclude_from_all TARGET ${name} PROPERTY _EP_EXCLUDE_FROM_ALL)
+ if(exclude_from_all)
+ set_property(TARGET ${name} PROPERTY EXCLUDE_FROM_ALL TRUE)
+ endif()
+
+ # The 'complete' step depends on all other steps and creates a
+ # 'done' mark. A dependent external project's 'configure' step
+ # depends on the 'done' mark so that it rebuilds when this project
+ # rebuilds. It is important that 'done' is not the output of any
+ # custom command so that CMake does not propagate build rules to
+ # other external project targets, which may cause problems during
+ # parallel builds. However, the Ninja generator needs to see the entire
+ # dependency graph, and can cope with custom commands belonging to
+ # multiple targets, so we add the 'done' mark as an output for Ninja only.
+ set(complete_outputs ${complete_stamp_file})
+ if(${CMAKE_GENERATOR} MATCHES "Ninja")
+ set(complete_outputs ${complete_outputs} ${done_stamp_file})
+ endif()
+
+ add_custom_command(
+ OUTPUT ${complete_outputs}
+ COMMENT "Completed '${name}'"
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${cmf_dir}${cfgdir}
+ COMMAND ${CMAKE_COMMAND} -E touch ${complete_stamp_file}
+ COMMAND ${CMAKE_COMMAND} -E touch ${done_stamp_file}
+ DEPENDS ${install_stamp_file}
+ VERBATIM
+ )
+
+
+ # Depend on other external projects (target-level).
+ get_property(deps TARGET ${name} PROPERTY _EP_DEPENDS)
+ foreach(arg IN LISTS deps)
+ add_dependencies(${name} ${arg})
+ endforeach()
+
+ # Set up custom build steps based on the target properties.
+ # Each step depends on the previous one.
+ #
+ # The target depends on the output of the final step.
+ # (Already set up above in the DEPENDS of the add_custom_target command.)
+ #
+ _ep_add_mkdir_command(${name})
+ _ep_add_download_command(${name})
+ _ep_add_update_command(${name})
+ _ep_add_patch_command(${name})
+ _ep_add_configure_command(${name})
+ _ep_add_build_command(${name})
+ _ep_add_install_command(${name})
+
+ # Test is special in that it might depend on build, or it might depend
+ # on install.
+ #
+ _ep_add_test_command(${name})
+endfunction()
+
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FLTKCompatibility.cmake b/share/cmake-3.17/Modules/FLTKCompatibility.cmake
index e91531f..e91531f 100644
--- a/share/cmake-3.16/Modules/FLTKCompatibility.cmake
+++ b/share/cmake-3.17/Modules/FLTKCompatibility.cmake
diff --git a/share/cmake-3.16/Modules/FeatureSummary.cmake b/share/cmake-3.17/Modules/FeatureSummary.cmake
index 4a3e83a..4a3e83a 100644
--- a/share/cmake-3.16/Modules/FeatureSummary.cmake
+++ b/share/cmake-3.17/Modules/FeatureSummary.cmake
diff --git a/share/cmake-3.17/Modules/FetchContent.cmake b/share/cmake-3.17/Modules/FetchContent.cmake
new file mode 100644
index 0000000..f3e1b51
--- /dev/null
+++ b/share/cmake-3.17/Modules/FetchContent.cmake
@@ -0,0 +1,1058 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FetchContent
+------------------
+
+.. only:: html
+
+ .. contents::
+
+Overview
+^^^^^^^^
+
+This module enables populating content at configure time via any method
+supported by the :module:`ExternalProject` module. Whereas
+:command:`ExternalProject_Add` downloads at build time, the
+``FetchContent`` module makes content available immediately, allowing the
+configure step to use the content in commands like :command:`add_subdirectory`,
+:command:`include` or :command:`file` operations.
+
+Content population details would normally be defined separately from the
+command that performs the actual population. This separation ensures that
+all of the dependency details are defined before anything may try to use those
+details to populate content. This is particularly important in more complex
+project hierarchies where dependencies may be shared between multiple projects.
+
+The following shows a typical example of declaring content details:
+
+.. code-block:: cmake
+
+ FetchContent_Declare(
+ googletest
+ GIT_REPOSITORY https://github.com/google/googletest.git
+ GIT_TAG release-1.8.0
+ )
+
+For most typical cases, populating the content can then be done with a single
+command like so:
+
+.. code-block:: cmake
+
+ FetchContent_MakeAvailable(googletest)
+
+The above command not only populates the content, it also adds it to the main
+build (if possible) so that the main build can use the populated project's
+targets, etc. In some cases, the main project may need to have more precise
+control over the population or may be required to explicitly define the
+population steps (e.g. if CMake versions earlier than 3.14 need to be
+supported). The typical pattern of such custom steps looks like this:
+
+.. code-block:: cmake
+
+ FetchContent_GetProperties(googletest)
+ if(NOT googletest_POPULATED)
+ FetchContent_Populate(googletest)
+ add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR})
+ endif()
+
+Regardless of which population method is used, when using the
+declare-populate pattern with a hierarchical project arrangement, projects at
+higher levels in the hierarchy are able to override the population details of
+content specified anywhere lower in the project hierarchy. The ability to
+detect whether content has already been populated ensures that even if
+multiple child projects want certain content to be available, the first one
+to populate it wins. The other child project can simply make use of the
+already available content instead of repeating the population for itself.
+See the :ref:`Examples <fetch-content-examples>` section which demonstrates
+this scenario.
+
+The ``FetchContent`` module also supports defining and populating
+content in a single call, with no check for whether the content has been
+populated elsewhere in the project already. This is a more low level
+operation and would not normally be the way the module is used, but it is
+sometimes useful as part of implementing some higher level feature or to
+populate some content in CMake's script mode.
+
+
+Declaring Content Details
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. command:: FetchContent_Declare
+
+ .. code-block:: cmake
+
+ FetchContent_Declare(<name> <contentOptions>...)
+
+ The ``FetchContent_Declare()`` function records the options that describe
+ how to populate the specified content, but if such details have already
+ been recorded earlier in this project (regardless of where in the project
+ hierarchy), this and all later calls for the same content ``<name>`` are
+ ignored. This "first to record, wins" approach is what allows hierarchical
+ projects to have parent projects override content details of child projects.
+
+ The content ``<name>`` can be any string without spaces, but good practice
+ would be to use only letters, numbers and underscores. The name will be
+ treated case-insensitively and it should be obvious for the content it
+ represents, often being the name of the child project or the value given
+ to its top level :command:`project` command (if it is a CMake project).
+ For well-known public projects, the name should generally be the official
+ name of the project. Choosing an unusual name makes it unlikely that other
+ projects needing that same content will use the same name, leading to
+ the content being populated multiple times.
+
+ The ``<contentOptions>`` can be any of the download or update/patch options
+ that the :command:`ExternalProject_Add` command understands. The configure,
+ build, install and test steps are explicitly disabled and therefore options
+ related to them will be ignored. In most cases, ``<contentOptions>`` will
+ just be a couple of options defining the download method and method-specific
+ details like a commit tag or archive hash. For example:
+
+ .. code-block:: cmake
+
+ FetchContent_Declare(
+ googletest
+ GIT_REPOSITORY https://github.com/google/googletest.git
+ GIT_TAG release-1.8.0
+ )
+
+ FetchContent_Declare(
+ myCompanyIcons
+ URL https://intranet.mycompany.com/assets/iconset_1.12.tar.gz
+ URL_HASH 5588a7b18261c20068beabfb4f530b87
+ )
+
+ FetchContent_Declare(
+ myCompanyCertificates
+ SVN_REPOSITORY svn+ssh://svn.mycompany.com/srv/svn/trunk/certs
+ SVN_REVISION -r12345
+ )
+
+Populating The Content
+^^^^^^^^^^^^^^^^^^^^^^
+
+For most common scenarios, population means making content available to the
+main build according to previously declared details for that dependency.
+There are two main patterns for populating content, one based on calling
+:command:`FetchContent_GetProperties` and
+:command:`FetchContent_Populate` for more precise control and the other on
+calling :command:`FetchContent_MakeAvailable` for a simpler, more automated
+approach. The former generally follows this canonical pattern:
+
+.. _`fetch-content-canonical-pattern`:
+
+.. code-block:: cmake
+
+ # Check if population has already been performed
+ FetchContent_GetProperties(<name>)
+ string(TOLOWER "<name>" lcName)
+ if(NOT ${lcName}_POPULATED)
+ # Fetch the content using previously declared details
+ FetchContent_Populate(<name>)
+
+ # Set custom variables, policies, etc.
+ # ...
+
+ # Bring the populated content into the build
+ add_subdirectory(${${lcName}_SOURCE_DIR} ${${lcName}_BINARY_DIR})
+ endif()
+
+The above is such a common pattern that, where no custom steps are needed
+between the calls to :command:`FetchContent_Populate` and
+:command:`add_subdirectory`, equivalent logic can be obtained by calling
+:command:`FetchContent_MakeAvailable` instead (and should be preferred where
+it meets the needs of the project).
+
+.. command:: FetchContent_Populate
+
+ .. code-block:: cmake
+
+ FetchContent_Populate( <name> )
+
+ In most cases, the only argument given to ``FetchContent_Populate()`` is the
+ ``<name>``. When used this way, the command assumes the content details have
+ been recorded by an earlier call to :command:`FetchContent_Declare`. The
+ details are stored in a global property, so they are unaffected by things
+ like variable or directory scope. Therefore, it doesn't matter where in the
+ project the details were previously declared, as long as they have been
+ declared before the call to ``FetchContent_Populate()``. Those saved details
+ are then used to construct a call to :command:`ExternalProject_Add` in a
+ private sub-build to perform the content population immediately. The
+ implementation of ``ExternalProject_Add()`` ensures that if the content has
+ already been populated in a previous CMake run, that content will be reused
+ rather than repopulating them again. For the common case where population
+ involves downloading content, the cost of the download is only paid once.
+
+ An internal global property records when a particular content population
+ request has been processed. If ``FetchContent_Populate()`` is called more
+ than once for the same content name within a configure run, the second call
+ will halt with an error. Projects can and should check whether content
+ population has already been processed with the
+ :command:`FetchContent_GetProperties` command before calling
+ ``FetchContent_Populate()``.
+
+ ``FetchContent_Populate()`` will set three variables in the scope of the
+ caller; ``<lcName>_POPULATED``, ``<lcName>_SOURCE_DIR`` and
+ ``<lcName>_BINARY_DIR``, where ``<lcName>`` is the lowercased ``<name>``.
+ ``<lcName>_POPULATED`` will always be set to ``True`` by the call.
+ ``<lcName>_SOURCE_DIR`` is the location where the
+ content can be found upon return (it will have already been populated), while
+ ``<lcName>_BINARY_DIR`` is a directory intended for use as a corresponding
+ build directory. The main use case for the two directory variables is to
+ call :command:`add_subdirectory` immediately after population, i.e.:
+
+ .. code-block:: cmake
+
+ FetchContent_Populate(FooBar ...)
+ add_subdirectory(${foobar_SOURCE_DIR} ${foobar_BINARY_DIR})
+
+ The values of the three variables can also be retrieved from anywhere in the
+ project hierarchy using the :command:`FetchContent_GetProperties` command.
+
+ A number of cache variables influence the behavior of all content population
+ performed using details saved from a :command:`FetchContent_Declare` call:
+
+ ``FETCHCONTENT_BASE_DIR``
+ In most cases, the saved details do not specify any options relating to the
+ directories to use for the internal sub-build, final source and build areas.
+ It is generally best to leave these decisions up to the ``FetchContent``
+ module to handle on the project's behalf. The ``FETCHCONTENT_BASE_DIR``
+ cache variable controls the point under which all content population
+ directories are collected, but in most cases developers would not need to
+ change this. The default location is ``${CMAKE_BINARY_DIR}/_deps``, but if
+ developers change this value, they should aim to keep the path short and
+ just below the top level of the build tree to avoid running into path
+ length problems on Windows.
+
+ ``FETCHCONTENT_QUIET``
+ The logging output during population can be quite verbose, making the
+ configure stage quite noisy. This cache option (``ON`` by default) hides
+ all population output unless an error is encountered. If experiencing
+ problems with hung downloads, temporarily switching this option off may
+ help diagnose which content population is causing the issue.
+
+ ``FETCHCONTENT_FULLY_DISCONNECTED``
+ When this option is enabled, no attempt is made to download or update
+ any content. It is assumed that all content has already been populated in
+ a previous run or the source directories have been pointed at existing
+ contents the developer has provided manually (using options described
+ further below). When the developer knows that no changes have been made to
+ any content details, turning this option ``ON`` can significantly speed up
+ the configure stage. It is ``OFF`` by default.
+
+ ``FETCHCONTENT_UPDATES_DISCONNECTED``
+ This is a less severe download/update control compared to
+ ``FETCHCONTENT_FULLY_DISCONNECTED``. Instead of bypassing all download and
+ update logic, the ``FETCHCONTENT_UPDATES_DISCONNECTED`` only disables the
+ update stage. Therefore, if content has not been downloaded previously,
+ it will still be downloaded when this option is enabled. This can speed up
+ the configure stage, but not as much as
+ ``FETCHCONTENT_FULLY_DISCONNECTED``. It is ``OFF`` by default.
+
+ In addition to the above cache variables, the following cache variables are
+ also defined for each content name (``<ucName>`` is the uppercased value of
+ ``<name>``):
+
+ ``FETCHCONTENT_SOURCE_DIR_<ucName>``
+ If this is set, no download or update steps are performed for the specified
+ content and the ``<lcName>_SOURCE_DIR`` variable returned to the caller is
+ pointed at this location. This gives developers a way to have a separate
+ checkout of the content that they can modify freely without interference
+ from the build. The build simply uses that existing source, but it still
+ defines ``<lcName>_BINARY_DIR`` to point inside its own build area.
+ Developers are strongly encouraged to use this mechanism rather than
+ editing the sources populated in the default location, as changes to
+ sources in the default location can be lost when content population details
+ are changed by the project.
+
+ ``FETCHCONTENT_UPDATES_DISCONNECTED_<ucName>``
+ This is the per-content equivalent of
+ ``FETCHCONTENT_UPDATES_DISCONNECTED``. If the global option or this option
+ is ``ON``, then updates will be disabled for the named content.
+ Disabling updates for individual content can be useful for content whose
+ details rarely change, while still leaving other frequently changing
+ content with updates enabled.
+
+
+ The ``FetchContent_Populate()`` command also supports a syntax allowing the
+ content details to be specified directly rather than using any saved
+ details. This is more low-level and use of this form is generally to be
+ avoided in favour of using saved content details as outlined above.
+ Nevertheless, in certain situations it can be useful to invoke the content
+ population as an isolated operation (typically as part of implementing some
+ other higher level feature or when using CMake in script mode):
+
+ .. code-block:: cmake
+
+ FetchContent_Populate( <name>
+ [QUIET]
+ [SUBBUILD_DIR <subBuildDir>]
+ [SOURCE_DIR <srcDir>]
+ [BINARY_DIR <binDir>]
+ ...
+ )
+
+ This form has a number of key differences to that where only ``<name>`` is
+ provided:
+
+ - All required population details are assumed to have been provided directly
+ in the call to ``FetchContent_Populate()``. Any saved details for
+ ``<name>`` are ignored.
+ - No check is made for whether content for ``<name>`` has already been
+ populated.
+ - No global property is set to record that the population has occurred.
+ - No global properties record the source or binary directories used for the
+ populated content.
+ - The ``FETCHCONTENT_FULLY_DISCONNECTED`` and
+ ``FETCHCONTENT_UPDATES_DISCONNECTED`` cache variables are ignored.
+
+ The ``<lcName>_SOURCE_DIR`` and ``<lcName>_BINARY_DIR`` variables are still
+ returned to the caller, but since these locations are not stored as global
+ properties when this form is used, they are only available to the calling
+ scope and below rather than the entire project hierarchy. No
+ ``<lcName>_POPULATED`` variable is set in the caller's scope with this form.
+
+ The supported options for ``FetchContent_Populate()`` are the same as those
+ for :command:`FetchContent_Declare()`. Those few options shown just
+ above are either specific to ``FetchContent_Populate()`` or their behavior is
+ slightly modified from how :command:`ExternalProject_Add` treats them.
+
+ ``QUIET``
+ The ``QUIET`` option can be given to hide the output associated with
+ populating the specified content. If the population fails, the output will
+ be shown regardless of whether this option was given or not so that the
+ cause of the failure can be diagnosed. The global ``FETCHCONTENT_QUIET``
+ cache variable has no effect on ``FetchContent_Populate()`` calls where the
+ content details are provided directly.
+
+ ``SUBBUILD_DIR``
+ The ``SUBBUILD_DIR`` argument can be provided to change the location of the
+ sub-build created to perform the population. The default value is
+ ``${CMAKE_CURRENT_BINARY_DIR}/<lcName>-subbuild`` and it would be unusual
+ to need to override this default. If a relative path is specified, it will
+ be interpreted as relative to :variable:`CMAKE_CURRENT_BINARY_DIR`.
+
+ ``SOURCE_DIR``, ``BINARY_DIR``
+ The ``SOURCE_DIR`` and ``BINARY_DIR`` arguments are supported by
+ :command:`ExternalProject_Add`, but different default values are used by
+ ``FetchContent_Populate()``. ``SOURCE_DIR`` defaults to
+ ``${CMAKE_CURRENT_BINARY_DIR}/<lcName>-src`` and ``BINARY_DIR`` defaults to
+ ``${CMAKE_CURRENT_BINARY_DIR}/<lcName>-build``. If a relative path is
+ specified, it will be interpreted as relative to
+ :variable:`CMAKE_CURRENT_BINARY_DIR`.
+
+ In addition to the above explicit options, any other unrecognized options are
+ passed through unmodified to :command:`ExternalProject_Add` to perform the
+ download, patch and update steps. The following options are explicitly
+ prohibited (they are disabled by the ``FetchContent_Populate()`` command):
+
+ - ``CONFIGURE_COMMAND``
+ - ``BUILD_COMMAND``
+ - ``INSTALL_COMMAND``
+ - ``TEST_COMMAND``
+
+ If using ``FetchContent_Populate()`` within CMake's script mode, be aware
+ that the implementation sets up a sub-build which therefore requires a CMake
+ generator and build tool to be available. If these cannot be found by
+ default, then the :variable:`CMAKE_GENERATOR` and/or
+ :variable:`CMAKE_MAKE_PROGRAM` variables will need to be set appropriately
+ on the command line invoking the script.
+
+
+.. command:: FetchContent_GetProperties
+
+ When using saved content details, a call to :command:`FetchContent_Populate`
+ records information in global properties which can be queried at any time.
+ This information includes the source and binary directories associated with
+ the content and also whether or not the content population has been processed
+ during the current configure run.
+
+ .. code-block:: cmake
+
+ FetchContent_GetProperties( <name>
+ [SOURCE_DIR <srcDirVar>]
+ [BINARY_DIR <binDirVar>]
+ [POPULATED <doneVar>]
+ )
+
+ The ``SOURCE_DIR``, ``BINARY_DIR`` and ``POPULATED`` options can be used to
+ specify which properties should be retrieved. Each option accepts a value
+ which is the name of the variable in which to store that property. Most of
+ the time though, only ``<name>`` is given, in which case the call will then
+ set the same variables as a call to
+ :command:`FetchContent_Populate(name) <FetchContent_Populate>`. This allows
+ the following canonical pattern to be used, which ensures that the relevant
+ variables will always be defined regardless of whether or not the population
+ has been performed elsewhere in the project already:
+
+ .. code-block:: cmake
+
+ FetchContent_GetProperties(foobar)
+ if(NOT foobar_POPULATED)
+ FetchContent_Populate(foobar)
+ ...
+ endif()
+
+ The above pattern allows other parts of the overall project hierarchy to
+ re-use the same content and ensure that it is only populated once.
+
+
+.. command:: FetchContent_MakeAvailable
+
+ .. code-block:: cmake
+
+ FetchContent_MakeAvailable( <name1> [<name2>...] )
+
+ This command implements the common pattern typically needed for most
+ dependencies. It iterates over each of the named dependencies in turn
+ and for each one it loosely follows the same
+ :ref:`canonical pattern <fetch-content-canonical-pattern>` as
+ presented at the beginning of this section. One small difference to
+ that pattern is that it will only call :command:`add_subdirectory` on the
+ populated content if there is a ``CMakeLists.txt`` file in its top level
+ source directory. This allows the command to be used for dependencies
+ that make downloaded content available at a known location but which do
+ not need or support being added directly to the build.
+
+
+.. _`fetch-content-examples`:
+
+Examples
+^^^^^^^^
+
+This first fairly straightforward example ensures that some popular testing
+frameworks are available to the main build:
+
+.. code-block:: cmake
+
+ include(FetchContent)
+ FetchContent_Declare(
+ googletest
+ GIT_REPOSITORY https://github.com/google/googletest.git
+ GIT_TAG release-1.8.0
+ )
+ FetchContent_Declare(
+ Catch2
+ GIT_REPOSITORY https://github.com/catchorg/Catch2.git
+ GIT_TAG v2.5.0
+ )
+
+ # After the following call, the CMake targets defined by googletest and
+ # Catch2 will be defined and available to the rest of the build
+ FetchContent_MakeAvailable(googletest Catch2)
+
+
+In more complex project hierarchies, the dependency relationships can be more
+complicated. Consider a hierarchy where ``projA`` is the top level project and
+it depends directly on projects ``projB`` and ``projC``. Both ``projB`` and
+``projC`` can be built standalone and they also both depend on another project
+``projD``. ``projB`` additionally depends on ``projE``. This example assumes
+that all five projects are available on a company git server. The
+``CMakeLists.txt`` of each project might have sections like the following:
+
+*projA*:
+
+.. code-block:: cmake
+
+ include(FetchContent)
+ FetchContent_Declare(
+ projB
+ GIT_REPOSITORY git@mycompany.com:git/projB.git
+ GIT_TAG 4a89dc7e24ff212a7b5167bef7ab079d
+ )
+ FetchContent_Declare(
+ projC
+ GIT_REPOSITORY git@mycompany.com:git/projC.git
+ GIT_TAG 4ad4016bd1d8d5412d135cf8ceea1bb9
+ )
+ FetchContent_Declare(
+ projD
+ GIT_REPOSITORY git@mycompany.com:git/projD.git
+ GIT_TAG origin/integrationBranch
+ )
+ FetchContent_Declare(
+ projE
+ GIT_REPOSITORY git@mycompany.com:git/projE.git
+ GIT_TAG origin/release/2.3-rc1
+ )
+
+ # Order is important, see notes in the discussion further below
+ FetchContent_MakeAvailable(projD projB projC)
+
+*projB*:
+
+.. code-block:: cmake
+
+ include(FetchContent)
+ FetchContent_Declare(
+ projD
+ GIT_REPOSITORY git@mycompany.com:git/projD.git
+ GIT_TAG 20b415f9034bbd2a2e8216e9a5c9e632
+ )
+ FetchContent_Declare(
+ projE
+ GIT_REPOSITORY git@mycompany.com:git/projE.git
+ GIT_TAG 68e20f674a48be38d60e129f600faf7d
+ )
+
+ FetchContent_MakeAvailable(projD projE)
+
+*projC*:
+
+.. code-block:: cmake
+
+ include(FetchContent)
+ FetchContent_Declare(
+ projD
+ GIT_REPOSITORY git@mycompany.com:git/projD.git
+ GIT_TAG 7d9a17ad2c962aa13e2fbb8043fb6b8a
+ )
+
+ # This particular version of projD requires workarounds
+ FetchContent_GetProperties(projD)
+ if(NOT projd_POPULATED)
+ FetchContent_Populate(projD)
+
+ # Copy an additional/replacement file into the populated source
+ file(COPY someFile.c DESTINATION ${projd_SOURCE_DIR}/src)
+
+ add_subdirectory(${projd_SOURCE_DIR} ${projd_BINARY_DIR})
+ endif()
+
+A few key points should be noted in the above:
+
+- ``projB`` and ``projC`` define different content details for ``projD``,
+ but ``projA`` also defines a set of content details for ``projD``.
+ Because ``projA`` will define them first, the details from ``projB`` and
+ ``projC`` will not be used. The override details defined by ``projA``
+ are not required to match either of those from ``projB`` or ``projC``, but
+ it is up to the higher level project to ensure that the details it does
+ define still make sense for the child projects.
+- In the ``projA`` call to :command:`FetchContent_MakeAvailable`, ``projD``
+ is listed ahead of ``projB`` and ``projC`` to ensure that ``projA`` is in
+ control of how ``projD`` is populated.
+- While ``projA`` defines content details for ``projE``, it does not need
+ to explicitly call ``FetchContent_MakeAvailable(projE)`` or
+ ``FetchContent_Populate(projD)`` itself. Instead, it leaves that to the
+ child ``projB``. For higher level projects, it is often enough to just
+ define the override content details and leave the actual population to the
+ child projects. This saves repeating the same thing at each level of the
+ project hierarchy unnecessarily.
+
+
+Projects don't always need to add the populated content to the build.
+Sometimes the project just wants to make the downloaded content available at
+a predictable location. The next example ensures that a set of standard
+company toolchain files (and potentially even the toolchain binaries
+themselves) is available early enough to be used for that same build.
+
+.. code-block:: cmake
+
+ cmake_minimum_required(VERSION 3.14)
+
+ include(FetchContent)
+ FetchContent_Declare(
+ mycom_toolchains
+ URL https://intranet.mycompany.com//toolchains_1.3.2.tar.gz
+ )
+ FetchContent_MakeAvailable(mycom_toolchains)
+
+ project(CrossCompileExample)
+
+The project could be configured to use one of the downloaded toolchains like
+so:
+
+.. code-block:: shell
+
+ cmake -DCMAKE_TOOLCHAIN_FILE=_deps/mycom_toolchains-src/toolchain_arm.cmake /path/to/src
+
+When CMake processes the ``CMakeLists.txt`` file, it will download and unpack
+the tarball into ``_deps/mycompany_toolchains-src`` relative to the build
+directory. The :variable:`CMAKE_TOOLCHAIN_FILE` variable is not used until
+the :command:`project` command is reached, at which point CMake looks for the
+named toolchain file relative to the build directory. Because the tarball has
+already been downloaded and unpacked by then, the toolchain file will be in
+place, even the very first time that ``cmake`` is run in the build directory.
+
+Lastly, the following example demonstrates how one might download and unpack a
+firmware tarball using CMake's :manual:`script mode <cmake(1)>`. The call to
+:command:`FetchContent_Populate` specifies all the content details and the
+unpacked firmware will be placed in a ``firmware`` directory below the
+current working directory.
+
+*getFirmware.cmake*:
+
+.. code-block:: cmake
+
+ # NOTE: Intended to be run in script mode with cmake -P
+ include(FetchContent)
+ FetchContent_Populate(
+ firmware
+ URL https://mycompany.com/assets/firmware-1.23-arm.tar.gz
+ URL_HASH MD5=68247684da89b608d466253762b0ff11
+ SOURCE_DIR firmware
+ )
+
+#]=======================================================================]
+
+#=======================================================================
+# Recording and retrieving content details for later population
+#=======================================================================
+
+# Internal use, projects must not call this directly. It is
+# intended for use by FetchContent_Declare() only.
+#
+# Sets a content-specific global property (not meant for use
+# outside of functions defined here in this file) which can later
+# be retrieved using __FetchContent_getSavedDetails() with just the
+# same content name. If there is already a value stored in the
+# property, it is left unchanged and this call has no effect.
+# This allows parent projects to define the content details,
+# overriding anything a child project may try to set (properties
+# are not cached between runs, so the first thing to set it in a
+# build will be in control).
+function(__FetchContent_declareDetails contentName)
+
+ string(TOLOWER ${contentName} contentNameLower)
+ set(propertyName "_FetchContent_${contentNameLower}_savedDetails")
+ get_property(alreadyDefined GLOBAL PROPERTY ${propertyName} DEFINED)
+ if(NOT alreadyDefined)
+ define_property(GLOBAL PROPERTY ${propertyName}
+ BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()"
+ FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}"
+ )
+ set_property(GLOBAL PROPERTY ${propertyName} ${ARGN})
+ endif()
+
+endfunction()
+
+
+# Internal use, projects must not call this directly. It is
+# intended for use by the FetchContent_Declare() function.
+#
+# Retrieves details saved for the specified content in an
+# earlier call to __FetchContent_declareDetails().
+function(__FetchContent_getSavedDetails contentName outVar)
+
+ string(TOLOWER ${contentName} contentNameLower)
+ set(propertyName "_FetchContent_${contentNameLower}_savedDetails")
+ get_property(alreadyDefined GLOBAL PROPERTY ${propertyName} DEFINED)
+ if(NOT alreadyDefined)
+ message(FATAL_ERROR "No content details recorded for ${contentName}")
+ endif()
+ get_property(propertyValue GLOBAL PROPERTY ${propertyName})
+ set(${outVar} "${propertyValue}" PARENT_SCOPE)
+
+endfunction()
+
+
+# Saves population details of the content, sets defaults for the
+# SOURCE_DIR and BUILD_DIR.
+function(FetchContent_Declare contentName)
+
+ set(options "")
+ set(oneValueArgs SVN_REPOSITORY)
+ set(multiValueArgs "")
+
+ cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+
+ unset(srcDirSuffix)
+ unset(svnRepoArgs)
+ if(ARG_SVN_REPOSITORY)
+ # Add a hash of the svn repository URL to the source dir. This works
+ # around the problem where if the URL changes, the download would
+ # fail because it tries to checkout/update rather than switch the
+ # old URL to the new one. We limit the hash to the first 7 characters
+ # so that the source path doesn't get overly long (which can be a
+ # problem on windows due to path length limits).
+ string(SHA1 urlSHA ${ARG_SVN_REPOSITORY})
+ string(SUBSTRING ${urlSHA} 0 7 urlSHA)
+ set(srcDirSuffix "-${urlSHA}")
+ set(svnRepoArgs SVN_REPOSITORY ${ARG_SVN_REPOSITORY})
+ endif()
+
+ string(TOLOWER ${contentName} contentNameLower)
+ __FetchContent_declareDetails(
+ ${contentNameLower}
+ SOURCE_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-src${srcDirSuffix}"
+ BINARY_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-build"
+ ${svnRepoArgs}
+ # List these last so they can override things we set above
+ ${ARG_UNPARSED_ARGUMENTS}
+ )
+
+endfunction()
+
+
+#=======================================================================
+# Set/get whether the specified content has been populated yet.
+# The setter also records the source and binary dirs used.
+#=======================================================================
+
+# Internal use, projects must not call this directly. It is
+# intended for use by the FetchContent_Populate() function to
+# record when FetchContent_Populate() is called for a particular
+# content name.
+function(__FetchContent_setPopulated contentName sourceDir binaryDir)
+
+ string(TOLOWER ${contentName} contentNameLower)
+ set(prefix "_FetchContent_${contentNameLower}")
+
+ set(propertyName "${prefix}_sourceDir")
+ define_property(GLOBAL PROPERTY ${propertyName}
+ BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()"
+ FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}"
+ )
+ set_property(GLOBAL PROPERTY ${propertyName} ${sourceDir})
+
+ set(propertyName "${prefix}_binaryDir")
+ define_property(GLOBAL PROPERTY ${propertyName}
+ BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()"
+ FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}"
+ )
+ set_property(GLOBAL PROPERTY ${propertyName} ${binaryDir})
+
+ set(propertyName "${prefix}_populated")
+ define_property(GLOBAL PROPERTY ${propertyName}
+ BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()"
+ FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}"
+ )
+ set_property(GLOBAL PROPERTY ${propertyName} True)
+
+endfunction()
+
+
+# Set variables in the calling scope for any of the retrievable
+# properties. If no specific properties are requested, variables
+# will be set for all retrievable properties.
+#
+# This function is intended to also be used by projects as the canonical
+# way to detect whether they should call FetchContent_Populate()
+# and pull the populated source into the build with add_subdirectory(),
+# if they are using the populated content in that way.
+function(FetchContent_GetProperties contentName)
+
+ string(TOLOWER ${contentName} contentNameLower)
+
+ set(options "")
+ set(oneValueArgs SOURCE_DIR BINARY_DIR POPULATED)
+ set(multiValueArgs "")
+
+ cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+
+ if(NOT ARG_SOURCE_DIR AND
+ NOT ARG_BINARY_DIR AND
+ NOT ARG_POPULATED)
+ # No specific properties requested, provide them all
+ set(ARG_SOURCE_DIR ${contentNameLower}_SOURCE_DIR)
+ set(ARG_BINARY_DIR ${contentNameLower}_BINARY_DIR)
+ set(ARG_POPULATED ${contentNameLower}_POPULATED)
+ endif()
+
+ set(prefix "_FetchContent_${contentNameLower}")
+
+ if(ARG_SOURCE_DIR)
+ set(propertyName "${prefix}_sourceDir")
+ get_property(value GLOBAL PROPERTY ${propertyName})
+ if(value)
+ set(${ARG_SOURCE_DIR} ${value} PARENT_SCOPE)
+ endif()
+ endif()
+
+ if(ARG_BINARY_DIR)
+ set(propertyName "${prefix}_binaryDir")
+ get_property(value GLOBAL PROPERTY ${propertyName})
+ if(value)
+ set(${ARG_BINARY_DIR} ${value} PARENT_SCOPE)
+ endif()
+ endif()
+
+ if(ARG_POPULATED)
+ set(propertyName "${prefix}_populated")
+ get_property(value GLOBAL PROPERTY ${propertyName} DEFINED)
+ set(${ARG_POPULATED} ${value} PARENT_SCOPE)
+ endif()
+
+endfunction()
+
+
+#=======================================================================
+# Performing the population
+#=======================================================================
+
+# The value of contentName will always have been lowercased by the caller.
+# All other arguments are assumed to be options that are understood by
+# ExternalProject_Add(), except for QUIET and SUBBUILD_DIR.
+function(__FetchContent_directPopulate contentName)
+
+ set(options
+ QUIET
+ )
+ set(oneValueArgs
+ SUBBUILD_DIR
+ SOURCE_DIR
+ BINARY_DIR
+ # Prevent the following from being passed through
+ CONFIGURE_COMMAND
+ BUILD_COMMAND
+ INSTALL_COMMAND
+ TEST_COMMAND
+ # We force both of these to be ON since we are always executing serially
+ # and we want all steps to have access to the terminal in case they
+ # need input from the command line (e.g. ask for a private key password)
+ # or they want to provide timely progress. We silently absorb and
+ # discard these if they are set by the caller.
+ USES_TERMINAL_DOWNLOAD
+ USES_TERMINAL_UPDATE
+ )
+ set(multiValueArgs "")
+
+ cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+
+ if(NOT ARG_SUBBUILD_DIR)
+ message(FATAL_ERROR "Internal error: SUBBUILD_DIR not set")
+ elseif(NOT IS_ABSOLUTE "${ARG_SUBBUILD_DIR}")
+ set(ARG_SUBBUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/${ARG_SUBBUILD_DIR}")
+ endif()
+
+ if(NOT ARG_SOURCE_DIR)
+ message(FATAL_ERROR "Internal error: SOURCE_DIR not set")
+ elseif(NOT IS_ABSOLUTE "${ARG_SOURCE_DIR}")
+ set(ARG_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/${ARG_SOURCE_DIR}")
+ endif()
+
+ if(NOT ARG_BINARY_DIR)
+ message(FATAL_ERROR "Internal error: BINARY_DIR not set")
+ elseif(NOT IS_ABSOLUTE "${ARG_BINARY_DIR}")
+ set(ARG_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/${ARG_BINARY_DIR}")
+ endif()
+
+ # Ensure the caller can know where to find the source and build directories
+ # with some convenient variables. Doing this here ensures the caller sees
+ # the correct result in the case where the default values are overridden by
+ # the content details set by the project.
+ set(${contentName}_SOURCE_DIR "${ARG_SOURCE_DIR}" PARENT_SCOPE)
+ set(${contentName}_BINARY_DIR "${ARG_BINARY_DIR}" PARENT_SCOPE)
+
+ # The unparsed arguments may contain spaces, so build up ARG_EXTRA
+ # in such a way that it correctly substitutes into the generated
+ # CMakeLists.txt file with each argument quoted.
+ unset(ARG_EXTRA)
+ foreach(arg IN LISTS ARG_UNPARSED_ARGUMENTS)
+ set(ARG_EXTRA "${ARG_EXTRA} \"${arg}\"")
+ endforeach()
+
+ # Hide output if requested, but save it to a variable in case there's an
+ # error so we can show the output upon failure. When not quiet, don't
+ # capture the output to a variable because the user may want to see the
+ # output as it happens (e.g. progress during long downloads). Combine both
+ # stdout and stderr in the one capture variable so the output stays in order.
+ if (ARG_QUIET)
+ set(outputOptions
+ OUTPUT_VARIABLE capturedOutput
+ ERROR_VARIABLE capturedOutput
+ )
+ else()
+ set(capturedOutput)
+ set(outputOptions)
+ message(STATUS "Populating ${contentName}")
+ endif()
+
+ if(CMAKE_GENERATOR)
+ set(generatorOpts "-G${CMAKE_GENERATOR}")
+ if(CMAKE_GENERATOR_PLATFORM)
+ list(APPEND generatorOpts "-A${CMAKE_GENERATOR_PLATFORM}")
+ endif()
+ if(CMAKE_GENERATOR_TOOLSET)
+ list(APPEND generatorOpts "-T${CMAKE_GENERATOR_TOOLSET}")
+ endif()
+
+ if(CMAKE_MAKE_PROGRAM)
+ list(APPEND generatorOpts "-DCMAKE_MAKE_PROGRAM:FILEPATH=${CMAKE_MAKE_PROGRAM}")
+ endif()
+
+ else()
+ # Likely we've been invoked via CMake's script mode where no
+ # generator is set (and hence CMAKE_MAKE_PROGRAM could not be
+ # trusted even if provided). We will have to rely on being
+ # able to find the default generator and build tool.
+ unset(generatorOpts)
+ endif()
+
+ # Create and build a separate CMake project to carry out the population.
+ # If we've already previously done these steps, they will not cause
+ # anything to be updated, so extra rebuilds of the project won't occur.
+ # Make sure to pass through CMAKE_MAKE_PROGRAM in case the main project
+ # has this set to something not findable on the PATH.
+ configure_file("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/FetchContent/CMakeLists.cmake.in"
+ "${ARG_SUBBUILD_DIR}/CMakeLists.txt")
+ execute_process(
+ COMMAND ${CMAKE_COMMAND} ${generatorOpts} .
+ RESULT_VARIABLE result
+ ${outputOptions}
+ WORKING_DIRECTORY "${ARG_SUBBUILD_DIR}"
+ )
+ if(result)
+ if(capturedOutput)
+ message("${capturedOutput}")
+ endif()
+ message(FATAL_ERROR "CMake step for ${contentName} failed: ${result}")
+ endif()
+ execute_process(
+ COMMAND ${CMAKE_COMMAND} --build .
+ RESULT_VARIABLE result
+ ${outputOptions}
+ WORKING_DIRECTORY "${ARG_SUBBUILD_DIR}"
+ )
+ if(result)
+ if(capturedOutput)
+ message("${capturedOutput}")
+ endif()
+ message(FATAL_ERROR "Build step for ${contentName} failed: ${result}")
+ endif()
+
+endfunction()
+
+
+option(FETCHCONTENT_FULLY_DISCONNECTED "Disables all attempts to download or update content and assumes source dirs already exist")
+option(FETCHCONTENT_UPDATES_DISCONNECTED "Enables UPDATE_DISCONNECTED behavior for all content population")
+option(FETCHCONTENT_QUIET "Enables QUIET option for all content population" ON)
+set(FETCHCONTENT_BASE_DIR "${CMAKE_BINARY_DIR}/_deps" CACHE PATH "Directory under which to collect all populated content")
+
+# Populate the specified content using details stored from
+# an earlier call to FetchContent_Declare().
+function(FetchContent_Populate contentName)
+
+ if(NOT contentName)
+ message(FATAL_ERROR "Empty contentName not allowed for FetchContent_Populate()")
+ endif()
+
+ string(TOLOWER ${contentName} contentNameLower)
+
+ if(ARGN)
+ # This is the direct population form with details fully specified
+ # as part of the call, so we already have everything we need
+ __FetchContent_directPopulate(
+ ${contentNameLower}
+ SUBBUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/${contentNameLower}-subbuild"
+ SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/${contentNameLower}-src"
+ BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/${contentNameLower}-build"
+ ${ARGN} # Could override any of the above ..._DIR variables
+ )
+
+ # Pass source and binary dir variables back to the caller
+ set(${contentNameLower}_SOURCE_DIR "${${contentNameLower}_SOURCE_DIR}" PARENT_SCOPE)
+ set(${contentNameLower}_BINARY_DIR "${${contentNameLower}_BINARY_DIR}" PARENT_SCOPE)
+
+ # Don't set global properties, or record that we did this population, since
+ # this was a direct call outside of the normal declared details form.
+ # We only want to save values in the global properties for content that
+ # honours the hierarchical details mechanism so that projects are not
+ # robbed of the ability to override details set in nested projects.
+ return()
+ endif()
+
+ # No details provided, so assume they were saved from an earlier call
+ # to FetchContent_Declare(). Do a check that we haven't already
+ # populated this content before in case the caller forgot to check.
+ FetchContent_GetProperties(${contentName})
+ if(${contentNameLower}_POPULATED)
+ message(FATAL_ERROR "Content ${contentName} already populated in ${${contentNameLower}_SOURCE_DIR}")
+ endif()
+
+ string(TOUPPER ${contentName} contentNameUpper)
+ set(FETCHCONTENT_SOURCE_DIR_${contentNameUpper}
+ "${FETCHCONTENT_SOURCE_DIR_${contentNameUpper}}"
+ CACHE PATH "When not empty, overrides where to find pre-populated content for ${contentName}")
+
+ if(FETCHCONTENT_SOURCE_DIR_${contentNameUpper})
+ # The source directory has been explicitly provided in the cache,
+ # so no population is required
+ set(${contentNameLower}_SOURCE_DIR "${FETCHCONTENT_SOURCE_DIR_${contentNameUpper}}")
+ set(${contentNameLower}_BINARY_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-build")
+
+ elseif(FETCHCONTENT_FULLY_DISCONNECTED)
+ # Bypass population and assume source is already there from a previous run
+ set(${contentNameLower}_SOURCE_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-src")
+ set(${contentNameLower}_BINARY_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-build")
+
+ else()
+ # Support both a global "disconnect all updates" and a per-content
+ # update test (either one being set disables updates for this content).
+ option(FETCHCONTENT_UPDATES_DISCONNECTED_${contentNameUpper}
+ "Enables UPDATE_DISCONNECTED behavior just for population of ${contentName}")
+ if(FETCHCONTENT_UPDATES_DISCONNECTED OR
+ FETCHCONTENT_UPDATES_DISCONNECTED_${contentNameUpper})
+ set(disconnectUpdates True)
+ else()
+ set(disconnectUpdates False)
+ endif()
+
+ if(FETCHCONTENT_QUIET)
+ set(quietFlag QUIET)
+ else()
+ unset(quietFlag)
+ endif()
+
+ __FetchContent_getSavedDetails(${contentName} contentDetails)
+ if("${contentDetails}" STREQUAL "")
+ message(FATAL_ERROR "No details have been set for content: ${contentName}")
+ endif()
+
+ __FetchContent_directPopulate(
+ ${contentNameLower}
+ ${quietFlag}
+ UPDATE_DISCONNECTED ${disconnectUpdates}
+ SUBBUILD_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-subbuild"
+ SOURCE_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-src"
+ BINARY_DIR "${FETCHCONTENT_BASE_DIR}/${contentNameLower}-build"
+ # Put the saved details last so they can override any of the
+ # the options we set above (this can include SOURCE_DIR or
+ # BUILD_DIR)
+ ${contentDetails}
+ )
+ endif()
+
+ __FetchContent_setPopulated(
+ ${contentName}
+ ${${contentNameLower}_SOURCE_DIR}
+ ${${contentNameLower}_BINARY_DIR}
+ )
+
+ # Pass variables back to the caller. The variables passed back here
+ # must match what FetchContent_GetProperties() sets when it is called
+ # with just the content name.
+ set(${contentNameLower}_SOURCE_DIR "${${contentNameLower}_SOURCE_DIR}" PARENT_SCOPE)
+ set(${contentNameLower}_BINARY_DIR "${${contentNameLower}_BINARY_DIR}" PARENT_SCOPE)
+ set(${contentNameLower}_POPULATED True PARENT_SCOPE)
+
+endfunction()
+
+# Arguments are assumed to be the names of dependencies that have been
+# declared previously and should be populated. It is not an error if
+# any of them have already been populated (they will just be skipped in
+# that case). The command is implemented as a macro so that the variables
+# defined by the FetchContent_GetProperties() and FetchContent_Populate()
+# calls will be available to the caller.
+macro(FetchContent_MakeAvailable)
+
+ foreach(contentName IN ITEMS ${ARGV})
+ string(TOLOWER ${contentName} contentNameLower)
+ FetchContent_GetProperties(${contentName})
+ if(NOT ${contentNameLower}_POPULATED)
+ FetchContent_Populate(${contentName})
+
+ # Only try to call add_subdirectory() if the populated content
+ # can be treated that way. Protecting the call with the check
+ # allows this function to be used for projects that just want
+ # to ensure the content exists, such as to provide content at
+ # a known location.
+ if(EXISTS ${${contentNameLower}_SOURCE_DIR}/CMakeLists.txt)
+ add_subdirectory(${${contentNameLower}_SOURCE_DIR}
+ ${${contentNameLower}_BINARY_DIR})
+ endif()
+ endif()
+ endforeach()
+
+endmacro()
diff --git a/share/cmake-3.16/Modules/FetchContent/CMakeLists.cmake.in b/share/cmake-3.17/Modules/FetchContent/CMakeLists.cmake.in
index 0095b11..0095b11 100644
--- a/share/cmake-3.16/Modules/FetchContent/CMakeLists.cmake.in
+++ b/share/cmake-3.17/Modules/FetchContent/CMakeLists.cmake.in
diff --git a/share/cmake-3.16/Modules/FindALSA.cmake b/share/cmake-3.17/Modules/FindALSA.cmake
index 88e2681..88e2681 100644
--- a/share/cmake-3.16/Modules/FindALSA.cmake
+++ b/share/cmake-3.17/Modules/FindALSA.cmake
diff --git a/share/cmake-3.16/Modules/FindASPELL.cmake b/share/cmake-3.17/Modules/FindASPELL.cmake
index c2d29e2..c2d29e2 100644
--- a/share/cmake-3.16/Modules/FindASPELL.cmake
+++ b/share/cmake-3.17/Modules/FindASPELL.cmake
diff --git a/share/cmake-3.16/Modules/FindAVIFile.cmake b/share/cmake-3.17/Modules/FindAVIFile.cmake
index 9655440..9655440 100644
--- a/share/cmake-3.16/Modules/FindAVIFile.cmake
+++ b/share/cmake-3.17/Modules/FindAVIFile.cmake
diff --git a/share/cmake-3.16/Modules/FindArmadillo.cmake b/share/cmake-3.17/Modules/FindArmadillo.cmake
index c4e55ce..c4e55ce 100644
--- a/share/cmake-3.16/Modules/FindArmadillo.cmake
+++ b/share/cmake-3.17/Modules/FindArmadillo.cmake
diff --git a/share/cmake-3.16/Modules/FindBISON.cmake b/share/cmake-3.17/Modules/FindBISON.cmake
index 6b5828e..6b5828e 100644
--- a/share/cmake-3.16/Modules/FindBISON.cmake
+++ b/share/cmake-3.17/Modules/FindBISON.cmake
diff --git a/share/cmake-3.17/Modules/FindBLAS.cmake b/share/cmake-3.17/Modules/FindBLAS.cmake
new file mode 100644
index 0000000..9b6d09c
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindBLAS.cmake
@@ -0,0 +1,902 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindBLAS
+--------
+
+Find Basic Linear Algebra Subprograms (BLAS) library
+
+This module finds an installed Fortran library that implements the
+BLAS linear-algebra interface (see http://www.netlib.org/blas/).
+
+The approach follows that taken for the ``autoconf`` macro file,
+``acx_blas.m4`` (distributed at
+http://ac-archive.sourceforge.net/ac-archive/acx_blas.html).
+
+Input Variables
+^^^^^^^^^^^^^^^
+
+The following variables may be set to influence this module's behavior:
+
+``BLA_STATIC``
+ if ``ON`` use static linkage
+
+``BLA_VENDOR``
+ If set, checks only the specified vendor, if not set checks all the
+ possibilities. List of vendors valid in this module:
+
+ * ``Goto``
+ * ``OpenBLAS``
+ * ``FLAME``
+ * ``ATLAS PhiPACK``
+ * ``CXML``
+ * ``DXML``
+ * ``SunPerf``
+ * ``SCSL``
+ * ``SGIMATH``
+ * ``IBMESSL``
+ * ``Intel10_32`` (intel mkl v10 32 bit)
+ * ``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)
+ * ``Intel10_64_dyn`` (intel mkl v10+ 64 bit, single dynamic library)
+ * ``Intel`` (obsolete versions of mkl 32 and 64 bit)
+ * ``ACML``
+ * ``ACML_MP``
+ * ``ACML_GPU``
+ * ``Apple``
+ * ``NAS``
+ * ``Generic``
+
+``BLA_F95``
+ if ``ON`` tries to find the BLAS95 interfaces
+
+``BLA_PREFER_PKGCONFIG``
+ if set ``pkg-config`` will be used to search for a BLAS library first
+ and if one is found that is preferred
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+``BLAS_FOUND``
+ library implementing the BLAS interface is found
+``BLAS_LINKER_FLAGS``
+ uncached list of required linker flags (excluding ``-l`` and ``-L``).
+``BLAS_LIBRARIES``
+ uncached list of libraries (using full path name) to link against
+ to use BLAS (may be empty if compiler implicitly links BLAS)
+``BLAS95_LIBRARIES``
+ uncached list of libraries (using full path name) to link against
+ to use BLAS95 interface
+``BLAS95_FOUND``
+ library implementing the BLAS95 interface is found
+
+.. note::
+
+ C, CXX or Fortran must be enabled to detect a BLAS library.
+ C or CXX must be enabled to use Intel Math Kernel Library (MKL).
+
+ For example, to use Intel MKL libraries and/or Intel compiler:
+
+ .. code-block:: cmake
+
+ set(BLA_VENDOR Intel10_64lp)
+ find_package(BLAS)
+
+Hints
+^^^^^
+
+Set the ``MKLROOT`` environment variable to a directory that contains an MKL
+installation, or add the directory to the dynamic library loader environment
+variable for your platform (``LIB``, ``DYLD_LIBRARY_PATH`` or
+``LD_LIBRARY_PATH``).
+
+#]=======================================================================]
+
+# Check the language being used
+if(NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED))
+ if(BLAS_FIND_REQUIRED)
+ message(FATAL_ERROR "FindBLAS requires Fortran, C, or C++ to be enabled.")
+ else()
+ message(STATUS "Looking for BLAS... - NOT found (Unsupported languages)")
+ return()
+ endif()
+endif()
+
+if(CMAKE_Fortran_COMPILER_LOADED)
+ include(${CMAKE_CURRENT_LIST_DIR}/CheckFortranFunctionExists.cmake)
+else()
+ include(${CMAKE_CURRENT_LIST_DIR}/CheckFunctionExists.cmake)
+endif()
+include(${CMAKE_CURRENT_LIST_DIR}/CMakePushCheckState.cmake)
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+cmake_push_check_state()
+set(CMAKE_REQUIRED_QUIET ${BLAS_FIND_QUIETLY})
+
+if(BLA_PREFER_PKGCONFIG)
+ find_package(PkgConfig)
+ pkg_check_modules(PKGC_BLAS blas)
+ if(PKGC_BLAS_FOUND)
+ set(BLAS_FOUND ${PKGC_BLAS_FOUND})
+ set(BLAS_LIBRARIES "${PKGC_BLAS_LINK_LIBRARIES}")
+ return()
+ endif()
+endif()
+
+set(_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+if(BLA_STATIC)
+ if(WIN32)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ else()
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ endif()
+else()
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ # for ubuntu's libblas3gf and liblapack3gf packages
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
+ endif()
+endif()
+
+# TODO: move this stuff to a separate module
+
+macro(CHECK_BLAS_LIBRARIES LIBRARIES _prefix _name _flags _list _threadlibs _addlibdir _subdirs)
+ # This macro checks for the existence of the combination of fortran libraries
+ # given by _list. If the combination is found, this macro checks (using the
+ # Check_Fortran_Function_Exists macro) whether can link against that library
+ # combination using the name of a routine given by _name using the linker
+ # flags given by _flags. If the combination of libraries is found and passes
+ # the link test, LIBRARIES is set to the list of complete library paths that
+ # have been found. Otherwise, LIBRARIES is set to FALSE.
+
+ # N.B. _prefix is the prefix applied to the names of all cached variables that
+ # are generated internally and marked advanced by this macro.
+ # _addlibdir is a list of additional search paths. _subdirs is a list of path
+ # suffixes to be used by find_library().
+
+ set(_libraries_work TRUE)
+ set(${LIBRARIES})
+ set(_combined_name)
+
+ set(_extaddlibdir "${_addlibdir}")
+ if(WIN32)
+ list(APPEND _extaddlibdir ENV LIB)
+ elseif(APPLE)
+ list(APPEND _extaddlibdir ENV DYLD_LIBRARY_PATH)
+ else()
+ list(APPEND _extaddlibdir ENV LD_LIBRARY_PATH)
+ endif()
+ list(APPEND _extaddlibdir "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
+
+ foreach(_library ${_list})
+ if(_library MATCHES "^-Wl,--(start|end)-group$")
+ # Respect linker flags like --start/end-group (required by MKL)
+ set(${LIBRARIES} ${${LIBRARIES}} "${_library}")
+ else()
+ set(_combined_name ${_combined_name}_${_library})
+ if(NOT "${_threadlibs}" STREQUAL "")
+ set(_combined_name ${_combined_name}_threadlibs)
+ endif()
+ if(_libraries_work)
+ find_library(${_prefix}_${_library}_LIBRARY
+ NAMES ${_library}
+ PATHS ${_extaddlibdir}
+ PATH_SUFFIXES ${_subdirs}
+ )
+ #message("DEBUG: find_library(${_library}) got ${${_prefix}_${_library}_LIBRARY}")
+ mark_as_advanced(${_prefix}_${_library}_LIBRARY)
+ set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
+ set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
+ endif()
+ endif()
+ endforeach()
+
+ if(_libraries_work)
+ # Test this combination of libraries.
+ set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}} ${_threadlibs})
+ #message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}")
+ if(CMAKE_Fortran_COMPILER_LOADED)
+ check_fortran_function_exists("${_name}" ${_prefix}${_combined_name}_WORKS)
+ else()
+ check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS)
+ endif()
+ set(CMAKE_REQUIRED_LIBRARIES)
+ set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
+ endif()
+
+ if(_libraries_work)
+ if("${_list}" STREQUAL "")
+ set(${LIBRARIES} "${LIBRARIES}-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
+ else()
+ set(${LIBRARIES} ${${LIBRARIES}} ${_threadlibs})
+ endif()
+ else()
+ set(${LIBRARIES} FALSE)
+ endif()
+ #message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
+endmacro()
+
+set(BLAS_LINKER_FLAGS)
+set(BLAS_LIBRARIES)
+set(BLAS95_LIBRARIES)
+if(NOT $ENV{BLA_VENDOR} STREQUAL "")
+ set(BLA_VENDOR $ENV{BLA_VENDOR})
+else()
+ if(NOT BLA_VENDOR)
+ set(BLA_VENDOR "All")
+ endif()
+endif()
+
+# Implicitly linked BLAS libraries?
+if(BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ ""
+ ""
+ ""
+ ""
+ )
+ endif()
+endif()
+
+# BLAS in the Intel MKL 10+ library?
+if(BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ if(CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
+ # System-specific settings
+ if(WIN32)
+ if(BLA_STATIC)
+ set(BLAS_mkl_DLL_SUFFIX "")
+ else()
+ set(BLAS_mkl_DLL_SUFFIX "_dll")
+ endif()
+ else()
+ if(BLA_STATIC)
+ set(BLAS_mkl_START_GROUP "-Wl,--start-group")
+ set(BLAS_mkl_END_GROUP "-Wl,--end-group")
+ else()
+ set(BLAS_mkl_START_GROUP "")
+ set(BLAS_mkl_END_GROUP "")
+ endif()
+ # Switch to GNU Fortran support layer if needed (but not on Apple, where MKL does not provide it)
+ if(CMAKE_Fortran_COMPILER_LOADED AND CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND NOT APPLE)
+ set(BLAS_mkl_INTFACE "gf")
+ set(BLAS_mkl_THREADING "gnu")
+ set(BLAS_mkl_OMP "gomp")
+ else()
+ set(BLAS_mkl_INTFACE "intel")
+ set(BLAS_mkl_THREADING "intel")
+ set(BLAS_mkl_OMP "iomp5")
+ endif()
+ set(BLAS_mkl_LM "-lm")
+ set(BLAS_mkl_LDL "-ldl")
+ endif()
+
+ if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
+ find_package(Threads)
+ else()
+ 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(BLAS_SEARCH_LIBS "")
+
+ if(BLA_F95)
+ set(BLAS_mkl_SEARCH_SYMBOL "sgemm_f95")
+ set(_LIBRARIES BLAS95_LIBRARIES)
+ if(WIN32)
+ # Find the main file (32-bit or 64-bit)
+ set(BLAS_SEARCH_LIBS_WIN_MAIN "")
+ if(BLA_VENDOR STREQUAL "Intel10_32" 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_64i?lp" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+ "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
+ set(BLAS_SEARCH_LIBS_WIN_THREAD "")
+ if(BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
+ # old version
+ list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+ "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+ # mkl >= 10.3
+ list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+ "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+ endif()
+ if(BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+ "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
+ endif()
+
+ # Cartesian product of the above
+ foreach(MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
+ foreach(THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
+ list(APPEND BLAS_SEARCH_LIBS
+ "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
+ endforeach()
+ endforeach()
+ else()
+ if(BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+ # old version
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_blas95 mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
+
+ # mkl >= 10.3
+ list(APPEND BLAS_SEARCH_LIBS
+ "${BLAS_mkl_START_GROUP} mkl_blas95 mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_END_GROUP} ${BLAS_mkl_OMP}")
+ endif()
+ if(BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
+ # old version
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_blas95 mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
+
+ # mkl >= 10.3
+ list(APPEND BLAS_SEARCH_LIBS
+ "${BLAS_mkl_START_GROUP} mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_END_GROUP} ${BLAS_mkl_OMP}")
+ endif()
+ if(BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS
+ "${BLAS_mkl_START_GROUP} mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core ${BLAS_mkl_END_GROUP}")
+ endif()
+ endif()
+ else()
+ set(BLAS_mkl_SEARCH_SYMBOL sgemm)
+ set(_LIBRARIES BLAS_LIBRARIES)
+ if(WIN32)
+ # Find the main file (32-bit or 64-bit)
+ set(BLAS_SEARCH_LIBS_WIN_MAIN "")
+ if(BLA_VENDOR STREQUAL "Intel10_32" 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_64i?lp" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+ "mkl_intel_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX}")
+ endif()
+
+ # Add threading/sequential libs
+ set(BLAS_SEARCH_LIBS_WIN_THREAD "")
+ if(BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
+ # old version
+ list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+ "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+ # mkl >= 10.3
+ list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+ "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+ endif()
+ if(BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+ "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
+ endif()
+
+ # Cartesian product of the above
+ foreach(MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
+ foreach(THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
+ list(APPEND BLAS_SEARCH_LIBS
+ "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
+ endforeach()
+ endforeach()
+ else()
+ if(BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+ # old version
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
+
+ # mkl >= 10.3
+ list(APPEND BLAS_SEARCH_LIBS
+ "${BLAS_mkl_START_GROUP} mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_END_GROUP} ${BLAS_mkl_OMP}")
+ endif()
+ if(BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
+ # old version
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
+
+ # mkl >= 10.3
+ list(APPEND BLAS_SEARCH_LIBS
+ "${BLAS_mkl_START_GROUP} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_END_GROUP} ${BLAS_mkl_OMP}")
+ endif()
+ if(BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS
+ "${BLAS_mkl_START_GROUP} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core ${BLAS_mkl_END_GROUP}")
+ endif()
+
+ #older vesions of intel mkl libs
+ if(BLA_VENDOR STREQUAL "Intel" OR BLA_VENDOR STREQUAL "All")
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl")
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_ia32")
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_em64t")
+ endif()
+ endif()
+ endif()
+
+ if(BLA_VENDOR MATCHES "^Intel10_64_dyn$" OR BLA_VENDOR STREQUAL "All")
+ # mkl >= 10.3 with single dynamic library
+ list(APPEND BLAS_SEARCH_LIBS
+ "mkl_rt")
+ endif()
+
+ # MKL uses a multitude of partially platform-specific subdirectories:
+ if(BLA_VENDOR STREQUAL "Intel10_32")
+ set(BLAS_mkl_ARCH_NAME "ia32")
+ else()
+ set(BLAS_mkl_ARCH_NAME "intel64")
+ endif()
+ if(WIN32)
+ set(BLAS_mkl_OS_NAME "win")
+ elseif(APPLE)
+ set(BLAS_mkl_OS_NAME "mac")
+ else()
+ set(BLAS_mkl_OS_NAME "lin")
+ endif()
+ if(DEFINED ENV{MKLROOT})
+ set(BLAS_mkl_MKLROOT "$ENV{MKLROOT}")
+ # If MKLROOT points to the subdirectory 'mkl', use the parent directory instead
+ # so we can better detect other relevant libraries in 'compiler' or 'tbb':
+ get_filename_component(BLAS_mkl_MKLROOT_LAST_DIR "${BLAS_mkl_MKLROOT}" NAME)
+ if(BLAS_mkl_MKLROOT_LAST_DIR STREQUAL "mkl")
+ get_filename_component(BLAS_mkl_MKLROOT "${BLAS_mkl_MKLROOT}" DIRECTORY)
+ endif()
+ endif()
+ set(BLAS_mkl_LIB_PATH_SUFFIXES
+ "compiler/lib" "compiler/lib/${BLAS_mkl_ARCH_NAME}_${BLAS_mkl_OS_NAME}"
+ "mkl/lib" "mkl/lib/${BLAS_mkl_ARCH_NAME}_${BLAS_mkl_OS_NAME}"
+ "lib/${BLAS_mkl_ARCH_NAME}_${BLAS_mkl_OS_NAME}")
+
+ foreach(IT ${BLAS_SEARCH_LIBS})
+ string(REPLACE " " ";" SEARCH_LIBS ${IT})
+ if(NOT ${_LIBRARIES})
+ check_blas_libraries(
+ ${_LIBRARIES}
+ BLAS
+ ${BLAS_mkl_SEARCH_SYMBOL}
+ ""
+ "${SEARCH_LIBS}"
+ "${CMAKE_THREAD_LIBS_INIT};${BLAS_mkl_LM};${BLAS_mkl_LDL}"
+ "${BLAS_mkl_MKLROOT}"
+ "${BLAS_mkl_LIB_PATH_SUFFIXES}"
+ )
+ endif()
+ endforeach()
+
+ unset(BLAS_mkl_ILP_MODE)
+ unset(BLAS_mkl_INTFACE)
+ unset(BLAS_mkl_THREADING)
+ unset(BLAS_mkl_OMP)
+ unset(BLAS_mkl_DLL_SUFFIX)
+ unset(BLAS_mkl_LM)
+ unset(BLAS_mkl_LDL)
+ unset(BLAS_mkl_MKLROOT)
+ unset(BLAS_mkl_MKLROOT_LAST_DIR)
+ unset(BLAS_mkl_ARCH_NAME)
+ unset(BLAS_mkl_OS_NAME)
+ unset(BLAS_mkl_LIB_PATH_SUFFIXES)
+ endif()
+ endif()
+endif()
+
+if(BLA_F95)
+ find_package_handle_standard_args(BLAS REQUIRED_VARS BLAS95_LIBRARIES)
+ set(BLAS95_FOUND ${BLAS_FOUND})
+ if(BLAS_FOUND)
+ set(BLAS_LIBRARIES "${BLAS95_LIBRARIES}")
+ endif()
+endif()
+
+# gotoblas? (http://www.tacc.utexas.edu/tacc-projects/gotoblas2)
+if(BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "goto2"
+ ""
+ ""
+ ""
+ )
+ endif()
+endif()
+
+# OpenBLAS? (http://www.openblas.net)
+if(BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "openblas"
+ ""
+ ""
+ ""
+ )
+ endif()
+ if(NOT BLAS_LIBRARIES AND (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED))
+ if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
+ find_package(Threads)
+ else()
+ find_package(Threads REQUIRED)
+ endif()
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "openblas"
+ "${CMAKE_THREAD_LIBS_INIT}"
+ ""
+ ""
+ )
+ endif()
+endif()
+
+# FLAME's blis library? (https://github.com/flame/blis)
+if(BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "blis"
+ ""
+ ""
+ ""
+ )
+ endif()
+endif()
+
+# BLAS in the ATLAS library? (http://math-atlas.sourceforge.net/)
+if(BLA_VENDOR STREQUAL "ATLAS" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ dgemm
+ ""
+ "blas;f77blas;atlas"
+ ""
+ ""
+ ""
+ )
+ endif()
+endif()
+
+# BLAS in PhiPACK libraries? (requires generic BLAS lib, too)
+if(BLA_VENDOR STREQUAL "PhiPACK" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "sgemm;dgemm;blas"
+ ""
+ ""
+ ""
+ )
+ endif()
+endif()
+
+# BLAS in Alpha CXML library?
+if(BLA_VENDOR STREQUAL "CXML" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "cxml"
+ ""
+ ""
+ ""
+ )
+ endif()
+endif()
+
+# BLAS in Alpha DXML library? (now called CXML, see above)
+if(BLA_VENDOR STREQUAL "DXML" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "dxml"
+ ""
+ ""
+ ""
+ )
+ endif()
+endif()
+
+# BLAS in Sun Performance library?
+if(BLA_VENDOR STREQUAL "SunPerf" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "-xlic_lib=sunperf"
+ "sunperf;sunmath"
+ ""
+ ""
+ ""
+ )
+ if(BLAS_LIBRARIES)
+ set(BLAS_LINKER_FLAGS "-xlic_lib=sunperf")
+ endif()
+ endif()
+endif()
+
+# BLAS in SCSL library? (SGI/Cray Scientific Library)
+if(BLA_VENDOR STREQUAL "SCSL" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "scsl"
+ ""
+ ""
+ ""
+ )
+ endif()
+endif()
+
+# BLAS in SGIMATH library?
+if(BLA_VENDOR STREQUAL "SGIMATH" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "complib.sgimath"
+ ""
+ ""
+ ""
+ )
+ endif()
+endif()
+
+# BLAS in IBM ESSL library? (requires generic BLAS lib, too)
+if(BLA_VENDOR STREQUAL "IBMESSL" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "essl;blas"
+ ""
+ ""
+ ""
+ )
+ endif()
+endif()
+
+# BLAS in acml library?
+if(BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All")
+ if(((BLA_VENDOR STREQUAL "ACML") AND (NOT BLAS_ACML_LIB_DIRS)) OR
+ ((BLA_VENDOR STREQUAL "ACML_MP") AND (NOT BLAS_ACML_MP_LIB_DIRS)) OR
+ ((BLA_VENDOR STREQUAL "ACML_GPU") AND (NOT BLAS_ACML_GPU_LIB_DIRS))
+ )
+ # try to find acml in "standard" paths
+ if(WIN32)
+ file(GLOB _ACML_ROOT "C:/AMD/acml*/ACML-EULA.txt")
+ else()
+ file(GLOB _ACML_ROOT "/opt/acml*/ACML-EULA.txt")
+ endif()
+ if(WIN32)
+ file(GLOB _ACML_GPU_ROOT "C:/AMD/acml*/GPGPUexamples")
+ else()
+ file(GLOB _ACML_GPU_ROOT "/opt/acml*/GPGPUexamples")
+ endif()
+ list(GET _ACML_ROOT 0 _ACML_ROOT)
+ list(GET _ACML_GPU_ROOT 0 _ACML_GPU_ROOT)
+ if(_ACML_ROOT)
+ get_filename_component(_ACML_ROOT ${_ACML_ROOT} PATH)
+ if(SIZEOF_INTEGER EQUAL 8)
+ set(_ACML_PATH_SUFFIX "_int64")
+ else()
+ set(_ACML_PATH_SUFFIX "")
+ endif()
+ if(CMAKE_Fortran_COMPILER_ID STREQUAL "Intel")
+ set(_ACML_COMPILER32 "ifort32")
+ set(_ACML_COMPILER64 "ifort64")
+ elseif(CMAKE_Fortran_COMPILER_ID STREQUAL "SunPro")
+ set(_ACML_COMPILER32 "sun32")
+ set(_ACML_COMPILER64 "sun64")
+ elseif(CMAKE_Fortran_COMPILER_ID STREQUAL "PGI")
+ set(_ACML_COMPILER32 "pgi32")
+ if(WIN32)
+ set(_ACML_COMPILER64 "win64")
+ else()
+ set(_ACML_COMPILER64 "pgi64")
+ endif()
+ elseif(CMAKE_Fortran_COMPILER_ID STREQUAL "Open64")
+ # 32 bit builds not supported on Open64 but for code simplicity
+ # We'll just use the same directory twice
+ set(_ACML_COMPILER32 "open64_64")
+ set(_ACML_COMPILER64 "open64_64")
+ elseif(CMAKE_Fortran_COMPILER_ID STREQUAL "NAG")
+ set(_ACML_COMPILER32 "nag32")
+ set(_ACML_COMPILER64 "nag64")
+ else()
+ set(_ACML_COMPILER32 "gfortran32")
+ set(_ACML_COMPILER64 "gfortran64")
+ endif()
+
+ if(BLA_VENDOR STREQUAL "ACML_MP")
+ set(_ACML_MP_LIB_DIRS
+ "${_ACML_ROOT}/${_ACML_COMPILER32}_mp${_ACML_PATH_SUFFIX}/lib"
+ "${_ACML_ROOT}/${_ACML_COMPILER64}_mp${_ACML_PATH_SUFFIX}/lib")
+ else()
+ set(_ACML_LIB_DIRS
+ "${_ACML_ROOT}/${_ACML_COMPILER32}${_ACML_PATH_SUFFIX}/lib"
+ "${_ACML_ROOT}/${_ACML_COMPILER64}${_ACML_PATH_SUFFIX}/lib")
+ endif()
+ endif()
+elseif(BLAS_${BLA_VENDOR}_LIB_DIRS)
+ set(_${BLA_VENDOR}_LIB_DIRS ${BLAS_${BLA_VENDOR}_LIB_DIRS})
+endif()
+
+if(BLA_VENDOR STREQUAL "ACML_MP")
+ foreach(BLAS_ACML_MP_LIB_DIRS ${_ACML_MP_LIB_DIRS})
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "" "acml_mp;acml_mv" "" ${BLAS_ACML_MP_LIB_DIRS} ""
+ )
+ if(BLAS_LIBRARIES)
+ break()
+ endif()
+ endforeach()
+elseif(BLA_VENDOR STREQUAL "ACML_GPU")
+ foreach(BLAS_ACML_GPU_LIB_DIRS ${_ACML_GPU_LIB_DIRS})
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "" "acml;acml_mv;CALBLAS" "" ${BLAS_ACML_GPU_LIB_DIRS} ""
+ )
+ if(BLAS_LIBRARIES)
+ break()
+ endif()
+ endforeach()
+else()
+ foreach(BLAS_ACML_LIB_DIRS ${_ACML_LIB_DIRS})
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ "" "acml;acml_mv" "" ${BLAS_ACML_LIB_DIRS} ""
+ )
+ if(BLAS_LIBRARIES)
+ break()
+ endif()
+ endforeach()
+endif()
+
+# Either acml or acml_mp should be in LD_LIBRARY_PATH but not both
+if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "acml;acml_mv"
+ ""
+ ""
+ ""
+ )
+endif()
+if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "acml_mp;acml_mv"
+ ""
+ ""
+ ""
+ )
+endif()
+if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "acml;acml_mv;CALBLAS"
+ ""
+ ""
+ ""
+ )
+endif()
+endif() # ACML
+
+# Apple BLAS library?
+if(BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ dgemm
+ ""
+ "Accelerate"
+ ""
+ ""
+ ""
+ )
+ endif()
+endif()
+
+# Apple NAS (vecLib) library?
+if(BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ dgemm
+ ""
+ "vecLib"
+ ""
+ ""
+ ""
+ )
+ endif()
+endif()
+
+# Generic BLAS library?
+if(BLA_VENDOR STREQUAL "Generic" OR BLA_VENDOR STREQUAL "All")
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "blas"
+ ""
+ ""
+ ""
+ )
+ endif()
+endif()
+
+if(NOT BLA_F95)
+ find_package_handle_standard_args(BLAS REQUIRED_VARS BLAS_LIBRARIES)
+endif()
+
+# On compilers that implicitly link BLAS (such as ftn, cc, and CC on Cray HPC machines)
+# we used a placeholder for empty BLAS_LIBRARIES to get through our logic above.
+if(BLAS_LIBRARIES STREQUAL "BLAS_LIBRARIES-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
+ set(BLAS_LIBRARIES "")
+endif()
+
+cmake_pop_check_state()
+set(CMAKE_FIND_LIBRARY_SUFFIXES ${_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
diff --git a/share/cmake-3.16/Modules/FindBZip2.cmake b/share/cmake-3.17/Modules/FindBZip2.cmake
index 98ab72c..98ab72c 100644
--- a/share/cmake-3.16/Modules/FindBZip2.cmake
+++ b/share/cmake-3.17/Modules/FindBZip2.cmake
diff --git a/share/cmake-3.16/Modules/FindBacktrace.cmake b/share/cmake-3.17/Modules/FindBacktrace.cmake
index 3d8ce88..3d8ce88 100644
--- a/share/cmake-3.16/Modules/FindBacktrace.cmake
+++ b/share/cmake-3.17/Modules/FindBacktrace.cmake
diff --git a/share/cmake-3.17/Modules/FindBoost.cmake b/share/cmake-3.17/Modules/FindBoost.cmake
new file mode 100644
index 0000000..3c52466
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindBoost.cmake
@@ -0,0 +1,2358 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindBoost
+---------
+
+Find Boost include dirs and libraries
+
+Use this module by invoking find_package with the form::
+
+ find_package(Boost
+ [version] [EXACT] # Minimum or EXACT version e.g. 1.67.0
+ [REQUIRED] # Fail with error if Boost is not found
+ [COMPONENTS <libs>...] # Boost libraries by their canonical name
+ # e.g. "date_time" for "libboost_date_time"
+ [OPTIONAL_COMPONENTS <libs>...]
+ # Optional Boost libraries by their canonical name)
+ ) # e.g. "date_time" for "libboost_date_time"
+
+This module finds headers and requested component libraries OR a CMake
+package configuration file provided by a "Boost CMake" build. For the
+latter case skip to the "Boost CMake" section below. For the former
+case results are reported in variables::
+
+ Boost_FOUND - True if headers and requested libraries were found
+ Boost_INCLUDE_DIRS - Boost include directories
+ Boost_LIBRARY_DIRS - Link directories for Boost libraries
+ Boost_LIBRARIES - Boost component libraries to be linked
+ Boost_<C>_FOUND - True if component <C> was found (<C> is upper-case)
+ Boost_<C>_LIBRARY - Libraries to link for component <C> (may include
+ target_link_libraries debug/optimized keywords)
+ Boost_VERSION_MACRO - BOOST_VERSION value from boost/version.hpp
+ Boost_VERSION_STRING - Boost version number in x.y.z format
+ Boost_VERSION - if CMP0093 NEW => same as Boost_VERSION_STRING
+ if CMP0093 OLD or unset => same as Boost_VERSION_MACRO
+ Boost_LIB_VERSION - Version string appended to library filenames
+ Boost_VERSION_MAJOR - Boost major version number (X in X.y.z)
+ alias: Boost_MAJOR_VERSION
+ Boost_VERSION_MINOR - Boost minor version number (Y in x.Y.z)
+ alias: Boost_MINOR_VERSION
+ Boost_VERSION_PATCH - Boost subminor version number (Z in x.y.Z)
+ alias: Boost_SUBMINOR_VERSION
+ Boost_VERSION_COUNT - Amount of version components (3)
+ Boost_LIB_DIAGNOSTIC_DEFINITIONS (Windows)
+ - Pass to add_definitions() to have diagnostic
+ information about Boost's automatic linking
+ displayed during compilation
+
+Note that Boost Python components require a Python version suffix
+(Boost 1.67 and later), e.g. ``python36`` or ``python27`` for the
+versions built against Python 3.6 and 2.7, respectively. This also
+applies to additional components using Python including
+``mpi_python`` and ``numpy``. Earlier Boost releases may use
+distribution-specific suffixes such as ``2``, ``3`` or ``2.7``.
+These may also be used as suffixes, but note that they are not
+portable.
+
+This module reads hints about search locations from variables::
+
+ BOOST_ROOT - Preferred installation prefix
+ (or BOOSTROOT)
+ BOOST_INCLUDEDIR - Preferred include directory e.g. <prefix>/include
+ BOOST_LIBRARYDIR - Preferred library directory e.g. <prefix>/lib
+ Boost_NO_SYSTEM_PATHS - Set to ON to disable searching in locations not
+ specified by these hint variables. Default is OFF.
+ Boost_ADDITIONAL_VERSIONS
+ - List of Boost versions not known to this module
+ (Boost install locations may contain the version)
+
+and saves search results persistently in CMake cache entries::
+
+ Boost_INCLUDE_DIR - Directory containing Boost headers
+ Boost_LIBRARY_DIR_RELEASE - Directory containing release Boost libraries
+ Boost_LIBRARY_DIR_DEBUG - Directory containing debug Boost libraries
+ Boost_<C>_LIBRARY_DEBUG - Component <C> library debug variant
+ Boost_<C>_LIBRARY_RELEASE - Component <C> library release variant
+
+The following :prop_tgt:`IMPORTED` targets are also defined::
+
+ Boost::headers - Target for header-only dependencies
+ (Boost include directory)
+ alias: Boost::boost
+ Boost::<C> - Target for specific component dependency
+ (shared or static library); <C> is lower-
+ case
+ Boost::diagnostic_definitions - interface target to enable diagnostic
+ information about Boost's automatic linking
+ during compilation (adds BOOST_LIB_DIAGNOSTIC)
+ Boost::disable_autolinking - interface target to disable automatic
+ linking with MSVC (adds BOOST_ALL_NO_LIB)
+ Boost::dynamic_linking - interface target to enable dynamic linking
+ linking with MSVC (adds BOOST_ALL_DYN_LINK)
+
+Implicit dependencies such as ``Boost::filesystem`` requiring
+``Boost::system`` will be automatically detected and satisfied, even
+if system is not specified when using :command:`find_package` and if
+``Boost::system`` is not added to :command:`target_link_libraries`. If using
+``Boost::thread``, then ``Threads::Threads`` will also be added automatically.
+
+It is important to note that the imported targets behave differently
+than variables created by this module: multiple calls to
+:command:`find_package(Boost)` in the same directory or sub-directories with
+different options (e.g. static or shared) will not override the
+values of the targets created by the first call.
+
+Users may set these hints or results as ``CACHE`` entries. Projects
+should not read these entries directly but instead use the above
+result variables. Note that some hint names start in upper-case
+"BOOST". One may specify these as environment variables if they are
+not specified as CMake variables or cache entries.
+
+This module first searches for the ``Boost`` header files using the above
+hint variables (excluding ``BOOST_LIBRARYDIR``) and saves the result in
+``Boost_INCLUDE_DIR``. Then it searches for requested component libraries
+using the above hints (excluding ``BOOST_INCLUDEDIR`` and
+``Boost_ADDITIONAL_VERSIONS``), "lib" directories near ``Boost_INCLUDE_DIR``,
+and the library name configuration settings below. It saves the
+library directories in ``Boost_LIBRARY_DIR_DEBUG`` and
+``Boost_LIBRARY_DIR_RELEASE`` and individual library
+locations in ``Boost_<C>_LIBRARY_DEBUG`` and ``Boost_<C>_LIBRARY_RELEASE``.
+When one changes settings used by previous searches in the same build
+tree (excluding environment variables) this module discards previous
+search results affected by the changes and searches again.
+
+Boost libraries come in many variants encoded in their file name.
+Users or projects may tell this module which variant to find by
+setting variables::
+
+ Boost_USE_DEBUG_LIBS - Set to ON or OFF to specify whether to search
+ and use the debug libraries. Default is ON.
+ Boost_USE_RELEASE_LIBS - Set to ON or OFF to specify whether to search
+ and use the release libraries. Default is ON.
+ Boost_USE_MULTITHREADED - Set to OFF to use the non-multithreaded
+ libraries ('mt' tag). Default is ON.
+ Boost_USE_STATIC_LIBS - Set to ON to force the use of the static
+ libraries. Default is OFF.
+ Boost_USE_STATIC_RUNTIME - Set to ON or OFF to specify whether to use
+ libraries linked statically to the C++ runtime
+ ('s' tag). Default is platform dependent.
+ Boost_USE_DEBUG_RUNTIME - Set to ON or OFF to specify whether to use
+ libraries linked to the MS debug C++ runtime
+ ('g' tag). Default is ON.
+ Boost_USE_DEBUG_PYTHON - Set to ON to use libraries compiled with a
+ debug Python build ('y' tag). Default is OFF.
+ Boost_USE_STLPORT - Set to ON to use libraries compiled with
+ STLPort ('p' tag). Default is OFF.
+ Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS
+ - Set to ON to use libraries compiled with
+ STLPort deprecated "native iostreams"
+ ('n' tag). Default is OFF.
+ Boost_COMPILER - Set to the compiler-specific library suffix
+ (e.g. "-gcc43"). Default is auto-computed
+ for the C++ compiler in use. A list may be
+ used if multiple compatible suffixes should
+ be tested for, in decreasing order of
+ preference.
+ Boost_ARCHITECTURE - Set to the architecture-specific library suffix
+ (e.g. "-x64"). Default is auto-computed for the
+ C++ compiler in use.
+ Boost_THREADAPI - Suffix for "thread" component library name,
+ such as "pthread" or "win32". Names with
+ and without this suffix will both be tried.
+ Boost_NAMESPACE - Alternate namespace used to build boost with
+ e.g. if set to "myboost", will search for
+ myboost_thread instead of boost_thread.
+
+Other variables one may set to control this module are::
+
+ Boost_DEBUG - Set to ON to enable debug output from FindBoost.
+ Please enable this before filing any bug report.
+ Boost_REALPATH - Set to ON to resolve symlinks for discovered
+ libraries to assist with packaging. For example,
+ the "system" component library may be resolved to
+ "/usr/lib/libboost_system.so.1.67.0" instead of
+ "/usr/lib/libboost_system.so". This does not
+ affect linking and should not be enabled unless
+ the user needs this information.
+ Boost_LIBRARY_DIR - Default value for Boost_LIBRARY_DIR_RELEASE and
+ Boost_LIBRARY_DIR_DEBUG.
+
+On Visual Studio and Borland compilers Boost headers request automatic
+linking to corresponding libraries. This requires matching libraries
+to be linked explicitly or available in the link library search path.
+In this case setting ``Boost_USE_STATIC_LIBS`` to ``OFF`` may not achieve
+dynamic linking. Boost automatic linking typically requests static
+libraries with a few exceptions (such as ``Boost.Python``). Use::
+
+ add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS})
+
+to ask Boost to report information about automatic linking requests.
+
+Example to find Boost headers only::
+
+ find_package(Boost 1.36.0)
+ if(Boost_FOUND)
+ include_directories(${Boost_INCLUDE_DIRS})
+ add_executable(foo foo.cc)
+ endif()
+
+Example to find Boost libraries and use imported targets::
+
+ find_package(Boost 1.56 REQUIRED COMPONENTS
+ date_time filesystem iostreams)
+ add_executable(foo foo.cc)
+ target_link_libraries(foo Boost::date_time Boost::filesystem
+ Boost::iostreams)
+
+Example to find Boost Python 3.6 libraries and use imported targets::
+
+ find_package(Boost 1.67 REQUIRED COMPONENTS
+ python36 numpy36)
+ add_executable(foo foo.cc)
+ target_link_libraries(foo Boost::python36 Boost::numpy36)
+
+Example to find Boost headers and some *static* (release only) libraries::
+
+ set(Boost_USE_STATIC_LIBS ON) # only find static libs
+ set(Boost_USE_DEBUG_LIBS OFF) # ignore debug libs and
+ set(Boost_USE_RELEASE_LIBS ON) # only find release libs
+ set(Boost_USE_MULTITHREADED ON)
+ set(Boost_USE_STATIC_RUNTIME OFF)
+ find_package(Boost 1.66.0 COMPONENTS date_time filesystem system ...)
+ if(Boost_FOUND)
+ include_directories(${Boost_INCLUDE_DIRS})
+ add_executable(foo foo.cc)
+ target_link_libraries(foo ${Boost_LIBRARIES})
+ endif()
+
+Boost CMake
+^^^^^^^^^^^
+
+If Boost was built using the boost-cmake project or from Boost 1.70.0 on
+it provides a package configuration file for use with find_package's config mode.
+This module looks for the package configuration file called
+``BoostConfig.cmake`` or ``boost-config.cmake`` and stores the result in
+``CACHE`` entry "Boost_DIR". If found, the package configuration file is loaded
+and this module returns with no further action. See documentation of
+the Boost CMake package configuration for details on what it provides.
+
+Set ``Boost_NO_BOOST_CMAKE`` to ``ON``, to disable the search for boost-cmake.
+#]=======================================================================]
+
+# The FPHSA helper provides standard way of reporting final search results to
+# the user including the version and component checks.
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+
+# Save project's policies
+cmake_policy(PUSH)
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+cmake_policy(SET CMP0102 NEW) # if mark_as_advanced(non_cache_var)
+
+function(_boost_get_existing_target component target_var)
+ set(names "${component}")
+ if(component MATCHES "^([a-z_]*)(python|numpy)([1-9])\\.?([0-9])?$")
+ # handle pythonXY and numpyXY versioned components and also python X.Y, mpi_python etc.
+ list(APPEND names
+ "${CMAKE_MATCH_1}${CMAKE_MATCH_2}" # python
+ "${CMAKE_MATCH_1}${CMAKE_MATCH_2}${CMAKE_MATCH_3}" # pythonX
+ "${CMAKE_MATCH_1}${CMAKE_MATCH_2}${CMAKE_MATCH_3}${CMAKE_MATCH_4}" #pythonXY
+ )
+ endif()
+ # https://github.com/boost-cmake/boost-cmake uses boost::file_system etc.
+ # So handle similar constructions of target names
+ string(TOLOWER "${component}" lower_component)
+ list(APPEND names "${lower_component}")
+ foreach(prefix Boost boost)
+ foreach(name IN LISTS names)
+ if(TARGET "${prefix}::${name}")
+ # The target may be an INTERFACE library that wraps around a single other
+ # target for compatibility. Unwrap this layer so we can extract real info.
+ if("${name}" MATCHES "^(python|numpy|mpi_python)([1-9])([0-9])$")
+ set(name_nv "${CMAKE_MATCH_1}")
+ if(TARGET "${prefix}::${name_nv}")
+ get_property(type TARGET "${prefix}::${name}" PROPERTY TYPE)
+ if(type STREQUAL "INTERFACE_LIBRARY")
+ get_property(lib TARGET "${prefix}::${name}" PROPERTY INTERFACE_LINK_LIBRARIES)
+ if("${lib}" STREQUAL "${prefix}::${name_nv}")
+ set(${target_var} "${prefix}::${name_nv}" PARENT_SCOPE)
+ return()
+ endif()
+ endif()
+ endif()
+ endif()
+ set(${target_var} "${prefix}::${name}" PARENT_SCOPE)
+ return()
+ endif()
+ endforeach()
+ endforeach()
+ set(${target_var} "" PARENT_SCOPE)
+endfunction()
+
+function(_boost_get_canonical_target_name component target_var)
+ string(TOLOWER "${component}" component)
+ if(component MATCHES "^([a-z_]*)(python|numpy)([1-9])\\.?([0-9])?$")
+ # handle pythonXY and numpyXY versioned components and also python X.Y, mpi_python etc.
+ set(${target_var} "Boost::${CMAKE_MATCH_1}${CMAKE_MATCH_2}" PARENT_SCOPE)
+ else()
+ set(${target_var} "Boost::${component}" PARENT_SCOPE)
+ endif()
+endfunction()
+
+macro(_boost_set_in_parent_scope name value)
+ # Set a variable in parent scope and make it visibile in current scope
+ set(${name} "${value}" PARENT_SCOPE)
+ set(${name} "${value}")
+endmacro()
+
+macro(_boost_set_if_unset name value)
+ if(NOT ${name})
+ _boost_set_in_parent_scope(${name} "${value}")
+ endif()
+endmacro()
+
+macro(_boost_set_cache_if_unset name value)
+ if(NOT ${name})
+ set(${name} "${value}" CACHE STRING "" FORCE)
+ endif()
+endmacro()
+
+macro(_boost_append_include_dir target)
+ get_target_property(inc "${target}" INTERFACE_INCLUDE_DIRECTORIES)
+ if(inc)
+ list(APPEND include_dirs "${inc}")
+ endif()
+endmacro()
+
+function(_boost_set_legacy_variables_from_config)
+ # Set legacy variables for compatibility if not set
+ set(include_dirs "")
+ set(library_dirs "")
+ set(libraries "")
+ # Header targets Boost::headers or Boost::boost
+ foreach(comp headers boost)
+ _boost_get_existing_target(${comp} target)
+ if(target)
+ _boost_append_include_dir("${target}")
+ endif()
+ endforeach()
+ # Library targets
+ foreach(comp IN LISTS Boost_FIND_COMPONENTS)
+ string(TOUPPER ${comp} uppercomp)
+ # Overwrite if set
+ _boost_set_in_parent_scope(Boost_${uppercomp}_FOUND "${Boost_${comp}_FOUND}")
+ if(Boost_${comp}_FOUND)
+ _boost_get_existing_target(${comp} target)
+ if(NOT target)
+ if(Boost_DEBUG OR Boost_VERBOSE)
+ message(WARNING "Could not find imported target for required component '${comp}'. Legacy variables for this component might be missing. Refer to the documentation of your Boost installation for help on variables to use.")
+ endif()
+ continue()
+ endif()
+ _boost_append_include_dir("${target}")
+ _boost_set_if_unset(Boost_${uppercomp}_LIBRARY "${target}")
+ _boost_set_if_unset(Boost_${uppercomp}_LIBRARIES "${target}") # Very old legacy variable
+ list(APPEND libraries "${target}")
+ get_property(type TARGET "${target}" PROPERTY TYPE)
+ if(NOT type STREQUAL "INTERFACE_LIBRARY")
+ foreach(cfg RELEASE DEBUG)
+ get_target_property(lib ${target} IMPORTED_LOCATION_${cfg})
+ if(lib)
+ get_filename_component(lib_dir "${lib}" DIRECTORY)
+ list(APPEND library_dirs ${lib_dir})
+ _boost_set_cache_if_unset(Boost_${uppercomp}_LIBRARY_${cfg} "${lib}")
+ endif()
+ endforeach()
+ elseif(Boost_DEBUG OR Boost_VERBOSE)
+ # For projects using only the Boost::* targets this warning can be safely ignored.
+ message(WARNING "Imported target '${target}' for required component '${comp}' has no artifact. Legacy variables for this component might be missing. Refer to the documentation of your Boost installation for help on variables to use.")
+ endif()
+ _boost_get_canonical_target_name("${comp}" canonical_target)
+ if(NOT TARGET "${canonical_target}")
+ add_library("${canonical_target}" INTERFACE IMPORTED)
+ target_link_libraries("${canonical_target}" INTERFACE "${target}")
+ endif()
+ endif()
+ endforeach()
+ list(REMOVE_DUPLICATES include_dirs)
+ list(REMOVE_DUPLICATES library_dirs)
+ _boost_set_if_unset(Boost_INCLUDE_DIRS "${include_dirs}")
+ _boost_set_if_unset(Boost_LIBRARY_DIRS "${library_dirs}")
+ _boost_set_if_unset(Boost_LIBRARIES "${libraries}")
+ _boost_set_if_unset(Boost_VERSION_STRING "${Boost_VERSION_MAJOR}.${Boost_VERSION_MINOR}.${Boost_VERSION_PATCH}")
+ find_path(Boost_INCLUDE_DIR
+ NAMES boost/version.hpp boost/config.hpp
+ HINTS ${Boost_INCLUDE_DIRS}
+ NO_DEFAULT_PATH
+ )
+ if(NOT Boost_VERSION_MACRO OR NOT Boost_LIB_VERSION)
+ set(version_file ${Boost_INCLUDE_DIR}/boost/version.hpp)
+ if(EXISTS "${version_file}")
+ file(STRINGS "${version_file}" contents REGEX "#define BOOST_(LIB_)?VERSION ")
+ if(contents MATCHES "#define BOOST_VERSION ([0-9]+)")
+ _boost_set_if_unset(Boost_VERSION_MACRO "${CMAKE_MATCH_1}")
+ endif()
+ if(contents MATCHES "#define BOOST_LIB_VERSION \"([0-9_]+)\"")
+ _boost_set_if_unset(Boost_LIB_VERSION "${CMAKE_MATCH_1}")
+ endif()
+ endif()
+ endif()
+ _boost_set_if_unset(Boost_MAJOR_VERSION ${Boost_VERSION_MAJOR})
+ _boost_set_if_unset(Boost_MINOR_VERSION ${Boost_VERSION_MINOR})
+ _boost_set_if_unset(Boost_SUBMINOR_VERSION ${Boost_VERSION_PATCH})
+ if(WIN32)
+ _boost_set_if_unset(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC")
+ endif()
+ if(NOT TARGET Boost::headers)
+ add_library(Boost::headers INTERFACE IMPORTED)
+ target_include_directories(Boost::headers INTERFACE ${Boost_INCLUDE_DIRS})
+ endif()
+ # Legacy targets w/o functionality as all handled by defined targets
+ foreach(lib diagnostic_definitions disable_autolinking dynamic_linking)
+ if(NOT TARGET Boost::${lib})
+ add_library(Boost::${lib} INTERFACE IMPORTED)
+ endif()
+ endforeach()
+ if(NOT TARGET Boost::boost)
+ add_library(Boost::boost INTERFACE IMPORTED)
+ target_link_libraries(Boost::boost INTERFACE Boost::headers)
+ endif()
+endfunction()
+
+#-------------------------------------------------------------------------------
+# Before we go searching, check whether a boost cmake package is available, unless
+# the user specifically asked NOT to search for one.
+#
+# If Boost_DIR is set, this behaves as any find_package call would. If not,
+# it looks at BOOST_ROOT and BOOSTROOT to find Boost.
+#
+if (NOT Boost_NO_BOOST_CMAKE)
+ # If Boost_DIR is not set, look for BOOSTROOT and BOOST_ROOT as alternatives,
+ # since these are more conventional for Boost.
+ if ("$ENV{Boost_DIR}" STREQUAL "")
+ if (NOT "$ENV{BOOST_ROOT}" STREQUAL "")
+ set(ENV{Boost_DIR} $ENV{BOOST_ROOT})
+ elseif (NOT "$ENV{BOOSTROOT}" STREQUAL "")
+ set(ENV{Boost_DIR} $ENV{BOOSTROOT})
+ endif()
+ endif()
+
+ # Do the same find_package call but look specifically for the CMake version.
+ # Note that args are passed in the Boost_FIND_xxxxx variables, so there is no
+ # need to delegate them to this find_package call.
+ find_package(Boost QUIET NO_MODULE)
+ if (DEFINED Boost_DIR)
+ mark_as_advanced(Boost_DIR)
+ endif ()
+
+ # If we found a boost cmake package, then we're done. Print out what we found.
+ # Otherwise let the rest of the module try to find it.
+ if(Boost_FOUND)
+ # Convert component found variables to standard variables if required
+ # Necessary for legacy boost-cmake and 1.70 builtin BoostConfig
+ if(Boost_FIND_COMPONENTS)
+ # Ignore the meta-component "ALL", introduced by Boost 1.73
+ list(REMOVE_ITEM Boost_FIND_COMPONENTS "ALL")
+
+ foreach(_comp IN LISTS Boost_FIND_COMPONENTS)
+ if(DEFINED Boost_${_comp}_FOUND)
+ continue()
+ endif()
+ string(TOUPPER ${_comp} _uppercomp)
+ if(DEFINED Boost${_comp}_FOUND) # legacy boost-cmake project
+ set(Boost_${_comp}_FOUND ${Boost${_comp}_FOUND})
+ elseif(DEFINED Boost_${_uppercomp}_FOUND) # Boost 1.70
+ set(Boost_${_comp}_FOUND ${Boost_${_uppercomp}_FOUND})
+ endif()
+ endforeach()
+ endif()
+
+ find_package_handle_standard_args(Boost HANDLE_COMPONENTS CONFIG_MODE)
+ _boost_set_legacy_variables_from_config()
+
+ # Restore project's policies
+ cmake_policy(POP)
+ return()
+ endif()
+endif()
+
+
+#-------------------------------------------------------------------------------
+# FindBoost functions & macros
+#
+
+#
+# Print debug text if Boost_DEBUG is set.
+# Call example:
+# _Boost_DEBUG_PRINT("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "debug message")
+#
+function(_Boost_DEBUG_PRINT file line text)
+ if(Boost_DEBUG)
+ message(STATUS "[ ${file}:${line} ] ${text}")
+ endif()
+endfunction()
+
+#
+# _Boost_DEBUG_PRINT_VAR(file line variable_name [ENVIRONMENT]
+# [SOURCE "short explanation of origin of var value"])
+#
+# ENVIRONMENT - look up environment variable instead of CMake variable
+#
+# Print variable name and its value if Boost_DEBUG is set.
+# Call example:
+# _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" BOOST_ROOT)
+#
+function(_Boost_DEBUG_PRINT_VAR file line name)
+ if(Boost_DEBUG)
+ cmake_parse_arguments(_args "ENVIRONMENT" "SOURCE" "" ${ARGN})
+
+ unset(source)
+ if(_args_SOURCE)
+ set(source " (${_args_SOURCE})")
+ endif()
+
+ if(_args_ENVIRONMENT)
+ if(DEFINED ENV{${name}})
+ set(value "\"$ENV{${name}}\"")
+ else()
+ set(value "<unset>")
+ endif()
+ set(_name "ENV{${name}}")
+ else()
+ if(DEFINED "${name}")
+ set(value "\"${${name}}\"")
+ else()
+ set(value "<unset>")
+ endif()
+ set(_name "${name}")
+ endif()
+
+ _Boost_DEBUG_PRINT("${file}" "${line}" "${_name} = ${value}${source}")
+ endif()
+endfunction()
+
+############################################
+#
+# Check the existence of the libraries.
+#
+############################################
+# This macro was taken directly from the FindQt4.cmake file that is included
+# with the CMake distribution. This is NOT my work. All work was done by the
+# original authors of the FindQt4.cmake file. Only minor modifications were
+# made to remove references to Qt and make this file more generally applicable
+# And ELSE/ENDIF pairs were removed for readability.
+#########################################################################
+
+macro(_Boost_ADJUST_LIB_VARS basename)
+ if(Boost_INCLUDE_DIR )
+ if(Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE)
+ # if the generator is multi-config or if CMAKE_BUILD_TYPE is set for
+ # single-config generators, set optimized and debug libraries
+ get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
+ if(_isMultiConfig OR CMAKE_BUILD_TYPE)
+ set(Boost_${basename}_LIBRARY optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG})
+ else()
+ # For single-config generators where CMAKE_BUILD_TYPE has no value,
+ # just use the release libraries
+ set(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE} )
+ endif()
+ # FIXME: This probably should be set for both cases
+ set(Boost_${basename}_LIBRARIES optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG})
+ endif()
+
+ # if only the release version was found, set the debug variable also to the release version
+ if(Boost_${basename}_LIBRARY_RELEASE AND NOT Boost_${basename}_LIBRARY_DEBUG)
+ set(Boost_${basename}_LIBRARY_DEBUG ${Boost_${basename}_LIBRARY_RELEASE})
+ set(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE})
+ set(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_RELEASE})
+ endif()
+
+ # if only the debug version was found, set the release variable also to the debug version
+ if(Boost_${basename}_LIBRARY_DEBUG AND NOT Boost_${basename}_LIBRARY_RELEASE)
+ set(Boost_${basename}_LIBRARY_RELEASE ${Boost_${basename}_LIBRARY_DEBUG})
+ set(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_DEBUG})
+ set(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_DEBUG})
+ endif()
+
+ # If the debug & release library ends up being the same, omit the keywords
+ if("${Boost_${basename}_LIBRARY_RELEASE}" STREQUAL "${Boost_${basename}_LIBRARY_DEBUG}")
+ set(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE} )
+ set(Boost_${basename}_LIBRARIES ${Boost_${basename}_LIBRARY_RELEASE} )
+ endif()
+
+ if(Boost_${basename}_LIBRARY AND Boost_${basename}_HEADER)
+ set(Boost_${basename}_FOUND ON)
+ if("x${basename}" STREQUAL "xTHREAD" AND NOT TARGET Threads::Threads)
+ string(APPEND Boost_ERROR_REASON_THREAD " (missing dependency: Threads)")
+ set(Boost_THREAD_FOUND OFF)
+ endif()
+ endif()
+
+ endif()
+ # Make variables changeable to the advanced user
+ mark_as_advanced(
+ Boost_${basename}_LIBRARY_RELEASE
+ Boost_${basename}_LIBRARY_DEBUG
+ )
+endmacro()
+
+# Detect changes in used variables.
+# Compares the current variable value with the last one.
+# In short form:
+# v != v_LAST -> CHANGED = 1
+# v is defined, v_LAST not -> CHANGED = 1
+# v is not defined, but v_LAST is -> CHANGED = 1
+# otherwise -> CHANGED = 0
+# CHANGED is returned in variable named ${changed_var}
+macro(_Boost_CHANGE_DETECT changed_var)
+ set(${changed_var} 0)
+ foreach(v ${ARGN})
+ if(DEFINED _Boost_COMPONENTS_SEARCHED)
+ if(${v})
+ if(_${v}_LAST)
+ string(COMPARE NOTEQUAL "${${v}}" "${_${v}_LAST}" _${v}_CHANGED)
+ else()
+ set(_${v}_CHANGED 1)
+ endif()
+ elseif(_${v}_LAST)
+ set(_${v}_CHANGED 1)
+ endif()
+ if(_${v}_CHANGED)
+ set(${changed_var} 1)
+ endif()
+ else()
+ set(_${v}_CHANGED 0)
+ endif()
+ endforeach()
+endmacro()
+
+#
+# Find the given library (var).
+# Use 'build_type' to support different lib paths for RELEASE or DEBUG builds
+#
+macro(_Boost_FIND_LIBRARY var build_type)
+
+ find_library(${var} ${ARGN})
+
+ if(${var})
+ # If this is the first library found then save Boost_LIBRARY_DIR_[RELEASE,DEBUG].
+ if(NOT Boost_LIBRARY_DIR_${build_type})
+ get_filename_component(_dir "${${var}}" PATH)
+ set(Boost_LIBRARY_DIR_${build_type} "${_dir}" CACHE PATH "Boost library directory ${build_type}" FORCE)
+ endif()
+ elseif(_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT)
+ # Try component-specific hints but do not save Boost_LIBRARY_DIR_[RELEASE,DEBUG].
+ find_library(${var} HINTS ${_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT} ${ARGN})
+ endif()
+
+ # If Boost_LIBRARY_DIR_[RELEASE,DEBUG] is known then search only there.
+ if(Boost_LIBRARY_DIR_${build_type})
+ set(_boost_LIBRARY_SEARCH_DIRS_${build_type} ${Boost_LIBRARY_DIR_${build_type}} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
+ "Boost_LIBRARY_DIR_${build_type}")
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
+ "_boost_LIBRARY_SEARCH_DIRS_${build_type}")
+ endif()
+endmacro()
+
+#-------------------------------------------------------------------------------
+
+# Convert CMAKE_CXX_COMPILER_VERSION to boost compiler suffix version.
+function(_Boost_COMPILER_DUMPVERSION _OUTPUT_VERSION _OUTPUT_VERSION_MAJOR _OUTPUT_VERSION_MINOR)
+ string(REGEX REPLACE "([0-9]+)\\.([0-9]+)(\\.[0-9]+)?" "\\1"
+ _boost_COMPILER_VERSION_MAJOR "${CMAKE_CXX_COMPILER_VERSION}")
+ string(REGEX REPLACE "([0-9]+)\\.([0-9]+)(\\.[0-9]+)?" "\\2"
+ _boost_COMPILER_VERSION_MINOR "${CMAKE_CXX_COMPILER_VERSION}")
+
+ set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}${_boost_COMPILER_VERSION_MINOR}")
+
+ set(${_OUTPUT_VERSION} ${_boost_COMPILER_VERSION} PARENT_SCOPE)
+ set(${_OUTPUT_VERSION_MAJOR} ${_boost_COMPILER_VERSION_MAJOR} PARENT_SCOPE)
+ set(${_OUTPUT_VERSION_MINOR} ${_boost_COMPILER_VERSION_MINOR} PARENT_SCOPE)
+endfunction()
+
+#
+# Take a list of libraries with "thread" in it
+# and prepend duplicates with "thread_${Boost_THREADAPI}"
+# at the front of the list
+#
+function(_Boost_PREPEND_LIST_WITH_THREADAPI _output)
+ set(_orig_libnames ${ARGN})
+ string(REPLACE "thread" "thread_${Boost_THREADAPI}" _threadapi_libnames "${_orig_libnames}")
+ set(${_output} ${_threadapi_libnames} ${_orig_libnames} PARENT_SCOPE)
+endfunction()
+
+#
+# If a library is found, replace its cache entry with its REALPATH
+#
+function(_Boost_SWAP_WITH_REALPATH _library _docstring)
+ if(${_library})
+ get_filename_component(_boost_filepathreal ${${_library}} REALPATH)
+ unset(${_library} CACHE)
+ set(${_library} ${_boost_filepathreal} CACHE FILEPATH "${_docstring}")
+ endif()
+endfunction()
+
+function(_Boost_CHECK_SPELLING _var)
+ if(${_var})
+ string(TOUPPER ${_var} _var_UC)
+ message(FATAL_ERROR "ERROR: ${_var} is not the correct spelling. The proper spelling is ${_var_UC}.")
+ endif()
+endfunction()
+
+# Guesses Boost's compiler prefix used in built library names
+# Returns the guess by setting the variable pointed to by _ret
+function(_Boost_GUESS_COMPILER_PREFIX _ret)
+ if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xIntel")
+ if(WIN32)
+ set (_boost_COMPILER "-iw")
+ else()
+ set (_boost_COMPILER "-il")
+ endif()
+ elseif (GHSMULTI)
+ set(_boost_COMPILER "-ghs")
+ elseif("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC" OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+ if(MSVC_TOOLSET_VERSION GREATER_EQUAL 150)
+ # Not yet known.
+ set(_boost_COMPILER "")
+ elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 140)
+ # MSVC toolset 14.x versions are forward compatible.
+ set(_boost_COMPILER "")
+ foreach(v 9 8 7 6 5 4 3 2 1 0)
+ if(MSVC_TOOLSET_VERSION GREATER_EQUAL 14${v})
+ list(APPEND _boost_COMPILER "-vc14${v}")
+ endif()
+ endforeach()
+ elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 80)
+ set(_boost_COMPILER "-vc${MSVC_TOOLSET_VERSION}")
+ elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.10)
+ set(_boost_COMPILER "-vc71")
+ elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13) # Good luck!
+ set(_boost_COMPILER "-vc7") # yes, this is correct
+ else() # VS 6.0 Good luck!
+ set(_boost_COMPILER "-vc6") # yes, this is correct
+ endif()
+
+ if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xClang")
+ string(REPLACE "." ";" VERSION_LIST "${CMAKE_CXX_COMPILER_VERSION}")
+ list(GET VERSION_LIST 0 CLANG_VERSION_MAJOR)
+ set(_boost_COMPILER "-clangw${CLANG_VERSION_MAJOR};${_boost_COMPILER}")
+ endif()
+ elseif (BORLAND)
+ set(_boost_COMPILER "-bcb")
+ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
+ set(_boost_COMPILER "-sw")
+ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "XL")
+ set(_boost_COMPILER "-xlc")
+ elseif (MINGW)
+ if(Boost_VERSION_STRING VERSION_LESS 1.34)
+ set(_boost_COMPILER "-mgw") # no GCC version encoding prior to 1.34
+ else()
+ _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION _boost_COMPILER_VERSION_MAJOR _boost_COMPILER_VERSION_MINOR)
+ set(_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}")
+ endif()
+ elseif (UNIX)
+ _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION _boost_COMPILER_VERSION_MAJOR _boost_COMPILER_VERSION_MINOR)
+ if(NOT Boost_VERSION_STRING VERSION_LESS 1.69.0)
+ # From GCC 5 and clang 4, versioning changes and minor becomes patch.
+ # For those compilers, patch is exclude from compiler tag in Boost 1.69+ library naming.
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND _boost_COMPILER_VERSION_MAJOR VERSION_GREATER 4)
+ set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}")
+ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND _boost_COMPILER_VERSION_MAJOR VERSION_GREATER 3)
+ set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}")
+ endif()
+ endif()
+
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ if(Boost_VERSION_STRING VERSION_LESS 1.34)
+ set(_boost_COMPILER "-gcc") # no GCC version encoding prior to 1.34
+ else()
+ # Determine which version of GCC we have.
+ if(APPLE)
+ if(Boost_VERSION_STRING VERSION_LESS 1.36.0)
+ # In Boost <= 1.35.0, there is no mangled compiler name for
+ # the macOS/Darwin version of GCC.
+ set(_boost_COMPILER "")
+ else()
+ # In Boost 1.36.0 and newer, the mangled compiler name used
+ # on macOS/Darwin is "xgcc".
+ set(_boost_COMPILER "-xgcc${_boost_COMPILER_VERSION}")
+ endif()
+ else()
+ set(_boost_COMPILER "-gcc${_boost_COMPILER_VERSION}")
+ endif()
+ endif()
+ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+ # TODO: Find out any Boost version constraints vs clang support.
+ set(_boost_COMPILER "-clang${_boost_COMPILER_VERSION}")
+ endif()
+ else()
+ set(_boost_COMPILER "")
+ endif()
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
+ "_boost_COMPILER" SOURCE "guessed")
+ set(${_ret} ${_boost_COMPILER} PARENT_SCOPE)
+endfunction()
+
+#
+# Get component dependencies. Requires the dependencies to have been
+# defined for the Boost release version.
+#
+# component - the component to check
+# _ret - list of library dependencies
+#
+function(_Boost_COMPONENT_DEPENDENCIES component _ret)
+ # Note: to add a new Boost release, run
+ #
+ # % cmake -DBOOST_DIR=/path/to/boost/source -P Utilities/Scripts/BoostScanDeps.cmake
+ #
+ # The output may be added in a new block below. If it's the same as
+ # the previous release, simply update the version range of the block
+ # for the previous release. Also check if any new components have
+ # been added, and add any new components to
+ # _Boost_COMPONENT_HEADERS.
+ #
+ # This information was originally generated by running
+ # BoostScanDeps.cmake against every boost release to date supported
+ # by FindBoost:
+ #
+ # % for version in /path/to/boost/sources/*
+ # do
+ # cmake -DBOOST_DIR=$version -P Utilities/Scripts/BoostScanDeps.cmake
+ # done
+ #
+ # The output was then updated by search and replace with these regexes:
+ #
+ # - Strip message(STATUS) prefix dashes
+ # s;^-- ;;
+ # - Indent
+ # s;^set(; set(;;
+ # - Add conditionals
+ # s;Scanning /path/to/boost/sources/boost_\(.*\)_\(.*\)_\(.*); elseif(NOT Boost_VERSION_STRING VERSION_LESS \1\.\2\.\3 AND Boost_VERSION_STRING VERSION_LESS xxxx);
+ #
+ # This results in the logic seen below, but will require the xxxx
+ # replacing with the following Boost release version (or the next
+ # minor version to be released, e.g. 1.59 was the latest at the time
+ # of writing, making 1.60 the next. Identical consecutive releases
+ # were then merged together by updating the end range of the first
+ # block and removing the following redundant blocks.
+ #
+ # Running the script against all historical releases should be
+ # required only if the BoostScanDeps.cmake script logic is changed.
+ # The addition of a new release should only require it to be run
+ # against the new release.
+
+ # Handle Python version suffixes
+ if(component MATCHES "^(python|mpi_python|numpy)([0-9][0-9]?|[0-9]\\.[0-9])\$")
+ set(component "${CMAKE_MATCH_1}")
+ set(component_python_version "${CMAKE_MATCH_2}")
+ endif()
+
+ set(_Boost_IMPORTED_TARGETS TRUE)
+ if(Boost_VERSION_STRING AND Boost_VERSION_STRING VERSION_LESS 1.33.0)
+ message(WARNING "Imported targets and dependency information not available for Boost version ${Boost_VERSION_STRING} (all versions older than 1.33)")
+ set(_Boost_IMPORTED_TARGETS FALSE)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.33.0 AND Boost_VERSION_STRING VERSION_LESS 1.35.0)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex thread)
+ set(_Boost_REGEX_DEPENDENCIES thread)
+ set(_Boost_WAVE_DEPENDENCIES filesystem thread)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.35.0 AND Boost_VERSION_STRING VERSION_LESS 1.36.0)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system thread)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.36.0 AND Boost_VERSION_STRING VERSION_LESS 1.38.0)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system thread)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.38.0 AND Boost_VERSION_STRING VERSION_LESS 1.43.0)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_THREAD_DEPENDENCIES date_time)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system thread date_time)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.43.0 AND Boost_VERSION_STRING VERSION_LESS 1.44.0)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_THREAD_DEPENDENCIES date_time)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system thread date_time)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.44.0 AND Boost_VERSION_STRING VERSION_LESS 1.45.0)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random serialization)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_THREAD_DEPENDENCIES date_time)
+ set(_Boost_WAVE_DEPENDENCIES serialization filesystem system thread date_time)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.45.0 AND Boost_VERSION_STRING VERSION_LESS 1.47.0)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_THREAD_DEPENDENCIES date_time)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread date_time)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.47.0 AND Boost_VERSION_STRING VERSION_LESS 1.48.0)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_THREAD_DEPENDENCIES date_time)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread date_time)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.48.0 AND Boost_VERSION_STRING VERSION_LESS 1.50.0)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l random)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_THREAD_DEPENDENCIES date_time)
+ set(_Boost_TIMER_DEPENDENCIES chrono system)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread date_time)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.50.0 AND Boost_VERSION_STRING VERSION_LESS 1.53.0)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time)
+ set(_Boost_TIMER_DEPENDENCIES chrono system)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.53.0 AND Boost_VERSION_STRING VERSION_LESS 1.54.0)
+ set(_Boost_ATOMIC_DEPENDENCIES thread chrono system date_time)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+ set(_Boost_TIMER_DEPENDENCIES chrono system)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.54.0 AND Boost_VERSION_STRING VERSION_LESS 1.55.0)
+ set(_Boost_ATOMIC_DEPENDENCIES thread chrono system date_time)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+ set(_Boost_TIMER_DEPENDENCIES chrono system)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.55.0 AND Boost_VERSION_STRING VERSION_LESS 1.56.0)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_COROUTINE_DEPENDENCIES context system)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l regex random)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+ set(_Boost_TIMER_DEPENDENCIES chrono system)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.56.0 AND Boost_VERSION_STRING VERSION_LESS 1.59.0)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_COROUTINE_DEPENDENCIES context system)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_RANDOM_DEPENDENCIES system)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+ set(_Boost_TIMER_DEPENDENCIES chrono system)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.59.0 AND Boost_VERSION_STRING VERSION_LESS 1.60.0)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_COROUTINE_DEPENDENCIES context system)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES log_setup date_time system filesystem thread regex chrono atomic)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_RANDOM_DEPENDENCIES system)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+ set(_Boost_TIMER_DEPENDENCIES chrono system)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.60.0 AND Boost_VERSION_STRING VERSION_LESS 1.61.0)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_COROUTINE_DEPENDENCIES context system)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_RANDOM_DEPENDENCIES system)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+ set(_Boost_TIMER_DEPENDENCIES chrono system)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.61.0 AND Boost_VERSION_STRING VERSION_LESS 1.62.0)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
+ set(_Boost_COROUTINE_DEPENDENCIES context system)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_RANDOM_DEPENDENCIES system)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.62.0 AND Boost_VERSION_STRING VERSION_LESS 1.63.0)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
+ set(_Boost_COROUTINE_DEPENDENCIES context system)
+ set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_RANDOM_DEPENDENCIES system)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.63.0 AND Boost_VERSION_STRING VERSION_LESS 1.65.0)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
+ set(_Boost_COROUTINE_DEPENDENCIES context system)
+ set(_Boost_COROUTINE2_DEPENDENCIES context fiber thread chrono system date_time)
+ set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_RANDOM_DEPENDENCIES system)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.65.0 AND Boost_VERSION_STRING VERSION_LESS 1.67.0)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
+ set(_Boost_COROUTINE_DEPENDENCIES context system)
+ set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+ set(_Boost_RANDOM_DEPENDENCIES system)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+ set(_Boost_TIMER_DEPENDENCIES chrono system)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.67.0 AND Boost_VERSION_STRING VERSION_LESS 1.68.0)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
+ set(_Boost_COROUTINE_DEPENDENCIES context system)
+ set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+ set(_Boost_RANDOM_DEPENDENCIES system)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+ set(_Boost_TIMER_DEPENDENCIES chrono system)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.68.0 AND Boost_VERSION_STRING VERSION_LESS 1.69.0)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
+ set(_Boost_CONTRACT_DEPENDENCIES thread chrono system date_time)
+ set(_Boost_COROUTINE_DEPENDENCIES context system)
+ set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+ set(_Boost_RANDOM_DEPENDENCIES system)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+ set(_Boost_TIMER_DEPENDENCIES chrono system)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.69.0 AND Boost_VERSION_STRING VERSION_LESS 1.70.0)
+ set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
+ set(_Boost_COROUTINE_DEPENDENCIES context)
+ set(_Boost_FIBER_DEPENDENCIES context)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+ set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
+ set(_Boost_TIMER_DEPENDENCIES chrono system)
+ set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.70.0 AND Boost_VERSION_STRING VERSION_LESS 1.72.0)
+ set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
+ set(_Boost_COROUTINE_DEPENDENCIES context)
+ set(_Boost_FIBER_DEPENDENCIES context)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+ set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
+ set(_Boost_TIMER_DEPENDENCIES chrono)
+ set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ elseif(NOT Boost_VERSION_STRING VERSION_LESS 1.72.0)
+ set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
+ set(_Boost_COROUTINE_DEPENDENCIES context)
+ set(_Boost_FIBER_DEPENDENCIES context)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l chrono atomic)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
+ set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
+ set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
+ set(_Boost_TIMER_DEPENDENCIES chrono)
+ set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ if(NOT Boost_VERSION_STRING VERSION_LESS 1.73.0)
+ message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
+ endif()
+ endif()
+
+ string(TOUPPER ${component} uppercomponent)
+ set(${_ret} ${_Boost_${uppercomponent}_DEPENDENCIES} PARENT_SCOPE)
+ set(_Boost_IMPORTED_TARGETS ${_Boost_IMPORTED_TARGETS} PARENT_SCOPE)
+
+ string(REGEX REPLACE ";" " " _boost_DEPS_STRING "${_Boost_${uppercomponent}_DEPENDENCIES}")
+ if (NOT _boost_DEPS_STRING)
+ set(_boost_DEPS_STRING "(none)")
+ endif()
+ # message(STATUS "Dependencies for Boost::${component}: ${_boost_DEPS_STRING}")
+endfunction()
+
+#
+# Get component headers. This is the primary header (or headers) for
+# a given component, and is used to check that the headers are present
+# as well as the library itself as an extra sanity check of the build
+# environment.
+#
+# component - the component to check
+# _hdrs
+#
+function(_Boost_COMPONENT_HEADERS component _hdrs)
+ # Handle Python version suffixes
+ if(component MATCHES "^(python|mpi_python|numpy)([0-9][0-9]?|[0-9]\\.[0-9])\$")
+ set(component "${CMAKE_MATCH_1}")
+ set(component_python_version "${CMAKE_MATCH_2}")
+ endif()
+
+ # Note: new boost components will require adding here. The header
+ # must be present in all versions of Boost providing a library.
+ set(_Boost_ATOMIC_HEADERS "boost/atomic.hpp")
+ set(_Boost_CHRONO_HEADERS "boost/chrono.hpp")
+ set(_Boost_CONTAINER_HEADERS "boost/container/container_fwd.hpp")
+ set(_Boost_CONTRACT_HEADERS "boost/contract.hpp")
+ if(Boost_VERSION_STRING VERSION_LESS 1.61.0)
+ set(_Boost_CONTEXT_HEADERS "boost/context/all.hpp")
+ else()
+ set(_Boost_CONTEXT_HEADERS "boost/context/detail/fcontext.hpp")
+ endif()
+ set(_Boost_COROUTINE_HEADERS "boost/coroutine/all.hpp")
+ set(_Boost_DATE_TIME_HEADERS "boost/date_time/date.hpp")
+ set(_Boost_EXCEPTION_HEADERS "boost/exception/exception.hpp")
+ set(_Boost_FIBER_HEADERS "boost/fiber/all.hpp")
+ set(_Boost_FILESYSTEM_HEADERS "boost/filesystem/path.hpp")
+ set(_Boost_GRAPH_HEADERS "boost/graph/adjacency_list.hpp")
+ set(_Boost_GRAPH_PARALLEL_HEADERS "boost/graph/adjacency_list.hpp")
+ set(_Boost_IOSTREAMS_HEADERS "boost/iostreams/stream.hpp")
+ set(_Boost_LOCALE_HEADERS "boost/locale.hpp")
+ set(_Boost_LOG_HEADERS "boost/log/core.hpp")
+ set(_Boost_LOG_SETUP_HEADERS "boost/log/detail/setup_config.hpp")
+ set(_Boost_MATH_HEADERS "boost/math_fwd.hpp")
+ set(_Boost_MATH_C99_HEADERS "boost/math/tr1.hpp")
+ set(_Boost_MATH_C99F_HEADERS "boost/math/tr1.hpp")
+ set(_Boost_MATH_C99L_HEADERS "boost/math/tr1.hpp")
+ set(_Boost_MATH_TR1_HEADERS "boost/math/tr1.hpp")
+ set(_Boost_MATH_TR1F_HEADERS "boost/math/tr1.hpp")
+ set(_Boost_MATH_TR1L_HEADERS "boost/math/tr1.hpp")
+ set(_Boost_MPI_HEADERS "boost/mpi.hpp")
+ set(_Boost_MPI_PYTHON_HEADERS "boost/mpi/python/config.hpp")
+ set(_Boost_NUMPY_HEADERS "boost/python/numpy.hpp")
+ set(_Boost_PRG_EXEC_MONITOR_HEADERS "boost/test/prg_exec_monitor.hpp")
+ set(_Boost_PROGRAM_OPTIONS_HEADERS "boost/program_options.hpp")
+ set(_Boost_PYTHON_HEADERS "boost/python.hpp")
+ set(_Boost_RANDOM_HEADERS "boost/random.hpp")
+ set(_Boost_REGEX_HEADERS "boost/regex.hpp")
+ set(_Boost_SERIALIZATION_HEADERS "boost/serialization/serialization.hpp")
+ set(_Boost_SIGNALS_HEADERS "boost/signals.hpp")
+ set(_Boost_STACKTRACE_ADDR2LINE_HEADERS "boost/stacktrace.hpp")
+ set(_Boost_STACKTRACE_BACKTRACE_HEADERS "boost/stacktrace.hpp")
+ set(_Boost_STACKTRACE_BASIC_HEADERS "boost/stacktrace.hpp")
+ set(_Boost_STACKTRACE_NOOP_HEADERS "boost/stacktrace.hpp")
+ set(_Boost_STACKTRACE_WINDBG_CACHED_HEADERS "boost/stacktrace.hpp")
+ set(_Boost_STACKTRACE_WINDBG_HEADERS "boost/stacktrace.hpp")
+ set(_Boost_SYSTEM_HEADERS "boost/system/config.hpp")
+ set(_Boost_TEST_EXEC_MONITOR_HEADERS "boost/test/test_exec_monitor.hpp")
+ set(_Boost_THREAD_HEADERS "boost/thread.hpp")
+ set(_Boost_TIMER_HEADERS "boost/timer.hpp")
+ set(_Boost_TYPE_ERASURE_HEADERS "boost/type_erasure/config.hpp")
+ set(_Boost_UNIT_TEST_FRAMEWORK_HEADERS "boost/test/framework.hpp")
+ set(_Boost_WAVE_HEADERS "boost/wave.hpp")
+ set(_Boost_WSERIALIZATION_HEADERS "boost/archive/text_wiarchive.hpp")
+ if(WIN32)
+ set(_Boost_BZIP2_HEADERS "boost/iostreams/filter/bzip2.hpp")
+ set(_Boost_ZLIB_HEADERS "boost/iostreams/filter/zlib.hpp")
+ endif()
+
+ string(TOUPPER ${component} uppercomponent)
+ set(${_hdrs} ${_Boost_${uppercomponent}_HEADERS} PARENT_SCOPE)
+
+ string(REGEX REPLACE ";" " " _boost_HDRS_STRING "${_Boost_${uppercomponent}_HEADERS}")
+ if (NOT _boost_HDRS_STRING)
+ set(_boost_HDRS_STRING "(none)")
+ endif()
+ # message(STATUS "Headers for Boost::${component}: ${_boost_HDRS_STRING}")
+endfunction()
+
+#
+# Determine if any missing dependencies require adding to the component list.
+#
+# Sets _Boost_${COMPONENT}_DEPENDENCIES for each required component,
+# plus _Boost_IMPORTED_TARGETS (TRUE if imported targets should be
+# defined; FALSE if dependency information is unavailable).
+#
+# componentvar - the component list variable name
+# extravar - the indirect dependency list variable name
+#
+#
+function(_Boost_MISSING_DEPENDENCIES componentvar extravar)
+ # _boost_unprocessed_components - list of components requiring processing
+ # _boost_processed_components - components already processed (or currently being processed)
+ # _boost_new_components - new components discovered for future processing
+ #
+ list(APPEND _boost_unprocessed_components ${${componentvar}})
+
+ while(_boost_unprocessed_components)
+ list(APPEND _boost_processed_components ${_boost_unprocessed_components})
+ foreach(component ${_boost_unprocessed_components})
+ string(TOUPPER ${component} uppercomponent)
+ set(${_ret} ${_Boost_${uppercomponent}_DEPENDENCIES} PARENT_SCOPE)
+ _Boost_COMPONENT_DEPENDENCIES("${component}" _Boost_${uppercomponent}_DEPENDENCIES)
+ set(_Boost_${uppercomponent}_DEPENDENCIES ${_Boost_${uppercomponent}_DEPENDENCIES} PARENT_SCOPE)
+ set(_Boost_IMPORTED_TARGETS ${_Boost_IMPORTED_TARGETS} PARENT_SCOPE)
+ foreach(componentdep ${_Boost_${uppercomponent}_DEPENDENCIES})
+ if (NOT ("${componentdep}" IN_LIST _boost_processed_components OR "${componentdep}" IN_LIST _boost_new_components))
+ list(APPEND _boost_new_components ${componentdep})
+ endif()
+ endforeach()
+ endforeach()
+ set(_boost_unprocessed_components ${_boost_new_components})
+ unset(_boost_new_components)
+ endwhile()
+ set(_boost_extra_components ${_boost_processed_components})
+ if(_boost_extra_components AND ${componentvar})
+ list(REMOVE_ITEM _boost_extra_components ${${componentvar}})
+ endif()
+ set(${componentvar} ${_boost_processed_components} PARENT_SCOPE)
+ set(${extravar} ${_boost_extra_components} PARENT_SCOPE)
+endfunction()
+
+#
+# Some boost libraries may require particular set of compler features.
+# The very first one was `boost::fiber` introduced in Boost 1.62.
+# One can check required compiler features of it in
+# - `${Boost_ROOT}/libs/fiber/build/Jamfile.v2`;
+# - `${Boost_ROOT}/libs/context/build/Jamfile.v2`.
+#
+# TODO (Re)Check compiler features on (every?) release ???
+# One may use the following command to get the files to check:
+#
+# $ find . -name Jamfile.v2 | grep build | xargs grep -l cxx1
+#
+function(_Boost_COMPILER_FEATURES component _ret)
+ # Boost >= 1.62
+ if(NOT Boost_VERSION_STRING VERSION_LESS 1.62.0)
+ set(_Boost_FIBER_COMPILER_FEATURES
+ cxx_alias_templates
+ cxx_auto_type
+ cxx_constexpr
+ cxx_defaulted_functions
+ cxx_final
+ cxx_lambdas
+ cxx_noexcept
+ cxx_nullptr
+ cxx_rvalue_references
+ cxx_thread_local
+ cxx_variadic_templates
+ )
+ # Compiler feature for `context` same as for `fiber`.
+ set(_Boost_CONTEXT_COMPILER_FEATURES ${_Boost_FIBER_COMPILER_FEATURES})
+ endif()
+
+ # Boost Contract library available in >= 1.67
+ if(NOT Boost_VERSION_STRING VERSION_LESS 1.67.0)
+ # From `libs/contract/build/boost_contract_build.jam`
+ set(_Boost_CONTRACT_COMPILER_FEATURES
+ cxx_lambdas
+ cxx_variadic_templates
+ )
+ endif()
+
+ string(TOUPPER ${component} uppercomponent)
+ set(${_ret} ${_Boost_${uppercomponent}_COMPILER_FEATURES} PARENT_SCOPE)
+endfunction()
+
+#
+# Update library search directory hint variable with paths used by prebuilt boost binaries.
+#
+# Prebuilt windows binaries (https://sourceforge.net/projects/boost/files/boost-binaries/)
+# have library directories named using MSVC compiler version and architecture.
+# This function would append corresponding directories if MSVC is a current compiler,
+# so having `BOOST_ROOT` would be enough to specify to find everything.
+#
+function(_Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS componentlibvar basedir)
+ if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(_arch_suffix 64)
+ else()
+ set(_arch_suffix 32)
+ endif()
+ if(MSVC_TOOLSET_VERSION GREATER_EQUAL 150)
+ # Not yet known.
+ elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 140)
+ # MSVC toolset 14.x versions are forward compatible.
+ foreach(v 9 8 7 6 5 4 3 2 1 0)
+ if(MSVC_TOOLSET_VERSION GREATER_EQUAL 14${v})
+ list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-14.${v})
+ endif()
+ endforeach()
+ elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 80)
+ math(EXPR _toolset_major_version "${MSVC_TOOLSET_VERSION} / 10")
+ list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-${_toolset_major_version}.0)
+ endif()
+ set(${componentlibvar} ${${componentlibvar}} PARENT_SCOPE)
+ endif()
+endfunction()
+
+#
+# End functions/macros
+#
+#-------------------------------------------------------------------------------
+
+#-------------------------------------------------------------------------------
+# main.
+#-------------------------------------------------------------------------------
+
+
+# If the user sets Boost_LIBRARY_DIR, use it as the default for both
+# configurations.
+if(NOT Boost_LIBRARY_DIR_RELEASE AND Boost_LIBRARY_DIR)
+ set(Boost_LIBRARY_DIR_RELEASE "${Boost_LIBRARY_DIR}")
+endif()
+if(NOT Boost_LIBRARY_DIR_DEBUG AND Boost_LIBRARY_DIR)
+ set(Boost_LIBRARY_DIR_DEBUG "${Boost_LIBRARY_DIR}")
+endif()
+
+if(NOT DEFINED Boost_USE_DEBUG_LIBS)
+ set(Boost_USE_DEBUG_LIBS TRUE)
+endif()
+if(NOT DEFINED Boost_USE_RELEASE_LIBS)
+ set(Boost_USE_RELEASE_LIBS TRUE)
+endif()
+if(NOT DEFINED Boost_USE_MULTITHREADED)
+ set(Boost_USE_MULTITHREADED TRUE)
+endif()
+if(NOT DEFINED Boost_USE_DEBUG_RUNTIME)
+ set(Boost_USE_DEBUG_RUNTIME TRUE)
+endif()
+
+# Check the version of Boost against the requested version.
+if(Boost_FIND_VERSION AND NOT Boost_FIND_VERSION_MINOR)
+ message(SEND_ERROR "When requesting a specific version of Boost, you must provide at least the major and minor version numbers, e.g., 1.34")
+endif()
+
+if(Boost_FIND_VERSION_EXACT)
+ # The version may appear in a directory with or without the patch
+ # level, even when the patch level is non-zero.
+ set(_boost_TEST_VERSIONS
+ "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}.${Boost_FIND_VERSION_PATCH}"
+ "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}")
+else()
+ # The user has not requested an exact version. Among known
+ # versions, find those that are acceptable to the user request.
+ #
+ # Note: When adding a new Boost release, also update the dependency
+ # information in _Boost_COMPONENT_DEPENDENCIES and
+ # _Boost_COMPONENT_HEADERS. See the instructions at the top of
+ # _Boost_COMPONENT_DEPENDENCIES.
+ set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
+ "1.72.0" "1.72" "1.71.0" "1.71" "1.70.0" "1.70" "1.69.0" "1.69"
+ "1.68.0" "1.68" "1.67.0" "1.67" "1.66.0" "1.66" "1.65.1" "1.65.0" "1.65"
+ "1.64.0" "1.64" "1.63.0" "1.63" "1.62.0" "1.62" "1.61.0" "1.61" "1.60.0" "1.60"
+ "1.59.0" "1.59" "1.58.0" "1.58" "1.57.0" "1.57" "1.56.0" "1.56" "1.55.0" "1.55"
+ "1.54.0" "1.54" "1.53.0" "1.53" "1.52.0" "1.52" "1.51.0" "1.51"
+ "1.50.0" "1.50" "1.49.0" "1.49" "1.48.0" "1.48" "1.47.0" "1.47" "1.46.1"
+ "1.46.0" "1.46" "1.45.0" "1.45" "1.44.0" "1.44" "1.43.0" "1.43" "1.42.0" "1.42"
+ "1.41.0" "1.41" "1.40.0" "1.40" "1.39.0" "1.39" "1.38.0" "1.38" "1.37.0" "1.37"
+ "1.36.1" "1.36.0" "1.36" "1.35.1" "1.35.0" "1.35" "1.34.1" "1.34.0"
+ "1.34" "1.33.1" "1.33.0" "1.33")
+
+ set(_boost_TEST_VERSIONS)
+ if(Boost_FIND_VERSION)
+ set(_Boost_FIND_VERSION_SHORT "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}")
+ # Select acceptable versions.
+ foreach(version ${_Boost_KNOWN_VERSIONS})
+ if(NOT "${version}" VERSION_LESS "${Boost_FIND_VERSION}")
+ # This version is high enough.
+ list(APPEND _boost_TEST_VERSIONS "${version}")
+ elseif("${version}.99" VERSION_EQUAL "${_Boost_FIND_VERSION_SHORT}.99")
+ # This version is a short-form for the requested version with
+ # the patch level dropped.
+ list(APPEND _boost_TEST_VERSIONS "${version}")
+ endif()
+ endforeach()
+ else()
+ # Any version is acceptable.
+ set(_boost_TEST_VERSIONS "${_Boost_KNOWN_VERSIONS}")
+ endif()
+endif()
+
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_TEST_VERSIONS")
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_USE_MULTITHREADED")
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_USE_STATIC_LIBS")
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_USE_STATIC_RUNTIME")
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_ADDITIONAL_VERSIONS")
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_NO_SYSTEM_PATHS")
+
+cmake_policy(GET CMP0074 _Boost_CMP0074)
+if(NOT "x${_Boost_CMP0074}x" STREQUAL "xNEWx")
+ _Boost_CHECK_SPELLING(Boost_ROOT)
+endif()
+unset(_Boost_CMP0074)
+_Boost_CHECK_SPELLING(Boost_LIBRARYDIR)
+_Boost_CHECK_SPELLING(Boost_INCLUDEDIR)
+
+# Collect environment variable inputs as hints. Do not consider changes.
+foreach(v BOOSTROOT BOOST_ROOT BOOST_INCLUDEDIR BOOST_LIBRARYDIR)
+ set(_env $ENV{${v}})
+ if(_env)
+ file(TO_CMAKE_PATH "${_env}" _ENV_${v})
+ else()
+ set(_ENV_${v} "")
+ endif()
+endforeach()
+if(NOT _ENV_BOOST_ROOT AND _ENV_BOOSTROOT)
+ set(_ENV_BOOST_ROOT "${_ENV_BOOSTROOT}")
+endif()
+
+# Collect inputs and cached results. Detect changes since the last run.
+if(NOT BOOST_ROOT AND BOOSTROOT)
+ set(BOOST_ROOT "${BOOSTROOT}")
+endif()
+set(_Boost_VARS_DIR
+ BOOST_ROOT
+ Boost_NO_SYSTEM_PATHS
+ )
+
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "BOOST_ROOT")
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "BOOST_ROOT" ENVIRONMENT)
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "BOOST_INCLUDEDIR")
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "BOOST_INCLUDEDIR" ENVIRONMENT)
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "BOOST_LIBRARYDIR")
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "BOOST_LIBRARYDIR" ENVIRONMENT)
+
+# ------------------------------------------------------------------------
+# Search for Boost include DIR
+# ------------------------------------------------------------------------
+
+set(_Boost_VARS_INC BOOST_INCLUDEDIR Boost_INCLUDE_DIR Boost_ADDITIONAL_VERSIONS)
+_Boost_CHANGE_DETECT(_Boost_CHANGE_INCDIR ${_Boost_VARS_DIR} ${_Boost_VARS_INC})
+# Clear Boost_INCLUDE_DIR if it did not change but other input affecting the
+# location did. We will find a new one based on the new inputs.
+if(_Boost_CHANGE_INCDIR AND NOT _Boost_INCLUDE_DIR_CHANGED)
+ unset(Boost_INCLUDE_DIR CACHE)
+endif()
+
+if(NOT Boost_INCLUDE_DIR)
+ set(_boost_INCLUDE_SEARCH_DIRS "")
+ if(BOOST_INCLUDEDIR)
+ list(APPEND _boost_INCLUDE_SEARCH_DIRS ${BOOST_INCLUDEDIR})
+ elseif(_ENV_BOOST_INCLUDEDIR)
+ list(APPEND _boost_INCLUDE_SEARCH_DIRS ${_ENV_BOOST_INCLUDEDIR})
+ endif()
+
+ if( BOOST_ROOT )
+ list(APPEND _boost_INCLUDE_SEARCH_DIRS ${BOOST_ROOT}/include ${BOOST_ROOT})
+ elseif( _ENV_BOOST_ROOT )
+ list(APPEND _boost_INCLUDE_SEARCH_DIRS ${_ENV_BOOST_ROOT}/include ${_ENV_BOOST_ROOT})
+ endif()
+
+ if( Boost_NO_SYSTEM_PATHS)
+ list(APPEND _boost_INCLUDE_SEARCH_DIRS NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH)
+ else()
+ if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
+ foreach(ver ${_boost_TEST_VERSIONS})
+ string(REPLACE "." "_" ver "${ver}")
+ list(APPEND _boost_INCLUDE_SEARCH_DIRS PATHS "C:/local/boost_${ver}")
+ endforeach()
+ endif()
+ list(APPEND _boost_INCLUDE_SEARCH_DIRS PATHS
+ C:/boost/include
+ C:/boost
+ /sw/local/include
+ )
+ endif()
+
+ # Try to find Boost by stepping backwards through the Boost versions
+ # we know about.
+ # Build a list of path suffixes for each version.
+ set(_boost_PATH_SUFFIXES)
+ foreach(_boost_VER ${_boost_TEST_VERSIONS})
+ # Add in a path suffix, based on the required version, ideally
+ # we could read this from version.hpp, but for that to work we'd
+ # need to know the include dir already
+ set(_boost_BOOSTIFIED_VERSION)
+
+ # Transform 1.35 => 1_35 and 1.36.0 => 1_36_0
+ if(_boost_VER MATCHES "([0-9]+)\\.([0-9]+)\\.([0-9]+)")
+ set(_boost_BOOSTIFIED_VERSION
+ "${CMAKE_MATCH_1}_${CMAKE_MATCH_2}_${CMAKE_MATCH_3}")
+ elseif(_boost_VER MATCHES "([0-9]+)\\.([0-9]+)")
+ set(_boost_BOOSTIFIED_VERSION
+ "${CMAKE_MATCH_1}_${CMAKE_MATCH_2}")
+ endif()
+
+ list(APPEND _boost_PATH_SUFFIXES
+ "boost-${_boost_BOOSTIFIED_VERSION}"
+ "boost_${_boost_BOOSTIFIED_VERSION}"
+ "boost/boost-${_boost_BOOSTIFIED_VERSION}"
+ "boost/boost_${_boost_BOOSTIFIED_VERSION}"
+ )
+
+ endforeach()
+
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_INCLUDE_SEARCH_DIRS")
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_PATH_SUFFIXES")
+
+ # Look for a standard boost header file.
+ find_path(Boost_INCLUDE_DIR
+ NAMES boost/config.hpp
+ HINTS ${_boost_INCLUDE_SEARCH_DIRS}
+ PATH_SUFFIXES ${_boost_PATH_SUFFIXES}
+ )
+endif()
+
+# ------------------------------------------------------------------------
+# Extract version information from version.hpp
+# ------------------------------------------------------------------------
+
+if(Boost_INCLUDE_DIR)
+ _Boost_DEBUG_PRINT("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
+ "location of version.hpp: ${Boost_INCLUDE_DIR}/boost/version.hpp")
+
+ # Extract Boost_VERSION_MACRO and Boost_LIB_VERSION from version.hpp
+ set(Boost_VERSION_MACRO 0)
+ set(Boost_LIB_VERSION "")
+ file(STRINGS "${Boost_INCLUDE_DIR}/boost/version.hpp" _boost_VERSION_HPP_CONTENTS REGEX "#define BOOST_(LIB_)?VERSION ")
+ if("${_boost_VERSION_HPP_CONTENTS}" MATCHES "#define BOOST_VERSION ([0-9]+)")
+ set(Boost_VERSION_MACRO "${CMAKE_MATCH_1}")
+ endif()
+ if("${_boost_VERSION_HPP_CONTENTS}" MATCHES "#define BOOST_LIB_VERSION \"([0-9_]+)\"")
+ set(Boost_LIB_VERSION "${CMAKE_MATCH_1}")
+ endif()
+ unset(_boost_VERSION_HPP_CONTENTS)
+
+ # Calculate version components
+ math(EXPR Boost_VERSION_MAJOR "${Boost_VERSION_MACRO} / 100000")
+ math(EXPR Boost_VERSION_MINOR "${Boost_VERSION_MACRO} / 100 % 1000")
+ math(EXPR Boost_VERSION_PATCH "${Boost_VERSION_MACRO} % 100")
+ set(Boost_VERSION_COUNT 3)
+
+ # Define alias variables for backwards compat.
+ set(Boost_MAJOR_VERSION ${Boost_VERSION_MAJOR})
+ set(Boost_MINOR_VERSION ${Boost_VERSION_MINOR})
+ set(Boost_SUBMINOR_VERSION ${Boost_VERSION_PATCH})
+
+ # Define Boost version in x.y.z format
+ set(Boost_VERSION_STRING "${Boost_VERSION_MAJOR}.${Boost_VERSION_MINOR}.${Boost_VERSION_PATCH}")
+
+ # Define final Boost_VERSION
+ cmake_policy(GET CMP0093 _Boost_CMP0093
+ PARENT_SCOPE # undocumented, do not use outside of CMake
+ )
+ if("x${_Boost_CMP0093}x" STREQUAL "xNEWx")
+ set(Boost_VERSION ${Boost_VERSION_STRING})
+ else()
+ set(Boost_VERSION ${Boost_VERSION_MACRO})
+ endif()
+ unset(_Boost_CMP0093)
+
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION")
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION_STRING")
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION_MACRO")
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION_MAJOR")
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION_MINOR")
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION_PATCH")
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_VERSION_COUNT")
+endif()
+
+# ------------------------------------------------------------------------
+# Prefix initialization
+# ------------------------------------------------------------------------
+
+set(Boost_LIB_PREFIX "")
+if ( (GHSMULTI AND Boost_USE_STATIC_LIBS) OR
+ (WIN32 AND Boost_USE_STATIC_LIBS AND NOT CYGWIN) )
+ set(Boost_LIB_PREFIX "lib")
+endif()
+
+if ( NOT Boost_NAMESPACE )
+ set(Boost_NAMESPACE "boost")
+endif()
+
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_LIB_PREFIX")
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "Boost_NAMESPACE")
+
+# ------------------------------------------------------------------------
+# Suffix initialization and compiler suffix detection.
+# ------------------------------------------------------------------------
+
+set(_Boost_VARS_NAME
+ Boost_NAMESPACE
+ Boost_COMPILER
+ Boost_THREADAPI
+ Boost_USE_DEBUG_PYTHON
+ Boost_USE_MULTITHREADED
+ Boost_USE_STATIC_LIBS
+ Boost_USE_STATIC_RUNTIME
+ Boost_USE_STLPORT
+ Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS
+ )
+_Boost_CHANGE_DETECT(_Boost_CHANGE_LIBNAME ${_Boost_VARS_NAME})
+
+# Setting some more suffixes for the library
+if (Boost_COMPILER)
+ set(_boost_COMPILER ${Boost_COMPILER})
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
+ "_boost_COMPILER" SOURCE "user-specified via Boost_COMPILER")
+else()
+ # Attempt to guess the compiler suffix
+ # NOTE: this is not perfect yet, if you experience any issues
+ # please report them and use the Boost_COMPILER variable
+ # to work around the problems.
+ _Boost_GUESS_COMPILER_PREFIX(_boost_COMPILER)
+endif()
+
+set (_boost_MULTITHREADED "-mt")
+if( NOT Boost_USE_MULTITHREADED )
+ set (_boost_MULTITHREADED "")
+endif()
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_MULTITHREADED")
+
+#======================
+# Systematically build up the Boost ABI tag for the 'tagged' and 'versioned' layouts
+# http://boost.org/doc/libs/1_66_0/more/getting_started/windows.html#library-naming
+# http://boost.org/doc/libs/1_66_0/boost/config/auto_link.hpp
+# http://boost.org/doc/libs/1_66_0/tools/build/src/tools/common.jam
+# http://boost.org/doc/libs/1_66_0/boostcpp.jam
+set( _boost_RELEASE_ABI_TAG "-")
+set( _boost_DEBUG_ABI_TAG "-")
+# Key Use this library when:
+# s linking statically to the C++ standard library and
+# compiler runtime support libraries.
+if(Boost_USE_STATIC_RUNTIME)
+ set( _boost_RELEASE_ABI_TAG "${_boost_RELEASE_ABI_TAG}s")
+ set( _boost_DEBUG_ABI_TAG "${_boost_DEBUG_ABI_TAG}s")
+endif()
+# g using debug versions of the standard and runtime
+# support libraries
+if(WIN32 AND Boost_USE_DEBUG_RUNTIME)
+ if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC"
+ OR "x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xClang"
+ OR "x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xIntel")
+ string(APPEND _boost_DEBUG_ABI_TAG "g")
+ endif()
+endif()
+# y using special debug build of python
+if(Boost_USE_DEBUG_PYTHON)
+ string(APPEND _boost_DEBUG_ABI_TAG "y")
+endif()
+# d using a debug version of your code
+string(APPEND _boost_DEBUG_ABI_TAG "d")
+# p using the STLport standard library rather than the
+# default one supplied with your compiler
+if(Boost_USE_STLPORT)
+ string(APPEND _boost_RELEASE_ABI_TAG "p")
+ string(APPEND _boost_DEBUG_ABI_TAG "p")
+endif()
+# n using the STLport deprecated "native iostreams" feature
+# removed from the documentation in 1.43.0 but still present in
+# boost/config/auto_link.hpp
+if(Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS)
+ string(APPEND _boost_RELEASE_ABI_TAG "n")
+ string(APPEND _boost_DEBUG_ABI_TAG "n")
+endif()
+
+# -x86 Architecture and address model tag
+# First character is the architecture, then word-size, either 32 or 64
+# Only used in 'versioned' layout, added in Boost 1.66.0
+if(DEFINED Boost_ARCHITECTURE)
+ set(_boost_ARCHITECTURE_TAG "${Boost_ARCHITECTURE}")
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
+ "_boost_ARCHITECTURE_TAG" SOURCE "user-specified via Boost_ARCHITECTURE")
+else()
+ set(_boost_ARCHITECTURE_TAG "")
+ # {CMAKE_CXX_COMPILER_ARCHITECTURE_ID} is not currently set for all compilers
+ if(NOT "x${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "x" AND NOT Boost_VERSION_STRING VERSION_LESS 1.66.0)
+ string(APPEND _boost_ARCHITECTURE_TAG "-")
+ # This needs to be kept in-sync with the section of CMakePlatformId.h.in
+ # inside 'defined(_WIN32) && defined(_MSC_VER)'
+ if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "IA64")
+ string(APPEND _boost_ARCHITECTURE_TAG "i")
+ elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "X86"
+ OR CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "x64")
+ string(APPEND _boost_ARCHITECTURE_TAG "x")
+ elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID MATCHES "^ARM")
+ string(APPEND _boost_ARCHITECTURE_TAG "a")
+ elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "MIPS")
+ string(APPEND _boost_ARCHITECTURE_TAG "m")
+ endif()
+
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ string(APPEND _boost_ARCHITECTURE_TAG "64")
+ else()
+ string(APPEND _boost_ARCHITECTURE_TAG "32")
+ endif()
+ endif()
+ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
+ "_boost_ARCHITECTURE_TAG" SOURCE "detected")
+endif()
+
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_RELEASE_ABI_TAG")
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_DEBUG_ABI_TAG")
+
+# ------------------------------------------------------------------------
+# Begin finding boost libraries
+# ------------------------------------------------------------------------
+
+set(_Boost_VARS_LIB "")
+foreach(c DEBUG RELEASE)
+ set(_Boost_VARS_LIB_${c} BOOST_LIBRARYDIR Boost_LIBRARY_DIR_${c})
+ list(APPEND _Boost_VARS_LIB ${_Boost_VARS_LIB_${c}})
+ _Boost_CHANGE_DETECT(_Boost_CHANGE_LIBDIR_${c} ${_Boost_VARS_DIR} ${_Boost_VARS_LIB_${c}} Boost_INCLUDE_DIR)
+ # Clear Boost_LIBRARY_DIR_${c} if it did not change but other input affecting the
+ # location did. We will find a new one based on the new inputs.
+ if(_Boost_CHANGE_LIBDIR_${c} AND NOT _Boost_LIBRARY_DIR_${c}_CHANGED)
+ unset(Boost_LIBRARY_DIR_${c} CACHE)
+ endif()
+
+ # If Boost_LIBRARY_DIR_[RELEASE,DEBUG] is set, prefer its value.
+ if(Boost_LIBRARY_DIR_${c})
+ set(_boost_LIBRARY_SEARCH_DIRS_${c} ${Boost_LIBRARY_DIR_${c}} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
+ else()
+ set(_boost_LIBRARY_SEARCH_DIRS_${c} "")
+ if(BOOST_LIBRARYDIR)
+ list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} ${BOOST_LIBRARYDIR})
+ elseif(_ENV_BOOST_LIBRARYDIR)
+ list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} ${_ENV_BOOST_LIBRARYDIR})
+ endif()
+
+ if(BOOST_ROOT)
+ list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} ${BOOST_ROOT}/lib ${BOOST_ROOT}/stage/lib)
+ _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "${BOOST_ROOT}")
+ elseif(_ENV_BOOST_ROOT)
+ list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} ${_ENV_BOOST_ROOT}/lib ${_ENV_BOOST_ROOT}/stage/lib)
+ _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "${_ENV_BOOST_ROOT}")
+ endif()
+
+ list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c}
+ ${Boost_INCLUDE_DIR}/lib
+ ${Boost_INCLUDE_DIR}/../lib
+ ${Boost_INCLUDE_DIR}/stage/lib
+ )
+ _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "${Boost_INCLUDE_DIR}/..")
+ _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "${Boost_INCLUDE_DIR}")
+ if( Boost_NO_SYSTEM_PATHS )
+ list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH)
+ else()
+ foreach(ver ${_boost_TEST_VERSIONS})
+ string(REPLACE "." "_" ver "${ver}")
+ _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "C:/local/boost_${ver}")
+ endforeach()
+ _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "C:/boost")
+ list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} PATHS
+ C:/boost/lib
+ C:/boost
+ /sw/local/lib
+ )
+ endif()
+ endif()
+endforeach()
+
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_LIBRARY_SEARCH_DIRS_RELEASE")
+_Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}" "_boost_LIBRARY_SEARCH_DIRS_DEBUG")
+
+# Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
+if( Boost_USE_STATIC_LIBS )
+ set( _boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ if(WIN32)
+ list(INSERT CMAKE_FIND_LIBRARY_SUFFIXES 0 .lib .a)
+ else()
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .a)
+ endif()
+endif()
+
+# We want to use the tag inline below without risking double dashes
+if(_boost_RELEASE_ABI_TAG)
+ if(${_boost_RELEASE_ABI_TAG} STREQUAL "-")
+ set(_boost_RELEASE_ABI_TAG "")
+ endif()
+endif()
+if(_boost_DEBUG_ABI_TAG)
+ if(${_boost_DEBUG_ABI_TAG} STREQUAL "-")
+ set(_boost_DEBUG_ABI_TAG "")
+ endif()
+endif()
+
+# The previous behavior of FindBoost when Boost_USE_STATIC_LIBS was enabled
+# on WIN32 was to:
+# 1. Search for static libs compiled against a SHARED C++ standard runtime library (use if found)
+# 2. Search for static libs compiled against a STATIC C++ standard runtime library (use if found)
+# We maintain this behavior since changing it could break people's builds.
+# To disable the ambiguous behavior, the user need only
+# set Boost_USE_STATIC_RUNTIME either ON or OFF.
+set(_boost_STATIC_RUNTIME_WORKAROUND false)
+if(WIN32 AND Boost_USE_STATIC_LIBS)
+ if(NOT DEFINED Boost_USE_STATIC_RUNTIME)
+ set(_boost_STATIC_RUNTIME_WORKAROUND TRUE)
+ endif()
+endif()
+
+# On versions < 1.35, remove the System library from the considered list
+# since it wasn't added until 1.35.
+if(Boost_VERSION_STRING AND Boost_FIND_COMPONENTS)
+ if(Boost_VERSION_STRING VERSION_LESS 1.35.0)
+ list(REMOVE_ITEM Boost_FIND_COMPONENTS system)
+ endif()
+endif()
+
+# Additional components may be required via component dependencies.
+# Add any missing components to the list.
+_Boost_MISSING_DEPENDENCIES(Boost_FIND_COMPONENTS _Boost_EXTRA_FIND_COMPONENTS)
+
+# If thread is required, get the thread libs as a dependency
+if("thread" IN_LIST Boost_FIND_COMPONENTS)
+ if(Boost_FIND_QUIETLY)
+ set(_Boost_find_quiet QUIET)
+ else()
+ set(_Boost_find_quiet "")
+ endif()
+ find_package(Threads ${_Boost_find_quiet})
+ unset(_Boost_find_quiet)
+endif()
+
+# If the user changed any of our control inputs flush previous results.
+if(_Boost_CHANGE_LIBDIR_DEBUG OR _Boost_CHANGE_LIBDIR_RELEASE OR _Boost_CHANGE_LIBNAME)
+ foreach(COMPONENT ${_Boost_COMPONENTS_SEARCHED})
+ string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
+ foreach(c DEBUG RELEASE)
+ set(_var Boost_${UPPERCOMPONENT}_LIBRARY_${c})
+ unset(${_var} CACHE)
+ set(${_var} "${_var}-NOTFOUND")
+ endforeach()
+ endforeach()
+ set(_Boost_COMPONENTS_SEARCHED "")
+endif()
+
+foreach(COMPONENT ${Boost_FIND_COMPONENTS})
+ string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
+
+ set( _boost_docstring_release "Boost ${COMPONENT} library (release)")
+ set( _boost_docstring_debug "Boost ${COMPONENT} library (debug)")
+
+ # Compute component-specific hints.
+ set(_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT "")
+ if(${COMPONENT} STREQUAL "mpi" OR ${COMPONENT} STREQUAL "mpi_python" OR
+ ${COMPONENT} STREQUAL "graph_parallel")
+ foreach(lib ${MPI_CXX_LIBRARIES} ${MPI_C_LIBRARIES})
+ if(IS_ABSOLUTE "${lib}")
+ get_filename_component(libdir "${lib}" PATH)
+ string(REPLACE "\\" "/" libdir "${libdir}")
+ list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT ${libdir})
+ endif()
+ endforeach()
+ endif()
+
+ # Handle Python version suffixes
+ unset(COMPONENT_PYTHON_VERSION_MAJOR)
+ unset(COMPONENT_PYTHON_VERSION_MINOR)
+ if(${COMPONENT} MATCHES "^(python|mpi_python|numpy)([0-9])\$")
+ set(COMPONENT_UNVERSIONED "${CMAKE_MATCH_1}")
+ set(COMPONENT_PYTHON_VERSION_MAJOR "${CMAKE_MATCH_2}")
+ elseif(${COMPONENT} MATCHES "^(python|mpi_python|numpy)([0-9])\\.?([0-9])\$")
+ set(COMPONENT_UNVERSIONED "${CMAKE_MATCH_1}")
+ set(COMPONENT_PYTHON_VERSION_MAJOR "${CMAKE_MATCH_2}")
+ set(COMPONENT_PYTHON_VERSION_MINOR "${CMAKE_MATCH_3}")
+ endif()
+
+ unset(_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME)
+ if (COMPONENT_PYTHON_VERSION_MINOR)
+ # Boost >= 1.67
+ list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}")
+ # Debian/Ubuntu (Some versions omit the 2 and/or 3 from the suffix)
+ list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}${COMPONENT_PYTHON_VERSION_MAJOR}-py${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}")
+ list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-py${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}")
+ # Gentoo
+ list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-${COMPONENT_PYTHON_VERSION_MAJOR}.${COMPONENT_PYTHON_VERSION_MINOR}")
+ # RPMs
+ list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}")
+ endif()
+ if (COMPONENT_PYTHON_VERSION_MAJOR AND NOT COMPONENT_PYTHON_VERSION_MINOR)
+ # Boost < 1.67
+ list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}${COMPONENT_PYTHON_VERSION_MAJOR}")
+ endif()
+
+ # Consolidate and report component-specific hints.
+ if(_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME)
+ list(REMOVE_DUPLICATES _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME)
+ _Boost_DEBUG_PRINT("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
+ "Component-specific library search names for ${COMPONENT_NAME}: ${_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME}")
+ endif()
+ if(_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT)
+ list(REMOVE_DUPLICATES _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT)
+ _Boost_DEBUG_PRINT("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
+ "Component-specific library search paths for ${COMPONENT}: ${_Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT}")
+ endif()
+
+ #
+ # Find headers
+ #
+ _Boost_COMPONENT_HEADERS("${COMPONENT}" Boost_${UPPERCOMPONENT}_HEADER_NAME)
+ # Look for a standard boost header file.
+ if(Boost_${UPPERCOMPONENT}_HEADER_NAME)
+ if(EXISTS "${Boost_INCLUDE_DIR}/${Boost_${UPPERCOMPONENT}_HEADER_NAME}")
+ set(Boost_${UPPERCOMPONENT}_HEADER ON)
+ else()
+ set(Boost_${UPPERCOMPONENT}_HEADER OFF)
+ endif()
+ else()
+ set(Boost_${UPPERCOMPONENT}_HEADER ON)
+ message(WARNING "No header defined for ${COMPONENT}; skipping header check "
+ "(note: header-only libraries have no designated component)")
+ endif()
+
+ #
+ # Find RELEASE libraries
+ #
+ unset(_boost_RELEASE_NAMES)
+ foreach(component IN LISTS _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME COMPONENT)
+ foreach(compiler IN LISTS _boost_COMPILER)
+ list(APPEND _boost_RELEASE_NAMES
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG} )
+ endforeach()
+ 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_ARCHITECTURE_TAG}
+ ${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}")
+ foreach(compiler IN LISTS _boost_COMPILER)
+ list(APPEND _boost_RELEASE_NAMES
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG} )
+ endforeach()
+ list(APPEND _boost_RELEASE_NAMES
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG} )
+ endif()
+ endforeach()
+ if(Boost_THREADAPI AND ${COMPONENT} STREQUAL "thread")
+ _Boost_PREPEND_LIST_WITH_THREADAPI(_boost_RELEASE_NAMES ${_boost_RELEASE_NAMES})
+ endif()
+ _Boost_DEBUG_PRINT("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
+ "Searching for ${UPPERCOMPONENT}_LIBRARY_RELEASE: ${_boost_RELEASE_NAMES}")
+
+ # if Boost_LIBRARY_DIR_RELEASE is not defined,
+ # but Boost_LIBRARY_DIR_DEBUG is, look there first for RELEASE libs
+ if(NOT Boost_LIBRARY_DIR_RELEASE AND Boost_LIBRARY_DIR_DEBUG)
+ list(INSERT _boost_LIBRARY_SEARCH_DIRS_RELEASE 0 ${Boost_LIBRARY_DIR_DEBUG})
+ endif()
+
+ # Avoid passing backslashes to _Boost_FIND_LIBRARY due to macro re-parsing.
+ string(REPLACE "\\" "/" _boost_LIBRARY_SEARCH_DIRS_tmp "${_boost_LIBRARY_SEARCH_DIRS_RELEASE}")
+
+ if(Boost_USE_RELEASE_LIBS)
+ _Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE RELEASE
+ NAMES ${_boost_RELEASE_NAMES}
+ HINTS ${_boost_LIBRARY_SEARCH_DIRS_tmp}
+ NAMES_PER_DIR
+ DOC "${_boost_docstring_release}"
+ )
+ endif()
+
+ #
+ # Find DEBUG libraries
+ #
+ unset(_boost_DEBUG_NAMES)
+ foreach(component IN LISTS _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME COMPONENT)
+ foreach(compiler IN LISTS _boost_COMPILER)
+ list(APPEND _boost_DEBUG_NAMES
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG} )
+ endforeach()
+ list(APPEND _boost_DEBUG_NAMES
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component} )
+ if(_boost_STATIC_RUNTIME_WORKAROUND)
+ set(_boost_DEBUG_STATIC_ABI_TAG "-s${_boost_DEBUG_ABI_TAG}")
+ foreach(compiler IN LISTS _boost_COMPILER)
+ list(APPEND _boost_DEBUG_NAMES
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG} )
+ endforeach()
+ list(APPEND _boost_DEBUG_NAMES
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}
+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG} )
+ endif()
+ endforeach()
+ if(Boost_THREADAPI AND ${COMPONENT} STREQUAL "thread")
+ _Boost_PREPEND_LIST_WITH_THREADAPI(_boost_DEBUG_NAMES ${_boost_DEBUG_NAMES})
+ endif()
+ _Boost_DEBUG_PRINT("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
+ "Searching for ${UPPERCOMPONENT}_LIBRARY_DEBUG: ${_boost_DEBUG_NAMES}")
+
+ # if Boost_LIBRARY_DIR_DEBUG is not defined,
+ # but Boost_LIBRARY_DIR_RELEASE is, look there first for DEBUG libs
+ if(NOT Boost_LIBRARY_DIR_DEBUG AND Boost_LIBRARY_DIR_RELEASE)
+ list(INSERT _boost_LIBRARY_SEARCH_DIRS_DEBUG 0 ${Boost_LIBRARY_DIR_RELEASE})
+ endif()
+
+ # Avoid passing backslashes to _Boost_FIND_LIBRARY due to macro re-parsing.
+ string(REPLACE "\\" "/" _boost_LIBRARY_SEARCH_DIRS_tmp "${_boost_LIBRARY_SEARCH_DIRS_DEBUG}")
+
+ if(Boost_USE_DEBUG_LIBS)
+ _Boost_FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG DEBUG
+ NAMES ${_boost_DEBUG_NAMES}
+ HINTS ${_boost_LIBRARY_SEARCH_DIRS_tmp}
+ NAMES_PER_DIR
+ DOC "${_boost_docstring_debug}"
+ )
+ endif ()
+
+ if(Boost_REALPATH)
+ _Boost_SWAP_WITH_REALPATH(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE "${_boost_docstring_release}")
+ _Boost_SWAP_WITH_REALPATH(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG "${_boost_docstring_debug}" )
+ endif()
+
+ _Boost_ADJUST_LIB_VARS(${UPPERCOMPONENT})
+
+ # Check if component requires some compiler features
+ _Boost_COMPILER_FEATURES(${COMPONENT} _Boost_${UPPERCOMPONENT}_COMPILER_FEATURES)
+
+endforeach()
+
+# Restore the original find library ordering
+if( Boost_USE_STATIC_LIBS )
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${_boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
+endif()
+
+# ------------------------------------------------------------------------
+# End finding boost libraries
+# ------------------------------------------------------------------------
+
+set(Boost_INCLUDE_DIRS ${Boost_INCLUDE_DIR})
+set(Boost_LIBRARY_DIRS)
+if(Boost_LIBRARY_DIR_RELEASE)
+ list(APPEND Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIR_RELEASE})
+endif()
+if(Boost_LIBRARY_DIR_DEBUG)
+ list(APPEND Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIR_DEBUG})
+endif()
+if(Boost_LIBRARY_DIRS)
+ list(REMOVE_DUPLICATES Boost_LIBRARY_DIRS)
+endif()
+
+# ------------------------------------------------------------------------
+# Call FPHSA helper, see https://cmake.org/cmake/help/latest/module/FindPackageHandleStandardArgs.html
+# ------------------------------------------------------------------------
+
+# Define aliases as needed by the component handler in the FPHSA helper below
+foreach(_comp IN LISTS Boost_FIND_COMPONENTS)
+ string(TOUPPER ${_comp} _uppercomp)
+ if(DEFINED Boost_${_uppercomp}_FOUND)
+ set(Boost_${_comp}_FOUND ${Boost_${_uppercomp}_FOUND})
+ endif()
+endforeach()
+
+find_package_handle_standard_args(Boost
+ REQUIRED_VARS Boost_INCLUDE_DIR
+ VERSION_VAR Boost_VERSION_STRING
+ HANDLE_COMPONENTS)
+
+if(Boost_FOUND)
+ if( NOT Boost_LIBRARY_DIRS )
+ # Compatibility Code for backwards compatibility with CMake
+ # 2.4's FindBoost module.
+
+ # Look for the boost library path.
+ # Note that the user may not have installed any libraries
+ # so it is quite possible the Boost_LIBRARY_DIRS may not exist.
+ set(_boost_LIB_DIR ${Boost_INCLUDE_DIR})
+
+ if("${_boost_LIB_DIR}" MATCHES "boost-[0-9]+")
+ get_filename_component(_boost_LIB_DIR ${_boost_LIB_DIR} PATH)
+ endif()
+
+ if("${_boost_LIB_DIR}" MATCHES "/include$")
+ # Strip off the trailing "/include" in the path.
+ get_filename_component(_boost_LIB_DIR ${_boost_LIB_DIR} PATH)
+ endif()
+
+ if(EXISTS "${_boost_LIB_DIR}/lib")
+ string(APPEND _boost_LIB_DIR /lib)
+ elseif(EXISTS "${_boost_LIB_DIR}/stage/lib")
+ string(APPEND _boost_LIB_DIR "/stage/lib")
+ else()
+ set(_boost_LIB_DIR "")
+ endif()
+
+ if(_boost_LIB_DIR AND EXISTS "${_boost_LIB_DIR}")
+ set(Boost_LIBRARY_DIRS ${_boost_LIB_DIR})
+ endif()
+
+ endif()
+else()
+ # Boost headers were not found so no components were found.
+ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
+ string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
+ set(Boost_${UPPERCOMPONENT}_FOUND 0)
+ endforeach()
+endif()
+
+# ------------------------------------------------------------------------
+# Add imported targets
+# ------------------------------------------------------------------------
+
+if(Boost_FOUND)
+ # The builtin CMake package in Boost 1.70+ introduces a new name
+ # for the header-only lib, let's provide the same UI in module mode
+ if(NOT TARGET Boost::headers)
+ add_library(Boost::headers INTERFACE IMPORTED)
+ if(Boost_INCLUDE_DIRS)
+ set_target_properties(Boost::headers PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}")
+ endif()
+ endif()
+
+ # Define the old target name for header-only libraries for backwards
+ # compat.
+ if(NOT TARGET Boost::boost)
+ add_library(Boost::boost INTERFACE IMPORTED)
+ set_target_properties(Boost::boost
+ PROPERTIES INTERFACE_LINK_LIBRARIES Boost::headers)
+ endif()
+
+ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
+ if(_Boost_IMPORTED_TARGETS AND NOT TARGET Boost::${COMPONENT})
+ string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
+ if(Boost_${UPPERCOMPONENT}_FOUND)
+ if(Boost_USE_STATIC_LIBS)
+ add_library(Boost::${COMPONENT} STATIC IMPORTED)
+ else()
+ # Even if Boost_USE_STATIC_LIBS is OFF, we might have static
+ # libraries as a result.
+ add_library(Boost::${COMPONENT} UNKNOWN IMPORTED)
+ endif()
+ if(Boost_INCLUDE_DIRS)
+ set_target_properties(Boost::${COMPONENT} PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}")
+ endif()
+ if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY}")
+ set_target_properties(Boost::${COMPONENT} PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+ IMPORTED_LOCATION "${Boost_${UPPERCOMPONENT}_LIBRARY}")
+ endif()
+ if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE}")
+ set_property(TARGET Boost::${COMPONENT} APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(Boost::${COMPONENT} PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
+ IMPORTED_LOCATION_RELEASE "${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE}")
+ endif()
+ if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG}")
+ set_property(TARGET Boost::${COMPONENT} APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(Boost::${COMPONENT} PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
+ IMPORTED_LOCATION_DEBUG "${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG}")
+ endif()
+ if(_Boost_${UPPERCOMPONENT}_DEPENDENCIES)
+ unset(_Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES)
+ foreach(dep ${_Boost_${UPPERCOMPONENT}_DEPENDENCIES})
+ list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES Boost::${dep})
+ endforeach()
+ if(COMPONENT STREQUAL "thread")
+ list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES Threads::Threads)
+ endif()
+ set_target_properties(Boost::${COMPONENT} PROPERTIES
+ INTERFACE_LINK_LIBRARIES "${_Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES}")
+ endif()
+ if(_Boost_${UPPERCOMPONENT}_COMPILER_FEATURES)
+ set_target_properties(Boost::${COMPONENT} PROPERTIES
+ INTERFACE_COMPILE_FEATURES "${_Boost_${UPPERCOMPONENT}_COMPILER_FEATURES}")
+ endif()
+ endif()
+ endif()
+ endforeach()
+
+ # Supply Boost_LIB_DIAGNOSTIC_DEFINITIONS as a convenience target. It
+ # will only contain any interface definitions on WIN32, but is created
+ # on all platforms to keep end user code free from platform dependent
+ # code. Also provide convenience targets to disable autolinking and
+ # enable dynamic linking.
+ if(NOT TARGET Boost::diagnostic_definitions)
+ add_library(Boost::diagnostic_definitions INTERFACE IMPORTED)
+ add_library(Boost::disable_autolinking INTERFACE IMPORTED)
+ add_library(Boost::dynamic_linking INTERFACE IMPORTED)
+ set_target_properties(Boost::dynamic_linking PROPERTIES
+ INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_DYN_LINK")
+ endif()
+ if(WIN32)
+ # In windows, automatic linking is performed, so you do not have
+ # to specify the libraries. If you are linking to a dynamic
+ # runtime, then you can choose to link to either a static or a
+ # dynamic Boost library, the default is to do a static link. You
+ # can alter this for a specific library "whatever" by defining
+ # BOOST_WHATEVER_DYN_LINK to force Boost library "whatever" to be
+ # linked dynamically. Alternatively you can force all Boost
+ # libraries to dynamic link by defining BOOST_ALL_DYN_LINK.
+
+ # This feature can be disabled for Boost library "whatever" by
+ # defining BOOST_WHATEVER_NO_LIB, or for all of Boost by defining
+ # BOOST_ALL_NO_LIB.
+
+ # If you want to observe which libraries are being linked against
+ # then defining BOOST_LIB_DIAGNOSTIC will cause the auto-linking
+ # code to emit a #pragma message each time a library is selected
+ # for linking.
+ set(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC")
+ set_target_properties(Boost::diagnostic_definitions PROPERTIES
+ INTERFACE_COMPILE_DEFINITIONS "BOOST_LIB_DIAGNOSTIC")
+ set_target_properties(Boost::disable_autolinking PROPERTIES
+ INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB")
+ endif()
+endif()
+
+# ------------------------------------------------------------------------
+# Finalize
+# ------------------------------------------------------------------------
+
+# Report Boost_LIBRARIES
+set(Boost_LIBRARIES "")
+foreach(_comp IN LISTS Boost_FIND_COMPONENTS)
+ string(TOUPPER ${_comp} _uppercomp)
+ if(Boost_${_uppercomp}_FOUND)
+ list(APPEND Boost_LIBRARIES ${Boost_${_uppercomp}_LIBRARY})
+ if(_comp STREQUAL "thread")
+ list(APPEND Boost_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
+ endif()
+ endif()
+endforeach()
+
+# Configure display of cache entries in GUI.
+foreach(v BOOSTROOT BOOST_ROOT ${_Boost_VARS_INC} ${_Boost_VARS_LIB})
+ get_property(_type CACHE ${v} PROPERTY TYPE)
+ if(_type)
+ set_property(CACHE ${v} PROPERTY ADVANCED 1)
+ if("x${_type}" STREQUAL "xUNINITIALIZED")
+ if("x${v}" STREQUAL "xBoost_ADDITIONAL_VERSIONS")
+ set_property(CACHE ${v} PROPERTY TYPE STRING)
+ else()
+ set_property(CACHE ${v} PROPERTY TYPE PATH)
+ endif()
+ endif()
+ endif()
+endforeach()
+
+# Record last used values of input variables so we can
+# detect on the next run if the user changed them.
+foreach(v
+ ${_Boost_VARS_INC} ${_Boost_VARS_LIB}
+ ${_Boost_VARS_DIR} ${_Boost_VARS_NAME}
+ )
+ if(DEFINED ${v})
+ set(_${v}_LAST "${${v}}" CACHE INTERNAL "Last used ${v} value.")
+ else()
+ unset(_${v}_LAST CACHE)
+ endif()
+endforeach()
+
+# Maintain a persistent list of components requested anywhere since
+# the last flush.
+set(_Boost_COMPONENTS_SEARCHED "${_Boost_COMPONENTS_SEARCHED}")
+list(APPEND _Boost_COMPONENTS_SEARCHED ${Boost_FIND_COMPONENTS})
+list(REMOVE_DUPLICATES _Boost_COMPONENTS_SEARCHED)
+list(SORT _Boost_COMPONENTS_SEARCHED)
+set(_Boost_COMPONENTS_SEARCHED "${_Boost_COMPONENTS_SEARCHED}"
+ CACHE INTERNAL "Components requested for this build tree.")
+
+# Restore project's policies
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FindBullet.cmake b/share/cmake-3.17/Modules/FindBullet.cmake
index 6d64185..6d64185 100644
--- a/share/cmake-3.16/Modules/FindBullet.cmake
+++ b/share/cmake-3.17/Modules/FindBullet.cmake
diff --git a/share/cmake-3.16/Modules/FindCABLE.cmake b/share/cmake-3.17/Modules/FindCABLE.cmake
index 1f4ae76..1f4ae76 100644
--- a/share/cmake-3.16/Modules/FindCABLE.cmake
+++ b/share/cmake-3.17/Modules/FindCABLE.cmake
diff --git a/share/cmake-3.17/Modules/FindCUDA.cmake b/share/cmake-3.17/Modules/FindCUDA.cmake
new file mode 100644
index 0000000..e1af2d6
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindCUDA.cmake
@@ -0,0 +1,2024 @@
+#[=======================================================================[.rst:
+FindCUDA
+--------
+
+.. deprecated:: 3.10
+
+ Superseded by first-class support for the CUDA language in CMake.
+ Superseded by the :module:`FindCUDAToolkit` for CUDA toolkit libraries.
+
+Replacement
+^^^^^^^^^^^
+
+It is no longer necessary to use this module or call ``find_package(CUDA)``
+for compiling CUDA code. Instead, list ``CUDA`` among the languages named
+in the top-level call to the :command:`project` command, or call the
+:command:`enable_language` command with ``CUDA``.
+Then one can add CUDA (``.cu``) sources to programs directly
+in calls to :command:`add_library` and :command:`add_executable`.
+
+To find and use the CUDA toolkit libraries the :module:`FindCUDAToolkit`
+module has superseded this module. It works whether or not the ``CUDA``
+language is enabled.
+
+Documentation of Deprecated Usage
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Tools for building CUDA C files: libraries and build dependencies.
+
+This script locates the NVIDIA CUDA C tools. It should work on Linux,
+Windows, and macOS and should be reasonably up to date with CUDA C
+releases.
+
+This script makes use of the standard :command:`find_package` arguments of
+``<VERSION>``, ``REQUIRED`` and ``QUIET``. ``CUDA_FOUND`` will report if an
+acceptable version of CUDA was found.
+
+The script will prompt the user to specify ``CUDA_TOOLKIT_ROOT_DIR`` if
+the prefix cannot be determined by the location of nvcc in the system
+path and ``REQUIRED`` is specified to :command:`find_package`. To use
+a different installed version of the toolkit set the environment variable
+``CUDA_BIN_PATH`` before running cmake (e.g.
+``CUDA_BIN_PATH=/usr/local/cuda1.0`` instead of the default
+``/usr/local/cuda``) or set ``CUDA_TOOLKIT_ROOT_DIR`` after configuring. If
+you change the value of ``CUDA_TOOLKIT_ROOT_DIR``, various components that
+depend on the path will be relocated.
+
+It might be necessary to set ``CUDA_TOOLKIT_ROOT_DIR`` manually on certain
+platforms, or to use a CUDA runtime not installed in the default
+location. In newer versions of the toolkit the CUDA library is
+included with the graphics driver -- be sure that the driver version
+matches what is needed by the CUDA runtime version.
+
+The following variables affect the behavior of the macros in the
+script (in alphabetical order). Note that any of these flags can be
+changed multiple times in the same directory before calling
+``CUDA_ADD_EXECUTABLE``, ``CUDA_ADD_LIBRARY``, ``CUDA_COMPILE``,
+``CUDA_COMPILE_PTX``, ``CUDA_COMPILE_FATBIN``, ``CUDA_COMPILE_CUBIN``
+or ``CUDA_WRAP_SRCS``::
+
+ CUDA_64_BIT_DEVICE_CODE (Default matches host bit size)
+ -- Set to ON to compile for 64 bit device code, OFF for 32 bit device code.
+ Note that making this different from the host code when generating object
+ or C files from CUDA code just won't work, because size_t gets defined by
+ nvcc in the generated source. If you compile to PTX and then load the
+ file yourself, you can mix bit sizes between device and host.
+
+ CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE (Default ON)
+ -- Set to ON if you want the custom build rule to be attached to the source
+ file in Visual Studio. Turn OFF if you add the same cuda file to multiple
+ targets.
+
+ This allows the user to build the target from the CUDA file; however, bad
+ things can happen if the CUDA source file is added to multiple targets.
+ When performing parallel builds it is possible for the custom build
+ command to be run more than once and in parallel causing cryptic build
+ errors. VS runs the rules for every source file in the target, and a
+ source can have only one rule no matter how many projects it is added to.
+ When the rule is run from multiple targets race conditions can occur on
+ the generated file. Eventually everything will get built, but if the user
+ is unaware of this behavior, there may be confusion. It would be nice if
+ this script could detect the reuse of source files across multiple targets
+ and turn the option off for the user, but no good solution could be found.
+
+ CUDA_BUILD_CUBIN (Default OFF)
+ -- Set to ON to enable and extra compilation pass with the -cubin option in
+ Device mode. The output is parsed and register, shared memory usage is
+ printed during build.
+
+ CUDA_BUILD_EMULATION (Default OFF for device mode)
+ -- Set to ON for Emulation mode. -D_DEVICEEMU is defined for CUDA C files
+ when CUDA_BUILD_EMULATION is TRUE.
+
+ CUDA_LINK_LIBRARIES_KEYWORD (Default "")
+ -- The <PRIVATE|PUBLIC|INTERFACE> keyword to use for internal
+ target_link_libraries calls. The default is to use no keyword which
+ uses the old "plain" form of target_link_libraries. Note that is matters
+ because whatever is used inside the FindCUDA module must also be used
+ outside - the two forms of target_link_libraries cannot be mixed.
+
+ CUDA_GENERATED_OUTPUT_DIR (Default CMAKE_CURRENT_BINARY_DIR)
+ -- Set to the path you wish to have the generated files placed. If it is
+ blank output files will be placed in CMAKE_CURRENT_BINARY_DIR.
+ Intermediate files will always be placed in
+ CMAKE_CURRENT_BINARY_DIR/CMakeFiles.
+
+ CUDA_HOST_COMPILATION_CPP (Default ON)
+ -- Set to OFF for C compilation of host code.
+
+ CUDA_HOST_COMPILER (Default CMAKE_C_COMPILER)
+ -- Set the host compiler to be used by nvcc. Ignored if -ccbin or
+ --compiler-bindir is already present in the CUDA_NVCC_FLAGS or
+ CUDA_NVCC_FLAGS_<CONFIG> variables. For Visual Studio targets,
+ the host compiler is constructed with one or more visual studio macros
+ such as $(VCInstallDir), that expands out to the path when
+ the command is run from within VS.
+ If the CUDAHOSTCXX environment variable is set it will
+ be used as the default.
+
+ CUDA_NVCC_FLAGS
+ CUDA_NVCC_FLAGS_<CONFIG>
+ -- Additional NVCC command line arguments. NOTE: multiple arguments must be
+ semi-colon delimited (e.g. --compiler-options;-Wall)
+
+ CUDA_PROPAGATE_HOST_FLAGS (Default ON)
+ -- Set to ON to propagate CMAKE_{C,CXX}_FLAGS and their configuration
+ dependent counterparts (e.g. CMAKE_C_FLAGS_DEBUG) automatically to the
+ host compiler through nvcc's -Xcompiler flag. This helps make the
+ generated host code match the rest of the system better. Sometimes
+ certain flags give nvcc problems, and this will help you turn the flag
+ propagation off. This does not affect the flags supplied directly to nvcc
+ via CUDA_NVCC_FLAGS or through the OPTION flags specified through
+ CUDA_ADD_LIBRARY, CUDA_ADD_EXECUTABLE, or CUDA_WRAP_SRCS. Flags used for
+ shared library compilation are not affected by this flag.
+
+ CUDA_SEPARABLE_COMPILATION (Default OFF)
+ -- If set this will enable separable compilation for all CUDA runtime object
+ files. If used outside of CUDA_ADD_EXECUTABLE and CUDA_ADD_LIBRARY
+ (e.g. calling CUDA_WRAP_SRCS directly),
+ CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME and
+ CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS should be called.
+
+ CUDA_SOURCE_PROPERTY_FORMAT
+ -- If this source file property is set, it can override the format specified
+ to CUDA_WRAP_SRCS (OBJ, PTX, CUBIN, or FATBIN). If an input source file
+ is not a .cu file, setting this file will cause it to be treated as a .cu
+ file. See documentation for set_source_files_properties on how to set
+ this property.
+
+ CUDA_USE_STATIC_CUDA_RUNTIME (Default ON)
+ -- When enabled the static version of the CUDA runtime library will be used
+ in CUDA_LIBRARIES. If the version of CUDA configured doesn't support
+ this option, then it will be silently disabled.
+
+ CUDA_VERBOSE_BUILD (Default OFF)
+ -- Set to ON to see all the commands used when building the CUDA file. When
+ using a Makefile generator the value defaults to VERBOSE (run make
+ VERBOSE=1 to see output), although setting CUDA_VERBOSE_BUILD to ON will
+ always print the output.
+
+The script creates the following macros (in alphabetical order)::
+
+ CUDA_ADD_CUFFT_TO_TARGET( cuda_target )
+ -- Adds the cufft library to the target (can be any target). Handles whether
+ you are in emulation mode or not.
+
+ CUDA_ADD_CUBLAS_TO_TARGET( cuda_target )
+ -- Adds the cublas library to the target (can be any target). Handles
+ whether you are in emulation mode or not.
+
+ CUDA_ADD_EXECUTABLE( cuda_target file0 file1 ...
+ [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] [OPTIONS ...] )
+ -- Creates an executable "cuda_target" which is made up of the files
+ specified. All of the non CUDA C files are compiled using the standard
+ build rules specified by CMAKE and the cuda files are compiled to object
+ files using nvcc and the host compiler. In addition CUDA_INCLUDE_DIRS is
+ added automatically to include_directories(). Some standard CMake target
+ calls can be used on the target after calling this macro
+ (e.g. set_target_properties and target_link_libraries), but setting
+ properties that adjust compilation flags will not affect code compiled by
+ nvcc. Such flags should be modified before calling CUDA_ADD_EXECUTABLE,
+ CUDA_ADD_LIBRARY or CUDA_WRAP_SRCS.
+
+ CUDA_ADD_LIBRARY( cuda_target file0 file1 ...
+ [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [OPTIONS ...] )
+ -- Same as CUDA_ADD_EXECUTABLE except that a library is created.
+
+ CUDA_BUILD_CLEAN_TARGET()
+ -- Creates a convenience target that deletes all the dependency files
+ generated. You should make clean after running this target to ensure the
+ dependency files get regenerated.
+
+ CUDA_COMPILE( generated_files file0 file1 ... [STATIC | SHARED | MODULE]
+ [OPTIONS ...] )
+ -- Returns a list of generated files from the input source files to be used
+ with ADD_LIBRARY or ADD_EXECUTABLE.
+
+ CUDA_COMPILE_PTX( generated_files file0 file1 ... [OPTIONS ...] )
+ -- Returns a list of PTX files generated from the input source files.
+
+ CUDA_COMPILE_FATBIN( generated_files file0 file1 ... [OPTIONS ...] )
+ -- Returns a list of FATBIN files generated from the input source files.
+
+ CUDA_COMPILE_CUBIN( generated_files file0 file1 ... [OPTIONS ...] )
+ -- Returns a list of CUBIN files generated from the input source files.
+
+ CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME( output_file_var
+ cuda_target
+ object_files )
+ -- Compute the name of the intermediate link file used for separable
+ compilation. This file name is typically passed into
+ CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS. output_file_var is produced
+ based on cuda_target the list of objects files that need separable
+ compilation as specified by object_files. If the object_files list is
+ empty, then output_file_var will be empty. This function is called
+ automatically for CUDA_ADD_LIBRARY and CUDA_ADD_EXECUTABLE. Note that
+ this is a function and not a macro.
+
+ CUDA_INCLUDE_DIRECTORIES( path0 path1 ... )
+ -- Sets the directories that should be passed to nvcc
+ (e.g. nvcc -Ipath0 -Ipath1 ... ). These paths usually contain other .cu
+ files.
+
+
+ CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS( output_file_var cuda_target
+ nvcc_flags object_files)
+ -- Generates the link object required by separable compilation from the given
+ object files. This is called automatically for CUDA_ADD_EXECUTABLE and
+ CUDA_ADD_LIBRARY, but can be called manually when using CUDA_WRAP_SRCS
+ directly. When called from CUDA_ADD_LIBRARY or CUDA_ADD_EXECUTABLE the
+ nvcc_flags passed in are the same as the flags passed in via the OPTIONS
+ argument. The only nvcc flag added automatically is the bitness flag as
+ specified by CUDA_64_BIT_DEVICE_CODE. Note that this is a function
+ instead of a macro.
+
+ CUDA_SELECT_NVCC_ARCH_FLAGS(out_variable [target_CUDA_architectures])
+ -- Selects GPU arch flags for nvcc based on target_CUDA_architectures
+ target_CUDA_architectures : Auto | Common | All | LIST(ARCH_AND_PTX ...)
+ - "Auto" detects local machine GPU compute arch at runtime.
+ - "Common" and "All" cover common and entire subsets of architectures
+ ARCH_AND_PTX : NAME | NUM.NUM | NUM.NUM(NUM.NUM) | NUM.NUM+PTX
+ NAME: Fermi Kepler Maxwell Kepler+Tegra Kepler+Tesla Maxwell+Tegra Pascal
+ NUM: Any number. Only those pairs are currently accepted by NVCC though:
+ 2.0 2.1 3.0 3.2 3.5 3.7 5.0 5.2 5.3 6.0 6.2
+ Returns LIST of flags to be added to CUDA_NVCC_FLAGS in ${out_variable}
+ Additionally, sets ${out_variable}_readable to the resulting numeric list
+ Example:
+ CUDA_SELECT_NVCC_ARCH_FLAGS(ARCH_FLAGS 3.0 3.5+PTX 5.2(5.0) Maxwell)
+ LIST(APPEND CUDA_NVCC_FLAGS ${ARCH_FLAGS})
+
+ More info on CUDA architectures: https://en.wikipedia.org/wiki/CUDA
+ Note that this is a function instead of a macro.
+
+ CUDA_WRAP_SRCS ( cuda_target format generated_files file0 file1 ...
+ [STATIC | SHARED | MODULE] [OPTIONS ...] )
+ -- This is where all the magic happens. CUDA_ADD_EXECUTABLE,
+ CUDA_ADD_LIBRARY, CUDA_COMPILE, and CUDA_COMPILE_PTX all call this
+ function under the hood.
+
+ Given the list of files (file0 file1 ... fileN) this macro generates
+ custom commands that generate either PTX or linkable objects (use "PTX" or
+ "OBJ" for the format argument to switch). Files that don't end with .cu
+ or have the HEADER_FILE_ONLY property are ignored.
+
+ The arguments passed in after OPTIONS are extra command line options to
+ give to nvcc. You can also specify per configuration options by
+ specifying the name of the configuration followed by the options. General
+ options must precede configuration specific options. Not all
+ configurations need to be specified, only the ones provided will be used.
+
+ OPTIONS -DFLAG=2 "-DFLAG_OTHER=space in flag"
+ DEBUG -g
+ RELEASE --use_fast_math
+ RELWITHDEBINFO --use_fast_math;-g
+ MINSIZEREL --use_fast_math
+
+ For certain configurations (namely VS generating object files with
+ CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE set to ON), no generated file will
+ be produced for the given cuda file. This is because when you add the
+ cuda file to Visual Studio it knows that this file produces an object file
+ and will link in the resulting object file automatically.
+
+ This script will also generate a separate cmake script that is used at
+ build time to invoke nvcc. This is for several reasons.
+
+ 1. nvcc can return negative numbers as return values which confuses
+ Visual Studio into thinking that the command succeeded. The script now
+ checks the error codes and produces errors when there was a problem.
+
+ 2. nvcc has been known to not delete incomplete results when it
+ encounters problems. This confuses build systems into thinking the
+ target was generated when in fact an unusable file exists. The script
+ now deletes the output files if there was an error.
+
+ 3. By putting all the options that affect the build into a file and then
+ make the build rule dependent on the file, the output files will be
+ regenerated when the options change.
+
+ This script also looks at optional arguments STATIC, SHARED, or MODULE to
+ determine when to target the object compilation for a shared library.
+ BUILD_SHARED_LIBS is ignored in CUDA_WRAP_SRCS, but it is respected in
+ CUDA_ADD_LIBRARY. On some systems special flags are added for building
+ objects intended for shared libraries. A preprocessor macro,
+ <target_name>_EXPORTS is defined when a shared library compilation is
+ detected.
+
+ Flags passed into add_definitions with -D or /D are passed along to nvcc.
+
+
+
+The script defines the following variables::
+
+ CUDA_VERSION_MAJOR -- The major version of cuda as reported by nvcc.
+ CUDA_VERSION_MINOR -- The minor version.
+ CUDA_VERSION
+ CUDA_VERSION_STRING -- CUDA_VERSION_MAJOR.CUDA_VERSION_MINOR
+ CUDA_HAS_FP16 -- Whether a short float (float16,fp16) is supported.
+
+ CUDA_TOOLKIT_ROOT_DIR -- Path to the CUDA Toolkit (defined if not set).
+ CUDA_SDK_ROOT_DIR -- Path to the CUDA SDK. Use this to find files in the
+ SDK. This script will not directly support finding
+ specific libraries or headers, as that isn't
+ supported by NVIDIA. If you want to change
+ libraries when the path changes see the
+ FindCUDA.cmake script for an example of how to clear
+ these variables. There are also examples of how to
+ use the CUDA_SDK_ROOT_DIR to locate headers or
+ libraries, if you so choose (at your own risk).
+ CUDA_INCLUDE_DIRS -- Include directory for cuda headers. Added automatically
+ for CUDA_ADD_EXECUTABLE and CUDA_ADD_LIBRARY.
+ CUDA_LIBRARIES -- Cuda RT library.
+ CUDA_CUFFT_LIBRARIES -- Device or emulation library for the Cuda FFT
+ implementation (alternative to:
+ CUDA_ADD_CUFFT_TO_TARGET macro)
+ CUDA_CUBLAS_LIBRARIES -- Device or emulation library for the Cuda BLAS
+ implementation (alternative to:
+ CUDA_ADD_CUBLAS_TO_TARGET macro).
+ CUDA_cudart_static_LIBRARY -- Statically linkable cuda runtime library.
+ Only available for CUDA version 5.5+
+ CUDA_cudadevrt_LIBRARY -- Device runtime library.
+ Required for separable compilation.
+ CUDA_cupti_LIBRARY -- CUDA Profiling Tools Interface library.
+ Only available for CUDA version 4.0+.
+ CUDA_curand_LIBRARY -- CUDA Random Number Generation library.
+ Only available for CUDA version 3.2+.
+ CUDA_cusolver_LIBRARY -- CUDA Direct Solver library.
+ Only available for CUDA version 7.0+.
+ CUDA_cusparse_LIBRARY -- CUDA Sparse Matrix library.
+ Only available for CUDA version 3.2+.
+ CUDA_npp_LIBRARY -- NVIDIA Performance Primitives lib.
+ Only available for CUDA version 4.0+.
+ CUDA_nppc_LIBRARY -- NVIDIA Performance Primitives lib (core).
+ Only available for CUDA version 5.5+.
+ CUDA_nppi_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
+ Only available for CUDA version 5.5 - 8.0.
+ CUDA_nppial_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
+ Only available for CUDA version 9.0.
+ CUDA_nppicc_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
+ Only available for CUDA version 9.0.
+ CUDA_nppicom_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
+ Only available for CUDA version 9.0.
+ CUDA_nppidei_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
+ Only available for CUDA version 9.0.
+ CUDA_nppif_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
+ Only available for CUDA version 9.0.
+ CUDA_nppig_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
+ Only available for CUDA version 9.0.
+ CUDA_nppim_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
+ Only available for CUDA version 9.0.
+ CUDA_nppist_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
+ Only available for CUDA version 9.0.
+ CUDA_nppisu_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
+ Only available for CUDA version 9.0.
+ CUDA_nppitc_LIBRARY -- NVIDIA Performance Primitives lib (image processing).
+ Only available for CUDA version 9.0.
+ CUDA_npps_LIBRARY -- NVIDIA Performance Primitives lib (signal processing).
+ Only available for CUDA version 5.5+.
+ CUDA_nvcuvenc_LIBRARY -- CUDA Video Encoder library.
+ Only available for CUDA version 3.2+.
+ Windows only.
+ CUDA_nvcuvid_LIBRARY -- CUDA Video Decoder library.
+ Only available for CUDA version 3.2+.
+ Windows only.
+ CUDA_nvToolsExt_LIBRARY
+ -- NVIDA CUDA Tools Extension library.
+ Available for CUDA version 5+.
+ CUDA_OpenCL_LIBRARY -- NVIDA CUDA OpenCL library.
+ Available for CUDA version 5+.
+
+#]=======================================================================]
+
+# James Bigler, NVIDIA Corp (nvidia.com - jbigler)
+# Abe Stephens, SCI Institute -- http://www.sci.utah.edu/~abe/FindCuda.html
+#
+# Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved.
+#
+# Copyright (c) 2007-2009
+# Scientific Computing and Imaging Institute, University of Utah
+#
+# This code is licensed under the MIT License. See the FindCUDA.cmake script
+# for the text of the license.
+
+# The MIT License
+#
+# License for the specific language governing rights and limitations under
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+###############################################################################
+
+# FindCUDA.cmake
+
+# This macro helps us find the location of helper files we will need the full path to
+macro(CUDA_FIND_HELPER_FILE _name _extension)
+ set(_full_name "${_name}.${_extension}")
+ # CMAKE_CURRENT_LIST_FILE contains the full path to the file currently being
+ # processed. Using this variable, we can pull out the current path, and
+ # provide a way to get access to the other files we need local to here.
+ get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+ set(CUDA_${_name} "${CMAKE_CURRENT_LIST_DIR}/FindCUDA/${_full_name}")
+ if(NOT EXISTS "${CUDA_${_name}}")
+ set(error_message "${_full_name} not found in ${CMAKE_CURRENT_LIST_DIR}/FindCUDA")
+ if(CUDA_FIND_REQUIRED)
+ message(FATAL_ERROR "${error_message}")
+ else()
+ if(NOT CUDA_FIND_QUIETLY)
+ message(STATUS "${error_message}")
+ endif()
+ endif()
+ endif()
+ # Set this variable as internal, so the user isn't bugged with it.
+ set(CUDA_${_name} ${CUDA_${_name}} CACHE INTERNAL "Location of ${_full_name}" FORCE)
+endmacro()
+
+#####################################################################
+## CUDA_INCLUDE_NVCC_DEPENDENCIES
+##
+
+# So we want to try and include the dependency file if it exists. If
+# it doesn't exist then we need to create an empty one, so we can
+# include it.
+
+# If it does exist, then we need to check to see if all the files it
+# depends on exist. If they don't then we should clear the dependency
+# file and regenerate it later. This covers the case where a header
+# file has disappeared or moved.
+
+macro(CUDA_INCLUDE_NVCC_DEPENDENCIES dependency_file)
+ set(CUDA_NVCC_DEPEND)
+ set(CUDA_NVCC_DEPEND_REGENERATE FALSE)
+
+
+ # Include the dependency file. Create it first if it doesn't exist . The
+ # INCLUDE puts a dependency that will force CMake to rerun and bring in the
+ # new info when it changes. DO NOT REMOVE THIS (as I did and spent a few
+ # hours figuring out why it didn't work.
+ if(NOT EXISTS ${dependency_file})
+ file(WRITE ${dependency_file} "#FindCUDA.cmake generated file. Do not edit.\n")
+ endif()
+ # Always include this file to force CMake to run again next
+ # invocation and rebuild the dependencies.
+ #message("including dependency_file = ${dependency_file}")
+ include(${dependency_file})
+
+ # Now we need to verify the existence of all the included files
+ # here. If they aren't there we need to just blank this variable and
+ # make the file regenerate again.
+# if(DEFINED CUDA_NVCC_DEPEND)
+# message("CUDA_NVCC_DEPEND set")
+# else()
+# message("CUDA_NVCC_DEPEND NOT set")
+# endif()
+ if(CUDA_NVCC_DEPEND)
+ #message("CUDA_NVCC_DEPEND found")
+ foreach(f ${CUDA_NVCC_DEPEND})
+ # message("searching for ${f}")
+ if(NOT EXISTS ${f})
+ #message("file ${f} not found")
+ set(CUDA_NVCC_DEPEND_REGENERATE TRUE)
+ endif()
+ endforeach()
+ else()
+ #message("CUDA_NVCC_DEPEND false")
+ # No dependencies, so regenerate the file.
+ set(CUDA_NVCC_DEPEND_REGENERATE TRUE)
+ endif()
+
+ #message("CUDA_NVCC_DEPEND_REGENERATE = ${CUDA_NVCC_DEPEND_REGENERATE}")
+ # No incoming dependencies, so we need to generate them. Make the
+ # output depend on the dependency file itself, which should cause the
+ # rule to re-run.
+ if(CUDA_NVCC_DEPEND_REGENERATE)
+ set(CUDA_NVCC_DEPEND ${dependency_file})
+ #message("Generating an empty dependency_file: ${dependency_file}")
+ file(WRITE ${dependency_file} "#FindCUDA.cmake generated file. Do not edit.\n")
+ endif()
+
+endmacro()
+
+###############################################################################
+###############################################################################
+# Setup variables' defaults
+###############################################################################
+###############################################################################
+
+# Allow the user to specify if the device code is supposed to be 32 or 64 bit.
+if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(CUDA_64_BIT_DEVICE_CODE_DEFAULT ON)
+else()
+ set(CUDA_64_BIT_DEVICE_CODE_DEFAULT OFF)
+endif()
+option(CUDA_64_BIT_DEVICE_CODE "Compile device code in 64 bit mode" ${CUDA_64_BIT_DEVICE_CODE_DEFAULT})
+
+# Attach the build rule to the source file in VS. This option
+option(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE "Attach the build rule to the CUDA source file. Enable only when the CUDA source file is added to at most one target." ON)
+
+# Prints out extra information about the cuda file during compilation
+option(CUDA_BUILD_CUBIN "Generate and parse .cubin files in Device mode." OFF)
+
+# Set whether we are using emulation or device mode.
+option(CUDA_BUILD_EMULATION "Build in Emulation mode" OFF)
+
+# Where to put the generated output.
+set(CUDA_GENERATED_OUTPUT_DIR "" CACHE PATH "Directory to put all the output files. If blank it will default to the CMAKE_CURRENT_BINARY_DIR")
+
+# Parse HOST_COMPILATION mode.
+option(CUDA_HOST_COMPILATION_CPP "Generated file extension" ON)
+
+# Extra user settable flags
+cmake_initialize_per_config_variable(CUDA_NVCC_FLAGS "Semi-colon delimit multiple arguments.")
+
+if(DEFINED ENV{CUDAHOSTCXX})
+ set(CUDA_HOST_COMPILER "$ENV{CUDAHOSTCXX}" CACHE FILEPATH "Host side compiler used by NVCC")
+elseif(CMAKE_GENERATOR MATCHES "Visual Studio")
+ set(_CUDA_MSVC_HOST_COMPILER "$(VCInstallDir)Tools/MSVC/$(VCToolsVersion)/bin/Host$(Platform)/$(PlatformTarget)")
+ if(MSVC_VERSION LESS 1910)
+ set(_CUDA_MSVC_HOST_COMPILER "$(VCInstallDir)bin")
+ endif()
+
+ set(CUDA_HOST_COMPILER "${_CUDA_MSVC_HOST_COMPILER}" CACHE FILEPATH "Host side compiler used by NVCC")
+
+else()
+ if(APPLE
+ AND "${CMAKE_C_COMPILER_ID}" MATCHES "Clang"
+ AND "${CMAKE_C_COMPILER}" MATCHES "/cc$")
+ # Using cc which is symlink to clang may let NVCC think it is GCC and issue
+ # unhandled -dumpspecs option to clang. Also in case neither
+ # CMAKE_C_COMPILER is defined (project does not use C language) nor
+ # CUDA_HOST_COMPILER is specified manually we should skip -ccbin and let
+ # nvcc use its own default C compiler.
+ # Only care about this on APPLE with clang to avoid
+ # following symlinks to things like ccache
+ if(DEFINED CMAKE_C_COMPILER AND NOT DEFINED CUDA_HOST_COMPILER)
+ get_filename_component(c_compiler_realpath "${CMAKE_C_COMPILER}" REALPATH)
+ # if the real path does not end up being clang then
+ # go back to using CMAKE_C_COMPILER
+ if(NOT "${c_compiler_realpath}" MATCHES "/clang$")
+ set(c_compiler_realpath "${CMAKE_C_COMPILER}")
+ endif()
+ else()
+ set(c_compiler_realpath "")
+ endif()
+ set(CUDA_HOST_COMPILER "${c_compiler_realpath}" CACHE FILEPATH "Host side compiler used by NVCC")
+ elseif(MSVC AND "${CMAKE_C_COMPILER}" MATCHES "clcache|sccache")
+ # NVCC does not think it will work if it is passed clcache.exe or sccache.exe
+ # as the host compiler, which means that builds with CC=cl.exe won't work.
+ # Best to just feed it whatever the actual cl.exe is as the host compiler.
+ set(CUDA_HOST_COMPILER "cl.exe" CACHE FILEPATH "Host side compiler used by NVCC")
+ else()
+ set(CUDA_HOST_COMPILER "${CMAKE_C_COMPILER}"
+ CACHE FILEPATH "Host side compiler used by NVCC")
+ endif()
+endif()
+
+# Propagate the host flags to the host compiler via -Xcompiler
+option(CUDA_PROPAGATE_HOST_FLAGS "Propagate C/CXX_FLAGS and friends to the host compiler via -Xcompile" ON)
+
+# Enable CUDA_SEPARABLE_COMPILATION
+option(CUDA_SEPARABLE_COMPILATION "Compile CUDA objects with separable compilation enabled. Requires CUDA 5.0+" OFF)
+
+# Specifies whether the commands used when compiling the .cu file will be printed out.
+option(CUDA_VERBOSE_BUILD "Print out the commands run while compiling the CUDA source file. With the Makefile generator this defaults to VERBOSE variable specified on the command line, but can be forced on with this option." OFF)
+
+mark_as_advanced(
+ CUDA_64_BIT_DEVICE_CODE
+ CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE
+ CUDA_GENERATED_OUTPUT_DIR
+ CUDA_HOST_COMPILATION_CPP
+ CUDA_NVCC_FLAGS
+ CUDA_PROPAGATE_HOST_FLAGS
+ CUDA_BUILD_CUBIN
+ CUDA_BUILD_EMULATION
+ CUDA_VERBOSE_BUILD
+ CUDA_SEPARABLE_COMPILATION
+ )
+
+# Single config generators like Makefiles or Ninja don't usually have
+# CMAKE_CONFIGURATION_TYPES defined (but note that it can be defined if set by
+# projects or developers). Even CMAKE_BUILD_TYPE might not be defined for
+# single config generators (and should not be defined for multi-config
+# generators). To ensure we get a complete superset of all possible
+# configurations, we combine CMAKE_CONFIGURATION_TYPES, CMAKE_BUILD_TYPE and
+# all of the standard configurations, then weed out duplicates with
+# list(REMOVE_DUPLICATES). Looping over the unique set then ensures we have
+# each configuration-specific set of nvcc flags defined and marked as advanced.
+set(CUDA_configuration_types ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE} Debug MinSizeRel Release RelWithDebInfo)
+list(REMOVE_DUPLICATES CUDA_configuration_types)
+
+###############################################################################
+###############################################################################
+# Locate CUDA, Set Build Type, etc.
+###############################################################################
+###############################################################################
+
+macro(cuda_unset_include_and_libraries)
+ unset(CUDA_TOOLKIT_INCLUDE CACHE)
+ unset(CUDA_CUDART_LIBRARY CACHE)
+ unset(CUDA_CUDA_LIBRARY CACHE)
+ # Make sure you run this before you unset CUDA_VERSION.
+ if(CUDA_VERSION VERSION_EQUAL "3.0")
+ # This only existed in the 3.0 version of the CUDA toolkit
+ unset(CUDA_CUDARTEMU_LIBRARY CACHE)
+ endif()
+ unset(CUDA_cudart_static_LIBRARY CACHE)
+ unset(CUDA_cudadevrt_LIBRARY CACHE)
+ unset(CUDA_cublas_LIBRARY CACHE)
+ unset(CUDA_cublas_device_LIBRARY CACHE)
+ unset(CUDA_cublasemu_LIBRARY CACHE)
+ unset(CUDA_cufft_LIBRARY CACHE)
+ unset(CUDA_cufftemu_LIBRARY CACHE)
+ unset(CUDA_cupti_LIBRARY CACHE)
+ unset(CUDA_curand_LIBRARY CACHE)
+ unset(CUDA_cusolver_LIBRARY CACHE)
+ unset(CUDA_cusparse_LIBRARY CACHE)
+ unset(CUDA_npp_LIBRARY CACHE)
+ unset(CUDA_nppc_LIBRARY CACHE)
+ unset(CUDA_nppi_LIBRARY CACHE)
+ unset(CUDA_npps_LIBRARY CACHE)
+ unset(CUDA_nvcuvenc_LIBRARY CACHE)
+ unset(CUDA_nvcuvid_LIBRARY CACHE)
+ unset(CUDA_nvToolsExt_LIBRARY CACHE)
+ unset(CUDA_OpenCL_LIBRARY CACHE)
+ unset(CUDA_GPU_DETECT_OUTPUT CACHE)
+endmacro()
+
+# Check to see if the CUDA_TOOLKIT_ROOT_DIR and CUDA_SDK_ROOT_DIR have changed,
+# if they have then clear the cache variables, so that will be detected again.
+if(NOT "${CUDA_TOOLKIT_ROOT_DIR}" STREQUAL "${CUDA_TOOLKIT_ROOT_DIR_INTERNAL}")
+ unset(CUDA_TOOLKIT_TARGET_DIR CACHE)
+ unset(CUDA_NVCC_EXECUTABLE CACHE)
+ cuda_unset_include_and_libraries()
+ unset(CUDA_VERSION CACHE)
+endif()
+
+if(NOT "${CUDA_TOOLKIT_TARGET_DIR}" STREQUAL "${CUDA_TOOLKIT_TARGET_DIR_INTERNAL}")
+ cuda_unset_include_and_libraries()
+endif()
+
+#
+# End of unset()
+#
+
+#
+# Start looking for things
+#
+
+# Search for the cuda distribution.
+if(NOT CUDA_TOOLKIT_ROOT_DIR AND NOT CMAKE_CROSSCOMPILING)
+ # Search in the CUDA_BIN_PATH first.
+ find_program(CUDA_TOOLKIT_ROOT_DIR_NVCC
+ NAMES nvcc nvcc.exe
+ PATHS
+ ENV CUDA_TOOLKIT_ROOT
+ ENV CUDA_PATH
+ ENV CUDA_BIN_PATH
+ PATH_SUFFIXES bin bin64
+ DOC "Toolkit location."
+ NO_DEFAULT_PATH
+ )
+
+ # Now search default paths
+ find_program(CUDA_TOOLKIT_ROOT_DIR_NVCC
+ NAMES nvcc nvcc.exe
+ PATHS /opt/cuda/bin
+ PATH_SUFFIXES cuda/bin
+ DOC "Toolkit location."
+ )
+
+ if (CUDA_TOOLKIT_ROOT_DIR_NVCC)
+ get_filename_component(CUDA_TOOLKIT_ROOT_DIR_NVCC_PAR "${CUDA_TOOLKIT_ROOT_DIR_NVCC}" DIRECTORY)
+ get_filename_component(CUDA_TOOLKIT_ROOT_DIR "${CUDA_TOOLKIT_ROOT_DIR_NVCC_PAR}" DIRECTORY CACHE)
+ string(REGEX REPLACE "[/\\\\]?bin[64]*[/\\\\]?$" "" CUDA_TOOLKIT_ROOT_DIR ${CUDA_TOOLKIT_ROOT_DIR})
+ # We need to force this back into the cache.
+ set(CUDA_TOOLKIT_ROOT_DIR ${CUDA_TOOLKIT_ROOT_DIR} CACHE PATH "Toolkit location." FORCE)
+ set(CUDA_TOOLKIT_TARGET_DIR ${CUDA_TOOLKIT_ROOT_DIR})
+ endif()
+ unset(CUDA_TOOLKIT_ROOT_DIR_NVCC CACHE)
+
+ if (NOT EXISTS ${CUDA_TOOLKIT_ROOT_DIR})
+ if(CUDA_FIND_REQUIRED)
+ message(FATAL_ERROR "Specify CUDA_TOOLKIT_ROOT_DIR")
+ elseif(NOT CUDA_FIND_QUIETLY)
+ message("CUDA_TOOLKIT_ROOT_DIR not found or specified")
+ endif()
+ endif ()
+endif ()
+
+if(CMAKE_CROSSCOMPILING)
+ SET (CUDA_TOOLKIT_ROOT $ENV{CUDA_TOOLKIT_ROOT})
+ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a")
+ # Support for NVPACK
+ set (CUDA_TOOLKIT_TARGET_NAME "armv7-linux-androideabi")
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
+ # Support for arm cross compilation
+ set(CUDA_TOOLKIT_TARGET_NAME "armv7-linux-gnueabihf")
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
+ # Support for aarch64 cross compilation
+ if (ANDROID_ARCH_NAME STREQUAL "arm64")
+ set(CUDA_TOOLKIT_TARGET_NAME "aarch64-linux-androideabi")
+ else()
+ set(CUDA_TOOLKIT_TARGET_NAME "aarch64-linux")
+ endif (ANDROID_ARCH_NAME STREQUAL "arm64")
+ endif()
+
+ if (EXISTS "${CUDA_TOOLKIT_ROOT}/targets/${CUDA_TOOLKIT_TARGET_NAME}")
+ set(CUDA_TOOLKIT_TARGET_DIR "${CUDA_TOOLKIT_ROOT}/targets/${CUDA_TOOLKIT_TARGET_NAME}" CACHE PATH "CUDA Toolkit target location.")
+ SET (CUDA_TOOLKIT_ROOT_DIR ${CUDA_TOOLKIT_ROOT})
+ mark_as_advanced(CUDA_TOOLKIT_TARGET_DIR)
+ endif()
+
+ # add known CUDA targetr root path to the set of directories we search for programs, libraries and headers
+ set( CMAKE_FIND_ROOT_PATH "${CUDA_TOOLKIT_TARGET_DIR};${CMAKE_FIND_ROOT_PATH}")
+ macro( cuda_find_host_program )
+ if (COMMAND find_host_program)
+ find_host_program( ${ARGN} )
+ else()
+ find_program( ${ARGN} )
+ endif()
+ endmacro()
+else()
+ # for non-cross-compile, find_host_program == find_program and CUDA_TOOLKIT_TARGET_DIR == CUDA_TOOLKIT_ROOT_DIR
+ macro( cuda_find_host_program )
+ find_program( ${ARGN} )
+ endmacro()
+ SET (CUDA_TOOLKIT_TARGET_DIR ${CUDA_TOOLKIT_ROOT_DIR})
+endif()
+
+
+# CUDA_NVCC_EXECUTABLE
+if(DEFINED ENV{CUDA_NVCC_EXECUTABLE})
+ set(CUDA_NVCC_EXECUTABLE "$ENV{CUDA_NVCC_EXECUTABLE}" CACHE FILEPATH "The CUDA compiler")
+else()
+ cuda_find_host_program(CUDA_NVCC_EXECUTABLE
+ NAMES nvcc
+ PATHS "${CUDA_TOOLKIT_ROOT_DIR}"
+ ENV CUDA_PATH
+ ENV CUDA_BIN_PATH
+ PATH_SUFFIXES bin bin64
+ NO_DEFAULT_PATH
+ )
+ # Search default search paths, after we search our own set of paths.
+ cuda_find_host_program(CUDA_NVCC_EXECUTABLE nvcc)
+endif()
+mark_as_advanced(CUDA_NVCC_EXECUTABLE)
+
+if(CUDA_NVCC_EXECUTABLE AND NOT CUDA_VERSION)
+ # Compute the version.
+ execute_process (COMMAND ${CUDA_NVCC_EXECUTABLE} "--version" OUTPUT_VARIABLE NVCC_OUT)
+ string(REGEX REPLACE ".*release ([0-9]+)\\.([0-9]+).*" "\\1" CUDA_VERSION_MAJOR ${NVCC_OUT})
+ string(REGEX REPLACE ".*release ([0-9]+)\\.([0-9]+).*" "\\2" CUDA_VERSION_MINOR ${NVCC_OUT})
+ set(CUDA_VERSION "${CUDA_VERSION_MAJOR}.${CUDA_VERSION_MINOR}" CACHE STRING "Version of CUDA as computed from nvcc.")
+ mark_as_advanced(CUDA_VERSION)
+else()
+ # Need to set these based off of the cached value
+ string(REGEX REPLACE "([0-9]+)\\.([0-9]+).*" "\\1" CUDA_VERSION_MAJOR "${CUDA_VERSION}")
+ string(REGEX REPLACE "([0-9]+)\\.([0-9]+).*" "\\2" CUDA_VERSION_MINOR "${CUDA_VERSION}")
+endif()
+
+
+# Always set this convenience variable
+set(CUDA_VERSION_STRING "${CUDA_VERSION}")
+
+# CUDA_TOOLKIT_INCLUDE
+find_path(CUDA_TOOLKIT_INCLUDE
+ device_functions.h # Header included in toolkit
+ PATHS ${CUDA_TOOLKIT_TARGET_DIR}
+ ENV CUDA_PATH
+ ENV CUDA_INC_PATH
+ PATH_SUFFIXES include
+ NO_DEFAULT_PATH
+ )
+# Search default search paths, after we search our own set of paths.
+find_path(CUDA_TOOLKIT_INCLUDE device_functions.h)
+mark_as_advanced(CUDA_TOOLKIT_INCLUDE)
+
+if (CUDA_VERSION VERSION_GREATER "7.0" OR EXISTS "${CUDA_TOOLKIT_INCLUDE}/cuda_fp16.h")
+ set(CUDA_HAS_FP16 TRUE)
+else()
+ set(CUDA_HAS_FP16 FALSE)
+endif()
+
+# Set the user list of include dir to nothing to initialize it.
+set (CUDA_NVCC_INCLUDE_DIRS_USER "")
+set (CUDA_INCLUDE_DIRS ${CUDA_TOOLKIT_INCLUDE})
+
+macro(cuda_find_library_local_first_with_path_ext _var _names _doc _path_ext )
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ # CUDA 3.2+ on Windows moved the library directories, so we need the new
+ # and old paths.
+ set(_cuda_64bit_lib_dir "${_path_ext}lib/x64" "${_path_ext}lib64" "${_path_ext}libx64" )
+ endif()
+ # CUDA 3.2+ on Windows moved the library directories, so we need to new
+ # (lib/Win32) and the old path (lib).
+ find_library(${_var}
+ NAMES ${_names}
+ PATHS "${CUDA_TOOLKIT_TARGET_DIR}"
+ ENV CUDA_PATH
+ ENV CUDA_LIB_PATH
+ PATH_SUFFIXES ${_cuda_64bit_lib_dir} "${_path_ext}lib/Win32" "${_path_ext}lib" "${_path_ext}libWin32"
+ DOC ${_doc}
+ NO_DEFAULT_PATH
+ )
+ if (NOT CMAKE_CROSSCOMPILING)
+ # Search default search paths, after we search our own set of paths.
+ find_library(${_var}
+ NAMES ${_names}
+ PATHS "/usr/lib/nvidia-current"
+ DOC ${_doc}
+ )
+ endif()
+endmacro()
+
+macro(cuda_find_library_local_first _var _names _doc)
+ cuda_find_library_local_first_with_path_ext( "${_var}" "${_names}" "${_doc}" "" )
+endmacro()
+
+macro(find_library_local_first _var _names _doc )
+ cuda_find_library_local_first( "${_var}" "${_names}" "${_doc}" "" )
+endmacro()
+
+
+# CUDA_LIBRARIES
+cuda_find_library_local_first(CUDA_CUDART_LIBRARY cudart "\"cudart\" library")
+if(CUDA_VERSION VERSION_EQUAL "3.0")
+ # The cudartemu library only existed for the 3.0 version of CUDA.
+ cuda_find_library_local_first(CUDA_CUDARTEMU_LIBRARY cudartemu "\"cudartemu\" library")
+ mark_as_advanced(
+ CUDA_CUDARTEMU_LIBRARY
+ )
+endif()
+
+if(NOT CUDA_VERSION VERSION_LESS "5.5")
+ cuda_find_library_local_first(CUDA_cudart_static_LIBRARY cudart_static "static CUDA runtime library")
+ mark_as_advanced(CUDA_cudart_static_LIBRARY)
+endif()
+
+
+if(CUDA_cudart_static_LIBRARY)
+ # If static cudart available, use it by default, but provide a user-visible option to disable it.
+ option(CUDA_USE_STATIC_CUDA_RUNTIME "Use the static version of the CUDA runtime library if available" ON)
+else()
+ # If not available, silently disable the option.
+ set(CUDA_USE_STATIC_CUDA_RUNTIME OFF CACHE INTERNAL "")
+endif()
+
+if(CUDA_USE_STATIC_CUDA_RUNTIME)
+ set(CUDA_CUDART_LIBRARY_VAR CUDA_cudart_static_LIBRARY)
+else()
+ set(CUDA_CUDART_LIBRARY_VAR CUDA_CUDART_LIBRARY)
+endif()
+
+if(NOT CUDA_VERSION VERSION_LESS "5.0")
+ cuda_find_library_local_first(CUDA_cudadevrt_LIBRARY cudadevrt "\"cudadevrt\" library")
+ mark_as_advanced(CUDA_cudadevrt_LIBRARY)
+endif()
+
+if(CUDA_USE_STATIC_CUDA_RUNTIME)
+ if(UNIX)
+ # Check for the dependent libraries.
+
+ # Many of the FindXYZ CMake comes with makes use of try_compile with int main(){return 0;}
+ # as the source file. Unfortunately this causes a warning with -Wstrict-prototypes and
+ # -Werror causes the try_compile to fail. We will just temporarily disable other flags
+ # when doing the find_package command here.
+ set(_cuda_cmake_c_flags ${CMAKE_C_FLAGS})
+ set(CMAKE_C_FLAGS "-fPIC")
+ find_package(Threads REQUIRED)
+ set(CMAKE_C_FLAGS ${_cuda_cmake_c_flags})
+
+ if(NOT APPLE)
+ #On Linux, you must link against librt when using the static cuda runtime.
+ find_library(CUDA_rt_LIBRARY rt)
+ if (NOT CUDA_rt_LIBRARY)
+ message(WARNING "Expecting to find librt for libcudart_static, but didn't find it.")
+ endif()
+ endif()
+ endif()
+endif()
+
+# CUPTI library showed up in cuda toolkit 4.0
+if(NOT CUDA_VERSION VERSION_LESS "4.0")
+ cuda_find_library_local_first_with_path_ext(CUDA_cupti_LIBRARY cupti "\"cupti\" library" "extras/CUPTI/")
+ mark_as_advanced(CUDA_cupti_LIBRARY)
+endif()
+
+# Set the CUDA_LIBRARIES variable. This is the set of stuff to link against if you are
+# using the CUDA runtime. For the dynamic version of the runtime, most of the
+# dependencies are brough in, but for the static version there are additional libraries
+# and linker commands needed.
+# Initialize to empty
+set(CUDA_LIBRARIES)
+
+# If we are using emulation mode and we found the cudartemu library then use
+# that one instead of cudart.
+if(CUDA_BUILD_EMULATION AND CUDA_CUDARTEMU_LIBRARY)
+ list(APPEND CUDA_LIBRARIES ${CUDA_CUDARTEMU_LIBRARY})
+elseif(CUDA_USE_STATIC_CUDA_RUNTIME AND CUDA_cudart_static_LIBRARY)
+ list(APPEND CUDA_LIBRARIES ${CUDA_cudart_static_LIBRARY})
+ if (TARGET Threads::Threads)
+ list(APPEND CUDA_LIBRARIES Threads::Threads)
+ endif()
+ list(APPEND CUDA_LIBRARIES ${CMAKE_DL_LIBS})
+ if (CUDA_rt_LIBRARY)
+ list(APPEND CUDA_LIBRARIES ${CUDA_rt_LIBRARY})
+ endif()
+ if(APPLE)
+ # We need to add the default path to the driver (libcuda.dylib) as an rpath, so that
+ # the static cuda runtime can find it at runtime.
+ list(APPEND CUDA_LIBRARIES -Wl,-rpath,/usr/local/cuda/lib)
+ endif()
+else()
+ list(APPEND CUDA_LIBRARIES ${CUDA_CUDART_LIBRARY})
+endif()
+
+# 1.1 toolkit on linux doesn't appear to have a separate library on
+# some platforms.
+cuda_find_library_local_first(CUDA_CUDA_LIBRARY cuda "\"cuda\" library (older versions only).")
+
+mark_as_advanced(
+ CUDA_CUDA_LIBRARY
+ CUDA_CUDART_LIBRARY
+ )
+
+#######################
+# Look for some of the toolkit helper libraries
+macro(FIND_CUDA_HELPER_LIBS _name)
+ cuda_find_library_local_first(CUDA_${_name}_LIBRARY ${_name} "\"${_name}\" library")
+ mark_as_advanced(CUDA_${_name}_LIBRARY)
+endmacro()
+
+#######################
+# Disable emulation for v3.1 onward
+if(CUDA_VERSION VERSION_GREATER "3.0")
+ if(CUDA_BUILD_EMULATION)
+ message(FATAL_ERROR "CUDA_BUILD_EMULATION is not supported in version 3.1 and onwards. You must disable it to proceed. You have version ${CUDA_VERSION}.")
+ endif()
+endif()
+
+# Search for additional CUDA toolkit libraries.
+if(CUDA_VERSION VERSION_LESS "3.1")
+ # Emulation libraries aren't available in version 3.1 onward.
+ find_cuda_helper_libs(cufftemu)
+ find_cuda_helper_libs(cublasemu)
+endif()
+find_cuda_helper_libs(cufft)
+find_cuda_helper_libs(cublas)
+if(NOT CUDA_VERSION VERSION_LESS "3.2")
+ # cusparse showed up in version 3.2
+ find_cuda_helper_libs(cusparse)
+ find_cuda_helper_libs(curand)
+ if (WIN32)
+ find_cuda_helper_libs(nvcuvenc)
+ find_cuda_helper_libs(nvcuvid)
+ endif()
+endif()
+if(CUDA_VERSION VERSION_GREATER "5.0" AND CUDA_VERSION VERSION_LESS "9.2")
+ # In CUDA 9.2 cublas_device was deprecated
+ find_cuda_helper_libs(cublas_device)
+endif()
+
+if(NOT CUDA_VERSION VERSION_LESS "5.0")
+ find_cuda_helper_libs(nvToolsExt)
+ find_cuda_helper_libs(OpenCL)
+endif()
+
+if(NOT CUDA_VERSION VERSION_LESS "9.0")
+ # In CUDA 9.0 NPP was nppi was removed
+ find_cuda_helper_libs(nppc)
+ find_cuda_helper_libs(nppial)
+ find_cuda_helper_libs(nppicc)
+ find_cuda_helper_libs(nppicom)
+ find_cuda_helper_libs(nppidei)
+ find_cuda_helper_libs(nppif)
+ find_cuda_helper_libs(nppig)
+ find_cuda_helper_libs(nppim)
+ find_cuda_helper_libs(nppist)
+ find_cuda_helper_libs(nppisu)
+ find_cuda_helper_libs(nppitc)
+ find_cuda_helper_libs(npps)
+ set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppial_LIBRARY};${CUDA_nppicc_LIBRARY};${CUDA_nppicom_LIBRARY};${CUDA_nppidei_LIBRARY};${CUDA_nppif_LIBRARY};${CUDA_nppig_LIBRARY};${CUDA_nppim_LIBRARY};${CUDA_nppist_LIBRARY};${CUDA_nppisu_LIBRARY};${CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}")
+elseif(CUDA_VERSION VERSION_GREATER "5.0")
+ # In CUDA 5.5 NPP was split into 3 separate libraries.
+ find_cuda_helper_libs(nppc)
+ find_cuda_helper_libs(nppi)
+ find_cuda_helper_libs(npps)
+ set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppi_LIBRARY};${CUDA_npps_LIBRARY}")
+elseif(NOT CUDA_VERSION VERSION_LESS "4.0")
+ find_cuda_helper_libs(npp)
+endif()
+if(NOT CUDA_VERSION VERSION_LESS "7.0")
+ # cusolver showed up in version 7.0
+ find_cuda_helper_libs(cusolver)
+endif()
+
+if (CUDA_BUILD_EMULATION)
+ set(CUDA_CUFFT_LIBRARIES ${CUDA_cufftemu_LIBRARY})
+ set(CUDA_CUBLAS_LIBRARIES ${CUDA_cublasemu_LIBRARY})
+else()
+ set(CUDA_CUFFT_LIBRARIES ${CUDA_cufft_LIBRARY})
+ set(CUDA_CUBLAS_LIBRARIES ${CUDA_cublas_LIBRARY} ${CUDA_cublas_device_LIBRARY})
+endif()
+
+########################
+# Look for the SDK stuff. As of CUDA 3.0 NVSDKCUDA_ROOT has been replaced with
+# NVSDKCOMPUTE_ROOT with the old CUDA C contents moved into the C subdirectory
+find_path(CUDA_SDK_ROOT_DIR common/inc/cutil.h
+ HINTS
+ "$ENV{NVSDKCOMPUTE_ROOT}/C"
+ ENV NVSDKCUDA_ROOT
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\NVIDIA Corporation\\Installed Products\\NVIDIA SDK 10\\Compute;InstallDir]"
+ PATHS
+ "/Developer/GPU\ Computing/C"
+ )
+
+# Keep the CUDA_SDK_ROOT_DIR first in order to be able to override the
+# environment variables.
+set(CUDA_SDK_SEARCH_PATH
+ "${CUDA_SDK_ROOT_DIR}"
+ "${CUDA_TOOLKIT_ROOT_DIR}/local/NVSDK0.2"
+ "${CUDA_TOOLKIT_ROOT_DIR}/NVSDK0.2"
+ "${CUDA_TOOLKIT_ROOT_DIR}/NV_CUDA_SDK"
+ "$ENV{HOME}/NVIDIA_CUDA_SDK"
+ "$ENV{HOME}/NVIDIA_CUDA_SDK_MACOSX"
+ "/Developer/CUDA"
+ )
+
+# Example of how to find an include file from the CUDA_SDK_ROOT_DIR
+
+# find_path(CUDA_CUT_INCLUDE_DIR
+# cutil.h
+# PATHS ${CUDA_SDK_SEARCH_PATH}
+# PATH_SUFFIXES "common/inc"
+# DOC "Location of cutil.h"
+# NO_DEFAULT_PATH
+# )
+# # Now search system paths
+# find_path(CUDA_CUT_INCLUDE_DIR cutil.h DOC "Location of cutil.h")
+
+# mark_as_advanced(CUDA_CUT_INCLUDE_DIR)
+
+
+# Example of how to find a library in the CUDA_SDK_ROOT_DIR
+
+# # cutil library is called cutil64 for 64 bit builds on windows. We don't want
+# # to get these confused, so we are setting the name based on the word size of
+# # the build.
+
+# if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+# set(cuda_cutil_name cutil64)
+# else()
+# set(cuda_cutil_name cutil32)
+# endif()
+
+# find_library(CUDA_CUT_LIBRARY
+# NAMES cutil ${cuda_cutil_name}
+# PATHS ${CUDA_SDK_SEARCH_PATH}
+# # The new version of the sdk shows up in common/lib, but the old one is in lib
+# PATH_SUFFIXES "common/lib" "lib"
+# DOC "Location of cutil library"
+# NO_DEFAULT_PATH
+# )
+# # Now search system paths
+# find_library(CUDA_CUT_LIBRARY NAMES cutil ${cuda_cutil_name} DOC "Location of cutil library")
+# mark_as_advanced(CUDA_CUT_LIBRARY)
+# set(CUDA_CUT_LIBRARIES ${CUDA_CUT_LIBRARY})
+
+
+
+#############################
+# Check for required components
+set(CUDA_FOUND TRUE)
+
+set(CUDA_TOOLKIT_ROOT_DIR_INTERNAL "${CUDA_TOOLKIT_ROOT_DIR}" CACHE INTERNAL
+ "This is the value of the last time CUDA_TOOLKIT_ROOT_DIR was set successfully." FORCE)
+set(CUDA_TOOLKIT_TARGET_DIR_INTERNAL "${CUDA_TOOLKIT_TARGET_DIR}" CACHE INTERNAL
+ "This is the value of the last time CUDA_TOOLKIT_TARGET_DIR was set successfully." FORCE)
+set(CUDA_SDK_ROOT_DIR_INTERNAL "${CUDA_SDK_ROOT_DIR}" CACHE INTERNAL
+ "This is the value of the last time CUDA_SDK_ROOT_DIR was set successfully." FORCE)
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+
+find_package_handle_standard_args(CUDA
+ REQUIRED_VARS
+ CUDA_TOOLKIT_ROOT_DIR
+ CUDA_NVCC_EXECUTABLE
+ CUDA_INCLUDE_DIRS
+ ${CUDA_CUDART_LIBRARY_VAR}
+ VERSION_VAR
+ CUDA_VERSION
+ )
+
+
+
+###############################################################################
+###############################################################################
+# Macros
+###############################################################################
+###############################################################################
+
+###############################################################################
+# Add include directories to pass to the nvcc command.
+macro(CUDA_INCLUDE_DIRECTORIES)
+ foreach(dir ${ARGN})
+ list(APPEND CUDA_NVCC_INCLUDE_DIRS_USER ${dir})
+ endforeach()
+endmacro()
+
+
+##############################################################################
+cuda_find_helper_file(parse_cubin cmake)
+cuda_find_helper_file(make2cmake cmake)
+cuda_find_helper_file(run_nvcc cmake)
+include("${CMAKE_CURRENT_LIST_DIR}/FindCUDA/select_compute_arch.cmake")
+
+##############################################################################
+# Separate the OPTIONS out from the sources
+#
+macro(CUDA_GET_SOURCES_AND_OPTIONS _sources _cmake_options _options)
+ set( ${_sources} )
+ set( ${_cmake_options} )
+ set( ${_options} )
+ set( _found_options FALSE )
+ foreach(arg ${ARGN})
+ if("x${arg}" STREQUAL "xOPTIONS")
+ set( _found_options TRUE )
+ elseif(
+ "x${arg}" STREQUAL "xWIN32" OR
+ "x${arg}" STREQUAL "xMACOSX_BUNDLE" OR
+ "x${arg}" STREQUAL "xEXCLUDE_FROM_ALL" OR
+ "x${arg}" STREQUAL "xSTATIC" OR
+ "x${arg}" STREQUAL "xSHARED" OR
+ "x${arg}" STREQUAL "xMODULE"
+ )
+ list(APPEND ${_cmake_options} ${arg})
+ else()
+ if ( _found_options )
+ list(APPEND ${_options} ${arg})
+ else()
+ # Assume this is a file
+ list(APPEND ${_sources} ${arg})
+ endif()
+ endif()
+ endforeach()
+endmacro()
+
+##############################################################################
+# Parse the OPTIONS from ARGN and set the variables prefixed by _option_prefix
+#
+macro(CUDA_PARSE_NVCC_OPTIONS _option_prefix)
+ set( _found_config )
+ foreach(arg ${ARGN})
+ # Determine if we are dealing with a perconfiguration flag
+ foreach(config ${CUDA_configuration_types})
+ string(TOUPPER ${config} config_upper)
+ if (arg STREQUAL "${config_upper}")
+ set( _found_config _${arg})
+ # Set arg to nothing to keep it from being processed further
+ set( arg )
+ endif()
+ endforeach()
+
+ if ( arg )
+ list(APPEND ${_option_prefix}${_found_config} "${arg}")
+ endif()
+ endforeach()
+endmacro()
+
+##############################################################################
+# Helper to add the include directory for CUDA only once
+function(CUDA_ADD_CUDA_INCLUDE_ONCE)
+ get_directory_property(_include_directories INCLUDE_DIRECTORIES)
+ set(_add TRUE)
+ if(_include_directories)
+ foreach(dir ${_include_directories})
+ if("${dir}" STREQUAL "${CUDA_INCLUDE_DIRS}")
+ set(_add FALSE)
+ endif()
+ endforeach()
+ endif()
+ if(_add)
+ include_directories(${CUDA_INCLUDE_DIRS})
+ endif()
+endfunction()
+
+function(CUDA_BUILD_SHARED_LIBRARY shared_flag)
+ set(cmake_args ${ARGN})
+ # If SHARED, MODULE, or STATIC aren't already in the list of arguments, then
+ # add SHARED or STATIC based on the value of BUILD_SHARED_LIBS.
+ list(FIND cmake_args SHARED _cuda_found_SHARED)
+ list(FIND cmake_args MODULE _cuda_found_MODULE)
+ list(FIND cmake_args STATIC _cuda_found_STATIC)
+ if( _cuda_found_SHARED GREATER -1 OR
+ _cuda_found_MODULE GREATER -1 OR
+ _cuda_found_STATIC GREATER -1)
+ set(_cuda_build_shared_libs)
+ else()
+ if (BUILD_SHARED_LIBS)
+ set(_cuda_build_shared_libs SHARED)
+ else()
+ set(_cuda_build_shared_libs STATIC)
+ endif()
+ endif()
+ set(${shared_flag} ${_cuda_build_shared_libs} PARENT_SCOPE)
+endfunction()
+
+##############################################################################
+# Helper to avoid clashes of files with the same basename but different paths.
+# This doesn't attempt to do exactly what CMake internals do, which is to only
+# add this path when there is a conflict, since by the time a second collision
+# in names is detected it's already too late to fix the first one. For
+# consistency sake the relative path will be added to all files.
+function(CUDA_COMPUTE_BUILD_PATH path build_path)
+ #message("CUDA_COMPUTE_BUILD_PATH([${path}] ${build_path})")
+ # Only deal with CMake style paths from here on out
+ file(TO_CMAKE_PATH "${path}" bpath)
+ if (IS_ABSOLUTE "${bpath}")
+ # Absolute paths are generally unnessary, especially if something like
+ # file(GLOB_RECURSE) is used to pick up the files.
+
+ string(FIND "${bpath}" "${CMAKE_CURRENT_BINARY_DIR}" _binary_dir_pos)
+ if (_binary_dir_pos EQUAL 0)
+ file(RELATIVE_PATH bpath "${CMAKE_CURRENT_BINARY_DIR}" "${bpath}")
+ else()
+ file(RELATIVE_PATH bpath "${CMAKE_CURRENT_SOURCE_DIR}" "${bpath}")
+ endif()
+ endif()
+
+ # This recipe is from cmLocalGenerator::CreateSafeUniqueObjectFileName in the
+ # CMake source.
+
+ # Remove leading /
+ string(REGEX REPLACE "^[/]+" "" bpath "${bpath}")
+ # Avoid absolute paths by removing ':'
+ string(REPLACE ":" "_" bpath "${bpath}")
+ # Avoid relative paths that go up the tree
+ string(REPLACE "../" "__/" bpath "${bpath}")
+ # Avoid spaces
+ string(REPLACE " " "_" bpath "${bpath}")
+
+ # Strip off the filename. I wait until here to do it, since removin the
+ # basename can make a path that looked like path/../basename turn into
+ # path/.. (notice the trailing slash).
+ get_filename_component(bpath "${bpath}" PATH)
+
+ set(${build_path} "${bpath}" PARENT_SCOPE)
+ #message("${build_path} = ${bpath}")
+endfunction()
+
+##############################################################################
+# This helper macro populates the following variables and setups up custom
+# commands and targets to invoke the nvcc compiler to generate C or PTX source
+# dependent upon the format parameter. The compiler is invoked once with -M
+# to generate a dependency file and a second time with -cuda or -ptx to generate
+# a .cpp or .ptx file.
+# INPUT:
+# cuda_target - Target name
+# format - PTX, CUBIN, FATBIN or OBJ
+# FILE1 .. FILEN - The remaining arguments are the sources to be wrapped.
+# OPTIONS - Extra options to NVCC
+# OUTPUT:
+# generated_files - List of generated files
+##############################################################################
+##############################################################################
+
+macro(CUDA_WRAP_SRCS cuda_target format generated_files)
+
+ # Put optional arguments in list.
+ set(_argn_list "${ARGN}")
+ # If one of the given optional arguments is "PHONY", make a note of it, then
+ # remove it from the list.
+ list(FIND _argn_list "PHONY" _phony_idx)
+ if("${_phony_idx}" GREATER "-1")
+ set(_target_is_phony true)
+ list(REMOVE_AT _argn_list ${_phony_idx})
+ else()
+ set(_target_is_phony false)
+ endif()
+
+ # If CMake doesn't support separable compilation, complain
+ if(CUDA_SEPARABLE_COMPILATION AND CMAKE_VERSION VERSION_LESS "2.8.10.1")
+ message(SEND_ERROR "CUDA_SEPARABLE_COMPILATION isn't supported for CMake versions less than 2.8.10.1")
+ endif()
+
+ # Set up all the command line flags here, so that they can be overridden on a per target basis.
+
+ set(nvcc_flags "")
+
+ # Emulation if the card isn't present.
+ if (CUDA_BUILD_EMULATION)
+ # Emulation.
+ set(nvcc_flags ${nvcc_flags} --device-emulation -D_DEVICEEMU -g)
+ else()
+ # Device mode. No flags necessary.
+ endif()
+
+ if(CUDA_HOST_COMPILATION_CPP)
+ set(CUDA_C_OR_CXX CXX)
+ else()
+ if(CUDA_VERSION VERSION_LESS "3.0")
+ set(nvcc_flags ${nvcc_flags} --host-compilation C)
+ else()
+ message(WARNING "--host-compilation flag is deprecated in CUDA version >= 3.0. Removing --host-compilation C flag" )
+ endif()
+ set(CUDA_C_OR_CXX C)
+ endif()
+
+ set(generated_extension ${CMAKE_${CUDA_C_OR_CXX}_OUTPUT_EXTENSION})
+
+ if(CUDA_64_BIT_DEVICE_CODE)
+ set(nvcc_flags ${nvcc_flags} -m64)
+ else()
+ set(nvcc_flags ${nvcc_flags} -m32)
+ endif()
+
+ if(CUDA_TARGET_CPU_ARCH)
+ set(nvcc_flags ${nvcc_flags} "--target-cpu-architecture=${CUDA_TARGET_CPU_ARCH}")
+ endif()
+
+ # This needs to be passed in at this stage, because VS needs to fill out the
+ # various macros from within VS. Note that CCBIN is only used if
+ # -ccbin or --compiler-bindir isn't used and CUDA_HOST_COMPILER matches
+ # _CUDA_MSVC_HOST_COMPILER
+ if(CMAKE_GENERATOR MATCHES "Visual Studio")
+ set(ccbin_flags -D "\"CCBIN:PATH=${_CUDA_MSVC_HOST_COMPILER}\"" )
+ else()
+ set(ccbin_flags)
+ endif()
+
+ # Figure out which configure we will use and pass that in as an argument to
+ # the script. We need to defer the decision until compilation time, because
+ # for VS projects we won't know if we are making a debug or release build
+ # until build time.
+ if(CMAKE_GENERATOR MATCHES "Visual Studio")
+ set( CUDA_build_configuration "$(ConfigurationName)" )
+ else()
+ set( CUDA_build_configuration "${CMAKE_BUILD_TYPE}")
+ endif()
+
+ # Initialize our list of includes with the user ones followed by the CUDA system ones.
+ set(CUDA_NVCC_INCLUDE_DIRS ${CUDA_NVCC_INCLUDE_DIRS_USER} "${CUDA_INCLUDE_DIRS}")
+ if(_target_is_phony)
+ # If the passed in target name isn't a real target (i.e., this is from a call to one of the
+ # cuda_compile_* functions), need to query directory properties to get include directories
+ # and compile definitions.
+ get_directory_property(_dir_include_dirs INCLUDE_DIRECTORIES)
+ get_directory_property(_dir_compile_defs COMPILE_DEFINITIONS)
+
+ list(APPEND CUDA_NVCC_INCLUDE_DIRS "${_dir_include_dirs}")
+ set(CUDA_NVCC_COMPILE_DEFINITIONS "${_dir_compile_defs}")
+ else()
+ # Append the include directories for this target via generator expression, which is
+ # expanded by the FILE(GENERATE) call below. This generator expression captures all
+ # include dirs set by the user, whether via directory properties or target properties
+ list(APPEND CUDA_NVCC_INCLUDE_DIRS "$<TARGET_PROPERTY:${cuda_target},INCLUDE_DIRECTORIES>")
+
+ # Do the same thing with compile definitions
+ set(CUDA_NVCC_COMPILE_DEFINITIONS "$<TARGET_PROPERTY:${cuda_target},COMPILE_DEFINITIONS>")
+ endif()
+
+
+ # Reset these variables
+ set(CUDA_WRAP_OPTION_NVCC_FLAGS)
+ foreach(config ${CUDA_configuration_types})
+ string(TOUPPER ${config} config_upper)
+ set(CUDA_WRAP_OPTION_NVCC_FLAGS_${config_upper})
+ endforeach()
+
+ CUDA_GET_SOURCES_AND_OPTIONS(_cuda_wrap_sources _cuda_wrap_cmake_options _cuda_wrap_options ${_argn_list})
+ CUDA_PARSE_NVCC_OPTIONS(CUDA_WRAP_OPTION_NVCC_FLAGS ${_cuda_wrap_options})
+
+ # Figure out if we are building a shared library. BUILD_SHARED_LIBS is
+ # respected in CUDA_ADD_LIBRARY.
+ set(_cuda_build_shared_libs FALSE)
+ # SHARED, MODULE
+ list(FIND _cuda_wrap_cmake_options SHARED _cuda_found_SHARED)
+ list(FIND _cuda_wrap_cmake_options MODULE _cuda_found_MODULE)
+ if(_cuda_found_SHARED GREATER -1 OR _cuda_found_MODULE GREATER -1)
+ set(_cuda_build_shared_libs TRUE)
+ endif()
+ # STATIC
+ list(FIND _cuda_wrap_cmake_options STATIC _cuda_found_STATIC)
+ if(_cuda_found_STATIC GREATER -1)
+ set(_cuda_build_shared_libs FALSE)
+ endif()
+
+ # CUDA_HOST_FLAGS
+ if(_cuda_build_shared_libs)
+ # If we are setting up code for a shared library, then we need to add extra flags for
+ # compiling objects for shared libraries.
+ set(CUDA_HOST_SHARED_FLAGS ${CMAKE_SHARED_LIBRARY_${CUDA_C_OR_CXX}_FLAGS})
+ else()
+ set(CUDA_HOST_SHARED_FLAGS)
+ endif()
+ # Only add the CMAKE_{C,CXX}_FLAGS if we are propagating host flags. We
+ # always need to set the SHARED_FLAGS, though.
+ if(CUDA_PROPAGATE_HOST_FLAGS)
+ set(_cuda_host_flags "set(CMAKE_HOST_FLAGS ${CMAKE_${CUDA_C_OR_CXX}_FLAGS} ${CUDA_HOST_SHARED_FLAGS})")
+ else()
+ set(_cuda_host_flags "set(CMAKE_HOST_FLAGS ${CUDA_HOST_SHARED_FLAGS})")
+ endif()
+
+ set(_cuda_nvcc_flags_config "# Build specific configuration flags")
+ # Loop over all the configuration types to generate appropriate flags for run_nvcc.cmake
+ foreach(config ${CUDA_configuration_types})
+ string(TOUPPER ${config} config_upper)
+ # CMAKE_FLAGS are strings and not lists. By not putting quotes around CMAKE_FLAGS
+ # we convert the strings to lists (like we want).
+
+ if(CUDA_PROPAGATE_HOST_FLAGS)
+ # nvcc chokes on -g3 in versions previous to 3.0, so replace it with -g
+ set(_cuda_fix_g3 FALSE)
+
+ if(CMAKE_COMPILER_IS_GNUCC)
+ if (CUDA_VERSION VERSION_LESS "3.0" OR
+ CUDA_VERSION VERSION_EQUAL "4.1" OR
+ CUDA_VERSION VERSION_EQUAL "4.2"
+ )
+ set(_cuda_fix_g3 TRUE)
+ endif()
+ endif()
+ if(_cuda_fix_g3)
+ string(REPLACE "-g3" "-g" _cuda_C_FLAGS "${CMAKE_${CUDA_C_OR_CXX}_FLAGS_${config_upper}}")
+ else()
+ set(_cuda_C_FLAGS "${CMAKE_${CUDA_C_OR_CXX}_FLAGS_${config_upper}}")
+ endif()
+
+ string(APPEND _cuda_host_flags "\nset(CMAKE_HOST_FLAGS_${config_upper} ${_cuda_C_FLAGS})")
+ endif()
+
+ # Note that if we ever want CUDA_NVCC_FLAGS_<CONFIG> to be string (instead of a list
+ # like it is currently), we can remove the quotes around the
+ # ${CUDA_NVCC_FLAGS_${config_upper}} variable like the CMAKE_HOST_FLAGS_<CONFIG> variable.
+ string(APPEND _cuda_nvcc_flags_config "\nset(CUDA_NVCC_FLAGS_${config_upper} ${CUDA_NVCC_FLAGS_${config_upper}} ;; ${CUDA_WRAP_OPTION_NVCC_FLAGS_${config_upper}})")
+ endforeach()
+
+ # Process the C++11 flag. If the host sets the flag, we need to add it to nvcc and
+ # remove it from the host. This is because -Xcompile -std=c++ will choke nvcc (it uses
+ # the C preprocessor). In order to get this to work correctly, we need to use nvcc's
+ # specific c++11 flag.
+ if( "${_cuda_host_flags}" MATCHES "-std=c\\+\\+11")
+ # Add the c++11 flag to nvcc if it isn't already present. Note that we only look at
+ # the main flag instead of the configuration specific flags.
+ if( NOT "${CUDA_NVCC_FLAGS}" MATCHES "-std=c\\+\\+11" )
+ list(APPEND nvcc_flags --std c++11)
+ endif()
+ string(REGEX REPLACE "[-]+std=c\\+\\+11" "" _cuda_host_flags "${_cuda_host_flags}")
+ endif()
+
+ if(_cuda_build_shared_libs)
+ list(APPEND nvcc_flags "-D${cuda_target}_EXPORTS")
+ endif()
+
+ # Reset the output variable
+ set(_cuda_wrap_generated_files "")
+
+ # Iterate over the macro arguments and create custom
+ # commands for all the .cu files.
+ foreach(file ${_argn_list})
+ # Ignore any file marked as a HEADER_FILE_ONLY
+ get_source_file_property(_is_header ${file} HEADER_FILE_ONLY)
+ # Allow per source file overrides of the format. Also allows compiling non-.cu files.
+ get_source_file_property(_cuda_source_format ${file} CUDA_SOURCE_PROPERTY_FORMAT)
+ if((${file} MATCHES "\\.cu$" OR _cuda_source_format) AND NOT _is_header)
+
+ if(NOT _cuda_source_format)
+ set(_cuda_source_format ${format})
+ endif()
+ # If file isn't a .cu file, we need to tell nvcc to treat it as such.
+ if(NOT ${file} MATCHES "\\.cu$")
+ set(cuda_language_flag -x=cu)
+ else()
+ set(cuda_language_flag)
+ endif()
+
+ if( ${_cuda_source_format} MATCHES "OBJ")
+ set( cuda_compile_to_external_module OFF )
+ else()
+ set( cuda_compile_to_external_module ON )
+ if( ${_cuda_source_format} MATCHES "PTX" )
+ set( cuda_compile_to_external_module_type "ptx" )
+ elseif( ${_cuda_source_format} MATCHES "CUBIN")
+ set( cuda_compile_to_external_module_type "cubin" )
+ elseif( ${_cuda_source_format} MATCHES "FATBIN")
+ set( cuda_compile_to_external_module_type "fatbin" )
+ else()
+ message( FATAL_ERROR "Invalid format flag passed to CUDA_WRAP_SRCS or set with CUDA_SOURCE_PROPERTY_FORMAT file property for file '${file}': '${_cuda_source_format}'. Use OBJ, PTX, CUBIN or FATBIN.")
+ endif()
+ endif()
+
+ if(cuda_compile_to_external_module)
+ # Don't use any of the host compilation flags for PTX targets.
+ set(CUDA_HOST_FLAGS)
+ set(CUDA_NVCC_FLAGS_CONFIG)
+ else()
+ set(CUDA_HOST_FLAGS ${_cuda_host_flags})
+ set(CUDA_NVCC_FLAGS_CONFIG ${_cuda_nvcc_flags_config})
+ endif()
+
+ # Determine output directory
+ cuda_compute_build_path("${file}" cuda_build_path)
+ set(cuda_compile_intermediate_directory "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${cuda_target}.dir/${cuda_build_path}")
+ if(CUDA_GENERATED_OUTPUT_DIR)
+ set(cuda_compile_output_dir "${CUDA_GENERATED_OUTPUT_DIR}")
+ else()
+ if ( cuda_compile_to_external_module )
+ set(cuda_compile_output_dir "${CMAKE_CURRENT_BINARY_DIR}")
+ else()
+ set(cuda_compile_output_dir "${cuda_compile_intermediate_directory}")
+ endif()
+ endif()
+
+ # Add a custom target to generate a c or ptx file. ######################
+
+ get_filename_component( basename ${file} NAME )
+ if( cuda_compile_to_external_module )
+ set(generated_file_path "${cuda_compile_output_dir}")
+ set(generated_file_basename "${cuda_target}_generated_${basename}.${cuda_compile_to_external_module_type}")
+ set(format_flag "-${cuda_compile_to_external_module_type}")
+ file(MAKE_DIRECTORY "${cuda_compile_output_dir}")
+ else()
+ set(generated_file_path "${cuda_compile_output_dir}/${CMAKE_CFG_INTDIR}")
+ set(generated_file_basename "${cuda_target}_generated_${basename}${generated_extension}")
+ if(CUDA_SEPARABLE_COMPILATION)
+ set(format_flag "-dc")
+ else()
+ set(format_flag "-c")
+ endif()
+ endif()
+
+ # Set all of our file names. Make sure that whatever filenames that have
+ # generated_file_path in them get passed in through as a command line
+ # argument, so that the ${CMAKE_CFG_INTDIR} gets expanded at run time
+ # instead of configure time.
+ set(generated_file "${generated_file_path}/${generated_file_basename}")
+ set(cmake_dependency_file "${cuda_compile_intermediate_directory}/${generated_file_basename}.depend")
+ set(NVCC_generated_dependency_file "${cuda_compile_intermediate_directory}/${generated_file_basename}.NVCC-depend")
+ set(generated_cubin_file "${generated_file_path}/${generated_file_basename}.cubin.txt")
+ set(custom_target_script_pregen "${cuda_compile_intermediate_directory}/${generated_file_basename}.cmake.pre-gen")
+ set(custom_target_script "${cuda_compile_intermediate_directory}/${generated_file_basename}$<$<BOOL:$<CONFIG>>:.$<CONFIG>>.cmake")
+
+ # Setup properties for obj files:
+ if( NOT cuda_compile_to_external_module )
+ set_source_files_properties("${generated_file}"
+ PROPERTIES
+ EXTERNAL_OBJECT true # This is an object file not to be compiled, but only be linked.
+ )
+ endif()
+
+ # Don't add CMAKE_CURRENT_SOURCE_DIR if the path is already an absolute path.
+ get_filename_component(file_path "${file}" PATH)
+ if(IS_ABSOLUTE "${file_path}")
+ set(source_file "${file}")
+ else()
+ set(source_file "${CMAKE_CURRENT_SOURCE_DIR}/${file}")
+ endif()
+
+ if( NOT cuda_compile_to_external_module AND CUDA_SEPARABLE_COMPILATION)
+ list(APPEND ${cuda_target}_SEPARABLE_COMPILATION_OBJECTS "${generated_file}")
+ endif()
+
+ # Bring in the dependencies. Creates a variable CUDA_NVCC_DEPEND #######
+ cuda_include_nvcc_dependencies(${cmake_dependency_file})
+
+ # Convenience string for output #########################################
+ if(CUDA_BUILD_EMULATION)
+ set(cuda_build_type "Emulation")
+ else()
+ set(cuda_build_type "Device")
+ endif()
+
+ # Build the NVCC made dependency file ###################################
+ set(build_cubin OFF)
+ if ( NOT CUDA_BUILD_EMULATION AND CUDA_BUILD_CUBIN )
+ if ( NOT cuda_compile_to_external_module )
+ set ( build_cubin ON )
+ endif()
+ endif()
+
+ # Configure the build script
+ configure_file("${CUDA_run_nvcc}" "${custom_target_script_pregen}" @ONLY)
+ file(GENERATE
+ OUTPUT "${custom_target_script}"
+ INPUT "${custom_target_script_pregen}"
+ )
+
+ # So if a user specifies the same cuda file as input more than once, you
+ # can have bad things happen with dependencies. Here we check an option
+ # to see if this is the behavior they want.
+ if(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE)
+ set(main_dep MAIN_DEPENDENCY ${source_file})
+ else()
+ set(main_dep DEPENDS ${source_file})
+ endif()
+
+ if(CUDA_VERBOSE_BUILD)
+ set(verbose_output ON)
+ elseif(CMAKE_GENERATOR MATCHES "Makefiles")
+ set(verbose_output "$(VERBOSE)")
+ else()
+ set(verbose_output OFF)
+ endif()
+
+ # Create up the comment string
+ file(RELATIVE_PATH generated_file_relative_path "${CMAKE_BINARY_DIR}" "${generated_file}")
+ if(cuda_compile_to_external_module)
+ set(cuda_build_comment_string "Building NVCC ${cuda_compile_to_external_module_type} file ${generated_file_relative_path}")
+ else()
+ set(cuda_build_comment_string "Building NVCC (${cuda_build_type}) object ${generated_file_relative_path}")
+ endif()
+
+ set(_verbatim VERBATIM)
+ if(ccbin_flags MATCHES "\\$\\(VCInstallDir\\)")
+ set(_verbatim "")
+ endif()
+
+ # Build the generated file and dependency file ##########################
+ add_custom_command(
+ OUTPUT ${generated_file}
+ # These output files depend on the source_file and the contents of cmake_dependency_file
+ ${main_dep}
+ DEPENDS ${CUDA_NVCC_DEPEND}
+ DEPENDS ${custom_target_script}
+ # Make sure the output directory exists before trying to write to it.
+ COMMAND ${CMAKE_COMMAND} -E make_directory "${generated_file_path}"
+ COMMAND ${CMAKE_COMMAND} ARGS
+ -D verbose:BOOL=${verbose_output}
+ ${ccbin_flags}
+ -D build_configuration:STRING=${CUDA_build_configuration}
+ -D "generated_file:STRING=${generated_file}"
+ -D "generated_cubin_file:STRING=${generated_cubin_file}"
+ -P "${custom_target_script}"
+ WORKING_DIRECTORY "${cuda_compile_intermediate_directory}"
+ COMMENT "${cuda_build_comment_string}"
+ ${_verbatim}
+ )
+
+ # Make sure the build system knows the file is generated.
+ set_source_files_properties(${generated_file} PROPERTIES GENERATED TRUE)
+
+ list(APPEND _cuda_wrap_generated_files ${generated_file})
+
+ # Add the other files that we want cmake to clean on a cleanup ##########
+ list(APPEND CUDA_ADDITIONAL_CLEAN_FILES "${cmake_dependency_file}")
+ list(REMOVE_DUPLICATES CUDA_ADDITIONAL_CLEAN_FILES)
+ set(CUDA_ADDITIONAL_CLEAN_FILES ${CUDA_ADDITIONAL_CLEAN_FILES} CACHE INTERNAL "List of intermediate files that are part of the cuda dependency scanning.")
+
+ endif()
+ endforeach()
+
+ # Set the return parameter
+ set(${generated_files} ${_cuda_wrap_generated_files})
+endmacro()
+
+function(_cuda_get_important_host_flags important_flags flag_string)
+ if(CMAKE_GENERATOR MATCHES "Visual Studio")
+ string(REGEX MATCHALL "/M[DT][d]?" flags "${flag_string}")
+ list(APPEND ${important_flags} ${flags})
+ else()
+ string(REGEX MATCHALL "-fPIC" flags "${flag_string}")
+ list(APPEND ${important_flags} ${flags})
+ endif()
+ set(${important_flags} ${${important_flags}} PARENT_SCOPE)
+endfunction()
+
+###############################################################################
+###############################################################################
+# Separable Compilation Link
+###############################################################################
+###############################################################################
+
+# Compute the filename to be used by CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS
+function(CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME output_file_var cuda_target object_files)
+ if (object_files)
+ set(generated_extension ${CMAKE_${CUDA_C_OR_CXX}_OUTPUT_EXTENSION})
+ set(output_file "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${cuda_target}.dir/${CMAKE_CFG_INTDIR}/${cuda_target}_intermediate_link${generated_extension}")
+ else()
+ set(output_file)
+ endif()
+
+ set(${output_file_var} "${output_file}" PARENT_SCOPE)
+endfunction()
+
+# Setup the build rule for the separable compilation intermediate link file.
+function(CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS output_file cuda_target options object_files)
+ if (object_files)
+
+ set_source_files_properties("${output_file}"
+ PROPERTIES
+ EXTERNAL_OBJECT TRUE # This is an object file not to be compiled, but only
+ # be linked.
+ GENERATED TRUE # This file is generated during the build
+ )
+
+ # For now we are ignoring all the configuration specific flags.
+ set(nvcc_flags)
+ CUDA_PARSE_NVCC_OPTIONS(nvcc_flags ${options})
+ if(CUDA_64_BIT_DEVICE_CODE)
+ list(APPEND nvcc_flags -m64)
+ else()
+ list(APPEND nvcc_flags -m32)
+ endif()
+ # If -ccbin, --compiler-bindir has been specified, don't do anything. Otherwise add it here.
+ list( FIND nvcc_flags "-ccbin" ccbin_found0 )
+ list( FIND nvcc_flags "--compiler-bindir" ccbin_found1 )
+ if( ccbin_found0 LESS 0 AND ccbin_found1 LESS 0 AND CUDA_HOST_COMPILER )
+ # Match VERBATIM check below.
+ if(CUDA_HOST_COMPILER MATCHES "\\$\\(VCInstallDir\\)")
+ list(APPEND nvcc_flags -ccbin "\"${CUDA_HOST_COMPILER}\"")
+ else()
+ list(APPEND nvcc_flags -ccbin "${CUDA_HOST_COMPILER}")
+ endif()
+ endif()
+
+ # Create a list of flags specified by CUDA_NVCC_FLAGS_${CONFIG} and CMAKE_${CUDA_C_OR_CXX}_FLAGS*
+ set(config_specific_flags)
+ set(flags)
+ foreach(config ${CUDA_configuration_types})
+ string(TOUPPER ${config} config_upper)
+ # Add config specific flags
+ foreach(f ${CUDA_NVCC_FLAGS_${config_upper}})
+ list(APPEND config_specific_flags $<$<CONFIG:${config}>:${f}>)
+ endforeach()
+ set(important_host_flags)
+ _cuda_get_important_host_flags(important_host_flags "${CMAKE_${CUDA_C_OR_CXX}_FLAGS_${config_upper}}")
+ foreach(f ${important_host_flags})
+ list(APPEND flags $<$<CONFIG:${config}>:-Xcompiler> $<$<CONFIG:${config}>:${f}>)
+ endforeach()
+ endforeach()
+ # Add CMAKE_${CUDA_C_OR_CXX}_FLAGS
+ set(important_host_flags)
+ _cuda_get_important_host_flags(important_host_flags "${CMAKE_${CUDA_C_OR_CXX}_FLAGS}")
+ foreach(f ${important_host_flags})
+ list(APPEND flags -Xcompiler ${f})
+ endforeach()
+
+ # Add our general CUDA_NVCC_FLAGS with the configuration specifig flags
+ set(nvcc_flags ${CUDA_NVCC_FLAGS} ${config_specific_flags} ${nvcc_flags})
+
+ file(RELATIVE_PATH output_file_relative_path "${CMAKE_BINARY_DIR}" "${output_file}")
+
+ # Some generators don't handle the multiple levels of custom command
+ # dependencies correctly (obj1 depends on file1, obj2 depends on obj1), so
+ # we work around that issue by compiling the intermediate link object as a
+ # pre-link custom command in that situation.
+ set(do_obj_build_rule TRUE)
+ if (MSVC_VERSION GREATER 1599 AND MSVC_VERSION LESS 1800)
+ # VS 2010 and 2012 have this problem.
+ set(do_obj_build_rule FALSE)
+ endif()
+
+ set(_verbatim VERBATIM)
+ if(nvcc_flags MATCHES "\\$\\(VCInstallDir\\)")
+ set(_verbatim "")
+ endif()
+
+ if (do_obj_build_rule)
+ add_custom_command(
+ OUTPUT ${output_file}
+ DEPENDS ${object_files}
+ COMMAND ${CUDA_NVCC_EXECUTABLE} ${nvcc_flags} -dlink ${object_files} -o ${output_file}
+ ${flags}
+ COMMENT "Building NVCC intermediate link file ${output_file_relative_path}"
+ COMMAND_EXPAND_LISTS
+ ${_verbatim}
+ )
+ else()
+ get_filename_component(output_file_dir "${output_file}" DIRECTORY)
+ add_custom_command(
+ TARGET ${cuda_target}
+ PRE_LINK
+ COMMAND ${CMAKE_COMMAND} -E echo "Building NVCC intermediate link file ${output_file_relative_path}"
+ COMMAND ${CMAKE_COMMAND} -E make_directory "${output_file_dir}"
+ COMMAND ${CUDA_NVCC_EXECUTABLE} ${nvcc_flags} ${flags} -dlink ${object_files} -o "${output_file}"
+ COMMAND_EXPAND_LISTS
+ ${_verbatim}
+ )
+ endif()
+ endif()
+endfunction()
+
+###############################################################################
+###############################################################################
+# ADD LIBRARY
+###############################################################################
+###############################################################################
+macro(CUDA_ADD_LIBRARY cuda_target)
+
+ CUDA_ADD_CUDA_INCLUDE_ONCE()
+
+ # Separate the sources from the options
+ CUDA_GET_SOURCES_AND_OPTIONS(_sources _cmake_options _options ${ARGN})
+ CUDA_BUILD_SHARED_LIBRARY(_cuda_shared_flag ${ARGN})
+ # Create custom commands and targets for each file.
+ CUDA_WRAP_SRCS( ${cuda_target} OBJ _generated_files ${_sources}
+ ${_cmake_options} ${_cuda_shared_flag}
+ OPTIONS ${_options} )
+
+ # Compute the file name of the intermedate link file used for separable
+ # compilation.
+ CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME(link_file ${cuda_target} "${${cuda_target}_SEPARABLE_COMPILATION_OBJECTS}")
+
+ # Add the library.
+ add_library(${cuda_target} ${_cmake_options}
+ ${_generated_files}
+ ${_sources}
+ ${link_file}
+ )
+
+ # Add a link phase for the separable compilation if it has been enabled. If
+ # it has been enabled then the ${cuda_target}_SEPARABLE_COMPILATION_OBJECTS
+ # variable will have been defined.
+ CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS("${link_file}" ${cuda_target} "${_options}" "${${cuda_target}_SEPARABLE_COMPILATION_OBJECTS}")
+
+ target_link_libraries(${cuda_target} ${CUDA_LINK_LIBRARIES_KEYWORD}
+ ${CUDA_LIBRARIES}
+ )
+
+ if(CUDA_SEPARABLE_COMPILATION)
+ target_link_libraries(${cuda_target} ${CUDA_LINK_LIBRARIES_KEYWORD}
+ ${CUDA_cudadevrt_LIBRARY}
+ )
+ endif()
+
+ # We need to set the linker language based on what the expected generated file
+ # would be. CUDA_C_OR_CXX is computed based on CUDA_HOST_COMPILATION_CPP.
+ set_target_properties(${cuda_target}
+ PROPERTIES
+ LINKER_LANGUAGE ${CUDA_C_OR_CXX}
+ )
+
+endmacro()
+
+
+###############################################################################
+###############################################################################
+# ADD EXECUTABLE
+###############################################################################
+###############################################################################
+macro(CUDA_ADD_EXECUTABLE cuda_target)
+
+ CUDA_ADD_CUDA_INCLUDE_ONCE()
+
+ # Separate the sources from the options
+ CUDA_GET_SOURCES_AND_OPTIONS(_sources _cmake_options _options ${ARGN})
+ # Create custom commands and targets for each file.
+ CUDA_WRAP_SRCS( ${cuda_target} OBJ _generated_files ${_sources} OPTIONS ${_options} )
+
+ # Compute the file name of the intermedate link file used for separable
+ # compilation.
+ CUDA_COMPUTE_SEPARABLE_COMPILATION_OBJECT_FILE_NAME(link_file ${cuda_target} "${${cuda_target}_SEPARABLE_COMPILATION_OBJECTS}")
+
+ # Add the library.
+ add_executable(${cuda_target} ${_cmake_options}
+ ${_generated_files}
+ ${_sources}
+ ${link_file}
+ )
+
+ # Add a link phase for the separable compilation if it has been enabled. If
+ # it has been enabled then the ${cuda_target}_SEPARABLE_COMPILATION_OBJECTS
+ # variable will have been defined.
+ CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS("${link_file}" ${cuda_target} "${_options}" "${${cuda_target}_SEPARABLE_COMPILATION_OBJECTS}")
+
+ target_link_libraries(${cuda_target} ${CUDA_LINK_LIBRARIES_KEYWORD}
+ ${CUDA_LIBRARIES}
+ )
+
+ # We need to set the linker language based on what the expected generated file
+ # would be. CUDA_C_OR_CXX is computed based on CUDA_HOST_COMPILATION_CPP.
+ set_target_properties(${cuda_target}
+ PROPERTIES
+ LINKER_LANGUAGE ${CUDA_C_OR_CXX}
+ )
+
+endmacro()
+
+
+###############################################################################
+###############################################################################
+# (Internal) helper for manually added cuda source files with specific targets
+###############################################################################
+###############################################################################
+macro(cuda_compile_base cuda_target format generated_files)
+ # Update a counter in this directory, to keep phony target names unique.
+ set(_cuda_target "${cuda_target}")
+ get_property(_counter DIRECTORY PROPERTY _cuda_internal_phony_counter)
+ if(_counter)
+ math(EXPR _counter "${_counter} + 1")
+ else()
+ set(_counter 1)
+ endif()
+ string(APPEND _cuda_target "_${_counter}")
+ set_property(DIRECTORY PROPERTY _cuda_internal_phony_counter ${_counter})
+
+ # Separate the sources from the options
+ CUDA_GET_SOURCES_AND_OPTIONS(_sources _cmake_options _options ${ARGN})
+
+ # Create custom commands and targets for each file.
+ CUDA_WRAP_SRCS( ${_cuda_target} ${format} _generated_files ${_sources}
+ ${_cmake_options} OPTIONS ${_options} PHONY)
+
+ set( ${generated_files} ${_generated_files})
+
+endmacro()
+
+###############################################################################
+###############################################################################
+# CUDA COMPILE
+###############################################################################
+###############################################################################
+macro(CUDA_COMPILE generated_files)
+ cuda_compile_base(cuda_compile OBJ ${generated_files} ${ARGN})
+endmacro()
+
+###############################################################################
+###############################################################################
+# CUDA COMPILE PTX
+###############################################################################
+###############################################################################
+macro(CUDA_COMPILE_PTX generated_files)
+ cuda_compile_base(cuda_compile_ptx PTX ${generated_files} ${ARGN})
+endmacro()
+
+###############################################################################
+###############################################################################
+# CUDA COMPILE FATBIN
+###############################################################################
+###############################################################################
+macro(CUDA_COMPILE_FATBIN generated_files)
+ cuda_compile_base(cuda_compile_fatbin FATBIN ${generated_files} ${ARGN})
+endmacro()
+
+###############################################################################
+###############################################################################
+# CUDA COMPILE CUBIN
+###############################################################################
+###############################################################################
+macro(CUDA_COMPILE_CUBIN generated_files)
+ cuda_compile_base(cuda_compile_cubin CUBIN ${generated_files} ${ARGN})
+endmacro()
+
+
+###############################################################################
+###############################################################################
+# CUDA ADD CUFFT TO TARGET
+###############################################################################
+###############################################################################
+macro(CUDA_ADD_CUFFT_TO_TARGET target)
+ if (CUDA_BUILD_EMULATION)
+ target_link_libraries(${target} ${CUDA_LINK_LIBRARIES_KEYWORD} ${CUDA_cufftemu_LIBRARY})
+ else()
+ target_link_libraries(${target} ${CUDA_LINK_LIBRARIES_KEYWORD} ${CUDA_cufft_LIBRARY})
+ endif()
+endmacro()
+
+###############################################################################
+###############################################################################
+# CUDA ADD CUBLAS TO TARGET
+###############################################################################
+###############################################################################
+macro(CUDA_ADD_CUBLAS_TO_TARGET target)
+ if (CUDA_BUILD_EMULATION)
+ target_link_libraries(${target} ${CUDA_LINK_LIBRARIES_KEYWORD} ${CUDA_cublasemu_LIBRARY})
+ else()
+ target_link_libraries(${target} ${CUDA_LINK_LIBRARIES_KEYWORD} ${CUDA_cublas_LIBRARY} ${CUDA_cublas_device_LIBRARY})
+ endif()
+endmacro()
+
+###############################################################################
+###############################################################################
+# CUDA BUILD CLEAN TARGET
+###############################################################################
+###############################################################################
+macro(CUDA_BUILD_CLEAN_TARGET)
+ # Call this after you add all your CUDA targets, and you will get a
+ # convenience target. You should also make clean after running this target
+ # to get the build system to generate all the code again.
+
+ set(cuda_clean_target_name clean_cuda_depends)
+ if (CMAKE_GENERATOR MATCHES "Visual Studio")
+ string(TOUPPER ${cuda_clean_target_name} cuda_clean_target_name)
+ endif()
+ add_custom_target(${cuda_clean_target_name}
+ COMMAND ${CMAKE_COMMAND} -E rm -f ${CUDA_ADDITIONAL_CLEAN_FILES})
+
+ # Clear out the variable, so the next time we configure it will be empty.
+ # This is useful so that the files won't persist in the list after targets
+ # have been removed.
+ set(CUDA_ADDITIONAL_CLEAN_FILES "" CACHE INTERNAL "List of intermediate files that are part of the cuda dependency scanning.")
+endmacro()
diff --git a/share/cmake-3.16/Modules/FindCUDA/make2cmake.cmake b/share/cmake-3.17/Modules/FindCUDA/make2cmake.cmake
index 580f24a..580f24a 100644
--- a/share/cmake-3.16/Modules/FindCUDA/make2cmake.cmake
+++ b/share/cmake-3.17/Modules/FindCUDA/make2cmake.cmake
diff --git a/share/cmake-3.16/Modules/FindCUDA/parse_cubin.cmake b/share/cmake-3.17/Modules/FindCUDA/parse_cubin.cmake
index 626c8a2..626c8a2 100644
--- a/share/cmake-3.16/Modules/FindCUDA/parse_cubin.cmake
+++ b/share/cmake-3.17/Modules/FindCUDA/parse_cubin.cmake
diff --git a/share/cmake-3.17/Modules/FindCUDA/run_nvcc.cmake b/share/cmake-3.17/Modules/FindCUDA/run_nvcc.cmake
new file mode 100644
index 0000000..ba35433
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindCUDA/run_nvcc.cmake
@@ -0,0 +1,306 @@
+# James Bigler, NVIDIA Corp (nvidia.com - jbigler)
+#
+# Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved.
+#
+# This code is licensed under the MIT License. See the FindCUDA.cmake script
+# for the text of the license.
+
+# The MIT License
+#
+# License for the specific language governing rights and limitations under
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+
+##########################################################################
+# This file runs the nvcc commands to produce the desired output file along with
+# the dependency file needed by CMake to compute dependencies. In addition the
+# file checks the output of each command and if the command fails it deletes the
+# output files.
+
+# Input variables
+#
+# verbose:BOOL=<> OFF: Be as quiet as possible (default)
+# ON : Describe each step
+#
+# build_configuration:STRING=<> Typically one of Debug, MinSizeRel, Release, or
+# RelWithDebInfo, but it should match one of the
+# entries in CUDA_HOST_FLAGS. This is the build
+# configuration used when compiling the code. If
+# blank or unspecified Debug is assumed as this is
+# what CMake does.
+#
+# generated_file:STRING=<> File to generate. This argument must be passed in.
+#
+# generated_cubin_file:STRING=<> File to generate. This argument must be passed
+# in if build_cubin is true.
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0007 NEW)
+if(NOT generated_file)
+ message(FATAL_ERROR "You must specify generated_file on the command line")
+endif()
+
+# Set these up as variables to make reading the generated file easier
+set(CMAKE_COMMAND "@CMAKE_COMMAND@") # path
+set(source_file "@source_file@") # path
+set(NVCC_generated_dependency_file "@NVCC_generated_dependency_file@") # path
+set(cmake_dependency_file "@cmake_dependency_file@") # path
+set(CUDA_make2cmake "@CUDA_make2cmake@") # path
+set(CUDA_parse_cubin "@CUDA_parse_cubin@") # path
+set(build_cubin @build_cubin@) # bool
+set(CUDA_HOST_COMPILER "@CUDA_HOST_COMPILER@") # path
+# We won't actually use these variables for now, but we need to set this, in
+# order to force this file to be run again if it changes.
+set(generated_file_path "@generated_file_path@") # path
+set(generated_file_internal "@generated_file@") # path
+set(generated_cubin_file_internal "@generated_cubin_file@") # path
+
+set(CUDA_NVCC_EXECUTABLE "@CUDA_NVCC_EXECUTABLE@") # path
+set(CUDA_NVCC_FLAGS @CUDA_NVCC_FLAGS@ ;; @CUDA_WRAP_OPTION_NVCC_FLAGS@) # list
+@CUDA_NVCC_FLAGS_CONFIG@
+set(nvcc_flags @nvcc_flags@) # list
+set(CUDA_NVCC_INCLUDE_DIRS [==[@CUDA_NVCC_INCLUDE_DIRS@]==]) # list (needs to be in lua quotes to address backslashes)
+string(REPLACE "\\" "/" CUDA_NVCC_INCLUDE_DIRS "${CUDA_NVCC_INCLUDE_DIRS}")
+set(CUDA_NVCC_COMPILE_DEFINITIONS [==[@CUDA_NVCC_COMPILE_DEFINITIONS@]==]) # list (needs to be in lua quotes see #16510 ).
+set(format_flag "@format_flag@") # string
+set(cuda_language_flag @cuda_language_flag@) # list
+
+# Clean up list of include directories and add -I flags
+list(REMOVE_DUPLICATES CUDA_NVCC_INCLUDE_DIRS)
+set(CUDA_NVCC_INCLUDE_ARGS)
+foreach(dir ${CUDA_NVCC_INCLUDE_DIRS})
+ # Extra quotes are added around each flag to help nvcc parse out flags with spaces.
+ list(APPEND CUDA_NVCC_INCLUDE_ARGS "-I${dir}")
+endforeach()
+
+# Clean up list of compile definitions, add -D flags, and append to nvcc_flags
+list(REMOVE_DUPLICATES CUDA_NVCC_COMPILE_DEFINITIONS)
+foreach(def ${CUDA_NVCC_COMPILE_DEFINITIONS})
+ list(APPEND nvcc_flags "-D${def}")
+endforeach()
+
+if(build_cubin AND NOT generated_cubin_file)
+ message(FATAL_ERROR "You must specify generated_cubin_file on the command line")
+endif()
+
+# This is the list of host compilation flags. It C or CXX should already have
+# been chosen by FindCUDA.cmake.
+@CUDA_HOST_FLAGS@
+
+# Take the compiler flags and package them up to be sent to the compiler via -Xcompiler
+set(nvcc_host_compiler_flags "")
+# If we weren't given a build_configuration, use Debug.
+if(NOT build_configuration)
+ set(build_configuration Debug)
+endif()
+string(TOUPPER "${build_configuration}" build_configuration)
+#message("CUDA_NVCC_HOST_COMPILER_FLAGS = ${CUDA_NVCC_HOST_COMPILER_FLAGS}")
+foreach(flag ${CMAKE_HOST_FLAGS} ${CMAKE_HOST_FLAGS_${build_configuration}})
+ # Extra quotes are added around each flag to help nvcc parse out flags with spaces.
+ string(APPEND nvcc_host_compiler_flags ",\"${flag}\"")
+endforeach()
+if (nvcc_host_compiler_flags)
+ set(nvcc_host_compiler_flags "-Xcompiler" ${nvcc_host_compiler_flags})
+endif()
+#message("nvcc_host_compiler_flags = \"${nvcc_host_compiler_flags}\"")
+# Add the build specific configuration flags
+list(APPEND CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS_${build_configuration}})
+
+# Any -ccbin existing in CUDA_NVCC_FLAGS gets highest priority
+list( FIND CUDA_NVCC_FLAGS "-ccbin" ccbin_found0 )
+list( FIND CUDA_NVCC_FLAGS "--compiler-bindir" ccbin_found1 )
+if( ccbin_found0 LESS 0 AND ccbin_found1 LESS 0 AND CUDA_HOST_COMPILER )
+ if (CUDA_HOST_COMPILER STREQUAL "@_CUDA_MSVC_HOST_COMPILER@" AND DEFINED CCBIN)
+ set(CCBIN -ccbin "${CCBIN}")
+ else()
+ set(CCBIN -ccbin "${CUDA_HOST_COMPILER}")
+ endif()
+endif()
+
+# cuda_execute_process - Executes a command with optional command echo and status message.
+#
+# status - Status message to print if verbose is true
+# command - COMMAND argument from the usual execute_process argument structure
+# ARGN - Remaining arguments are the command with arguments
+#
+# CUDA_result - return value from running the command
+#
+# Make this a macro instead of a function, so that things like RESULT_VARIABLE
+# and other return variables are present after executing the process.
+macro(cuda_execute_process status command)
+ set(_command ${command})
+ if(NOT "x${_command}" STREQUAL "xCOMMAND")
+ message(FATAL_ERROR "Malformed call to cuda_execute_process. Missing COMMAND as second argument. (command = ${command})")
+ endif()
+ if(verbose)
+ execute_process(COMMAND "${CMAKE_COMMAND}" -E echo -- ${status})
+ # Now we need to build up our command string. We are accounting for quotes
+ # and spaces, anything else is left up to the user to fix if they want to
+ # copy and paste a runnable command line.
+ set(cuda_execute_process_string)
+ foreach(arg ${ARGN})
+ # If there are quotes, excape them, so they come through.
+ string(REPLACE "\"" "\\\"" arg ${arg})
+ # Args with spaces need quotes around them to get them to be parsed as a single argument.
+ if(arg MATCHES " ")
+ list(APPEND cuda_execute_process_string "\"${arg}\"")
+ else()
+ list(APPEND cuda_execute_process_string ${arg})
+ endif()
+ endforeach()
+ # Echo the command
+ execute_process(COMMAND ${CMAKE_COMMAND} -E echo ${cuda_execute_process_string})
+ endif()
+ # Run the command
+ execute_process(COMMAND ${ARGN} RESULT_VARIABLE CUDA_result )
+endmacro()
+
+# Delete the target file
+cuda_execute_process(
+ "Removing ${generated_file}"
+ COMMAND "${CMAKE_COMMAND}" -E rm -f "${generated_file}"
+ )
+
+# For CUDA 2.3 and below, -G -M doesn't work, so remove the -G flag
+# for dependency generation and hope for the best.
+set(depends_CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}")
+set(CUDA_VERSION @CUDA_VERSION@)
+if(CUDA_VERSION VERSION_LESS "3.0")
+ # Note that this will remove all occurrences of -G.
+ list(REMOVE_ITEM depends_CUDA_NVCC_FLAGS "-G")
+endif()
+
+# nvcc doesn't define __CUDACC__ for some reason when generating dependency files. This
+# can cause incorrect dependencies when #including files based on this macro which is
+# defined in the generating passes of nvcc invocation. We will go ahead and manually
+# define this for now until a future version fixes this bug.
+set(CUDACC_DEFINE -D__CUDACC__)
+
+# Generate the dependency file
+cuda_execute_process(
+ "Generating dependency file: ${NVCC_generated_dependency_file}"
+ COMMAND "${CUDA_NVCC_EXECUTABLE}"
+ -M
+ ${CUDACC_DEFINE}
+ "${source_file}"
+ -o "${NVCC_generated_dependency_file}"
+ ${CCBIN}
+ ${nvcc_flags}
+ ${nvcc_host_compiler_flags}
+ ${depends_CUDA_NVCC_FLAGS}
+ -DNVCC
+ ${CUDA_NVCC_INCLUDE_ARGS}
+ )
+
+if(CUDA_result)
+ message(FATAL_ERROR "Error generating ${generated_file}")
+endif()
+
+# Generate the cmake readable dependency file to a temp file. Don't put the
+# quotes just around the filenames for the input_file and output_file variables.
+# CMake will pass the quotes through and not be able to find the file.
+cuda_execute_process(
+ "Generating temporary cmake readable file: ${cmake_dependency_file}.tmp"
+ COMMAND "${CMAKE_COMMAND}"
+ -D "input_file:FILEPATH=${NVCC_generated_dependency_file}"
+ -D "output_file:FILEPATH=${cmake_dependency_file}.tmp"
+ -D "verbose=${verbose}"
+ -P "${CUDA_make2cmake}"
+ )
+
+if(CUDA_result)
+ message(FATAL_ERROR "Error generating ${generated_file}")
+endif()
+
+# Copy the file if it is different
+cuda_execute_process(
+ "Copy if different ${cmake_dependency_file}.tmp to ${cmake_dependency_file}"
+ COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${cmake_dependency_file}.tmp" "${cmake_dependency_file}"
+ )
+
+if(CUDA_result)
+ message(FATAL_ERROR "Error generating ${generated_file}")
+endif()
+
+# Delete the temporary file
+cuda_execute_process(
+ "Removing ${cmake_dependency_file}.tmp and ${NVCC_generated_dependency_file}"
+ COMMAND "${CMAKE_COMMAND}" -E rm -f "${cmake_dependency_file}.tmp" "${NVCC_generated_dependency_file}"
+ )
+
+if(CUDA_result)
+ message(FATAL_ERROR "Error generating ${generated_file}")
+endif()
+
+# Generate the code
+cuda_execute_process(
+ "Generating ${generated_file}"
+ COMMAND "${CUDA_NVCC_EXECUTABLE}"
+ "${source_file}"
+ ${cuda_language_flag}
+ ${format_flag} -o "${generated_file}"
+ ${CCBIN}
+ ${nvcc_flags}
+ ${nvcc_host_compiler_flags}
+ ${CUDA_NVCC_FLAGS}
+ -DNVCC
+ ${CUDA_NVCC_INCLUDE_ARGS}
+ )
+
+if(CUDA_result)
+ # Since nvcc can sometimes leave half done files make sure that we delete the output file.
+ cuda_execute_process(
+ "Removing ${generated_file}"
+ COMMAND "${CMAKE_COMMAND}" -E rm -f "${generated_file}"
+ )
+ message(FATAL_ERROR "Error generating file ${generated_file}")
+else()
+ if(verbose)
+ message("Generated ${generated_file} successfully.")
+ endif()
+endif()
+
+# Cubin resource report commands.
+if( build_cubin )
+ # Run with -cubin to produce resource usage report.
+ cuda_execute_process(
+ "Generating ${generated_cubin_file}"
+ COMMAND "${CUDA_NVCC_EXECUTABLE}"
+ "${source_file}"
+ ${CUDA_NVCC_FLAGS}
+ ${nvcc_flags}
+ ${CCBIN}
+ ${nvcc_host_compiler_flags}
+ -DNVCC
+ -cubin
+ -o "${generated_cubin_file}"
+ ${CUDA_NVCC_INCLUDE_ARGS}
+ )
+
+ # Execute the parser script.
+ cuda_execute_process(
+ "Executing the parser script"
+ COMMAND "${CMAKE_COMMAND}"
+ -D "input_file:STRING=${generated_cubin_file}"
+ -P "${CUDA_parse_cubin}"
+ )
+
+endif()
+
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FindCUDA/select_compute_arch.cmake b/share/cmake-3.17/Modules/FindCUDA/select_compute_arch.cmake
index 7ddb709..7ddb709 100644
--- a/share/cmake-3.16/Modules/FindCUDA/select_compute_arch.cmake
+++ b/share/cmake-3.17/Modules/FindCUDA/select_compute_arch.cmake
diff --git a/share/cmake-3.17/Modules/FindCUDAToolkit.cmake b/share/cmake-3.17/Modules/FindCUDAToolkit.cmake
new file mode 100644
index 0000000..4b14ddc
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindCUDAToolkit.cmake
@@ -0,0 +1,870 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindCUDAToolkit
+---------------
+
+This script locates the NVIDIA CUDA toolkit and the associated libraries, but
+does not require the ``CUDA`` language be enabled for a given project. This
+module does not search for the NVIDIA CUDA Samples.
+
+Search Behavior
+^^^^^^^^^^^^^^^
+
+Finding the CUDA Toolkit requires finding the ``nvcc`` executable, which is
+searched for in the following order:
+
+1. If the ``CUDA`` language has been enabled we will use the directory
+ containing the compiler as the first search location for ``nvcc``.
+
+2. If the ``CUDAToolkit_ROOT`` cmake configuration variable (e.g.,
+ ``-DCUDAToolkit_ROOT=/some/path``) *or* environment variable is defined, it
+ will be searched. If both an environment variable **and** a
+ configuration variable are specified, the *configuration* variable takes
+ precedence.
+
+ The directory specified here must be such that the executable ``nvcc`` can be
+ found underneath the directory specified by ``CUDAToolkit_ROOT``. If
+ ``CUDAToolkit_ROOT`` is specified, but no ``nvcc`` is found underneath, this
+ package is marked as **not** found. No subsequent search attempts are
+ performed.
+
+3. If the CUDA_PATH environment variable is defined, it will be searched.
+
+4. The user's path is searched for ``nvcc`` using :command:`find_program`. If
+ this is found, no subsequent search attempts are performed. Users are
+ responsible for ensuring that the first ``nvcc`` to show up in the path is
+ the desired path in the event that multiple CUDA Toolkits are installed.
+
+5. On Unix systems, if the symbolic link ``/usr/local/cuda`` exists, this is
+ used. No subsequent search attempts are performed. No default symbolic link
+ location exists for the Windows platform.
+
+6. The platform specific default install locations are searched. If exactly one
+ candidate is found, this is used. The default CUDA Toolkit install locations
+ searched are:
+
+ +-------------+-------------------------------------------------------------+
+ | Platform | Search Pattern |
+ +=============+=============================================================+
+ | macOS | ``/Developer/NVIDIA/CUDA-X.Y`` |
+ +-------------+-------------------------------------------------------------+
+ | Other Unix | ``/usr/local/cuda-X.Y`` |
+ +-------------+-------------------------------------------------------------+
+ | Windows | ``C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y`` |
+ +-------------+-------------------------------------------------------------+
+
+ Where ``X.Y`` would be a specific version of the CUDA Toolkit, such as
+ ``/usr/local/cuda-9.0`` or
+ ``C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0``
+
+ .. note::
+
+ When multiple CUDA Toolkits are installed in the default location of a
+ system (e.g., both ``/usr/local/cuda-9.0`` and ``/usr/local/cuda-10.0``
+ exist but the ``/usr/local/cuda`` symbolic link does **not** exist), this
+ package is marked as **not** found.
+
+ There are too many factors involved in making an automatic decision in
+ the presence of multiple CUDA Toolkits being installed. In this
+ situation, users are encouraged to either (1) set ``CUDAToolkit_ROOT`` or
+ (2) ensure that the correct ``nvcc`` executable shows up in ``$PATH`` for
+ :command:`find_program` to find.
+
+Options
+^^^^^^^
+
+``VERSION``
+ If specified, describes the version of the CUDA Toolkit to search for.
+
+``REQUIRED``
+ If specified, configuration will error if a suitable CUDA Toolkit is not
+ found.
+
+``QUIET``
+ If specified, the search for a suitable CUDA Toolkit will not produce any
+ messages.
+
+``EXACT``
+ If specified, the CUDA Toolkit is considered found only if the exact
+ ``VERSION`` specified is recovered.
+
+Imported targets
+^^^^^^^^^^^^^^^^
+
+An :ref:`imported target <Imported targets>` named ``CUDA::toolkit`` is provided.
+
+This module defines :prop_tgt:`IMPORTED` targets for each
+of the following libraries that are part of the CUDAToolkit:
+
+- :ref:`CUDA Runtime Library<cuda_toolkit_rt_lib>`
+- :ref:`CUDA Driver Library<cuda_toolkit_driver_lib>`
+- :ref:`cuBLAS<cuda_toolkit_cuBLAS>`
+- :ref:`cuFFT<cuda_toolkit_cuFFT>`
+- :ref:`cuRAND<cuda_toolkit_cuRAND>`
+- :ref:`cuSOLVER<cuda_toolkit_cuSOLVER>`
+- :ref:`cuSPARSE<cuda_toolkit_cuSPARSE>`
+- :ref:`cuPTI<cuda_toolkit_cupti>`
+- :ref:`NPP<cuda_toolkit_NPP>`
+- :ref:`nvBLAS<cuda_toolkit_nvBLAS>`
+- :ref:`nvGRAPH<cuda_toolkit_nvGRAPH>`
+- :ref:`nvJPEG<cuda_toolkit_nvJPEG>`
+- :ref:`nvidia-ML<cuda_toolkit_nvML>`
+- :ref:`nvRTC<cuda_toolkit_nvRTC>`
+- :ref:`nvToolsExt<cuda_toolkit_nvToolsExt>`
+- :ref:`OpenCL<cuda_toolkit_opencl>`
+- :ref:`cuLIBOS<cuda_toolkit_cuLIBOS>`
+
+.. _`cuda_toolkit_rt_lib`:
+
+CUDA Runtime Library
+""""""""""""""""""""
+
+The CUDA Runtime library (cudart) are what most applications will typically
+need to link against to make any calls such as `cudaMalloc`, and `cudaFree`.
+
+Targets Created:
+
+- ``CUDA::cudart``
+- ``CUDA::cudart_static``
+
+.. _`cuda_toolkit_driver_lib`:
+
+CUDA Driver Library
+""""""""""""""""""""
+
+The CUDA Driver library (cuda) are used by applications that use calls
+such as `cuMemAlloc`, and `cuMemFree`. This is generally used by advanced
+
+
+Targets Created:
+
+- ``CUDA::cuda_driver``
+- ``CUDA::cuda_driver``
+
+.. _`cuda_toolkit_cuBLAS`:
+
+cuBLAS
+""""""
+
+The `cuBLAS <https://docs.nvidia.com/cuda/cublas/index.html>`_ library.
+
+Targets Created:
+
+- ``CUDA::cublas``
+- ``CUDA::cublas_static``
+
+.. _`cuda_toolkit_cuFFT`:
+
+cuFFT
+"""""
+
+The `cuFFT <https://docs.nvidia.com/cuda/cufft/index.html>`_ library.
+
+Targets Created:
+
+- ``CUDA::cufft``
+- ``CUDA::cufftw``
+- ``CUDA::cufft_static``
+- ``CUDA::cufftw_static``
+
+cuRAND
+""""""
+
+The `cuRAND <https://docs.nvidia.com/cuda/curand/index.html>`_ library.
+
+Targets Created:
+
+- ``CUDA::curand``
+- ``CUDA::curand_static``
+
+.. _`cuda_toolkit_cuSOLVER`:
+
+cuSOLVER
+""""""""
+
+The `cuSOLVER <https://docs.nvidia.com/cuda/cusolver/index.html>`_ library.
+
+Targets Created:
+
+- ``CUDA::cusolver``
+- ``CUDA::cusolver_static``
+
+.. _`cuda_toolkit_cuSPARSE`:
+
+cuSPARSE
+""""""""
+
+The `cuSPARSE <https://docs.nvidia.com/cuda/cusparse/index.html>`_ library.
+
+Targets Created:
+
+- ``CUDA::cusparse``
+- ``CUDA::cusparse_static``
+
+.. _`cuda_toolkit_cupti`:
+
+cupti
+"""""
+
+The `NVIDIA CUDA Profiling Tools Interface <https://developer.nvidia.com/CUPTI>`_.
+
+Targets Created:
+
+- ``CUDA::cupti``
+- ``CUDA::cupti_static``
+
+.. _`cuda_toolkit_NPP`:
+
+NPP
+"""
+
+The `NPP <https://docs.nvidia.com/cuda/npp/index.html>`_ libraries.
+
+Targets Created:
+
+- `nppc`:
+
+ - ``CUDA::nppc``
+ - ``CUDA::nppc_static``
+
+- `nppial`: Arithmetic and logical operation functions in `nppi_arithmetic_and_logical_operations.h`
+
+ - ``CUDA::nppial``
+ - ``CUDA::nppial_static``
+
+- `nppicc`: Color conversion and sampling functions in `nppi_color_conversion.h`
+
+ - ``CUDA::nppicc``
+ - ``CUDA::nppicc_static``
+
+- `nppicom`: JPEG compression and decompression functions in `nppi_compression_functions.h`
+
+ - ``CUDA::nppicom``
+ - ``CUDA::nppicom_static``
+
+- `nppidei`: Data exchange and initialization functions in `nppi_data_exchange_and_initialization.h`
+
+ - ``CUDA::nppidei``
+ - ``CUDA::nppidei_static``
+
+- `nppif`: Filtering and computer vision functions in `nppi_filter_functions.h`
+
+ - ``CUDA::nppif``
+ - ``CUDA::nppif_static``
+
+- `nppig`: Geometry transformation functions found in `nppi_geometry_transforms.h`
+
+ - ``CUDA::nppig``
+ - ``CUDA::nppig_static``
+
+- `nppim`: Morphological operation functions found in `nppi_morphological_operations.h`
+
+ - ``CUDA::nppim``
+ - ``CUDA::nppim_static``
+
+- `nppist`: Statistics and linear transform in `nppi_statistics_functions.h` and `nppi_linear_transforms.h`
+
+ - ``CUDA::nppist``
+ - ``CUDA::nppist_static``
+
+- `nppisu`: Memory support functions in `nppi_support_functions.h`
+
+ - ``CUDA::nppisu``
+ - ``CUDA::nppisu_static``
+
+- `nppitc`: Threshold and compare operation functions in `nppi_threshold_and_compare_operations.h`
+
+ - ``CUDA::nppitc``
+ - ``CUDA::nppitc_static``
+
+- `npps`:
+
+ - ``CUDA::npps``
+ - ``CUDA::npps_static``
+
+.. _`cuda_toolkit_nvBLAS`:
+
+nvBLAS
+""""""
+
+The `nvBLAS <https://docs.nvidia.com/cuda/nvblas/index.html>`_ libraries.
+This is a shared library only.
+
+Targets Created:
+
+- ``CUDA::nvblas``
+
+.. _`cuda_toolkit_nvGRAPH`:
+
+nvGRAPH
+"""""""
+
+The `nvGRAPH <https://docs.nvidia.com/cuda/nvgraph/index.html>`_ library.
+
+Targets Created:
+
+- ``CUDA::nvgraph``
+- ``CUDA::nvgraph_static``
+
+
+.. _`cuda_toolkit_nvJPEG`:
+
+nvJPEG
+""""""
+
+The `nvJPEG <https://docs.nvidia.com/cuda/nvjpeg/index.html>`_ library.
+Introduced in CUDA 10.
+
+Targets Created:
+
+- ``CUDA::nvjpeg``
+- ``CUDA::nvjpeg_static``
+
+.. _`cuda_toolkit_nvRTC`:
+
+nvRTC
+"""""
+
+The `nvRTC <https://docs.nvidia.com/cuda/nvrtc/index.html>`_ (Runtime Compilation) library.
+This is a shared library only.
+
+Targets Created:
+
+- ``CUDA::nvrtc``
+
+.. _`cuda_toolkit_nvml`:
+
+nvidia-ML
+"""""""""
+
+The `NVIDIA Management Library <https://developer.nvidia.com/nvidia-management-library-nvml>`_.
+This is a shared library only.
+
+Targets Created:
+
+- ``CUDA::nvml``
+
+.. _`cuda_toolkit_nvToolsExt`:
+
+nvToolsExt
+""""""""""
+
+The `NVIDIA Tools Extension <https://docs.nvidia.com/gameworks/content/gameworkslibrary/nvtx/nvidia_tools_extension_library_nvtx.htm>`_.
+This is a shared library only.
+
+Targets Created:
+
+- ``CUDA::nvToolsExt``
+
+.. _`cuda_toolkit_opencl`:
+
+OpenCL
+""""""
+
+The `NVIDIA OpenCL Library <https://developer.nvidia.com/opencl>`_.
+This is a shared library only.
+
+Targets Created:
+
+- ``CUDA::OpenCL``
+
+.. _`cuda_toolkit_cuLIBOS`:
+
+cuLIBOS
+"""""""
+
+The cuLIBOS library is a backend thread abstraction layer library which is
+static only. The ``CUDA::cublas_static``, ``CUDA::cusparse_static``,
+``CUDA::cufft_static``, ``CUDA::curand_static``, and (when implemented) NPP
+libraries all automatically have this dependency linked.
+
+Target Created:
+
+- ``CUDA::culibos``
+
+**Note**: direct usage of this target by consumers should not be necessary.
+
+.. _`cuda_toolkit_cuRAND`:
+
+
+
+Result variables
+^^^^^^^^^^^^^^^^
+
+``CUDAToolkit_FOUND``
+ A boolean specifying whether or not the CUDA Toolkit was found.
+
+``CUDAToolkit_VERSION``
+ The exact version of the CUDA Toolkit found (as reported by
+ ``nvcc --version``).
+
+``CUDAToolkit_VERSION_MAJOR``
+ The major version of the CUDA Toolkit.
+
+``CUDAToolkit_VERSION_MAJOR``
+ The minor version of the CUDA Toolkit.
+
+``CUDAToolkit_VERSION_PATCH``
+ The patch version of the CUDA Toolkit.
+
+``CUDAToolkit_BIN_DIR``
+ The path to the CUDA Toolkit library directory that contains the CUDA
+ executable ``nvcc``.
+
+``CUDAToolkit_INCLUDE_DIRS``
+ The path to the CUDA Toolkit ``include`` folder containing the header files
+ required to compile a project linking against CUDA.
+
+``CUDAToolkit_LIBRARY_DIR``
+ The path to the CUDA Toolkit library directory that contains the CUDA
+ Runtime library ``cudart``.
+
+``CUDAToolkit_TARGET_DIR``
+ The path to the CUDA Toolkit directory including the target architecture
+ when cross-compiling. When not cross-compiling this will be equivalant to
+ ``CUDAToolkit_ROOT_DIR``.
+
+``CUDAToolkit_NVCC_EXECUTABLE``
+ The path to the NVIDIA CUDA compiler ``nvcc``. Note that this path may
+ **not** be the same as
+ :variable:`CMAKE_CUDA_COMPILER <CMAKE_<LANG>_COMPILER>`. ``nvcc`` must be
+ found to determine the CUDA Toolkit version as well as determining other
+ features of the Toolkit. This variable is set for the convenience of
+ modules that depend on this one.
+
+
+#]=======================================================================]
+
+# NOTE: much of this was simply extracted from FindCUDA.cmake.
+
+# James Bigler, NVIDIA Corp (nvidia.com - jbigler)
+# Abe Stephens, SCI Institute -- http://www.sci.utah.edu/~abe/FindCuda.html
+#
+# Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved.
+#
+# Copyright (c) 2007-2009
+# Scientific Computing and Imaging Institute, University of Utah
+#
+# This code is licensed under the MIT License. See the FindCUDA.cmake script
+# for the text of the license.
+
+# The MIT License
+#
+# License for the specific language governing rights and limitations under
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+###############################################################################
+
+if(CMAKE_CUDA_COMPILER_LOADED AND NOT CUDAToolkit_BIN_DIR)
+ get_filename_component(cuda_dir "${CMAKE_CUDA_COMPILER}" DIRECTORY)
+ # use the already detected cuda compiler
+ set(CUDAToolkit_BIN_DIR "${cuda_dir}" CACHE PATH "")
+ mark_as_advanced(CUDAToolkit_BIN_DIR)
+ unset(cuda_dir)
+endif()
+
+# Try language- or user-provided path first.
+if(CUDAToolkit_BIN_DIR)
+ find_program(CUDAToolkit_NVCC_EXECUTABLE
+ NAMES nvcc nvcc.exe
+ PATHS ${CUDAToolkit_BIN_DIR}
+ NO_DEFAULT_PATH
+ )
+endif()
+
+# Search using CUDAToolkit_ROOT
+find_program(CUDAToolkit_NVCC_EXECUTABLE
+ NAMES nvcc nvcc.exe
+ PATHS ENV CUDA_PATH
+ PATH_SUFFIXES bin
+)
+
+# If the user specified CUDAToolkit_ROOT but nvcc could not be found, this is an error.
+if (NOT CUDAToolkit_NVCC_EXECUTABLE AND (DEFINED CUDAToolkit_ROOT OR DEFINED ENV{CUDAToolkit_ROOT}))
+ # Declare error messages now, print later depending on find_package args.
+ set(fail_base "Could not find nvcc executable in path specified by")
+ set(cuda_root_fail "${fail_base} CUDAToolkit_ROOT=${CUDAToolkit_ROOT}")
+ set(env_cuda_root_fail "${fail_base} environment variable CUDAToolkit_ROOT=$ENV{CUDAToolkit_ROOT}")
+
+ if (CUDAToolkit_FIND_REQUIRED)
+ if (DEFINED CUDAToolkit_ROOT)
+ message(FATAL_ERROR ${cuda_root_fail})
+ elseif (DEFINED ENV{CUDAToolkit_ROOT})
+ message(FATAL_ERROR ${env_cuda_root_fail})
+ endif()
+ else()
+ if (NOT CUDAToolkit_FIND_QUIETLY)
+ if (DEFINED CUDAToolkit_ROOT)
+ message(STATUS ${cuda_root_fail})
+ elseif (DEFINED ENV{CUDAToolkit_ROOT})
+ message(STATUS ${env_cuda_root_fail})
+ endif()
+ endif()
+ set(CUDAToolkit_FOUND FALSE)
+ unset(fail_base)
+ unset(cuda_root_fail)
+ unset(env_cuda_root_fail)
+ return()
+ endif()
+endif()
+
+# CUDAToolkit_ROOT cmake / env variable not specified, try platform defaults.
+#
+# - Linux: /usr/local/cuda-X.Y
+# - macOS: /Developer/NVIDIA/CUDA-X.Y
+# - Windows: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y
+#
+# We will also search the default symlink location /usr/local/cuda first since
+# if CUDAToolkit_ROOT is not specified, it is assumed that the symlinked
+# directory is the desired location.
+if (NOT CUDAToolkit_NVCC_EXECUTABLE)
+ if (UNIX)
+ if (NOT APPLE)
+ set(platform_base "/usr/local/cuda-")
+ else()
+ set(platform_base "/Developer/NVIDIA/CUDA-")
+ endif()
+ else()
+ set(platform_base "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v")
+ endif()
+
+ # Build out a descending list of possible cuda installations, e.g.
+ file(GLOB possible_paths "${platform_base}*")
+ # Iterate the glob results and create a descending list.
+ set(possible_versions)
+ foreach (p ${possible_paths})
+ # Extract version number from end of string
+ string(REGEX MATCH "[0-9][0-9]?\\.[0-9]$" p_version ${p})
+ if (IS_DIRECTORY ${p} AND p_version)
+ list(APPEND possible_versions ${p_version})
+ endif()
+ endforeach()
+
+ # Cannot use list(SORT) because that is alphabetical, we need numerical.
+ # NOTE: this is not an efficient sorting strategy. But even if a user had
+ # every possible version of CUDA installed, this wouldn't create any
+ # significant overhead.
+ set(versions)
+ foreach (v ${possible_versions})
+ list(LENGTH versions num_versions)
+ # First version, nothing to compare with so just append.
+ if (num_versions EQUAL 0)
+ list(APPEND versions ${v})
+ else()
+ # Loop through list. Insert at an index when comparison is
+ # VERSION_GREATER since we want a descending list. Duplicates will not
+ # happen since this came from a glob list of directories.
+ set(i 0)
+ set(early_terminate FALSE)
+ while (i LESS num_versions)
+ list(GET versions ${i} curr)
+ if (v VERSION_GREATER curr)
+ list(INSERT versions ${i} ${v})
+ set(early_terminate TRUE)
+ break()
+ endif()
+ math(EXPR i "${i} + 1")
+ endwhile()
+ # If it did not get inserted, place it at the end.
+ if (NOT early_terminate)
+ list(APPEND versions ${v})
+ endif()
+ endif()
+ endforeach()
+
+ # With a descending list of versions, populate possible paths to search.
+ set(search_paths)
+ foreach (v ${versions})
+ list(APPEND search_paths "${platform_base}${v}")
+ endforeach()
+
+ # Force the global default /usr/local/cuda to the front on Unix.
+ if (UNIX)
+ list(INSERT search_paths 0 "/usr/local/cuda")
+ endif()
+
+ # Now search for nvcc again using the platform default search paths.
+ find_program(CUDAToolkit_NVCC_EXECUTABLE
+ NAMES nvcc nvcc.exe
+ PATHS ${search_paths}
+ PATH_SUFFIXES bin
+ )
+
+ # We are done with these variables now, cleanup for caller.
+ unset(platform_base)
+ unset(possible_paths)
+ unset(possible_versions)
+ unset(versions)
+ unset(i)
+ unset(early_terminate)
+ unset(search_paths)
+
+ if (NOT CUDAToolkit_NVCC_EXECUTABLE)
+ if (CUDAToolkit_FIND_REQUIRED)
+ message(FATAL_ERROR "Could not find nvcc, please set CUDAToolkit_ROOT.")
+ elseif(NOT CUDAToolkit_FIND_QUIETLY)
+ message(STATUS "Could not find nvcc, please set CUDAToolkit_ROOT.")
+ endif()
+
+ set(CUDAToolkit_FOUND FALSE)
+ return()
+ endif()
+endif()
+
+if(NOT CUDAToolkit_BIN_DIR AND CUDAToolkit_NVCC_EXECUTABLE)
+ get_filename_component(cuda_dir "${CUDAToolkit_NVCC_EXECUTABLE}" DIRECTORY)
+ set(CUDAToolkit_BIN_DIR "${cuda_dir}" CACHE PATH "" FORCE)
+ mark_as_advanced(CUDAToolkit_BIN_DIR)
+ unset(cuda_dir)
+endif()
+
+if(CUDAToolkit_NVCC_EXECUTABLE AND
+ CUDAToolkit_NVCC_EXECUTABLE STREQUAL CMAKE_CUDA_COMPILER)
+ # Need to set these based off the already computed CMAKE_CUDA_COMPILER_VERSION value
+ # This if statement will always match, but is used to provide variables for MATCH 1,2,3...
+ if(CMAKE_CUDA_COMPILER_VERSION MATCHES [=[([0-9]+)\.([0-9]+)\.([0-9]+)]=])
+ set(CUDAToolkit_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ set(CUDAToolkit_VERSION_MINOR "${CMAKE_MATCH_2}")
+ set(CUDAToolkit_VERSION_PATCH "${CMAKE_MATCH_3}")
+ set(CUDAToolkit_VERSION "${CMAKE_CUDA_COMPILER_VERSION}")
+ endif()
+else()
+ # Compute the version by invoking nvcc
+ execute_process (COMMAND ${CUDAToolkit_NVCC_EXECUTABLE} "--version" OUTPUT_VARIABLE NVCC_OUT)
+ if(NVCC_OUT MATCHES [=[ V([0-9]+)\.([0-9]+)\.([0-9]+)]=])
+ set(CUDAToolkit_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ set(CUDAToolkit_VERSION_MINOR "${CMAKE_MATCH_2}")
+ set(CUDAToolkit_VERSION_PATCH "${CMAKE_MATCH_3}")
+ set(CUDAToolkit_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
+ endif()
+ unset(NVCC_OUT)
+endif()
+
+
+get_filename_component(CUDAToolkit_ROOT_DIR ${CUDAToolkit_BIN_DIR} DIRECTORY ABSOLUTE)
+
+# Handle cross compilation
+if(CMAKE_CROSSCOMPILING)
+ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a")
+ # Support for NVPACK
+ set (CUDAToolkit_TARGET_NAME "armv7-linux-androideabi")
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
+ # Support for arm cross compilation
+ set(CUDAToolkit_TARGET_NAME "armv7-linux-gnueabihf")
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
+ # Support for aarch64 cross compilation
+ if (ANDROID_ARCH_NAME STREQUAL "arm64")
+ set(CUDAToolkit_TARGET_NAME "aarch64-linux-androideabi")
+ else()
+ set(CUDAToolkit_TARGET_NAME "aarch64-linux")
+ endif (ANDROID_ARCH_NAME STREQUAL "arm64")
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ set(CUDAToolkit_TARGET_NAME "x86_64-linux")
+ endif()
+
+ if (EXISTS "${CUDAToolkit_ROOT_DIR}/targets/${CUDAToolkit_TARGET_NAME}")
+ set(CUDAToolkit_TARGET_DIR "${CUDAToolkit_ROOT_DIR}/targets/${CUDAToolkit_TARGET_NAME}")
+ # add known CUDA target root path to the set of directories we search for programs, libraries and headers
+ list(PREPEND CMAKE_FIND_ROOT_PATH "${CUDAToolkit_TARGET_DIR}")
+
+ # Mark that we need to pop the root search path changes after we have
+ # found all cuda libraries so that searches for our cross-compilation
+ # libraries work when another cuda sdk is in CMAKE_PREFIX_PATH or
+ # PATh
+ set(_CUDAToolkit_Pop_ROOT_PATH True)
+ endif()
+else()
+ # Not cross compiling
+ set(CUDAToolkit_TARGET_DIR "${CUDAToolkit_ROOT_DIR}")
+ # Now that we have the real ROOT_DIR, find components inside it.
+ list(APPEND CMAKE_PREFIX_PATH ${CUDAToolkit_ROOT_DIR})
+
+ # Mark that we need to pop the prefix path changes after we have
+ # found the cudart library.
+ set(_CUDAToolkit_Pop_Prefix True)
+endif()
+
+
+# Find the include/ directory
+find_path(CUDAToolkit_INCLUDE_DIR
+ NAMES cuda_runtime.h
+)
+
+# And find the CUDA Runtime Library libcudart
+find_library(CUDA_CUDART
+ NAMES cudart
+ PATH_SUFFIXES lib64 lib64/stubs lib/x64
+)
+if (NOT CUDA_CUDART AND NOT CUDAToolkit_FIND_QUIETLY)
+ message(STATUS "Unable to find cudart library.")
+endif()
+
+unset(CUDAToolkit_ROOT_DIR)
+if(_CUDAToolkit_Pop_Prefix)
+ list(REMOVE_AT CMAKE_PREFIX_PATH -1)
+ unset(_CUDAToolkit_Pop_Prefix)
+endif()
+
+#-----------------------------------------------------------------------------
+# Perform version comparison and validate all required variables are set.
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(CUDAToolkit
+ REQUIRED_VARS
+ CUDAToolkit_INCLUDE_DIR
+ CUDA_CUDART
+ CUDAToolkit_NVCC_EXECUTABLE
+ VERSION_VAR
+ CUDAToolkit_VERSION
+)
+mark_as_advanced(CUDA_CUDART
+ CUDAToolkit_INCLUDE_DIR
+ CUDAToolkit_NVCC_EXECUTABLE
+ )
+
+#-----------------------------------------------------------------------------
+# Construct result variables
+if(CUDAToolkit_FOUND)
+ set(CUDAToolkit_INCLUDE_DIRS ${CUDAToolkit_INCLUDE_DIR})
+ get_filename_component(CUDAToolkit_LIBRARY_DIR ${CUDA_CUDART} DIRECTORY ABSOLUTE)
+endif()
+
+#-----------------------------------------------------------------------------
+# Construct import targets
+if(CUDAToolkit_FOUND)
+
+ function(_CUDAToolkit_find_and_add_import_lib lib_name)
+ cmake_parse_arguments(arg "" "" "ALT;DEPS;EXTRA_PATH_SUFFIXES" ${ARGN})
+
+ set(search_names ${lib_name} ${arg_ALT})
+
+ find_library(CUDA_${lib_name}_LIBRARY
+ NAMES ${search_names}
+ HINTS ${CUDAToolkit_LIBRARY_DIR}
+ ENV CUDA_PATH
+ PATH_SUFFIXES nvidia/current lib64 lib64/stubs lib/x64 lib lib/stubs
+ ${arg_EXTRA_PATH_SUFFIXES}
+ )
+ mark_as_advanced(CUDA_${lib_name}_LIBRARY)
+
+ if (NOT TARGET CUDA::${lib_name} AND CUDA_${lib_name}_LIBRARY)
+ add_library(CUDA::${lib_name} IMPORTED INTERFACE)
+ target_include_directories(CUDA::${lib_name} SYSTEM INTERFACE "${CUDAToolkit_INCLUDE_DIRS}")
+ target_link_libraries(CUDA::${lib_name} INTERFACE "${CUDA_${lib_name}_LIBRARY}")
+ foreach(dep ${arg_DEPS})
+ if(TARGET CUDA::${dep})
+ target_link_libraries(CUDA::${lib_name} INTERFACE CUDA::${dep})
+ endif()
+ endforeach()
+ endif()
+ endfunction()
+
+ if(NOT TARGET CUDA::toolkit)
+ add_library(CUDA::toolkit IMPORTED INTERFACE)
+ target_include_directories(CUDA::toolkit SYSTEM INTERFACE "${CUDAToolkit_INCLUDE_DIRS}")
+ target_link_directories(CUDA::toolkit INTERFACE "${CUDAToolkit_LIBRARY_DIR}")
+ endif()
+
+ _CUDAToolkit_find_and_add_import_lib(cuda_driver ALT cuda)
+
+ _CUDAToolkit_find_and_add_import_lib(cudart)
+ _CUDAToolkit_find_and_add_import_lib(cudart_static)
+
+ # setup dependencies that are required for cudart_static when building
+ # on linux. These are generally only required when using the CUDA toolkit
+ # when CUDA language is disabled
+ if(NOT TARGET CUDA::cudart_static_deps
+ AND TARGET CUDA::cudart_static)
+
+ add_library(CUDA::cudart_static_deps IMPORTED INTERFACE)
+ target_link_libraries(CUDA::cudart_static INTERFACE CUDA::cudart_static_deps)
+
+ if(UNIX AND (CMAKE_C_COMPILER OR CMAKE_CXX_COMPILER))
+ find_package(Threads REQUIRED)
+ target_link_libraries(CUDA::cudart_static_deps INTERFACE Threads::Threads ${CMAKE_DL_LIBS})
+ endif()
+
+ if(UNIX AND NOT APPLE)
+ # On Linux, you must link against librt when using the static cuda runtime.
+ find_library(CUDAToolkit_rt_LIBRARY rt)
+ mark_as_advanced(CUDAToolkit_rt_LIBRARY)
+ if(NOT CUDAToolkit_rt_LIBRARY)
+ message(WARNING "Could not find librt library, needed by CUDA::cudart_static")
+ else()
+ target_link_libraries(CUDA::cudart_static_deps INTERFACE ${CUDAToolkit_rt_LIBRARY})
+ endif()
+ endif()
+ endif()
+
+ _CUDAToolkit_find_and_add_import_lib(culibos) # it's a static library
+ foreach (cuda_lib cublas cufft curand cusparse nppc nvjpeg)
+ _CUDAToolkit_find_and_add_import_lib(${cuda_lib})
+ _CUDAToolkit_find_and_add_import_lib(${cuda_lib}_static DEPS culibos)
+ endforeach()
+
+ # cuFFTW depends on cuFFT
+ _CUDAToolkit_find_and_add_import_lib(cufftw DEPS cufft)
+ _CUDAToolkit_find_and_add_import_lib(cufftw DEPS cufft_static)
+
+ # cuSOLVER depends on cuBLAS, and cuSPARSE
+ _CUDAToolkit_find_and_add_import_lib(cusolver DEPS cublas cusparse)
+ _CUDAToolkit_find_and_add_import_lib(cusolver_static DEPS cublas_static cusparse_static culibos)
+
+ # nvGRAPH depends on cuRAND, and cuSOLVER.
+ _CUDAToolkit_find_and_add_import_lib(nvgraph DEPS curand cusolver)
+ _CUDAToolkit_find_and_add_import_lib(nvgraph_static DEPS curand_static cusolver_static)
+
+ # Process the majority of the NPP libraries.
+ foreach (cuda_lib nppial nppicc nppidei nppif nppig nppim nppist nppitc npps nppicom nppisu)
+ _CUDAToolkit_find_and_add_import_lib(${cuda_lib} DEPS nppc)
+ _CUDAToolkit_find_and_add_import_lib(${cuda_lib}_static DEPS nppc_static)
+ endforeach()
+
+ _CUDAToolkit_find_and_add_import_lib(cupti
+ EXTRA_PATH_SUFFIXES ../extras/CUPTI/lib64/
+ ../extras/CUPTI/lib/)
+ _CUDAToolkit_find_and_add_import_lib(cupti_static
+ EXTRA_PATH_SUFFIXES ../extras/CUPTI/lib64/
+ ../extras/CUPTI/lib/)
+
+ _CUDAToolkit_find_and_add_import_lib(nvrtc DEPS cuda_driver)
+
+ _CUDAToolkit_find_and_add_import_lib(nvml ALT nvidia-ml nvml)
+
+ if(WIN32)
+ # nvtools can be installed outside the CUDA toolkit directory
+ # so prefer the NVTOOLSEXT_PATH windows only environment variable
+ # In addition on windows the most common name is nvToolsExt64_1
+ find_library(CUDA_nvToolsExt_LIBRARY
+ NAMES nvToolsExt64_1 nvToolsExt64 nvToolsExt
+ PATHS ENV NVTOOLSEXT_PATH
+ ENV CUDA_PATH
+ PATH_SUFFIXES lib/x64 lib
+ )
+ endif()
+ _CUDAToolkit_find_and_add_import_lib(nvToolsExt ALT nvToolsExt64)
+
+ _CUDAToolkit_find_and_add_import_lib(OpenCL)
+endif()
+
+if(_CUDAToolkit_Pop_ROOT_PATH)
+ list(REMOVE_AT CMAKE_FIND_ROOT_PATH 0)
+ unset(_CUDAToolkit_Pop_ROOT_PATH)
+endif()
diff --git a/share/cmake-3.17/Modules/FindCURL.cmake b/share/cmake-3.17/Modules/FindCURL.cmake
new file mode 100644
index 0000000..919babc
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindCURL.cmake
@@ -0,0 +1,203 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindCURL
+--------
+
+Find the native CURL headers and libraries.
+
+This module accept optional COMPONENTS to check supported features and
+protocols::
+
+ PROTOCOLS: ICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP LDAPS POP3
+ POP3S RTMP RTSP SCP SFTP SMB SMBS SMTP SMTPS TELNET TFTP
+ FEATURES: SSL IPv6 UnixSockets libz AsynchDNS IDN GSS-API PSL SPNEGO
+ Kerberos NTLM NTLM_WB TLS-SRP HTTP2 HTTPS-proxy
+
+IMPORTED Targets
+^^^^^^^^^^^^^^^^
+
+This module defines :prop_tgt:`IMPORTED` target ``CURL::libcurl``, if
+curl has been found.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+``CURL_FOUND``
+ "True" if ``curl`` found.
+
+``CURL_INCLUDE_DIRS``
+ where to find ``curl``/``curl.h``, etc.
+
+``CURL_LIBRARIES``
+ List of libraries when using ``curl``.
+
+``CURL_VERSION_STRING``
+ The version of ``curl`` found.
+
+CURL CMake
+^^^^^^^^^^
+
+If CURL was built using the CMake buildsystem then it provides its own
+``CURLConfig.cmake`` file for use with the :command:`find_package` command's
+config mode. This module looks for this file and, if found,
+returns its results with no further action.
+
+Set ``CURL_NO_CURL_CMAKE`` to ``ON`` to disable this search.
+
+#]=======================================================================]
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+
+if(NOT CURL_NO_CURL_CMAKE)
+ # do a find package call to specifically look for the CMake version
+ # of curl
+ find_package(CURL QUIET NO_MODULE)
+ mark_as_advanced(CURL_DIR)
+
+ # if we found the CURL cmake package then we are done, and
+ # can print what we found and return.
+ if(CURL_FOUND)
+ find_package_handle_standard_args(CURL HANDLE_COMPONENTS CONFIG_MODE)
+ return()
+ endif()
+endif()
+
+find_package(PkgConfig QUIET)
+if(PKG_CONFIG_FOUND)
+ pkg_check_modules(PC_CURL QUIET libcurl)
+ if(PC_CURL_FOUND)
+ set(CURL_VERSION_STRING ${PC_CURL_VERSION})
+ pkg_get_variable(CURL_SUPPORTED_PROTOCOLS libcurl supported_protocols)
+ pkg_get_variable(CURL_SUPPORTED_FEATURES libcurl supported_features)
+ endif()
+endif()
+
+# Look for the header file.
+find_path(CURL_INCLUDE_DIR
+ NAMES curl/curl.h
+ HINTS ${PC_CURL_INCLUDE_DIRS})
+mark_as_advanced(CURL_INCLUDE_DIR)
+
+if(NOT CURL_LIBRARY)
+ # Look for the library (sorted from most current/relevant entry to least).
+ find_library(CURL_LIBRARY_RELEASE NAMES
+ curl
+ # Windows MSVC prebuilts:
+ curllib
+ libcurl_imp
+ curllib_static
+ # Windows older "Win32 - MSVC" prebuilts (libcurl.lib, e.g. libcurl-7.15.5-win32-msvc.zip):
+ libcurl
+ HINTS ${PC_CURL_LIBRARY_DIRS}
+ )
+ mark_as_advanced(CURL_LIBRARY_RELEASE)
+
+ find_library(CURL_LIBRARY_DEBUG NAMES
+ # Windows MSVC CMake builds in debug configuration on vcpkg:
+ libcurl-d_imp
+ libcurl-d
+ HINTS ${PC_CURL_LIBRARY_DIRS}
+ )
+ mark_as_advanced(CURL_LIBRARY_DEBUG)
+
+ include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
+ select_library_configurations(CURL)
+endif()
+
+if(CURL_INCLUDE_DIR AND NOT CURL_VERSION_STRING)
+ foreach(_curl_version_header curlver.h curl.h)
+ if(EXISTS "${CURL_INCLUDE_DIR}/curl/${_curl_version_header}")
+ file(STRINGS "${CURL_INCLUDE_DIR}/curl/${_curl_version_header}" curl_version_str REGEX "^#define[\t ]+LIBCURL_VERSION[\t ]+\".*\"")
+
+ string(REGEX REPLACE "^#define[\t ]+LIBCURL_VERSION[\t ]+\"([^\"]*)\".*" "\\1" CURL_VERSION_STRING "${curl_version_str}")
+ unset(curl_version_str)
+ break()
+ endif()
+ endforeach()
+endif()
+
+if(CURL_FIND_COMPONENTS)
+ set(CURL_KNOWN_PROTOCOLS ICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP LDAPS POP3 POP3S RTMP RTSP SCP SFTP SMB SMBS SMTP SMTPS TELNET TFTP)
+ set(CURL_KNOWN_FEATURES SSL IPv6 UnixSockets libz AsynchDNS IDN GSS-API PSL SPNEGO Kerberos NTLM NTLM_WB TLS-SRP HTTP2 HTTPS-proxy)
+ foreach(component IN LISTS CURL_KNOWN_PROTOCOLS CURL_KNOWN_FEATURES)
+ set(CURL_${component}_FOUND FALSE)
+ endforeach()
+ if(NOT PC_CURL_FOUND)
+ find_program(CURL_CONFIG_EXECUTABLE NAMES curl-config)
+ if(CURL_CONFIG_EXECUTABLE)
+ execute_process(COMMAND ${CURL_CONFIG_EXECUTABLE} --version
+ OUTPUT_VARIABLE CURL_CONFIG_VERSION_STRING
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND ${CURL_CONFIG_EXECUTABLE} --feature
+ OUTPUT_VARIABLE CURL_CONFIG_FEATURES_STRING
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REPLACE "\n" ";" CURL_SUPPORTED_FEATURES "${CURL_CONFIG_FEATURES_STRING}")
+ execute_process(COMMAND ${CURL_CONFIG_EXECUTABLE} --protocols
+ OUTPUT_VARIABLE CURL_CONFIG_PROTOCOLS_STRING
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REPLACE "\n" ";" CURL_SUPPORTED_PROTOCOLS "${CURL_CONFIG_PROTOCOLS_STRING}")
+ endif()
+
+ endif()
+ foreach(component IN LISTS CURL_FIND_COMPONENTS)
+ list(FIND CURL_KNOWN_PROTOCOLS ${component} _found)
+ if(_found)
+ list(FIND CURL_SUPPORTED_PROTOCOLS ${component} _found)
+ if(_found)
+ set(CURL_${component}_FOUND TRUE)
+ elseif(CURL_FIND_REQUIRED)
+ message(FATAL_ERROR "CURL: Required protocol ${component} is not found")
+ endif()
+ else()
+ list(FIND CURL_SUPPORTED_FEATURES ${component} _found)
+ if(_found)
+ set(CURL_${component}_FOUND TRUE)
+ elseif(CURL_FIND_REQUIRED)
+ message(FATAL_ERROR "CURL: Required feature ${component} is not found")
+ endif()
+ endif()
+ endforeach()
+endif()
+
+find_package_handle_standard_args(CURL
+ REQUIRED_VARS CURL_LIBRARY CURL_INCLUDE_DIR
+ VERSION_VAR CURL_VERSION_STRING
+ HANDLE_COMPONENTS)
+
+if(CURL_FOUND)
+ set(CURL_LIBRARIES ${CURL_LIBRARY})
+ set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR})
+
+ if(NOT TARGET CURL::libcurl)
+ add_library(CURL::libcurl UNKNOWN IMPORTED)
+ set_target_properties(CURL::libcurl PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}")
+
+ if(EXISTS "${CURL_LIBRARY}")
+ set_target_properties(CURL::libcurl PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_LOCATION "${CURL_LIBRARY}")
+ endif()
+ if(CURL_LIBRARY_RELEASE)
+ set_property(TARGET CURL::libcurl APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(CURL::libcurl PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_LOCATION_RELEASE "${CURL_LIBRARY_RELEASE}")
+ endif()
+ if(CURL_LIBRARY_DEBUG)
+ set_property(TARGET CURL::libcurl APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(CURL::libcurl PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_LOCATION_DEBUG "${CURL_LIBRARY_DEBUG}")
+ endif()
+ endif()
+endif()
diff --git a/share/cmake-3.16/Modules/FindCVS.cmake b/share/cmake-3.17/Modules/FindCVS.cmake
index f819800..f819800 100644
--- a/share/cmake-3.16/Modules/FindCVS.cmake
+++ b/share/cmake-3.17/Modules/FindCVS.cmake
diff --git a/share/cmake-3.16/Modules/FindCoin3D.cmake b/share/cmake-3.17/Modules/FindCoin3D.cmake
index 301e70b..301e70b 100644
--- a/share/cmake-3.16/Modules/FindCoin3D.cmake
+++ b/share/cmake-3.17/Modules/FindCoin3D.cmake
diff --git a/share/cmake-3.16/Modules/FindCups.cmake b/share/cmake-3.17/Modules/FindCups.cmake
index 4e8232d..4e8232d 100644
--- a/share/cmake-3.16/Modules/FindCups.cmake
+++ b/share/cmake-3.17/Modules/FindCups.cmake
diff --git a/share/cmake-3.17/Modules/FindCurses.cmake b/share/cmake-3.17/Modules/FindCurses.cmake
new file mode 100644
index 0000000..ba56078
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindCurses.cmake
@@ -0,0 +1,270 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindCurses
+----------
+
+Find the curses or ncurses include file and library.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+``CURSES_FOUND``
+ True if Curses is found.
+``CURSES_INCLUDE_DIRS``
+ The include directories needed to use Curses.
+``CURSES_LIBRARIES``
+ The libraries needed to use Curses.
+``CURSES_CFLAGS``
+ Parameters which ought be given to C/C++ compilers when using Curses.
+``CURSES_HAVE_CURSES_H``
+ True if curses.h is available.
+``CURSES_HAVE_NCURSES_H``
+ True if ncurses.h is available.
+``CURSES_HAVE_NCURSES_NCURSES_H``
+ True if ``ncurses/ncurses.h`` is available.
+``CURSES_HAVE_NCURSES_CURSES_H``
+ True if ``ncurses/curses.h`` is available.
+
+Set ``CURSES_NEED_NCURSES`` to ``TRUE`` before the
+``find_package(Curses)`` call if NCurses functionality is required.
+Set ``CURSES_NEED_WIDE`` to ``TRUE`` before the
+``find_package(Curses)`` call if unicode functionality is required.
+
+Backward Compatibility
+^^^^^^^^^^^^^^^^^^^^^^
+
+The following variable are provided for backward compatibility:
+
+``CURSES_INCLUDE_DIR``
+ Path to Curses include. Use ``CURSES_INCLUDE_DIRS`` instead.
+``CURSES_LIBRARY``
+ Path to Curses library. Use ``CURSES_LIBRARIES`` instead.
+#]=======================================================================]
+
+include(${CMAKE_CURRENT_LIST_DIR}/CheckLibraryExists.cmake)
+
+# we don't know anything about cursesw, so only ncurses
+# may be ncursesw
+if(NOT CURSES_NEED_WIDE)
+ set(NCURSES_LIBRARY_NAME "ncurses")
+ set(CURSES_FORM_LIBRARY_NAME "form")
+else()
+ set(NCURSES_LIBRARY_NAME "ncursesw")
+ set(CURSES_FORM_LIBRARY_NAME "formw")
+ # Also, if we are searching for wide curses - we are actually searching
+ # for ncurses, we don't know about any other unicode version.
+ set(CURSES_NEED_NCURSES TRUE)
+endif()
+
+find_library(CURSES_CURSES_LIBRARY NAMES curses)
+
+find_library(CURSES_NCURSES_LIBRARY NAMES "${NCURSES_LIBRARY_NAME}" )
+set(CURSES_USE_NCURSES FALSE)
+
+if(CURSES_NCURSES_LIBRARY AND ((NOT CURSES_CURSES_LIBRARY) OR CURSES_NEED_NCURSES))
+ set(CURSES_USE_NCURSES TRUE)
+endif()
+# http://cygwin.com/ml/cygwin-announce/2010-01/msg00002.html
+# cygwin ncurses stopped providing curses.h symlinks see above
+# message. Cygwin is an ncurses package, so force ncurses on
+# cygwin if the curses.h is missing
+if(CYGWIN)
+ if (CURSES_NEED_WIDE)
+ if(NOT EXISTS /usr/include/ncursesw/curses.h)
+ set(CURSES_USE_NCURSES TRUE)
+ endif()
+ else()
+ if(NOT EXISTS /usr/include/curses.h)
+ set(CURSES_USE_NCURSES TRUE)
+ endif()
+ endif()
+endif()
+
+
+# Not sure the logic is correct here.
+# If NCurses is required, use the function wsyncup() to check if the library
+# has NCurses functionality (at least this is where it breaks on NetBSD).
+# If wsyncup is in curses, use this one.
+# If not, try to find ncurses and check if this has the symbol.
+# Once the ncurses library is found, search the ncurses.h header first, but
+# some web pages also say that even with ncurses there is not always a ncurses.h:
+# http://osdir.com/ml/gnome.apps.mc.devel/2002-06/msg00029.html
+# So at first try ncurses.h, if not found, try to find curses.h under the same
+# prefix as the library was found, if still not found, try curses.h with the
+# default search paths.
+if(CURSES_CURSES_LIBRARY AND CURSES_NEED_NCURSES)
+ include(${CMAKE_CURRENT_LIST_DIR}/CMakePushCheckState.cmake)
+ cmake_push_check_state()
+ set(CMAKE_REQUIRED_QUIET ${Curses_FIND_QUIETLY})
+ CHECK_LIBRARY_EXISTS("${CURSES_CURSES_LIBRARY}"
+ wsyncup "" CURSES_CURSES_HAS_WSYNCUP)
+
+ if(CURSES_NCURSES_LIBRARY AND NOT CURSES_CURSES_HAS_WSYNCUP)
+ CHECK_LIBRARY_EXISTS("${CURSES_NCURSES_LIBRARY}"
+ wsyncup "" CURSES_NCURSES_HAS_WSYNCUP)
+ if( CURSES_NCURSES_HAS_WSYNCUP)
+ set(CURSES_USE_NCURSES TRUE)
+ endif()
+ endif()
+ cmake_pop_check_state()
+
+endif()
+
+if(CURSES_USE_NCURSES)
+ get_filename_component(_cursesLibDir "${CURSES_NCURSES_LIBRARY}" PATH)
+ get_filename_component(_cursesParentDir "${_cursesLibDir}" PATH)
+
+ # Use CURSES_NCURSES_INCLUDE_PATH if set, for compatibility.
+ if(CURSES_NCURSES_INCLUDE_PATH)
+ if (CURSES_NEED_WIDE)
+ find_path(CURSES_INCLUDE_PATH
+ NAMES ncursesw/ncurses.h ncursesw/curses.h ncursesw.h cursesw.h
+ PATHS ${CURSES_NCURSES_INCLUDE_PATH}
+ NO_DEFAULT_PATH
+ )
+ else()
+ find_path(CURSES_INCLUDE_PATH
+ NAMES ncurses/ncurses.h ncurses/curses.h ncurses.h curses.h
+ PATHS ${CURSES_NCURSES_INCLUDE_PATH}
+ NO_DEFAULT_PATH
+ )
+ endif()
+ endif()
+
+ if (CURSES_NEED_WIDE)
+ set(CURSES_TINFO_LIBRARY_NAME tinfow)
+ find_path(CURSES_INCLUDE_PATH
+ NAMES ncursesw/ncurses.h ncursesw/curses.h ncursesw.h cursesw.h
+ HINTS "${_cursesParentDir}/include"
+ )
+ else()
+ set(CURSES_TINFO_LIBRARY_NAME tinfo)
+ find_path(CURSES_INCLUDE_PATH
+ NAMES ncurses/ncurses.h ncurses/curses.h ncurses.h curses.h
+ HINTS "${_cursesParentDir}/include"
+ )
+ endif()
+
+ # Previous versions of FindCurses provided these values.
+ if(NOT DEFINED CURSES_LIBRARY)
+ set(CURSES_LIBRARY "${CURSES_NCURSES_LIBRARY}")
+ endif()
+
+ CHECK_LIBRARY_EXISTS("${CURSES_NCURSES_LIBRARY}"
+ cbreak "" CURSES_NCURSES_HAS_CBREAK)
+ if(NOT CURSES_NCURSES_HAS_CBREAK)
+ find_library(CURSES_EXTRA_LIBRARY "${CURSES_TINFO_LIBRARY_NAME}" HINTS "${_cursesLibDir}")
+ find_library(CURSES_EXTRA_LIBRARY "${CURSES_TINFO_LIBRARY_NAME}" )
+
+ mark_as_advanced(
+ CURSES_EXTRA_LIBRARY
+ )
+ endif()
+else()
+ get_filename_component(_cursesLibDir "${CURSES_CURSES_LIBRARY}" PATH)
+ get_filename_component(_cursesParentDir "${_cursesLibDir}" PATH)
+
+ #We can't find anything with CURSES_NEED_WIDE because we know
+ #only about ncursesw unicode curses version
+ if(NOT CURSES_NEED_WIDE)
+ find_path(CURSES_INCLUDE_PATH
+ NAMES curses.h
+ HINTS "${_cursesParentDir}/include"
+ )
+ endif()
+
+ # Previous versions of FindCurses provided these values.
+ if(NOT DEFINED CURSES_CURSES_H_PATH)
+ set(CURSES_CURSES_H_PATH "${CURSES_INCLUDE_PATH}")
+ endif()
+ if(NOT DEFINED CURSES_LIBRARY)
+ set(CURSES_LIBRARY "${CURSES_CURSES_LIBRARY}")
+ endif()
+endif()
+
+# Report whether each possible header name exists in the include directory.
+if(NOT DEFINED CURSES_HAVE_NCURSES_NCURSES_H)
+ if(CURSES_NEED_WIDE)
+ if(EXISTS "${CURSES_INCLUDE_PATH}/ncursesw/ncurses.h")
+ set(CURSES_HAVE_NCURSES_NCURSES_H "${CURSES_INCLUDE_PATH}/ncursesw/ncurses.h")
+ endif()
+ elseif(EXISTS "${CURSES_INCLUDE_PATH}/ncurses/ncurses.h")
+ set(CURSES_HAVE_NCURSES_NCURSES_H "${CURSES_INCLUDE_PATH}/ncurses/ncurses.h")
+ endif()
+ if(NOT DEFINED CURSES_HAVE_NCURSES_NCURSES_H)
+ set(CURSES_HAVE_NCURSES_NCURSES_H "CURSES_HAVE_NCURSES_NCURSES_H-NOTFOUND")
+ endif()
+endif()
+if(NOT DEFINED CURSES_HAVE_NCURSES_CURSES_H)
+ if(CURSES_NEED_WIDE)
+ if(EXISTS "${CURSES_INCLUDE_PATH}/ncursesw/curses.h")
+ set(CURSES_HAVE_NCURSES_CURSES_H "${CURSES_INCLUDE_PATH}/ncursesw/curses.h")
+ endif()
+ elseif(EXISTS "${CURSES_INCLUDE_PATH}/ncurses/curses.h")
+ set(CURSES_HAVE_NCURSES_CURSES_H "${CURSES_INCLUDE_PATH}/ncurses/curses.h")
+ endif()
+ if(NOT DEFINED CURSES_HAVE_NCURSES_CURSES_H)
+ set(CURSES_HAVE_NCURSES_CURSES_H "CURSES_HAVE_NCURSES_CURSES_H-NOTFOUND")
+ endif()
+endif()
+if(NOT CURSES_NEED_WIDE)
+ #ncursesw can't be found for this paths
+ if(NOT DEFINED CURSES_HAVE_NCURSES_H)
+ if(EXISTS "${CURSES_INCLUDE_PATH}/ncurses.h")
+ set(CURSES_HAVE_NCURSES_H "${CURSES_INCLUDE_PATH}/ncurses.h")
+ else()
+ set(CURSES_HAVE_NCURSES_H "CURSES_HAVE_NCURSES_H-NOTFOUND")
+ endif()
+ endif()
+ if(NOT DEFINED CURSES_HAVE_CURSES_H)
+ if(EXISTS "${CURSES_INCLUDE_PATH}/curses.h")
+ set(CURSES_HAVE_CURSES_H "${CURSES_INCLUDE_PATH}/curses.h")
+ else()
+ set(CURSES_HAVE_CURSES_H "CURSES_HAVE_CURSES_H-NOTFOUND")
+ endif()
+ endif()
+endif()
+
+find_library(CURSES_FORM_LIBRARY "${CURSES_FORM_LIBRARY_NAME}" HINTS "${_cursesLibDir}")
+find_library(CURSES_FORM_LIBRARY "${CURSES_FORM_LIBRARY_NAME}" )
+
+# Previous versions of FindCurses provided these values.
+if(NOT DEFINED FORM_LIBRARY)
+ set(FORM_LIBRARY "${CURSES_FORM_LIBRARY}")
+endif()
+
+# Need to provide the *_LIBRARIES
+set(CURSES_LIBRARIES ${CURSES_LIBRARY})
+
+if(CURSES_EXTRA_LIBRARY)
+ set(CURSES_LIBRARIES ${CURSES_LIBRARIES} ${CURSES_EXTRA_LIBRARY})
+endif()
+
+if(CURSES_FORM_LIBRARY)
+ set(CURSES_LIBRARIES ${CURSES_LIBRARIES} ${CURSES_FORM_LIBRARY})
+endif()
+
+# Provide the *_INCLUDE_DIRS and *_CFLAGS results.
+set(CURSES_INCLUDE_DIRS ${CURSES_INCLUDE_PATH})
+set(CURSES_INCLUDE_DIR ${CURSES_INCLUDE_PATH}) # compatibility
+
+find_package(PkgConfig QUIET)
+if(PKG_CONFIG_FOUND)
+ pkg_check_modules(NCURSES QUIET ${NCURSES_LIBRARY_NAME})
+ set(CURSES_CFLAGS ${NCURSES_CFLAGS_OTHER})
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Curses DEFAULT_MSG
+ CURSES_LIBRARY CURSES_INCLUDE_PATH)
+
+mark_as_advanced(
+ CURSES_INCLUDE_PATH
+ CURSES_CURSES_LIBRARY
+ CURSES_NCURSES_LIBRARY
+ CURSES_FORM_LIBRARY
+ )
diff --git a/share/cmake-3.16/Modules/FindCxxTest.cmake b/share/cmake-3.17/Modules/FindCxxTest.cmake
index 3fc0e93..3fc0e93 100644
--- a/share/cmake-3.16/Modules/FindCxxTest.cmake
+++ b/share/cmake-3.17/Modules/FindCxxTest.cmake
diff --git a/share/cmake-3.16/Modules/FindCygwin.cmake b/share/cmake-3.17/Modules/FindCygwin.cmake
index 5bbc802..5bbc802 100644
--- a/share/cmake-3.16/Modules/FindCygwin.cmake
+++ b/share/cmake-3.17/Modules/FindCygwin.cmake
diff --git a/share/cmake-3.17/Modules/FindDCMTK.cmake b/share/cmake-3.17/Modules/FindDCMTK.cmake
new file mode 100644
index 0000000..b2e00df
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindDCMTK.cmake
@@ -0,0 +1,322 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindDCMTK
+---------
+
+Find DICOM ToolKit (DCMTK) libraries and applications
+
+The module defines the following variables::
+
+ DCMTK_INCLUDE_DIRS - Directories to include to use DCMTK
+ DCMTK_LIBRARIES - Files to link against to use DCMTK
+ DCMTK_FOUND - If false, don't try to use DCMTK
+ DCMTK_DIR - (optional) Source directory for DCMTK
+
+Compatibility
+^^^^^^^^^^^^^
+
+This module is able to find a version of DCMTK that does or does not export
+a *DCMTKConfig.cmake* file. It applies a two step process:
+
+* Step 1: Attempt to find DCMTK version providing a *DCMTKConfig.cmake* file.
+* Step 2: If step 1 failed, rely on *FindDCMTK.cmake* to set `DCMTK_*` variables details below.
+
+
+`Recent DCMTK
+<http://git.dcmtk.org/web?p=dcmtk.git;a=commit;h=662ae187c493c6b9a73dd5e3875372cebd0c11fe>`_
+provides a *DCMTKConfig.cmake* :manual:`package configuration file
+<cmake-packages(7)>`. To exclusively use the package configuration file
+(recommended when possible), pass the `NO_MODULE` option to
+:command:`find_package`. For example, `find_package(DCMTK NO_MODULE)`.
+This requires official DCMTK snapshot *3.6.1_20140617* or newer.
+
+
+Until all clients update to the more recent DCMTK, build systems will need
+to support different versions of DCMTK.
+
+On any given system, the following combinations of DCMTK versions could be
+considered:
+
++--------+---------------------+-----------------------+-------------------+
+| | SYSTEM DCMTK | LOCAL DCMTK | Supported ? |
++--------+---------------------+-----------------------+-------------------+
+| Case A | NA | [ ] DCMTKConfig | YES |
++--------+---------------------+-----------------------+-------------------+
+| Case B | NA | [X] DCMTKConfig | YES |
++--------+---------------------+-----------------------+-------------------+
+| Case C | [ ] DCMTKConfig | NA | YES |
++--------+---------------------+-----------------------+-------------------+
+| Case D | [X] DCMTKConfig | NA | YES |
++--------+---------------------+-----------------------+-------------------+
+| Case E | [ ] DCMTKConfig | [ ] DCMTKConfig | YES (*) |
++--------+---------------------+-----------------------+-------------------+
+| Case F | [X] DCMTKConfig | [ ] DCMTKConfig | NO |
++--------+---------------------+-----------------------+-------------------+
+| Case G | [ ] DCMTKConfig | [X] DCMTKConfig | YES |
++--------+---------------------+-----------------------+-------------------+
+| Case H | [X] DCMTKConfig | [X] DCMTKConfig | YES |
++--------+---------------------+-----------------------+-------------------+
+
+ (*) See Troubleshooting section.
+
+Legend:
+
+ NA ...............: Means that no System or Local DCMTK is available
+
+ [ ] DCMTKConfig ..: Means that the version of DCMTK does NOT export a DCMTKConfig.cmake file.
+
+ [X] DCMTKConfig ..: Means that the version of DCMTK exports a DCMTKConfig.cmake file.
+
+
+Troubleshooting
+^^^^^^^^^^^^^^^
+
+What to do if my project finds a different version of DCMTK?
+
+Remove DCMTK entry from the CMake cache per :command:`find_package`
+documentation.
+#]=======================================================================]
+
+#
+# Written for VXL by Amitha Perera.
+# Upgraded for GDCM by Mathieu Malaterre.
+# Modified for EasyViz by Thomas Sondergaard.
+#
+
+set(_dcmtk_dir_description "The directory of DCMTK build or install tree.")
+
+# Ensure that DCMTK_DIR is set to a reasonable default value
+# so that DCMTK libraries can be found on a standard Unix distribution.
+# It also overwrite the value of DCMTK_DIR after this one has been
+# set by a successful discovery of DCMTK by the unpatched FindDCMTK.cmake module
+# distributed with CMake (as of 0167cea)
+if(NOT DCMTK_DIR OR DCMTK_DIR STREQUAL "/usr/include/dcmtk")
+ set(DCMTK_DIR "/usr" CACHE PATH ${_dcmtk_dir_description} FORCE)
+endif()
+
+set(_SAVED_DCMTK_DIR ${DCMTK_DIR})
+
+#
+# Step1: Attempt to find a version of DCMTK providing a DCMTKConfig.cmake file.
+#
+if(NOT DCMTK_FIND_QUIETLY)
+ message(CHECK_START "Trying to find DCMTK expecting DCMTKConfig.cmake")
+endif()
+find_package(DCMTK QUIET NO_MODULE)
+if(DCMTK_FOUND
+ AND NOT "x" STREQUAL "x${DCMTK_LIBRARIES}"
+ AND NOT "x" STREQUAL "x${DCMTK_INCLUDE_DIRS}")
+
+ if(NOT DCMTK_FIND_QUIETLY)
+ message(CHECK_PASS "ok")
+ endif()
+ return()
+else()
+ if(NOT DCMTK_FIND_QUIETLY)
+ message(CHECK_FAIL "failed")
+ endif()
+endif()
+
+if(NOT DCMTK_FIND_QUIETLY)
+ message(STATUS "Trying to find DCMTK relying on FindDCMTK.cmake")
+endif()
+
+# Restore the value reset by the previous call to 'find_package(DCMTK QUIET NO_MODULE)'
+set(DCMTK_DIR ${_SAVED_DCMTK_DIR} CACHE PATH ${_dcmtk_dir_description} FORCE)
+
+
+#
+# Step2: Attempt to find a version of DCMTK that does NOT provide a DCMTKConfig.cmake file.
+#
+
+# prefer DCMTK_DIR over default system paths like /usr/lib
+if(DCMTK_DIR)
+ set(CMAKE_PREFIX_PATH ${DCMTK_DIR}/lib ${CMAKE_PREFIX_PATH}) # this is given to FIND_LIBRARY or FIND_PATH
+endif()
+
+# Find all libraries, store debug and release separately
+foreach(lib
+ dcmpstat
+ dcmsr
+ dcmsign
+ dcmtls
+ dcmqrdb
+ dcmnet
+ dcmjpeg
+ dcmimage
+ dcmimgle
+ dcmdata
+ oflog
+ ofstd
+ ijg12
+ ijg16
+ ijg8
+ )
+
+ # Find Release libraries
+ find_library(DCMTK_${lib}_LIBRARY_RELEASE
+ ${lib}
+ PATHS
+ ${DCMTK_DIR}/${lib}/libsrc
+ ${DCMTK_DIR}/${lib}/libsrc/Release
+ ${DCMTK_DIR}/${lib}/Release
+ ${DCMTK_DIR}/lib
+ ${DCMTK_DIR}/lib/Release
+ ${DCMTK_DIR}/dcmjpeg/lib${lib}/Release
+ NO_DEFAULT_PATH
+ )
+
+ # Find Debug libraries
+ find_library(DCMTK_${lib}_LIBRARY_DEBUG
+ ${lib}${DCMTK_CMAKE_DEBUG_POSTFIX}
+ PATHS
+ ${DCMTK_DIR}/${lib}/libsrc
+ ${DCMTK_DIR}/${lib}/libsrc/Debug
+ ${DCMTK_DIR}/${lib}/Debug
+ ${DCMTK_DIR}/lib
+ ${DCMTK_DIR}/lib/Debug
+ ${DCMTK_DIR}/dcmjpeg/lib${lib}/Debug
+ NO_DEFAULT_PATH
+ )
+
+ mark_as_advanced(DCMTK_${lib}_LIBRARY_RELEASE)
+ mark_as_advanced(DCMTK_${lib}_LIBRARY_DEBUG)
+
+ # Add libraries to variable according to build type
+ if(DCMTK_${lib}_LIBRARY_RELEASE)
+ list(APPEND DCMTK_LIBRARIES optimized ${DCMTK_${lib}_LIBRARY_RELEASE})
+ endif()
+
+ if(DCMTK_${lib}_LIBRARY_DEBUG)
+ list(APPEND DCMTK_LIBRARIES debug ${DCMTK_${lib}_LIBRARY_DEBUG})
+ endif()
+
+endforeach()
+
+set(CMAKE_THREAD_LIBS_INIT)
+if(DCMTK_oflog_LIBRARY_RELEASE OR DCMTK_oflog_LIBRARY_DEBUG)
+ # Hack - Not having a DCMTKConfig.cmake file to read the settings from, we will attempt to
+ # find the library in all cases.
+ # Ideally, pthread library should be discovered only if DCMTK_WITH_THREADS is enabled.
+ find_package(Threads)
+endif()
+
+if(CMAKE_THREAD_LIBS_INIT)
+ list(APPEND DCMTK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
+endif()
+
+#
+# SPECIFIC CASE FOR DCMTK BUILD DIR as DCMTK_DIR
+# (as opposed to a DCMTK install dir)
+# Have to find the source directory.
+if(EXISTS ${DCMTK_DIR}/CMakeCache.txt)
+ load_cache(${DCMTK_DIR} READ_WITH_PREFIX "EXT"
+ DCMTK_SOURCE_DIR)
+ if(NOT EXISTS ${EXTDCMTK_SOURCE_DIR})
+ message(FATAL_ERROR
+ "DCMTK build directory references
+nonexistent DCMTK source directory ${EXTDCMTK_SOURCE_DIR}")
+ endif()
+endif()
+
+set(DCMTK_config_TEST_HEADER osconfig.h)
+set(DCMTK_dcmdata_TEST_HEADER dctypes.h)
+set(DCMTK_dcmimage_TEST_HEADER dicoimg.h)
+set(DCMTK_dcmimgle_TEST_HEADER dcmimage.h)
+set(DCMTK_dcmjpeg_TEST_HEADER djdecode.h)
+set(DCMTK_dcmnet_TEST_HEADER assoc.h)
+set(DCMTK_dcmpstat_TEST_HEADER dcmpstat.h)
+set(DCMTK_dcmqrdb_TEST_HEADER dcmqrdba.h)
+set(DCMTK_dcmsign_TEST_HEADER sicert.h)
+set(DCMTK_dcmsr_TEST_HEADER dsrtree.h)
+set(DCMTK_dcmtls_TEST_HEADER tlslayer.h)
+set(DCMTK_ofstd_TEST_HEADER ofstdinc.h)
+set(DCMTK_oflog_TEST_HEADER oflog.h)
+set(DCMTK_dcmjpls_TEST_HEADER djlsutil.h)
+
+set(DCMTK_INCLUDE_DIR_NAMES)
+
+foreach(dir
+ config
+ dcmdata
+ dcmimage
+ dcmimgle
+ dcmjpeg
+ dcmjpls
+ dcmnet
+ dcmpstat
+ dcmqrdb
+ dcmsign
+ dcmsr
+ dcmtls
+ ofstd
+ oflog)
+ if(EXTDCMTK_SOURCE_DIR)
+ set(SOURCE_DIR_PATH
+ ${EXTDCMTK_SOURCE_DIR}/${dir}/include/dcmtk/${dir})
+ endif()
+ find_path(DCMTK_${dir}_INCLUDE_DIR
+ ${DCMTK_${dir}_TEST_HEADER}
+ PATHS
+ ${DCMTK_DIR}/${dir}/include
+ ${DCMTK_DIR}/${dir}
+ ${DCMTK_DIR}/include/dcmtk/${dir}
+ ${DCMTK_DIR}/${dir}/include/dcmtk/${dir}
+ ${DCMTK_DIR}/include/${dir}
+ ${SOURCE_DIR_PATH}
+ )
+ mark_as_advanced(DCMTK_${dir}_INCLUDE_DIR)
+ list(APPEND DCMTK_INCLUDE_DIR_NAMES DCMTK_${dir}_INCLUDE_DIR)
+
+ if(DCMTK_${dir}_INCLUDE_DIR)
+ # add the 'include' path so eg
+ #include "dcmtk/dcmimgle/dcmimage.h"
+ # works
+ get_filename_component(_include ${DCMTK_${dir}_INCLUDE_DIR} PATH)
+ get_filename_component(_include ${_include} PATH)
+ list(APPEND
+ DCMTK_INCLUDE_DIRS
+ ${DCMTK_${dir}_INCLUDE_DIR}
+ ${_include})
+ endif()
+endforeach()
+
+list(APPEND DCMTK_INCLUDE_DIRS ${DCMTK_DIR}/include)
+
+if(WIN32)
+ list(APPEND DCMTK_LIBRARIES netapi32 wsock32)
+endif()
+
+if(DCMTK_ofstd_INCLUDE_DIR)
+ get_filename_component(DCMTK_dcmtk_INCLUDE_DIR
+ ${DCMTK_ofstd_INCLUDE_DIR}
+ PATH
+ CACHE)
+ list(APPEND DCMTK_INCLUDE_DIRS ${DCMTK_dcmtk_INCLUDE_DIR})
+ mark_as_advanced(DCMTK_dcmtk_INCLUDE_DIR)
+endif()
+
+# Compatibility: This variable is deprecated
+set(DCMTK_INCLUDE_DIR ${DCMTK_INCLUDE_DIRS})
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(DCMTK
+ REQUIRED_VARS ${DCMTK_INCLUDE_DIR_NAMES} DCMTK_LIBRARIES
+ FAIL_MESSAGE "Please set DCMTK_DIR and re-run configure")
+
+# Workaround bug in packaging of DCMTK 3.6.0 on Debian.
+# See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637687
+if(DCMTK_FOUND AND UNIX AND NOT APPLE)
+ include(${CMAKE_CURRENT_LIST_DIR}/CheckIncludeFiles.cmake)
+ set(CMAKE_REQUIRED_FLAGS )
+ set(CMAKE_REQUIRED_DEFINITIONS )
+ set(CMAKE_REQUIRED_INCLUDES ${DCMTK_INCLUDE_DIRS})
+ set(CMAKE_REQUIRED_LIBRARIES ${DCMTK_LIBRARIES})
+ set(CMAKE_REQUIRED_QUIET ${DCMTK_FIND_QUIETLY})
+ check_include_files("dcmtk/config/osconfig.h;dcmtk/ofstd/ofstream.h" DCMTK_HAVE_CONFIG_H_OPTIONAL LANGUAGE CXX)
+ if(NOT DCMTK_HAVE_CONFIG_H_OPTIONAL)
+ set(DCMTK_DEFINITIONS "HAVE_CONFIG_H")
+ endif()
+endif()
diff --git a/share/cmake-3.16/Modules/FindDart.cmake b/share/cmake-3.17/Modules/FindDart.cmake
index 0492578..0492578 100644
--- a/share/cmake-3.16/Modules/FindDart.cmake
+++ b/share/cmake-3.17/Modules/FindDart.cmake
diff --git a/share/cmake-3.16/Modules/FindDevIL.cmake b/share/cmake-3.17/Modules/FindDevIL.cmake
index 9984943..9984943 100644
--- a/share/cmake-3.16/Modules/FindDevIL.cmake
+++ b/share/cmake-3.17/Modules/FindDevIL.cmake
diff --git a/share/cmake-3.16/Modules/FindDoxygen.cmake b/share/cmake-3.17/Modules/FindDoxygen.cmake
index faa03f9..faa03f9 100644
--- a/share/cmake-3.16/Modules/FindDoxygen.cmake
+++ b/share/cmake-3.17/Modules/FindDoxygen.cmake
diff --git a/share/cmake-3.16/Modules/FindEXPAT.cmake b/share/cmake-3.17/Modules/FindEXPAT.cmake
index 15b419a..15b419a 100644
--- a/share/cmake-3.16/Modules/FindEXPAT.cmake
+++ b/share/cmake-3.17/Modules/FindEXPAT.cmake
diff --git a/share/cmake-3.16/Modules/FindEnvModules.cmake b/share/cmake-3.17/Modules/FindEnvModules.cmake
index 4dd5116..4dd5116 100644
--- a/share/cmake-3.16/Modules/FindEnvModules.cmake
+++ b/share/cmake-3.17/Modules/FindEnvModules.cmake
diff --git a/share/cmake-3.17/Modules/FindFLEX.cmake b/share/cmake-3.17/Modules/FindFLEX.cmake
new file mode 100644
index 0000000..90e5f86
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindFLEX.cmake
@@ -0,0 +1,256 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindFLEX
+--------
+
+Find Fast Lexical Analyzer (Flex) executable and provides a macro
+to generate custom build rules
+
+
+
+The module defines the following variables:
+
+::
+
+ FLEX_FOUND - True is flex executable is found
+ FLEX_EXECUTABLE - the path to the flex executable
+ FLEX_VERSION - the version of flex
+ FLEX_LIBRARIES - The flex libraries
+ FLEX_INCLUDE_DIRS - The path to the flex headers
+
+
+
+The minimum required version of flex can be specified using the
+standard syntax, e.g. :command:`find_package(FLEX 2.5.13)`
+
+
+
+If flex is found on the system, the module provides the macro:
+
+::
+
+ FLEX_TARGET(Name FlexInput FlexOutput
+ [COMPILE_FLAGS <string>]
+ [DEFINES_FILE <string>]
+ )
+
+which creates a custom command to generate the ``FlexOutput`` file from
+the ``FlexInput`` file. If ``COMPILE_FLAGS`` option is specified, the next
+parameter is added to the flex command line. If flex is configured to
+output a header file, the ``DEFINES_FILE`` option may be used to specify its
+name. Name is an alias used to get details of this custom command.
+Indeed the macro defines the following variables:
+
+::
+
+ FLEX_${Name}_DEFINED - true is the macro ran successfully
+ FLEX_${Name}_OUTPUTS - the source file generated by the custom rule, an
+ alias for FlexOutput
+ FLEX_${Name}_INPUT - the flex source file, an alias for ${FlexInput}
+ FLEX_${Name}_OUTPUT_HEADER - the header flex output, if any.
+
+
+
+Flex scanners often use tokens defined by Bison: the code generated
+by Flex depends of the header generated by Bison. This module also
+defines a macro:
+
+::
+
+ ADD_FLEX_BISON_DEPENDENCY(FlexTarget BisonTarget)
+
+which adds the required dependency between a scanner and a parser
+where ``FlexTarget`` and ``BisonTarget`` are the first parameters of
+respectively ``FLEX_TARGET`` and ``BISON_TARGET`` macros.
+
+::
+
+ ====================================================================
+ Example:
+
+
+
+::
+
+ find_package(BISON)
+ find_package(FLEX)
+
+
+
+::
+
+ BISON_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp)
+ FLEX_TARGET(MyScanner lexer.l ${CMAKE_CURRENT_BINARY_DIR}/lexer.cpp)
+ ADD_FLEX_BISON_DEPENDENCY(MyScanner MyParser)
+
+
+
+::
+
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+ add_executable(Foo
+ Foo.cc
+ ${BISON_MyParser_OUTPUTS}
+ ${FLEX_MyScanner_OUTPUTS}
+ )
+ target_link_libraries(Foo ${FLEX_LIBRARIES})
+ ====================================================================
+#]=======================================================================]
+
+find_program(FLEX_EXECUTABLE NAMES flex win_flex DOC "path to the flex executable")
+mark_as_advanced(FLEX_EXECUTABLE)
+
+find_library(FL_LIBRARY NAMES fl
+ DOC "Path to the fl library")
+
+find_path(FLEX_INCLUDE_DIR FlexLexer.h
+ DOC "Path to the flex headers")
+
+mark_as_advanced(FL_LIBRARY FLEX_INCLUDE_DIR)
+
+set(FLEX_INCLUDE_DIRS ${FLEX_INCLUDE_DIR})
+set(FLEX_LIBRARIES ${FL_LIBRARY})
+
+if(FLEX_EXECUTABLE)
+
+ execute_process(COMMAND ${FLEX_EXECUTABLE} --version
+ OUTPUT_VARIABLE FLEX_version_output
+ ERROR_VARIABLE FLEX_version_error
+ RESULT_VARIABLE FLEX_version_result
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT ${FLEX_version_result} EQUAL 0)
+ if(FLEX_FIND_REQUIRED)
+ message(SEND_ERROR "Command \"${FLEX_EXECUTABLE} --version\" failed with output:\n${FLEX_version_output}\n${FLEX_version_error}")
+ else()
+ message("Command \"${FLEX_EXECUTABLE} --version\" failed with output:\n${FLEX_version_output}\n${FLEX_version_error}\nFLEX_VERSION will not be available")
+ endif()
+ else()
+ # older versions of flex printed "/full/path/to/executable version X.Y"
+ # newer versions use "basename(executable) X.Y"
+ get_filename_component(FLEX_EXE_NAME_WE "${FLEX_EXECUTABLE}" NAME_WE)
+ get_filename_component(FLEX_EXE_EXT "${FLEX_EXECUTABLE}" EXT)
+ string(REGEX REPLACE "^.*${FLEX_EXE_NAME_WE}(${FLEX_EXE_EXT})?\"? (version )?([0-9]+[^ ]*)( .*)?$" "\\3"
+ FLEX_VERSION "${FLEX_version_output}")
+ unset(FLEX_EXE_EXT)
+ unset(FLEX_EXE_NAME_WE)
+ endif()
+
+ #============================================================
+ # FLEX_TARGET (public macro)
+ #============================================================
+ #
+ macro(FLEX_TARGET Name Input Output)
+
+ set(FLEX_TARGET_PARAM_OPTIONS)
+ set(FLEX_TARGET_PARAM_ONE_VALUE_KEYWORDS
+ COMPILE_FLAGS
+ DEFINES_FILE
+ )
+ set(FLEX_TARGET_PARAM_MULTI_VALUE_KEYWORDS)
+
+ cmake_parse_arguments(
+ FLEX_TARGET_ARG
+ "${FLEX_TARGET_PARAM_OPTIONS}"
+ "${FLEX_TARGET_PARAM_ONE_VALUE_KEYWORDS}"
+ "${FLEX_TARGET_MULTI_VALUE_KEYWORDS}"
+ ${ARGN}
+ )
+
+ set(FLEX_TARGET_usage "FLEX_TARGET(<Name> <Input> <Output> [COMPILE_FLAGS <string>] [DEFINES_FILE <string>]")
+
+ if(NOT "${FLEX_TARGET_ARG_UNPARSED_ARGUMENTS}" STREQUAL "")
+ message(SEND_ERROR ${FLEX_TARGET_usage})
+ else()
+
+ cmake_policy(GET CMP0098 _flex_CMP0098
+ PARENT_SCOPE # undocumented, do not use outside of CMake
+ )
+ set(_flex_INPUT "${Input}")
+ if("x${_flex_CMP0098}x" STREQUAL "xNEWx")
+ set(_flex_WORKING_DIR "${CMAKE_CURRENT_BINARY_DIR}")
+ if(NOT IS_ABSOLUTE "${_flex_INPUT}")
+ set(_flex_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/${_flex_INPUT}")
+ endif()
+ else()
+ set(_flex_WORKING_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
+ endif()
+ unset(_flex_CMP0098)
+
+ set(_flex_OUTPUT "${Output}")
+ if(NOT IS_ABSOLUTE ${_flex_OUTPUT})
+ set(_flex_OUTPUT "${_flex_WORKING_DIR}/${_flex_OUTPUT}")
+ endif()
+ set(_flex_TARGET_OUTPUTS "${_flex_OUTPUT}")
+
+ set(_flex_EXE_OPTS "")
+ if(NOT "${FLEX_TARGET_ARG_COMPILE_FLAGS}" STREQUAL "")
+ set(_flex_EXE_OPTS "${FLEX_TARGET_ARG_COMPILE_FLAGS}")
+ separate_arguments(_flex_EXE_OPTS)
+ endif()
+
+ set(_flex_OUTPUT_HEADER "")
+ if(NOT "${FLEX_TARGET_ARG_DEFINES_FILE}" STREQUAL "")
+ set(_flex_OUTPUT_HEADER "${FLEX_TARGET_ARG_DEFINES_FILE}")
+ if(IS_ABSOLUTE "${_flex_OUTPUT_HEADER}")
+ set(_flex_OUTPUT_HEADER_ABS "${_flex_OUTPUT_HEADER}")
+ else()
+ set(_flex_OUTPUT_HEADER_ABS "${_flex_WORKING_DIR}/${_flex_OUTPUT_HEADER}")
+ endif()
+ list(APPEND _flex_TARGET_OUTPUTS "${_flex_OUTPUT_HEADER_ABS}")
+ list(APPEND _flex_EXE_OPTS --header-file=${_flex_OUTPUT_HEADER_ABS})
+ endif()
+
+ get_filename_component(_flex_EXE_NAME_WE "${FLEX_EXECUTABLE}" NAME_WE)
+ add_custom_command(OUTPUT ${_flex_TARGET_OUTPUTS}
+ COMMAND ${FLEX_EXECUTABLE} ${_flex_EXE_OPTS} -o${_flex_OUTPUT} ${_flex_INPUT}
+ VERBATIM
+ DEPENDS ${_flex_INPUT}
+ COMMENT "[FLEX][${Name}] Building scanner with ${_flex_EXE_NAME_WE} ${FLEX_VERSION}"
+ WORKING_DIRECTORY ${_flex_WORKING_DIR})
+
+ set(FLEX_${Name}_DEFINED TRUE)
+ set(FLEX_${Name}_OUTPUTS ${_flex_TARGET_OUTPUTS})
+ set(FLEX_${Name}_INPUT ${_flex_INPUT})
+ set(FLEX_${Name}_COMPILE_FLAGS ${_flex_EXE_OPTS})
+ set(FLEX_${Name}_OUTPUT_HEADER ${_flex_OUTPUT_HEADER})
+
+ unset(_flex_EXE_NAME_WE)
+ unset(_flex_EXE_OPTS)
+ unset(_flex_INPUT)
+ unset(_flex_OUTPUT)
+ unset(_flex_OUTPUT_HEADER)
+ unset(_flex_OUTPUT_HEADER_ABS)
+ unset(_flex_TARGET_OUTPUTS)
+ unset(_flex_WORKING_DIR)
+
+ endif()
+ endmacro()
+ #============================================================
+
+
+ #============================================================
+ # ADD_FLEX_BISON_DEPENDENCY (public macro)
+ #============================================================
+ #
+ macro(ADD_FLEX_BISON_DEPENDENCY FlexTarget BisonTarget)
+
+ if(NOT FLEX_${FlexTarget}_OUTPUTS)
+ message(SEND_ERROR "Flex target `${FlexTarget}' does not exist.")
+ endif()
+
+ if(NOT BISON_${BisonTarget}_OUTPUT_HEADER)
+ message(SEND_ERROR "Bison target `${BisonTarget}' does not exist.")
+ endif()
+
+ set_source_files_properties(${FLEX_${FlexTarget}_OUTPUTS}
+ PROPERTIES OBJECT_DEPENDS ${BISON_${BisonTarget}_OUTPUT_HEADER})
+ endmacro()
+ #============================================================
+
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(FLEX REQUIRED_VARS FLEX_EXECUTABLE
+ VERSION_VAR FLEX_VERSION)
diff --git a/share/cmake-3.16/Modules/FindFLTK.cmake b/share/cmake-3.17/Modules/FindFLTK.cmake
index e273642..e273642 100644
--- a/share/cmake-3.16/Modules/FindFLTK.cmake
+++ b/share/cmake-3.17/Modules/FindFLTK.cmake
diff --git a/share/cmake-3.16/Modules/FindFLTK2.cmake b/share/cmake-3.17/Modules/FindFLTK2.cmake
index a43f7a4..a43f7a4 100644
--- a/share/cmake-3.16/Modules/FindFLTK2.cmake
+++ b/share/cmake-3.17/Modules/FindFLTK2.cmake
diff --git a/share/cmake-3.16/Modules/FindFontconfig.cmake b/share/cmake-3.17/Modules/FindFontconfig.cmake
index a6f0180..a6f0180 100644
--- a/share/cmake-3.16/Modules/FindFontconfig.cmake
+++ b/share/cmake-3.17/Modules/FindFontconfig.cmake
diff --git a/share/cmake-3.16/Modules/FindFreetype.cmake b/share/cmake-3.17/Modules/FindFreetype.cmake
index 3e6a177..3e6a177 100644
--- a/share/cmake-3.16/Modules/FindFreetype.cmake
+++ b/share/cmake-3.17/Modules/FindFreetype.cmake
diff --git a/share/cmake-3.16/Modules/FindGCCXML.cmake b/share/cmake-3.17/Modules/FindGCCXML.cmake
index e6c7f24..e6c7f24 100644
--- a/share/cmake-3.16/Modules/FindGCCXML.cmake
+++ b/share/cmake-3.17/Modules/FindGCCXML.cmake
diff --git a/share/cmake-3.16/Modules/FindGDAL.cmake b/share/cmake-3.17/Modules/FindGDAL.cmake
index fde84d4..fde84d4 100644
--- a/share/cmake-3.16/Modules/FindGDAL.cmake
+++ b/share/cmake-3.17/Modules/FindGDAL.cmake
diff --git a/share/cmake-3.16/Modules/FindGIF.cmake b/share/cmake-3.17/Modules/FindGIF.cmake
index d5a143e..d5a143e 100644
--- a/share/cmake-3.16/Modules/FindGIF.cmake
+++ b/share/cmake-3.17/Modules/FindGIF.cmake
diff --git a/share/cmake-3.17/Modules/FindGLEW.cmake b/share/cmake-3.17/Modules/FindGLEW.cmake
new file mode 100644
index 0000000..27ffa13
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindGLEW.cmake
@@ -0,0 +1,342 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindGLEW
+--------
+
+Find the OpenGL Extension Wrangler Library (GLEW)
+
+Input Variables
+^^^^^^^^^^^^^^^
+
+The following variables may be set to influence this module's behavior:
+
+``GLEW_USE_STATIC_LIBS``
+ to find and create :prop_tgt:`IMPORTED` target for static linkage.
+
+``GLEW_VERBOSE``
+ to output a detailed log of this module.
+
+Imported Targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :ref:`Imported Targets <Imported Targets>`:
+
+
+``GLEW::glew``
+ The GLEW shared library.
+``GLEW::glew_s``
+ The GLEW static library, if ``GLEW_USE_STATIC_LIBS`` is set to ``TRUE``.
+``GLEW::GLEW``
+ Duplicates either ``GLEW::glew`` or ``GLEW::glew_s`` based on availability.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+``GLEW_INCLUDE_DIRS``
+ include directories for GLEW
+``GLEW_LIBRARIES``
+ libraries to link against GLEW
+``GLEW_SHARED_LIBRARIES``
+ libraries to link against shared GLEW
+``GLEW_STATIC_LIBRARIES``
+ libraries to link against static GLEW
+``GLEW_FOUND``
+ true if GLEW has been found and can be used
+``GLEW_VERSION``
+ GLEW version
+``GLEW_VERSION_MAJOR``
+ GLEW major version
+``GLEW_VERSION_MINOR``
+ GLEW minor version
+``GLEW_VERSION_MICRO``
+ GLEW micro version
+
+#]=======================================================================]
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+
+find_package(GLEW CONFIG QUIET)
+
+if(GLEW_FOUND)
+ find_package_handle_standard_args(GLEW DEFAULT_MSG GLEW_CONFIG)
+ return()
+endif()
+
+if(GLEW_VERBOSE)
+ message(STATUS "FindGLEW: did not find GLEW CMake config file. Searching for libraries.")
+endif()
+
+if(APPLE)
+ find_package(OpenGL QUIET)
+
+ if(OpenGL_FOUND)
+ if(GLEW_VERBOSE)
+ message(STATUS "FindGLEW: Found OpenGL Framework.")
+ message(STATUS "FindGLEW: OPENGL_LIBRARIES: ${OPENGL_LIBRARIES}")
+ endif()
+ else()
+ if(GLEW_VERBOSE)
+ message(STATUS "FindGLEW: could not find GLEW library.")
+ endif()
+ return()
+ endif()
+endif()
+
+
+function(__glew_set_find_library_suffix shared_or_static)
+ if((UNIX AND NOT APPLE) AND "${shared_or_static}" MATCHES "SHARED")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" PARENT_SCOPE)
+ elseif((UNIX AND NOT APPLE) AND "${shared_or_static}" MATCHES "STATIC")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" PARENT_SCOPE)
+ elseif(APPLE AND "${shared_or_static}" MATCHES "SHARED")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib;.so" PARENT_SCOPE)
+ elseif(APPLE AND "${shared_or_static}" MATCHES "STATIC")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" PARENT_SCOPE)
+ elseif(WIN32 AND "${shared_or_static}" MATCHES "SHARED")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" PARENT_SCOPE)
+ elseif(WIN32 AND "${shared_or_static}" MATCHES "STATIC")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib;.dll.a" PARENT_SCOPE)
+ endif()
+
+ if(GLEW_VERBOSE)
+ message(STATUS "FindGLEW: CMAKE_FIND_LIBRARY_SUFFIXES for ${shared_or_static}: ${CMAKE_FIND_LIBRARY_SUFFIXES}")
+ endif()
+endfunction()
+
+
+if(GLEW_VERBOSE)
+ if(DEFINED GLEW_USE_STATIC_LIBS)
+ message(STATUS "FindGLEW: GLEW_USE_STATIC_LIBS: ${GLEW_USE_STATIC_LIBS}.")
+ else()
+ message(STATUS "FindGLEW: GLEW_USE_STATIC_LIBS is undefined. Treated as FALSE.")
+ endif()
+endif()
+
+find_path(GLEW_INCLUDE_DIR GL/glew.h)
+mark_as_advanced(GLEW_INCLUDE_DIR)
+
+set(GLEW_INCLUDE_DIRS ${GLEW_INCLUDE_DIR})
+
+if(GLEW_VERBOSE)
+ message(STATUS "FindGLEW: GLEW_INCLUDE_DIR: ${GLEW_INCLUDE_DIR}")
+ message(STATUS "FindGLEW: GLEW_INCLUDE_DIRS: ${GLEW_INCLUDE_DIRS}")
+endif()
+
+if("${CMAKE_GENERATOR_PLATFORM}" MATCHES "x64" OR "${CMAKE_GENERATOR}" MATCHES "Win64")
+ set(_arch "x64")
+else()
+ set(_arch "Win32")
+endif()
+
+
+set(__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+
+__glew_set_find_library_suffix(SHARED)
+
+find_library(GLEW_SHARED_LIBRARY_RELEASE
+ NAMES GLEW glew glew32
+ PATH_SUFFIXES lib lib64 libx32 lib/Release/${_arch}
+ PATHS ENV GLEW_ROOT)
+
+find_library(GLEW_SHARED_LIBRARY_DEBUG
+ NAMES GLEWd glewd glew32d
+ PATH_SUFFIXES lib lib64
+ PATHS ENV GLEW_ROOT)
+
+
+__glew_set_find_library_suffix(STATIC)
+
+find_library(GLEW_STATIC_LIBRARY_RELEASE
+ NAMES GLEW glew glew32s
+ PATH_SUFFIXES lib lib64 libx32 lib/Release/${_arch}
+ PATHS ENV GLEW_ROOT)
+
+find_library(GLEW_STATIC_LIBRARY_DEBUG
+ NAMES GLEWds glewds glew32ds
+ PATH_SUFFIXES lib lib64
+ PATHS ENV GLEW_ROOT)
+
+set(CMAKE_FIND_LIBRARY_SUFFIXES ${__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES})
+unset(__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES)
+
+include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
+
+select_library_configurations(GLEW_SHARED)
+select_library_configurations(GLEW_STATIC)
+
+if(NOT GLEW_USE_STATIC_LIBS)
+ set(GLEW_LIBRARIES ${GLEW_SHARED_LIBRARY})
+else()
+ set(GLEW_LIBRARIES ${GLEW_STATIC_LIBRARY})
+endif()
+
+
+if(GLEW_VERBOSE)
+ message(STATUS "FindGLEW: GLEW_SHARED_LIBRARY_RELEASE: ${GLEW_SHARED_LIBRARY_RELEASE}")
+ message(STATUS "FindGLEW: GLEW_STATIC_LIBRARY_RELEASE: ${GLEW_STATIC_LIBRARY_RELEASE}")
+ message(STATUS "FindGLEW: GLEW_SHARED_LIBRARY_DEBUG: ${GLEW_SHARED_LIBRARY_DEBUG}")
+ message(STATUS "FindGLEW: GLEW_STATIC_LIBRARY_DEBUG: ${GLEW_STATIC_LIBRARY_DEBUG}")
+ message(STATUS "FindGLEW: GLEW_SHARED_LIBRARY: ${GLEW_SHARED_LIBRARY}")
+ message(STATUS "FindGLEW: GLEW_STATIC_LIBRARY: ${GLEW_STATIC_LIBRARY}")
+ message(STATUS "FindGLEW: GLEW_LIBRARIES: ${GLEW_LIBRARIES}")
+endif()
+
+
+# Read version from GL/glew.h file
+if(EXISTS "${GLEW_INCLUDE_DIR}/GL/glew.h")
+ file(STRINGS "${GLEW_INCLUDE_DIR}/GL/glew.h" _contents REGEX "^VERSION_.+ [0-9]+")
+ if(_contents)
+ string(REGEX REPLACE ".*VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" GLEW_VERSION_MAJOR "${_contents}")
+ string(REGEX REPLACE ".*VERSION_MINOR[ \t]+([0-9]+).*" "\\1" GLEW_VERSION_MINOR "${_contents}")
+ string(REGEX REPLACE ".*VERSION_MICRO[ \t]+([0-9]+).*" "\\1" GLEW_VERSION_MICRO "${_contents}")
+ set(GLEW_VERSION "${GLEW_VERSION_MAJOR}.${GLEW_VERSION_MINOR}.${GLEW_VERSION_MICRO}")
+ endif()
+endif()
+
+if(GLEW_VERBOSE)
+ message(STATUS "FindGLEW: GLEW_VERSION_MAJOR: ${GLEW_VERSION_MAJOR}")
+ message(STATUS "FindGLEW: GLEW_VERSION_MINOR: ${GLEW_VERSION_MINOR}")
+ message(STATUS "FindGLEW: GLEW_VERSION_MICRO: ${GLEW_VERSION_MICRO}")
+ message(STATUS "FindGLEW: GLEW_VERSION: ${GLEW_VERSION}")
+endif()
+
+find_package_handle_standard_args(GLEW
+ REQUIRED_VARS GLEW_INCLUDE_DIRS GLEW_LIBRARIES
+ VERSION_VAR GLEW_VERSION)
+
+if(NOT GLEW_FOUND)
+ if(GLEW_VERBOSE)
+ message(STATUS "FindGLEW: could not find GLEW library.")
+ endif()
+ return()
+endif()
+
+
+if(NOT TARGET GLEW::glew AND NOT GLEW_USE_STATIC_LIBS)
+ if(GLEW_VERBOSE)
+ message(STATUS "FindGLEW: Creating GLEW::glew imported target.")
+ endif()
+
+ add_library(GLEW::glew UNKNOWN IMPORTED)
+
+ set_target_properties(GLEW::glew
+ PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
+
+ if(APPLE)
+ set_target_properties(GLEW::glew
+ PROPERTIES INTERFACE_LINK_LIBRARIES OpenGL::GL)
+ endif()
+
+ if(GLEW_SHARED_LIBRARY_RELEASE)
+ set_property(TARGET GLEW::glew
+ APPEND
+ PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+
+ set_target_properties(GLEW::glew
+ PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_SHARED_LIBRARY_RELEASE}")
+ endif()
+
+ if(GLEW_SHARED_LIBRARY_DEBUG)
+ set_property(TARGET GLEW::glew
+ APPEND
+ PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
+
+ set_target_properties(GLEW::glew
+ PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_SHARED_LIBRARY_DEBUG}")
+ endif()
+
+elseif(NOT TARGET GLEW::glew_s AND GLEW_USE_STATIC_LIBS)
+ if(GLEW_VERBOSE)
+ message(STATUS "FindGLEW: Creating GLEW::glew_s imported target.")
+ endif()
+
+ add_library(GLEW::glew_s UNKNOWN IMPORTED)
+
+ set_target_properties(GLEW::glew_s
+ PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
+
+ if(APPLE)
+ set_target_properties(GLEW::glew_s
+ PROPERTIES INTERFACE_LINK_LIBRARIES OpenGL::GL)
+ endif()
+
+ if(GLEW_STATIC_LIBRARY_RELEASE)
+ set_property(TARGET GLEW::glew_s
+ APPEND
+ PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+
+ set_target_properties(GLEW::glew_s
+ PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_STATIC_LIBRARY_RELEASE}")
+ endif()
+
+ if(GLEW_STATIC_LIBRARY_DEBUG)
+ set_property(TARGET GLEW::glew_s
+ APPEND
+ PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
+
+ set_target_properties(GLEW::glew_s
+ PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_STATIC_LIBRARY_DEBUG}")
+ endif()
+endif()
+
+if(NOT TARGET GLEW::GLEW)
+ if(GLEW_VERBOSE)
+ message(STATUS "FindGLEW: Creating GLEW::GLEW imported target.")
+ endif()
+
+ add_library(GLEW::GLEW UNKNOWN IMPORTED)
+
+ set_target_properties(GLEW::GLEW
+ PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
+
+ if(APPLE)
+ set_target_properties(GLEW::GLEW
+ PROPERTIES INTERFACE_LINK_LIBRARIES OpenGL::GL)
+ endif()
+
+ if(TARGET GLEW::glew)
+ if(GLEW_SHARED_LIBRARY_RELEASE)
+ set_property(TARGET GLEW::GLEW
+ APPEND
+ PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+
+ set_target_properties(GLEW::GLEW
+ PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_SHARED_LIBRARY_RELEASE}")
+ endif()
+
+ if(GLEW_SHARED_LIBRARY_DEBUG)
+ set_property(TARGET GLEW::GLEW
+ APPEND
+ PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
+
+ set_target_properties(GLEW::GLEW
+ PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_SHARED_LIBRARY_DEBUG}")
+ endif()
+
+ elseif(TARGET GLEW::glew_s)
+ if(GLEW_STATIC_LIBRARY_RELEASE)
+ set_property(TARGET GLEW::GLEW
+ APPEND
+ PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+
+ set_target_properties(GLEW::GLEW
+ PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_STATIC_LIBRARY_RELEASE}")
+ endif()
+
+ if(GLEW_STATIC_LIBRARY_DEBUG AND GLEW_USE_STATIC_LIBS)
+ set_property(TARGET GLEW::GLEW
+ APPEND
+ PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
+
+ set_target_properties(GLEW::GLEW
+ PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_STATIC_LIBRARY_DEBUG}")
+ endif()
+
+ elseif(GLEW_VERBOSE)
+ message(WARNING "FindGLEW: no `GLEW::glew` or `GLEW::glew_s` target was created. Something went wrong in FindGLEW target creation.")
+ endif()
+endif()
diff --git a/share/cmake-3.16/Modules/FindGLU.cmake b/share/cmake-3.17/Modules/FindGLU.cmake
index 9892805..9892805 100644
--- a/share/cmake-3.16/Modules/FindGLU.cmake
+++ b/share/cmake-3.17/Modules/FindGLU.cmake
diff --git a/share/cmake-3.16/Modules/FindGLUT.cmake b/share/cmake-3.17/Modules/FindGLUT.cmake
index a22bf5b..a22bf5b 100644
--- a/share/cmake-3.16/Modules/FindGLUT.cmake
+++ b/share/cmake-3.17/Modules/FindGLUT.cmake
diff --git a/share/cmake-3.16/Modules/FindGSL.cmake b/share/cmake-3.17/Modules/FindGSL.cmake
index da1b3c4..da1b3c4 100644
--- a/share/cmake-3.16/Modules/FindGSL.cmake
+++ b/share/cmake-3.17/Modules/FindGSL.cmake
diff --git a/share/cmake-3.16/Modules/FindGTK.cmake b/share/cmake-3.17/Modules/FindGTK.cmake
index 552b19a..552b19a 100644
--- a/share/cmake-3.16/Modules/FindGTK.cmake
+++ b/share/cmake-3.17/Modules/FindGTK.cmake
diff --git a/share/cmake-3.17/Modules/FindGTK2.cmake b/share/cmake-3.17/Modules/FindGTK2.cmake
new file mode 100644
index 0000000..565763d
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindGTK2.cmake
@@ -0,0 +1,943 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindGTK2
+--------
+
+Find the GTK2 widget libraries and several of its other optional components
+like ``gtkmm``, ``glade``, and ``glademm``.
+
+Specify one or more of the following components as you call this find
+module. See example below.
+
+* ``gtk``
+* ``gtkmm``
+* ``glade``
+* ``glademm``
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+The following variables will be defined for your use
+
+``GTK2_FOUND``
+ Were all of your specified components found?
+``GTK2_INCLUDE_DIRS``
+ All include directories
+``GTK2_LIBRARIES``
+ All libraries
+``GTK2_TARGETS``
+ All imported targets
+``GTK2_DEFINITIONS``
+ Additional compiler flags
+``GTK2_VERSION``
+ The version of GTK2 found (x.y.z)
+``GTK2_MAJOR_VERSION``
+ The major version of GTK2
+``GTK2_MINOR_VERSION``
+ The minor version of GTK2
+``GTK2_PATCH_VERSION``
+ The patch version of GTK2
+
+Input Variables
+^^^^^^^^^^^^^^^
+
+Optional variables you can define prior to calling this module:
+
+``GTK2_DEBUG``
+ Enables verbose debugging of the module
+``GTK2_ADDITIONAL_SUFFIXES``
+ Allows defining additional directories to search for include files
+
+Example Usage
+^^^^^^^^^^^^^
+
+Call :command:`find_package` once. Here are some examples to pick from:
+
+Require GTK 2.6 or later:
+
+.. code-block:: cmake
+
+ find_package(GTK2 2.6 REQUIRED gtk)
+
+Require GTK 2.10 or later and Glade:
+
+.. code-block:: cmake
+
+ find_package(GTK2 2.10 REQUIRED gtk glade)
+
+Search for GTK/GTKMM 2.8 or later:
+
+.. code-block:: cmake
+
+ find_package(GTK2 2.8 COMPONENTS gtk gtkmm)
+
+Use the results:
+
+.. code-block:: cmake
+
+ if(GTK2_FOUND)
+ include_directories(${GTK2_INCLUDE_DIRS})
+ add_executable(mygui mygui.cc)
+ target_link_libraries(mygui ${GTK2_LIBRARIES})
+ endif()
+#]=======================================================================]
+
+# Version 1.6 (CMake 3.0)
+# * Create targets for each library
+# * Do not link libfreetype
+# Version 1.5 (CMake 2.8.12)
+# * 14236: Detect gthread library
+# Detect pangocairo on windows
+# Detect pangocairo with gtk module instead of with gtkmm
+# * 14259: Use vc100 libraries with VS 11
+# * 14260: Export a GTK2_DEFINITIONS variable to set /vd2 when appropriate
+# (i.e. MSVC)
+# * Use the optimized/debug syntax for _LIBRARY and _LIBRARIES variables when
+# appropriate. A new set of _RELEASE variables was also added.
+# * Remove GTK2_SKIP_MARK_AS_ADVANCED option, as now the variables are
+# marked as advanced by SelectLibraryConfigurations
+# * Detect gmodule, pangoft2 and pangoxft libraries
+# Version 1.4 (10/4/2012) (CMake 2.8.10)
+# * 12596: Missing paths for FindGTK2 on NetBSD
+# * 12049: Fixed detection of GTK include files in the lib folder on
+# multiarch systems.
+# Version 1.3 (11/9/2010) (CMake 2.8.4)
+# * 11429: Add support for detecting GTK2 built with Visual Studio 10.
+# Thanks to Vincent Levesque for the patch.
+# Version 1.2 (8/30/2010) (CMake 2.8.3)
+# * Merge patch for detecting gdk-pixbuf library (split off
+# from core GTK in 2.21). Thanks to Vincent Untz for the patch
+# and Ricardo Cruz for the heads up.
+# Version 1.1 (8/19/2010) (CMake 2.8.3)
+# * Add support for detecting GTK2 under macports (thanks to Gary Kramlich)
+# Version 1.0 (8/12/2010) (CMake 2.8.3)
+# * Add support for detecting new pangommconfig.h header file
+# (Thanks to Sune Vuorela & the Debian Project for the patch)
+# * Add support for detecting fontconfig.h header
+# * Call find_package(Freetype) since it's required
+# * Add support for allowing users to add additional library directories
+# via the GTK2_ADDITIONAL_SUFFIXES variable (kind of a future-kludge in
+# case the GTK developers change versions on any of the directories in the
+# future).
+# Version 0.8 (1/4/2010)
+# * Get module working under MacOSX fink by adding /sw/include, /sw/lib
+# to PATHS and the gobject library
+# Version 0.7 (3/22/09)
+# * Checked into CMake CVS
+# * Added versioning support
+# * Module now defaults to searching for GTK if COMPONENTS not specified.
+# * Added HKCU prior to HKLM registry key and GTKMM specific environment
+# variable as per mailing list discussion.
+# * Added lib64 to include search path and a few other search paths where GTK
+# may be installed on Unix systems.
+# * Switched to lowercase CMake commands
+# * Prefaced internal variables with _GTK2 to prevent collision
+# * Changed internal macros to functions
+# * Enhanced documentation
+# Version 0.6 (1/8/08)
+# Added GTK2_SKIP_MARK_AS_ADVANCED option
+# Version 0.5 (12/19/08)
+# Second release to cmake mailing list
+
+#=============================================================
+# _GTK2_GET_VERSION
+# Internal function to parse the version number in gtkversion.h
+# _OUT_major = Major version number
+# _OUT_minor = Minor version number
+# _OUT_micro = Micro version number
+# _gtkversion_hdr = Header file to parse
+#=============================================================
+
+include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
+
+function(_GTK2_GET_VERSION _OUT_major _OUT_minor _OUT_micro _gtkversion_hdr)
+ file(STRINGS ${_gtkversion_hdr} _contents REGEX "#define GTK_M[A-Z]+_VERSION[ \t]+")
+ if(_contents)
+ string(REGEX REPLACE ".*#define GTK_MAJOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_major} "${_contents}")
+ string(REGEX REPLACE ".*#define GTK_MINOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_minor} "${_contents}")
+ string(REGEX REPLACE ".*#define GTK_MICRO_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_micro} "${_contents}")
+
+ if(NOT ${_OUT_major} MATCHES "[0-9]+")
+ message(FATAL_ERROR "Version parsing failed for GTK2_MAJOR_VERSION!")
+ endif()
+ if(NOT ${_OUT_minor} MATCHES "[0-9]+")
+ message(FATAL_ERROR "Version parsing failed for GTK2_MINOR_VERSION!")
+ endif()
+ if(NOT ${_OUT_micro} MATCHES "[0-9]+")
+ message(FATAL_ERROR "Version parsing failed for GTK2_MICRO_VERSION!")
+ endif()
+
+ set(${_OUT_major} ${${_OUT_major}} PARENT_SCOPE)
+ set(${_OUT_minor} ${${_OUT_minor}} PARENT_SCOPE)
+ set(${_OUT_micro} ${${_OUT_micro}} PARENT_SCOPE)
+ else()
+ message(FATAL_ERROR "Include file ${_gtkversion_hdr} does not exist")
+ endif()
+endfunction()
+
+
+#=============================================================
+# _GTK2_SIGCXX_GET_VERSION
+# Internal function to parse the version number in
+# sigc++config.h
+# _OUT_major = Major version number
+# _OUT_minor = Minor version number
+# _OUT_micro = Micro version number
+# _sigcxxversion_hdr = Header file to parse
+#=============================================================
+
+function(_GTK2_SIGCXX_GET_VERSION _OUT_major _OUT_minor _OUT_micro _sigcxxversion_hdr)
+ file(STRINGS ${_sigcxxversion_hdr} _contents REGEX "#define SIGCXX_M[A-Z]+_VERSION[ \t]+")
+ if(_contents)
+ string(REGEX REPLACE ".*#define SIGCXX_MAJOR_VERSION[ \t]+([0-9]+).*" "\\1" ${_OUT_major} "${_contents}")
+ string(REGEX REPLACE ".*#define SIGCXX_MINOR_VERSION[ \t]+([0-9]+).*" "\\1" ${_OUT_minor} "${_contents}")
+ string(REGEX REPLACE ".*#define SIGCXX_MICRO_VERSION[ \t]+([0-9]+).*" "\\1" ${_OUT_micro} "${_contents}")
+
+ if(NOT ${_OUT_major} MATCHES "[0-9]+")
+ message(FATAL_ERROR "Version parsing failed for SIGCXX_MAJOR_VERSION!")
+ endif()
+ if(NOT ${_OUT_minor} MATCHES "[0-9]+")
+ message(FATAL_ERROR "Version parsing failed for SIGCXX_MINOR_VERSION!")
+ endif()
+ if(NOT ${_OUT_micro} MATCHES "[0-9]+")
+ message(FATAL_ERROR "Version parsing failed for SIGCXX_MICRO_VERSION!")
+ endif()
+
+ set(${_OUT_major} ${${_OUT_major}} PARENT_SCOPE)
+ set(${_OUT_minor} ${${_OUT_minor}} PARENT_SCOPE)
+ set(${_OUT_micro} ${${_OUT_micro}} PARENT_SCOPE)
+ else()
+ # The header does not have the version macros; assume it is ``0.0.0``.
+ set(${_OUT_major} 0)
+ set(${_OUT_minor} 0)
+ set(${_OUT_micro} 0)
+ endif()
+endfunction()
+
+
+#=============================================================
+# _GTK2_FIND_INCLUDE_DIR
+# Internal function to find the GTK include directories
+# _var = variable to set (_INCLUDE_DIR is appended)
+# _hdr = header file to look for
+#=============================================================
+function(_GTK2_FIND_INCLUDE_DIR _var _hdr)
+
+ if(GTK2_DEBUG)
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "_GTK2_FIND_INCLUDE_DIR( ${_var} ${_hdr} )")
+ endif()
+
+ set(_gtk_packages
+ # If these ever change, things will break.
+ ${GTK2_ADDITIONAL_SUFFIXES}
+ glibmm-2.4
+ glib-2.0
+ atk-1.0
+ atkmm-1.6
+ cairo
+ cairomm-1.0
+ gdk-pixbuf-2.0
+ gdkmm-2.4
+ giomm-2.4
+ gtk-2.0
+ gtkmm-2.4
+ libglade-2.0
+ libglademm-2.4
+ harfbuzz
+ pango-1.0
+ pangomm-1.4
+ sigc++-2.0
+ )
+
+ #
+ # NOTE: The following suffixes cause searching for header files in both of
+ # these directories:
+ # /usr/include/<pkg>
+ # /usr/lib/<pkg>/include
+ #
+
+ set(_suffixes)
+ foreach(_d ${_gtk_packages})
+ list(APPEND _suffixes ${_d})
+ list(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include
+ endforeach()
+
+ if(GTK2_DEBUG)
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "include suffixes = ${_suffixes}")
+ endif()
+
+ if(CMAKE_LIBRARY_ARCHITECTURE)
+ set(_gtk2_arch_dir /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE})
+ if(GTK2_DEBUG)
+ message(STATUS "Adding ${_gtk2_arch_dir} to search path for multiarch support")
+ endif()
+ endif()
+ find_path(GTK2_${_var}_INCLUDE_DIR ${_hdr}
+ PATHS
+ ${_gtk2_arch_dir}
+ /usr/local/libx32
+ /usr/local/lib64
+ /usr/local/lib
+ /usr/libx32
+ /usr/lib64
+ /usr/lib
+ /opt/gnome/include
+ /opt/gnome/lib
+ /opt/openwin/include
+ /usr/openwin/lib
+ /sw/lib
+ /opt/local/lib
+ /usr/pkg/lib
+ /usr/pkg/include/glib
+ $ENV{GTKMM_BASEPATH}/include
+ $ENV{GTKMM_BASEPATH}/lib
+ [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/include
+ [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/include
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
+ PATH_SUFFIXES
+ ${_suffixes}
+ )
+ mark_as_advanced(GTK2_${_var}_INCLUDE_DIR)
+
+ if(GTK2_${_var}_INCLUDE_DIR)
+ set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${GTK2_${_var}_INCLUDE_DIR} PARENT_SCOPE)
+ endif()
+
+endfunction()
+
+#=============================================================
+# _GTK2_FIND_LIBRARY
+# Internal function to find libraries packaged with GTK2
+# _var = library variable to create (_LIBRARY is appended)
+#=============================================================
+function(_GTK2_FIND_LIBRARY _var _lib _expand_vc _append_version)
+
+ if(GTK2_DEBUG)
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "_GTK2_FIND_LIBRARY( ${_var} ${_lib} ${_expand_vc} ${_append_version} )")
+ endif()
+
+ # Not GTK versions per se but the versions encoded into Windows
+ # import libraries (GtkMM 2.14.1 has a gtkmm-vc80-2_4.lib for example)
+ # Also the MSVC libraries use _ for . (this is handled below)
+ set(_versions 2.20 2.18 2.16 2.14 2.12
+ 2.10 2.8 2.6 2.4 2.2 2.0
+ 1.20 1.18 1.16 1.14 1.12
+ 1.10 1.8 1.6 1.4 1.2 1.0)
+
+ set(_library)
+ set(_library_d)
+
+ set(_library ${_lib})
+
+ if(_expand_vc AND MSVC)
+ # Add vc80/vc90/vc100 midfixes
+ if(MSVC_TOOLSET_VERSION LESS 110)
+ set(_library ${_library}-vc${MSVC_TOOLSET_VERSION})
+ else()
+ # Up to gtkmm-win 2.22.0-2 there are no vc110 libraries but vc100 can be used
+ set(_library ${_library}-vc100)
+ endif()
+ set(_library_d ${_library}-d)
+ endif()
+
+ if(GTK2_DEBUG)
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "After midfix addition = ${_library} and ${_library_d}")
+ endif()
+
+ set(_lib_list)
+ set(_libd_list)
+ if(_append_version)
+ foreach(_ver ${_versions})
+ list(APPEND _lib_list "${_library}-${_ver}")
+ list(APPEND _libd_list "${_library_d}-${_ver}")
+ endforeach()
+ else()
+ set(_lib_list ${_library})
+ set(_libd_list ${_library_d})
+ endif()
+
+ if(GTK2_DEBUG)
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "library list = ${_lib_list} and library debug list = ${_libd_list}")
+ endif()
+
+ # For some silly reason the MSVC libraries use _ instead of .
+ # in the version fields
+ if(_expand_vc AND MSVC)
+ set(_no_dots_lib_list)
+ set(_no_dots_libd_list)
+ foreach(_l ${_lib_list})
+ string(REPLACE "." "_" _no_dots_library ${_l})
+ list(APPEND _no_dots_lib_list ${_no_dots_library})
+ endforeach()
+ # And for debug
+ set(_no_dots_libsd_list)
+ foreach(_l ${_libd_list})
+ string(REPLACE "." "_" _no_dots_libraryd ${_l})
+ list(APPEND _no_dots_libd_list ${_no_dots_libraryd})
+ endforeach()
+
+ # Copy list back to original names
+ set(_lib_list ${_no_dots_lib_list})
+ set(_libd_list ${_no_dots_libd_list})
+ endif()
+
+ if(GTK2_DEBUG)
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "While searching for GTK2_${_var}_LIBRARY, our proposed library list is ${_lib_list}")
+ endif()
+
+ find_library(GTK2_${_var}_LIBRARY_RELEASE
+ NAMES ${_lib_list}
+ PATHS
+ /opt/gnome/lib
+ /usr/openwin/lib
+ $ENV{GTKMM_BASEPATH}/lib
+ [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
+ )
+
+ if(_expand_vc AND MSVC)
+ if(GTK2_DEBUG)
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "While searching for GTK2_${_var}_LIBRARY_DEBUG our proposed library list is ${_libd_list}")
+ endif()
+
+ find_library(GTK2_${_var}_LIBRARY_DEBUG
+ NAMES ${_libd_list}
+ PATHS
+ $ENV{GTKMM_BASEPATH}/lib
+ [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
+ )
+ endif()
+
+ select_library_configurations(GTK2_${_var})
+
+ set(GTK2_${_var}_LIBRARY ${GTK2_${_var}_LIBRARY} PARENT_SCOPE)
+ set(GTK2_${_var}_FOUND ${GTK2_${_var}_FOUND} PARENT_SCOPE)
+
+ if(GTK2_${_var}_FOUND)
+ set(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${GTK2_${_var}_LIBRARY})
+ set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE)
+ endif()
+
+ if(GTK2_DEBUG)
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "GTK2_${_var}_LIBRARY_RELEASE = \"${GTK2_${_var}_LIBRARY_RELEASE}\"")
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "GTK2_${_var}_LIBRARY_DEBUG = \"${GTK2_${_var}_LIBRARY_DEBUG}\"")
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "GTK2_${_var}_LIBRARY = \"${GTK2_${_var}_LIBRARY}\"")
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "GTK2_${_var}_FOUND = \"${GTK2_${_var}_FOUND}\"")
+ endif()
+
+endfunction()
+
+
+function(_GTK2_ADD_TARGET_DEPENDS_INTERNAL _var _property)
+ if(GTK2_DEBUG)
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "_GTK2_ADD_TARGET_DEPENDS_INTERNAL( ${_var} ${_property} )")
+ endif()
+
+ string(TOLOWER "${_var}" _basename)
+
+ if (TARGET GTK2::${_basename})
+ foreach(_depend ${ARGN})
+ set(_valid_depends)
+ if (TARGET GTK2::${_depend})
+ list(APPEND _valid_depends GTK2::${_depend})
+ endif()
+ if (_valid_depends)
+ set_property(TARGET GTK2::${_basename} APPEND PROPERTY ${_property} "${_valid_depends}")
+ endif()
+ set(_valid_depends)
+ endforeach()
+ endif()
+endfunction()
+
+function(_GTK2_ADD_TARGET_DEPENDS _var)
+ if(GTK2_DEBUG)
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "_GTK2_ADD_TARGET_DEPENDS( ${_var} )")
+ endif()
+
+ string(TOLOWER "${_var}" _basename)
+
+ if(TARGET GTK2::${_basename})
+ get_target_property(_configs GTK2::${_basename} IMPORTED_CONFIGURATIONS)
+ _GTK2_ADD_TARGET_DEPENDS_INTERNAL(${_var} INTERFACE_LINK_LIBRARIES ${ARGN})
+ foreach(_config ${_configs})
+ _GTK2_ADD_TARGET_DEPENDS_INTERNAL(${_var} IMPORTED_LINK_INTERFACE_LIBRARIES_${_config} ${ARGN})
+ endforeach()
+ endif()
+endfunction()
+
+function(_GTK2_ADD_TARGET_INCLUDE_DIRS _var)
+ if(GTK2_DEBUG)
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "_GTK2_ADD_TARGET_INCLUDE_DIRS( ${_var} )")
+ endif()
+
+ string(TOLOWER "${_var}" _basename)
+
+ if(TARGET GTK2::${_basename})
+ foreach(_include ${ARGN})
+ set_property(TARGET GTK2::${_basename} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${_include}")
+ endforeach()
+ endif()
+endfunction()
+
+#=============================================================
+# _GTK2_ADD_TARGET
+# Internal function to create targets for GTK2
+# _var = target to create
+#=============================================================
+function(_GTK2_ADD_TARGET _var)
+ if(GTK2_DEBUG)
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "_GTK2_ADD_TARGET( ${_var} )")
+ endif()
+
+ string(TOLOWER "${_var}" _basename)
+
+ cmake_parse_arguments(_${_var} "" "" "GTK2_DEPENDS;GTK2_OPTIONAL_DEPENDS;OPTIONAL_INCLUDES" ${ARGN})
+
+ if(GTK2_${_var}_FOUND)
+ if(NOT TARGET GTK2::${_basename})
+ # Do not create the target if dependencies are missing
+ foreach(_dep ${_${_var}_GTK2_DEPENDS})
+ if(NOT TARGET GTK2::${_dep})
+ return()
+ endif()
+ endforeach()
+
+ add_library(GTK2::${_basename} UNKNOWN IMPORTED)
+
+ if(GTK2_${_var}_LIBRARY_RELEASE)
+ set_property(TARGET GTK2::${_basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+ set_property(TARGET GTK2::${_basename} PROPERTY IMPORTED_LOCATION_RELEASE "${GTK2_${_var}_LIBRARY_RELEASE}" )
+ endif()
+
+ if(GTK2_${_var}_LIBRARY_DEBUG)
+ set_property(TARGET GTK2::${_basename} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
+ set_property(TARGET GTK2::${_basename} PROPERTY IMPORTED_LOCATION_DEBUG "${GTK2_${_var}_LIBRARY_DEBUG}" )
+ endif()
+
+ if(GTK2_${_var}_INCLUDE_DIR)
+ set_property(TARGET GTK2::${_basename} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${GTK2_${_var}_INCLUDE_DIR}")
+ endif()
+
+ if(GTK2_${_var}CONFIG_INCLUDE_DIR AND NOT "x${GTK2_${_var}CONFIG_INCLUDE_DIR}" STREQUAL "x${GTK2_${_var}_INCLUDE_DIR}")
+ set_property(TARGET GTK2::${_basename} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${GTK2_${_var}CONFIG_INCLUDE_DIR}")
+ endif()
+
+ if(GTK2_DEFINITIONS)
+ set_property(TARGET GTK2::${_basename} PROPERTY INTERFACE_COMPILE_DEFINITIONS "${GTK2_DEFINITIONS}")
+ endif()
+
+ if(_${_var}_GTK2_DEPENDS)
+ _GTK2_ADD_TARGET_DEPENDS(${_var} ${_${_var}_GTK2_DEPENDS} ${_${_var}_GTK2_OPTIONAL_DEPENDS})
+ endif()
+
+ if(_${_var}_OPTIONAL_INCLUDES)
+ foreach(_D ${_${_var}_OPTIONAL_INCLUDES})
+ if(_D)
+ _GTK2_ADD_TARGET_INCLUDE_DIRS(${_var} ${_D})
+ endif()
+ endforeach()
+ endif()
+ endif()
+
+ set(GTK2_TARGETS ${GTK2_TARGETS} GTK2::${_basename})
+ set(GTK2_TARGETS ${GTK2_TARGETS} PARENT_SCOPE)
+
+ if(GTK2_USE_IMPORTED_TARGETS)
+ set(GTK2_${_var}_LIBRARY GTK2::${_basename} PARENT_SCOPE)
+ endif()
+
+ endif()
+endfunction()
+
+
+
+#=============================================================
+
+#
+# main()
+#
+
+set(GTK2_FOUND)
+set(GTK2_INCLUDE_DIRS)
+set(GTK2_LIBRARIES)
+set(GTK2_TARGETS)
+set(GTK2_DEFINITIONS)
+
+if(NOT GTK2_FIND_COMPONENTS)
+ # Assume they only want GTK
+ set(GTK2_FIND_COMPONENTS gtk)
+endif()
+
+#
+# If specified, enforce version number
+#
+if(GTK2_FIND_VERSION)
+ set(GTK2_FAILED_VERSION_CHECK true)
+ if(GTK2_DEBUG)
+ message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] "
+ "Searching for version ${GTK2_FIND_VERSION}")
+ endif()
+ _GTK2_FIND_INCLUDE_DIR(GTK gtk/gtk.h)
+ if(GTK2_GTK_INCLUDE_DIR)
+ _GTK2_GET_VERSION(GTK2_MAJOR_VERSION
+ GTK2_MINOR_VERSION
+ GTK2_PATCH_VERSION
+ ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h)
+ set(GTK2_VERSION
+ ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION})
+ if(GTK2_FIND_VERSION_EXACT)
+ if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION)
+ set(GTK2_FAILED_VERSION_CHECK false)
+ endif()
+ else()
+ if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION OR
+ GTK2_VERSION VERSION_GREATER GTK2_FIND_VERSION)
+ set(GTK2_FAILED_VERSION_CHECK false)
+ endif()
+ endif()
+ else()
+ # If we can't find the GTK include dir, we can't do version checking
+ if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY)
+ message(FATAL_ERROR "Could not find GTK2 include directory")
+ endif()
+ return()
+ endif()
+
+ if(GTK2_FAILED_VERSION_CHECK)
+ if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY)
+ if(GTK2_FIND_VERSION_EXACT)
+ message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, version ${GTK2_FIND_VERSION} is needed exactly.")
+ else()
+ message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, at least version ${GTK2_FIND_VERSION} is required")
+ endif()
+ endif()
+
+ # If the version check fails, exit out of the module here
+ return()
+ endif()
+endif()
+
+#
+# On MSVC, according to https://wiki.gnome.org/gtkmm/MSWindows, the /vd2 flag needs to be
+# passed to the compiler in order to use gtkmm
+#
+if(MSVC)
+ foreach(_GTK2_component ${GTK2_FIND_COMPONENTS})
+ if(_GTK2_component STREQUAL "gtkmm")
+ set(GTK2_DEFINITIONS "/vd2")
+ elseif(_GTK2_component STREQUAL "glademm")
+ set(GTK2_DEFINITIONS "/vd2")
+ endif()
+ endforeach()
+endif()
+
+#
+# Find all components
+#
+
+find_package(Freetype QUIET)
+if(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2)
+ list(APPEND GTK2_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2})
+endif()
+
+foreach(_GTK2_component ${GTK2_FIND_COMPONENTS})
+ if(_GTK2_component STREQUAL "gtk")
+ # Left for compatibility with previous versions.
+ _GTK2_FIND_INCLUDE_DIR(FONTCONFIG fontconfig/fontconfig.h)
+ _GTK2_FIND_INCLUDE_DIR(X11 X11/Xlib.h)
+
+ _GTK2_FIND_INCLUDE_DIR(GLIB glib.h)
+ _GTK2_FIND_INCLUDE_DIR(GLIBCONFIG glibconfig.h)
+ _GTK2_FIND_LIBRARY (GLIB glib false true)
+ _GTK2_ADD_TARGET (GLIB)
+
+ _GTK2_FIND_INCLUDE_DIR(GOBJECT glib-object.h)
+ _GTK2_FIND_LIBRARY (GOBJECT gobject false true)
+ _GTK2_ADD_TARGET (GOBJECT GTK2_DEPENDS glib)
+
+ _GTK2_FIND_INCLUDE_DIR(ATK atk/atk.h)
+ _GTK2_FIND_LIBRARY (ATK atk false true)
+ _GTK2_ADD_TARGET (ATK GTK2_DEPENDS gobject glib)
+
+ _GTK2_FIND_LIBRARY (GIO gio false true)
+ _GTK2_ADD_TARGET (GIO GTK2_DEPENDS gobject glib)
+
+ _GTK2_FIND_LIBRARY (GTHREAD gthread false true)
+ _GTK2_ADD_TARGET (GTHREAD GTK2_DEPENDS glib)
+
+ _GTK2_FIND_LIBRARY (GMODULE gmodule false true)
+ _GTK2_ADD_TARGET (GMODULE GTK2_DEPENDS glib)
+
+ _GTK2_FIND_INCLUDE_DIR(GDK_PIXBUF gdk-pixbuf/gdk-pixbuf.h)
+ _GTK2_FIND_LIBRARY (GDK_PIXBUF gdk_pixbuf false true)
+ _GTK2_ADD_TARGET (GDK_PIXBUF GTK2_DEPENDS gobject glib)
+
+ _GTK2_FIND_INCLUDE_DIR(CAIRO cairo.h)
+ _GTK2_FIND_LIBRARY (CAIRO cairo false false)
+ _GTK2_ADD_TARGET (CAIRO)
+
+ _GTK2_FIND_INCLUDE_DIR(PANGO pango/pango.h)
+ _GTK2_FIND_LIBRARY (PANGO pango false true)
+ _GTK2_ADD_TARGET (PANGO GTK2_DEPENDS gobject glib)
+
+ _GTK2_FIND_INCLUDE_DIR(HARFBUZZ hb.h)
+
+ _GTK2_FIND_LIBRARY (PANGOCAIRO pangocairo false true)
+ _GTK2_ADD_TARGET (PANGOCAIRO GTK2_DEPENDS pango cairo gobject glib)
+
+ _GTK2_FIND_LIBRARY (PANGOFT2 pangoft2 false true)
+ _GTK2_ADD_TARGET (PANGOFT2 GTK2_DEPENDS pango gobject glib
+ OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
+ ${GTK2_FONTCONFIG_INCLUDE_DIR}
+ ${GTK2_X11_INCLUDE_DIR})
+
+ _GTK2_FIND_LIBRARY (PANGOXFT pangoxft false true)
+ _GTK2_ADD_TARGET (PANGOXFT GTK2_DEPENDS pangoft2 pango gobject glib
+ OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
+ ${GTK2_FONTCONFIG_INCLUDE_DIR}
+ ${GTK2_X11_INCLUDE_DIR})
+
+ _GTK2_FIND_INCLUDE_DIR(GDK gdk/gdk.h)
+ _GTK2_FIND_INCLUDE_DIR(GDKCONFIG gdkconfig.h)
+ if(UNIX)
+ if(APPLE)
+ _GTK2_FIND_LIBRARY (GDK gdk-quartz false true)
+ endif()
+ _GTK2_FIND_LIBRARY (GDK gdk-x11 false true)
+ else()
+ _GTK2_FIND_LIBRARY (GDK gdk-win32 false true)
+ endif()
+ _GTK2_ADD_TARGET (GDK GTK2_DEPENDS pango gdk_pixbuf gobject glib
+ GTK2_OPTIONAL_DEPENDS pangocairo cairo)
+
+ _GTK2_FIND_INCLUDE_DIR(GTK gtk/gtk.h)
+ if(UNIX)
+ if(APPLE)
+ _GTK2_FIND_LIBRARY (GTK gtk-quartz false true)
+ endif()
+ _GTK2_FIND_LIBRARY (GTK gtk-x11 false true)
+ else()
+ _GTK2_FIND_LIBRARY (GTK gtk-win32 false true)
+ endif()
+ _GTK2_ADD_TARGET (GTK GTK2_DEPENDS gdk atk pangoft2 pango gdk_pixbuf gthread gobject glib
+ GTK2_OPTIONAL_DEPENDS gio pangocairo cairo)
+
+ elseif(_GTK2_component STREQUAL "gtkmm")
+
+ _GTK2_FIND_INCLUDE_DIR(SIGC++ sigc++/sigc++.h)
+ _GTK2_FIND_INCLUDE_DIR(SIGC++CONFIG sigc++config.h)
+ _GTK2_FIND_LIBRARY (SIGC++ sigc true true)
+ _GTK2_ADD_TARGET (SIGC++)
+ # Since sigc++ 2.5.1 c++11 support is required
+ if(GTK2_SIGC++CONFIG_INCLUDE_DIR)
+ _GTK2_SIGCXX_GET_VERSION(GTK2_SIGC++_VERSION_MAJOR
+ GTK2_SIGC++_VERSION_MINOR
+ GTK2_SIGC++_VERSION_MICRO
+ ${GTK2_SIGC++CONFIG_INCLUDE_DIR}/sigc++config.h)
+ if(NOT ${GTK2_SIGC++_VERSION_MAJOR}.${GTK2_SIGC++_VERSION_MINOR}.${GTK2_SIGC++_VERSION_MICRO} VERSION_LESS 2.5.1)
+ # These are the features needed by clients in order to include the
+ # project headers:
+ set_property(TARGET GTK2::sigc++
+ PROPERTY INTERFACE_COMPILE_FEATURES cxx_alias_templates
+ cxx_auto_type
+ cxx_decltype
+ cxx_deleted_functions
+ cxx_noexcept
+ cxx_nullptr
+ cxx_right_angle_brackets
+ cxx_rvalue_references
+ cxx_variadic_templates)
+ endif()
+ endif()
+
+ _GTK2_FIND_INCLUDE_DIR(GLIBMM glibmm.h)
+ _GTK2_FIND_INCLUDE_DIR(GLIBMMCONFIG glibmmconfig.h)
+ _GTK2_FIND_LIBRARY (GLIBMM glibmm true true)
+ _GTK2_ADD_TARGET (GLIBMM GTK2_DEPENDS gobject sigc++ glib)
+
+ _GTK2_FIND_INCLUDE_DIR(GIOMM giomm.h)
+ _GTK2_FIND_INCLUDE_DIR(GIOMMCONFIG giommconfig.h)
+ _GTK2_FIND_LIBRARY (GIOMM giomm true true)
+ _GTK2_ADD_TARGET (GIOMM GTK2_DEPENDS gio glibmm gobject sigc++ glib)
+
+ _GTK2_FIND_INCLUDE_DIR(ATKMM atkmm.h)
+ _GTK2_FIND_LIBRARY (ATKMM atkmm true true)
+ _GTK2_ADD_TARGET (ATKMM GTK2_DEPENDS atk glibmm gobject sigc++ glib)
+
+ _GTK2_FIND_INCLUDE_DIR(CAIROMM cairomm/cairomm.h)
+ _GTK2_FIND_INCLUDE_DIR(CAIROMMCONFIG cairommconfig.h)
+ _GTK2_FIND_LIBRARY (CAIROMM cairomm true true)
+ _GTK2_ADD_TARGET (CAIROMM GTK2_DEPENDS cairo sigc++
+ OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
+ ${GTK2_FONTCONFIG_INCLUDE_DIR}
+ ${GTK2_X11_INCLUDE_DIR})
+
+ _GTK2_FIND_INCLUDE_DIR(PANGOMM pangomm.h)
+ _GTK2_FIND_INCLUDE_DIR(PANGOMMCONFIG pangommconfig.h)
+ _GTK2_FIND_LIBRARY (PANGOMM pangomm true true)
+ _GTK2_ADD_TARGET (PANGOMM GTK2_DEPENDS glibmm sigc++ pango gobject glib
+ GTK2_OPTIONAL_DEPENDS cairomm pangocairo cairo
+ OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
+ ${GTK2_FONTCONFIG_INCLUDE_DIR}
+ ${GTK2_X11_INCLUDE_DIR})
+
+ _GTK2_FIND_INCLUDE_DIR(GDKMM gdkmm.h)
+ _GTK2_FIND_INCLUDE_DIR(GDKMMCONFIG gdkmmconfig.h)
+ _GTK2_FIND_LIBRARY (GDKMM gdkmm true true)
+ _GTK2_ADD_TARGET (GDKMM GTK2_DEPENDS pangomm gtk glibmm sigc++ gdk atk pangoft2 gdk_pixbuf pango gobject glib
+ GTK2_OPTIONAL_DEPENDS giomm cairomm gio pangocairo cairo
+ OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
+ ${GTK2_FONTCONFIG_INCLUDE_DIR}
+ ${GTK2_X11_INCLUDE_DIR})
+
+ _GTK2_FIND_INCLUDE_DIR(GTKMM gtkmm.h)
+ _GTK2_FIND_INCLUDE_DIR(GTKMMCONFIG gtkmmconfig.h)
+ _GTK2_FIND_LIBRARY (GTKMM gtkmm true true)
+ _GTK2_ADD_TARGET (GTKMM GTK2_DEPENDS atkmm gdkmm pangomm gtk glibmm sigc++ gdk atk pangoft2 gdk_pixbuf pango gthread gobject glib
+ GTK2_OPTIONAL_DEPENDS giomm cairomm gio pangocairo cairo
+ OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
+ ${GTK2_FONTCONFIG_INCLUDE_DIR}
+ ${GTK2_X11_INCLUDE_DIR})
+
+ elseif(_GTK2_component STREQUAL "glade")
+
+ _GTK2_FIND_INCLUDE_DIR(GLADE glade/glade.h)
+ _GTK2_FIND_LIBRARY (GLADE glade false true)
+ _GTK2_ADD_TARGET (GLADE GTK2_DEPENDS gtk gdk atk gio pangoft2 gdk_pixbuf pango gobject glib
+ GTK2_OPTIONAL_DEPENDS pangocairo cairo
+ OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
+ ${GTK2_FONTCONFIG_INCLUDE_DIR}
+ ${GTK2_X11_INCLUDE_DIR})
+
+ elseif(_GTK2_component STREQUAL "glademm")
+
+ _GTK2_FIND_INCLUDE_DIR(GLADEMM libglademm.h)
+ _GTK2_FIND_INCLUDE_DIR(GLADEMMCONFIG libglademmconfig.h)
+ _GTK2_FIND_LIBRARY (GLADEMM glademm true true)
+ _GTK2_ADD_TARGET (GLADEMM GTK2_DEPENDS gtkmm glade atkmm gdkmm giomm pangomm glibmm sigc++ gtk gdk atk pangoft2 gdk_pixbuf pango gthread gobject glib
+ GTK2_OPTIONAL_DEPENDS giomm cairomm gio pangocairo cairo
+ OPTIONAL_INCLUDES ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2}
+ ${GTK2_FONTCONFIG_INCLUDE_DIR}
+ ${GTK2_X11_INCLUDE_DIR})
+
+ else()
+ message(FATAL_ERROR "Unknown GTK2 component ${_component}")
+ endif()
+endforeach()
+
+#
+# Solve for the GTK2 version if we haven't already
+#
+if(NOT GTK2_FIND_VERSION AND GTK2_GTK_INCLUDE_DIR)
+ _GTK2_GET_VERSION(GTK2_MAJOR_VERSION
+ GTK2_MINOR_VERSION
+ GTK2_PATCH_VERSION
+ ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h)
+ set(GTK2_VERSION ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION})
+endif()
+
+#
+# Try to enforce components
+#
+
+set(_GTK2_did_we_find_everything true) # This gets set to GTK2_FOUND
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+
+foreach(_GTK2_component ${GTK2_FIND_COMPONENTS})
+ string(TOUPPER ${_GTK2_component} _COMPONENT_UPPER)
+
+ set(GTK2_${_COMPONENT_UPPER}_FIND_QUIETLY ${GTK2_FIND_QUIETLY})
+
+ set(FPHSA_NAME_MISMATCHED 1)
+ if(_GTK2_component STREQUAL "gtk")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtk libraries were not found."
+ GTK2_GTK_LIBRARY
+ GTK2_GTK_INCLUDE_DIR
+
+ GTK2_GDK_INCLUDE_DIR
+ GTK2_GDKCONFIG_INCLUDE_DIR
+ GTK2_GDK_LIBRARY
+
+ GTK2_GLIB_INCLUDE_DIR
+ GTK2_GLIBCONFIG_INCLUDE_DIR
+ GTK2_GLIB_LIBRARY
+ )
+ elseif(_GTK2_component STREQUAL "gtkmm")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtkmm libraries were not found."
+ GTK2_GTKMM_LIBRARY
+ GTK2_GTKMM_INCLUDE_DIR
+ GTK2_GTKMMCONFIG_INCLUDE_DIR
+
+ GTK2_GDKMM_INCLUDE_DIR
+ GTK2_GDKMMCONFIG_INCLUDE_DIR
+ GTK2_GDKMM_LIBRARY
+
+ GTK2_GLIBMM_INCLUDE_DIR
+ GTK2_GLIBMMCONFIG_INCLUDE_DIR
+ GTK2_GLIBMM_LIBRARY
+
+ FREETYPE_INCLUDE_DIR_ft2build
+ FREETYPE_INCLUDE_DIR_freetype2
+ )
+ elseif(_GTK2_component STREQUAL "glade")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glade library was not found."
+ GTK2_GLADE_LIBRARY
+ GTK2_GLADE_INCLUDE_DIR
+ )
+ elseif(_GTK2_component STREQUAL "glademm")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glademm library was not found."
+ GTK2_GLADEMM_LIBRARY
+ GTK2_GLADEMM_INCLUDE_DIR
+ GTK2_GLADEMMCONFIG_INCLUDE_DIR
+ )
+ endif()
+ unset(FPHSA_NAME_MISMATCHED)
+
+ if(NOT GTK2_${_COMPONENT_UPPER}_FOUND)
+ set(_GTK2_did_we_find_everything false)
+ endif()
+endforeach()
+
+if(GTK2_USE_IMPORTED_TARGETS)
+ set(GTK2_LIBRARIES ${GTK2_TARGETS})
+endif()
+
+
+if(_GTK2_did_we_find_everything AND NOT GTK2_VERSION_CHECK_FAILED)
+ set(GTK2_FOUND true)
+else()
+ # Unset our variables.
+ set(GTK2_FOUND false)
+ set(GTK2_VERSION)
+ set(GTK2_VERSION_MAJOR)
+ set(GTK2_VERSION_MINOR)
+ set(GTK2_VERSION_PATCH)
+ set(GTK2_INCLUDE_DIRS)
+ set(GTK2_LIBRARIES)
+ set(GTK2_TARGETS)
+ set(GTK2_DEFINITIONS)
+endif()
+
+if(GTK2_INCLUDE_DIRS)
+ list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS)
+endif()
diff --git a/share/cmake-3.17/Modules/FindGTest.cmake b/share/cmake-3.17/Modules/FindGTest.cmake
new file mode 100644
index 0000000..53cab1a
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindGTest.cmake
@@ -0,0 +1,254 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindGTest
+---------
+
+Locate the Google C++ Testing Framework.
+
+Imported targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :prop_tgt:`IMPORTED` targets:
+
+``GTest::GTest``
+ The Google Test ``gtest`` library, if found; adds Thread::Thread
+ automatically
+``GTest::Main``
+ The Google Test ``gtest_main`` library, if found
+
+
+Result variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project:
+
+``GTEST_FOUND``
+ Found the Google Testing framework
+``GTEST_INCLUDE_DIRS``
+ the directory containing the Google Test headers
+
+The library variables below are set as normal variables. These
+contain debug/optimized keywords when a debugging library is found.
+
+``GTEST_LIBRARIES``
+ The Google Test ``gtest`` library; note it also requires linking
+ with an appropriate thread library
+``GTEST_MAIN_LIBRARIES``
+ The Google Test ``gtest_main`` library
+``GTEST_BOTH_LIBRARIES``
+ Both ``gtest`` and ``gtest_main``
+
+Cache variables
+^^^^^^^^^^^^^^^
+
+The following cache variables may also be set:
+
+``GTEST_ROOT``
+ The root directory of the Google Test installation (may also be
+ set as an environment variable)
+``GTEST_MSVC_SEARCH``
+ If compiling with MSVC, this variable can be set to ``MT`` or
+ ``MD`` (the default) to enable searching a GTest build tree
+
+
+Example usage
+^^^^^^^^^^^^^
+
+::
+
+ enable_testing()
+ find_package(GTest REQUIRED)
+
+ add_executable(foo foo.cc)
+ target_link_libraries(foo GTest::GTest GTest::Main)
+
+ add_test(AllTestsInFoo foo)
+
+
+Deeper integration with CTest
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+See :module:`GoogleTest` for information on the :command:`gtest_add_tests`
+and :command:`gtest_discover_tests` commands.
+#]=======================================================================]
+
+include(${CMAKE_CURRENT_LIST_DIR}/GoogleTest.cmake)
+
+function(__gtest_append_debugs _endvar _library)
+ if(${_library} AND ${_library}_DEBUG)
+ set(_output optimized ${${_library}} debug ${${_library}_DEBUG})
+ else()
+ set(_output ${${_library}})
+ endif()
+ set(${_endvar} ${_output} PARENT_SCOPE)
+endfunction()
+
+function(__gtest_find_library _name)
+ find_library(${_name}
+ NAMES ${ARGN}
+ HINTS
+ ENV GTEST_ROOT
+ ${GTEST_ROOT}
+ PATH_SUFFIXES ${_gtest_libpath_suffixes}
+ )
+ mark_as_advanced(${_name})
+endfunction()
+
+macro(__gtest_determine_windows_library_type _var)
+ if(EXISTS "${${_var}}")
+ file(TO_NATIVE_PATH "${${_var}}" _lib_path)
+ get_filename_component(_name "${${_var}}" NAME_WE)
+ file(STRINGS "${${_var}}" _match REGEX "${_name}\\.dll" LIMIT_COUNT 1)
+ if(NOT _match STREQUAL "")
+ set(${_var}_TYPE SHARED PARENT_SCOPE)
+ else()
+ set(${_var}_TYPE UNKNOWN PARENT_SCOPE)
+ endif()
+ return()
+ endif()
+endmacro()
+
+function(__gtest_determine_library_type _var)
+ if(WIN32)
+ # For now, at least, only Windows really needs to know the library type
+ __gtest_determine_windows_library_type(${_var})
+ __gtest_determine_windows_library_type(${_var}_RELEASE)
+ __gtest_determine_windows_library_type(${_var}_DEBUG)
+ endif()
+ # If we get here, no determination was made from the above checks
+ set(${_var}_TYPE UNKNOWN PARENT_SCOPE)
+endfunction()
+
+function(__gtest_import_library _target _var _config)
+ if(_config)
+ set(_config_suffix "_${_config}")
+ else()
+ set(_config_suffix "")
+ endif()
+
+ set(_lib "${${_var}${_config_suffix}}")
+ if(EXISTS "${_lib}")
+ if(_config)
+ set_property(TARGET ${_target} APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS ${_config})
+ endif()
+ set_target_properties(${_target} PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES${_config_suffix} "CXX")
+ if(WIN32 AND ${_var}_TYPE STREQUAL SHARED)
+ set_target_properties(${_target} PROPERTIES
+ IMPORTED_IMPLIB${_config_suffix} "${_lib}")
+ else()
+ set_target_properties(${_target} PROPERTIES
+ IMPORTED_LOCATION${_config_suffix} "${_lib}")
+ endif()
+ endif()
+endfunction()
+
+#
+
+if(NOT DEFINED GTEST_MSVC_SEARCH)
+ set(GTEST_MSVC_SEARCH MD)
+endif()
+
+set(_gtest_libpath_suffixes lib)
+if(MSVC)
+ if(GTEST_MSVC_SEARCH STREQUAL "MD")
+ list(APPEND _gtest_libpath_suffixes
+ msvc/gtest-md/Debug
+ msvc/gtest-md/Release
+ msvc/x64/Debug
+ msvc/x64/Release
+ msvc/2010/gtest-md/Win32-Debug
+ msvc/2010/gtest-md/Win32-Release
+ msvc/2010/gtest-md/x64-Debug
+ msvc/2010/gtest-md/x64-Release
+ )
+ elseif(GTEST_MSVC_SEARCH STREQUAL "MT")
+ list(APPEND _gtest_libpath_suffixes
+ msvc/gtest/Debug
+ msvc/gtest/Release
+ msvc/x64/Debug
+ msvc/x64/Release
+ msvc/2010/gtest/Win32-Debug
+ msvc/2010/gtest/Win32-Release
+ msvc/2010/gtest/x64-Debug
+ msvc/2010/gtest/x64-Release
+ )
+ endif()
+endif()
+
+
+find_path(GTEST_INCLUDE_DIR gtest/gtest.h
+ HINTS
+ $ENV{GTEST_ROOT}/include
+ ${GTEST_ROOT}/include
+)
+mark_as_advanced(GTEST_INCLUDE_DIR)
+
+if(MSVC AND GTEST_MSVC_SEARCH STREQUAL "MD")
+ # The provided /MD project files for Google Test add -md suffixes to the
+ # library names.
+ __gtest_find_library(GTEST_LIBRARY gtest-md gtest)
+ __gtest_find_library(GTEST_LIBRARY_DEBUG gtest-mdd gtestd)
+ __gtest_find_library(GTEST_MAIN_LIBRARY gtest_main-md gtest_main)
+ __gtest_find_library(GTEST_MAIN_LIBRARY_DEBUG gtest_main-mdd gtest_maind)
+else()
+ __gtest_find_library(GTEST_LIBRARY gtest)
+ __gtest_find_library(GTEST_LIBRARY_DEBUG gtestd)
+ __gtest_find_library(GTEST_MAIN_LIBRARY gtest_main)
+ __gtest_find_library(GTEST_MAIN_LIBRARY_DEBUG gtest_maind)
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTest DEFAULT_MSG GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)
+
+if(GTEST_FOUND)
+ set(GTEST_INCLUDE_DIRS ${GTEST_INCLUDE_DIR})
+ __gtest_append_debugs(GTEST_LIBRARIES GTEST_LIBRARY)
+ __gtest_append_debugs(GTEST_MAIN_LIBRARIES GTEST_MAIN_LIBRARY)
+ set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES})
+
+ find_package(Threads QUIET)
+
+ if(NOT TARGET GTest::GTest)
+ __gtest_determine_library_type(GTEST_LIBRARY)
+ add_library(GTest::GTest ${GTEST_LIBRARY_TYPE} IMPORTED)
+ if(TARGET Threads::Threads)
+ set_target_properties(GTest::GTest PROPERTIES
+ INTERFACE_LINK_LIBRARIES Threads::Threads)
+ endif()
+ if(GTEST_LIBRARY_TYPE STREQUAL "SHARED")
+ set_target_properties(GTest::GTest PROPERTIES
+ INTERFACE_COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1")
+ endif()
+ if(GTEST_INCLUDE_DIRS)
+ set_target_properties(GTest::GTest PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIRS}")
+ endif()
+ __gtest_import_library(GTest::GTest GTEST_LIBRARY "")
+ __gtest_import_library(GTest::GTest GTEST_LIBRARY "RELEASE")
+ __gtest_import_library(GTest::GTest GTEST_LIBRARY "DEBUG")
+ endif()
+ if(NOT TARGET GTest::Main)
+ __gtest_determine_library_type(GTEST_MAIN_LIBRARY)
+ add_library(GTest::Main ${GTEST_MAIN_LIBRARY_TYPE} IMPORTED)
+ set_target_properties(GTest::Main PROPERTIES
+ INTERFACE_LINK_LIBRARIES "GTest::GTest")
+ __gtest_import_library(GTest::Main GTEST_MAIN_LIBRARY "")
+ __gtest_import_library(GTest::Main GTEST_MAIN_LIBRARY "RELEASE")
+ __gtest_import_library(GTest::Main GTEST_MAIN_LIBRARY "DEBUG")
+ endif()
+
+ # Add targets mapping the same library names as defined in
+ # GTest's CMake package config.
+ if(NOT TARGET GTest::gtest)
+ add_library(GTest::gtest INTERFACE IMPORTED)
+ target_link_libraries(GTest::gtest INTERFACE GTest::GTest)
+ endif()
+ if(NOT TARGET GTest::gtest_main)
+ add_library(GTest::gtest_main INTERFACE IMPORTED)
+ target_link_libraries(GTest::gtest_main INTERFACE GTest::Main)
+ endif()
+endif()
diff --git a/share/cmake-3.16/Modules/FindGettext.cmake b/share/cmake-3.17/Modules/FindGettext.cmake
index 213ad13..213ad13 100644
--- a/share/cmake-3.16/Modules/FindGettext.cmake
+++ b/share/cmake-3.17/Modules/FindGettext.cmake
diff --git a/share/cmake-3.16/Modules/FindGit.cmake b/share/cmake-3.17/Modules/FindGit.cmake
index 3491cdc..3491cdc 100644
--- a/share/cmake-3.16/Modules/FindGit.cmake
+++ b/share/cmake-3.17/Modules/FindGit.cmake
diff --git a/share/cmake-3.16/Modules/FindGnuTLS.cmake b/share/cmake-3.17/Modules/FindGnuTLS.cmake
index 819f000..819f000 100644
--- a/share/cmake-3.16/Modules/FindGnuTLS.cmake
+++ b/share/cmake-3.17/Modules/FindGnuTLS.cmake
diff --git a/share/cmake-3.16/Modules/FindGnuplot.cmake b/share/cmake-3.17/Modules/FindGnuplot.cmake
index ca2467d..ca2467d 100644
--- a/share/cmake-3.16/Modules/FindGnuplot.cmake
+++ b/share/cmake-3.17/Modules/FindGnuplot.cmake
diff --git a/share/cmake-3.16/Modules/FindHDF5.cmake b/share/cmake-3.17/Modules/FindHDF5.cmake
index b488418..b488418 100644
--- a/share/cmake-3.16/Modules/FindHDF5.cmake
+++ b/share/cmake-3.17/Modules/FindHDF5.cmake
diff --git a/share/cmake-3.16/Modules/FindHSPELL.cmake b/share/cmake-3.17/Modules/FindHSPELL.cmake
index 9724d2c..9724d2c 100644
--- a/share/cmake-3.16/Modules/FindHSPELL.cmake
+++ b/share/cmake-3.17/Modules/FindHSPELL.cmake
diff --git a/share/cmake-3.16/Modules/FindHTMLHelp.cmake b/share/cmake-3.17/Modules/FindHTMLHelp.cmake
index a11ad4d..a11ad4d 100644
--- a/share/cmake-3.16/Modules/FindHTMLHelp.cmake
+++ b/share/cmake-3.17/Modules/FindHTMLHelp.cmake
diff --git a/share/cmake-3.16/Modules/FindHg.cmake b/share/cmake-3.17/Modules/FindHg.cmake
index 1358363..1358363 100644
--- a/share/cmake-3.16/Modules/FindHg.cmake
+++ b/share/cmake-3.17/Modules/FindHg.cmake
diff --git a/share/cmake-3.16/Modules/FindICU.cmake b/share/cmake-3.17/Modules/FindICU.cmake
index 38081f5..38081f5 100644
--- a/share/cmake-3.16/Modules/FindICU.cmake
+++ b/share/cmake-3.17/Modules/FindICU.cmake
diff --git a/share/cmake-3.16/Modules/FindIce.cmake b/share/cmake-3.17/Modules/FindIce.cmake
index 5ce2b42..5ce2b42 100644
--- a/share/cmake-3.16/Modules/FindIce.cmake
+++ b/share/cmake-3.17/Modules/FindIce.cmake
diff --git a/share/cmake-3.16/Modules/FindIconv.cmake b/share/cmake-3.17/Modules/FindIconv.cmake
index bf20f6f..bf20f6f 100644
--- a/share/cmake-3.16/Modules/FindIconv.cmake
+++ b/share/cmake-3.17/Modules/FindIconv.cmake
diff --git a/share/cmake-3.16/Modules/FindIcotool.cmake b/share/cmake-3.17/Modules/FindIcotool.cmake
index d19c145..d19c145 100644
--- a/share/cmake-3.16/Modules/FindIcotool.cmake
+++ b/share/cmake-3.17/Modules/FindIcotool.cmake
diff --git a/share/cmake-3.16/Modules/FindImageMagick.cmake b/share/cmake-3.17/Modules/FindImageMagick.cmake
index 8bf5123..8bf5123 100644
--- a/share/cmake-3.16/Modules/FindImageMagick.cmake
+++ b/share/cmake-3.17/Modules/FindImageMagick.cmake
diff --git a/share/cmake-3.16/Modules/FindIntl.cmake b/share/cmake-3.17/Modules/FindIntl.cmake
index 3818d45..3818d45 100644
--- a/share/cmake-3.16/Modules/FindIntl.cmake
+++ b/share/cmake-3.17/Modules/FindIntl.cmake
diff --git a/share/cmake-3.16/Modules/FindJNI.cmake b/share/cmake-3.17/Modules/FindJNI.cmake
index 3a5bd31..3a5bd31 100644
--- a/share/cmake-3.16/Modules/FindJNI.cmake
+++ b/share/cmake-3.17/Modules/FindJNI.cmake
diff --git a/share/cmake-3.16/Modules/FindJPEG.cmake b/share/cmake-3.17/Modules/FindJPEG.cmake
index 0bb6989..0bb6989 100644
--- a/share/cmake-3.16/Modules/FindJPEG.cmake
+++ b/share/cmake-3.17/Modules/FindJPEG.cmake
diff --git a/share/cmake-3.16/Modules/FindJasper.cmake b/share/cmake-3.17/Modules/FindJasper.cmake
index 729a503..729a503 100644
--- a/share/cmake-3.16/Modules/FindJasper.cmake
+++ b/share/cmake-3.17/Modules/FindJasper.cmake
diff --git a/share/cmake-3.16/Modules/FindJava.cmake b/share/cmake-3.17/Modules/FindJava.cmake
index 945df3c..945df3c 100644
--- a/share/cmake-3.16/Modules/FindJava.cmake
+++ b/share/cmake-3.17/Modules/FindJava.cmake
diff --git a/share/cmake-3.16/Modules/FindKDE3.cmake b/share/cmake-3.17/Modules/FindKDE3.cmake
index 30ea5e6..30ea5e6 100644
--- a/share/cmake-3.16/Modules/FindKDE3.cmake
+++ b/share/cmake-3.17/Modules/FindKDE3.cmake
diff --git a/share/cmake-3.16/Modules/FindKDE4.cmake b/share/cmake-3.17/Modules/FindKDE4.cmake
index 695e9ac..695e9ac 100644
--- a/share/cmake-3.16/Modules/FindKDE4.cmake
+++ b/share/cmake-3.17/Modules/FindKDE4.cmake
diff --git a/share/cmake-3.17/Modules/FindLAPACK.cmake b/share/cmake-3.17/Modules/FindLAPACK.cmake
new file mode 100644
index 0000000..c962976
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindLAPACK.cmake
@@ -0,0 +1,496 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindLAPACK
+----------
+
+Find Linear Algebra PACKage (LAPACK) library
+
+This module finds an installed Fortran library that implements the
+LAPACK linear-algebra interface (see http://www.netlib.org/lapack/).
+
+The approach follows that taken for the ``autoconf`` macro file,
+``acx_lapack.m4`` (distributed at
+http://ac-archive.sourceforge.net/ac-archive/acx_lapack.html).
+
+Input Variables
+^^^^^^^^^^^^^^^
+
+The following variables may be set to influence this module's behavior:
+
+``BLA_STATIC``
+ if ``ON`` use static linkage
+
+``BLA_VENDOR``
+ If set, checks only the specified vendor, if not set checks all the
+ possibilities. List of vendors valid in this module:
+
+ * ``OpenBLAS``
+ * ``FLAME``
+ * ``Intel10_32`` (intel mkl v10 32 bit)
+ * ``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)
+ * ``Intel10_64_dyn`` (intel mkl v10+ 64 bit, single dynamic library)
+ * ``Intel`` (obsolete versions of mkl 32 and 64 bit)
+ * ``ACML``
+ * ``Apple``
+ * ``NAS``
+ * ``Generic``
+
+``BLA_F95``
+ if ``ON`` tries to find the BLAS95/LAPACK95 interfaces
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+``LAPACK_FOUND``
+ library implementing the LAPACK interface is found
+``LAPACK_LINKER_FLAGS``
+ uncached list of required linker flags (excluding ``-l`` and ``-L``).
+``LAPACK_LIBRARIES``
+ uncached list of libraries (using full path name) to link against
+ to use LAPACK
+``LAPACK95_LIBRARIES``
+ uncached list of libraries (using full path name) to link against
+ to use LAPACK95
+``LAPACK95_FOUND``
+ library implementing the LAPACK95 interface is found
+
+.. note::
+
+ C, CXX or Fortran must be enabled to detect a BLAS/LAPACK library.
+ C or CXX must be enabled to use Intel Math Kernel Library (MKL).
+
+ For example, to use Intel MKL libraries and/or Intel compiler:
+
+ .. code-block:: cmake
+
+ set(BLA_VENDOR Intel10_64lp)
+ find_package(LAPACK)
+#]=======================================================================]
+
+# Check the language being used
+if(NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED))
+ if(LAPACK_FIND_REQUIRED)
+ message(FATAL_ERROR "FindLAPACK requires Fortran, C, or C++ to be enabled.")
+ else()
+ message(STATUS "Looking for LAPACK... - NOT found (Unsupported languages)")
+ return()
+ endif()
+endif()
+
+if(CMAKE_Fortran_COMPILER_LOADED)
+ include(${CMAKE_CURRENT_LIST_DIR}/CheckFortranFunctionExists.cmake)
+else()
+ include(${CMAKE_CURRENT_LIST_DIR}/CheckFunctionExists.cmake)
+endif()
+include(${CMAKE_CURRENT_LIST_DIR}/CMakePushCheckState.cmake)
+
+cmake_push_check_state()
+set(CMAKE_REQUIRED_QUIET ${LAPACK_FIND_QUIETLY})
+
+set(LAPACK_FOUND FALSE)
+set(LAPACK95_FOUND FALSE)
+
+set(_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+if(BLA_STATIC)
+ if(WIN32)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ else()
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ endif()
+else()
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ # for ubuntu's libblas3gf and liblapack3gf packages
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
+ endif()
+endif()
+
+# TODO: move this stuff to a separate module
+
+macro(CHECK_LAPACK_LIBRARIES LIBRARIES _prefix _name _flags _list _threadlibs _addlibdir _subdirs _blas)
+ # This macro checks for the existence of the combination of fortran libraries
+ # given by _list. If the combination is found, this macro checks (using the
+ # Check_Fortran_Function_Exists macro) whether can link against that library
+ # combination using the name of a routine given by _name using the linker
+ # flags given by _flags. If the combination of libraries is found and passes
+ # the link test, LIBRARIES is set to the list of complete library paths that
+ # have been found. Otherwise, LIBRARIES is set to FALSE.
+
+ # N.B. _prefix is the prefix applied to the names of all cached variables that
+ # are generated internally and marked advanced by this macro.
+ # _addlibdir is a list of additional search paths. _subdirs is a list of path
+ # suffixes to be used by find_library().
+
+ set(_libraries_work TRUE)
+ set(${LIBRARIES})
+ set(_combined_name)
+
+ set(_extaddlibdir "${_addlibdir}")
+ if(WIN32)
+ list(APPEND _extaddlibdir ENV LIB)
+ elseif(APPLE)
+ list(APPEND _extaddlibdir ENV DYLD_LIBRARY_PATH)
+ else()
+ list(APPEND _extaddlibdir ENV LD_LIBRARY_PATH)
+ endif()
+ list(APPEND _extaddlibdir "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
+
+ foreach(_library ${_list})
+ if(_library MATCHES "^-Wl,--(start|end)-group$")
+ # Respect linker flags like --start/end-group (required by MKL)
+ set(${LIBRARIES} ${${LIBRARIES}} "${_library}")
+ else()
+ set(_combined_name ${_combined_name}_${_library})
+ if(_libraries_work)
+ find_library(${_prefix}_${_library}_LIBRARY
+ NAMES ${_library}
+ PATHS ${_extaddlibdir}
+ PATH_SUFFIXES ${_subdirs}
+ )
+ #message("DEBUG: find_library(${_library}) got ${${_prefix}_${_library}_LIBRARY}")
+ mark_as_advanced(${_prefix}_${_library}_LIBRARY)
+ set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
+ set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
+ endif()
+ endif()
+ endforeach()
+
+ if(_libraries_work)
+ # Test this combination of libraries.
+ set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}} ${_blas} ${_threadlibs})
+ #message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}")
+ if(CMAKE_Fortran_COMPILER_LOADED)
+ check_fortran_function_exists("${_name}" ${_prefix}${_combined_name}_WORKS)
+ else()
+ check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS)
+ endif()
+ set(CMAKE_REQUIRED_LIBRARIES)
+ set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
+ endif()
+
+ if(_libraries_work)
+ if("${_list}${_blas}" STREQUAL "")
+ set(${LIBRARIES} "${LIBRARIES}-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
+ else()
+ set(${LIBRARIES} ${${LIBRARIES}} ${_blas} ${_threadlibs})
+ endif()
+ else()
+ set(${LIBRARIES} FALSE)
+ endif()
+ #message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
+endmacro()
+
+set(LAPACK_LINKER_FLAGS)
+set(LAPACK_LIBRARIES)
+set(LAPACK95_LIBRARIES)
+
+if(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED)
+ find_package(BLAS)
+else()
+ find_package(BLAS REQUIRED)
+endif()
+
+if(BLAS_FOUND)
+ set(LAPACK_LINKER_FLAGS ${BLAS_LINKER_FLAGS})
+ if(NOT $ENV{BLA_VENDOR} STREQUAL "")
+ set(BLA_VENDOR $ENV{BLA_VENDOR})
+ else()
+ if(NOT BLA_VENDOR)
+ set(BLA_VENDOR "All")
+ endif()
+ endif()
+
+ # LAPACK in the Intel MKL 10+ library?
+ if(BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
+ if(NOT LAPACK_LIBRARIES)
+ if(CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
+ # System-specific settings
+ if(NOT WIN32)
+ set(LAPACK_mkl_LM "-lm")
+ set(LAPACK_mkl_LDL "-ldl")
+ endif()
+
+ if(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED)
+ find_package(Threads)
+ else()
+ find_package(Threads REQUIRED)
+ endif()
+
+ if(BLA_VENDOR MATCHES "_64ilp")
+ set(LAPACK_mkl_ILP_MODE "ilp64")
+ else()
+ set(LAPACK_mkl_ILP_MODE "lp64")
+ endif()
+
+ set(LAPACK_SEARCH_LIBS "")
+
+ if(BLA_F95)
+ set(LAPACK_mkl_SEARCH_SYMBOL "cheev_f95")
+ set(_LIBRARIES LAPACK95_LIBRARIES)
+ set(_BLAS_LIBRARIES ${BLAS95_LIBRARIES})
+
+ # old
+ list(APPEND LAPACK_SEARCH_LIBS
+ "mkl_lapack95")
+ # new >= 10.3
+ list(APPEND LAPACK_SEARCH_LIBS
+ "mkl_intel_c")
+ list(APPEND LAPACK_SEARCH_LIBS
+ "mkl_lapack95_${LAPACK_mkl_ILP_MODE}")
+ else()
+ set(LAPACK_mkl_SEARCH_SYMBOL "cheev")
+ set(_LIBRARIES LAPACK_LIBRARIES)
+ set(_BLAS_LIBRARIES ${BLAS_LIBRARIES})
+
+ # old and new >= 10.3
+ list(APPEND LAPACK_SEARCH_LIBS
+ "mkl_lapack")
+ endif()
+
+ # MKL uses a multitude of partially platform-specific subdirectories:
+ if(BLA_VENDOR STREQUAL "Intel10_32")
+ set(LAPACK_mkl_ARCH_NAME "ia32")
+ else()
+ set(LAPACK_mkl_ARCH_NAME "intel64")
+ endif()
+ if(WIN32)
+ set(LAPACK_mkl_OS_NAME "win")
+ elseif(APPLE)
+ set(LAPACK_mkl_OS_NAME "mac")
+ else()
+ set(LAPACK_mkl_OS_NAME "lin")
+ endif()
+ if(DEFINED ENV{MKLROOT})
+ set(LAPACK_mkl_MKLROOT "$ENV{MKLROOT}")
+ # If MKLROOT points to the subdirectory 'mkl', use the parent directory instead
+ # so we can better detect other relevant libraries in 'compiler' or 'tbb':
+ get_filename_component(LAPACK_mkl_MKLROOT_LAST_DIR "${LAPACK_mkl_MKLROOT}" NAME)
+ if(LAPACK_mkl_MKLROOT_LAST_DIR STREQUAL "mkl")
+ get_filename_component(LAPACK_mkl_MKLROOT "${LAPACK_mkl_MKLROOT}" DIRECTORY)
+ endif()
+ endif()
+ set(LAPACK_mkl_LIB_PATH_SUFFIXES
+ "compiler/lib" "compiler/lib/${LAPACK_mkl_ARCH_NAME}_${LAPACK_mkl_OS_NAME}"
+ "mkl/lib" "mkl/lib/${LAPACK_mkl_ARCH_NAME}_${LAPACK_mkl_OS_NAME}"
+ "lib/${LAPACK_mkl_ARCH_NAME}_${LAPACK_mkl_OS_NAME}")
+
+ # First try empty lapack libs
+ if(NOT ${_LIBRARIES})
+ check_lapack_libraries(
+ ${_LIBRARIES}
+ LAPACK
+ ${LAPACK_mkl_SEARCH_SYMBOL}
+ ""
+ ""
+ "${CMAKE_THREAD_LIBS_INIT};${LAPACK_mkl_LM};${LAPACK_mkl_LDL}"
+ "${LAPACK_mkl_MKLROOT}"
+ "${LAPACK_mkl_LIB_PATH_SUFFIXES}"
+ "${_BLAS_LIBRARIES}"
+ )
+ endif()
+
+ # Then try the search libs
+ foreach(IT ${LAPACK_SEARCH_LIBS})
+ string(REPLACE " " ";" SEARCH_LIBS ${IT})
+ if(NOT ${_LIBRARIES})
+ check_lapack_libraries(
+ ${_LIBRARIES}
+ LAPACK
+ ${LAPACK_mkl_SEARCH_SYMBOL}
+ ""
+ "${SEARCH_LIBS}"
+ "${CMAKE_THREAD_LIBS_INIT};${LAPACK_mkl_LM};${LAPACK_mkl_LDL}"
+ "${LAPACK_mkl_MKLROOT}"
+ "${LAPACK_mkl_LIB_PATH_SUFFIXES}"
+ "${_BLAS_LIBRARIES}"
+ )
+ endif()
+ endforeach()
+
+ unset(LAPACK_mkl_ILP_MODE)
+ unset(LAPACK_mkl_SEARCH_SYMBOL)
+ unset(LAPACK_mkl_LM)
+ unset(LAPACK_mkl_LDL)
+ unset(LAPACK_mkl_MKLROOT)
+ unset(LAPACK_mkl_ARCH_NAME)
+ unset(LAPACK_mkl_OS_NAME)
+ unset(LAPACK_mkl_LIB_PATH_SUFFIXES)
+ endif()
+ endif()
+ endif()
+
+ # gotoblas? (http://www.tacc.utexas.edu/tacc-projects/gotoblas2)
+ if(BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All")
+ if(NOT LAPACK_LIBRARIES)
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "goto2"
+ ""
+ ""
+ ""
+ "${BLAS_LIBRARIES}"
+ )
+ endif()
+ endif()
+
+ # OpenBLAS? (http://www.openblas.net)
+ if(BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All")
+ if(NOT LAPACK_LIBRARIES)
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "openblas"
+ ""
+ ""
+ ""
+ "${BLAS_LIBRARIES}"
+ )
+ endif()
+ endif()
+
+ # FLAME's blis library? (https://github.com/flame/blis)
+ if(BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
+ if(NOT LAPACK_LIBRARIES)
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "flame"
+ ""
+ ""
+ ""
+ "${BLAS_LIBRARIES}"
+ )
+ endif()
+ endif()
+
+ # BLAS in acml library?
+ if(BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All")
+ if(BLAS_LIBRARIES MATCHES ".+acml.+")
+ set(LAPACK_LIBRARIES ${BLAS_LIBRARIES})
+ endif()
+ endif()
+
+ # Apple LAPACK library?
+ if(BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All")
+ if(NOT LAPACK_LIBRARIES)
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "Accelerate"
+ ""
+ ""
+ ""
+ "${BLAS_LIBRARIES}"
+ )
+ endif()
+ endif()
+
+ # Apple NAS (vecLib) library?
+ if(BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All")
+ if(NOT LAPACK_LIBRARIES)
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "vecLib"
+ ""
+ ""
+ ""
+ "${BLAS_LIBRARIES}"
+ )
+ endif()
+ endif()
+
+ # Generic LAPACK library?
+ if(BLA_VENDOR STREQUAL "Generic" OR
+ BLA_VENDOR STREQUAL "ATLAS" OR
+ BLA_VENDOR STREQUAL "All")
+ if(NOT LAPACK_LIBRARIES)
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "lapack"
+ ""
+ ""
+ ""
+ "${BLAS_LIBRARIES}"
+ )
+ endif()
+ endif()
+else()
+ message(STATUS "LAPACK requires BLAS")
+endif()
+
+if(BLA_F95)
+ if(LAPACK95_LIBRARIES)
+ set(LAPACK95_FOUND TRUE)
+ else()
+ set(LAPACK95_FOUND FALSE)
+ endif()
+ if(NOT LAPACK_FIND_QUIETLY)
+ if(LAPACK95_FOUND)
+ message(STATUS "A library with LAPACK95 API found.")
+ else()
+ if(LAPACK_FIND_REQUIRED)
+ message(FATAL_ERROR
+ "A required library with LAPACK95 API not found. Please specify library location."
+ )
+ else()
+ message(STATUS
+ "A library with LAPACK95 API not found. Please specify library location."
+ )
+ endif()
+ endif()
+ endif()
+ set(LAPACK_FOUND "${LAPACK95_FOUND}")
+ set(LAPACK_LIBRARIES "${LAPACK95_LIBRARIES}")
+else()
+ if(LAPACK_LIBRARIES)
+ set(LAPACK_FOUND TRUE)
+ else()
+ set(LAPACK_FOUND FALSE)
+ endif()
+
+ if(NOT LAPACK_FIND_QUIETLY)
+ if(LAPACK_FOUND)
+ message(STATUS "A library with LAPACK API found.")
+ else()
+ if(LAPACK_FIND_REQUIRED)
+ message(FATAL_ERROR
+ "A required library with LAPACK API not found. Please specify library location."
+ )
+ else()
+ message(STATUS
+ "A library with LAPACK API not found. Please specify library location."
+ )
+ endif()
+ endif()
+ endif()
+endif()
+
+# On compilers that implicitly link LAPACK (such as ftn, cc, and CC on Cray HPC machines)
+# we used a placeholder for empty LAPACK_LIBRARIES to get through our logic above.
+if(LAPACK_LIBRARIES STREQUAL "LAPACK_LIBRARIES-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
+ set(LAPACK_LIBRARIES "")
+endif()
+
+cmake_pop_check_state()
+set(CMAKE_FIND_LIBRARY_SUFFIXES ${_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
diff --git a/share/cmake-3.16/Modules/FindLATEX.cmake b/share/cmake-3.17/Modules/FindLATEX.cmake
index b0dad7d..b0dad7d 100644
--- a/share/cmake-3.16/Modules/FindLATEX.cmake
+++ b/share/cmake-3.17/Modules/FindLATEX.cmake
diff --git a/share/cmake-3.16/Modules/FindLTTngUST.cmake b/share/cmake-3.17/Modules/FindLTTngUST.cmake
index 9cd17eb..9cd17eb 100644
--- a/share/cmake-3.16/Modules/FindLTTngUST.cmake
+++ b/share/cmake-3.17/Modules/FindLTTngUST.cmake
diff --git a/share/cmake-3.17/Modules/FindLibArchive.cmake b/share/cmake-3.17/Modules/FindLibArchive.cmake
new file mode 100644
index 0000000..ce3c8b8
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindLibArchive.cmake
@@ -0,0 +1,76 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindLibArchive
+--------------
+
+Find libarchive library and headers.
+Libarchive is multi-format archive and compression library.
+
+The module defines the following variables:
+
+::
+
+ LibArchive_FOUND - true if libarchive was found
+ LibArchive_INCLUDE_DIRS - include search path
+ LibArchive_LIBRARIES - libraries to link
+ LibArchive_VERSION - libarchive 3-component version number
+
+The module defines the following ``IMPORTED`` targets:
+
+::
+
+ LibArchive::LibArchive - target for linking against libarchive
+#]=======================================================================]
+
+find_path(LibArchive_INCLUDE_DIR
+ NAMES archive.h
+ PATHS
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\LibArchive;InstallPath]/include"
+ DOC "libarchive include directory"
+ )
+
+find_library(LibArchive_LIBRARY
+ NAMES archive libarchive
+ PATHS
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\LibArchive;InstallPath]/lib"
+ DOC "libarchive library"
+ )
+
+mark_as_advanced(LibArchive_INCLUDE_DIR LibArchive_LIBRARY)
+
+# Extract the version number from the header.
+if(LibArchive_INCLUDE_DIR AND EXISTS "${LibArchive_INCLUDE_DIR}/archive.h")
+ # The version string appears in one of three known formats in the header:
+ # #define ARCHIVE_LIBRARY_VERSION "libarchive 2.4.12"
+ # #define ARCHIVE_VERSION_STRING "libarchive 2.8.4"
+ # #define ARCHIVE_VERSION_ONLY_STRING "3.2.0"
+ # Match any format.
+ set(_LibArchive_VERSION_REGEX "^#define[ \t]+ARCHIVE[_A-Z]+VERSION[_A-Z]*[ \t]+\"(libarchive +)?([0-9]+)\\.([0-9]+)\\.([0-9]+)[^\"]*\".*$")
+ file(STRINGS "${LibArchive_INCLUDE_DIR}/archive.h" _LibArchive_VERSION_STRING LIMIT_COUNT 1 REGEX "${_LibArchive_VERSION_REGEX}")
+ if(_LibArchive_VERSION_STRING)
+ string(REGEX REPLACE "${_LibArchive_VERSION_REGEX}" "\\2.\\3.\\4" LibArchive_VERSION "${_LibArchive_VERSION_STRING}")
+ endif()
+ unset(_LibArchive_VERSION_REGEX)
+ unset(_LibArchive_VERSION_STRING)
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(LibArchive
+ REQUIRED_VARS LibArchive_LIBRARY LibArchive_INCLUDE_DIR
+ VERSION_VAR LibArchive_VERSION
+ )
+unset(LIBARCHIVE_FOUND)
+
+if(LibArchive_FOUND)
+ set(LibArchive_INCLUDE_DIRS ${LibArchive_INCLUDE_DIR})
+ set(LibArchive_LIBRARIES ${LibArchive_LIBRARY})
+
+ if (NOT TARGET LibArchive::LibArchive)
+ add_library(LibArchive::LibArchive UNKNOWN IMPORTED)
+ set_target_properties(LibArchive::LibArchive PROPERTIES
+ IMPORTED_LOCATION "${LibArchive_LIBRARY}"
+ INTERFACE_INCLUDE_DIRECTORIES "${LibArchive_INCLUDE_DIR}")
+ endif ()
+endif()
diff --git a/share/cmake-3.16/Modules/FindLibLZMA.cmake b/share/cmake-3.17/Modules/FindLibLZMA.cmake
index 200d6bf..200d6bf 100644
--- a/share/cmake-3.16/Modules/FindLibLZMA.cmake
+++ b/share/cmake-3.17/Modules/FindLibLZMA.cmake
diff --git a/share/cmake-3.17/Modules/FindLibXml2.cmake b/share/cmake-3.17/Modules/FindLibXml2.cmake
new file mode 100644
index 0000000..f551dfe
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindLibXml2.cmake
@@ -0,0 +1,120 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindLibXml2
+-----------
+
+Find the XML processing library (libxml2).
+
+IMPORTED Targets
+^^^^^^^^^^^^^^^^
+
+The following :prop_tgt:`IMPORTED` targets may be defined:
+
+``LibXml2::LibXml2``
+ If the libxml2 library has been found
+``LibXml2::xmllint``
+ If the xmllint command-line executable has been found
+
+Result variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project:
+
+``LibXml2_FOUND``
+ true if libxml2 headers and libraries were found
+``LIBXML2_INCLUDE_DIR``
+ the directory containing LibXml2 headers
+``LIBXML2_INCLUDE_DIRS``
+ list of the include directories needed to use LibXml2
+``LIBXML2_LIBRARIES``
+ LibXml2 libraries to be linked
+``LIBXML2_DEFINITIONS``
+ the compiler switches required for using LibXml2
+``LIBXML2_XMLLINT_EXECUTABLE``
+ path to the XML checking tool xmllint coming with LibXml2
+``LIBXML2_VERSION_STRING``
+ the version of LibXml2 found (since CMake 2.8.8)
+
+Cache variables
+^^^^^^^^^^^^^^^
+
+The following cache variables may also be set:
+
+``LIBXML2_INCLUDE_DIR``
+ the directory containing LibXml2 headers
+``LIBXML2_LIBRARY``
+ path to the LibXml2 library
+#]=======================================================================]
+
+# use pkg-config to get the directories and then use these values
+# in the find_path() and find_library() calls
+find_package(PkgConfig QUIET)
+PKG_CHECK_MODULES(PC_LIBXML QUIET libxml-2.0)
+
+find_path(LIBXML2_INCLUDE_DIR NAMES libxml/xpath.h
+ HINTS
+ ${PC_LIBXML_INCLUDEDIR}
+ ${PC_LIBXML_INCLUDE_DIRS}
+ PATH_SUFFIXES libxml2
+ )
+
+# CMake 3.9 and below used 'LIBXML2_LIBRARIES' as the name of
+# the cache entry storing the find_library result. Use the
+# value if it was set by the project or user.
+if(DEFINED LIBXML2_LIBRARIES AND NOT DEFINED LIBXML2_LIBRARY)
+ set(LIBXML2_LIBRARY ${LIBXML2_LIBRARIES})
+endif()
+
+find_library(LIBXML2_LIBRARY NAMES xml2 libxml2
+ HINTS
+ ${PC_LIBXML_LIBDIR}
+ ${PC_LIBXML_LIBRARY_DIRS}
+ )
+
+find_program(LIBXML2_XMLLINT_EXECUTABLE xmllint)
+# for backwards compat. with KDE 4.0.x:
+set(XMLLINT_EXECUTABLE "${LIBXML2_XMLLINT_EXECUTABLE}")
+
+if(LIBXML2_INCLUDE_DIR AND EXISTS "${LIBXML2_INCLUDE_DIR}/libxml/xmlversion.h")
+ file(STRINGS "${LIBXML2_INCLUDE_DIR}/libxml/xmlversion.h" libxml2_version_str
+ REGEX "^#define[\t ]+LIBXML_DOTTED_VERSION[\t ]+\".*\"")
+
+ string(REGEX REPLACE "^#define[\t ]+LIBXML_DOTTED_VERSION[\t ]+\"([^\"]*)\".*" "\\1"
+ LIBXML2_VERSION_STRING "${libxml2_version_str}")
+ unset(libxml2_version_str)
+endif()
+
+set(LIBXML2_INCLUDE_DIRS ${LIBXML2_INCLUDE_DIR})
+set(LIBXML2_LIBRARIES ${LIBXML2_LIBRARY})
+
+# Did we find the same installation as pkg-config?
+# If so, use additional information from it.
+unset(LIBXML2_DEFINITIONS)
+foreach(libxml2_pc_lib_dir IN LISTS PC_LIBXML_LIBDIR PC_LIBXML_LIBRARY_DIRS)
+ if (LIBXML2_LIBRARY MATCHES "^${libxml2_pc_lib_dir}")
+ list(APPEND LIBXML2_INCLUDE_DIRS ${PC_LIBXML_INCLUDE_DIRS})
+ set(LIBXML2_DEFINITIONS ${PC_LIBXML_CFLAGS_OTHER})
+ break()
+ endif()
+endforeach()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXml2
+ REQUIRED_VARS LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR
+ VERSION_VAR LIBXML2_VERSION_STRING)
+
+mark_as_advanced(LIBXML2_INCLUDE_DIR LIBXML2_LIBRARY LIBXML2_XMLLINT_EXECUTABLE)
+
+if(LibXml2_FOUND AND NOT TARGET LibXml2::LibXml2)
+ add_library(LibXml2::LibXml2 UNKNOWN IMPORTED)
+ set_target_properties(LibXml2::LibXml2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBXML2_INCLUDE_DIRS}")
+ set_target_properties(LibXml2::LibXml2 PROPERTIES INTERFACE_COMPILE_OPTIONS "${LIBXML2_DEFINITIONS}")
+ set_property(TARGET LibXml2::LibXml2 APPEND PROPERTY IMPORTED_LOCATION "${LIBXML2_LIBRARY}")
+endif()
+
+if(LIBXML2_XMLLINT_EXECUTABLE AND NOT TARGET LibXml2::xmllint)
+ add_executable(LibXml2::xmllint IMPORTED)
+ set_target_properties(LibXml2::xmllint PROPERTIES IMPORTED_LOCATION "${LIBXML2_XMLLINT_EXECUTABLE}")
+endif()
diff --git a/share/cmake-3.16/Modules/FindLibXslt.cmake b/share/cmake-3.17/Modules/FindLibXslt.cmake
index 01a9d8b..01a9d8b 100644
--- a/share/cmake-3.16/Modules/FindLibXslt.cmake
+++ b/share/cmake-3.17/Modules/FindLibXslt.cmake
diff --git a/share/cmake-3.16/Modules/FindLibinput.cmake b/share/cmake-3.17/Modules/FindLibinput.cmake
index c1fe455..c1fe455 100644
--- a/share/cmake-3.16/Modules/FindLibinput.cmake
+++ b/share/cmake-3.17/Modules/FindLibinput.cmake
diff --git a/share/cmake-3.17/Modules/FindLua.cmake b/share/cmake-3.17/Modules/FindLua.cmake
new file mode 100644
index 0000000..0b0c970
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindLua.cmake
@@ -0,0 +1,238 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindLua
+-------
+
+
+
+Locate Lua library.
+
+This module defines::
+
+::
+
+ LUA_FOUND - if false, do not try to link to Lua
+ LUA_LIBRARIES - both lua and lualib
+ LUA_INCLUDE_DIR - where to find lua.h
+ LUA_VERSION_STRING - the version of Lua found
+ LUA_VERSION_MAJOR - the major version of Lua
+ LUA_VERSION_MINOR - the minor version of Lua
+ LUA_VERSION_PATCH - the patch version of Lua
+
+
+
+Note that the expected include convention is
+
+::
+
+ #include "lua.h"
+
+and not
+
+::
+
+ #include <lua/lua.h>
+
+This is because, the lua location is not standardized and may exist in
+locations other than lua/
+#]=======================================================================]
+
+cmake_policy(PUSH) # Policies apply to functions at definition-time
+cmake_policy(SET CMP0012 NEW) # For while(TRUE)
+
+unset(_lua_include_subdirs)
+unset(_lua_library_names)
+unset(_lua_append_versions)
+
+# this is a function only to have all the variables inside go away automatically
+function(_lua_get_versions)
+ set(LUA_VERSIONS5 5.3 5.2 5.1 5.0)
+
+ if (Lua_FIND_VERSION_EXACT)
+ if (Lua_FIND_VERSION_COUNT GREATER 1)
+ set(_lua_append_versions ${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR})
+ endif ()
+ elseif (Lua_FIND_VERSION)
+ # once there is a different major version supported this should become a loop
+ if (NOT Lua_FIND_VERSION_MAJOR GREATER 5)
+ if (Lua_FIND_VERSION_COUNT EQUAL 1)
+ set(_lua_append_versions ${LUA_VERSIONS5})
+ else ()
+ foreach (subver IN LISTS LUA_VERSIONS5)
+ if (NOT subver VERSION_LESS ${Lua_FIND_VERSION})
+ list(APPEND _lua_append_versions ${subver})
+ endif ()
+ endforeach ()
+ # New version -> Search for it (heuristic only! Defines in include might have changed)
+ if (NOT _lua_append_versions)
+ set(_lua_append_versions ${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR})
+ endif()
+ endif ()
+ endif ()
+ else ()
+ # once there is a different major version supported this should become a loop
+ set(_lua_append_versions ${LUA_VERSIONS5})
+ endif ()
+
+ if (LUA_Debug)
+ message(STATUS "Considering following Lua versions: ${_lua_append_versions}")
+ endif()
+
+ set(_lua_append_versions "${_lua_append_versions}" PARENT_SCOPE)
+endfunction()
+
+function(_lua_set_version_vars)
+ set(_lua_include_subdirs_raw "lua")
+
+ foreach (ver IN LISTS _lua_append_versions)
+ string(REGEX MATCH "^([0-9]+)\\.([0-9]+)$" _ver "${ver}")
+ list(APPEND _lua_include_subdirs_raw
+ lua${CMAKE_MATCH_1}${CMAKE_MATCH_2}
+ lua${CMAKE_MATCH_1}.${CMAKE_MATCH_2}
+ lua-${CMAKE_MATCH_1}.${CMAKE_MATCH_2}
+ )
+ endforeach ()
+
+ # Prepend "include/" to each path directly after the path
+ set(_lua_include_subdirs "include")
+ foreach (dir IN LISTS _lua_include_subdirs_raw)
+ list(APPEND _lua_include_subdirs "${dir}" "include/${dir}")
+ endforeach ()
+
+ set(_lua_include_subdirs "${_lua_include_subdirs}" PARENT_SCOPE)
+endfunction(_lua_set_version_vars)
+
+function(_lua_get_header_version)
+ unset(LUA_VERSION_STRING PARENT_SCOPE)
+ set(_hdr_file "${LUA_INCLUDE_DIR}/lua.h")
+
+ if (NOT EXISTS "${_hdr_file}")
+ return()
+ endif ()
+
+ # At least 5.[012] have different ways to express the version
+ # so all of them need to be tested. Lua 5.2 defines LUA_VERSION
+ # and LUA_RELEASE as joined by the C preprocessor, so avoid those.
+ file(STRINGS "${_hdr_file}" lua_version_strings
+ REGEX "^#define[ \t]+LUA_(RELEASE[ \t]+\"Lua [0-9]|VERSION([ \t]+\"Lua [0-9]|_[MR])).*")
+
+ string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MAJOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MAJOR ";${lua_version_strings};")
+ if (LUA_VERSION_MAJOR MATCHES "^[0-9]+$")
+ string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_MINOR[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_MINOR ";${lua_version_strings};")
+ string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION_RELEASE[ \t]+\"([0-9])\"[ \t]*;.*" "\\1" LUA_VERSION_PATCH ";${lua_version_strings};")
+ set(LUA_VERSION_STRING "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}.${LUA_VERSION_PATCH}")
+ else ()
+ string(REGEX REPLACE ".*;#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
+ if (NOT LUA_VERSION_STRING MATCHES "^[0-9.]+$")
+ string(REGEX REPLACE ".*;#define[ \t]+LUA_VERSION[ \t]+\"Lua ([0-9.]+)\"[ \t]*;.*" "\\1" LUA_VERSION_STRING ";${lua_version_strings};")
+ endif ()
+ string(REGEX REPLACE "^([0-9]+)\\.[0-9.]*$" "\\1" LUA_VERSION_MAJOR "${LUA_VERSION_STRING}")
+ string(REGEX REPLACE "^[0-9]+\\.([0-9]+)[0-9.]*$" "\\1" LUA_VERSION_MINOR "${LUA_VERSION_STRING}")
+ string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]).*" "\\1" LUA_VERSION_PATCH "${LUA_VERSION_STRING}")
+ endif ()
+ foreach (ver IN LISTS _lua_append_versions)
+ if (ver STREQUAL "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
+ set(LUA_VERSION_MAJOR ${LUA_VERSION_MAJOR} PARENT_SCOPE)
+ set(LUA_VERSION_MINOR ${LUA_VERSION_MINOR} PARENT_SCOPE)
+ set(LUA_VERSION_PATCH ${LUA_VERSION_PATCH} PARENT_SCOPE)
+ set(LUA_VERSION_STRING ${LUA_VERSION_STRING} PARENT_SCOPE)
+ return()
+ endif ()
+ endforeach ()
+endfunction(_lua_get_header_version)
+
+function(_lua_find_header)
+ _lua_set_version_vars()
+
+ # Initialize as local variable
+ set(CMAKE_IGNORE_PATH ${CMAKE_IGNORE_PATH})
+ while (TRUE)
+ # Find the next header to test. Check each possible subdir in order
+ # This prefers e.g. higher versions as they are earlier in the list
+ # It is also consistent with previous versions of FindLua
+ foreach (subdir IN LISTS _lua_include_subdirs)
+ find_path(LUA_INCLUDE_DIR lua.h
+ HINTS ENV LUA_DIR
+ PATH_SUFFIXES ${subdir}
+ )
+ if (LUA_INCLUDE_DIR)
+ break()
+ endif()
+ endforeach()
+ # Did not found header -> Fail
+ if (NOT LUA_INCLUDE_DIR)
+ return()
+ endif()
+ _lua_get_header_version()
+ # Found accepted version -> Ok
+ if (LUA_VERSION_STRING)
+ if (LUA_Debug)
+ message(STATUS "Found suitable version ${LUA_VERSION_STRING} in ${LUA_INCLUDE_DIR}/lua.h")
+ endif()
+ return()
+ endif()
+ # Found wrong version -> Ignore this path and retry
+ if (LUA_Debug)
+ message(STATUS "Ignoring unsuitable version in ${LUA_INCLUDE_DIR}")
+ endif()
+ list(APPEND CMAKE_IGNORE_PATH "${LUA_INCLUDE_DIR}")
+ unset(LUA_INCLUDE_DIR CACHE)
+ unset(LUA_INCLUDE_DIR)
+ unset(LUA_INCLUDE_DIR PARENT_SCOPE)
+ endwhile ()
+endfunction()
+
+_lua_get_versions()
+_lua_find_header()
+_lua_get_header_version()
+unset(_lua_append_versions)
+
+if (LUA_VERSION_STRING)
+ set(_lua_library_names
+ lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}
+ lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
+ lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
+ lua.${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}
+ )
+endif ()
+
+find_library(LUA_LIBRARY
+ NAMES ${_lua_library_names} lua
+ NAMES_PER_DIR
+ HINTS
+ ENV LUA_DIR
+ PATH_SUFFIXES lib
+)
+unset(_lua_library_names)
+
+if (LUA_LIBRARY)
+ # include the math library for Unix
+ if (UNIX AND NOT APPLE AND NOT BEOS)
+ find_library(LUA_MATH_LIBRARY m)
+ mark_as_advanced(LUA_MATH_LIBRARY)
+ set(LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}")
+
+ # include dl library for statically-linked Lua library
+ get_filename_component(LUA_LIB_EXT ${LUA_LIBRARY} EXT)
+ if(LUA_LIB_EXT STREQUAL CMAKE_STATIC_LIBRARY_SUFFIX)
+ list(APPEND LUA_LIBRARIES ${CMAKE_DL_LIBS})
+ endif()
+
+ # For Windows and Mac, don't need to explicitly include the math library
+ else ()
+ set(LUA_LIBRARIES "${LUA_LIBRARY}")
+ endif ()
+endif ()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
+# all listed variables are TRUE
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua
+ REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR
+ VERSION_VAR LUA_VERSION_STRING)
+
+mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARY)
+
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FindLua50.cmake b/share/cmake-3.17/Modules/FindLua50.cmake
index 0575caa..0575caa 100644
--- a/share/cmake-3.16/Modules/FindLua50.cmake
+++ b/share/cmake-3.17/Modules/FindLua50.cmake
diff --git a/share/cmake-3.16/Modules/FindLua51.cmake b/share/cmake-3.17/Modules/FindLua51.cmake
index 283a3eb..283a3eb 100644
--- a/share/cmake-3.16/Modules/FindLua51.cmake
+++ b/share/cmake-3.17/Modules/FindLua51.cmake
diff --git a/share/cmake-3.17/Modules/FindMFC.cmake b/share/cmake-3.17/Modules/FindMFC.cmake
new file mode 100644
index 0000000..b8ca71b
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindMFC.cmake
@@ -0,0 +1,71 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindMFC
+-------
+
+Find Microsoft Foundation Class Library (MFC) on Windows
+
+Find the native MFC - i.e. decide if an application can link to the
+MFC libraries.
+
+::
+
+ MFC_FOUND - Was MFC support found
+
+You don't need to include anything or link anything to use it.
+#]=======================================================================]
+
+# Assume no MFC support
+set(MFC_FOUND "NO")
+
+# Only attempt the try_compile call if it has a chance to succeed:
+set(MFC_ATTEMPT_TRY_COMPILE 0)
+if(WIN32 AND NOT UNIX AND NOT BORLAND AND NOT MINGW)
+ set(MFC_ATTEMPT_TRY_COMPILE 1)
+endif()
+
+if(MFC_ATTEMPT_TRY_COMPILE)
+ if(NOT DEFINED MFC_HAVE_MFC)
+ set(CHECK_INCLUDE_FILE_VAR "afxwin.h")
+ configure_file(${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx)
+ message(CHECK_START "Looking for MFC")
+ # Try both shared and static as the root project may have set the /MT flag
+ try_compile(MFC_HAVE_MFC
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx
+ CMAKE_FLAGS
+ -DCMAKE_MFC_FLAG:STRING=2
+ -DCOMPILE_DEFINITIONS:STRING=-D_AFXDLL
+ OUTPUT_VARIABLE OUTPUT)
+ if(NOT MFC_HAVE_MFC)
+ configure_file(${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx)
+ try_compile(MFC_HAVE_MFC
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckIncludeFile.cxx
+ CMAKE_FLAGS
+ -DCMAKE_MFC_FLAG:STRING=1
+ OUTPUT_VARIABLE OUTPUT)
+ endif()
+ if(MFC_HAVE_MFC)
+ message(CHECK_PASS "found")
+ set(MFC_HAVE_MFC 1 CACHE INTERNAL "Have MFC?")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if MFC exists passed with the following output:\n"
+ "${OUTPUT}\n\n")
+ else()
+ message(CHECK_FAIL "not found")
+ set(MFC_HAVE_MFC 0 CACHE INTERNAL "Have MFC?")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if MFC exists failed with the following output:\n"
+ "${OUTPUT}\n\n")
+ endif()
+ endif()
+
+ if(MFC_HAVE_MFC)
+ set(MFC_FOUND "YES")
+ endif()
+endif()
diff --git a/share/cmake-3.16/Modules/FindMPEG.cmake b/share/cmake-3.17/Modules/FindMPEG.cmake
index e5a80e3..e5a80e3 100644
--- a/share/cmake-3.16/Modules/FindMPEG.cmake
+++ b/share/cmake-3.17/Modules/FindMPEG.cmake
diff --git a/share/cmake-3.16/Modules/FindMPEG2.cmake b/share/cmake-3.17/Modules/FindMPEG2.cmake
index 763d86a..763d86a 100644
--- a/share/cmake-3.16/Modules/FindMPEG2.cmake
+++ b/share/cmake-3.17/Modules/FindMPEG2.cmake
diff --git a/share/cmake-3.17/Modules/FindMPI.cmake b/share/cmake-3.17/Modules/FindMPI.cmake
new file mode 100644
index 0000000..41e1d08
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindMPI.cmake
@@ -0,0 +1,1787 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindMPI
+-------
+
+Find a Message Passing Interface (MPI) implementation.
+
+The Message Passing Interface (MPI) is a library used to write
+high-performance distributed-memory parallel applications, and is
+typically deployed on a cluster. MPI is a standard interface (defined
+by the MPI forum) for which many implementations are available.
+
+Variables for using MPI
+^^^^^^^^^^^^^^^^^^^^^^^
+
+The module exposes the components ``C``, ``CXX``, ``MPICXX`` and ``Fortran``.
+Each of these controls the various MPI languages to search for.
+The difference between ``CXX`` and ``MPICXX`` is that ``CXX`` refers to the
+MPI C API being usable from C++, whereas ``MPICXX`` refers to the MPI-2 C++ API
+that was removed again in MPI-3.
+
+Depending on the enabled components the following variables will be set:
+
+``MPI_FOUND``
+ Variable indicating that MPI settings for all requested languages have been found.
+ If no components are specified, this is true if MPI settings for all enabled languages
+ were detected. Note that the ``MPICXX`` component does not affect this variable.
+``MPI_VERSION``
+ Minimal version of MPI detected among the requested languages, or all enabled languages
+ if no components were specified.
+
+This module will set the following variables per language in your
+project, where ``<lang>`` is one of C, CXX, or Fortran:
+
+``MPI_<lang>_FOUND``
+ Variable indicating the MPI settings for ``<lang>`` were found and that
+ simple MPI test programs compile with the provided settings.
+``MPI_<lang>_COMPILER``
+ MPI compiler for ``<lang>`` if such a program exists.
+``MPI_<lang>_COMPILE_OPTIONS``
+ Compilation options for MPI programs in ``<lang>``, given as a :ref:`;-list <CMake Language Lists>`.
+``MPI_<lang>_COMPILE_DEFINITIONS``
+ Compilation definitions for MPI programs in ``<lang>``, given as a :ref:`;-list <CMake Language Lists>`.
+``MPI_<lang>_INCLUDE_DIRS``
+ Include path(s) for MPI header.
+``MPI_<lang>_LINK_FLAGS``
+ Linker flags for MPI programs.
+``MPI_<lang>_LIBRARIES``
+ All libraries to link MPI programs against.
+
+Additionally, the following :prop_tgt:`IMPORTED` targets are defined:
+
+``MPI::MPI_<lang>``
+ Target for using MPI from ``<lang>``.
+
+The following variables indicating which bindings are present will be defined:
+
+``MPI_MPICXX_FOUND``
+ Variable indicating whether the MPI-2 C++ bindings are present (introduced in MPI-2, removed with MPI-3).
+``MPI_Fortran_HAVE_F77_HEADER``
+ True if the Fortran 77 header ``mpif.h`` is available.
+``MPI_Fortran_HAVE_F90_MODULE``
+ True if the Fortran 90 module ``mpi`` can be used for accessing MPI (MPI-2 and higher only).
+``MPI_Fortran_HAVE_F08_MODULE``
+ True if the Fortran 2008 ``mpi_f08`` is available to MPI programs (MPI-3 and higher only).
+
+If possible, the MPI version will be determined by this module. The facilities to detect the MPI version
+were introduced with MPI-1.2, and therefore cannot be found for older MPI versions.
+
+``MPI_<lang>_VERSION_MAJOR``
+ Major version of MPI implemented for ``<lang>`` by the MPI distribution.
+``MPI_<lang>_VERSION_MINOR``
+ Minor version of MPI implemented for ``<lang>`` by the MPI distribution.
+``MPI_<lang>_VERSION``
+ MPI version implemented for ``<lang>`` by the MPI distribution.
+
+Note that there's no variable for the C bindings being accessible through ``mpi.h``, since the MPI standards
+always have required this binding to work in both C and C++ code.
+
+For running MPI programs, the module sets the following variables
+
+``MPIEXEC_EXECUTABLE``
+ Executable for running MPI programs, if such exists.
+``MPIEXEC_NUMPROC_FLAG``
+ Flag to pass to ``mpiexec`` before giving it the number of processors to run on.
+``MPIEXEC_MAX_NUMPROCS``
+ Number of MPI processors to utilize. Defaults to the number
+ of processors detected on the host system.
+``MPIEXEC_PREFLAGS``
+ Flags to pass to ``mpiexec`` directly before the executable to run.
+``MPIEXEC_POSTFLAGS``
+ Flags to pass to ``mpiexec`` after other flags.
+
+Variables for locating MPI
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This module performs a four step search for an MPI implementation:
+
+1. Search for ``MPIEXEC_EXECUTABLE`` and, if found, use its base directory.
+2. Check if the compiler has MPI support built-in. This is the case if the user passed a
+ compiler wrapper as ``CMAKE_<LANG>_COMPILER`` or if they're on a Cray system.
+3. Attempt to find an MPI compiler wrapper and determine the compiler information from it.
+4. Try to find an MPI implementation that does not ship such a wrapper by guessing settings.
+ Currently, only Microsoft MPI and MPICH2 on Windows are supported.
+
+For controlling the ``MPIEXEC_EXECUTABLE`` step, the following variables may be set:
+
+``MPIEXEC_EXECUTABLE``
+ Manually specify the location of ``mpiexec``.
+``MPI_HOME``
+ Specify the base directory of the MPI installation.
+``ENV{MPI_HOME}``
+ Environment variable to specify the base directory of the MPI installation.
+``ENV{I_MPI_ROOT}``
+ Environment variable to specify the base directory of the MPI installation.
+
+For controlling the compiler wrapper step, the following variables may be set:
+
+``MPI_<lang>_COMPILER``
+ Search for the specified compiler wrapper and use it.
+``MPI_<lang>_COMPILER_FLAGS``
+ Flags to pass to the MPI compiler wrapper during interrogation. Some compiler wrappers
+ support linking debug or tracing libraries if a specific flag is passed and this variable
+ may be used to obtain them.
+``MPI_COMPILER_FLAGS``
+ Used to initialize ``MPI_<lang>_COMPILER_FLAGS`` if no language specific flag has been given.
+ Empty by default.
+``MPI_EXECUTABLE_SUFFIX``
+ A suffix which is appended to all names that are being looked for. For instance you may set this
+ to ``.mpich`` or ``.openmpi`` to prefer the one or the other on Debian and its derivatives.
+
+In order to control the guessing step, the following variable may be set:
+
+``MPI_GUESS_LIBRARY_NAME``
+ Valid values are ``MSMPI`` and ``MPICH2``. If set, only the given library will be searched for.
+ By default, ``MSMPI`` will be preferred over ``MPICH2`` if both are available.
+ This also sets ``MPI_SKIP_COMPILER_WRAPPER`` to ``true``, which may be overridden.
+
+Each of the search steps may be skipped with the following control variables:
+
+``MPI_ASSUME_NO_BUILTIN_MPI``
+ If true, the module assumes that the compiler itself does not provide an MPI implementation and
+ skips to step 2.
+``MPI_SKIP_COMPILER_WRAPPER``
+ If true, no compiler wrapper will be searched for.
+``MPI_SKIP_GUESSING``
+ If true, the guessing step will be skipped.
+
+Additionally, the following control variable is available to change search behavior:
+
+``MPI_CXX_SKIP_MPICXX``
+ Add some definitions that will disable the MPI-2 C++ bindings.
+ Currently supported are MPICH, Open MPI, Platform MPI and derivatives thereof,
+ for example MVAPICH or Intel MPI.
+
+If the find procedure fails for a variable ``MPI_<lang>_WORKS``, then the settings detected by or passed to
+the module did not work and even a simple MPI test program failed to compile.
+
+If all of these parameters were not sufficient to find the right MPI implementation, a user may
+disable the entire autodetection process by specifying both a list of libraries in ``MPI_<lang>_LIBRARIES``
+and a list of include directories in ``MPI_<lang>_ADDITIONAL_INCLUDE_DIRS``.
+Any other variable may be set in addition to these two. The module will then validate the MPI settings and store the
+settings in the cache.
+
+Cache variables for MPI
+^^^^^^^^^^^^^^^^^^^^^^^
+
+The variable ``MPI_<lang>_INCLUDE_DIRS`` will be assembled from the following variables.
+For C and CXX:
+
+``MPI_<lang>_HEADER_DIR``
+ Location of the ``mpi.h`` header on disk.
+
+For Fortran:
+
+``MPI_Fortran_F77_HEADER_DIR``
+ Location of the Fortran 77 header ``mpif.h``, if it exists.
+``MPI_Fortran_MODULE_DIR``
+ Location of the ``mpi`` or ``mpi_f08`` modules, if available.
+
+For all languages the following variables are additionally considered:
+
+``MPI_<lang>_ADDITIONAL_INCLUDE_DIRS``
+ A :ref:`;-list <CMake Language Lists>` of paths needed in addition to the normal include directories.
+``MPI_<include_name>_INCLUDE_DIR``
+ Path variables for include folders referred to by ``<include_name>``.
+``MPI_<lang>_ADDITIONAL_INCLUDE_VARS``
+ A :ref:`;-list <CMake Language Lists>` of ``<include_name>`` that will be added to the include locations of ``<lang>``.
+
+The variable ``MPI_<lang>_LIBRARIES`` will be assembled from the following variables:
+
+``MPI_<lib_name>_LIBRARY``
+ The location of a library called ``<lib_name>`` for use with MPI.
+``MPI_<lang>_LIB_NAMES``
+ A :ref:`;-list <CMake Language Lists>` of ``<lib_name>`` that will be added to the include locations of ``<lang>``.
+
+Usage of mpiexec
+^^^^^^^^^^^^^^^^
+
+When using ``MPIEXEC_EXECUTABLE`` to execute MPI applications, you should typically
+use all of the ``MPIEXEC_EXECUTABLE`` flags as follows:
+
+::
+
+ ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS}
+ ${MPIEXEC_PREFLAGS} EXECUTABLE ${MPIEXEC_POSTFLAGS} ARGS
+
+where ``EXECUTABLE`` is the MPI program, and ``ARGS`` are the arguments to
+pass to the MPI program.
+
+Advanced variables for using MPI
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The module can perform some advanced feature detections upon explicit request.
+
+**Important notice:** The following checks cannot be performed without *executing* an MPI test program.
+Consider the special considerations for the behavior of :command:`try_run` during cross compilation.
+Moreover, running an MPI program can cause additional issues, like a firewall notification on some systems.
+You should only enable these detections if you absolutely need the information.
+
+If the following variables are set to true, the respective search will be performed:
+
+``MPI_DETERMINE_Fortran_CAPABILITIES``
+ Determine for all available Fortran bindings what the values of ``MPI_SUBARRAYS_SUPPORTED`` and
+ ``MPI_ASYNC_PROTECTS_NONBLOCKING`` are and make their values available as ``MPI_Fortran_<binding>_SUBARRAYS``
+ and ``MPI_Fortran_<binding>_ASYNCPROT``, where ``<binding>`` is one of ``F77_HEADER``, ``F90_MODULE`` and
+ ``F08_MODULE``.
+``MPI_DETERMINE_LIBRARY_VERSION``
+ For each language, find the output of ``MPI_Get_library_version`` and make it available as ``MPI_<lang>_LIBRARY_VERSION_STRING``.
+ This information is usually tied to the runtime component of an MPI implementation and might differ depending on ``<lang>``.
+ Note that the return value is entirely implementation defined. This information might be used to identify
+ the MPI vendor and for example pick the correct one of multiple third party binaries that matches the MPI vendor.
+
+Backward Compatibility
+^^^^^^^^^^^^^^^^^^^^^^
+
+For backward compatibility with older versions of FindMPI, these
+variables are set, but deprecated:
+
+::
+
+ MPI_COMPILER MPI_LIBRARY MPI_EXTRA_LIBRARY
+ MPI_COMPILE_FLAGS MPI_INCLUDE_PATH MPI_LINK_FLAGS
+ MPI_LIBRARIES
+
+In new projects, please use the ``MPI_<lang>_XXX`` equivalents.
+Additionally, the following variables are deprecated:
+
+``MPI_<lang>_COMPILE_FLAGS``
+ Use ``MPI_<lang>_COMPILE_OPTIONS`` and ``MPI_<lang>_COMPILE_DEFINITIONS`` instead.
+``MPI_<lang>_INCLUDE_PATH``
+ For consumption use ``MPI_<lang>_INCLUDE_DIRS`` and for specifying folders use ``MPI_<lang>_ADDITIONAL_INCLUDE_DIRS`` instead.
+``MPIEXEC``
+ Use ``MPIEXEC_EXECUTABLE`` instead.
+#]=======================================================================]
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+
+# Generic compiler names
+set(_MPI_C_GENERIC_COMPILER_NAMES mpicc mpcc mpicc_r mpcc_r)
+set(_MPI_CXX_GENERIC_COMPILER_NAMES mpicxx mpiCC mpcxx mpCC mpic++ mpc++
+ mpicxx_r mpiCC_r mpcxx_r mpCC_r mpic++_r mpc++_r)
+set(_MPI_Fortran_GENERIC_COMPILER_NAMES mpif95 mpif95_r mpf95 mpf95_r
+ mpif90 mpif90_r mpf90 mpf90_r
+ mpif77 mpif77_r mpf77 mpf77_r
+ mpifc)
+
+# GNU compiler names
+set(_MPI_GNU_C_COMPILER_NAMES mpigcc mpgcc mpigcc_r mpgcc_r)
+set(_MPI_GNU_CXX_COMPILER_NAMES mpig++ mpg++ mpig++_r mpg++_r mpigxx)
+set(_MPI_GNU_Fortran_COMPILER_NAMES mpigfortran mpgfortran mpigfortran_r mpgfortran_r
+ mpig77 mpig77_r mpg77 mpg77_r)
+
+# Intel MPI compiler names on Windows
+if(WIN32)
+ list(APPEND _MPI_C_GENERIC_COMPILER_NAMES mpicc.bat)
+ list(APPEND _MPI_CXX_GENERIC_COMPILER_NAMES mpicxx.bat)
+ list(APPEND _MPI_Fortran_GENERIC_COMPILER_NAMES mpifc.bat)
+
+ # Intel MPI compiler names
+ set(_MPI_Intel_C_COMPILER_NAMES mpiicc.bat)
+ set(_MPI_Intel_CXX_COMPILER_NAMES mpiicpc.bat)
+ set(_MPI_Intel_Fortran_COMPILER_NAMES mpiifort.bat mpif77.bat mpif90.bat)
+
+ # Intel MPI compiler names for MSMPI
+ set(_MPI_MSVC_C_COMPILER_NAMES mpicl.bat)
+ set(_MPI_MSVC_CXX_COMPILER_NAMES mpicl.bat)
+else()
+ # Intel compiler names
+ set(_MPI_Intel_C_COMPILER_NAMES mpiicc)
+ set(_MPI_Intel_CXX_COMPILER_NAMES mpiicpc mpiicxx mpiic++)
+ set(_MPI_Intel_Fortran_COMPILER_NAMES mpiifort mpiif95 mpiif90 mpiif77)
+endif()
+
+# PGI compiler names
+set(_MPI_PGI_C_COMPILER_NAMES mpipgcc mppgcc)
+set(_MPI_PGI_CXX_COMPILER_NAMES mpipgCC mppgCC)
+set(_MPI_PGI_Fortran_COMPILER_NAMES mpipgf95 mpipgf90 mppgf95 mppgf90 mpipgf77 mppgf77)
+
+# XLC MPI Compiler names
+set(_MPI_XL_C_COMPILER_NAMES mpxlc mpxlc_r mpixlc mpixlc_r)
+set(_MPI_XL_CXX_COMPILER_NAMES mpixlcxx mpixlC mpixlc++ mpxlcxx mpxlc++ mpixlc++ mpxlCC
+ mpixlcxx_r mpixlC_r mpixlc++_r mpxlcxx_r mpxlc++_r mpixlc++_r mpxlCC_r)
+set(_MPI_XL_Fortran_COMPILER_NAMES mpixlf95 mpixlf95_r mpxlf95 mpxlf95_r
+ mpixlf90 mpixlf90_r mpxlf90 mpxlf90_r
+ mpixlf77 mpixlf77_r mpxlf77 mpxlf77_r
+ mpixlf mpixlf_r mpxlf mpxlf_r)
+
+# Prepend vendor-specific compiler wrappers to the list. If we don't know the compiler,
+# attempt all of them.
+# By attempting vendor-specific compiler names first, we should avoid situations where the compiler wrapper
+# stems from a proprietary MPI and won't know which compiler it's being used for. For instance, Intel MPI
+# controls its settings via the I_MPI_CC environment variables if the generic name is being used.
+# If we know which compiler we're working with, we can use the most specialized wrapper there is in order to
+# pick up the right settings for it.
+foreach (LANG IN ITEMS C CXX Fortran)
+ set(_MPI_${LANG}_COMPILER_NAMES "")
+ foreach (id IN ITEMS GNU Intel MSVC PGI XL)
+ if (NOT CMAKE_${LANG}_COMPILER_ID OR CMAKE_${LANG}_COMPILER_ID STREQUAL id)
+ foreach(_COMPILER_NAME IN LISTS _MPI_${id}_${LANG}_COMPILER_NAMES)
+ list(APPEND _MPI_${LANG}_COMPILER_NAMES ${_COMPILER_NAME}${MPI_EXECUTABLE_SUFFIX})
+ endforeach()
+ endif()
+ unset(_MPI_${id}_${LANG}_COMPILER_NAMES)
+ endforeach()
+ foreach(_COMPILER_NAME IN LISTS _MPI_${LANG}_GENERIC_COMPILER_NAMES)
+ list(APPEND _MPI_${LANG}_COMPILER_NAMES ${_COMPILER_NAME}${MPI_EXECUTABLE_SUFFIX})
+ endforeach()
+ unset(_MPI_${LANG}_GENERIC_COMPILER_NAMES)
+endforeach()
+
+# Names to try for mpiexec
+# Only mpiexec commands are guaranteed to behave as described in the standard,
+# mpirun commands are not covered by the standard in any way whatsoever.
+# lamexec is the executable for LAM/MPI, srun is for SLURM or Open MPI with SLURM support.
+# srun -n X <executable> is however a valid command, so it behaves 'like' mpiexec.
+set(_MPIEXEC_NAMES_BASE mpiexec mpiexec.hydra mpiexec.mpd mpirun lamexec srun)
+
+unset(_MPIEXEC_NAMES)
+foreach(_MPIEXEC_NAME IN LISTS _MPIEXEC_NAMES_BASE)
+ list(APPEND _MPIEXEC_NAMES "${_MPIEXEC_NAME}${MPI_EXECUTABLE_SUFFIX}")
+endforeach()
+unset(_MPIEXEC_NAMES_BASE)
+
+function (_MPI_check_compiler LANG QUERY_FLAG OUTPUT_VARIABLE RESULT_VARIABLE)
+ if(DEFINED MPI_${LANG}_COMPILER_FLAGS)
+ separate_arguments(_MPI_COMPILER_WRAPPER_OPTIONS NATIVE_COMMAND "${MPI_${LANG}_COMPILER_FLAGS}")
+ else()
+ separate_arguments(_MPI_COMPILER_WRAPPER_OPTIONS NATIVE_COMMAND "${MPI_COMPILER_FLAGS}")
+ endif()
+ execute_process(
+ COMMAND ${MPI_${LANG}_COMPILER} ${_MPI_COMPILER_WRAPPER_OPTIONS} ${QUERY_FLAG}
+ OUTPUT_VARIABLE WRAPPER_OUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_VARIABLE WRAPPER_OUTPUT ERROR_STRIP_TRAILING_WHITESPACE
+ RESULT_VARIABLE WRAPPER_RETURN)
+ # Some compiler wrappers will yield spurious zero return values, for example
+ # Intel MPI tolerates unknown arguments and if the MPI wrappers loads a shared
+ # library that has invalid or missing version information there would be warning
+ # messages emitted by ld.so in the compiler output. In either case, we'll treat
+ # the output as invalid.
+ if("${WRAPPER_OUTPUT}" MATCHES "undefined reference|unrecognized|need to set|no version information available|command not found")
+ set(WRAPPER_RETURN 255)
+ endif()
+ # Ensure that no error output might be passed upwards.
+ if(NOT WRAPPER_RETURN EQUAL 0)
+ unset(WRAPPER_OUTPUT)
+ else()
+ # Strip leading whitespace
+ string(REGEX REPLACE "^ +" "" WRAPPER_OUTPUT "${WRAPPER_OUTPUT}")
+ endif()
+ set(${OUTPUT_VARIABLE} "${WRAPPER_OUTPUT}" PARENT_SCOPE)
+ set(${RESULT_VARIABLE} "${WRAPPER_RETURN}" PARENT_SCOPE)
+endfunction()
+
+macro(_MPI_env_set_ifnot VAR VALUE)
+ if(NOT DEFINED ENV{${VAR}})
+ set(_MPI_${VAR}_WAS_SET FALSE)
+ set(ENV{${VAR}} ${${VALUE}})
+ else()
+ set(_MPI_${VAR}_WAS_SET TRUE)
+ endif()
+endmacro()
+
+macro(_MPI_env_unset_ifnot VAR)
+ if(NOT _MPI_${VAR}_WAS_SET)
+ unset(ENV{${VAR}})
+ endif()
+endmacro()
+
+function (_MPI_interrogate_compiler LANG)
+ unset(MPI_COMPILE_CMDLINE)
+ unset(MPI_LINK_CMDLINE)
+
+ unset(MPI_COMPILE_OPTIONS_WORK)
+ unset(MPI_COMPILE_DEFINITIONS_WORK)
+ unset(MPI_INCLUDE_DIRS_WORK)
+ unset(MPI_LINK_FLAGS_WORK)
+ unset(MPI_LIB_NAMES_WORK)
+ unset(MPI_LIB_FULLPATHS_WORK)
+
+ # Define the MPICH and Intel MPI compiler variables to the compilers set in CMake.
+ # It's possible to have a per-compiler configuration in these MPI implementations and
+ # a particular MPICH derivate might check compiler interoperability.
+ # Intel MPI in particular does this with I_MPI_CHECK_COMPILER.
+ file(TO_NATIVE_PATH "${CMAKE_${LANG}_COMPILER}" _MPI_UNDERLAYING_COMPILER)
+ # On Windows, the Intel MPI batch scripts can only work with filnames - Full paths will break them.
+ # Due to the lack of other MPICH-based wrappers for Visual C++, we may treat this as default.
+ if(MSVC)
+ get_filename_component(_MPI_UNDERLAYING_COMPILER "${_MPI_UNDERLAYING_COMPILER}" NAME)
+ endif()
+ if("${LANG}" STREQUAL "C")
+ _MPI_env_set_ifnot(I_MPI_CC _MPI_UNDERLAYING_COMPILER)
+ _MPI_env_set_ifnot(MPICH_CC _MPI_UNDERLAYING_COMPILER)
+ elseif("${LANG}" STREQUAL "CXX")
+ _MPI_env_set_ifnot(I_MPI_CXX _MPI_UNDERLAYING_COMPILER)
+ _MPI_env_set_ifnot(MPICH_CXX _MPI_UNDERLAYING_COMPILER)
+ elseif("${LANG}" STREQUAL "Fortran")
+ _MPI_env_set_ifnot(I_MPI_FC _MPI_UNDERLAYING_COMPILER)
+ _MPI_env_set_ifnot(MPICH_FC _MPI_UNDERLAYING_COMPILER)
+ _MPI_env_set_ifnot(I_MPI_F77 _MPI_UNDERLAYING_COMPILER)
+ _MPI_env_set_ifnot(MPICH_F77 _MPI_UNDERLAYING_COMPILER)
+ _MPI_env_set_ifnot(I_MPI_F90 _MPI_UNDERLAYING_COMPILER)
+ _MPI_env_set_ifnot(MPICH_F90 _MPI_UNDERLAYING_COMPILER)
+ endif()
+
+ # Set these two variables for Intel MPI:
+ # - I_MPI_DEBUG_INFO_STRIP: It adds 'objcopy' lines to the compiler output. We support stripping them
+ # (see below), but if we can avoid them in the first place, we should.
+ # - I_MPI_FORT_BIND: By default Intel MPI makes the C/C++ compiler wrappers link Fortran bindings.
+ # This is so that mixed-language code doesn't require additional libraries when linking with mpicc.
+ # For our purposes, this makes little sense, since correct MPI usage from CMake already circumvenes this.
+ set(_MPI_ENV_VALUE "disable")
+ _MPI_env_set_ifnot(I_MPI_DEBUG_INFO_STRIP _MPI_ENV_VALUE)
+ _MPI_env_set_ifnot(I_MPI_FORT_BIND _MPI_ENV_VALUE)
+
+ # Check whether the -showme:compile option works. This indicates that we have either Open MPI
+ # or a newer version of LAM/MPI, and implies that -showme:link will also work.
+ # Open MPI also supports -show, but separates linker and compiler information
+ _MPI_check_compiler(${LANG} "-showme:compile" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
+ if (MPI_COMPILER_RETURN EQUAL 0)
+ _MPI_check_compiler(${LANG} "-showme:link" MPI_LINK_CMDLINE MPI_COMPILER_RETURN)
+
+ if (NOT MPI_COMPILER_RETURN EQUAL 0)
+ unset(MPI_COMPILE_CMDLINE)
+ endif()
+ endif()
+
+ # MPICH and MVAPICH offer -compile-info and -link-info.
+ # For modern versions, both do the same as -show. However, for old versions, they do differ
+ # when called for mpicxx and mpif90 and it's necessary to use them over -show in order to find the
+ # removed MPI C++ bindings.
+ if (NOT MPI_COMPILER_RETURN EQUAL 0)
+ _MPI_check_compiler(${LANG} "-compile-info" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
+
+ if (MPI_COMPILER_RETURN EQUAL 0)
+ _MPI_check_compiler(${LANG} "-link-info" MPI_LINK_CMDLINE MPI_COMPILER_RETURN)
+
+ if (NOT MPI_COMPILER_RETURN EQUAL 0)
+ unset(MPI_COMPILE_CMDLINE)
+ endif()
+ endif()
+ endif()
+
+ # MPICH, MVAPICH2 and Intel MPI just use "-show". Open MPI also offers this, but the
+ # -showme commands are more specialized.
+ if (NOT MPI_COMPILER_RETURN EQUAL 0)
+ _MPI_check_compiler(${LANG} "-show" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
+ endif()
+
+ # Older versions of LAM/MPI have "-showme". Open MPI also supports this.
+ # Unknown to MPICH, MVAPICH and Intel MPI.
+ if (NOT MPI_COMPILER_RETURN EQUAL 0)
+ _MPI_check_compiler(${LANG} "-showme" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
+ endif()
+
+ if (MPI_COMPILER_RETURN EQUAL 0 AND DEFINED MPI_COMPILE_CMDLINE)
+ # Intel MPI can be run with -compchk or I_MPI_CHECK_COMPILER set to 1.
+ # In this case, -show will be prepended with a line to the compiler checker. This is a script that performs
+ # compatibility checks and returns a non-zero exit code together with an error if something fails.
+ # It has to be called as "compchk.sh <arch> <compiler>". Here, <arch> is one out of 32 (i686), 64 (ia64) or 32e (x86_64).
+ # The compiler is identified by filename, and can be either the MPI compiler or the underlying compiler.
+ # NOTE: It is vital to run this script while the environment variables are set up, otherwise it can check the wrong compiler.
+ if("${MPI_COMPILE_CMDLINE}" MATCHES "^([^\" ]+/compchk.sh|\"[^\"]+/compchk.sh\") +([^ ]+)")
+ # Now CMAKE_MATCH_1 contains the path to the compchk.sh file and CMAKE_MATCH_2 the architecture flag.
+ unset(COMPILER_CHECKER_OUTPUT)
+ execute_process(
+ COMMAND ${CMAKE_MATCH_1} ${CMAKE_MATCH_2} ${MPI_${LANG}_COMPILER}
+ OUTPUT_VARIABLE COMPILER_CHECKER_OUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_VARIABLE COMPILER_CHECKER_OUTPUT ERROR_STRIP_TRAILING_WHITESPACE
+ RESULT_VARIABLE MPI_COMPILER_RETURN)
+ # If it returned a non-zero value, the check below will fail and cause the interrogation to be aborted.
+ if(NOT MPI_COMPILER_RETURN EQUAL 0)
+ if(NOT MPI_FIND_QUIETLY)
+ message(STATUS "Intel MPI compiler check failed: ${COMPILER_CHECKER_OUTPUT}")
+ endif()
+ else()
+ # Since the check passed, we can remove the compchk.sh script.
+ string(REGEX REPLACE "^([^\" ]+|\"[^\"]+\")/compchk.sh.*\n" "" MPI_COMPILE_CMDLINE "${MPI_COMPILE_CMDLINE}")
+ endif()
+ endif()
+ endif()
+
+ # Revert changes to the environment made previously
+ if("${LANG}" STREQUAL "C")
+ _MPI_env_unset_ifnot(I_MPI_CC)
+ _MPI_env_unset_ifnot(MPICH_CC)
+ elseif("${LANG}" STREQUAL "CXX")
+ _MPI_env_unset_ifnot(I_MPI_CXX)
+ _MPI_env_unset_ifnot(MPICH_CXX)
+ elseif("${LANG}" STREQUAL "Fortran")
+ _MPI_env_unset_ifnot(I_MPI_FC)
+ _MPI_env_unset_ifnot(MPICH_FC)
+ _MPI_env_unset_ifnot(I_MPI_F77)
+ _MPI_env_unset_ifnot(MPICH_F77)
+ _MPI_env_unset_ifnot(I_MPI_F90)
+ _MPI_env_unset_ifnot(MPICH_F90)
+ endif()
+
+ _MPI_env_unset_ifnot(I_MPI_DEBUG_INFO_STRIP)
+ _MPI_env_unset_ifnot(I_MPI_FORT_BIND)
+
+ if (NOT (MPI_COMPILER_RETURN EQUAL 0) OR NOT (DEFINED MPI_COMPILE_CMDLINE))
+ # Cannot interrogate this compiler, so exit.
+ set(MPI_${LANG}_WRAPPER_FOUND FALSE PARENT_SCOPE)
+ return()
+ endif()
+ unset(MPI_COMPILER_RETURN)
+
+ # We have our command lines, but we might need to copy MPI_COMPILE_CMDLINE
+ # into MPI_LINK_CMDLINE, if we didn't find the link line.
+ if (NOT DEFINED MPI_LINK_CMDLINE)
+ set(MPI_LINK_CMDLINE "${MPI_COMPILE_CMDLINE}")
+ endif()
+
+ # Visual Studio parsers permit each flag prefixed by either / or -.
+ # We'll normalize this to the - syntax we use for CMake purposes anyways.
+ if(MSVC)
+ foreach(_MPI_VARIABLE IN ITEMS COMPILE LINK)
+ # The Intel MPI wrappers on Windows prefix their output with some copyright boilerplate.
+ # To prevent possible problems, we discard this text before proceeding with any further matching.
+ string(REGEX REPLACE "^[^ ]+ for the Intel\\(R\\) MPI Library [^\n]+ for Windows\\*\nCopyright\\(C\\) [^\n]+, Intel Corporation\\. All rights reserved\\.\n\n" ""
+ MPI_${_MPI_VARIABLE}_CMDLINE "${MPI_${_MPI_VARIABLE}_CMDLINE}")
+ string(REGEX REPLACE "(^| )/" "\\1-" MPI_${_MPI_VARIABLE}_CMDLINE "${MPI_${_MPI_VARIABLE}_CMDLINE}")
+ string(REPLACE "-libpath:" "-LIBPATH:" MPI_${_MPI_VARIABLE}_CMDLINE "${MPI_${_MPI_VARIABLE}_CMDLINE}")
+ endforeach()
+ endif()
+
+ # For MSVC and cl-compatible compilers, the keyword /link indicates a point after which
+ # everything following is passed to the linker. In this case, we drop all prior information
+ # from the link line and treat any unknown extra flags as linker flags.
+ set(_MPI_FILTERED_LINK_INFORMATION FALSE)
+ if(MSVC)
+ if(MPI_LINK_CMDLINE MATCHES " -(link|LINK) ")
+ string(REGEX REPLACE ".+-(link|LINK) +" "" MPI_LINK_CMDLINE "${MPI_LINK_CMDLINE}")
+ set(_MPI_FILTERED_LINK_INFORMATION TRUE)
+ endif()
+ string(REGEX REPLACE " +-(link|LINK) .+" "" MPI_COMPILE_CMDLINE "${MPI_COMPILE_CMDLINE}")
+ endif()
+
+ if(UNIX)
+ # At this point, we obtained some output from a compiler wrapper that works.
+ # We'll now try to parse it into variables with meaning to us.
+ if("${LANG}" STREQUAL "Fortran")
+ # If MPICH (and derivates) didn't recognize the Fortran compiler include flag during configuration,
+ # they'll return a set of three commands, consisting out of a symlink command for mpif.h,
+ # the actual compiler command and deletion of the created symlink.
+ # Especially with M(VA)PICH-1, this appears to happen erroneously, and therefore we should translate
+ # this output into an additional include directory and then drop it from the output.
+ if("${MPI_COMPILE_CMDLINE}" MATCHES "^ln -s ([^\" ]+|\"[^\"]+\") mpif.h")
+ get_filename_component(MPI_INCLUDE_DIRS_WORK "${CMAKE_MATCH_1}" DIRECTORY)
+ string(REGEX REPLACE "^ln -s ([^\" ]+|\"[^\"]+\") mpif.h\n" "" MPI_COMPILE_CMDLINE "${MPI_COMPILE_CMDLINE}")
+ string(REGEX REPLACE "^ln -s ([^\" ]+|\"[^\"]+\") mpif.h\n" "" MPI_LINK_CMDLINE "${MPI_LINK_CMDLINE}")
+ string(REGEX REPLACE "\nrm -f mpif.h$" "" MPI_COMPILE_CMDLINE "${MPI_COMPILE_CMDLINE}")
+ string(REGEX REPLACE "\nrm -f mpif.h$" "" MPI_LINK_CMDLINE "${MPI_LINK_CMDLINE}")
+ endif()
+ endif()
+
+ # If Intel MPI was configured for static linkage with -static_mpi, the wrapper will by default strip
+ # debug information from resulting binaries (see I_MPI_DEBUG_INFO_STRIP).
+ # Since we cannot process this information into CMake logic, we need to discard the resulting objcopy
+ # commands from the output.
+ string(REGEX REPLACE "(^|\n)objcopy[^\n]+(\n|$)" "" MPI_COMPILE_CMDLINE "${MPI_COMPILE_CMDLINE}")
+ string(REGEX REPLACE "(^|\n)objcopy[^\n]+(\n|$)" "" MPI_LINK_CMDLINE "${MPI_LINK_CMDLINE}")
+ endif()
+
+ # For Visual C++, extracting compiler options in a generic fashion isn't easy. However, no MPI implementation
+ # on Windows seems to require any specific ones, either.
+ if(NOT MSVC)
+ # Extract compile options from the compile command line.
+ string(REGEX MATCHALL "(^| )-f([^\" ]+|\"[^\"]+\")" MPI_ALL_COMPILE_OPTIONS "${MPI_COMPILE_CMDLINE}")
+
+ foreach(_MPI_COMPILE_OPTION IN LISTS MPI_ALL_COMPILE_OPTIONS)
+ string(REGEX REPLACE "^ " "" _MPI_COMPILE_OPTION "${_MPI_COMPILE_OPTION}")
+
+ # Ignore -fstack-protector directives: These occur on MPICH and MVAPICH when the libraries
+ # themselves were built with this flag. However, this flag is unrelated to using MPI, and
+ # we won't match the accompanying --param-ssp-size and -Wp,-D_FORTIFY_SOURCE flags and therefore
+ # produce inconsistent results with the regularly flags.
+ # Similarly, aliasing flags do not belong into our flag array.
+ if(NOT "${_MPI_COMPILE_OPTION}" MATCHES "^-f((no-|)(stack-protector|strict-aliasing)|PI[CE]|pi[ce])")
+ list(APPEND MPI_COMPILE_OPTIONS_WORK "${_MPI_COMPILE_OPTION}")
+ endif()
+ endforeach()
+ endif()
+
+ # For GNU-style compilers, it's possible to prefix includes and definitions with certain flags to pass them
+ # only to the preprocessor. For CMake purposes, we need to treat, but ignore such scopings.
+ # Note that we do not support spaces between the arguments, i.e. -Wp,-I -Wp,/opt/mympi will not be parsed
+ # correctly. This form does not seem to occur in any common MPI implementation, however.
+ if(NOT MSVC)
+ set(_MPI_PREPROCESSOR_FLAG_REGEX "(-Wp,|-Xpreprocessor )?")
+ else()
+ set(_MPI_PREPROCESSOR_FLAG_REGEX "")
+ endif()
+
+ # Same deal as above, for the definitions.
+ string(REGEX MATCHALL "(^| )${_MPI_PREPROCESSOR_FLAG_REGEX}-D *([^\" ]+|\"[^\"]+\")" MPI_ALL_COMPILE_DEFINITIONS "${MPI_COMPILE_CMDLINE}")
+
+ foreach(_MPI_COMPILE_DEFINITION IN LISTS MPI_ALL_COMPILE_DEFINITIONS)
+ string(REGEX REPLACE "^ ?${_MPI_PREPROCESSOR_FLAG_REGEX}-D *" "" _MPI_COMPILE_DEFINITION "${_MPI_COMPILE_DEFINITION}")
+ string(REPLACE "\"" "" _MPI_COMPILE_DEFINITION "${_MPI_COMPILE_DEFINITION}")
+ if(NOT "${_MPI_COMPILE_DEFINITION}" MATCHES "^_FORTIFY_SOURCE.*")
+ list(APPEND MPI_COMPILE_DEFINITIONS_WORK "${_MPI_COMPILE_DEFINITION}")
+ endif()
+ endforeach()
+
+ # Extract include paths from compile command line
+ string(REGEX MATCHALL "(^| )${_MPI_PREPROCESSOR_FLAG_REGEX}${CMAKE_INCLUDE_FLAG_${LANG}} *([^\" ]+|\"[^\"]+\")"
+ MPI_ALL_INCLUDE_PATHS "${MPI_COMPILE_CMDLINE}")
+
+ # If extracting failed to work, we'll try using -showme:incdirs.
+ # Unlike before, we do this without the environment variables set up, but since only MPICH derivates are affected by any of them, and
+ # -showme:... is only supported by Open MPI and LAM/MPI, this isn't a concern.
+ if (NOT MPI_ALL_INCLUDE_PATHS)
+ _MPI_check_compiler(${LANG} "-showme:incdirs" MPI_INCDIRS_CMDLINE MPI_INCDIRS_COMPILER_RETURN)
+ if(MPI_INCDIRS_COMPILER_RETURN)
+ separate_arguments(MPI_ALL_INCLUDE_PATHS NATIVE_COMMAND "${MPI_INCDIRS_CMDLINE}")
+ endif()
+ endif()
+
+ foreach(_MPI_INCLUDE_PATH IN LISTS MPI_ALL_INCLUDE_PATHS)
+ string(REGEX REPLACE "^ ?${_MPI_PREPROCESSOR_FLAG_REGEX}${CMAKE_INCLUDE_FLAG_${LANG}} *" "" _MPI_INCLUDE_PATH "${_MPI_INCLUDE_PATH}")
+ string(REPLACE "\"" "" _MPI_INCLUDE_PATH "${_MPI_INCLUDE_PATH}")
+ get_filename_component(_MPI_INCLUDE_PATH "${_MPI_INCLUDE_PATH}" REALPATH)
+ list(APPEND MPI_INCLUDE_DIRS_WORK "${_MPI_INCLUDE_PATH}")
+ endforeach()
+
+ # The next step are linker flags and library directories. Here, we first take the flags given in raw -L or -LIBPATH: syntax.
+ string(REGEX MATCHALL "(^| )${CMAKE_LIBRARY_PATH_FLAG} *([^\" ]+|\"[^\"]+\")" MPI_DIRECT_LINK_PATHS "${MPI_LINK_CMDLINE}")
+ foreach(_MPI_LPATH IN LISTS MPI_DIRECT_LINK_PATHS)
+ string(REGEX REPLACE "(^| )${CMAKE_LIBRARY_PATH_FLAG} *" "" _MPI_LPATH "${_MPI_LPATH}")
+ list(APPEND MPI_ALL_LINK_PATHS "${_MPI_LPATH}")
+ endforeach()
+
+ # If the link commandline hasn't been filtered (e.g. when using MSVC and /link), we need to extract the relevant parts first.
+ if(NOT _MPI_FILTERED_LINK_INFORMATION)
+ string(REGEX MATCHALL "(^| )(-Wl,|-Xlinker +)([^\" ]+|\"[^\"]+\")" MPI_LINK_FLAGS "${MPI_LINK_CMDLINE}")
+
+ # In this case, we could also find some indirectly given linker paths, e.g. prefixed by -Xlinker or -Wl,
+ # Since syntaxes like -Wl,-L -Wl,/my/path/to/lib are also valid, we parse these paths by first removing -Wl, and -Xlinker
+ # from the list of filtered flags and then parse the remainder of the output.
+ string(REGEX REPLACE "(-Wl,|-Xlinker +)" "" MPI_LINK_FLAGS_RAW "${MPI_LINK_FLAGS}")
+
+ # Now we can parse the leftover output. Note that spaces can now be handled since the above example would reduce to
+ # -L /my/path/to/lib and can be extracted correctly.
+ string(REGEX MATCHALL "^(${CMAKE_LIBRARY_PATH_FLAG},? *|--library-path=)([^\" ]+|\"[^\"]+\")"
+ MPI_INDIRECT_LINK_PATHS "${MPI_LINK_FLAGS_RAW}")
+
+ foreach(_MPI_LPATH IN LISTS MPI_INDIRECT_LINK_PATHS)
+ string(REGEX REPLACE "^(${CMAKE_LIBRARY_PATH_FLAG},? *|--library-path=)" "" _MPI_LPATH "${_MPI_LPATH}")
+ list(APPEND MPI_ALL_LINK_PATHS "${_MPI_LPATH}")
+ endforeach()
+
+ # We need to remove the flags we extracted from the linker flag list now.
+ string(REGEX REPLACE "(^| )(-Wl,|-Xlinker +)(${CMAKE_LIBRARY_PATH_FLAG},? *(-Wl,|-Xlinker +)?|--library-path=)([^\" ]+|\"[^\"]+\")" ""
+ MPI_LINK_CMDLINE_FILTERED "${MPI_LINK_CMDLINE}")
+
+ # Some MPI implementations pass on options they themselves were built with. Since -z,noexecstack is a common
+ # hardening, we should strip it. In general, the -z options should be undesirable.
+ string(REGEX REPLACE "(^| )-Wl,-z(,[^ ]+| +-Wl,[^ ]+)" "" MPI_LINK_CMDLINE_FILTERED "${MPI_LINK_CMDLINE_FILTERED}")
+ string(REGEX REPLACE "(^| )-Xlinker +-z +-Xlinker +[^ ]+" "" MPI_LINK_CMDLINE_FILTERED "${MPI_LINK_CMDLINE_FILTERED}")
+
+ # We only consider options of the form -Wl or -Xlinker:
+ string(REGEX MATCHALL "(^| )(-Wl,|-Xlinker +)([^\" ]+|\"[^\"]+\")" MPI_ALL_LINK_FLAGS "${MPI_LINK_CMDLINE_FILTERED}")
+
+ # As a next step, we assemble the linker flags extracted in a preliminary flags string
+ foreach(_MPI_LINK_FLAG IN LISTS MPI_ALL_LINK_FLAGS)
+ string(STRIP "${_MPI_LINK_FLAG}" _MPI_LINK_FLAG)
+ if (MPI_LINK_FLAGS_WORK)
+ string(APPEND MPI_LINK_FLAGS_WORK " ${_MPI_LINK_FLAG}")
+ else()
+ set(MPI_LINK_FLAGS_WORK "${_MPI_LINK_FLAG}")
+ endif()
+ endforeach()
+ else()
+ # In the filtered case, we obtain the link time flags by just stripping the library paths.
+ string(REGEX REPLACE "(^| )${CMAKE_LIBRARY_PATH_FLAG} *([^\" ]+|\"[^\"]+\")" "" MPI_LINK_CMDLINE_FILTERED "${MPI_LINK_CMDLINE}")
+ endif()
+
+ # If we failed to extract any linker paths, we'll try using the -showme:libdirs option with the MPI compiler.
+ # This will return a list of folders, not a set of flags!
+ if (NOT MPI_ALL_LINK_PATHS)
+ _MPI_check_compiler(${LANG} "-showme:libdirs" MPI_LIBDIRS_CMDLINE MPI_LIBDIRS_COMPILER_RETURN)
+ if(MPI_LIBDIRS_COMPILER_RETURN)
+ separate_arguments(MPI_ALL_LINK_PATHS NATIVE_COMMAND "${MPI_LIBDIRS_CMDLINE}")
+ endif()
+ endif()
+
+ # We need to remove potential quotes and convert the paths to CMake syntax while resolving them, too.
+ foreach(_MPI_LPATH IN LISTS MPI_ALL_LINK_PATHS)
+ string(REPLACE "\"" "" _MPI_LPATH "${_MPI_LPATH}")
+ get_filename_component(_MPI_LPATH "${_MPI_LPATH}" REALPATH)
+ list(APPEND MPI_LINK_DIRECTORIES_WORK "${_MPI_LPATH}")
+ endforeach()
+
+ # Extract the set of libraries to link against from the link command line
+ # This only makes sense if CMAKE_LINK_LIBRARY_FLAG is defined, i.e. a -lxxxx syntax is supported by the compiler.
+ if(CMAKE_LINK_LIBRARY_FLAG)
+ string(REGEX MATCHALL "(^| )${CMAKE_LINK_LIBRARY_FLAG}([^\" ]+|\"[^\"]+\")"
+ MPI_LIBNAMES "${MPI_LINK_CMDLINE}")
+
+ foreach(_MPI_LIB_NAME IN LISTS MPI_LIBNAMES)
+ string(REGEX REPLACE "^ ?${CMAKE_LINK_LIBRARY_FLAG}" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
+ string(REPLACE "\"" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
+ list(APPEND MPI_LIB_NAMES_WORK "${_MPI_LIB_NAME}")
+ endforeach()
+ endif()
+
+ # Treat linker objects given by full path, for example static libraries, import libraries
+ # or shared libraries if there aren't any import libraries in use on the system.
+ # Note that we do not consider CMAKE_<TYPE>_LIBRARY_PREFIX intentionally here: The linker will for a given file
+ # decide how to link it based on file type, not based on a prefix like 'lib'.
+ set(_MPI_LIB_SUFFIX_REGEX "${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ if(DEFINED CMAKE_IMPORT_LIBRARY_SUFFIX)
+ if(NOT ("${CMAKE_IMPORT_LIBRARY_SUFFIX}" STREQUAL "${CMAKE_STATIC_LIBRARY_SUFFIX}"))
+ string(APPEND _MPI_SUFFIX_REGEX "|${CMAKE_IMPORT_LIBRARY_SUFFIX}")
+ endif()
+ else()
+ string(APPEND _MPI_LIB_SUFFIX_REGEX "|${CMAKE_SHARED_LIBRARY_SUFFIX}")
+ endif()
+ set(_MPI_LIB_NAME_REGEX "(([^\" ]+(${_MPI_LIB_SUFFIX_REGEX}))|(\"[^\"]+(${_MPI_LIB_SUFFIX_REGEX})\"))( +|$)")
+ string(REPLACE "." "\\." _MPI_LIB_NAME_REGEX "${_MPI_LIB_NAME_REGEX}")
+
+ string(REGEX MATCHALL "${_MPI_LIB_NAME_REGEX}" MPI_LIBNAMES "${MPI_LINK_CMDLINE}")
+ foreach(_MPI_LIB_NAME IN LISTS MPI_LIBNAMES)
+ string(REGEX REPLACE "^ +\"?|\"? +$" "" _MPI_LIB_NAME "${_MPI_LIB_NAME}")
+ get_filename_component(_MPI_LIB_PATH "${_MPI_LIB_NAME}" DIRECTORY)
+ if(NOT "${_MPI_LIB_PATH}" STREQUAL "")
+ list(APPEND MPI_LIB_FULLPATHS_WORK "${_MPI_LIB_NAME}")
+ else()
+ list(APPEND MPI_LIB_NAMES_WORK "${_MPI_LIB_NAME}")
+ endif()
+ endforeach()
+
+ # Save the explicitly given link directories
+ set(MPI_LINK_DIRECTORIES_LEFTOVER "${MPI_LINK_DIRECTORIES_WORK}")
+
+ # An MPI compiler wrapper could have its MPI libraries in the implictly
+ # linked directories of the compiler itself.
+ if(DEFINED CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES)
+ list(APPEND MPI_LINK_DIRECTORIES_WORK "${CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES}")
+ endif()
+
+ # Determine full path names for all of the libraries that one needs
+ # to link against in an MPI program
+ unset(MPI_PLAIN_LIB_NAMES_WORK)
+ foreach(_MPI_LIB_NAME IN LISTS MPI_LIB_NAMES_WORK)
+ get_filename_component(_MPI_PLAIN_LIB_NAME "${_MPI_LIB_NAME}" NAME_WE)
+ list(APPEND MPI_PLAIN_LIB_NAMES_WORK "${_MPI_PLAIN_LIB_NAME}")
+ find_library(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY
+ NAMES "${_MPI_LIB_NAME}" "lib${_MPI_LIB_NAME}"
+ HINTS ${MPI_LINK_DIRECTORIES_WORK}
+ DOC "Location of the ${_MPI_PLAIN_LIB_NAME} library for MPI"
+ )
+ mark_as_advanced(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY)
+ # Remove the directory from the remainder list.
+ if(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY)
+ get_filename_component(_MPI_TAKEN_DIRECTORY "${MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY}" DIRECTORY)
+ list(REMOVE_ITEM MPI_LINK_DIRECTORIES_LEFTOVER "${_MPI_TAKEN_DIRECTORY}")
+ endif()
+ endforeach()
+
+ # Add the link directories given explicitly that we haven't used back as linker directories.
+ if(NOT WIN32)
+ foreach(_MPI_LINK_DIRECTORY IN LISTS MPI_LINK_DIRECTORIES_LEFTOVER)
+ file(TO_NATIVE_PATH "${_MPI_LINK_DIRECTORY}" _MPI_LINK_DIRECTORY_ACTUAL)
+ string(FIND "${_MPI_LINK_DIRECTORY_ACTUAL}" " " _MPI_LINK_DIRECTORY_CONTAINS_SPACE)
+ if(NOT _MPI_LINK_DIRECTORY_CONTAINS_SPACE EQUAL -1)
+ set(_MPI_LINK_DIRECTORY_ACTUAL "\"${_MPI_LINK_DIRECTORY_ACTUAL}\"")
+ endif()
+ if(MPI_LINK_FLAGS_WORK)
+ string(APPEND MPI_LINK_FLAGS_WORK " ${CMAKE_LIBRARY_PATH_FLAG}${_MPI_LINK_DIRECTORY_ACTUAL}")
+ else()
+ set(MPI_LINK_FLAGS_WORK "${CMAKE_LIBRARY_PATH_FLAG}${_MPI_LINK_DIRECTORY_ACTUAL}")
+ endif()
+ endforeach()
+ endif()
+
+ # Deal with the libraries given with full path next
+ unset(MPI_DIRECT_LIB_NAMES_WORK)
+ foreach(_MPI_LIB_FULLPATH IN LISTS MPI_LIB_FULLPATHS_WORK)
+ get_filename_component(_MPI_PLAIN_LIB_NAME "${_MPI_LIB_FULLPATH}" NAME_WE)
+ list(APPEND MPI_DIRECT_LIB_NAMES_WORK "${_MPI_PLAIN_LIB_NAME}")
+ set(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY "${_MPI_LIB_FULLPATH}" CACHE FILEPATH "Location of the ${_MPI_PLAIN_LIB_NAME} library for MPI")
+ mark_as_advanced(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY)
+ endforeach()
+ # Directly linked objects should be linked first in case some generic linker flags are needed for them.
+ if(MPI_DIRECT_LIB_NAMES_WORK)
+ set(MPI_PLAIN_LIB_NAMES_WORK "${MPI_DIRECT_LIB_NAMES_WORK};${MPI_PLAIN_LIB_NAMES_WORK}")
+ endif()
+
+ # MPI might require pthread to work. The above mechanism wouldn't detect it, but we need to
+ # link it in that case. -lpthread is covered by the normal library treatment on the other hand.
+ if("${MPI_COMPILE_CMDLINE}" MATCHES "-pthread")
+ list(APPEND MPI_COMPILE_OPTIONS_WORK "-pthread")
+ if(MPI_LINK_FLAGS_WORK)
+ string(APPEND MPI_LINK_FLAGS_WORK " -pthread")
+ else()
+ set(MPI_LINK_FLAGS_WORK "-pthread")
+ endif()
+ endif()
+
+ if(MPI_${LANG}_EXTRA_COMPILE_DEFINITIONS)
+ list(APPEND MPI_COMPILE_DEFINITIONS_WORK "${MPI_${LANG}_EXTRA_COMPILE_DEFINITIONS}")
+ endif()
+ if(MPI_${LANG}_EXTRA_COMPILE_OPTIONS)
+ list(APPEND MPI_COMPILE_OPTIONS_WORK "${MPI_${LANG}_EXTRA_COMPILE_OPTIONS}")
+ endif()
+ if(MPI_${LANG}_EXTRA_LIB_NAMES)
+ list(APPEND MPI_PLAIN_LIB_NAMES_WORK "${MPI_${LANG}_EXTRA_LIB_NAMES}")
+ endif()
+
+ # If we found MPI, set up all of the appropriate cache entries
+ if(NOT MPI_${LANG}_COMPILE_OPTIONS)
+ set(MPI_${LANG}_COMPILE_OPTIONS ${MPI_COMPILE_OPTIONS_WORK} CACHE STRING "MPI ${LANG} compilation options" FORCE)
+ endif()
+ if(NOT MPI_${LANG}_COMPILE_DEFINITIONS)
+ set(MPI_${LANG}_COMPILE_DEFINITIONS ${MPI_COMPILE_DEFINITIONS_WORK} CACHE STRING "MPI ${LANG} compilation definitions" FORCE)
+ endif()
+ if(NOT MPI_${LANG}_COMPILER_INCLUDE_DIRS)
+ set(MPI_${LANG}_COMPILER_INCLUDE_DIRS ${MPI_INCLUDE_DIRS_WORK} CACHE STRING "MPI ${LANG} compiler wrapper include directories" FORCE)
+ endif()
+ if(NOT MPI_${LANG}_LINK_FLAGS)
+ set(MPI_${LANG}_LINK_FLAGS ${MPI_LINK_FLAGS_WORK} CACHE STRING "MPI ${LANG} linker flags" FORCE)
+ endif()
+ if(NOT MPI_${LANG}_LIB_NAMES)
+ set(MPI_${LANG}_LIB_NAMES ${MPI_PLAIN_LIB_NAMES_WORK} CACHE STRING "MPI ${LANG} libraries to link against" FORCE)
+ endif()
+ set(MPI_${LANG}_WRAPPER_FOUND TRUE PARENT_SCOPE)
+endfunction()
+
+function(_MPI_guess_settings LANG)
+ set(MPI_GUESS_FOUND FALSE)
+ # Currently only MSMPI and MPICH2 on Windows are supported, so we can skip this search if we're not targeting that.
+ if(WIN32)
+ # MSMPI
+
+ # The environment variables MSMPI_INC and MSMPILIB32/64 are the only ways of locating the MSMPI_SDK,
+ # which is installed separately from the runtime. Thus it's possible to have mpiexec but not MPI headers
+ # or import libraries and vice versa.
+ if(NOT MPI_GUESS_LIBRARY_NAME OR "${MPI_GUESS_LIBRARY_NAME}" STREQUAL "MSMPI")
+ # We first attempt to locate the msmpi.lib. Should be find it, we'll assume that the MPI present is indeed
+ # Microsoft MPI.
+ if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
+ set(MPI_MSMPI_LIB_PATH "$ENV{MSMPI_LIB64}")
+ set(MPI_MSMPI_INC_PATH_EXTRA "$ENV{MSMPI_INC}/x64")
+ else()
+ set(MPI_MSMPI_LIB_PATH "$ENV{MSMPI_LIB32}")
+ set(MPI_MSMPI_INC_PATH_EXTRA "$ENV{MSMPI_INC}/x86")
+ endif()
+
+ find_library(MPI_msmpi_LIBRARY
+ NAMES msmpi
+ HINTS ${MPI_MSMPI_LIB_PATH}
+ DOC "Location of the msmpi library for Microsoft MPI")
+ mark_as_advanced(MPI_msmpi_LIBRARY)
+
+ if(MPI_msmpi_LIBRARY)
+ # Next, we attempt to locate the MPI header. Note that for Fortran we know that mpif.h is a way
+ # MSMPI can be used and therefore that header has to be present.
+ if(NOT MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)
+ get_filename_component(MPI_MSMPI_INC_DIR "$ENV{MSMPI_INC}" REALPATH)
+ set(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS "${MPI_MSMPI_INC_DIR}" CACHE STRING "MPI ${LANG} additional include directories" FORCE)
+ unset(MPI_MSMPI_INC_DIR)
+ endif()
+
+ # For MSMPI, one can compile the MPI module by building the mpi.f90 shipped with the MSMPI SDK,
+ # thus it might be present or provided by the user. Figuring out which is supported is done later on.
+ # The PGI Fortran compiler for instance ships a prebuilt set of modules in its own include folder.
+ # Should a user be employing PGI or have built its own set and provided it via cache variables, the
+ # splitting routine would have located the module files.
+
+ # For C and C++, we're done here (MSMPI does not ship the MPI-2 C++ bindings) - however, for Fortran
+ # we need some extra library to glue Fortran support together:
+ # MSMPI ships 2-4 Fortran libraries, each for different Fortran compiler behaviors. The library names
+ # ending with a c are using the cdecl calling convention, whereas those ending with an s are for Fortran
+ # implementations using stdcall. Therefore, the 64-bit MSMPI only ships those ending in 'c', whereas the 32-bit
+ # has both variants available.
+ # The second difference is the last but one letter, if it's an e(nd), the length of a string argument is
+ # passed by the Fortran compiler after all other arguments on the parameter list, if it's an m(ixed),
+ # it's passed immediately after the string address.
+
+ # To summarize:
+ # - msmpifec: CHARACTER length passed after the parameter list and using cdecl calling convention
+ # - msmpifmc: CHARACTER length passed directly after string address and using cdecl calling convention
+ # - msmpifes: CHARACTER length passed after the parameter list and using stdcall calling convention
+ # - msmpifms: CHARACTER length passed directly after string address and using stdcall calling convention
+ # 32-bit MSMPI ships all four libraries, 64-bit MSMPI ships only the first two.
+
+ # As is, Intel Fortran and PGI Fortran both use the 'ec' variant of the calling convention, whereas
+ # the old Compaq Visual Fortran compiler defaulted to the 'ms' version. It's possible to make Intel Fortran
+ # use the CVF calling convention using /iface:cvf, but we assume - and this is also assumed in FortranCInterface -
+ # this isn't the case. It's also possible to make CVF use the 'ec' variant, using /iface=(cref,nomixed_str_len_arg).
+
+ # Our strategy is now to locate all libraries, but enter msmpifec into the LIB_NAMES array.
+ # Should this not be adequate it's a straightforward way for a user to change the LIB_NAMES array and
+ # have his library found. Still, this should not be necessary outside of exceptional cases, as reasoned.
+ if ("${LANG}" STREQUAL "Fortran")
+ set(MPI_MSMPI_CALLINGCONVS c)
+ if("${CMAKE_SIZEOF_VOID_P}" EQUAL 4)
+ list(APPEND MPI_MSMPI_CALLINGCONVS s)
+ endif()
+ foreach(mpistrlenpos IN ITEMS e m)
+ foreach(mpicallingconv IN LISTS MPI_MSMPI_CALLINGCONVS)
+ find_library(MPI_msmpif${mpistrlenpos}${mpicallingconv}_LIBRARY
+ NAMES msmpif${mpistrlenpos}${mpicallingconv}
+ HINTS "${MPI_MSMPI_LIB_PATH}"
+ DOC "Location of the msmpi${mpistrlenpos}${mpicallingconv} library for Microsoft MPI")
+ mark_as_advanced(MPI_msmpif${mpistrlenpos}${mpicallingconv}_LIBRARY)
+ endforeach()
+ endforeach()
+ if(NOT MPI_${LANG}_LIB_NAMES)
+ set(MPI_${LANG}_LIB_NAMES "msmpi;msmpifec" CACHE STRING "MPI ${LANG} libraries to link against" FORCE)
+ endif()
+
+ # At this point we're *not* done. MSMPI requires an additional include file for Fortran giving the value
+ # of MPI_AINT. This file is called mpifptr.h located in the x64 and x86 subfolders, respectively.
+ find_path(MPI_mpifptr_INCLUDE_DIR
+ NAMES "mpifptr.h"
+ HINTS "${MPI_MSMPI_INC_PATH_EXTRA}"
+ DOC "Location of the mpifptr.h extra header for Microsoft MPI")
+ if(NOT MPI_${LANG}_ADDITIONAL_INCLUDE_VARS)
+ set(MPI_${LANG}_ADDITIONAL_INCLUDE_VARS "mpifptr" CACHE STRING "MPI ${LANG} additional include directory variables, given in the form MPI_<name>_INCLUDE_DIR." FORCE)
+ endif()
+ mark_as_advanced(MPI_${LANG}_ADDITIONAL_INCLUDE_VARS MPI_mpifptr_INCLUDE_DIR)
+ else()
+ if(NOT MPI_${LANG}_LIB_NAMES)
+ set(MPI_${LANG}_LIB_NAMES "msmpi" CACHE STRING "MPI ${LANG} libraries to link against" FORCE)
+ endif()
+ endif()
+ mark_as_advanced(MPI_${LANG}_LIB_NAMES)
+ set(MPI_GUESS_FOUND TRUE)
+
+ if(_MPIEXEC_NOT_GIVEN)
+ unset(MPIEXEC_EXECUTABLE CACHE)
+ endif()
+
+ find_program(MPIEXEC_EXECUTABLE
+ NAMES mpiexec
+ HINTS $ENV{MSMPI_BIN} "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPI;InstallRoot]/Bin"
+ DOC "Executable for running MPI programs.")
+ endif()
+ endif()
+
+ # At this point there's not many MPIs that we could still consider.
+ # OpenMPI 1.6.x and below supported Windows, but these ship compiler wrappers that still work.
+ # The only other relevant MPI implementation without a wrapper is MPICH2, which had Windows support in 1.4.1p1 and older.
+ if(NOT MPI_GUESS_FOUND AND (NOT MPI_GUESS_LIBRARY_NAME OR "${MPI_GUESS_LIBRARY_NAME}" STREQUAL "MPICH2"))
+ set(MPI_MPICH_PREFIX_PATHS
+ "$ENV{ProgramW6432}/MPICH2/lib"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH\\SMPD;binary]/../lib"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH2;Path]/lib"
+ )
+
+ # All of C, C++ and Fortran will need mpi.lib, so we'll look for this first
+ find_library(MPI_mpi_LIBRARY
+ NAMES mpi
+ HINTS ${MPI_MPICH_PREFIX_PATHS})
+ mark_as_advanced(MPI_mpi_LIBRARY)
+ # If we found mpi.lib, we detect the rest of MPICH2
+ if(MPI_mpi_LIBRARY)
+ set(MPI_MPICH_LIB_NAMES "mpi")
+ # If MPI-2 C++ bindings are requested, we need to locate cxx.lib as well.
+ # Otherwise, MPICH_SKIP_MPICXX will be defined and these bindings aren't needed.
+ if("${LANG}" STREQUAL "CXX" AND NOT MPI_CXX_SKIP_MPICXX)
+ find_library(MPI_cxx_LIBRARY
+ NAMES cxx
+ HINTS ${MPI_MPICH_PREFIX_PATHS})
+ mark_as_advanced(MPI_cxx_LIBRARY)
+ list(APPEND MPI_MPICH_LIB_NAMES "cxx")
+ # For Fortran, MPICH2 provides three different libraries:
+ # fmpich2.lib which uses uppercase symbols and cdecl,
+ # fmpich2s.lib which uses uppercase symbols and stdcall (32-bit only),
+ # fmpich2g.lib which uses lowercase symbols with double underscores and cdecl.
+ # fmpich2s.lib would be useful for Compaq Visual Fortran, fmpich2g.lib has to be used with GNU g77 and is also
+ # provided in the form of an .a archive for MinGW and Cygwin. From our perspective, fmpich2.lib is the only one
+ # we need to try, and if it doesn't work with the given Fortran compiler we'd find out later on during validation
+ elseif("${LANG}" STREQUAL "Fortran")
+ find_library(MPI_fmpich2_LIBRARY
+ NAMES fmpich2
+ HINTS ${MPI_MPICH_PREFIX_PATHS})
+ find_library(MPI_fmpich2s_LIBRARY
+ NAMES fmpich2s
+ HINTS ${MPI_MPICH_PREFIX_PATHS})
+ find_library(MPI_fmpich2g_LIBRARY
+ NAMES fmpich2g
+ HINTS ${MPI_MPICH_PREFIX_PATHS})
+ mark_as_advanced(MPI_fmpich2_LIBRARY MPI_fmpich2s_LIBRARY MPI_fmpich2g_LIBRARY)
+ list(APPEND MPI_MPICH_LIB_NAMES "fmpich2")
+ endif()
+
+ if(NOT MPI_${LANG}_LIB_NAMES)
+ set(MPI_${LANG}_LIB_NAMES "${MPI_MPICH_LIB_NAMES}" CACHE STRING "MPI ${LANG} libraries to link against" FORCE)
+ endif()
+ unset(MPI_MPICH_LIB_NAMES)
+
+ if(NOT MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)
+ # For MPICH2, the include folder would be in ../include relative to the library folder.
+ get_filename_component(MPI_MPICH_ROOT_DIR "${MPI_mpi_LIBRARY}" DIRECTORY)
+ get_filename_component(MPI_MPICH_ROOT_DIR "${MPI_MPICH_ROOT_DIR}" DIRECTORY)
+ if(IS_DIRECTORY "${MPI_MPICH_ROOT_DIR}/include")
+ set(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS "${MPI_MPICH_ROOT_DIR}/include" CACHE STRING "MPI ${LANG} additional include directory variables, given in the form MPI_<name>_INCLUDE_DIR." FORCE)
+ endif()
+ unset(MPI_MPICH_ROOT_DIR)
+ endif()
+ set(MPI_GUESS_FOUND TRUE)
+
+ if(_MPIEXEC_NOT_GIVEN)
+ unset(MPIEXEC_EXECUTABLE CACHE)
+ endif()
+
+ find_program(MPIEXEC_EXECUTABLE
+ NAMES ${_MPIEXEC_NAMES}
+ HINTS "$ENV{ProgramW6432}/MPICH2/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH\\SMPD;binary]"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH2;Path]/bin"
+ DOC "Executable for running MPI programs.")
+ endif()
+ unset(MPI_MPICH_PREFIX_PATHS)
+ endif()
+ endif()
+ set(MPI_${LANG}_GUESS_FOUND "${MPI_GUESS_FOUND}" PARENT_SCOPE)
+endfunction()
+
+function(_MPI_adjust_compile_definitions LANG)
+ if("${LANG}" STREQUAL "CXX")
+ # To disable the C++ bindings, we need to pass some definitions since the mpi.h header has to deal with both C and C++
+ # bindings in MPI-2.
+ if(MPI_CXX_SKIP_MPICXX AND NOT MPI_${LANG}_COMPILE_DEFINITIONS MATCHES "SKIP_MPICXX")
+ # MPICH_SKIP_MPICXX is being used in MPICH and derivatives like MVAPICH or Intel MPI
+ # OMPI_SKIP_MPICXX is being used in Open MPI
+ # _MPICC_H is being used for IBM Platform MPI
+ list(APPEND MPI_${LANG}_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX" "OMPI_SKIP_MPICXX" "_MPICC_H")
+ set(MPI_${LANG}_COMPILE_DEFINITIONS "${MPI_${LANG}_COMPILE_DEFINITIONS}" CACHE STRING "MPI ${LANG} compilation definitions" FORCE)
+ endif()
+ endif()
+endfunction()
+
+macro(_MPI_assemble_libraries LANG)
+ set(MPI_${LANG}_LIBRARIES "")
+ # Only for libraries do we need to check whether the compiler's linking stage is separate.
+ if(NOT "${MPI_${LANG}_COMPILER}" STREQUAL "${CMAKE_${LANG}_COMPILER}" OR NOT MPI_${LANG}_WORKS_IMPLICIT)
+ foreach(mpilib IN LISTS MPI_${LANG}_LIB_NAMES)
+ list(APPEND MPI_${LANG}_LIBRARIES ${MPI_${mpilib}_LIBRARY})
+ endforeach()
+ endif()
+endmacro()
+
+macro(_MPI_assemble_include_dirs LANG)
+ set(MPI_${LANG}_INCLUDE_DIRS
+ ${MPI_${LANG}_COMPILER_INCLUDE_DIRS}
+ ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS}
+ )
+ if("${LANG}" MATCHES "(C|CXX)")
+ if(MPI_${LANG}_HEADER_DIR)
+ list(APPEND MPI_${LANG}_INCLUDE_DIRS "${MPI_${LANG}_HEADER_DIR}")
+ endif()
+ else() # Fortran
+ if(MPI_${LANG}_F77_HEADER_DIR)
+ list(APPEND MPI_${LANG}_INCLUDE_DIRS "${MPI_${LANG}_F77_HEADER_DIR}")
+ endif()
+ if(MPI_${LANG}_MODULE_DIR)
+ list(APPEND MPI_${LANG}_INCLUDE_DIRS "${MPI_${LANG}_MODULE_DIR}")
+ endif()
+ endif()
+ if(MPI_${LANG}_INCLUDE_DIRS)
+ list(REMOVE_DUPLICATES MPI_${LANG}_INCLUDE_DIRS)
+ endif()
+endmacro()
+
+macro(_MPI_split_include_dirs LANG)
+ # Backwards compatibility: Search INCLUDE_PATH if given.
+ if(MPI_${LANG}_INCLUDE_PATH)
+ list(APPEND MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS "${MPI_${LANG}_INCLUDE_PATH}")
+ endif()
+
+ # We try to find the headers/modules among those paths (and system paths)
+ # For C/C++, we just need to have a look for mpi.h.
+ if("${LANG}" MATCHES "(C|CXX)")
+ find_path(MPI_${LANG}_HEADER_DIR "mpi.h"
+ HINTS
+ ${MPI_${LANG}_COMPILER_INCLUDE_DIRS}
+ ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS}
+ )
+ mark_as_advanced(MPI_${LANG}_HEADER_DIR)
+ if(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)
+ list(REMOVE_ITEM MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS "${MPI_${LANG}_HEADER_DIR}")
+ endif()
+
+ # Fortran is more complicated here: An implementation could provide
+ # any of the Fortran 77/90/2008 APIs for MPI. For example, MSMPI
+ # only provides Fortran 77 and - if mpi.f90 is built - potentially
+ # a Fortran 90 module.
+ elseif("${LANG}" STREQUAL "Fortran")
+ find_path(MPI_${LANG}_F77_HEADER_DIR "mpif.h"
+ HINTS
+ ${MPI_${LANG}_COMPILER_INCLUDE_DIRS}
+ ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS}
+ )
+ find_path(MPI_${LANG}_MODULE_DIR
+ NAMES "mpi.mod" "mpi_f08.mod"
+ HINTS
+ ${MPI_${LANG}_COMPILER_INCLUDE_DIRS}
+ ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS}
+ )
+ if(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)
+ list(REMOVE_ITEM MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS
+ "${MPI_${LANG}_F77_HEADER_DIR}"
+ "${MPI_${LANG}_MODULE_DIR}"
+ )
+ endif()
+ mark_as_advanced(MPI_${LANG}_F77_HEADER_DIR MPI_${LANG}_MODULE_DIR)
+ endif()
+
+ # Remove duplicates and default system directories from the list.
+ if(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)
+ list(REMOVE_DUPLICATES MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS)
+ foreach(MPI_IMPLICIT_INC_DIR IN LISTS CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES)
+ list(REMOVE_ITEM MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS ${MPI_IMPLICIT_INC_DIR})
+ endforeach()
+ endif()
+
+ set(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS ${MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS} CACHE STRING "MPI ${LANG} additional include directories" FORCE)
+endmacro()
+
+macro(_MPI_create_imported_target LANG)
+ if(NOT TARGET MPI::MPI_${LANG})
+ add_library(MPI::MPI_${LANG} INTERFACE IMPORTED)
+ endif()
+
+ # When this is consumed for compiling CUDA, use '-Xcompiler' to wrap '-pthread'.
+ string(REPLACE "-pthread" "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler >-pthread"
+ _MPI_${LANG}_COMPILE_OPTIONS "${MPI_${LANG}_COMPILE_OPTIONS}")
+ set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_COMPILE_OPTIONS "${_MPI_${LANG}_COMPILE_OPTIONS}")
+ unset(_MPI_${LANG}_COMPILE_OPTIONS)
+
+ set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_COMPILE_DEFINITIONS "${MPI_${LANG}_COMPILE_DEFINITIONS}")
+
+ if(MPI_${LANG}_LINK_FLAGS)
+ set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_LINK_OPTIONS "SHELL:${MPI_${LANG}_LINK_FLAGS}")
+ endif()
+ # If the compiler links MPI implicitly, no libraries will be found as they're contained within
+ # CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES already.
+ if(MPI_${LANG}_LIBRARIES)
+ set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_LINK_LIBRARIES "${MPI_${LANG}_LIBRARIES}")
+ endif()
+ # Given the new design of FindMPI, INCLUDE_DIRS will always be located, even under implicit linking.
+ set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${MPI_${LANG}_INCLUDE_DIRS}")
+endmacro()
+
+function(_MPI_try_staged_settings LANG MPI_TEST_FILE_NAME MODE RUN_BINARY SUPPRESS_ERRORS)
+ set(WORK_DIR "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindMPI")
+ set(SRC_DIR "${CMAKE_ROOT}/Modules/FindMPI")
+ set(BIN_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindMPI/${MPI_TEST_FILE_NAME}_${LANG}.bin")
+ unset(MPI_TEST_COMPILE_DEFINITIONS)
+ if("${LANG}" STREQUAL "Fortran")
+ if("${MODE}" STREQUAL "F90_MODULE")
+ set(MPI_Fortran_INCLUDE_LINE "use mpi\n implicit none")
+ elseif("${MODE}" STREQUAL "F08_MODULE")
+ set(MPI_Fortran_INCLUDE_LINE "use mpi_f08\n implicit none")
+ else() # F77 header
+ set(MPI_Fortran_INCLUDE_LINE "implicit none\n include 'mpif.h'")
+ endif()
+ configure_file("${SRC_DIR}/${MPI_TEST_FILE_NAME}.f90.in" "${WORK_DIR}/${MPI_TEST_FILE_NAME}.f90" @ONLY)
+ set(MPI_TEST_SOURCE_FILE "${WORK_DIR}/${MPI_TEST_FILE_NAME}.f90")
+ elseif("${LANG}" STREQUAL "CXX")
+ configure_file("${SRC_DIR}/${MPI_TEST_FILE_NAME}.c" "${WORK_DIR}/${MPI_TEST_FILE_NAME}.cpp" COPYONLY)
+ set(MPI_TEST_SOURCE_FILE "${WORK_DIR}/${MPI_TEST_FILE_NAME}.cpp")
+ if("${MODE}" STREQUAL "TEST_MPICXX")
+ set(MPI_TEST_COMPILE_DEFINITIONS TEST_MPI_MPICXX)
+ endif()
+ else() # C
+ set(MPI_TEST_SOURCE_FILE "${SRC_DIR}/${MPI_TEST_FILE_NAME}.c")
+ endif()
+ if(RUN_BINARY)
+ try_run(MPI_RUN_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE} MPI_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}
+ "${CMAKE_BINARY_DIR}" SOURCES "${MPI_TEST_SOURCE_FILE}"
+ COMPILE_DEFINITIONS ${MPI_TEST_COMPILE_DEFINITIONS}
+ LINK_LIBRARIES MPI::MPI_${LANG}
+ RUN_OUTPUT_VARIABLE MPI_RUN_OUTPUT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}
+ COMPILE_OUTPUT_VARIABLE _MPI_TRY_${MPI_TEST_FILE_NAME}_${MODE}_OUTPUT)
+ set(MPI_RUN_OUTPUT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE} "${MPI_RUN_OUTPUT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}}" PARENT_SCOPE)
+ else()
+ try_compile(MPI_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}
+ "${CMAKE_BINARY_DIR}" SOURCES "${MPI_TEST_SOURCE_FILE}"
+ COMPILE_DEFINITIONS ${MPI_TEST_COMPILE_DEFINITIONS}
+ LINK_LIBRARIES MPI::MPI_${LANG}
+ COPY_FILE "${BIN_FILE}"
+ OUTPUT_VARIABLE _MPI_TRY_${MPI_TEST_FILE_NAME}_${MODE}_OUTPUT)
+ endif()
+ if(NOT SUPPRESS_ERRORS)
+ if(NOT MPI_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE})
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "The MPI test ${MPI_TEST_FILE_NAME} for ${LANG} in mode ${MODE} failed to compile with the following output:\n${_MPI_TRY_${MPI_TEST_FILE_NAME}_${MODE}_OUTPUT}\n\n")
+ elseif(DEFINED MPI_RUN_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE} AND MPI_RUN_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE})
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "The MPI test ${MPI_TEST_FILE_NAME} for ${LANG} in mode ${MODE} failed to run with the following output:\n${MPI_RUN_OUTPUT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}}\n\n")
+ endif()
+ endif()
+endfunction()
+
+macro(_MPI_check_lang_works LANG SUPPRESS_ERRORS)
+ # For Fortran we may have by the MPI-3 standard an implementation that provides:
+ # - the mpi_f08 module
+ # - *both*, the mpi module and 'mpif.h'
+ # Since older MPI standards (MPI-1) did not define anything but 'mpif.h', we need to check all three individually.
+ if( NOT MPI_${LANG}_WORKS )
+ if("${LANG}" STREQUAL "Fortran")
+ set(MPI_Fortran_INTEGER_LINE "(kind=MPI_INTEGER_KIND)")
+ _MPI_try_staged_settings(${LANG} test_mpi F77_HEADER FALSE ${SUPPRESS_ERRORS})
+ _MPI_try_staged_settings(${LANG} test_mpi F90_MODULE FALSE ${SUPPRESS_ERRORS})
+ _MPI_try_staged_settings(${LANG} test_mpi F08_MODULE FALSE ${SUPPRESS_ERRORS})
+
+ set(MPI_${LANG}_WORKS FALSE)
+
+ foreach(mpimethod IN ITEMS F77_HEADER F08_MODULE F90_MODULE)
+ if(MPI_RESULT_${LANG}_test_mpi_${mpimethod})
+ set(MPI_${LANG}_WORKS TRUE)
+ set(MPI_${LANG}_HAVE_${mpimethod} TRUE)
+ else()
+ set(MPI_${LANG}_HAVE_${mpimethod} FALSE)
+ endif()
+ endforeach()
+ # MPI-1 versions had no MPI_INTGER_KIND defined, so we need to try without it.
+ # However, MPI-1 also did not define the Fortran 90 and 08 modules, so we only try the F77 header.
+ unset(MPI_Fortran_INTEGER_LINE)
+ if(NOT MPI_${LANG}_WORKS)
+ _MPI_try_staged_settings(${LANG} test_mpi F77_HEADER_NOKIND FALSE ${SUPPRESS_ERRORS})
+ if(MPI_RESULT_${LANG}_test_mpi_F77_HEADER_NOKIND)
+ set(MPI_${LANG}_WORKS TRUE)
+ set(MPI_${LANG}_HAVE_F77_HEADER TRUE)
+ endif()
+ endif()
+ else()
+ _MPI_try_staged_settings(${LANG} test_mpi normal FALSE ${SUPPRESS_ERRORS})
+ # If 'test_mpi' built correctly, we've found valid MPI settings. There might not be MPI-2 C++ support, but there can't
+ # be MPI-2 C++ support without the C bindings being present, so checking for them is sufficient.
+ set(MPI_${LANG}_WORKS "${MPI_RESULT_${LANG}_test_mpi_normal}")
+ endif()
+ endif()
+endmacro()
+
+# Some systems install various MPI implementations in separate folders in some MPI prefix
+# This macro enumerates all such subfolders and adds them to the list of hints that will be searched.
+macro(MPI_search_mpi_prefix_folder PREFIX_FOLDER)
+ if(EXISTS "${PREFIX_FOLDER}")
+ file(GLOB _MPI_folder_children RELATIVE "${PREFIX_FOLDER}" "${PREFIX_FOLDER}/*")
+ foreach(_MPI_folder_child IN LISTS _MPI_folder_children)
+ if(IS_DIRECTORY "${PREFIX_FOLDER}/${_MPI_folder_child}")
+ list(APPEND MPI_HINT_DIRS "${PREFIX_FOLDER}/${_MPI_folder_child}")
+ endif()
+ endforeach()
+ endif()
+endmacro()
+
+set(MPI_HINT_DIRS ${MPI_HOME} $ENV{MPI_HOME} $ENV{I_MPI_ROOT})
+if("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Linux")
+ # SUSE Linux Enterprise Server stores its MPI implementations under /usr/lib64/mpi/gcc/<name>
+ # We enumerate the subfolders and append each as a prefix
+ MPI_search_mpi_prefix_folder("/usr/lib64/mpi/gcc")
+elseif("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "FreeBSD")
+ # FreeBSD ships mpich under the normal system paths - but available openmpi implementations
+ # will be found in /usr/local/mpi/<name>
+ MPI_search_mpi_prefix_folder("/usr/local/mpi")
+endif()
+
+# Most MPI distributions have some form of mpiexec or mpirun which gives us something we can look for.
+# The MPI standard does not mandate the existence of either, but instead only makes requirements if a distribution
+# ships an mpiexec program (mpirun executables are not regulated by the standard).
+
+# We defer searching for mpiexec binaries belonging to guesses until later. By doing so, mismatches between mpiexec
+# and the MPI we found should be reduced.
+if(NOT MPIEXEC_EXECUTABLE)
+ set(_MPIEXEC_NOT_GIVEN TRUE)
+else()
+ set(_MPIEXEC_NOT_GIVEN FALSE)
+endif()
+
+find_program(MPIEXEC_EXECUTABLE
+ NAMES ${_MPIEXEC_NAMES}
+ PATH_SUFFIXES bin sbin
+ HINTS ${MPI_HINT_DIRS}
+ DOC "Executable for running MPI programs.")
+
+# call get_filename_component twice to remove mpiexec and the directory it exists in (typically bin).
+# This gives us a fairly reliable base directory to search for /bin /lib and /include from.
+get_filename_component(_MPI_BASE_DIR "${MPIEXEC_EXECUTABLE}" PATH)
+get_filename_component(_MPI_BASE_DIR "${_MPI_BASE_DIR}" PATH)
+
+# According to the MPI standard, section 8.8 -n is a guaranteed, and the only guaranteed way to
+# launch an MPI process using mpiexec if such a program exists.
+set(MPIEXEC_NUMPROC_FLAG "-n" CACHE STRING "Flag used by MPI to specify the number of processes for mpiexec; the next option will be the number of processes.")
+set(MPIEXEC_PREFLAGS "" CACHE STRING "These flags will be directly before the executable that is being run by mpiexec.")
+set(MPIEXEC_POSTFLAGS "" CACHE STRING "These flags will be placed after all flags passed to mpiexec.")
+
+# Set the number of processes to the physical processor count
+cmake_host_system_information(RESULT _MPIEXEC_NUMPROCS QUERY NUMBER_OF_PHYSICAL_CORES)
+set(MPIEXEC_MAX_NUMPROCS "${_MPIEXEC_NUMPROCS}" CACHE STRING "Maximum number of processors available to run MPI applications.")
+unset(_MPIEXEC_NUMPROCS)
+mark_as_advanced(MPIEXEC_EXECUTABLE MPIEXEC_NUMPROC_FLAG MPIEXEC_PREFLAGS MPIEXEC_POSTFLAGS MPIEXEC_MAX_NUMPROCS)
+
+#=============================================================================
+# Backward compatibility input hacks. Propagate the FindMPI hints to C and
+# CXX if the respective new versions are not defined. Translate the old
+# MPI_LIBRARY and MPI_EXTRA_LIBRARY to respective MPI_${LANG}_LIBRARIES.
+#
+# Once we find the new variables, we translate them back into their old
+# equivalents below.
+if(NOT MPI_IGNORE_LEGACY_VARIABLES)
+ foreach (LANG IN ITEMS C CXX)
+ # Old input variables.
+ set(_MPI_OLD_INPUT_VARS COMPILER COMPILE_FLAGS INCLUDE_PATH LINK_FLAGS)
+
+ # Set new vars based on their old equivalents, if the new versions are not already set.
+ foreach (var ${_MPI_OLD_INPUT_VARS})
+ if (NOT MPI_${LANG}_${var} AND MPI_${var})
+ set(MPI_${LANG}_${var} "${MPI_${var}}")
+ endif()
+ endforeach()
+
+ # Chop the old compile flags into options and definitions
+
+ unset(MPI_${LANG}_EXTRA_COMPILE_DEFINITIONS)
+ unset(MPI_${LANG}_EXTRA_COMPILE_OPTIONS)
+ if(MPI_${LANG}_COMPILE_FLAGS)
+ separate_arguments(MPI_SEPARATE_FLAGS NATIVE_COMMAND "${MPI_${LANG}_COMPILE_FLAGS}")
+ foreach(_MPI_FLAG IN LISTS MPI_SEPARATE_FLAGS)
+ if("${_MPI_FLAG}" MATCHES "^ *-D([^ ]+)")
+ list(APPEND MPI_${LANG}_EXTRA_COMPILE_DEFINITIONS "${CMAKE_MATCH_1}")
+ else()
+ list(APPEND MPI_${LANG}_EXTRA_COMPILE_OPTIONS "${_MPI_FLAG}")
+ endif()
+ endforeach()
+ unset(MPI_SEPARATE_FLAGS)
+ endif()
+
+ # If a list of libraries was given, we'll split it into new-style cache variables
+ unset(MPI_${LANG}_EXTRA_LIB_NAMES)
+ if(NOT MPI_${LANG}_LIB_NAMES)
+ foreach(_MPI_LIB IN LISTS MPI_${LANG}_LIBRARIES MPI_LIBRARY MPI_EXTRA_LIBRARY)
+ if(_MPI_LIB)
+ get_filename_component(_MPI_PLAIN_LIB_NAME "${_MPI_LIB}" NAME_WE)
+ get_filename_component(_MPI_LIB_NAME "${_MPI_LIB}" NAME)
+ get_filename_component(_MPI_LIB_DIR "${_MPI_LIB}" DIRECTORY)
+ list(APPEND MPI_${LANG}_EXTRA_LIB_NAMES "${_MPI_PLAIN_LIB_NAME}")
+ find_library(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY
+ NAMES "${_MPI_LIB_NAME}" "lib${_MPI_LIB_NAME}"
+ HINTS ${_MPI_LIB_DIR} $ENV{MPI_LIB}
+ DOC "Location of the ${_MPI_PLAIN_LIB_NAME} library for MPI"
+ )
+ mark_as_advanced(MPI_${_MPI_PLAIN_LIB_NAME}_LIBRARY)
+ endif()
+ endforeach()
+ endif()
+ endforeach()
+endif()
+#=============================================================================
+
+unset(MPI_VERSION)
+unset(MPI_VERSION_MAJOR)
+unset(MPI_VERSION_MINOR)
+
+unset(_MPI_MIN_VERSION)
+
+# If the user specified a library name we assume they prefer that library over a wrapper. If not, they can disable skipping manually.
+if(NOT DEFINED MPI_SKIP_COMPILER_WRAPPER AND MPI_GUESS_LIBRARY_NAME)
+ set(MPI_SKIP_COMPILER_WRAPPER TRUE)
+endif()
+
+# This loop finds the compilers and sends them off for interrogation.
+foreach(LANG IN ITEMS C CXX Fortran)
+ if(CMAKE_${LANG}_COMPILER_LOADED)
+ if(NOT MPI_FIND_COMPONENTS)
+ set(_MPI_FIND_${LANG} TRUE)
+ elseif( ${LANG} IN_LIST MPI_FIND_COMPONENTS)
+ set(_MPI_FIND_${LANG} TRUE)
+ elseif( ${LANG} STREQUAL CXX AND NOT MPI_CXX_SKIP_MPICXX AND MPICXX IN_LIST MPI_FIND_COMPONENTS )
+ set(_MPI_FIND_${LANG} TRUE)
+ else()
+ set(_MPI_FIND_${LANG} FALSE)
+ endif()
+ else()
+ set(_MPI_FIND_${LANG} FALSE)
+ string(APPEND _MPI_FAIL_REASON "MPI component '${LANG}' was requested, but language ${LANG} is not enabled. ")
+ endif()
+ if(_MPI_FIND_${LANG})
+ if( ${LANG} STREQUAL CXX AND NOT MPICXX IN_LIST MPI_FIND_COMPONENTS )
+ set(MPI_CXX_SKIP_MPICXX FALSE CACHE BOOL "If true, the MPI-2 C++ bindings are disabled using definitions.")
+ mark_as_advanced(MPI_CXX_SKIP_MPICXX)
+ endif()
+ if(NOT (MPI_${LANG}_LIB_NAMES AND (MPI_${LANG}_INCLUDE_PATH OR MPI_${LANG}_INCLUDE_DIRS OR MPI_${LANG}_COMPILER_INCLUDE_DIRS)))
+ set(MPI_${LANG}_TRIED_IMPLICIT FALSE)
+ set(MPI_${LANG}_WORKS_IMPLICIT FALSE)
+ if(NOT MPI_${LANG}_COMPILER AND NOT MPI_ASSUME_NO_BUILTIN_MPI)
+ # Should the imported targets be empty, we effectively try whether the compiler supports MPI on its own, which is the case on e.g.
+ # Cray PrgEnv.
+ _MPI_create_imported_target(${LANG})
+ _MPI_check_lang_works(${LANG} TRUE)
+
+ # If the compiler can build MPI code on its own, it functions as an MPI compiler and we'll set the variable to point to it.
+ if(MPI_${LANG}_WORKS)
+ set(MPI_${LANG}_COMPILER "${CMAKE_${LANG}_COMPILER}" CACHE FILEPATH "MPI compiler for ${LANG}" FORCE)
+ set(MPI_${LANG}_WORKS_IMPLICIT TRUE)
+ endif()
+ set(MPI_${LANG}_TRIED_IMPLICIT TRUE)
+ endif()
+
+ if(NOT "${MPI_${LANG}_COMPILER}" STREQUAL "${CMAKE_${LANG}_COMPILER}" OR NOT MPI_${LANG}_WORKS)
+ set(MPI_${LANG}_WRAPPER_FOUND FALSE)
+ set(MPI_PINNED_COMPILER FALSE)
+
+ if(NOT MPI_SKIP_COMPILER_WRAPPER)
+ if(MPI_${LANG}_COMPILER)
+ # If the user supplies a compiler *name* instead of an absolute path, assume that we need to find THAT compiler.
+ if (NOT IS_ABSOLUTE "${MPI_${LANG}_COMPILER}")
+ # Get rid of our default list of names and just search for the name the user wants.
+ set(_MPI_${LANG}_COMPILER_NAMES "${MPI_${LANG}_COMPILER}")
+ unset(MPI_${LANG}_COMPILER CACHE)
+ endif()
+ # If the user specifies a compiler, we don't want to try to search libraries either.
+ set(MPI_PINNED_COMPILER TRUE)
+ endif()
+
+ # If we have an MPI base directory, we'll try all compiler names in that one first.
+ # This should prevent mixing different MPI environments
+ if(_MPI_BASE_DIR)
+ find_program(MPI_${LANG}_COMPILER
+ NAMES ${_MPI_${LANG}_COMPILER_NAMES}
+ PATH_SUFFIXES bin sbin
+ HINTS ${_MPI_BASE_DIR}
+ NO_DEFAULT_PATH
+ DOC "MPI compiler for ${LANG}"
+ )
+ endif()
+
+ # If the base directory did not help (for example because the mpiexec isn't in the same directory as the compilers),
+ # we shall try searching in the default paths.
+ find_program(MPI_${LANG}_COMPILER
+ NAMES ${_MPI_${LANG}_COMPILER_NAMES}
+ PATH_SUFFIXES bin sbin
+ DOC "MPI compiler for ${LANG}"
+ )
+
+ if("${MPI_${LANG}_COMPILER}" STREQUAL "${CMAKE_${LANG}_COMPILER}")
+ set(MPI_PINNED_COMPILER TRUE)
+
+ # If we haven't made the implicit compiler test yet, perform it now.
+ if(NOT MPI_${LANG}_TRIED_IMPLICIT)
+ _MPI_create_imported_target(${LANG})
+ _MPI_check_lang_works(${LANG} TRUE)
+ endif()
+
+ # Should the MPI compiler not work implicitly for MPI, still interrogate it.
+ # Otherwise, MPI compilers for which CMake has separate linking stages, e.g. Intel MPI on Windows where link.exe is being used
+ # directly during linkage instead of CMAKE_<LANG>_COMPILER will not work.
+ if(NOT MPI_${LANG}_WORKS)
+ set(MPI_${LANG}_WORKS_IMPLICIT FALSE)
+ _MPI_interrogate_compiler(${LANG})
+ else()
+ set(MPI_${LANG}_WORKS_IMPLICIT TRUE)
+ endif()
+ elseif(MPI_${LANG}_COMPILER)
+ _MPI_interrogate_compiler(${LANG})
+ endif()
+ endif()
+
+ if(NOT MPI_PINNED_COMPILER AND NOT MPI_${LANG}_WRAPPER_FOUND)
+ # If MPI_PINNED_COMPILER wasn't given, and the MPI compiler we potentially found didn't work, we withdraw it.
+ set(MPI_${LANG}_COMPILER "MPI_${LANG}_COMPILER-NOTFOUND" CACHE FILEPATH "MPI compiler for ${LANG}" FORCE)
+ if(NOT MPI_SKIP_GUESSING)
+ # For C++, we may use the settings for C. Should a given compiler wrapper for C++ not exist, but one for C does, we copy over the
+ # settings for C. An MPI distribution that is in this situation would be IBM Platform MPI.
+ if("${LANG}" STREQUAL "CXX" AND MPI_C_WRAPPER_FOUND)
+ set(MPI_${LANG}_COMPILE_OPTIONS ${MPI_C_COMPILE_OPTIONS} CACHE STRING "MPI ${LANG} compilation options" )
+ set(MPI_${LANG}_COMPILE_DEFINITIONS ${MPI_C_COMPILE_DEFINITIONS} CACHE STRING "MPI ${LANG} compilation definitions" )
+ set(MPI_${LANG}_COMPILER_INCLUDE_DIRS ${MPI_C_INCLUDE_DIRS} CACHE STRING "MPI ${LANG} compiler wrapper include directories")
+ set(MPI_${LANG}_LINK_FLAGS ${MPI_C_LINK_FLAGS} CACHE STRING "MPI ${LANG} linker flags" )
+ set(MPI_${LANG}_LIB_NAMES ${MPI_C_LIB_NAMES} CACHE STRING "MPI ${LANG} libraries to link against" )
+ else()
+ _MPI_guess_settings(${LANG})
+ endif()
+ endif()
+ endif()
+ endif()
+ endif()
+
+ if(NOT "${MPI_${LANG}_COMPILER}" STREQUAL "${CMAKE_${LANG}_COMPILER}")
+ _MPI_split_include_dirs(${LANG})
+ _MPI_assemble_include_dirs(${LANG})
+ else()
+ set(MPI_${LANG}_INCLUDE_DIRS "")
+ endif()
+ _MPI_assemble_libraries(${LANG})
+
+ _MPI_adjust_compile_definitions(${LANG})
+ # We always create imported targets even if they're empty
+ _MPI_create_imported_target(${LANG})
+
+ if(NOT MPI_${LANG}_WORKS)
+ _MPI_check_lang_works(${LANG} FALSE)
+ endif()
+
+ # Next, we'll initialize the MPI variables that have not been previously set.
+ set(MPI_${LANG}_COMPILE_OPTIONS "" CACHE STRING "MPI ${LANG} compilation flags" )
+ set(MPI_${LANG}_COMPILE_DEFINITIONS "" CACHE STRING "MPI ${LANG} compilation definitions" )
+ set(MPI_${LANG}_COMPILER_INCLUDE_DIRS "" CACHE STRING "MPI ${LANG} compiler wrapper include directories")
+ set(MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS "" CACHE STRING "MPI ${LANG} additional include directories")
+ set(MPI_${LANG}_LINK_FLAGS "" CACHE STRING "MPI ${LANG} linker flags" )
+ if(NOT MPI_${LANG}_COMPILER STREQUAL CMAKE_${LANG}_COMPILER)
+ set(MPI_${LANG}_LIB_NAMES "" CACHE STRING "MPI ${LANG} libraries to link against" )
+ endif()
+ mark_as_advanced(
+ MPI_${LANG}_COMPILE_OPTIONS
+ MPI_${LANG}_COMPILE_DEFINITIONS
+ MPI_${LANG}_LINK_FLAGS
+ MPI_${LANG}_LIB_NAMES
+ MPI_${LANG}_COMPILER_INCLUDE_DIRS
+ MPI_${LANG}_ADDITIONAL_INCLUDE_DIRS
+ MPI_${LANG}_COMPILER
+ )
+
+ # If we've found MPI, then we'll perform additional analysis: Determine the MPI version, MPI library version, supported
+ # MPI APIs (i.e. MPI-2 C++ bindings). For Fortran we also need to find specific parameters if we're under MPI-3.
+ if(MPI_${LANG}_WORKS)
+ if("${LANG}" STREQUAL "CXX" AND NOT DEFINED MPI_MPICXX_FOUND)
+ if(NOT MPI_CXX_SKIP_MPICXX AND NOT MPI_CXX_VALIDATE_SKIP_MPICXX)
+ _MPI_try_staged_settings(${LANG} test_mpi MPICXX FALSE FALSE)
+ if(MPI_RESULT_${LANG}_test_mpi_MPICXX)
+ set(MPI_MPICXX_FOUND TRUE)
+ else()
+ set(MPI_MPICXX_FOUND FALSE)
+ endif()
+ else()
+ set(MPI_MPICXX_FOUND FALSE)
+ endif()
+ endif()
+
+ # At this point, we know the bindings present but not the MPI version or anything else.
+ if(NOT DEFINED MPI_${LANG}_VERSION)
+ unset(MPI_${LANG}_VERSION_MAJOR)
+ unset(MPI_${LANG}_VERSION_MINOR)
+ endif()
+ set(MPI_BIN_FOLDER ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindMPI)
+
+ # For Fortran, we'll want to use the most modern MPI binding to test capabilities other than the
+ # Fortran parameters, since those depend on the method of consumption.
+ # For C++, we can always use the C bindings, and should do so, since the C++ bindings do not exist in MPI-3
+ # whereas the C bindings do, and the C++ bindings never offered any feature advantage over their C counterparts.
+ if("${LANG}" STREQUAL "Fortran")
+ if(MPI_${LANG}_HAVE_F08_MODULE)
+ set(MPI_${LANG}_HIGHEST_METHOD F08_MODULE)
+ elseif(MPI_${LANG}_HAVE_F90_MODULE)
+ set(MPI_${LANG}_HIGHEST_METHOD F90_MODULE)
+ else()
+ set(MPI_${LANG}_HIGHEST_METHOD F77_HEADER)
+ endif()
+
+ # Another difference between C and Fortran is that we can't use the preprocessor to determine whether MPI_VERSION
+ # and MPI_SUBVERSION are provided. These defines did not exist in MPI 1.0 and 1.1 and therefore might not
+ # exist. For C/C++, test_mpi.c will handle the MPI_VERSION extraction, but for Fortran, we need mpiver.f90.
+ if(NOT DEFINED MPI_${LANG}_VERSION)
+ _MPI_try_staged_settings(${LANG} mpiver ${MPI_${LANG}_HIGHEST_METHOD} FALSE FALSE)
+ if(MPI_RESULT_${LANG}_mpiver_${MPI_${LANG}_HIGHEST_METHOD})
+ file(STRINGS ${MPI_BIN_FOLDER}/mpiver_${LANG}.bin _MPI_VERSION_STRING LIMIT_COUNT 1 REGEX "INFO:MPI-VER")
+ if("${_MPI_VERSION_STRING}" MATCHES ".*INFO:MPI-VER\\[([0-9]+)\\.([0-9]+)\\].*")
+ set(MPI_${LANG}_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ set(MPI_${LANG}_VERSION_MINOR "${CMAKE_MATCH_2}")
+ set(MPI_${LANG}_VERSION "${MPI_${LANG}_VERSION_MAJOR}.${MPI_${LANG}_VERSION_MINOR}")
+ endif()
+ endif()
+ endif()
+
+ # Finally, we want to find out which capabilities a given interface supports, compare the MPI-3 standard.
+ # This is determined by interface specific parameters MPI_SUBARRAYS_SUPPORTED and MPI_ASYNC_PROTECTS_NONBLOCKING
+ # and might vary between the different methods of consumption.
+ if(MPI_DETERMINE_Fortran_CAPABILITIES AND NOT MPI_Fortran_CAPABILITIES_DETERMINED)
+ foreach(mpimethod IN ITEMS F08_MODULE F90_MODULE F77_HEADER)
+ if(MPI_${LANG}_HAVE_${mpimethod})
+ set(MPI_${LANG}_${mpimethod}_SUBARRAYS FALSE)
+ set(MPI_${LANG}_${mpimethod}_ASYNCPROT FALSE)
+ _MPI_try_staged_settings(${LANG} fortranparam_mpi ${mpimethod} TRUE FALSE)
+ if(MPI_RESULT_${LANG}_fortranparam_mpi_${mpimethod} AND
+ NOT "${MPI_RUN_RESULT_${LANG}_fortranparam_mpi_${mpimethod}}" STREQUAL "FAILED_TO_RUN")
+ if("${MPI_RUN_OUTPUT_${LANG}_fortranparam_mpi_${mpimethod}}" MATCHES
+ ".*INFO:SUBARRAYS\\[ *([TF]) *\\]-ASYNCPROT\\[ *([TF]) *\\].*")
+ if("${CMAKE_MATCH_1}" STREQUAL "T")
+ set(MPI_${LANG}_${mpimethod}_SUBARRAYS TRUE)
+ endif()
+ if("${CMAKE_MATCH_2}" STREQUAL "T")
+ set(MPI_${LANG}_${mpimethod}_ASYNCPROT TRUE)
+ endif()
+ endif()
+ endif()
+ endif()
+ endforeach()
+ set(MPI_Fortran_CAPABILITIES_DETERMINED TRUE)
+ endif()
+ else()
+ set(MPI_${LANG}_HIGHEST_METHOD normal)
+
+ # By the MPI-2 standard, MPI_VERSION and MPI_SUBVERSION are valid for both C and C++ bindings.
+ if(NOT DEFINED MPI_${LANG}_VERSION)
+ file(STRINGS ${MPI_BIN_FOLDER}/test_mpi_${LANG}.bin _MPI_VERSION_STRING LIMIT_COUNT 1 REGEX "INFO:MPI-VER")
+ if("${_MPI_VERSION_STRING}" MATCHES ".*INFO:MPI-VER\\[([0-9]+)\\.([0-9]+)\\].*")
+ set(MPI_${LANG}_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ set(MPI_${LANG}_VERSION_MINOR "${CMAKE_MATCH_2}")
+ set(MPI_${LANG}_VERSION "${MPI_${LANG}_VERSION_MAJOR}.${MPI_${LANG}_VERSION_MINOR}")
+ endif()
+ endif()
+ endif()
+
+ unset(MPI_BIN_FOLDER)
+
+ # At this point, we have dealt with determining the MPI version and parameters for each Fortran method available.
+ # The one remaining issue is to determine which MPI library is installed.
+ # Determining the version and vendor of the MPI library is only possible via MPI_Get_library_version() at runtime,
+ # and therefore we cannot do this while cross-compiling (a user may still define MPI_<lang>_LIBRARY_VERSION_STRING
+ # themselves and we'll attempt splitting it, which is equivalent to provide the try_run output).
+ # It's also worth noting that the installed version string can depend on the language, or on the system the binary
+ # runs on if MPI is not statically linked.
+ if(MPI_DETERMINE_LIBRARY_VERSION AND NOT MPI_${LANG}_LIBRARY_VERSION_STRING)
+ _MPI_try_staged_settings(${LANG} libver_mpi ${MPI_${LANG}_HIGHEST_METHOD} TRUE FALSE)
+ if(MPI_RESULT_${LANG}_libver_mpi_${MPI_${LANG}_HIGHEST_METHOD} AND
+ "${MPI_RUN_RESULT_${LANG}_libver_mpi_${MPI_${LANG}_HIGHEST_METHOD}}" EQUAL "0")
+ string(STRIP "${MPI_RUN_OUTPUT_${LANG}_libver_mpi_${MPI_${LANG}_HIGHEST_METHOD}}"
+ MPI_${LANG}_LIBRARY_VERSION_STRING)
+ else()
+ set(MPI_${LANG}_LIBRARY_VERSION_STRING "NOTFOUND")
+ endif()
+ endif()
+ endif()
+
+ set(MPI_${LANG}_FIND_QUIETLY ${MPI_FIND_QUIETLY})
+ set(MPI_${LANG}_FIND_VERSION ${MPI_FIND_VERSION})
+ set(MPI_${LANG}_FIND_VERSION_EXACT ${MPI_FIND_VERSION_EXACT})
+
+ unset(MPI_${LANG}_REQUIRED_VARS)
+ if (NOT "${MPI_${LANG}_COMPILER}" STREQUAL "${CMAKE_${LANG}_COMPILER}")
+ foreach(mpilibname IN LISTS MPI_${LANG}_LIB_NAMES)
+ list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${mpilibname}_LIBRARY")
+ endforeach()
+ list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_LIB_NAMES")
+ if("${LANG}" STREQUAL "Fortran")
+ # For Fortran we only need one of the module or header directories to have *some* support for MPI.
+ if(NOT MPI_${LANG}_MODULE_DIR)
+ list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_F77_HEADER_DIR")
+ endif()
+ if(NOT MPI_${LANG}_F77_HEADER_DIR)
+ list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_MODULE_DIR")
+ endif()
+ else()
+ list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_HEADER_DIR")
+ endif()
+ if(MPI_${LANG}_ADDITIONAL_INCLUDE_VARS)
+ foreach(mpiincvar IN LISTS MPI_${LANG}_ADDITIONAL_INCLUDE_VARS)
+ list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${mpiincvar}_INCLUDE_DIR")
+ endforeach()
+ endif()
+ # Append the works variable now. If the settings did not work, this will show up properly.
+ list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_WORKS")
+ else()
+ # If the compiler worked implicitly, use its path as output.
+ # Should the compiler variable be set, we also require it to work.
+ list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_COMPILER")
+ if(MPI_${LANG}_COMPILER)
+ list(APPEND MPI_${LANG}_REQUIRED_VARS "MPI_${LANG}_WORKS")
+ endif()
+ endif()
+ find_package_handle_standard_args(MPI_${LANG} NAME_MISMATCHED
+ REQUIRED_VARS ${MPI_${LANG}_REQUIRED_VARS}
+ VERSION_VAR MPI_${LANG}_VERSION)
+
+ if(DEFINED MPI_${LANG}_VERSION)
+ if(NOT _MPI_MIN_VERSION OR _MPI_MIN_VERSION VERSION_GREATER MPI_${LANG}_VERSION)
+ set(_MPI_MIN_VERSION MPI_${LANG}_VERSION)
+ endif()
+ endif()
+ endif()
+endforeach()
+
+unset(_MPI_REQ_VARS)
+foreach(LANG IN ITEMS C CXX Fortran)
+ if((NOT MPI_FIND_COMPONENTS AND CMAKE_${LANG}_COMPILER_LOADED) OR LANG IN_LIST MPI_FIND_COMPONENTS)
+ list(APPEND _MPI_REQ_VARS "MPI_${LANG}_FOUND")
+ endif()
+endforeach()
+
+if(MPICXX IN_LIST MPI_FIND_COMPONENTS)
+ list(APPEND _MPI_REQ_VARS "MPI_MPICXX_FOUND")
+endif()
+
+find_package_handle_standard_args(MPI
+ REQUIRED_VARS ${_MPI_REQ_VARS}
+ VERSION_VAR ${_MPI_MIN_VERSION}
+ REASON_FAILURE_MESSAGE "${_MPI_FAIL_REASON}"
+ HANDLE_COMPONENTS)
+
+#=============================================================================
+# More backward compatibility stuff
+
+# For compatibility reasons, we also define MPIEXEC
+set(MPIEXEC "${MPIEXEC_EXECUTABLE}")
+
+# Copy over MPI_<LANG>_INCLUDE_PATH from the assembled INCLUDE_DIRS.
+foreach(LANG IN ITEMS C CXX Fortran)
+ if(MPI_${LANG}_FOUND)
+ set(MPI_${LANG}_INCLUDE_PATH "${MPI_${LANG}_INCLUDE_DIRS}")
+ unset(MPI_${LANG}_COMPILE_FLAGS)
+ if(MPI_${LANG}_COMPILE_OPTIONS)
+ list(JOIN MPI_${LANG}_COMPILE_OPTIONS " " MPI_${LANG}_COMPILE_FLAGS)
+ endif()
+ if(MPI_${LANG}_COMPILE_DEFINITIONS)
+ foreach(_MPI_DEF IN LISTS MPI_${LANG}_COMPILE_DEFINITIONS)
+ string(APPEND MPI_${LANG}_COMPILE_FLAGS " -D${_MPI_DEF}")
+ endforeach()
+ endif()
+ endif()
+endforeach()
+
+# Bare MPI sans ${LANG} vars are set to CXX then C, depending on what was found.
+# This mimics the behavior of the old language-oblivious FindMPI.
+set(_MPI_OLD_VARS COMPILER INCLUDE_PATH COMPILE_FLAGS LINK_FLAGS LIBRARIES)
+if (MPI_CXX_FOUND)
+ foreach (var ${_MPI_OLD_VARS})
+ set(MPI_${var} ${MPI_CXX_${var}})
+ endforeach()
+elseif (MPI_C_FOUND)
+ foreach (var ${_MPI_OLD_VARS})
+ set(MPI_${var} ${MPI_C_${var}})
+ endforeach()
+endif()
+
+# Chop MPI_LIBRARIES into the old-style MPI_LIBRARY and MPI_EXTRA_LIBRARY, and set them in cache.
+if (MPI_LIBRARIES)
+ list(GET MPI_LIBRARIES 0 MPI_LIBRARY_WORK)
+ set(MPI_LIBRARY "${MPI_LIBRARY_WORK}")
+ unset(MPI_LIBRARY_WORK)
+else()
+ set(MPI_LIBRARY "MPI_LIBRARY-NOTFOUND")
+endif()
+
+list(LENGTH MPI_LIBRARIES MPI_NUMLIBS)
+if (MPI_NUMLIBS GREATER 1)
+ set(MPI_EXTRA_LIBRARY_WORK "${MPI_LIBRARIES}")
+ list(REMOVE_AT MPI_EXTRA_LIBRARY_WORK 0)
+ set(MPI_EXTRA_LIBRARY "${MPI_EXTRA_LIBRARY_WORK}")
+ unset(MPI_EXTRA_LIBRARY_WORK)
+else()
+ set(MPI_EXTRA_LIBRARY "MPI_EXTRA_LIBRARY-NOTFOUND")
+endif()
+set(MPI_IGNORE_LEGACY_VARIABLES TRUE)
+#=============================================================================
+
+# unset these vars to cleanup namespace
+unset(_MPI_OLD_VARS)
+unset(_MPI_PREFIX_PATH)
+unset(_MPI_BASE_DIR)
+foreach (lang C CXX Fortran)
+ unset(_MPI_${LANG}_COMPILER_NAMES)
+endforeach()
+
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FindMPI/fortranparam_mpi.f90.in b/share/cmake-3.17/Modules/FindMPI/fortranparam_mpi.f90.in
index 30f912c..30f912c 100644
--- a/share/cmake-3.16/Modules/FindMPI/fortranparam_mpi.f90.in
+++ b/share/cmake-3.17/Modules/FindMPI/fortranparam_mpi.f90.in
diff --git a/share/cmake-3.16/Modules/FindMPI/libver_mpi.c b/share/cmake-3.17/Modules/FindMPI/libver_mpi.c
index d89328a..d89328a 100644
--- a/share/cmake-3.16/Modules/FindMPI/libver_mpi.c
+++ b/share/cmake-3.17/Modules/FindMPI/libver_mpi.c
diff --git a/share/cmake-3.16/Modules/FindMPI/libver_mpi.f90.in b/share/cmake-3.17/Modules/FindMPI/libver_mpi.f90.in
index 7938587..7938587 100644
--- a/share/cmake-3.16/Modules/FindMPI/libver_mpi.f90.in
+++ b/share/cmake-3.17/Modules/FindMPI/libver_mpi.f90.in
diff --git a/share/cmake-3.16/Modules/FindMPI/mpiver.f90.in b/share/cmake-3.17/Modules/FindMPI/mpiver.f90.in
index a254523..a254523 100644
--- a/share/cmake-3.16/Modules/FindMPI/mpiver.f90.in
+++ b/share/cmake-3.17/Modules/FindMPI/mpiver.f90.in
diff --git a/share/cmake-3.16/Modules/FindMPI/test_mpi.c b/share/cmake-3.17/Modules/FindMPI/test_mpi.c
index 7c96d54..7c96d54 100644
--- a/share/cmake-3.16/Modules/FindMPI/test_mpi.c
+++ b/share/cmake-3.17/Modules/FindMPI/test_mpi.c
diff --git a/share/cmake-3.16/Modules/FindMPI/test_mpi.f90.in b/share/cmake-3.17/Modules/FindMPI/test_mpi.f90.in
index 4d43a04..4d43a04 100644
--- a/share/cmake-3.16/Modules/FindMPI/test_mpi.f90.in
+++ b/share/cmake-3.17/Modules/FindMPI/test_mpi.f90.in
diff --git a/share/cmake-3.17/Modules/FindMatlab.cmake b/share/cmake-3.17/Modules/FindMatlab.cmake
new file mode 100644
index 0000000..e42c206
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindMatlab.cmake
@@ -0,0 +1,1834 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindMatlab
+----------
+
+Finds Matlab or Matlab Compiler Runtime (MCR) and provides Matlab tools,
+libraries and compilers to CMake.
+
+This package primary purpose is to find the libraries associated with Matlab
+or the MCR in order to be able to build Matlab extensions (mex files). It
+can also be used:
+
+* to run specific commands in Matlab in case Matlab is available
+* for declaring Matlab unit test
+* to retrieve various information from Matlab (mex extensions, versions and
+ release queries, ...)
+
+The module supports the following components:
+
+* ``ENG_LIBRARY`` and ``MAT_LIBRARY``: respectively the ``ENG`` and ``MAT``
+ libraries of Matlab
+* ``MAIN_PROGRAM`` the Matlab binary program. Note that this component is not
+ available on the MCR version, and will yield an error if the MCR is found
+ instead of the regular Matlab installation.
+* ``MEX_COMPILER`` the MEX compiler.
+* ``MCC_COMPILER`` the MCC compiler, included with the Matlab Compiler add-on.
+* ``SIMULINK`` the Simulink environment.
+
+.. note::
+
+ The version given to the :command:`find_package` directive is the Matlab
+ **version**, which should not be confused with the Matlab *release* name
+ (eg. `R2014`).
+ The :command:`matlab_get_version_from_release_name` and
+ :command:`matlab_get_release_name_from_version` provide a mapping
+ between the release name and the version.
+
+The variable :variable:`Matlab_ROOT_DIR` may be specified in order to give
+the path of the desired Matlab version. Otherwise, the behaviour is platform
+specific:
+
+* Windows: The installed versions of Matlab/MCR are retrieved from the
+ Windows registry
+* OS X: The installed versions of Matlab/MCR are given by the MATLAB
+ default installation paths in ``/Application``. If no such application is
+ found, it falls back to the one that might be accessible from the ``PATH``.
+* Unix: The desired Matlab should be accessible from the ``PATH``. This does
+ not work for MCR installation and :variable:`Matlab_ROOT_DIR` should be
+ specified on this platform.
+
+Additional information is provided when :variable:`MATLAB_FIND_DEBUG` is set.
+When a Matlab/MCR installation is found automatically and the ``MATLAB_VERSION``
+is not given, the version is queried from Matlab directly (on Windows this
+may pop up a Matlab window) or from the MCR installation.
+
+The mapping of the release names and the version of Matlab is performed by
+defining pairs (name, version). The variable
+:variable:`MATLAB_ADDITIONAL_VERSIONS` may be provided before the call to
+the :command:`find_package` in order to handle additional versions.
+
+A Matlab scripts can be added to the set of tests using the
+:command:`matlab_add_unit_test`. By default, the Matlab unit test framework
+will be used (>= 2013a) to run this script, but regular ``.m`` files
+returning an exit code can be used as well (0 indicating a success).
+
+Module Input Variables
+^^^^^^^^^^^^^^^^^^^^^^
+
+Users or projects may set the following variables to configure the module
+behaviour:
+
+:variable:`Matlab_ROOT_DIR`
+ the root of the Matlab installation.
+:variable:`MATLAB_FIND_DEBUG`
+ outputs debug information
+:variable:`MATLAB_ADDITIONAL_VERSIONS`
+ additional versions of Matlab for the automatic retrieval of the installed
+ versions.
+
+Variables defined by the module
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Result variables
+""""""""""""""""
+
+``Matlab_FOUND``
+ ``TRUE`` if the Matlab installation is found, ``FALSE``
+ otherwise. All variable below are defined if Matlab is found.
+``Matlab_ROOT_DIR``
+ the final root of the Matlab installation determined by the FindMatlab
+ module.
+``Matlab_MAIN_PROGRAM``
+ the Matlab binary program. Available only if the component ``MAIN_PROGRAM``
+ is given in the :command:`find_package` directive.
+``Matlab_INCLUDE_DIRS``
+ the path of the Matlab libraries headers
+``Matlab_MEX_LIBRARY``
+ library for mex, always available.
+``Matlab_MX_LIBRARY``
+ mx library of Matlab (arrays), always available.
+``Matlab_ENG_LIBRARY``
+ Matlab engine library. Available only if the component ``ENG_LIBRARY``
+ is requested.
+``Matlab_MAT_LIBRARY``
+ Matlab matrix library. Available only if the component ``MAT_LIBRARY``
+ is requested.
+``Matlab_ENGINE_LIBRARY``
+ Matlab C++ engine library, always available for R2018a and newer.
+``Matlab_DATAARRAY_LIBRARY``
+ Matlab C++ data array library, always available for R2018a and newer.
+``Matlab_LIBRARIES``
+ the whole set of libraries of Matlab
+``Matlab_MEX_COMPILER``
+ the mex compiler of Matlab. Currently not used.
+ Available only if the component ``MEX_COMPILER`` is requested.
+``Matlab_MCC_COMPILER``
+ the mcc compiler of Matlab. Included with the Matlab Compiler add-on.
+ Available only if the component ``MCC_COMPILER`` is requested.
+
+Cached variables
+""""""""""""""""
+
+``Matlab_MEX_EXTENSION``
+ the extension of the mex files for the current platform (given by Matlab).
+``Matlab_ROOT_DIR``
+ the location of the root of the Matlab installation found. If this value
+ is changed by the user, the result variables are recomputed.
+
+Provided macros
+^^^^^^^^^^^^^^^
+
+:command:`matlab_get_version_from_release_name`
+ returns the version from the release name
+:command:`matlab_get_release_name_from_version`
+ returns the release name from the Matlab version
+
+Provided functions
+^^^^^^^^^^^^^^^^^^
+
+:command:`matlab_add_mex`
+ adds a target compiling a MEX file.
+:command:`matlab_add_unit_test`
+ adds a Matlab unit test file as a test to the project.
+:command:`matlab_extract_all_installed_versions_from_registry`
+ parses the registry for all Matlab versions. Available on Windows only.
+ The part of the registry parsed is dependent on the host processor
+:command:`matlab_get_all_valid_matlab_roots_from_registry`
+ returns all the possible Matlab or MCR paths, according to a previously
+ given list. Only the existing/accessible paths are kept. This is mainly
+ useful for the searching all possible Matlab installation.
+:command:`matlab_get_mex_suffix`
+ returns the suffix to be used for the mex files
+ (platform/architecture dependent)
+:command:`matlab_get_version_from_matlab_run`
+ returns the version of Matlab/MCR, given the full directory of the Matlab/MCR
+ installation path.
+
+
+Known issues
+^^^^^^^^^^^^
+
+**Symbol clash in a MEX target**
+ By default, every symbols inside a MEX
+ file defined with the command :command:`matlab_add_mex` have hidden
+ visibility, except for the entry point. This is the default behaviour of
+ the MEX compiler, which lowers the risk of symbol collision between the
+ libraries shipped with Matlab, and the libraries to which the MEX file is
+ linking to. This is also the default on Windows platforms.
+
+ However, this is not sufficient in certain case, where for instance your
+ MEX file is linking against libraries that are already loaded by Matlab,
+ even if those libraries have different SONAMES.
+ A possible solution is to hide the symbols of the libraries to which the
+ MEX target is linking to. This can be achieved in GNU GCC compilers with
+ the linker option ``-Wl,--exclude-libs,ALL``.
+
+**Tests using GPU resources**
+ in case your MEX file is using the GPU and
+ in order to be able to run unit tests on this MEX file, the GPU resources
+ should be properly released by Matlab. A possible solution is to make
+ Matlab aware of the use of the GPU resources in the session, which can be
+ performed by a command such as ``D = gpuDevice()`` at the beginning of
+ the test script (or via a fixture).
+
+
+Reference
+^^^^^^^^^
+
+.. variable:: Matlab_ROOT_DIR
+
+ The root folder of the Matlab installation. If set before the call to
+ :command:`find_package`, the module will look for the components in that
+ path. If not set, then an automatic search of Matlab
+ will be performed. If set, it should point to a valid version of Matlab.
+
+.. variable:: MATLAB_FIND_DEBUG
+
+ If set, the lookup of Matlab and the intermediate configuration steps are
+ outputted to the console.
+
+.. variable:: MATLAB_ADDITIONAL_VERSIONS
+
+ If set, specifies additional versions of Matlab that may be looked for.
+ The variable should be a list of strings, organised by pairs of release
+ name and versions, such as follows::
+
+ set(MATLAB_ADDITIONAL_VERSIONS
+ "release_name1=corresponding_version1"
+ "release_name2=corresponding_version2"
+ ...
+ )
+
+ Example::
+
+ set(MATLAB_ADDITIONAL_VERSIONS
+ "R2013b=8.2"
+ "R2013a=8.1"
+ "R2012b=8.0")
+
+ The order of entries in this list matters when several versions of
+ Matlab are installed. The priority is set according to the ordering in
+ this list.
+#]=======================================================================]
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+
+set(_FindMatlab_SELF_DIR "${CMAKE_CURRENT_LIST_DIR}")
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+include(CheckCXXCompilerFlag)
+include(CheckCCompilerFlag)
+
+
+# The currently supported versions. Other version can be added by the user by
+# providing MATLAB_ADDITIONAL_VERSIONS
+if(NOT MATLAB_ADDITIONAL_VERSIONS)
+ set(MATLAB_ADDITIONAL_VERSIONS)
+endif()
+
+set(MATLAB_VERSIONS_MAPPING
+ "R2020a=9.8"
+ "R2019b=9.7"
+ "R2019a=9.6"
+ "R2018b=9.5"
+ "R2018a=9.4"
+ "R2017b=9.3"
+ "R2017a=9.2"
+ "R2016b=9.1"
+ "R2016a=9.0"
+ "R2015b=8.6"
+ "R2015a=8.5"
+ "R2014b=8.4"
+ "R2014a=8.3"
+ "R2013b=8.2"
+ "R2013a=8.1"
+ "R2012b=8.0"
+ "R2012a=7.14"
+ "R2011b=7.13"
+ "R2011a=7.12"
+ "R2010b=7.11"
+
+ ${MATLAB_ADDITIONAL_VERSIONS}
+ )
+
+
+# temporary folder for all Matlab runs
+set(_matlab_temporary_folder ${CMAKE_BINARY_DIR}/Matlab)
+
+if(NOT EXISTS "${_matlab_temporary_folder}")
+ file(MAKE_DIRECTORY "${_matlab_temporary_folder}")
+endif()
+
+#[=======================================================================[.rst:
+.. command:: matlab_get_version_from_release_name
+
+ Returns the version of Matlab (17.58) from a release name (R2017k)
+#]=======================================================================]
+macro(matlab_get_version_from_release_name release_name version_name)
+
+ string(REGEX MATCHALL "${release_name}=([0-9]+\\.?[0-9]*)" _matched ${MATLAB_VERSIONS_MAPPING})
+
+ set(${version_name} "")
+ if(NOT _matched STREQUAL "")
+ set(${version_name} ${CMAKE_MATCH_1})
+ else()
+ message(WARNING "[MATLAB] The release name ${release_name} is not registered")
+ endif()
+ unset(_matched)
+
+endmacro()
+
+
+
+
+
+#[=======================================================================[.rst:
+.. command:: matlab_get_release_name_from_version
+
+ Returns the release name (R2017k) from the version of Matlab (17.58)
+#]=======================================================================]
+macro(matlab_get_release_name_from_version version release_name)
+
+ set(${release_name} "")
+ foreach(_var IN LISTS MATLAB_VERSIONS_MAPPING)
+ string(REGEX MATCHALL "(.+)=${version}" _matched ${_var})
+ if(NOT _matched STREQUAL "")
+ set(${release_name} ${CMAKE_MATCH_1})
+ break()
+ endif()
+ endforeach(_var)
+
+ unset(_var)
+ unset(_matched)
+ if(${release_name} STREQUAL "")
+ message(WARNING "[MATLAB] The version ${version} is not registered")
+ endif()
+
+endmacro()
+
+
+
+
+
+# extracts all the supported release names (R2017k...) of Matlab
+# internal use
+macro(matlab_get_supported_releases list_releases)
+ set(${list_releases})
+ foreach(_var IN LISTS MATLAB_VERSIONS_MAPPING)
+ string(REGEX MATCHALL "(.+)=([0-9]+\\.?[0-9]*)" _matched ${_var})
+ if(NOT _matched STREQUAL "")
+ list(APPEND ${list_releases} ${CMAKE_MATCH_1})
+ endif()
+ unset(_matched)
+ unset(CMAKE_MATCH_1)
+ endforeach(_var)
+ unset(_var)
+endmacro()
+
+
+
+# extracts all the supported versions of Matlab
+# internal use
+macro(matlab_get_supported_versions list_versions)
+ set(${list_versions})
+ foreach(_var IN LISTS MATLAB_VERSIONS_MAPPING)
+ string(REGEX MATCHALL "(.+)=([0-9]+\\.?[0-9]*)" _matched ${_var})
+ if(NOT _matched STREQUAL "")
+ list(APPEND ${list_versions} ${CMAKE_MATCH_2})
+ endif()
+ unset(_matched)
+ unset(CMAKE_MATCH_1)
+ endforeach(_var)
+ unset(_var)
+endmacro()
+
+
+#[=======================================================================[.rst:
+.. command:: matlab_extract_all_installed_versions_from_registry
+
+ This function parses the registry and founds the Matlab versions that are
+ installed. The found versions are returned in `matlab_versions`.
+ Set `win64` to `TRUE` if the 64 bit version of Matlab should be looked for
+ The returned list contains all versions under
+ ``HKLM\\SOFTWARE\\Mathworks\\MATLAB`` and
+ ``HKLM\\SOFTWARE\\Mathworks\\MATLAB Runtime`` or an empty list in case an
+ error occurred (or nothing found).
+
+ .. note::
+
+ Only the versions are provided. No check is made over the existence of the
+ installation referenced in the registry,
+
+#]=======================================================================]
+function(matlab_extract_all_installed_versions_from_registry win64 matlab_versions)
+
+ if(NOT CMAKE_HOST_WIN32)
+ message(FATAL_ERROR "[MATLAB] This macro can only be called by a windows host (call to reg.exe)")
+ endif()
+
+ if(${win64} AND CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "64")
+ set(APPEND_REG "/reg:64")
+ else()
+ set(APPEND_REG "/reg:32")
+ endif()
+
+ set(matlabs_from_registry)
+
+ foreach(_installation_type IN ITEMS "MATLAB" "MATLAB Runtime")
+
+ # /reg:64 should be added on 64 bits capable OSs in order to enable the
+ # redirection of 64 bits applications
+ execute_process(
+ COMMAND reg query HKEY_LOCAL_MACHINE\\SOFTWARE\\Mathworks\\${_installation_type} /f * /k ${APPEND_REG}
+ RESULT_VARIABLE resultMatlab
+ OUTPUT_VARIABLE varMatlab
+ ERROR_VARIABLE errMatlab
+ INPUT_FILE NUL
+ )
+
+
+ if(resultMatlab EQUAL 0)
+
+ string(
+ REGEX MATCHALL "MATLAB\\\\([0-9]+(\\.[0-9]+)?)"
+ matlab_versions_regex ${varMatlab})
+
+ foreach(match IN LISTS matlab_versions_regex)
+ string(
+ REGEX MATCH "MATLAB\\\\(([0-9]+)(\\.([0-9]+))?)"
+ current_match ${match})
+
+ set(_matlab_current_version ${CMAKE_MATCH_1})
+ set(current_matlab_version_major ${CMAKE_MATCH_2})
+ set(current_matlab_version_minor ${CMAKE_MATCH_4})
+ if(NOT current_matlab_version_minor)
+ set(current_matlab_version_minor "0")
+ endif()
+
+ list(APPEND matlabs_from_registry ${_matlab_current_version})
+ unset(_matlab_current_version)
+ endforeach()
+
+ endif()
+ endforeach()
+
+ if(matlabs_from_registry)
+ list(REMOVE_DUPLICATES matlabs_from_registry)
+ list(SORT matlabs_from_registry)
+ list(REVERSE matlabs_from_registry)
+ endif()
+
+ set(${matlab_versions} ${matlabs_from_registry} PARENT_SCOPE)
+
+endfunction()
+
+
+
+# (internal)
+macro(extract_matlab_versions_from_registry_brute_force matlab_versions)
+ # get the supported versions
+ set(matlab_supported_versions)
+ matlab_get_supported_versions(matlab_supported_versions)
+
+
+ # this is a manual population of the versions we want to look for
+ # this can be done as is, but preferably with the call to
+ # matlab_get_supported_versions and variable
+
+ # populating the versions we want to look for
+ # set(matlab_supported_versions)
+
+ # # Matlab 7
+ # set(matlab_major 7)
+ # foreach(current_matlab_minor RANGE 4 20)
+ # list(APPEND matlab_supported_versions "${matlab_major}.${current_matlab_minor}")
+ # endforeach(current_matlab_minor)
+
+ # # Matlab 8
+ # set(matlab_major 8)
+ # foreach(current_matlab_minor RANGE 0 5)
+ # list(APPEND matlab_supported_versions "${matlab_major}.${current_matlab_minor}")
+ # endforeach(current_matlab_minor)
+
+ # # taking into account the possible additional versions provided by the user
+ # if(DEFINED MATLAB_ADDITIONAL_VERSIONS)
+ # list(APPEND matlab_supported_versions MATLAB_ADDITIONAL_VERSIONS)
+ # endif()
+
+ # we order from more recent to older
+ if(matlab_supported_versions)
+ list(REMOVE_DUPLICATES matlab_supported_versions)
+ list(SORT matlab_supported_versions)
+ list(REVERSE matlab_supported_versions)
+ endif()
+
+ set(${matlab_versions} ${matlab_supported_versions})
+endmacro()
+
+
+
+
+#[=======================================================================[.rst:
+.. command:: matlab_get_all_valid_matlab_roots_from_registry
+
+ Populates the Matlab root with valid versions of Matlab or
+ Matlab Runtime (MCR).
+ The returned matlab_roots is organized in triplets
+ ``(type,version_number,matlab_root_path)``, where ``type``
+ indicates either ``MATLAB`` or ``MCR``.
+
+ ::
+
+ matlab_get_all_valid_matlab_roots_from_registry(
+ matlab_versions
+ matlab_roots)
+
+ ``matlab_versions``
+ the versions of each of the Matlab or MCR installations
+ ``matlab_roots``
+ the location of each of the Matlab or MCR installations
+#]=======================================================================]
+function(matlab_get_all_valid_matlab_roots_from_registry matlab_versions matlab_roots)
+
+ # The matlab_versions comes either from
+ # extract_matlab_versions_from_registry_brute_force or
+ # matlab_extract_all_installed_versions_from_registry.
+
+ set(_matlab_roots_list )
+ # check for Matlab installations
+ foreach(_matlab_current_version ${matlab_versions})
+ get_filename_component(
+ current_MATLAB_ROOT
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\${_matlab_current_version};MATLABROOT]"
+ ABSOLUTE)
+
+ if(EXISTS ${current_MATLAB_ROOT})
+ list(APPEND _matlab_roots_list "MATLAB" ${_matlab_current_version} ${current_MATLAB_ROOT})
+ endif()
+
+ endforeach()
+
+ # Check for MCR installations
+ foreach(_matlab_current_version ${matlab_versions})
+ get_filename_component(
+ current_MATLAB_ROOT
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB Runtime\\${_matlab_current_version};MATLABROOT]"
+ ABSOLUTE)
+
+ # remove the dot
+ string(REPLACE "." "" _matlab_current_version_without_dot "${_matlab_current_version}")
+
+ if(EXISTS ${current_MATLAB_ROOT})
+ list(APPEND _matlab_roots_list "MCR" ${_matlab_current_version} "${current_MATLAB_ROOT}/v${_matlab_current_version_without_dot}")
+ endif()
+
+ endforeach()
+ set(${matlab_roots} ${_matlab_roots_list} PARENT_SCOPE)
+endfunction()
+
+#[=======================================================================[.rst:
+.. command:: matlab_get_mex_suffix
+
+ Returns the extension of the mex files (the suffixes).
+ This function should not be called before the appropriate Matlab root has
+ been found.
+
+ ::
+
+ matlab_get_mex_suffix(
+ matlab_root
+ mex_suffix)
+
+ ``matlab_root``
+ the root of the Matlab/MCR installation
+ ``mex_suffix``
+ the variable name in which the suffix will be returned.
+#]=======================================================================]
+function(matlab_get_mex_suffix matlab_root mex_suffix)
+
+ # todo setup the extension properly. Currently I do not know if this is
+ # sufficient for all win32 distributions.
+ # there is also CMAKE_EXECUTABLE_SUFFIX that could be tweaked
+ set(mexext_suffix "")
+ if(WIN32)
+ list(APPEND mexext_suffix ".bat")
+ endif()
+
+ # we first try without suffix, since cmake does not understand a list with
+ # one empty string element
+ find_program(
+ Matlab_MEXEXTENSIONS_PROG
+ NAMES mexext
+ PATHS ${matlab_root}/bin
+ DOC "Matlab MEX extension provider"
+ NO_DEFAULT_PATH
+ )
+
+ foreach(current_mexext_suffix IN LISTS mexext_suffix)
+ if(NOT DEFINED Matlab_MEXEXTENSIONS_PROG OR NOT Matlab_MEXEXTENSIONS_PROG)
+ # this call should populate the cache automatically
+ find_program(
+ Matlab_MEXEXTENSIONS_PROG
+ "mexext${current_mexext_suffix}"
+ PATHS ${matlab_root}/bin
+ DOC "Matlab MEX extension provider"
+ NO_DEFAULT_PATH
+ )
+ endif()
+ endforeach(current_mexext_suffix)
+ if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] Determining mex files extensions from '${matlab_root}/bin' with program '${Matlab_MEXEXTENSIONS_PROG}'")
+ endif()
+
+ # the program has been found?
+ if((NOT Matlab_MEXEXTENSIONS_PROG) OR (NOT EXISTS ${Matlab_MEXEXTENSIONS_PROG}))
+ if(MATLAB_FIND_DEBUG)
+ message(WARNING "[MATLAB] Cannot found mexext program. Matlab root is ${matlab_root}")
+ endif()
+ unset(Matlab_MEXEXTENSIONS_PROG CACHE)
+ return()
+ endif()
+
+ set(_matlab_mex_extension)
+
+ set(devnull)
+ if(UNIX)
+ set(devnull INPUT_FILE /dev/null)
+ elseif(WIN32)
+ set(devnull INPUT_FILE NUL)
+ endif()
+
+ if(WIN32)
+ # this environment variable is used to determine the arch on Windows
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(ENV{MATLAB_ARCH} "win64")
+ else()
+ set(ENV{MATLAB_ARCH} "win32")
+ endif()
+ endif()
+
+ # this is the preferred way. If this does not work properly (eg. MCR on Windows), then we use our own knowledge
+ execute_process(
+ COMMAND ${Matlab_MEXEXTENSIONS_PROG}
+ OUTPUT_VARIABLE _matlab_mex_extension
+ ERROR_VARIABLE _matlab_mex_extension_error
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ${devnull})
+ unset(ENV{MATLAB_ARCH})
+
+ if(_matlab_mex_extension_error)
+ if(WIN32)
+ # this is only for intel architecture
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(_matlab_mex_extension "mexw64")
+ else()
+ set(_matlab_mex_extension "mexw32")
+ endif()
+ endif()
+ endif()
+
+ string(STRIP "${_matlab_mex_extension}" _matlab_mex_extension)
+ if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] '${Matlab_MEXEXTENSIONS_PROG}' : determined extension '${_matlab_mex_extension}' and error string is '${_matlab_mex_extension_error}'")
+ endif()
+
+ unset(Matlab_MEXEXTENSIONS_PROG CACHE)
+ set(${mex_suffix} ${_matlab_mex_extension} PARENT_SCOPE)
+endfunction()
+
+
+
+
+#[=======================================================================[.rst:
+.. command:: matlab_get_version_from_matlab_run
+
+ This function runs Matlab program specified on arguments and extracts its
+ version. If the path provided for the Matlab installation points to an MCR
+ installation, the version is extracted from the installed files.
+
+ ::
+
+ matlab_get_version_from_matlab_run(
+ matlab_binary_path
+ matlab_list_versions)
+
+ ``matlab_binary_path``
+ the location of the `matlab` binary executable
+ ``matlab_list_versions``
+ the version extracted from Matlab
+#]=======================================================================]
+function(matlab_get_version_from_matlab_run matlab_binary_program matlab_list_versions)
+
+ set(${matlab_list_versions} "" PARENT_SCOPE)
+
+ if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] Determining the version of Matlab from ${matlab_binary_program}")
+ endif()
+
+ if(EXISTS "${_matlab_temporary_folder}/matlabVersionLog.cmaketmp")
+ if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] Removing previous ${_matlab_temporary_folder}/matlabVersionLog.cmaketmp file")
+ endif()
+ file(REMOVE "${_matlab_temporary_folder}/matlabVersionLog.cmaketmp")
+ endif()
+
+
+ # the log file is needed since on windows the command executes in a new
+ # window and it is not possible to get back the answer of Matlab
+ # the -wait command is needed on windows, otherwise the call returns
+ # immediately after the program launches itself.
+ if(WIN32)
+ set(_matlab_additional_commands "-wait")
+ endif()
+
+ set(devnull)
+ if(UNIX)
+ set(devnull INPUT_FILE /dev/null)
+ elseif(WIN32)
+ set(devnull INPUT_FILE NUL)
+ endif()
+
+ # timeout set to 120 seconds, in case it does not start
+ # note as said before OUTPUT_VARIABLE cannot be used in a platform
+ # independent manner however, not setting it would flush the output of Matlab
+ # in the current console (unix variant)
+ execute_process(
+ COMMAND "${matlab_binary_program}" -nosplash -nojvm ${_matlab_additional_commands} -logfile "matlabVersionLog.cmaketmp" -nodesktop -nodisplay -r "version, exit"
+ OUTPUT_VARIABLE _matlab_version_from_cmd_dummy
+ RESULT_VARIABLE _matlab_result_version_call
+ ERROR_VARIABLE _matlab_result_version_call_error
+ TIMEOUT 120
+ WORKING_DIRECTORY "${_matlab_temporary_folder}"
+ ${devnull}
+ )
+
+ if(_matlab_result_version_call MATCHES "timeout")
+ if(MATLAB_FIND_DEBUG)
+ message(WARNING "[MATLAB] Unable to determine the version of Matlab."
+ " Matlab call timed out after 120 seconds.")
+ endif()
+ return()
+ endif()
+
+ if(${_matlab_result_version_call})
+ if(MATLAB_FIND_DEBUG)
+ message(WARNING "[MATLAB] Unable to determine the version of Matlab. Matlab call returned with error ${_matlab_result_version_call}.")
+ endif()
+ return()
+ elseif(NOT EXISTS "${_matlab_temporary_folder}/matlabVersionLog.cmaketmp")
+ if(MATLAB_FIND_DEBUG)
+ message(WARNING "[MATLAB] Unable to determine the version of Matlab. The log file does not exist.")
+ endif()
+ return()
+ endif()
+
+ # if successful, read back the log
+ file(READ "${_matlab_temporary_folder}/matlabVersionLog.cmaketmp" _matlab_version_from_cmd)
+ file(REMOVE "${_matlab_temporary_folder}/matlabVersionLog.cmaketmp")
+
+ set(index -1)
+ string(FIND "${_matlab_version_from_cmd}" "ans" index)
+ if(index EQUAL -1)
+
+ if(MATLAB_FIND_DEBUG)
+ message(WARNING "[MATLAB] Cannot find the version of Matlab returned by the run.")
+ endif()
+
+ else()
+ set(matlab_list_of_all_versions_tmp)
+
+ string(SUBSTRING "${_matlab_version_from_cmd}" ${index} -1 substring_ans)
+ string(
+ REGEX MATCHALL "ans[\r\n\t ]*=[\r\n\t ]*'?([0-9]+(\\.[0-9]+)?)"
+ matlab_versions_regex
+ ${substring_ans})
+ foreach(match IN LISTS matlab_versions_regex)
+ string(
+ REGEX MATCH "ans[\r\n\t ]*=[\r\n\t ]*'?(([0-9]+)(\\.([0-9]+))?)"
+ current_match ${match})
+
+ list(APPEND matlab_list_of_all_versions_tmp ${CMAKE_MATCH_1})
+ endforeach()
+ if(matlab_list_of_all_versions_tmp)
+ list(REMOVE_DUPLICATES matlab_list_of_all_versions_tmp)
+ endif()
+ set(${matlab_list_versions} ${matlab_list_of_all_versions_tmp} PARENT_SCOPE)
+
+ endif()
+
+endfunction()
+
+#[=======================================================================[.rst:
+.. command:: matlab_add_unit_test
+
+ Adds a Matlab unit test to the test set of cmake/ctest.
+ This command requires the component ``MAIN_PROGRAM`` and hence is not
+ available for an MCR installation.
+
+ The unit test uses the Matlab unittest framework (default, available
+ starting Matlab 2013b+) except if the option ``NO_UNITTEST_FRAMEWORK``
+ is given.
+
+ The function expects one Matlab test script file to be given.
+ In the case ``NO_UNITTEST_FRAMEWORK`` is given, the unittest script file
+ should contain the script to be run, plus an exit command with the exit
+ value. This exit value will be passed to the ctest framework (0 success,
+ non 0 failure). Additional arguments accepted by :command:`add_test` can be
+ passed through ``TEST_ARGS`` (eg. ``CONFIGURATION <config> ...``).
+
+ ::
+
+ matlab_add_unit_test(
+ NAME <name>
+ UNITTEST_FILE matlab_file_containing_unittest.m
+ [CUSTOM_TEST_COMMAND matlab_command_to_run_as_test]
+ [UNITTEST_PRECOMMAND matlab_command_to_run]
+ [TIMEOUT timeout]
+ [ADDITIONAL_PATH path1 [path2 ...]]
+ [MATLAB_ADDITIONAL_STARTUP_OPTIONS option1 [option2 ...]]
+ [TEST_ARGS arg1 [arg2 ...]]
+ [NO_UNITTEST_FRAMEWORK]
+ )
+
+ The function arguments are:
+
+ ``NAME``
+ name of the unittest in ctest.
+ ``UNITTEST_FILE``
+ the matlab unittest file. Its path will be automatically
+ added to the Matlab path.
+ ``CUSTOM_TEST_COMMAND``
+ Matlab script command to run as the test.
+ If this is not set, then the following is run:
+ ``runtests('matlab_file_name'), exit(max([ans(1,:).Failed]))``
+ where ``matlab_file_name`` is the ``UNITTEST_FILE`` without the extension.
+ ``UNITTEST_PRECOMMAND``
+ Matlab script command to be ran before the file
+ containing the test (eg. GPU device initialisation based on CMake
+ variables).
+ ``TIMEOUT``
+ the test timeout in seconds. Defaults to 180 seconds as the
+ Matlab unit test may hang.
+ ``ADDITIONAL_PATH``
+ a list of paths to add to the Matlab path prior to
+ running the unit test.
+ ``MATLAB_ADDITIONAL_STARTUP_OPTIONS``
+ a list of additional option in order
+ to run Matlab from the command line.
+ ``-nosplash -nodesktop -nodisplay`` are always added.
+ ``TEST_ARGS``
+ Additional options provided to the add_test command. These
+ options are added to the default options (eg. "CONFIGURATIONS Release")
+ ``NO_UNITTEST_FRAMEWORK``
+ when set, indicates that the test should not
+ use the unittest framework of Matlab (available for versions >= R2013a).
+ ``WORKING_DIRECTORY``
+ This will be the working directory for the test. If specified it will
+ also be the output directory used for the log file of the test run.
+ If not specified the temporary directory ``${CMAKE_BINARY_DIR}/Matlab`` will
+ be used as the working directory and the log location.
+
+#]=======================================================================]
+function(matlab_add_unit_test)
+
+ if(NOT Matlab_MAIN_PROGRAM)
+ message(FATAL_ERROR "[MATLAB] This functionality needs the MAIN_PROGRAM component (not default)")
+ endif()
+
+ set(options NO_UNITTEST_FRAMEWORK)
+ set(oneValueArgs NAME UNITTEST_FILE TIMEOUT WORKING_DIRECTORY
+ UNITTEST_PRECOMMAND CUSTOM_TEST_COMMAND)
+ set(multiValueArgs ADDITIONAL_PATH MATLAB_ADDITIONAL_STARTUP_OPTIONS TEST_ARGS)
+
+ set(prefix _matlab_unittest_prefix)
+ cmake_parse_arguments(PARSE_ARGV 0 ${prefix} "${options}" "${oneValueArgs}" "${multiValueArgs}" )
+
+ if(NOT ${prefix}_NAME)
+ message(FATAL_ERROR "[MATLAB] The Matlab test name cannot be empty")
+ endif()
+
+ add_test(NAME ${${prefix}_NAME}
+ COMMAND ${CMAKE_COMMAND}
+ "-Dtest_name=${${prefix}_NAME}"
+ "-Dadditional_paths=${${prefix}_ADDITIONAL_PATH}"
+ "-Dtest_timeout=${${prefix}_TIMEOUT}"
+ "-Doutput_directory=${_matlab_temporary_folder}"
+ "-Dworking_directory=${${prefix}_WORKING_DIRECTORY}"
+ "-DMatlab_PROGRAM=${Matlab_MAIN_PROGRAM}"
+ "-Dno_unittest_framework=${${prefix}_NO_UNITTEST_FRAMEWORK}"
+ "-DMatlab_ADDITIONAL_STARTUP_OPTIONS=${${prefix}_MATLAB_ADDITIONAL_STARTUP_OPTIONS}"
+ "-Dunittest_file_to_run=${${prefix}_UNITTEST_FILE}"
+ "-Dcustom_Matlab_test_command=${${prefix}_CUSTOM_TEST_COMMAND}"
+ "-Dcmd_to_run_before_test=${${prefix}_UNITTEST_PRECOMMAND}"
+ -P ${_FindMatlab_SELF_DIR}/MatlabTestsRedirect.cmake
+ ${${prefix}_TEST_ARGS}
+ ${${prefix}_UNPARSED_ARGUMENTS}
+ )
+endfunction()
+
+
+#[=======================================================================[.rst:
+.. command:: matlab_add_mex
+
+ Adds a Matlab MEX target.
+ This commands compiles the given sources with the current tool-chain in
+ order to produce a MEX file. The final name of the produced output may be
+ specified, as well as additional link libraries, and a documentation entry
+ for the MEX file. Remaining arguments of the call are passed to the
+ :command:`add_library` or :command:`add_executable` command.
+
+ ::
+
+ matlab_add_mex(
+ NAME <name>
+ [EXECUTABLE | MODULE | SHARED]
+ SRC src1 [src2 ...]
+ [OUTPUT_NAME output_name]
+ [DOCUMENTATION file.txt]
+ [LINK_TO target1 target2 ...]
+ [R2017b | R2018a]
+ [EXCLUDE_FROM_ALL]
+ [...]
+ )
+
+ ``NAME``
+ name of the target.
+ ``SRC``
+ list of source files.
+ ``LINK_TO``
+ a list of additional link dependencies. The target links to ``libmex``
+ and ``libmx`` by default.
+ ``OUTPUT_NAME``
+ if given, overrides the default name. The default name is
+ the name of the target without any prefix and
+ with ``Matlab_MEX_EXTENSION`` suffix.
+ ``DOCUMENTATION``
+ if given, the file ``file.txt`` will be considered as
+ being the documentation file for the MEX file. This file is copied into
+ the same folder without any processing, with the same name as the final
+ mex file, and with extension `.m`. In that case, typing ``help <name>``
+ in Matlab prints the documentation contained in this file.
+ ``R2017b`` or ``R2018a`` may be given to specify the version of the C API
+ to use: ``R2017b`` specifies the traditional (separate complex) C API,
+ and corresponds to the ``-R2017b`` flag for the `mex` command. ``R2018a``
+ specifies the new interleaved complex C API, and corresponds to the
+ ``-R2018a`` flag for the `mex` command. Ignored if MATLAB version prior
+ to R2018a. Defaults to ``R2017b``.
+ ``MODULE`` or ``SHARED`` may be given to specify the type of library to be
+ created. ``EXECUTABLE`` may be given to create an executable instead of
+ a library. If no type is given explicitly, the type is ``SHARED``.
+ ``EXCLUDE_FROM_ALL``
+ This option has the same meaning as for :prop_tgt:`EXCLUDE_FROM_ALL` and
+ is forwarded to :command:`add_library` or :command:`add_executable`
+ commands.
+
+ The documentation file is not processed and should be in the following
+ format:
+
+ ::
+
+ % This is the documentation
+ function ret = mex_target_output_name(input1)
+
+#]=======================================================================]
+function(matlab_add_mex)
+
+ if(NOT WIN32)
+ # we do not need all this on Windows
+ # pthread options
+ if(CMAKE_CXX_COMPILER_LOADED)
+ check_cxx_compiler_flag(-pthread HAS_MINUS_PTHREAD)
+ elseif(CMAKE_C_COMPILER_LOADED)
+ check_c_compiler_flag(-pthread HAS_MINUS_PTHREAD)
+ endif()
+ # we should use try_compile instead, the link flags are discarded from
+ # this compiler_flag function.
+ #check_cxx_compiler_flag(-Wl,--exclude-libs,ALL HAS_SYMBOL_HIDING_CAPABILITY)
+
+ endif()
+
+ set(options EXECUTABLE MODULE SHARED R2017b R2018a EXCLUDE_FROM_ALL)
+ set(oneValueArgs NAME DOCUMENTATION OUTPUT_NAME)
+ set(multiValueArgs LINK_TO SRC)
+
+ set(prefix _matlab_addmex_prefix)
+ cmake_parse_arguments(${prefix} "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
+
+ if(NOT ${prefix}_NAME)
+ message(FATAL_ERROR "[MATLAB] The MEX target name cannot be empty")
+ endif()
+
+ if(NOT ${prefix}_OUTPUT_NAME)
+ set(${prefix}_OUTPUT_NAME ${${prefix}_NAME})
+ endif()
+
+ if(NOT Matlab_VERSION_STRING VERSION_LESS "9.1") # For 9.1 (R2016b) and newer, add version source file
+ # Add the correct version file depending on which languages are enabled in the project
+ if(CMAKE_C_COMPILER_LOADED)
+ # If C is enabled, use the .c file as it will work fine also with C++
+ set(MEX_VERSION_FILE "${Matlab_ROOT_DIR}/extern/version/c_mexapi_version.c")
+ elseif(CMAKE_CXX_COMPILER_LOADED)
+ # If C is not enabled, check if CXX is enabled and use the .cpp file
+ # to avoid that the .c file is silently ignored
+ set(MEX_VERSION_FILE "${Matlab_ROOT_DIR}/extern/version/cpp_mexapi_version.cpp")
+ else()
+ # If neither C or CXX is enabled, warn because we cannot add the source.
+ # TODO: add support for fortran mex files
+ message(WARNING "[MATLAB] matlab_add_mex requires that at least C or CXX are enabled languages")
+ endif()
+ endif()
+
+ if(NOT Matlab_VERSION_STRING VERSION_LESS "9.4") # For 9.4 (R2018a) and newer, add API macro
+ if(${${prefix}_R2018a})
+ set(MEX_API_MACRO "MATLAB_DEFAULT_RELEASE=R2018a")
+ else()
+ set(MEX_API_MACRO "MATLAB_DEFAULT_RELEASE=R2017b")
+ endif()
+ endif()
+
+ set(_option_EXCLUDE_FROM_ALL)
+ if(${prefix}_EXCLUDE_FROM_ALL)
+ set(_option_EXCLUDE_FROM_ALL "EXCLUDE_FROM_ALL")
+ endif()
+
+ if(${prefix}_EXECUTABLE)
+ add_executable(${${prefix}_NAME}
+ ${_option_EXCLUDE_FROM_ALL}
+ ${${prefix}_SRC}
+ ${MEX_VERSION_FILE}
+ ${${prefix}_DOCUMENTATION}
+ ${${prefix}_UNPARSED_ARGUMENTS})
+ else()
+ if(${prefix}_MODULE)
+ set(type MODULE)
+ else()
+ set(type SHARED)
+ endif()
+
+ add_library(${${prefix}_NAME}
+ ${type}
+ ${_option_EXCLUDE_FROM_ALL}
+ ${${prefix}_SRC}
+ ${MEX_VERSION_FILE}
+ ${${prefix}_DOCUMENTATION}
+ ${${prefix}_UNPARSED_ARGUMENTS})
+ endif()
+
+ target_include_directories(${${prefix}_NAME} PRIVATE ${Matlab_INCLUDE_DIRS})
+
+ if(Matlab_HAS_CPP_API)
+ target_link_libraries(${${prefix}_NAME} ${Matlab_ENGINE_LIBRARY} ${Matlab_DATAARRAY_LIBRARY})
+ endif()
+
+ target_link_libraries(${${prefix}_NAME} ${Matlab_MEX_LIBRARY} ${Matlab_MX_LIBRARY} ${${prefix}_LINK_TO})
+ set_target_properties(${${prefix}_NAME}
+ PROPERTIES
+ PREFIX ""
+ OUTPUT_NAME ${${prefix}_OUTPUT_NAME}
+ SUFFIX ".${Matlab_MEX_EXTENSION}")
+
+ target_compile_definitions(${${prefix}_NAME} PRIVATE ${MEX_API_MACRO} MATLAB_MEX_FILE)
+
+ # documentation
+ if(NOT ${${prefix}_DOCUMENTATION} STREQUAL "")
+ get_target_property(output_name ${${prefix}_NAME} OUTPUT_NAME)
+ add_custom_command(
+ TARGET ${${prefix}_NAME}
+ PRE_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${${prefix}_DOCUMENTATION} $<TARGET_FILE_DIR:${${prefix}_NAME}>/${output_name}.m
+ COMMENT "[MATLAB] Copy ${${prefix}_NAME} documentation file into the output folder"
+ )
+ endif() # documentation
+
+ # entry point in the mex file + taking care of visibility and symbol clashes.
+ if(WIN32)
+
+ if (MSVC)
+
+ set(_link_flags "${_link_flags} /EXPORT:mexFunction")
+ if(NOT Matlab_VERSION_STRING VERSION_LESS "9.1") # For 9.1 (R2016b) and newer, export version
+ set(_link_flags "${_link_flags} /EXPORT:mexfilerequiredapiversion")
+ endif()
+
+ set_property(TARGET ${${prefix}_NAME} APPEND PROPERTY LINK_FLAGS ${_link_flags})
+
+ endif() # No other compiler currently supported on Windows.
+
+ set_target_properties(${${prefix}_NAME}
+ PROPERTIES
+ DEFINE_SYMBOL "DLL_EXPORT_SYM=__declspec(dllexport)")
+
+ else()
+
+ if(Matlab_VERSION_STRING VERSION_LESS "9.1") # For versions prior to 9.1 (R2016b)
+ set(_ver_map_files ${Matlab_EXTERN_LIBRARY_DIR}/mexFunction.map)
+ else() # For 9.1 (R2016b) and newer
+ set(_ver_map_files ${Matlab_EXTERN_LIBRARY_DIR}/c_exportsmexfileversion.map)
+ endif()
+
+ if(NOT Matlab_VERSION_STRING VERSION_LESS "9.5") # For 9.5 (R2018b) (and newer?)
+ target_compile_options(${${prefix}_NAME} PRIVATE "-fvisibility=default")
+ # This one is weird, it might be a bug in <mex.h> for R2018b. When compiling with
+ # -fvisibility=hidden, the symbol `mexFunction` cannot be exported. Reading the
+ # source code for <mex.h>, it seems that the preprocessor macro `MW_NEEDS_VERSION_H`
+ # needs to be defined for `__attribute__((visibility("default")))` to be added
+ # in front of the declaration of `mexFunction`. In previous versions of MATLAB this
+ # was not the case, there `DLL_EXPORT_SYM` needed to be defined.
+ # Adding `-fvisibility=hidden` to the `mex` command causes the build to fail.
+ # TODO: Check that this is still necessary in R2019a when it comes out.
+ endif()
+
+ if(APPLE)
+
+ if(Matlab_HAS_CPP_API)
+ list(APPEND _ver_map_files ${Matlab_EXTERN_LIBRARY_DIR}/cppMexFunction.map) # This one doesn't exist on Linux
+ set(_link_flags "${_link_flags} -Wl,-U,_mexCreateMexFunction -Wl,-U,_mexDestroyMexFunction -Wl,-U,_mexFunctionAdapter")
+ # On MacOS, the MEX command adds the above, without it the link breaks
+ # because we indiscriminately use "cppMexFunction.map" even for C API MEX-files.
+ endif()
+
+ set(_export_flag_name -exported_symbols_list)
+
+ else() # Linux
+
+ if(HAS_MINUS_PTHREAD)
+ # Apparently, compiling with -pthread generated the proper link flags
+ # and some defines at compilation
+ target_compile_options(${${prefix}_NAME} PRIVATE "-pthread")
+ endif()
+
+ set(_link_flags "${_link_flags} -Wl,--as-needed")
+
+ set(_export_flag_name --version-script)
+
+ endif()
+
+ foreach(_file ${_ver_map_files})
+ set(_link_flags "${_link_flags} -Wl,${_export_flag_name},${_file}")
+ endforeach()
+
+ # The `mex` command doesn't add this define. It is specified here in order
+ # to export the symbol in case the client code decides to hide its symbols
+ set_target_properties(${${prefix}_NAME}
+ PROPERTIES
+ DEFINE_SYMBOL "DLL_EXPORT_SYM=__attribute__((visibility(\"default\")))"
+ LINK_FLAGS "${_link_flags}"
+ )
+
+ endif()
+
+endfunction()
+
+
+# (internal)
+# Used to get the version of matlab, using caching. This basically transforms the
+# output of the root list, with possible unknown version, to a version
+# This can possibly run Matlab for extracting the version.
+function(_Matlab_get_version_from_root matlab_root matlab_or_mcr matlab_known_version matlab_final_version)
+
+ # if the version is not trivial, we query matlab (if not MCR) for that
+ # we keep track of the location of matlab that induced this version
+ #if(NOT DEFINED Matlab_PROG_VERSION_STRING_AUTO_DETECT)
+ # set(Matlab_PROG_VERSION_STRING_AUTO_DETECT "" CACHE INTERNAL "internal matlab location for the discovered version")
+ #endif()
+
+ if(NOT matlab_known_version STREQUAL "NOTFOUND")
+ # the version is known, we just return it
+ set(${matlab_final_version} ${matlab_known_version} PARENT_SCOPE)
+ set(Matlab_VERSION_STRING_INTERNAL ${matlab_known_version} CACHE INTERNAL "Matlab version (automatically determined)" FORCE)
+ return()
+ endif()
+
+ if(matlab_or_mcr STREQUAL "UNKNOWN")
+ if(MATLAB_FIND_DEBUG)
+ message(WARNING "[MATLAB] Determining Matlab or MCR")
+ endif()
+
+ if(EXISTS "${matlab_root}/appdata/version.xml")
+ # we inspect the application version.xml file that contains the product information
+ file(STRINGS "${matlab_root}/appdata/version.xml" productinfo_string NEWLINE_CONSUME)
+ string(REGEX MATCH "<installedProductData.*displayedString=\"([a-zA-Z ]+)\".*/>"
+ product_reg_match
+ ${productinfo_string}
+ )
+
+ # default fallback to Matlab
+ set(matlab_or_mcr "MATLAB")
+ if(NOT CMAKE_MATCH_1 STREQUAL "")
+ string(TOLOWER "${CMAKE_MATCH_1}" product_reg_match)
+
+ if(product_reg_match STREQUAL "matlab runtime")
+ set(matlab_or_mcr "MCR")
+ endif()
+ endif()
+ endif()
+
+ if(MATLAB_FIND_DEBUG)
+ message(WARNING "[MATLAB] '${matlab_root}' contains the '${matlab_or_mcr}'")
+ endif()
+ endif()
+
+ # UNKNOWN is the default behaviour in case we
+ # - have an erroneous matlab_root
+ # - have an initial 'UNKNOWN'
+ if(matlab_or_mcr STREQUAL "MATLAB" OR matlab_or_mcr STREQUAL "UNKNOWN")
+ # MATLAB versions
+ set(_matlab_current_program ${Matlab_MAIN_PROGRAM})
+
+ # do we already have a matlab program?
+ if(NOT _matlab_current_program)
+
+ set(_find_matlab_options)
+ if(matlab_root AND EXISTS ${matlab_root})
+ set(_find_matlab_options PATHS ${matlab_root} ${matlab_root}/bin NO_DEFAULT_PATH)
+ endif()
+
+ find_program(
+ _matlab_current_program
+ matlab
+ ${_find_matlab_options}
+ DOC "Matlab main program"
+ )
+ endif()
+
+ if(NOT _matlab_current_program OR NOT EXISTS ${_matlab_current_program})
+ # if not found, clear the dependent variables
+ if(MATLAB_FIND_DEBUG)
+ message(WARNING "[MATLAB] Cannot find the main matlab program under ${matlab_root}")
+ endif()
+ set(Matlab_PROG_VERSION_STRING_AUTO_DETECT "" CACHE INTERNAL "internal matlab location for the discovered version" FORCE)
+ set(Matlab_VERSION_STRING_INTERNAL "" CACHE INTERNAL "internal matlab location for the discovered version" FORCE)
+ unset(_matlab_current_program)
+ unset(_matlab_current_program CACHE)
+ return()
+ endif()
+
+ # full real path for path comparison
+ get_filename_component(_matlab_main_real_path_tmp "${_matlab_current_program}" REALPATH)
+ unset(_matlab_current_program)
+ unset(_matlab_current_program CACHE)
+
+ # is it the same as the previous one?
+ if(_matlab_main_real_path_tmp STREQUAL Matlab_PROG_VERSION_STRING_AUTO_DETECT)
+ set(${matlab_final_version} ${Matlab_VERSION_STRING_INTERNAL} PARENT_SCOPE)
+ return()
+ endif()
+
+ # update the location of the program
+ set(Matlab_PROG_VERSION_STRING_AUTO_DETECT
+ ${_matlab_main_real_path_tmp}
+ CACHE INTERNAL "internal matlab location for the discovered version" FORCE)
+
+ set(matlab_list_of_all_versions)
+ matlab_get_version_from_matlab_run("${Matlab_PROG_VERSION_STRING_AUTO_DETECT}" matlab_list_of_all_versions)
+
+ list(LENGTH matlab_list_of_all_versions list_of_all_versions_length)
+ if(list_of_all_versions_length GREATER 0)
+ list(GET matlab_list_of_all_versions 0 _matlab_version_tmp)
+ else()
+ set(_matlab_version_tmp "unknown")
+ endif()
+
+ # set the version into the cache
+ set(Matlab_VERSION_STRING_INTERNAL ${_matlab_version_tmp} CACHE INTERNAL "Matlab version (automatically determined)" FORCE)
+
+ # warning, just in case several versions found (should not happen)
+ if((list_of_all_versions_length GREATER 1) AND MATLAB_FIND_DEBUG)
+ message(WARNING "[MATLAB] Found several versions, taking the first one (versions found ${matlab_list_of_all_versions})")
+ endif()
+
+ # return the updated value
+ set(${matlab_final_version} ${Matlab_VERSION_STRING_INTERNAL} PARENT_SCOPE)
+ elseif(EXISTS "${matlab_root}/VersionInfo.xml")
+ # MCR
+ # we cannot run anything in order to extract the version. We assume that the file
+ # VersionInfo.xml exists under the MatlabRoot, we look for it and extract the version from there
+ set(_matlab_version_tmp "unknown")
+ file(STRINGS "${matlab_root}/VersionInfo.xml" versioninfo_string NEWLINE_CONSUME)
+
+ if(versioninfo_string)
+ # parses "<version>9.2.0.538062</version>"
+ string(REGEX MATCH "<version>(.*)</version>"
+ version_reg_match
+ ${versioninfo_string}
+ )
+
+ if(CMAKE_MATCH_1 MATCHES "(([0-9])\\.([0-9]))[\\.0-9]*")
+ set(_matlab_version_tmp "${CMAKE_MATCH_1}")
+ endif()
+ endif()
+ set(${matlab_final_version} "${_matlab_version_tmp}" PARENT_SCOPE)
+ set(Matlab_VERSION_STRING_INTERNAL
+ "${_matlab_version_tmp}"
+ CACHE INTERNAL "Matlab (MCR) version (automatically determined)"
+ FORCE)
+ endif() # Matlab or MCR
+
+endfunction()
+
+
+# Utility function for finding Matlab or MCR on Win32
+function(_Matlab_find_instances_win32 matlab_roots)
+ # On WIN32, we look for Matlab installation in the registry
+ # if unsuccessful, we look for all known revision and filter the existing
+ # ones.
+
+ # testing if we are able to extract the needed information from the registry
+ set(_matlab_versions_from_registry)
+
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(_matlab_win64 ON)
+ else()
+ set(_matlab_win64 OFF)
+ endif()
+
+ matlab_extract_all_installed_versions_from_registry(_matlab_win64 _matlab_versions_from_registry)
+
+ # the returned list is empty, doing the search on all known versions
+ if(NOT _matlab_versions_from_registry)
+ if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] Search for Matlab from the registry unsuccessful, testing all supported versions")
+ endif()
+ extract_matlab_versions_from_registry_brute_force(_matlab_versions_from_registry)
+ endif()
+
+ # filtering the results with the registry keys
+ matlab_get_all_valid_matlab_roots_from_registry("${_matlab_versions_from_registry}" _matlab_possible_roots)
+ set(${matlab_roots} ${_matlab_possible_roots} PARENT_SCOPE)
+
+endfunction()
+
+# Utility function for finding Matlab or MCR on OSX
+function(_Matlab_find_instances_osx matlab_roots)
+
+ set(_matlab_possible_roots)
+ # on mac, we look for the /Application paths
+ # this corresponds to the behaviour on Windows. On Linux, we do not have
+ # any other guess.
+ matlab_get_supported_releases(_matlab_releases)
+ if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] Matlab supported versions ${_matlab_releases}. If more version should be supported "
+ "the variable MATLAB_ADDITIONAL_VERSIONS can be set according to the documentation")
+ endif()
+
+ foreach(_matlab_current_release IN LISTS _matlab_releases)
+ matlab_get_version_from_release_name("${_matlab_current_release}" _matlab_current_version)
+ string(REPLACE "." "" _matlab_current_version_without_dot "${_matlab_current_version}")
+ set(_matlab_base_path "/Applications/MATLAB_${_matlab_current_release}.app")
+
+ # Check Matlab, has precedence over MCR
+ if(EXISTS ${_matlab_base_path})
+ if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] Found version ${_matlab_current_release} (${_matlab_current_version}) in ${_matlab_base_path}")
+ endif()
+ list(APPEND _matlab_possible_roots "MATLAB" ${_matlab_current_version} ${_matlab_base_path})
+ endif()
+
+ # Checks MCR
+ set(_mcr_path "/Applications/MATLAB/MATLAB_Runtime/v${_matlab_current_version_without_dot}")
+ if(EXISTS "${_mcr_path}")
+ if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] Found MCR version ${_matlab_current_release} (${_matlab_current_version}) in ${_mcr_path}")
+ endif()
+ list(APPEND _matlab_possible_roots "MCR" ${_matlab_current_version} ${_mcr_path})
+ endif()
+
+ endforeach()
+ set(${matlab_roots} ${_matlab_possible_roots} PARENT_SCOPE)
+
+endfunction()
+
+# Utility function for finding Matlab or MCR from the PATH
+function(_Matlab_find_instances_from_path matlab_roots)
+
+ set(_matlab_possible_roots)
+
+ # At this point, we have no other choice than trying to find it from PATH.
+ # If set by the user, this wont change
+ find_program(
+ _matlab_main_tmp
+ NAMES matlab)
+
+ if(_matlab_main_tmp)
+ # we then populate the list of roots, with empty version
+ if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] matlab found from PATH: ${_matlab_main_tmp}")
+ endif()
+
+ # resolve symlinks
+ get_filename_component(_matlab_current_location "${_matlab_main_tmp}" REALPATH)
+
+ # get the directory (the command below has to be run twice)
+ # this will be the matlab root
+ get_filename_component(_matlab_current_location "${_matlab_current_location}" DIRECTORY)
+ get_filename_component(_matlab_current_location "${_matlab_current_location}" DIRECTORY) # Matlab should be in bin
+
+ # We found the Matlab program
+ list(APPEND _matlab_possible_roots "MATLAB" "NOTFOUND" ${_matlab_current_location})
+
+ # we remove this from the CACHE
+ unset(_matlab_main_tmp CACHE)
+ else()
+ find_program(
+ _matlab_mex_tmp
+ NAMES mex)
+ if(_matlab_mex_tmp)
+ # we then populate the list of roots, with empty version
+ if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] mex compiler found from PATH: ${_matlab_mex_tmp}")
+ endif()
+
+ # resolve symlinks
+ get_filename_component(_mex_current_location "${_matlab_mex_tmp}" REALPATH)
+
+ # get the directory (the command below has to be run twice)
+ # this will be the matlab root
+ get_filename_component(_mex_current_location "${_mex_current_location}" DIRECTORY)
+ get_filename_component(_mex_current_location "${_mex_current_location}" DIRECTORY) # Matlab Runtime mex compiler should be in bin
+
+ # We found the Matlab program
+ list(APPEND _matlab_possible_roots "MCR" "NOTFOUND" ${_mex_current_location})
+
+ unset(_matlab_mex_tmp CACHE)
+ else()
+ if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] mex compiler not found")
+ endif()
+ endif()
+
+
+ endif()
+
+ set(${matlab_roots} ${_matlab_possible_roots} PARENT_SCOPE)
+endfunction()
+
+
+# ###################################
+# Exploring the possible Matlab_ROOTS
+
+# this variable will get all Matlab installations found in the current system.
+set(_matlab_possible_roots)
+
+if(Matlab_ROOT_DIR)
+ # if the user specifies a possible root, we keep this one
+
+ if(NOT EXISTS "${Matlab_ROOT_DIR}")
+ # if Matlab_ROOT_DIR specified but erroneous
+ if(MATLAB_FIND_DEBUG)
+ message(WARNING "[MATLAB] the specified path for Matlab_ROOT_DIR does not exist (${Matlab_ROOT_DIR})")
+ endif()
+ else()
+ # NOTFOUND indicates the code below to search for the version automatically
+ if("${Matlab_VERSION_STRING_INTERNAL}" STREQUAL "")
+ list(APPEND _matlab_possible_roots "UNKNOWN" "NOTFOUND" ${Matlab_ROOT_DIR}) # empty version, empty MCR/Matlab indication
+ else()
+ list(APPEND _matlab_possible_roots "UNKNOWN" ${Matlab_VERSION_STRING_INTERNAL} ${Matlab_ROOT_DIR}) # cached version
+ endif()
+ endif()
+else()
+
+ # if the user does not specify the possible installation root, we look for
+ # one installation using the appropriate heuristics.
+ # There is apparently no standard way on Linux.
+ if(CMAKE_HOST_WIN32)
+ _Matlab_find_instances_win32(_matlab_possible_roots_win32)
+ list(APPEND _matlab_possible_roots ${_matlab_possible_roots_win32})
+ elseif(APPLE)
+ _Matlab_find_instances_osx(_matlab_possible_roots_osx)
+ list(APPEND _matlab_possible_roots ${_matlab_possible_roots_osx})
+ endif()
+endif()
+
+
+list(LENGTH _matlab_possible_roots _numbers_of_matlab_roots)
+if(_numbers_of_matlab_roots EQUAL 0)
+ # if we have not found anything, we fall back on the PATH
+ _Matlab_find_instances_from_path(_matlab_possible_roots)
+endif()
+
+
+if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] Matlab root folders are ${_matlab_possible_roots}")
+endif()
+
+
+
+
+
+# take the first possible Matlab root
+list(LENGTH _matlab_possible_roots _numbers_of_matlab_roots)
+set(Matlab_VERSION_STRING "NOTFOUND")
+set(Matlab_Or_MCR "UNKNOWN")
+if(_numbers_of_matlab_roots GREATER 0)
+ if(Matlab_FIND_VERSION_EXACT)
+ list(FIND _matlab_possible_roots ${Matlab_FIND_VERSION} _list_index)
+ if(_list_index LESS 0)
+ set(_list_index 1)
+ endif()
+
+ math(EXPR _matlab_or_mcr_index "${_list_index} - 1")
+ math(EXPR _matlab_root_dir_index "${_list_index} + 1")
+
+ list(GET _matlab_possible_roots ${_matlab_or_mcr_index} Matlab_Or_MCR)
+ list(GET _matlab_possible_roots ${_list_index} Matlab_VERSION_STRING)
+ list(GET _matlab_possible_roots ${_matlab_root_dir_index} Matlab_ROOT_DIR)
+ else()
+ list(GET _matlab_possible_roots 0 Matlab_Or_MCR)
+ list(GET _matlab_possible_roots 1 Matlab_VERSION_STRING)
+ list(GET _matlab_possible_roots 2 Matlab_ROOT_DIR)
+
+ # adding a warning in case of ambiguity
+ if(_numbers_of_matlab_roots GREATER 3 AND MATLAB_FIND_DEBUG)
+ message(WARNING "[MATLAB] Found several distributions of Matlab. Setting the current version to ${Matlab_VERSION_STRING} (located ${Matlab_ROOT_DIR})."
+ " If this is not the desired behaviour, use the EXACT keyword or provide the -DMatlab_ROOT_DIR=... on the command line")
+ endif()
+ endif()
+endif()
+
+
+# check if the root changed wrt. the previous defined one, if so
+# clear all the cached variables for being able to reconfigure properly
+if(DEFINED Matlab_ROOT_DIR_LAST_CACHED)
+
+ if(NOT Matlab_ROOT_DIR_LAST_CACHED STREQUAL Matlab_ROOT_DIR)
+ set(_Matlab_cached_vars
+ Matlab_VERSION_STRING
+ Matlab_INCLUDE_DIRS
+ Matlab_MEX_LIBRARY
+ Matlab_MEX_COMPILER
+ Matlab_MCC_COMPILER
+ Matlab_MAIN_PROGRAM
+ Matlab_MX_LIBRARY
+ Matlab_ENG_LIBRARY
+ Matlab_MAT_LIBRARY
+ Matlab_ENGINE_LIBRARY
+ Matlab_DATAARRAY_LIBRARY
+ Matlab_MEX_EXTENSION
+ Matlab_SIMULINK_INCLUDE_DIR
+
+ # internal
+ Matlab_MEXEXTENSIONS_PROG
+ Matlab_ROOT_DIR_LAST_CACHED
+ #Matlab_PROG_VERSION_STRING_AUTO_DETECT
+ #Matlab_VERSION_STRING_INTERNAL
+ )
+ foreach(_var IN LISTS _Matlab_cached_vars)
+ if(DEFINED ${_var})
+ unset(${_var} CACHE)
+ endif()
+ endforeach()
+ endif()
+endif()
+
+set(Matlab_ROOT_DIR_LAST_CACHED ${Matlab_ROOT_DIR} CACHE INTERNAL "last Matlab root dir location")
+set(Matlab_ROOT_DIR ${Matlab_ROOT_DIR} CACHE PATH "Matlab installation root path" FORCE)
+
+# Fix the version, in case this one is NOTFOUND
+_Matlab_get_version_from_root(
+ "${Matlab_ROOT_DIR}"
+ "${Matlab_Or_MCR}"
+ ${Matlab_VERSION_STRING}
+ Matlab_VERSION_STRING
+)
+
+if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] Current version is ${Matlab_VERSION_STRING} located ${Matlab_ROOT_DIR}")
+endif()
+
+# MATLAB 9.4 (R2018a) and newer have a new C++ API
+# This API pulls additional required libraries.
+if(NOT ${Matlab_VERSION_STRING} VERSION_LESS "9.4")
+ set(Matlab_HAS_CPP_API 1)
+endif()
+
+if(Matlab_ROOT_DIR)
+ file(TO_CMAKE_PATH ${Matlab_ROOT_DIR} Matlab_ROOT_DIR)
+endif()
+
+if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ set(_matlab_64Build FALSE)
+else()
+ set(_matlab_64Build TRUE)
+endif()
+
+if(APPLE)
+ set(_matlab_bin_prefix "mac") # i should be for intel
+ set(_matlab_bin_suffix_32bits "i")
+ set(_matlab_bin_suffix_64bits "i64")
+elseif(UNIX)
+ set(_matlab_bin_prefix "gln")
+ set(_matlab_bin_suffix_32bits "x86")
+ set(_matlab_bin_suffix_64bits "xa64")
+else()
+ set(_matlab_bin_prefix "win")
+ set(_matlab_bin_suffix_32bits "32")
+ set(_matlab_bin_suffix_64bits "64")
+endif()
+
+
+
+set(MATLAB_INCLUDE_DIR_TO_LOOK ${Matlab_ROOT_DIR}/extern/include)
+if(_matlab_64Build)
+ set(_matlab_current_suffix ${_matlab_bin_suffix_64bits})
+else()
+ set(_matlab_current_suffix ${_matlab_bin_suffix_32bits})
+endif()
+
+set(Matlab_BINARIES_DIR
+ ${Matlab_ROOT_DIR}/bin/${_matlab_bin_prefix}${_matlab_current_suffix})
+set(Matlab_EXTERN_LIBRARY_DIR
+ ${Matlab_ROOT_DIR}/extern/lib/${_matlab_bin_prefix}${_matlab_current_suffix})
+set(Matlab_EXTERN_BINARIES_DIR
+ ${Matlab_ROOT_DIR}/extern/bin/${_matlab_bin_prefix}${_matlab_current_suffix})
+
+if(WIN32)
+ if(MINGW)
+ set(_matlab_lib_dir_for_search ${Matlab_EXTERN_LIBRARY_DIR}/mingw64)
+ else()
+ set(_matlab_lib_dir_for_search ${Matlab_EXTERN_LIBRARY_DIR}/microsoft)
+ endif()
+ set(_matlab_lib_prefix_for_search "lib")
+else()
+ set(_matlab_lib_dir_for_search ${Matlab_BINARIES_DIR} ${Matlab_EXTERN_BINARIES_DIR})
+ set(_matlab_lib_prefix_for_search "lib")
+endif()
+
+unset(_matlab_64Build)
+
+
+if(NOT DEFINED Matlab_MEX_EXTENSION)
+ set(_matlab_mex_extension "")
+ matlab_get_mex_suffix("${Matlab_ROOT_DIR}" _matlab_mex_extension)
+
+ # This variable goes to the cache.
+ set(Matlab_MEX_EXTENSION ${_matlab_mex_extension} CACHE STRING "Extensions for the mex targets (automatically given by Matlab)")
+ unset(_matlab_mex_extension)
+endif()
+
+
+if(MATLAB_FIND_DEBUG)
+ message(STATUS "[MATLAB] [DEBUG]_matlab_lib_prefix_for_search = ${_matlab_lib_prefix_for_search} | _matlab_lib_dir_for_search = ${_matlab_lib_dir_for_search}")
+endif()
+
+
+
+# internal
+# This small stub around find_library is to prevent any pollution of CMAKE_FIND_LIBRARY_PREFIXES in the global scope.
+# This is the function to be used below instead of the find_library directives.
+function(_Matlab_find_library _matlab_library_prefix)
+ set(CMAKE_FIND_LIBRARY_PREFIXES ${CMAKE_FIND_LIBRARY_PREFIXES} ${_matlab_library_prefix})
+ find_library(${ARGN})
+endfunction()
+
+
+set(_matlab_required_variables)
+
+# Order is as follow:
+# - unconditionally required libraries/headers first
+# - then library components
+# - then program components
+
+# the MEX library/header are required
+find_path(
+ Matlab_INCLUDE_DIRS
+ mex.h
+ PATHS ${MATLAB_INCLUDE_DIR_TO_LOOK}
+ NO_DEFAULT_PATH
+ )
+list(APPEND _matlab_required_variables Matlab_INCLUDE_DIRS)
+
+_Matlab_find_library(
+ ${_matlab_lib_prefix_for_search}
+ Matlab_MEX_LIBRARY
+ mex
+ PATHS ${_matlab_lib_dir_for_search}
+ NO_DEFAULT_PATH
+)
+list(APPEND _matlab_required_variables Matlab_MEX_LIBRARY)
+
+# the MEX extension is required
+list(APPEND _matlab_required_variables Matlab_MEX_EXTENSION)
+
+# the matlab root is required
+list(APPEND _matlab_required_variables Matlab_ROOT_DIR)
+
+# The MX library is required
+_Matlab_find_library(
+ ${_matlab_lib_prefix_for_search}
+ Matlab_MX_LIBRARY
+ mx
+ PATHS ${_matlab_lib_dir_for_search}
+ NO_DEFAULT_PATH
+)
+list(APPEND _matlab_required_variables Matlab_MX_LIBRARY)
+if(Matlab_MX_LIBRARY)
+ set(Matlab_MX_LIBRARY_FOUND TRUE)
+endif()
+
+if(Matlab_HAS_CPP_API)
+
+ # The MatlabEngine library is required for R2018a+
+ _Matlab_find_library(
+ ${_matlab_lib_prefix_for_search}
+ Matlab_ENGINE_LIBRARY
+ MatlabEngine
+ PATHS ${_matlab_lib_dir_for_search}
+ DOC "MatlabEngine Library"
+ NO_DEFAULT_PATH
+ )
+ list(APPEND _matlab_required_variables Matlab_ENGINE_LIBRARY)
+ if(Matlab_ENGINE_LIBRARY)
+ set(Matlab_ENGINE_LIBRARY_FOUND TRUE)
+ endif()
+
+ # The MatlabDataArray library is required for R2018a+
+ _Matlab_find_library(
+ ${_matlab_lib_prefix_for_search}
+ Matlab_DATAARRAY_LIBRARY
+ MatlabDataArray
+ PATHS ${_matlab_lib_dir_for_search}
+ DOC "MatlabDataArray Library"
+ NO_DEFAULT_PATH
+ )
+ list(APPEND _matlab_required_variables Matlab_DATAARRAY_LIBRARY)
+ if(Matlab_DATAARRAY_LIBRARY)
+ set(Matlab_DATAARRAY_LIBRARY_FOUND TRUE)
+ endif()
+
+endif()
+
+# Component ENG library
+if("ENG_LIBRARY" IN_LIST Matlab_FIND_COMPONENTS)
+ _Matlab_find_library(
+ ${_matlab_lib_prefix_for_search}
+ Matlab_ENG_LIBRARY
+ eng
+ PATHS ${_matlab_lib_dir_for_search}
+ NO_DEFAULT_PATH
+ )
+ if(Matlab_ENG_LIBRARY)
+ set(Matlab_ENG_LIBRARY_FOUND TRUE)
+ endif()
+endif()
+
+# Component MAT library
+if("MAT_LIBRARY" IN_LIST Matlab_FIND_COMPONENTS)
+ _Matlab_find_library(
+ ${_matlab_lib_prefix_for_search}
+ Matlab_MAT_LIBRARY
+ mat
+ PATHS ${_matlab_lib_dir_for_search}
+ NO_DEFAULT_PATH
+ )
+ if(Matlab_MAT_LIBRARY)
+ set(Matlab_MAT_LIBRARY_FOUND TRUE)
+ endif()
+endif()
+
+# Component Simulink
+if("SIMULINK" IN_LIST Matlab_FIND_COMPONENTS)
+ find_path(
+ Matlab_SIMULINK_INCLUDE_DIR
+ simstruc.h
+ PATHS "${Matlab_ROOT_DIR}/simulink/include"
+ NO_DEFAULT_PATH
+ )
+ if(Matlab_SIMULINK_INCLUDE_DIR)
+ set(Matlab_SIMULINK_FOUND TRUE)
+ list(APPEND Matlab_INCLUDE_DIRS "${Matlab_SIMULINK_INCLUDE_DIR}")
+ endif()
+endif()
+
+# component Matlab program
+if("MAIN_PROGRAM" IN_LIST Matlab_FIND_COMPONENTS)
+ find_program(
+ Matlab_MAIN_PROGRAM
+ matlab
+ PATHS ${Matlab_ROOT_DIR} ${Matlab_ROOT_DIR}/bin
+ DOC "Matlab main program"
+ NO_DEFAULT_PATH
+ )
+ if(Matlab_MAIN_PROGRAM)
+ set(Matlab_MAIN_PROGRAM_FOUND TRUE)
+ endif()
+endif()
+
+# component Mex Compiler
+if("MEX_COMPILER" IN_LIST Matlab_FIND_COMPONENTS)
+ find_program(
+ Matlab_MEX_COMPILER
+ "mex"
+ PATHS ${Matlab_BINARIES_DIR}
+ DOC "Matlab MEX compiler"
+ NO_DEFAULT_PATH
+ )
+ if(Matlab_MEX_COMPILER)
+ set(Matlab_MEX_COMPILER_FOUND TRUE)
+ endif()
+endif()
+
+# component MCC Compiler
+if("MCC_COMPILER" IN_LIST Matlab_FIND_COMPONENTS)
+ find_program(
+ Matlab_MCC_COMPILER
+ "mcc"
+ PATHS ${Matlab_BINARIES_DIR}
+ DOC "Matlab MCC compiler"
+ NO_DEFAULT_PATH
+ )
+ if(Matlab_MCC_COMPILER)
+ set(Matlab_MCC_COMPILER_FOUND TRUE)
+ endif()
+endif()
+
+set(Matlab_LIBRARIES
+ ${Matlab_MEX_LIBRARY} ${Matlab_MX_LIBRARY}
+ ${Matlab_ENG_LIBRARY} ${Matlab_MAT_LIBRARY}
+ ${Matlab_DATAARRAY_LIBRARY} ${Matlab_ENGINE_LIBRARY})
+
+find_package_handle_standard_args(
+ Matlab
+ FOUND_VAR Matlab_FOUND
+ REQUIRED_VARS ${_matlab_required_variables}
+ VERSION_VAR Matlab_VERSION_STRING
+ HANDLE_COMPONENTS)
+
+unset(_matlab_required_variables)
+unset(_matlab_bin_prefix)
+unset(_matlab_bin_suffix_32bits)
+unset(_matlab_bin_suffix_64bits)
+unset(_matlab_current_suffix)
+unset(_matlab_lib_dir_for_search)
+unset(_matlab_lib_prefix_for_search)
+
+if(Matlab_INCLUDE_DIRS AND Matlab_LIBRARIES)
+ mark_as_advanced(
+ Matlab_MEX_LIBRARY
+ Matlab_MX_LIBRARY
+ Matlab_ENG_LIBRARY
+ Matlab_ENGINE_LIBRARY
+ Matlab_DATAARRAY_LIBRARY
+ Matlab_MAT_LIBRARY
+ Matlab_INCLUDE_DIRS
+ Matlab_FOUND
+ Matlab_MAIN_PROGRAM
+ Matlab_MEXEXTENSIONS_PROG
+ Matlab_MEX_EXTENSION
+ )
+endif()
+
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FindMotif.cmake b/share/cmake-3.17/Modules/FindMotif.cmake
index 4f7080a..4f7080a 100644
--- a/share/cmake-3.16/Modules/FindMotif.cmake
+++ b/share/cmake-3.17/Modules/FindMotif.cmake
diff --git a/share/cmake-3.16/Modules/FindODBC.cmake b/share/cmake-3.17/Modules/FindODBC.cmake
index 3f710db..3f710db 100644
--- a/share/cmake-3.16/Modules/FindODBC.cmake
+++ b/share/cmake-3.17/Modules/FindODBC.cmake
diff --git a/share/cmake-3.17/Modules/FindOpenACC.cmake b/share/cmake-3.17/Modules/FindOpenACC.cmake
new file mode 100644
index 0000000..398dcf5
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindOpenACC.cmake
@@ -0,0 +1,284 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindOpenACC
+-----------
+
+Detect OpenACC support by the compiler.
+
+This module can be used to detect OpenACC support in a compiler.
+If the compiler supports OpenACC, the flags required to compile with
+OpenACC support are returned in variables for the different languages.
+Currently, only PGI, GNU and Cray compilers are supported.
+
+Variables
+^^^^^^^^^
+
+This module will set the following variables per language in your
+project, where ``<lang>`` is one of C, CXX, or Fortran:
+
+``OpenACC_<lang>_FOUND``
+ Variable indicating if OpenACC support for ``<lang>`` was detected.
+``OpenACC_<lang>_FLAGS``
+ OpenACC compiler flags for ``<lang>``, separated by spaces.
+``OpenACC_<lang>_OPTIONS``
+ OpenACC compiler flags for ``<lang>``, as a list. Suitable for usage
+ with target_compile_options or target_link_options.
+
+Additionally, the module provides :prop_tgt:`IMPORTED` targets:
+
+``OpenACC::OpenACC_<lang>``
+ Target for using OpenACC from ``<lang>``.
+
+The module will also try to provide the OpenACC version variables:
+
+``OpenACC_<lang>_SPEC_DATE``
+ Date of the OpenACC specification implemented by the ``<lang>`` compiler.
+``OpenACC_<lang>_VERSION_MAJOR``
+ Major version of OpenACC implemented by the ``<lang>`` compiler.
+``OpenACC_<lang>_VERSION_MINOR``
+ Minor version of OpenACC implemented by the ``<lang>`` compiler.
+``OpenACC_<lang>_VERSION``
+ OpenACC version implemented by the ``<lang>`` compiler.
+
+The specification date is formatted as given in the OpenACC standard:
+``yyyymm`` where ``yyyy`` and ``mm`` represents the year and month of
+the OpenACC specification implemented by the ``<lang>`` compiler.
+
+Input Variables
+^^^^^^^^^^^^^^^
+
+``OpenACC_ACCEL_TARGET=<target>``
+If set, will the correct target accelerator flag set to the <target> will
+be returned with OpenACC_<lang>_FLAGS.
+#]=======================================================================]
+
+set(OpenACC_C_CXX_TEST_SOURCE
+"
+int main(){
+#ifdef _OPENACC
+ return 0;
+#else
+ breaks_on_purpose
+#endif
+}
+"
+)
+set(OpenACC_Fortran_TEST_SOURCE
+"
+program test
+#ifndef _OPENACC
+ breaks_on_purpose
+#endif
+endprogram test
+"
+)
+set(OpenACC_C_CXX_CHECK_VERSION_SOURCE
+"
+#include <stdio.h>
+const char accver_str[] = { 'I', 'N', 'F', 'O', ':', 'O', 'p', 'e', 'n', 'A',
+ 'C', 'C', '-', 'd', 'a', 't', 'e', '[',
+ ('0' + ((_OPENACC/100000)%10)),
+ ('0' + ((_OPENACC/10000)%10)),
+ ('0' + ((_OPENACC/1000)%10)),
+ ('0' + ((_OPENACC/100)%10)),
+ ('0' + ((_OPENACC/10)%10)),
+ ('0' + ((_OPENACC/1)%10)),
+ ']', '\\0' };
+int main()
+{
+ puts(accver_str);
+ return 0;
+}
+")
+set(OpenACC_Fortran_CHECK_VERSION_SOURCE
+"
+ program acc_ver
+ implicit none
+ integer, parameter :: zero = ichar('0')
+ character, dimension(25), parameter :: accver_str =&
+ (/ 'I', 'N', 'F', 'O', ':', 'O', 'p', 'e', 'n', 'A', 'C', 'C', '-',&
+ 'd', 'a', 't', 'e', '[',&
+ char(zero + mod(_OPENACC/100000, 10)),&
+ char(zero + mod(_OPENACC/10000, 10)),&
+ char(zero + mod(_OPENACC/1000, 10)),&
+ char(zero + mod(_OPENACC/100, 10)),&
+ char(zero + mod(_OPENACC/10, 10)),&
+ char(zero + mod(_OPENACC/1, 10)), ']' /)
+ print *, accver_str
+ end program acc_ver
+"
+)
+
+
+function(_OPENACC_WRITE_SOURCE_FILE LANG SRC_FILE_CONTENT_VAR SRC_FILE_NAME SRC_FILE_FULLPATH)
+ set(WORK_DIR ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindOpenACC)
+ if("${LANG}" STREQUAL "C")
+ set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.c")
+ file(WRITE "${SRC_FILE}" "${OpenACC_C_CXX_${SRC_FILE_CONTENT_VAR}}")
+ elseif("${LANG}" STREQUAL "CXX")
+ set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.cpp")
+ file(WRITE "${SRC_FILE}" "${OpenACC_C_CXX_${SRC_FILE_CONTENT_VAR}}")
+ elseif("${LANG}" STREQUAL "Fortran")
+ set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.F90")
+ file(WRITE "${SRC_FILE}_in" "${OpenACC_Fortran_${SRC_FILE_CONTENT_VAR}}")
+ configure_file("${SRC_FILE}_in" "${SRC_FILE}" @ONLY)
+ endif()
+ set(${SRC_FILE_FULLPATH} "${SRC_FILE}" PARENT_SCOPE)
+endfunction()
+
+
+function(_OPENACC_GET_FLAGS_CANDIDATE LANG FLAG_VAR)
+ set(ACC_FLAG_PGI "-acc")
+ set(ACC_FLAG_GNU "-fopenacc")
+ set(ACC_FLAG_Cray "-h acc")
+
+ if(DEFINED ACC_FLAG_${CMAKE_${LANG}_COMPILER_ID})
+ set("${FLAG_VAR}" "${ACC_FLAG_${CMAKE_${LANG}_COMPILER_ID}}" PARENT_SCOPE)
+ else()
+ # Fall back to a few common flags.
+ set("${FLAG_VAR}" ${ACC_FLAG_GNU} ${ACC_FLAG_PGI})
+ endif()
+
+endfunction()
+
+
+function(_OPENACC_GET_ACCEL_TARGET_FLAG LANG TARGET FLAG_VAR)
+ # Find target accelerator flags.
+ set(ACC_TARGET_FLAG_PGI "-ta")
+ if(DEFINED ACC_TARGET_FLAG_${CMAKE_${LANG}_COMPILER_ID})
+ set("${FLAG_VAR}" "${ACC_TARGET_FLAG_${CMAKE_${LANG}_COMPILER_ID}}=${TARGET}" PARENT_SCOPE)
+ endif()
+endfunction()
+
+
+function(_OPENACC_GET_VERBOSE_FLAG LANG FLAG_VAR)
+ # Find compiler's verbose flag for OpenACC.
+ set(ACC_VERBOSE_FLAG_PGI "-Minfo=accel")
+ if(DEFINED ACC_VERBOSE_FLAG_${CMAKE_${LANG}_COMPILER_ID})
+ set("${FLAG_VAR}" "${ACC_VERBOSE_FLAG_${CMAKE_${LANG}_COMPILER_ID}}" PARENT_SCOPE)
+ endif()
+endfunction()
+
+
+function(_OPENACC_GET_FLAGS LANG FLAG_VAR)
+ set(FLAG_CANDIDATES "")
+ _OPENACC_GET_FLAGS_CANDIDATE("${LANG}" FLAG_CANDIDATES)
+ _OPENACC_WRITE_SOURCE_FILE("${LANG}" "TEST_SOURCE" OpenACCTryFlag _OPENACC_TEST_SRC)
+
+ foreach(FLAG IN LISTS FLAG_CANDIDATES)
+ try_compile(OpenACC_FLAG_TEST_RESULT ${CMAKE_BINARY_DIR} ${_OPENACC_TEST_SRC}
+ CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${FLAG}"
+ OUTPUT_VARIABLE OpenACC_TRY_COMPILE_OUTPUT
+ )
+ if(OpenACC_FLAG_TEST_RESULT)
+ set("${FLAG_VAR}" "${FLAG}")
+ if(DEFINED OpenACC_ACCEL_TARGET)
+ _OPENACC_GET_ACCEL_TARGET_FLAG("${LANG}" "${OpenACC_ACCEL_TARGET}" TARGET_FLAG)
+ string(APPEND "${FLAG_VAR}" " ${TARGET_FLAG}")
+ endif()
+
+ if(CMAKE_VERBOSE_MAKEFILE)
+ # -Minfo=accel prints out OpenACC's messages on optimizations.
+ _OPENACC_GET_VERBOSE_FLAG("${LANG}" OpenACC_VERBOSE_FLAG)
+ string(APPEND "${FLAG_VAR}" " ${OpenACC_VERBOSE_FLAG}")
+ endif()
+ set("${FLAG_VAR}" "${${FLAG_VAR}}" PARENT_SCOPE)
+ break()
+ endif()
+ endforeach()
+
+endfunction()
+
+
+function(_OPENACC_GET_SPEC_DATE LANG SPEC_DATE)
+ _OPENACC_WRITE_SOURCE_FILE("${LANG}" "CHECK_VERSION_SOURCE" OpenACCCheckVersion _OPENACC_TEST_SRC)
+
+ set(BIN_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindOpenACC/accver_${LANG}.bin")
+ try_compile(OpenACC_SPECTEST_${LANG} "${CMAKE_BINARY_DIR}" "${_OPENACC_TEST_SRC}"
+ CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OpenACC_${LANG}_FLAGS}"
+ COPY_FILE ${BIN_FILE}
+ OUTPUT_VARIABLE OUTPUT)
+
+ if(${OpenACC_SPECTEST_${LANG}})
+ file(STRINGS ${BIN_FILE} specstr LIMIT_COUNT 1 REGEX "INFO:OpenACC-date")
+ set(regex_spec_date ".*INFO:OpenACC-date\\[0*([^]]*)\\].*")
+ if("${specstr}" MATCHES "${regex_spec_date}")
+ set(${SPEC_DATE} "${CMAKE_MATCH_1}" PARENT_SCOPE)
+ endif()
+ endif()
+endfunction()
+
+
+macro(_OPENACC_SET_VERSION_BY_SPEC_DATE LANG)
+ set(OpenACC_SPEC_DATE_MAP
+ # Combined versions, 2.5 onwards
+ "201510=2.5"
+ # 2013 08 is the corrected version.
+ "201308=2.0"
+ "201306=2.0"
+ "201111=1.0"
+ )
+
+ string(REGEX MATCHALL "${OpenACC_${LANG}_SPEC_DATE}=([0-9]+)\\.([0-9]+)" _version_match "${OpenACC_SPEC_DATE_MAP}")
+ if(NOT _version_match STREQUAL "")
+ set(OpenACC_${LANG}_VERSION_MAJOR ${CMAKE_MATCH_1})
+ set(OpenACC_${LANG}_VERSION_MINOR ${CMAKE_MATCH_2})
+ set(OpenACC_${LANG}_VERSION "${OpenACC_${LANG}_VERSION_MAJOR}.${OpenACC_${LANG}_VERSION_MINOR}")
+ else()
+ unset(OpenACC_${LANG}_VERSION_MAJOR)
+ unset(OpenACC_${LANG}_VERSION_MINOR)
+ unset(OpenACC_${LANG}_VERSION)
+ endif()
+ unset(_version_match)
+ unset(OpenACC_SPEC_DATE_MAP)
+endmacro()
+
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+foreach (LANG IN ITEMS C CXX Fortran)
+ if(CMAKE_${LANG}_COMPILER_LOADED)
+ set(OpenACC_${LANG}_FIND_QUIETLY ${OpenACC_FIND_QUIETLY})
+ set(OpenACC_${LANG}_FIND_REQUIRED ${OpenACC_FIND_REQUIRED})
+ set(OpenACC_${LANG}_FIND_VERSION ${OpenACC_FIND_VERSION})
+ set(OpenACC_${LANG}_FIND_VERSION_EXACT ${OpenACC_FIND_VERSION_EXACT})
+
+ if(NOT DEFINED OpenACC_${LANG}_FLAGS)
+ _OPENACC_GET_FLAGS("${LANG}" OpenACC_${LANG}_FLAGS)
+ endif()
+ if(NOT DEFINED OpenACC_${LANG}_OPTIONS)
+ separate_arguments(OpenACC_${LANG}_OPTIONS NATIVE_COMMAND "${OpenACC_${LANG}_FLAGS}")
+ endif()
+ _OPENACC_GET_SPEC_DATE("${LANG}" OpenACC_${LANG}_SPEC_DATE)
+ _OPENACC_SET_VERSION_BY_SPEC_DATE("${LANG}")
+
+ find_package_handle_standard_args(OpenACC_${LANG}
+ NAME_MISMATCHED
+ REQUIRED_VARS OpenACC_${LANG}_FLAGS
+ VERSION_VAR OpenACC_${LANG}_VERSION
+ )
+ endif()
+endforeach()
+
+foreach (LANG IN ITEMS C CXX Fortran)
+ if(OpenACC_${LANG}_FOUND AND NOT TARGET OpenACC::OpenACC_${LANG})
+ add_library(OpenACC::OpenACC_${LANG} INTERFACE IMPORTED)
+ endif()
+ if(OpenACC_${LANG}_LIBRARIES)
+ set_property(TARGET OpenACC::OpenACC_${LANG} PROPERTY
+ INTERFACE_LINK_LIBRARIES "${OpenACC_${LANG}_LIBRARIES}")
+ endif()
+ if(OpenACC_${LANG}_FLAGS)
+ set_property(TARGET OpenACC::OpenACC_${LANG} PROPERTY
+ INTERFACE_COMPILE_OPTIONS "$<$<COMPILE_LANGUAGE:${LANG}>:${OpenACC_${LANG}_OPTIONS}>")
+ set_property(TARGET OpenACC::OpenACC_${LANG} PROPERTY
+ INTERFACE_LINK_OPTIONS "$<$<COMPILE_LANGUAGE:${LANG}>:${OpenACC_${LANG}_OPTIONS}>")
+ unset(_OpenACC_${LANG}_OPTIONS)
+ endif()
+endforeach()
+
+unset(OpenACC_C_CXX_TEST_SOURCE)
+unset(OpenACC_Fortran_TEST_SOURCE)
+unset(OpenACC_C_CXX_CHECK_VERSION_SOURCE)
+unset(OpenACC_Fortran_CHECK_VERSION_SOURCE)
diff --git a/share/cmake-3.16/Modules/FindOpenAL.cmake b/share/cmake-3.17/Modules/FindOpenAL.cmake
index 27dcaf5..27dcaf5 100644
--- a/share/cmake-3.16/Modules/FindOpenAL.cmake
+++ b/share/cmake-3.17/Modules/FindOpenAL.cmake
diff --git a/share/cmake-3.16/Modules/FindOpenCL.cmake b/share/cmake-3.17/Modules/FindOpenCL.cmake
index 9891724..9891724 100644
--- a/share/cmake-3.16/Modules/FindOpenCL.cmake
+++ b/share/cmake-3.17/Modules/FindOpenCL.cmake
diff --git a/share/cmake-3.17/Modules/FindOpenGL.cmake b/share/cmake-3.17/Modules/FindOpenGL.cmake
new file mode 100644
index 0000000..74392da
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindOpenGL.cmake
@@ -0,0 +1,566 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindOpenGL
+----------
+
+FindModule for OpenGL and OpenGL Utility Library (GLU).
+
+Optional COMPONENTS
+^^^^^^^^^^^^^^^^^^^
+
+This module respects several optional COMPONENTS: ``EGL``, ``GLX``, and
+``OpenGL``. There are corresponding import targets for each of these flags.
+
+IMPORTED Targets
+^^^^^^^^^^^^^^^^
+
+This module defines the :prop_tgt:`IMPORTED` targets:
+
+``OpenGL::GL``
+ Defined to the platform-specific OpenGL libraries if the system has OpenGL.
+``OpenGL::OpenGL``
+ Defined to libOpenGL if the system is GLVND-based.
+``OpenGL::GLU``
+ Defined if the system has OpenGL Utility Library (GLU).
+``OpenGL::GLX``
+ Defined if the system has OpenGL Extension to the X Window System (GLX).
+``OpenGL::EGL``
+ Defined if the system has EGL.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module sets the following variables:
+
+``OPENGL_FOUND``
+ True, if the system has OpenGL and all components are found.
+``OPENGL_XMESA_FOUND``
+ True, if the system has XMESA.
+``OPENGL_GLU_FOUND``
+ True, if the system has GLU.
+``OpenGL_OpenGL_FOUND``
+ True, if the system has an OpenGL library.
+``OpenGL_GLX_FOUND``
+ True, if the system has GLX.
+``OpenGL_EGL_FOUND``
+ True, if the system has EGL.
+``OPENGL_INCLUDE_DIR``
+ Path to the OpenGL include directory.
+``OPENGL_EGL_INCLUDE_DIRS``
+ Path to the EGL include directory.
+``OPENGL_LIBRARIES``
+ Paths to the OpenGL library, windowing system libraries, and GLU libraries.
+ On Linux, this assumes GLX and is never correct for EGL-based targets.
+ Clients are encouraged to use the ``OpenGL::*`` import targets instead.
+
+Cache variables
+^^^^^^^^^^^^^^^
+
+The following cache variables may also be set:
+
+``OPENGL_egl_LIBRARY``
+ Path to the EGL library.
+``OPENGL_glu_LIBRARY``
+ Path to the GLU library.
+``OPENGL_glx_LIBRARY``
+ Path to the GLVND 'GLX' library.
+``OPENGL_opengl_LIBRARY``
+ Path to the GLVND 'OpenGL' library
+``OPENGL_gl_LIBRARY``
+ Path to the OpenGL library. New code should prefer the ``OpenGL::*`` import
+ targets.
+
+Linux-specific
+^^^^^^^^^^^^^^
+
+Some Linux systems utilize GLVND as a new ABI for OpenGL. GLVND separates
+context libraries from OpenGL itself; OpenGL lives in "libOpenGL", and
+contexts are defined in "libGLX" or "libEGL". GLVND is currently the only way
+to get OpenGL 3+ functionality via EGL in a manner portable across vendors.
+Projects may use GLVND explicitly with target ``OpenGL::OpenGL`` and either
+``OpenGL::GLX`` or ``OpenGL::EGL``.
+
+Projects may use the ``OpenGL::GL`` target (or ``OPENGL_LIBRARIES`` variable)
+to use legacy GL interfaces. These will use the legacy GL library located
+by ``OPENGL_gl_LIBRARY``, if available. If ``OPENGL_gl_LIBRARY`` is empty or
+not found and GLVND is available, the ``OpenGL::GL`` target will use GLVND
+``OpenGL::OpenGL`` and ``OpenGL::GLX`` (and the ``OPENGL_LIBRARIES``
+variable will use the corresponding libraries). Thus, for non-EGL-based
+Linux targets, the ``OpenGL::GL`` target is most portable.
+
+A ``OpenGL_GL_PREFERENCE`` variable may be set to specify the preferred way
+to provide legacy GL interfaces in case multiple choices are available.
+The value may be one of:
+
+``GLVND``
+ If the GLVND OpenGL and GLX libraries are available, prefer them.
+ This forces ``OPENGL_gl_LIBRARY`` to be empty.
+ This is the default if components were requested (since components
+ correspond to GLVND libraries) or if policy :policy:`CMP0072` is
+ set to ``NEW``.
+
+``LEGACY``
+ Prefer to use the legacy libGL library, if available.
+ This is the default if no components were requested and
+ policy :policy:`CMP0072` is not set to ``NEW``.
+
+For EGL targets the client must rely on GLVND support on the user's system.
+Linking should use the ``OpenGL::OpenGL OpenGL::EGL`` targets. Using GLES*
+libraries is theoretically possible in place of ``OpenGL::OpenGL``, but this
+module does not currently support that; contributions welcome.
+
+``OPENGL_egl_LIBRARY`` and ``OPENGL_EGL_INCLUDE_DIRS`` are defined in the case of
+GLVND. For non-GLVND Linux and other systems these are left undefined.
+
+macOS-Specific
+^^^^^^^^^^^^^^
+
+On OSX FindOpenGL defaults to using the framework version of OpenGL. People
+will have to change the cache values of OPENGL_glu_LIBRARY and
+OPENGL_gl_LIBRARY to use OpenGL with X11 on OSX.
+#]=======================================================================]
+
+set(_OpenGL_REQUIRED_VARS OPENGL_gl_LIBRARY)
+
+# Provide OPENGL_USE_<C> variables for each component.
+foreach(component ${OpenGL_FIND_COMPONENTS})
+ string(TOUPPER ${component} _COMPONENT)
+ set(OPENGL_USE_${_COMPONENT} 1)
+endforeach()
+
+set(_OpenGL_CACHE_VARS)
+
+if (CYGWIN)
+ find_path(OPENGL_INCLUDE_DIR GL/gl.h )
+ list(APPEND _OpenGL_REQUIRED_VARS OPENGL_INCLUDE_DIR)
+
+ find_library(OPENGL_gl_LIBRARY opengl32 )
+ find_library(OPENGL_glu_LIBRARY glu32 )
+
+ list(APPEND _OpenGL_CACHE_VARS
+ OPENGL_INCLUDE_DIR
+ OPENGL_gl_LIBRARY
+ OPENGL_glu_LIBRARY
+ )
+elseif (WIN32)
+
+ if(BORLAND)
+ set (OPENGL_gl_LIBRARY import32 CACHE STRING "OpenGL library for win32")
+ set (OPENGL_glu_LIBRARY import32 CACHE STRING "GLU library for win32")
+ else()
+ set (OPENGL_gl_LIBRARY opengl32 CACHE STRING "OpenGL library for win32")
+ set (OPENGL_glu_LIBRARY glu32 CACHE STRING "GLU library for win32")
+ endif()
+
+ list(APPEND _OpenGL_CACHE_VARS
+ OPENGL_gl_LIBRARY
+ OPENGL_glu_LIBRARY
+ )
+elseif (APPLE)
+ # The OpenGL.framework provides both gl and glu
+ find_library(OPENGL_gl_LIBRARY OpenGL DOC "OpenGL library for OS X")
+ find_library(OPENGL_glu_LIBRARY OpenGL DOC
+ "GLU library for OS X (usually same as OpenGL library)")
+ find_path(OPENGL_INCLUDE_DIR OpenGL/gl.h DOC "Include for OpenGL on OS X")
+ list(APPEND _OpenGL_REQUIRED_VARS OPENGL_INCLUDE_DIR)
+
+ list(APPEND _OpenGL_CACHE_VARS
+ OPENGL_INCLUDE_DIR
+ OPENGL_gl_LIBRARY
+ OPENGL_glu_LIBRARY
+ )
+else()
+ if (CMAKE_SYSTEM_NAME MATCHES "HP-UX")
+ # Handle HP-UX cases where we only want to find OpenGL in either hpux64
+ # or hpux32 depending on if we're doing a 64 bit build.
+ if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ set(_OPENGL_LIB_PATH
+ /opt/graphics/OpenGL/lib/hpux32/)
+ else()
+ set(_OPENGL_LIB_PATH
+ /opt/graphics/OpenGL/lib/hpux64/
+ /opt/graphics/OpenGL/lib/pa20_64)
+ endif()
+ elseif(CMAKE_SYSTEM_NAME STREQUAL Haiku)
+ set(_OPENGL_LIB_PATH
+ /boot/develop/lib/x86)
+ set(_OPENGL_INCLUDE_PATH
+ /boot/develop/headers/os/opengl)
+ endif()
+
+ # The first line below is to make sure that the proper headers
+ # are used on a Linux machine with the NVidia drivers installed.
+ # They replace Mesa with NVidia's own library but normally do not
+ # install headers and that causes the linking to
+ # fail since the compiler finds the Mesa headers but NVidia's library.
+ # Make sure the NVIDIA directory comes BEFORE the others.
+ # - Atanas Georgiev <atanas@cs.columbia.edu>
+ find_path(OPENGL_INCLUDE_DIR GL/gl.h
+ /usr/share/doc/NVIDIA_GLX-1.0/include
+ /usr/openwin/share/include
+ /opt/graphics/OpenGL/include
+ ${_OPENGL_INCLUDE_PATH}
+ )
+ find_path(OPENGL_GLX_INCLUDE_DIR GL/glx.h ${_OPENGL_INCLUDE_PATH})
+ find_path(OPENGL_EGL_INCLUDE_DIR EGL/egl.h ${_OPENGL_INCLUDE_PATH})
+ find_path(OPENGL_xmesa_INCLUDE_DIR GL/xmesa.h
+ /usr/share/doc/NVIDIA_GLX-1.0/include
+ /usr/openwin/share/include
+ /opt/graphics/OpenGL/include
+ )
+ list(APPEND _OpenGL_CACHE_VARS
+ OPENGL_INCLUDE_DIR
+ OPENGL_GLX_INCLUDE_DIR
+ OPENGL_EGL_INCLUDE_DIR
+ OPENGL_xmesa_INCLUDE_DIR
+ )
+
+ # Search for the GLVND libraries. We do this regardless of COMPONENTS; we'll
+ # take into account the COMPONENTS logic later.
+ find_library(OPENGL_opengl_LIBRARY
+ NAMES OpenGL
+ PATHS ${_OPENGL_LIB_PATH}
+ )
+
+ find_library(OPENGL_glx_LIBRARY
+ NAMES GLX
+ PATHS ${_OPENGL_LIB_PATH}
+ PATH_SUFFIXES libglvnd
+ )
+
+ find_library(OPENGL_egl_LIBRARY
+ NAMES EGL
+ PATHS ${_OPENGL_LIB_PATH}
+ PATH_SUFFIXES libglvnd
+ )
+
+ find_library(OPENGL_glu_LIBRARY
+ NAMES GLU MesaGLU
+ PATHS ${OPENGL_gl_LIBRARY}
+ /opt/graphics/OpenGL/lib
+ /usr/openwin/lib
+ /usr/shlib
+ )
+
+ list(APPEND _OpenGL_CACHE_VARS
+ OPENGL_opengl_LIBRARY
+ OPENGL_glx_LIBRARY
+ OPENGL_egl_LIBRARY
+ OPENGL_glu_LIBRARY
+ )
+
+ set(_OpenGL_GL_POLICY_WARN 0)
+ if(NOT DEFINED OpenGL_GL_PREFERENCE)
+ set(OpenGL_GL_PREFERENCE "")
+ endif()
+ if(NOT OpenGL_GL_PREFERENCE STREQUAL "")
+ # A preference has been explicitly specified.
+ if(NOT OpenGL_GL_PREFERENCE MATCHES "^(GLVND|LEGACY)$")
+ message(FATAL_ERROR
+ "OpenGL_GL_PREFERENCE value '${OpenGL_GL_PREFERENCE}' not recognized. "
+ "Allowed values are 'GLVND' and 'LEGACY'."
+ )
+ endif()
+ elseif(OpenGL_FIND_COMPONENTS)
+ # No preference was explicitly specified, but the caller did request
+ # at least one GLVND component. Prefer GLVND for legacy GL.
+ set(OpenGL_GL_PREFERENCE "GLVND")
+ else()
+ # No preference was explicitly specified and no GLVND components were
+ # requested. Use a policy to choose the default.
+ cmake_policy(GET CMP0072 _OpenGL_GL_POLICY)
+ if("x${_OpenGL_GL_POLICY}x" STREQUAL "xNEWx")
+ set(OpenGL_GL_PREFERENCE "GLVND")
+ else()
+ set(OpenGL_GL_PREFERENCE "LEGACY")
+ if("x${_OpenGL_GL_POLICY}x" STREQUAL "xx")
+ set(_OpenGL_GL_POLICY_WARN 1)
+ endif()
+ endif()
+ unset(_OpenGL_GL_POLICY)
+ endif()
+
+ if("x${OpenGL_GL_PREFERENCE}x" STREQUAL "xGLVNDx" AND OPENGL_opengl_LIBRARY AND OPENGL_glx_LIBRARY)
+ # We can provide legacy GL using GLVND libraries.
+ # Do not use any legacy GL library.
+ set(OPENGL_gl_LIBRARY "")
+ else()
+ # We cannot provide legacy GL using GLVND libraries.
+ # Search for the legacy GL library.
+ find_library(OPENGL_gl_LIBRARY
+ NAMES GL MesaGL
+ PATHS /opt/graphics/OpenGL/lib
+ /usr/openwin/lib
+ /usr/shlib
+ ${_OPENGL_LIB_PATH}
+ PATH_SUFFIXES libglvnd
+ )
+ list(APPEND _OpenGL_CACHE_VARS OPENGL_gl_LIBRARY)
+ endif()
+
+ if(_OpenGL_GL_POLICY_WARN AND OPENGL_gl_LIBRARY AND OPENGL_opengl_LIBRARY AND OPENGL_glx_LIBRARY)
+ cmake_policy(GET_WARNING CMP0072 _cmp0072_warning)
+ message(AUTHOR_WARNING
+ "${_cmp0072_warning}\n"
+ "FindOpenGL found both a legacy GL library:\n"
+ " OPENGL_gl_LIBRARY: ${OPENGL_gl_LIBRARY}\n"
+ "and GLVND libraries for OpenGL and GLX:\n"
+ " OPENGL_opengl_LIBRARY: ${OPENGL_opengl_LIBRARY}\n"
+ " OPENGL_glx_LIBRARY: ${OPENGL_glx_LIBRARY}\n"
+ "OpenGL_GL_PREFERENCE has not been set to \"GLVND\" or \"LEGACY\", so for "
+ "compatibility with CMake 3.10 and below the legacy GL library will be used."
+ )
+ endif()
+ unset(_OpenGL_GL_POLICY_WARN)
+
+ # FPHSA cannot handle "this OR that is required", so we conditionally set what
+ # it must look for. First clear any previous config we might have done:
+ set(_OpenGL_REQUIRED_VARS)
+
+ # now we append the libraries as appropriate. The complicated logic
+ # basically comes down to "use libOpenGL when we can, and add in specific
+ # context mechanisms when requested, or we need them to preserve the previous
+ # default where glx is always available."
+ if((NOT OPENGL_USE_EGL AND
+ NOT OPENGL_opengl_LIBRARY AND
+ OPENGL_glx_LIBRARY AND
+ NOT OPENGL_gl_LIBRARY) OR
+ (NOT OPENGL_USE_EGL AND
+ NOT OPENGL_glx_LIBRARY AND
+ NOT OPENGL_gl_LIBRARY) OR
+ (NOT OPENGL_USE_EGL AND
+ OPENGL_opengl_LIBRARY AND
+ OPENGL_glx_LIBRARY) OR
+ ( OPENGL_USE_EGL))
+ list(APPEND _OpenGL_REQUIRED_VARS OPENGL_opengl_LIBRARY)
+ endif()
+
+ # GLVND GLX library. Preferred when available.
+ if((NOT OPENGL_USE_OPENGL AND
+ NOT OPENGL_USE_GLX AND
+ NOT OPENGL_USE_EGL AND
+ NOT OPENGL_glx_LIBRARY AND
+ NOT OPENGL_gl_LIBRARY) OR
+ ( OPENGL_USE_GLX AND
+ NOT OPENGL_USE_EGL AND
+ NOT OPENGL_glx_LIBRARY AND
+ NOT OPENGL_gl_LIBRARY) OR
+ (NOT OPENGL_USE_EGL AND
+ OPENGL_opengl_LIBRARY AND
+ OPENGL_glx_LIBRARY) OR
+ (OPENGL_USE_GLX AND OPENGL_USE_EGL))
+ list(APPEND _OpenGL_REQUIRED_VARS OPENGL_glx_LIBRARY)
+ endif()
+
+ # GLVND EGL library.
+ if(OPENGL_USE_EGL)
+ list(APPEND _OpenGL_REQUIRED_VARS OPENGL_egl_LIBRARY)
+ endif()
+
+ # Old-style "libGL" library: used as a fallback when GLVND isn't available.
+ if((NOT OPENGL_USE_EGL AND
+ NOT OPENGL_opengl_LIBRARY AND
+ OPENGL_glx_LIBRARY AND
+ OPENGL_gl_LIBRARY) OR
+ (NOT OPENGL_USE_EGL AND
+ NOT OPENGL_glx_LIBRARY AND
+ OPENGL_gl_LIBRARY))
+ list(APPEND _OpenGL_REQUIRED_VARS OPENGL_gl_LIBRARY)
+ endif()
+
+ # We always need the 'gl.h' include dir.
+ list(APPEND _OpenGL_REQUIRED_VARS OPENGL_INCLUDE_DIR)
+
+ unset(_OPENGL_INCLUDE_PATH)
+ unset(_OPENGL_LIB_PATH)
+
+ find_library(OPENGL_glu_LIBRARY
+ NAMES GLU MesaGLU
+ PATHS ${OPENGL_gl_LIBRARY}
+ /opt/graphics/OpenGL/lib
+ /usr/openwin/lib
+ /usr/shlib
+ )
+endif ()
+
+if(OPENGL_xmesa_INCLUDE_DIR)
+ set( OPENGL_XMESA_FOUND "YES" )
+else()
+ set( OPENGL_XMESA_FOUND "NO" )
+endif()
+
+if(OPENGL_glu_LIBRARY)
+ set( OPENGL_GLU_FOUND "YES" )
+else()
+ set( OPENGL_GLU_FOUND "NO" )
+endif()
+
+# OpenGL_OpenGL_FOUND is a bit unique in that it is okay if /either/ libOpenGL
+# or libGL is found.
+# Using libGL with libEGL is never okay, though; we handle that case later.
+if(NOT OPENGL_opengl_LIBRARY AND NOT OPENGL_gl_LIBRARY)
+ set(OpenGL_OpenGL_FOUND FALSE)
+else()
+ set(OpenGL_OpenGL_FOUND TRUE)
+endif()
+
+if(OPENGL_glx_LIBRARY AND OPENGL_GLX_INCLUDE_DIR)
+ set(OpenGL_GLX_FOUND TRUE)
+else()
+ set(OpenGL_GLX_FOUND FALSE)
+endif()
+
+if(OPENGL_egl_LIBRARY AND OPENGL_EGL_INCLUDE_DIR)
+ set(OpenGL_EGL_FOUND TRUE)
+else()
+ set(OpenGL_EGL_FOUND FALSE)
+endif()
+
+# User-visible names should be plural.
+if(OPENGL_EGL_INCLUDE_DIR)
+ set(OPENGL_EGL_INCLUDE_DIRS ${OPENGL_EGL_INCLUDE_DIR})
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenGL REQUIRED_VARS ${_OpenGL_REQUIRED_VARS}
+ HANDLE_COMPONENTS)
+unset(_OpenGL_REQUIRED_VARS)
+
+# OpenGL:: targets
+if(OPENGL_FOUND)
+ # ::OpenGL is a GLVND library, and thus Linux-only: we don't bother checking
+ # for a framework version of this library.
+ if(OPENGL_opengl_LIBRARY AND NOT TARGET OpenGL::OpenGL)
+ if(IS_ABSOLUTE "${OPENGL_opengl_LIBRARY}")
+ add_library(OpenGL::OpenGL UNKNOWN IMPORTED)
+ set_target_properties(OpenGL::OpenGL PROPERTIES IMPORTED_LOCATION
+ "${OPENGL_opengl_LIBRARY}")
+ else()
+ add_library(OpenGL::OpenGL INTERFACE IMPORTED)
+ set_target_properties(OpenGL::OpenGL PROPERTIES IMPORTED_LIBNAME
+ "${OPENGL_opengl_LIBRARY}")
+ endif()
+ set_target_properties(OpenGL::OpenGL PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
+ "${OPENGL_INCLUDE_DIR}")
+ endif()
+
+ # ::GLX is a GLVND library, and thus Linux-only: we don't bother checking
+ # for a framework version of this library.
+ if(OpenGL_GLX_FOUND AND NOT TARGET OpenGL::GLX)
+ if(IS_ABSOLUTE "${OPENGL_glx_LIBRARY}")
+ add_library(OpenGL::GLX UNKNOWN IMPORTED)
+ set_target_properties(OpenGL::GLX PROPERTIES IMPORTED_LOCATION
+ "${OPENGL_glx_LIBRARY}")
+ else()
+ add_library(OpenGL::GLX INTERFACE IMPORTED)
+ set_target_properties(OpenGL::GLX PROPERTIES IMPORTED_LIBNAME
+ "${OPENGL_glx_LIBRARY}")
+ endif()
+ set_target_properties(OpenGL::GLX PROPERTIES INTERFACE_LINK_LIBRARIES
+ OpenGL::OpenGL)
+ set_target_properties(OpenGL::GLX PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
+ "${OPENGL_GLX_INCLUDE_DIR}")
+ endif()
+
+ if(OPENGL_gl_LIBRARY AND NOT TARGET OpenGL::GL)
+ # A legacy GL library is available, so use it for the legacy GL target.
+ if(IS_ABSOLUTE "${OPENGL_gl_LIBRARY}")
+ add_library(OpenGL::GL UNKNOWN IMPORTED)
+ if(OPENGL_gl_LIBRARY MATCHES "/([^/]+)\\.framework$")
+ set(_gl_fw "${OPENGL_gl_LIBRARY}/${CMAKE_MATCH_1}")
+ if(EXISTS "${_gl_fw}.tbd")
+ string(APPEND _gl_fw ".tbd")
+ endif()
+ set_target_properties(OpenGL::GL PROPERTIES
+ IMPORTED_LOCATION "${_gl_fw}")
+ else()
+ set_target_properties(OpenGL::GL PROPERTIES
+ IMPORTED_LOCATION "${OPENGL_gl_LIBRARY}")
+ endif()
+ else()
+ add_library(OpenGL::GL INTERFACE IMPORTED)
+ set_target_properties(OpenGL::GL PROPERTIES
+ IMPORTED_LIBNAME "${OPENGL_gl_LIBRARY}")
+ endif()
+ set_target_properties(OpenGL::GL PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}")
+ elseif(NOT TARGET OpenGL::GL AND TARGET OpenGL::OpenGL AND TARGET OpenGL::GLX)
+ # A legacy GL library is not available, but we can provide the legacy GL
+ # target using GLVND OpenGL+GLX.
+ add_library(OpenGL::GL INTERFACE IMPORTED)
+ set_target_properties(OpenGL::GL PROPERTIES INTERFACE_LINK_LIBRARIES
+ OpenGL::OpenGL)
+ set_property(TARGET OpenGL::GL APPEND PROPERTY INTERFACE_LINK_LIBRARIES
+ OpenGL::GLX)
+ set_target_properties(OpenGL::GL PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
+ "${OPENGL_INCLUDE_DIR}")
+ endif()
+
+ # ::EGL is a GLVND library, and thus Linux-only: we don't bother checking
+ # for a framework version of this library.
+ # Note we test for OpenGL::OpenGL as a target. When this module is updated to
+ # support GLES, we would additionally want to check for the hypothetical GLES
+ # target and enable EGL if either ::GLES or ::OpenGL is created.
+ if(TARGET OpenGL::OpenGL AND OpenGL_EGL_FOUND AND NOT TARGET OpenGL::EGL)
+ if(IS_ABSOLUTE "${OPENGL_egl_LIBRARY}")
+ add_library(OpenGL::EGL UNKNOWN IMPORTED)
+ set_target_properties(OpenGL::EGL PROPERTIES IMPORTED_LOCATION
+ "${OPENGL_egl_LIBRARY}")
+ else()
+ add_library(OpenGL::EGL INTERFACE IMPORTED)
+ set_target_properties(OpenGL::EGL PROPERTIES IMPORTED_LIBNAME
+ "${OPENGL_egl_LIBRARY}")
+ endif()
+ set_target_properties(OpenGL::EGL PROPERTIES INTERFACE_LINK_LIBRARIES
+ OpenGL::OpenGL)
+ # Note that EGL's include directory is different from OpenGL/GLX's!
+ set_target_properties(OpenGL::EGL PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
+ "${OPENGL_EGL_INCLUDE_DIR}")
+ endif()
+
+ if(OPENGL_GLU_FOUND AND NOT TARGET OpenGL::GLU)
+ if(IS_ABSOLUTE "${OPENGL_glu_LIBRARY}")
+ add_library(OpenGL::GLU UNKNOWN IMPORTED)
+ if(OPENGL_glu_LIBRARY MATCHES "/([^/]+)\\.framework$")
+ set(_glu_fw "${OPENGL_glu_LIBRARY}/${CMAKE_MATCH_1}")
+ if(EXISTS "${_glu_fw}.tbd")
+ string(APPEND _glu_fw ".tbd")
+ endif()
+ set_target_properties(OpenGL::GLU PROPERTIES
+ IMPORTED_LOCATION "${_glu_fw}")
+ else()
+ set_target_properties(OpenGL::GLU PROPERTIES
+ IMPORTED_LOCATION "${OPENGL_glu_LIBRARY}")
+ endif()
+ else()
+ add_library(OpenGL::GLU INTERFACE IMPORTED)
+ set_target_properties(OpenGL::GLU PROPERTIES
+ IMPORTED_LIBNAME "${OPENGL_glu_LIBRARY}")
+ endif()
+ set_target_properties(OpenGL::GLU PROPERTIES
+ INTERFACE_LINK_LIBRARIES OpenGL::GL)
+ endif()
+
+ # OPENGL_LIBRARIES mirrors OpenGL::GL's logic ...
+ if(OPENGL_gl_LIBRARY)
+ set(OPENGL_LIBRARIES ${OPENGL_gl_LIBRARY})
+ elseif(TARGET OpenGL::OpenGL AND TARGET OpenGL::GLX)
+ set(OPENGL_LIBRARIES ${OPENGL_opengl_LIBRARY} ${OPENGL_glx_LIBRARY})
+ else()
+ set(OPENGL_LIBRARIES "")
+ endif()
+ # ... and also includes GLU, if available.
+ if(TARGET OpenGL::GLU)
+ list(APPEND OPENGL_LIBRARIES ${OPENGL_glu_LIBRARY})
+ endif()
+endif()
+
+# This deprecated setting is for backward compatibility with CMake1.4
+set(OPENGL_LIBRARY ${OPENGL_LIBRARIES})
+# This deprecated setting is for backward compatibility with CMake1.4
+set(OPENGL_INCLUDE_PATH ${OPENGL_INCLUDE_DIR})
+
+mark_as_advanced(${_OpenGL_CACHE_VARS})
+unset(_OpenGL_CACHE_VARS)
diff --git a/share/cmake-3.17/Modules/FindOpenMP.cmake b/share/cmake-3.17/Modules/FindOpenMP.cmake
new file mode 100644
index 0000000..a4b1e1e
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindOpenMP.cmake
@@ -0,0 +1,605 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindOpenMP
+----------
+
+Finds Open Multi-Processing (OpenMP) support.
+
+This module can be used to detect OpenMP support in a compiler. If
+the compiler supports OpenMP, the flags required to compile with
+OpenMP support are returned in variables for the different languages.
+The variables may be empty if the compiler does not need a special
+flag to support OpenMP.
+
+Variables
+^^^^^^^^^
+
+The module exposes the components ``C``, ``CXX``, and ``Fortran``.
+Each of these controls the various languages to search OpenMP support for.
+
+Depending on the enabled components the following variables will be set:
+
+``OpenMP_FOUND``
+ Variable indicating that OpenMP flags for all requested languages have been found.
+ If no components are specified, this is true if OpenMP settings for all enabled languages
+ were detected.
+``OpenMP_VERSION``
+ Minimal version of the OpenMP standard detected among the requested languages,
+ or all enabled languages if no components were specified.
+
+This module will set the following variables per language in your
+project, where ``<lang>`` is one of C, CXX, or Fortran:
+
+``OpenMP_<lang>_FOUND``
+ Variable indicating if OpenMP support for ``<lang>`` was detected.
+``OpenMP_<lang>_FLAGS``
+ OpenMP compiler flags for ``<lang>``, separated by spaces.
+``OpenMP_<lang>_INCLUDE_DIRS``
+ Directories that must be added to the header search path for ``<lang>``
+ when using OpenMP.
+
+For linking with OpenMP code written in ``<lang>``, the following
+variables are provided:
+
+``OpenMP_<lang>_LIB_NAMES``
+ :ref:`;-list <CMake Language Lists>` of libraries for OpenMP programs for ``<lang>``.
+``OpenMP_<libname>_LIBRARY``
+ Location of the individual libraries needed for OpenMP support in ``<lang>``.
+``OpenMP_<lang>_LIBRARIES``
+ A list of libraries needed to link with OpenMP code written in ``<lang>``.
+
+Additionally, the module provides :prop_tgt:`IMPORTED` targets:
+
+``OpenMP::OpenMP_<lang>``
+ Target for using OpenMP from ``<lang>``.
+
+Specifically for Fortran, the module sets the following variables:
+
+``OpenMP_Fortran_HAVE_OMPLIB_HEADER``
+ Boolean indicating if OpenMP is accessible through ``omp_lib.h``.
+``OpenMP_Fortran_HAVE_OMPLIB_MODULE``
+ Boolean indicating if OpenMP is accessible through the ``omp_lib`` Fortran module.
+
+The module will also try to provide the OpenMP version variables:
+
+``OpenMP_<lang>_SPEC_DATE``
+ Date of the OpenMP specification implemented by the ``<lang>`` compiler.
+``OpenMP_<lang>_VERSION_MAJOR``
+ Major version of OpenMP implemented by the ``<lang>`` compiler.
+``OpenMP_<lang>_VERSION_MINOR``
+ Minor version of OpenMP implemented by the ``<lang>`` compiler.
+``OpenMP_<lang>_VERSION``
+ OpenMP version implemented by the ``<lang>`` compiler.
+
+The specification date is formatted as given in the OpenMP standard:
+``yyyymm`` where ``yyyy`` and ``mm`` represents the year and month of
+the OpenMP specification implemented by the ``<lang>`` compiler.
+
+For some compilers, it may be necessary to add a header search path to find
+the relevant OpenMP headers. This location may be language-specific. Where
+this is needed, the module may attempt to find the location, but it can be
+provided directly by setting the ``OpenMP_<lang>_INCLUDE_DIR`` cache variable.
+Note that this variable is an _input_ control to the module. Project code
+should use the ``OpenMP_<lang>_INCLUDE_DIRS`` _output_ variable if it needs
+to know what include directories are needed.
+#]=======================================================================]
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0012 NEW) # if() recognizes numbers and booleans
+cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+
+function(_OPENMP_FLAG_CANDIDATES LANG)
+ if(NOT OpenMP_${LANG}_FLAG)
+ unset(OpenMP_FLAG_CANDIDATES)
+
+ set(OMP_FLAG_GNU "-fopenmp")
+ set(OMP_FLAG_Clang "-fopenmp=libomp" "-fopenmp=libiomp5" "-fopenmp" "-Xclang -fopenmp")
+ set(OMP_FLAG_AppleClang "-Xclang -fopenmp")
+ set(OMP_FLAG_HP "+Oopenmp")
+ if(WIN32)
+ set(OMP_FLAG_Intel "-Qopenmp")
+ elseif(CMAKE_${LANG}_COMPILER_ID STREQUAL "Intel" AND
+ "${CMAKE_${LANG}_COMPILER_VERSION}" VERSION_LESS "15.0.0.20140528")
+ set(OMP_FLAG_Intel "-openmp")
+ else()
+ set(OMP_FLAG_Intel "-qopenmp")
+ endif()
+ set(OMP_FLAG_MSVC "-openmp")
+ set(OMP_FLAG_PathScale "-openmp")
+ set(OMP_FLAG_NAG "-openmp")
+ set(OMP_FLAG_Absoft "-openmp")
+ set(OMP_FLAG_PGI "-mp")
+ set(OMP_FLAG_Flang "-fopenmp")
+ set(OMP_FLAG_SunPro "-xopenmp")
+ set(OMP_FLAG_XL "-qsmp=omp")
+ # Cray compiler activate OpenMP with -h omp, which is enabled by default.
+ set(OMP_FLAG_Cray " " "-h omp")
+
+ # If we know the correct flags, use those
+ if(DEFINED OMP_FLAG_${CMAKE_${LANG}_COMPILER_ID})
+ set(OpenMP_FLAG_CANDIDATES "${OMP_FLAG_${CMAKE_${LANG}_COMPILER_ID}}")
+ # Fall back to reasonable default tries otherwise
+ else()
+ set(OpenMP_FLAG_CANDIDATES "-openmp" "-fopenmp" "-mp" " ")
+ endif()
+ set(OpenMP_${LANG}_FLAG_CANDIDATES "${OpenMP_FLAG_CANDIDATES}" PARENT_SCOPE)
+ else()
+ set(OpenMP_${LANG}_FLAG_CANDIDATES "${OpenMP_${LANG}_FLAG}" PARENT_SCOPE)
+ endif()
+endfunction()
+
+# sample openmp source code to test
+set(OpenMP_C_CXX_TEST_SOURCE
+"
+#include <omp.h>
+int main(void) {
+#ifdef _OPENMP
+ omp_get_max_threads();
+ return 0;
+#elif defined(__HIP_DEVICE_COMPILE__)
+ return 0;
+#else
+ breaks_on_purpose
+#endif
+}
+")
+
+# in Fortran, an implementation may provide an omp_lib.h header
+# or omp_lib module, or both (OpenMP standard, section 3.1)
+# Furthmore !$ is the Fortran equivalent of #ifdef _OPENMP (OpenMP standard, 2.2.2)
+# Without the conditional compilation, some compilers (e.g. PGI) might compile OpenMP code
+# while not actually enabling OpenMP, building code sequentially
+set(OpenMP_Fortran_TEST_SOURCE
+ "
+ program test
+ @OpenMP_Fortran_INCLUDE_LINE@
+ !$ integer :: n
+ n = omp_get_num_threads()
+ end program test
+ "
+)
+
+function(_OPENMP_WRITE_SOURCE_FILE LANG SRC_FILE_CONTENT_VAR SRC_FILE_NAME SRC_FILE_FULLPATH)
+ set(WORK_DIR ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindOpenMP)
+ if("${LANG}" STREQUAL "C")
+ set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.c")
+ file(WRITE "${SRC_FILE}" "${OpenMP_C_CXX_${SRC_FILE_CONTENT_VAR}}")
+ elseif("${LANG}" STREQUAL "CXX")
+ set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.cpp")
+ file(WRITE "${SRC_FILE}" "${OpenMP_C_CXX_${SRC_FILE_CONTENT_VAR}}")
+ elseif("${LANG}" STREQUAL "Fortran")
+ set(SRC_FILE "${WORK_DIR}/${SRC_FILE_NAME}.f90")
+ file(WRITE "${SRC_FILE}_in" "${OpenMP_Fortran_${SRC_FILE_CONTENT_VAR}}")
+ configure_file("${SRC_FILE}_in" "${SRC_FILE}" @ONLY)
+ endif()
+ set(${SRC_FILE_FULLPATH} "${SRC_FILE}" PARENT_SCOPE)
+endfunction()
+
+include(${CMAKE_CURRENT_LIST_DIR}/CMakeParseImplicitLinkInfo.cmake)
+
+function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
+ _OPENMP_FLAG_CANDIDATES("${LANG}")
+ _OPENMP_WRITE_SOURCE_FILE("${LANG}" "TEST_SOURCE" OpenMPTryFlag _OPENMP_TEST_SRC)
+
+ unset(OpenMP_VERBOSE_COMPILE_OPTIONS)
+ separate_arguments(OpenMP_VERBOSE_OPTIONS NATIVE_COMMAND "${CMAKE_${LANG}_VERBOSE_FLAG}")
+ foreach(_VERBOSE_OPTION IN LISTS OpenMP_VERBOSE_OPTIONS)
+ if(NOT _VERBOSE_OPTION MATCHES "^-Wl,")
+ list(APPEND OpenMP_VERBOSE_COMPILE_OPTIONS ${_VERBOSE_OPTION})
+ endif()
+ endforeach()
+
+ foreach(OPENMP_FLAG IN LISTS OpenMP_${LANG}_FLAG_CANDIDATES)
+ set(OPENMP_FLAGS_TEST "${OPENMP_FLAG}")
+ if(OpenMP_VERBOSE_COMPILE_OPTIONS)
+ string(APPEND OPENMP_FLAGS_TEST " ${OpenMP_VERBOSE_COMPILE_OPTIONS}")
+ endif()
+ string(REGEX REPLACE "[-/=+]" "" OPENMP_PLAIN_FLAG "${OPENMP_FLAG}")
+ try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG} ${CMAKE_BINARY_DIR} ${_OPENMP_TEST_SRC}
+ CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
+ LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG}
+ OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
+ )
+
+ if(OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG})
+ set("${OPENMP_FLAG_VAR}" "${OPENMP_FLAG}" PARENT_SCOPE)
+
+ if(CMAKE_${LANG}_VERBOSE_FLAG)
+ unset(OpenMP_${LANG}_IMPLICIT_LIBRARIES)
+ unset(OpenMP_${LANG}_IMPLICIT_LINK_DIRS)
+ unset(OpenMP_${LANG}_IMPLICIT_FWK_DIRS)
+ unset(OpenMP_${LANG}_LOG_VAR)
+
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Detecting ${LANG} OpenMP compiler ABI info compiled with the following output:\n${OpenMP_TRY_COMPILE_OUTPUT}\n\n")
+
+ cmake_parse_implicit_link_info("${OpenMP_TRY_COMPILE_OUTPUT}"
+ OpenMP_${LANG}_IMPLICIT_LIBRARIES
+ OpenMP_${LANG}_IMPLICIT_LINK_DIRS
+ OpenMP_${LANG}_IMPLICIT_FWK_DIRS
+ OpenMP_${LANG}_LOG_VAR
+ "${CMAKE_${LANG}_IMPLICIT_OBJECT_REGEX}"
+ )
+
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Parsed ${LANG} OpenMP implicit link information from above output:\n${OpenMP_${LANG}_LOG_VAR}\n\n")
+
+ unset(_OPENMP_LIB_NAMES)
+ foreach(_OPENMP_IMPLICIT_LIB IN LISTS OpenMP_${LANG}_IMPLICIT_LIBRARIES)
+ get_filename_component(_OPENMP_IMPLICIT_LIB_DIR "${_OPENMP_IMPLICIT_LIB}" DIRECTORY)
+ get_filename_component(_OPENMP_IMPLICIT_LIB_NAME "${_OPENMP_IMPLICIT_LIB}" NAME)
+ get_filename_component(_OPENMP_IMPLICIT_LIB_PLAIN "${_OPENMP_IMPLICIT_LIB}" NAME_WE)
+ string(REGEX REPLACE "([][+.*?()^$])" "\\\\\\1" _OPENMP_IMPLICIT_LIB_PLAIN_ESC "${_OPENMP_IMPLICIT_LIB_PLAIN}")
+ string(REGEX REPLACE "([][+.*?()^$])" "\\\\\\1" _OPENMP_IMPLICIT_LIB_PATH_ESC "${_OPENMP_IMPLICIT_LIB}")
+ if(NOT ( "${_OPENMP_IMPLICIT_LIB}" IN_LIST CMAKE_${LANG}_IMPLICIT_LINK_LIBRARIES
+ OR "${CMAKE_${LANG}_STANDARD_LIBRARIES}" MATCHES "(^| )(-Wl,)?(-l)?(${_OPENMP_IMPLICIT_LIB_PLAIN_ESC}|${_OPENMP_IMPLICIT_LIB_PATH_ESC})( |$)"
+ OR "${CMAKE_${LANG}_LINK_EXECUTABLE}" MATCHES "(^| )(-Wl,)?(-l)?(${_OPENMP_IMPLICIT_LIB_PLAIN_ESC}|${_OPENMP_IMPLICIT_LIB_PATH_ESC})( |$)" ) )
+ if(_OPENMP_IMPLICIT_LIB_DIR)
+ set(OpenMP_${_OPENMP_IMPLICIT_LIB_PLAIN}_LIBRARY "${_OPENMP_IMPLICIT_LIB}" CACHE FILEPATH
+ "Path to the ${_OPENMP_IMPLICIT_LIB_PLAIN} library for OpenMP")
+ else()
+ find_library(OpenMP_${_OPENMP_IMPLICIT_LIB_PLAIN}_LIBRARY
+ NAMES "${_OPENMP_IMPLICIT_LIB_NAME}"
+ DOC "Path to the ${_OPENMP_IMPLICIT_LIB_PLAIN} library for OpenMP"
+ HINTS ${OpenMP_${LANG}_IMPLICIT_LINK_DIRS}
+ CMAKE_FIND_ROOT_PATH_BOTH
+ NO_DEFAULT_PATH
+ )
+ endif()
+ mark_as_advanced(OpenMP_${_OPENMP_IMPLICIT_LIB_PLAIN}_LIBRARY)
+ list(APPEND _OPENMP_LIB_NAMES ${_OPENMP_IMPLICIT_LIB_PLAIN})
+ endif()
+ endforeach()
+ set("${OPENMP_LIB_NAMES_VAR}" "${_OPENMP_LIB_NAMES}" PARENT_SCOPE)
+ else()
+ # We do not know how to extract implicit OpenMP libraries for this compiler.
+ # Assume that it handles them automatically, e.g. the Intel Compiler on
+ # Windows should put the dependency in its object files.
+ set("${OPENMP_LIB_NAMES_VAR}" "" PARENT_SCOPE)
+ endif()
+ break()
+ elseif(CMAKE_${LANG}_COMPILER_ID STREQUAL "AppleClang"
+ AND CMAKE_${LANG}_COMPILER_VERSION VERSION_GREATER_EQUAL "7.0")
+
+ # Check for separate OpenMP library on AppleClang 7+
+ find_library(OpenMP_libomp_LIBRARY
+ NAMES omp gomp iomp5
+ HINTS ${CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES}
+ )
+ mark_as_advanced(OpenMP_libomp_LIBRARY)
+
+ if(OpenMP_libomp_LIBRARY)
+ # Try without specifying include directory first. We only want to
+ # explicitly add a search path if the header can't be found on the
+ # default header search path already.
+ try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG} ${CMAKE_BINARY_DIR} ${_OPENMP_TEST_SRC}
+ CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
+ LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG} ${OpenMP_libomp_LIBRARY}
+ OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
+ )
+ if(NOT OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG})
+ find_path(OpenMP_${LANG}_INCLUDE_DIR omp.h)
+ mark_as_advanced(OpenMP_${LANG}_INCLUDE_DIR)
+ set(OpenMP_${LANG}_INCLUDE_DIR "${OpenMP_${LANG}_INCLUDE_DIR}" PARENT_SCOPE)
+ if(OpenMP_${LANG}_INCLUDE_DIR)
+ try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG} ${CMAKE_BINARY_DIR} ${_OPENMP_TEST_SRC}
+ CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
+ "-DINCLUDE_DIRECTORIES:STRING=${OpenMP_${LANG}_INCLUDE_DIR}"
+ LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG} ${OpenMP_libomp_LIBRARY}
+ OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
+ )
+ endif()
+ endif()
+ if(OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG})
+ set("${OPENMP_FLAG_VAR}" "${OPENMP_FLAG}" PARENT_SCOPE)
+ set("${OPENMP_LIB_NAMES_VAR}" "libomp" PARENT_SCOPE)
+ break()
+ endif()
+ endif()
+ elseif(CMAKE_${LANG}_COMPILER_ID STREQUAL "Clang" AND WIN32)
+ # Check for separate OpenMP library for Clang on Windows
+ find_library(OpenMP_libomp_LIBRARY
+ NAMES libomp libgomp libiomp5
+ HINTS ${CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES}
+ )
+ mark_as_advanced(OpenMP_libomp_LIBRARY)
+ if(OpenMP_libomp_LIBRARY)
+ try_compile( OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG} ${CMAKE_BINARY_DIR} ${_OPENMP_TEST_SRC}
+ CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OPENMP_FLAGS_TEST}"
+ LINK_LIBRARIES ${CMAKE_${LANG}_VERBOSE_FLAG} ${OpenMP_libomp_LIBRARY}
+ OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT
+ )
+ if(OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG})
+ set("${OPENMP_FLAG_VAR}" "${OPENMP_FLAG}" PARENT_SCOPE)
+ set("${OPENMP_LIB_NAMES_VAR}" "libomp" PARENT_SCOPE)
+ break()
+ endif()
+ endif()
+ else()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Detecting ${LANG} OpenMP failed with the following output:\n${OpenMP_TRY_COMPILE_OUTPUT}\n\n")
+ endif()
+ set("${OPENMP_LIB_NAMES_VAR}" "NOTFOUND" PARENT_SCOPE)
+ set("${OPENMP_FLAG_VAR}" "NOTFOUND" PARENT_SCOPE)
+ endforeach()
+
+ unset(OpenMP_VERBOSE_COMPILE_OPTIONS)
+endfunction()
+
+set(OpenMP_C_CXX_CHECK_VERSION_SOURCE
+"
+#include <stdio.h>
+#include <omp.h>
+const char ompver_str[] = { 'I', 'N', 'F', 'O', ':', 'O', 'p', 'e', 'n', 'M',
+ 'P', '-', 'd', 'a', 't', 'e', '[',
+ ('0' + ((_OPENMP/100000)%10)),
+ ('0' + ((_OPENMP/10000)%10)),
+ ('0' + ((_OPENMP/1000)%10)),
+ ('0' + ((_OPENMP/100)%10)),
+ ('0' + ((_OPENMP/10)%10)),
+ ('0' + ((_OPENMP/1)%10)),
+ ']', '\\0' };
+int main(void)
+{
+ puts(ompver_str);
+ return 0;
+}
+")
+
+set(OpenMP_Fortran_CHECK_VERSION_SOURCE
+"
+ program omp_ver
+ @OpenMP_Fortran_INCLUDE_LINE@
+ integer, parameter :: zero = ichar('0')
+ integer, parameter :: ompv = openmp_version
+ character, dimension(24), parameter :: ompver_str =&
+ (/ 'I', 'N', 'F', 'O', ':', 'O', 'p', 'e', 'n', 'M', 'P', '-',&
+ 'd', 'a', 't', 'e', '[',&
+ char(zero + mod(ompv/100000, 10)),&
+ char(zero + mod(ompv/10000, 10)),&
+ char(zero + mod(ompv/1000, 10)),&
+ char(zero + mod(ompv/100, 10)),&
+ char(zero + mod(ompv/10, 10)),&
+ char(zero + mod(ompv/1, 10)), ']' /)
+ print *, ompver_str
+ end program omp_ver
+")
+
+function(_OPENMP_GET_SPEC_DATE LANG SPEC_DATE)
+ _OPENMP_WRITE_SOURCE_FILE("${LANG}" "CHECK_VERSION_SOURCE" OpenMPCheckVersion _OPENMP_TEST_SRC)
+
+ unset(_includeDirFlags)
+ if(OpenMP_${LANG}_INCLUDE_DIR)
+ set(_includeDirFlags "-DINCLUDE_DIRECTORIES:STRING=${OpenMP_${LANG}_INCLUDE_DIR}")
+ endif()
+
+ set(BIN_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindOpenMP/ompver_${LANG}.bin")
+ string(REGEX REPLACE "[-/=+]" "" OPENMP_PLAIN_FLAG "${OPENMP_FLAG}")
+ try_compile(OpenMP_SPECTEST_${LANG}_${OPENMP_PLAIN_FLAG} "${CMAKE_BINARY_DIR}" "${_OPENMP_TEST_SRC}"
+ CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OpenMP_${LANG}_FLAGS}" ${_includeDirFlags}
+ COPY_FILE ${BIN_FILE}
+ OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT)
+
+ if(${OpenMP_SPECTEST_${LANG}_${OPENMP_PLAIN_FLAG}})
+ file(STRINGS ${BIN_FILE} specstr LIMIT_COUNT 1 REGEX "INFO:OpenMP-date")
+ set(regex_spec_date ".*INFO:OpenMP-date\\[0*([^]]*)\\].*")
+ if("${specstr}" MATCHES "${regex_spec_date}")
+ set(${SPEC_DATE} "${CMAKE_MATCH_1}" PARENT_SCOPE)
+ endif()
+ else()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Detecting ${LANG} OpenMP version failed with the following output:\n${OpenMP_TRY_COMPILE_OUTPUT}\n\n")
+ endif()
+endfunction()
+
+macro(_OPENMP_SET_VERSION_BY_SPEC_DATE LANG)
+ set(OpenMP_SPEC_DATE_MAP
+ # Preview versions
+ "201611=5.0" # OpenMP 5.0 preview 1
+ # Combined versions, 2.5 onwards
+ "201811=5.0"
+ "201511=4.5"
+ "201307=4.0"
+ "201107=3.1"
+ "200805=3.0"
+ "200505=2.5"
+ # C/C++ version 2.0
+ "200203=2.0"
+ # Fortran version 2.0
+ "200011=2.0"
+ # Fortran version 1.1
+ "199911=1.1"
+ # C/C++ version 1.0 (there's no 1.1 for C/C++)
+ "199810=1.0"
+ # Fortran version 1.0
+ "199710=1.0"
+ )
+ if(MSVC)
+ list(APPEND OpenMP_SPEC_DATE_MAP "2019=2.0")
+ endif()
+
+ if(OpenMP_${LANG}_SPEC_DATE)
+ string(REGEX MATCHALL "${OpenMP_${LANG}_SPEC_DATE}=([0-9]+)\\.([0-9]+)" _version_match "${OpenMP_SPEC_DATE_MAP}")
+ else()
+ set(_version_match "")
+ endif()
+ if(NOT _version_match STREQUAL "")
+ set(OpenMP_${LANG}_VERSION_MAJOR ${CMAKE_MATCH_1})
+ set(OpenMP_${LANG}_VERSION_MINOR ${CMAKE_MATCH_2})
+ set(OpenMP_${LANG}_VERSION "${OpenMP_${LANG}_VERSION_MAJOR}.${OpenMP_${LANG}_VERSION_MINOR}")
+ else()
+ unset(OpenMP_${LANG}_VERSION_MAJOR)
+ unset(OpenMP_${LANG}_VERSION_MINOR)
+ unset(OpenMP_${LANG}_VERSION)
+ endif()
+ unset(_version_match)
+ unset(OpenMP_SPEC_DATE_MAP)
+endmacro()
+
+foreach(LANG IN ITEMS C CXX)
+ if(CMAKE_${LANG}_COMPILER_LOADED)
+ if(NOT DEFINED OpenMP_${LANG}_FLAGS OR "${OpenMP_${LANG}_FLAGS}" STREQUAL "NOTFOUND"
+ OR NOT DEFINED OpenMP_${LANG}_LIB_NAMES OR "${OpenMP_${LANG}_LIB_NAMES}" STREQUAL "NOTFOUND")
+ _OPENMP_GET_FLAGS("${LANG}" "${LANG}" OpenMP_${LANG}_FLAGS_WORK OpenMP_${LANG}_LIB_NAMES_WORK)
+ set(OpenMP_${LANG}_FLAGS "${OpenMP_${LANG}_FLAGS_WORK}"
+ CACHE STRING "${LANG} compiler flags for OpenMP parallelization" FORCE)
+ set(OpenMP_${LANG}_LIB_NAMES "${OpenMP_${LANG}_LIB_NAMES_WORK}"
+ CACHE STRING "${LANG} compiler libraries for OpenMP parallelization" FORCE)
+ mark_as_advanced(OpenMP_${LANG}_FLAGS OpenMP_${LANG}_LIB_NAMES)
+ endif()
+ endif()
+endforeach()
+
+if(CMAKE_Fortran_COMPILER_LOADED)
+ if(NOT DEFINED OpenMP_Fortran_FLAGS OR "${OpenMP_Fortran_FLAGS}" STREQUAL "NOTFOUND"
+ OR NOT DEFINED OpenMP_Fortran_LIB_NAMES OR "${OpenMP_Fortran_LIB_NAMES}" STREQUAL "NOTFOUND"
+ OR NOT DEFINED OpenMP_Fortran_HAVE_OMPLIB_MODULE)
+ set(OpenMP_Fortran_INCLUDE_LINE "use omp_lib\n implicit none")
+ _OPENMP_GET_FLAGS("Fortran" "FortranHeader" OpenMP_Fortran_FLAGS_WORK OpenMP_Fortran_LIB_NAMES_WORK)
+ if(OpenMP_Fortran_FLAGS_WORK)
+ set(OpenMP_Fortran_HAVE_OMPLIB_MODULE TRUE CACHE BOOL INTERNAL "")
+ endif()
+
+ set(OpenMP_Fortran_FLAGS "${OpenMP_Fortran_FLAGS_WORK}"
+ CACHE STRING "Fortran compiler flags for OpenMP parallelization")
+ set(OpenMP_Fortran_LIB_NAMES "${OpenMP_Fortran_LIB_NAMES_WORK}"
+ CACHE STRING "Fortran compiler libraries for OpenMP parallelization")
+ mark_as_advanced(OpenMP_Fortran_FLAGS OpenMP_Fortran_LIB_NAMES)
+ endif()
+
+ if(NOT DEFINED OpenMP_Fortran_FLAGS OR "${OpenMP_Fortran_FLAGS}" STREQUAL "NOTFOUND"
+ OR NOT DEFINED OpenMP_Fortran_LIB_NAMES OR "${OpenMP_Fortran_LIB_NAMES}" STREQUAL "NOTFOUND"
+ OR NOT DEFINED OpenMP_Fortran_HAVE_OMPLIB_HEADER)
+ set(OpenMP_Fortran_INCLUDE_LINE "implicit none\n include 'omp_lib.h'")
+ _OPENMP_GET_FLAGS("Fortran" "FortranModule" OpenMP_Fortran_FLAGS_WORK OpenMP_Fortran_LIB_NAMES_WORK)
+ if(OpenMP_Fortran_FLAGS_WORK)
+ set(OpenMP_Fortran_HAVE_OMPLIB_HEADER TRUE CACHE BOOL INTERNAL "")
+ endif()
+
+ set(OpenMP_Fortran_FLAGS "${OpenMP_Fortran_FLAGS_WORK}"
+ CACHE STRING "Fortran compiler flags for OpenMP parallelization")
+
+ set(OpenMP_Fortran_LIB_NAMES "${OpenMP_Fortran_LIB_NAMES}"
+ CACHE STRING "Fortran compiler libraries for OpenMP parallelization")
+ endif()
+
+ if(OpenMP_Fortran_HAVE_OMPLIB_MODULE)
+ set(OpenMP_Fortran_INCLUDE_LINE "use omp_lib\n implicit none")
+ else()
+ set(OpenMP_Fortran_INCLUDE_LINE "implicit none\n include 'omp_lib.h'")
+ endif()
+endif()
+
+if(NOT OpenMP_FIND_COMPONENTS)
+ set(OpenMP_FINDLIST C CXX Fortran)
+else()
+ set(OpenMP_FINDLIST ${OpenMP_FIND_COMPONENTS})
+endif()
+
+unset(_OpenMP_MIN_VERSION)
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+
+foreach(LANG IN LISTS OpenMP_FINDLIST)
+ if(CMAKE_${LANG}_COMPILER_LOADED)
+ if (NOT OpenMP_${LANG}_SPEC_DATE AND OpenMP_${LANG}_FLAGS)
+ _OPENMP_GET_SPEC_DATE("${LANG}" OpenMP_${LANG}_SPEC_DATE_INTERNAL)
+ set(OpenMP_${LANG}_SPEC_DATE "${OpenMP_${LANG}_SPEC_DATE_INTERNAL}" CACHE
+ INTERNAL "${LANG} compiler's OpenMP specification date")
+ _OPENMP_SET_VERSION_BY_SPEC_DATE("${LANG}")
+ endif()
+
+ set(OpenMP_${LANG}_FIND_QUIETLY ${OpenMP_FIND_QUIETLY})
+ set(OpenMP_${LANG}_FIND_REQUIRED ${OpenMP_FIND_REQUIRED})
+ set(OpenMP_${LANG}_FIND_VERSION ${OpenMP_FIND_VERSION})
+ set(OpenMP_${LANG}_FIND_VERSION_EXACT ${OpenMP_FIND_VERSION_EXACT})
+
+ set(_OPENMP_${LANG}_REQUIRED_VARS OpenMP_${LANG}_FLAGS)
+ if("${OpenMP_${LANG}_LIB_NAMES}" STREQUAL "NOTFOUND")
+ set(_OPENMP_${LANG}_REQUIRED_LIB_VARS OpenMP_${LANG}_LIB_NAMES)
+ else()
+ foreach(_OPENMP_IMPLICIT_LIB IN LISTS OpenMP_${LANG}_LIB_NAMES)
+ list(APPEND _OPENMP_${LANG}_REQUIRED_LIB_VARS OpenMP_${_OPENMP_IMPLICIT_LIB}_LIBRARY)
+ endforeach()
+ endif()
+
+ find_package_handle_standard_args(OpenMP_${LANG}
+ NAME_MISMATCHED
+ REQUIRED_VARS OpenMP_${LANG}_FLAGS ${_OPENMP_${LANG}_REQUIRED_LIB_VARS}
+ VERSION_VAR OpenMP_${LANG}_VERSION
+ )
+
+ if(OpenMP_${LANG}_FOUND)
+ if(DEFINED OpenMP_${LANG}_VERSION)
+ if(NOT _OpenMP_MIN_VERSION OR _OpenMP_MIN_VERSION VERSION_GREATER OpenMP_${LANG}_VERSION)
+ set(_OpenMP_MIN_VERSION OpenMP_${LANG}_VERSION)
+ endif()
+ endif()
+ set(OpenMP_${LANG}_LIBRARIES "")
+ foreach(_OPENMP_IMPLICIT_LIB IN LISTS OpenMP_${LANG}_LIB_NAMES)
+ list(APPEND OpenMP_${LANG}_LIBRARIES "${OpenMP_${_OPENMP_IMPLICIT_LIB}_LIBRARY}")
+ endforeach()
+ if(OpenMP_${LANG}_INCLUDE_DIR)
+ set(OpenMP_${LANG}_INCLUDE_DIRS ${OpenMP_${LANG}_INCLUDE_DIR})
+ else()
+ set(OpenMP_${LANG}_INCLUDE_DIRS "")
+ endif()
+
+ if(NOT TARGET OpenMP::OpenMP_${LANG})
+ add_library(OpenMP::OpenMP_${LANG} INTERFACE IMPORTED)
+ endif()
+ if(OpenMP_${LANG}_FLAGS)
+ separate_arguments(_OpenMP_${LANG}_OPTIONS NATIVE_COMMAND "${OpenMP_${LANG}_FLAGS}")
+ set_property(TARGET OpenMP::OpenMP_${LANG} PROPERTY
+ INTERFACE_COMPILE_OPTIONS "$<$<COMPILE_LANGUAGE:${LANG}>:${_OpenMP_${LANG}_OPTIONS}>")
+ unset(_OpenMP_${LANG}_OPTIONS)
+ endif()
+ if(OpenMP_${LANG}_INCLUDE_DIRS)
+ set_property(TARGET OpenMP::OpenMP_${LANG} PROPERTY
+ INTERFACE_INCLUDE_DIRECTORIES "$<BUILD_INTERFACE:${OpenMP_${LANG}_INCLUDE_DIRS}>")
+ endif()
+ if(OpenMP_${LANG}_LIBRARIES)
+ set_property(TARGET OpenMP::OpenMP_${LANG} PROPERTY
+ INTERFACE_LINK_LIBRARIES "${OpenMP_${LANG}_LIBRARIES}")
+ endif()
+ endif()
+ endif()
+endforeach()
+
+unset(_OpenMP_REQ_VARS)
+foreach(LANG IN ITEMS C CXX Fortran)
+ if((NOT OpenMP_FIND_COMPONENTS AND CMAKE_${LANG}_COMPILER_LOADED) OR LANG IN_LIST OpenMP_FIND_COMPONENTS)
+ list(APPEND _OpenMP_REQ_VARS "OpenMP_${LANG}_FOUND")
+ endif()
+endforeach()
+
+find_package_handle_standard_args(OpenMP
+ REQUIRED_VARS ${_OpenMP_REQ_VARS}
+ VERSION_VAR ${_OpenMP_MIN_VERSION}
+ HANDLE_COMPONENTS)
+
+set(OPENMP_FOUND ${OpenMP_FOUND})
+
+if(CMAKE_Fortran_COMPILER_LOADED AND OpenMP_Fortran_FOUND)
+ if(NOT DEFINED OpenMP_Fortran_HAVE_OMPLIB_MODULE)
+ set(OpenMP_Fortran_HAVE_OMPLIB_MODULE FALSE CACHE BOOL INTERNAL "")
+ endif()
+ if(NOT DEFINED OpenMP_Fortran_HAVE_OMPLIB_HEADER)
+ set(OpenMP_Fortran_HAVE_OMPLIB_HEADER FALSE CACHE BOOL INTERNAL "")
+ endif()
+endif()
+
+if(NOT ( CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED ))
+ message(SEND_ERROR "FindOpenMP requires the C, CXX or Fortran languages to be enabled")
+endif()
+
+unset(OpenMP_C_CXX_TEST_SOURCE)
+unset(OpenMP_Fortran_TEST_SOURCE)
+unset(OpenMP_C_CXX_CHECK_VERSION_SOURCE)
+unset(OpenMP_Fortran_CHECK_VERSION_SOURCE)
+unset(OpenMP_Fortran_INCLUDE_LINE)
+
+cmake_policy(POP)
diff --git a/share/cmake-3.17/Modules/FindOpenSSL.cmake b/share/cmake-3.17/Modules/FindOpenSSL.cmake
new file mode 100644
index 0000000..af713d6
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindOpenSSL.cmake
@@ -0,0 +1,532 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindOpenSSL
+-----------
+
+Find the OpenSSL encryption library.
+
+Optional COMPONENTS
+^^^^^^^^^^^^^^^^^^^
+
+This module supports two optional COMPONENTS: ``Crypto`` and ``SSL``. Both
+components have associated imported targets, as described below.
+
+Imported Targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :prop_tgt:`IMPORTED` targets:
+
+``OpenSSL::SSL``
+ The OpenSSL ``ssl`` library, if found.
+``OpenSSL::Crypto``
+ The OpenSSL ``crypto`` library, if found.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project:
+
+``OPENSSL_FOUND``
+ System has the OpenSSL library. If no components are requested it only
+ requires the crypto library.
+``OPENSSL_INCLUDE_DIR``
+ The OpenSSL include directory.
+``OPENSSL_CRYPTO_LIBRARY``
+ The OpenSSL crypto library.
+``OPENSSL_CRYPTO_LIBRARIES``
+ The OpenSSL crypto library and its dependencies.
+``OPENSSL_SSL_LIBRARY``
+ The OpenSSL SSL library.
+``OPENSSL_SSL_LIBRARIES``
+ The OpenSSL SSL library and its dependencies.
+``OPENSSL_LIBRARIES``
+ All OpenSSL libraries and their dependencies.
+``OPENSSL_VERSION``
+ This is set to ``$major.$minor.$revision$patch`` (e.g. ``0.9.8s``).
+
+Hints
+^^^^^
+
+Set ``OPENSSL_ROOT_DIR`` to the root directory of an OpenSSL installation.
+Set ``OPENSSL_USE_STATIC_LIBS`` to ``TRUE`` to look for static libraries.
+Set ``OPENSSL_MSVC_STATIC_RT`` set ``TRUE`` to choose the MT version of the lib.
+#]=======================================================================]
+
+macro(_OpenSSL_test_and_find_dependencies ssl_library crypto_library)
+ if((CMAKE_SYSTEM_NAME STREQUAL "Linux") AND
+ (("${ssl_library}" MATCHES "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$") OR
+ ("${crypto_library}" MATCHES "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$")))
+ set(_OpenSSL_has_dependencies TRUE)
+ find_package(Threads)
+ else()
+ set(_OpenSSL_has_dependencies FALSE)
+ endif()
+endmacro()
+
+function(_OpenSSL_add_dependencies libraries_var)
+ if(CMAKE_THREAD_LIBS_INIT)
+ list(APPEND ${libraries_var} ${CMAKE_THREAD_LIBS_INIT})
+ endif()
+ list(APPEND ${libraries_var} ${CMAKE_DL_LIBS})
+ set(${libraries_var} ${${libraries_var}} PARENT_SCOPE)
+endfunction()
+
+function(_OpenSSL_target_add_dependencies target)
+ if(_OpenSSL_has_dependencies)
+ set_property( TARGET ${target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads )
+ set_property( TARGET ${target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${CMAKE_DL_LIBS} )
+ endif()
+endfunction()
+
+if (UNIX)
+ find_package(PkgConfig QUIET)
+ pkg_check_modules(_OPENSSL QUIET openssl)
+endif ()
+
+# Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
+if(OPENSSL_USE_STATIC_LIBS)
+ set(_openssl_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ if(WIN32)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ else()
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .a )
+ endif()
+endif()
+
+if (WIN32)
+ # http://www.slproweb.com/products/Win32OpenSSL.html
+ set(_OPENSSL_ROOT_HINTS
+ ${OPENSSL_ROOT_DIR}
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]"
+ ENV OPENSSL_ROOT_DIR
+ )
+ file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles)
+ set(_OPENSSL_ROOT_PATHS
+ "${_programfiles}/OpenSSL"
+ "${_programfiles}/OpenSSL-Win32"
+ "${_programfiles}/OpenSSL-Win64"
+ "C:/OpenSSL/"
+ "C:/OpenSSL-Win32/"
+ "C:/OpenSSL-Win64/"
+ )
+ unset(_programfiles)
+else ()
+ set(_OPENSSL_ROOT_HINTS
+ ${OPENSSL_ROOT_DIR}
+ ENV OPENSSL_ROOT_DIR
+ )
+endif ()
+
+set(_OPENSSL_ROOT_HINTS_AND_PATHS
+ HINTS ${_OPENSSL_ROOT_HINTS}
+ PATHS ${_OPENSSL_ROOT_PATHS}
+ )
+
+find_path(OPENSSL_INCLUDE_DIR
+ NAMES
+ openssl/ssl.h
+ ${_OPENSSL_ROOT_HINTS_AND_PATHS}
+ HINTS
+ ${_OPENSSL_INCLUDEDIR}
+ ${_OPENSSL_INCLUDE_DIRS}
+ PATH_SUFFIXES
+ include
+)
+
+if(WIN32 AND NOT CYGWIN)
+ if(MSVC)
+ # /MD and /MDd are the standard values - if someone wants to use
+ # others, the libnames have to change here too
+ # use also ssl and ssleay32 in debug as fallback for openssl < 0.9.8b
+ # enable OPENSSL_MSVC_STATIC_RT to get the libs build /MT (Multithreaded no-DLL)
+ # In Visual C++ naming convention each of these four kinds of Windows libraries has it's standard suffix:
+ # * MD for dynamic-release
+ # * MDd for dynamic-debug
+ # * MT for static-release
+ # * MTd for static-debug
+
+ # Implementation details:
+ # We are using the libraries located in the VC subdir instead of the parent directory even though :
+ # libeay32MD.lib is identical to ../libeay32.lib, and
+ # ssleay32MD.lib is identical to ../ssleay32.lib
+ # enable OPENSSL_USE_STATIC_LIBS to use the static libs located in lib/VC/static
+
+ if (OPENSSL_MSVC_STATIC_RT)
+ set(_OPENSSL_MSVC_RT_MODE "MT")
+ else ()
+ set(_OPENSSL_MSVC_RT_MODE "MD")
+ endif ()
+
+ # Since OpenSSL 1.1, lib names are like libcrypto32MTd.lib and libssl32MTd.lib
+ if( "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8" )
+ set(_OPENSSL_MSVC_ARCH_SUFFIX "64")
+ else()
+ set(_OPENSSL_MSVC_ARCH_SUFFIX "32")
+ endif()
+
+ if(OPENSSL_USE_STATIC_LIBS)
+ set(_OPENSSL_PATH_SUFFIXES
+ "lib/VC/static"
+ "VC/static"
+ "lib"
+ )
+ else()
+ set(_OPENSSL_PATH_SUFFIXES
+ "lib/VC"
+ "VC"
+ "lib"
+ )
+ endif ()
+
+ find_library(LIB_EAY_DEBUG
+ NAMES
+ libcrypto${_OPENSSL_MSVC_ARCH_SUFFIX}${_OPENSSL_MSVC_RT_MODE}d
+ libcrypto${_OPENSSL_MSVC_RT_MODE}d
+ libcryptod
+ libeay32${_OPENSSL_MSVC_RT_MODE}d
+ libeay32d
+ cryptod
+ NAMES_PER_DIR
+ ${_OPENSSL_ROOT_HINTS_AND_PATHS}
+ PATH_SUFFIXES
+ ${_OPENSSL_PATH_SUFFIXES}
+ )
+
+ find_library(LIB_EAY_RELEASE
+ NAMES
+ libcrypto${_OPENSSL_MSVC_ARCH_SUFFIX}${_OPENSSL_MSVC_RT_MODE}
+ libcrypto${_OPENSSL_MSVC_RT_MODE}
+ libcrypto
+ libeay32${_OPENSSL_MSVC_RT_MODE}
+ libeay32
+ crypto
+ NAMES_PER_DIR
+ ${_OPENSSL_ROOT_HINTS_AND_PATHS}
+ PATH_SUFFIXES
+ ${_OPENSSL_PATH_SUFFIXES}
+ )
+
+ find_library(SSL_EAY_DEBUG
+ NAMES
+ libssl${_OPENSSL_MSVC_ARCH_SUFFIX}${_OPENSSL_MSVC_RT_MODE}d
+ libssl${_OPENSSL_MSVC_RT_MODE}d
+ libssld
+ ssleay32${_OPENSSL_MSVC_RT_MODE}d
+ ssleay32d
+ ssld
+ NAMES_PER_DIR
+ ${_OPENSSL_ROOT_HINTS_AND_PATHS}
+ PATH_SUFFIXES
+ ${_OPENSSL_PATH_SUFFIXES}
+ )
+
+ find_library(SSL_EAY_RELEASE
+ NAMES
+ libssl${_OPENSSL_MSVC_ARCH_SUFFIX}${_OPENSSL_MSVC_RT_MODE}
+ libssl${_OPENSSL_MSVC_RT_MODE}
+ libssl
+ ssleay32${_OPENSSL_MSVC_RT_MODE}
+ ssleay32
+ ssl
+ NAMES_PER_DIR
+ ${_OPENSSL_ROOT_HINTS_AND_PATHS}
+ PATH_SUFFIXES
+ ${_OPENSSL_PATH_SUFFIXES}
+ )
+
+ set(LIB_EAY_LIBRARY_DEBUG "${LIB_EAY_DEBUG}")
+ set(LIB_EAY_LIBRARY_RELEASE "${LIB_EAY_RELEASE}")
+ set(SSL_EAY_LIBRARY_DEBUG "${SSL_EAY_DEBUG}")
+ set(SSL_EAY_LIBRARY_RELEASE "${SSL_EAY_RELEASE}")
+
+ include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
+ select_library_configurations(LIB_EAY)
+ select_library_configurations(SSL_EAY)
+
+ mark_as_advanced(LIB_EAY_LIBRARY_DEBUG LIB_EAY_LIBRARY_RELEASE
+ SSL_EAY_LIBRARY_DEBUG SSL_EAY_LIBRARY_RELEASE)
+ set(OPENSSL_SSL_LIBRARY ${SSL_EAY_LIBRARY} )
+ set(OPENSSL_CRYPTO_LIBRARY ${LIB_EAY_LIBRARY} )
+ elseif(MINGW)
+ # same player, for MinGW
+ set(LIB_EAY_NAMES crypto libeay32)
+ set(SSL_EAY_NAMES ssl ssleay32)
+ find_library(LIB_EAY
+ NAMES
+ ${LIB_EAY_NAMES}
+ NAMES_PER_DIR
+ ${_OPENSSL_ROOT_HINTS_AND_PATHS}
+ PATH_SUFFIXES
+ "lib/MinGW"
+ "lib"
+ )
+
+ find_library(SSL_EAY
+ NAMES
+ ${SSL_EAY_NAMES}
+ NAMES_PER_DIR
+ ${_OPENSSL_ROOT_HINTS_AND_PATHS}
+ PATH_SUFFIXES
+ "lib/MinGW"
+ "lib"
+ )
+
+ mark_as_advanced(SSL_EAY LIB_EAY)
+ set(OPENSSL_SSL_LIBRARY ${SSL_EAY} )
+ set(OPENSSL_CRYPTO_LIBRARY ${LIB_EAY} )
+ unset(LIB_EAY_NAMES)
+ unset(SSL_EAY_NAMES)
+ else()
+ # Not sure what to pick for -say- intel, let's use the toplevel ones and hope someone report issues:
+ find_library(LIB_EAY
+ NAMES
+ libcrypto
+ libeay32
+ NAMES_PER_DIR
+ ${_OPENSSL_ROOT_HINTS_AND_PATHS}
+ HINTS
+ ${_OPENSSL_LIBDIR}
+ PATH_SUFFIXES
+ lib
+ )
+
+ find_library(SSL_EAY
+ NAMES
+ libssl
+ ssleay32
+ NAMES_PER_DIR
+ ${_OPENSSL_ROOT_HINTS_AND_PATHS}
+ HINTS
+ ${_OPENSSL_LIBDIR}
+ PATH_SUFFIXES
+ lib
+ )
+
+ mark_as_advanced(SSL_EAY LIB_EAY)
+ set(OPENSSL_SSL_LIBRARY ${SSL_EAY} )
+ set(OPENSSL_CRYPTO_LIBRARY ${LIB_EAY} )
+ endif()
+else()
+
+ find_library(OPENSSL_SSL_LIBRARY
+ NAMES
+ ssl
+ ssleay32
+ ssleay32MD
+ NAMES_PER_DIR
+ ${_OPENSSL_ROOT_HINTS_AND_PATHS}
+ HINTS
+ ${_OPENSSL_LIBDIR}
+ ${_OPENSSL_LIBRARY_DIRS}
+ PATH_SUFFIXES
+ lib
+ )
+
+ find_library(OPENSSL_CRYPTO_LIBRARY
+ NAMES
+ crypto
+ NAMES_PER_DIR
+ ${_OPENSSL_ROOT_HINTS_AND_PATHS}
+ HINTS
+ ${_OPENSSL_LIBDIR}
+ ${_OPENSSL_LIBRARY_DIRS}
+ PATH_SUFFIXES
+ lib
+ )
+
+ mark_as_advanced(OPENSSL_CRYPTO_LIBRARY OPENSSL_SSL_LIBRARY)
+
+endif()
+
+set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY})
+set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
+set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARIES} )
+_OpenSSL_test_and_find_dependencies("${OPENSSL_SSL_LIBRARY}" "${OPENSSL_CRYPTO_LIBRARY}")
+if(_OpenSSL_has_dependencies)
+ _OpenSSL_add_dependencies( OPENSSL_SSL_LIBRARIES )
+ _OpenSSL_add_dependencies( OPENSSL_CRYPTO_LIBRARIES )
+ _OpenSSL_add_dependencies( OPENSSL_LIBRARIES )
+endif()
+
+function(from_hex HEX DEC)
+ string(TOUPPER "${HEX}" HEX)
+ set(_res 0)
+ string(LENGTH "${HEX}" _strlen)
+
+ while (_strlen GREATER 0)
+ math(EXPR _res "${_res} * 16")
+ string(SUBSTRING "${HEX}" 0 1 NIBBLE)
+ string(SUBSTRING "${HEX}" 1 -1 HEX)
+ if (NIBBLE STREQUAL "A")
+ math(EXPR _res "${_res} + 10")
+ elseif (NIBBLE STREQUAL "B")
+ math(EXPR _res "${_res} + 11")
+ elseif (NIBBLE STREQUAL "C")
+ math(EXPR _res "${_res} + 12")
+ elseif (NIBBLE STREQUAL "D")
+ math(EXPR _res "${_res} + 13")
+ elseif (NIBBLE STREQUAL "E")
+ math(EXPR _res "${_res} + 14")
+ elseif (NIBBLE STREQUAL "F")
+ math(EXPR _res "${_res} + 15")
+ else()
+ math(EXPR _res "${_res} + ${NIBBLE}")
+ endif()
+
+ string(LENGTH "${HEX}" _strlen)
+ endwhile()
+
+ set(${DEC} ${_res} PARENT_SCOPE)
+endfunction()
+
+if(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h")
+ file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" openssl_version_str
+ REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*")
+
+ if(openssl_version_str)
+ # The version number is encoded as 0xMNNFFPPS: major minor fix patch status
+ # The status gives if this is a developer or prerelease and is ignored here.
+ # Major, minor, and fix directly translate into the version numbers shown in
+ # the string. The patch field translates to the single character suffix that
+ # indicates the bug fix state, which 00 -> nothing, 01 -> a, 02 -> b and so
+ # on.
+
+ string(REGEX REPLACE "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F]).*$"
+ "\\1;\\2;\\3;\\4;\\5" OPENSSL_VERSION_LIST "${openssl_version_str}")
+ list(GET OPENSSL_VERSION_LIST 0 OPENSSL_VERSION_MAJOR)
+ list(GET OPENSSL_VERSION_LIST 1 OPENSSL_VERSION_MINOR)
+ from_hex("${OPENSSL_VERSION_MINOR}" OPENSSL_VERSION_MINOR)
+ list(GET OPENSSL_VERSION_LIST 2 OPENSSL_VERSION_FIX)
+ from_hex("${OPENSSL_VERSION_FIX}" OPENSSL_VERSION_FIX)
+ list(GET OPENSSL_VERSION_LIST 3 OPENSSL_VERSION_PATCH)
+
+ if (NOT OPENSSL_VERSION_PATCH STREQUAL "00")
+ from_hex("${OPENSSL_VERSION_PATCH}" _tmp)
+ # 96 is the ASCII code of 'a' minus 1
+ math(EXPR OPENSSL_VERSION_PATCH_ASCII "${_tmp} + 96")
+ unset(_tmp)
+ # Once anyone knows how OpenSSL would call the patch versions beyond 'z'
+ # this should be updated to handle that, too. This has not happened yet
+ # so it is simply ignored here for now.
+ string(ASCII "${OPENSSL_VERSION_PATCH_ASCII}" OPENSSL_VERSION_PATCH_STRING)
+ endif ()
+
+ set(OPENSSL_VERSION "${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_FIX}${OPENSSL_VERSION_PATCH_STRING}")
+ endif ()
+endif ()
+
+foreach(_comp IN LISTS OpenSSL_FIND_COMPONENTS)
+ if(_comp STREQUAL "Crypto")
+ if(EXISTS "${OPENSSL_INCLUDE_DIR}" AND
+ (EXISTS "${OPENSSL_CRYPTO_LIBRARY}" OR
+ EXISTS "${LIB_EAY_LIBRARY_DEBUG}" OR
+ EXISTS "${LIB_EAY_LIBRARY_RELEASE}")
+ )
+ set(OpenSSL_${_comp}_FOUND TRUE)
+ else()
+ set(OpenSSL_${_comp}_FOUND FALSE)
+ endif()
+ elseif(_comp STREQUAL "SSL")
+ if(EXISTS "${OPENSSL_INCLUDE_DIR}" AND
+ (EXISTS "${OPENSSL_SSL_LIBRARY}" OR
+ EXISTS "${SSL_EAY_LIBRARY_DEBUG}" OR
+ EXISTS "${SSL_EAY_LIBRARY_RELEASE}")
+ )
+ set(OpenSSL_${_comp}_FOUND TRUE)
+ else()
+ set(OpenSSL_${_comp}_FOUND FALSE)
+ endif()
+ else()
+ message(WARNING "${_comp} is not a valid OpenSSL component")
+ set(OpenSSL_${_comp}_FOUND FALSE)
+ endif()
+endforeach()
+unset(_comp)
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(OpenSSL
+ REQUIRED_VARS
+ OPENSSL_CRYPTO_LIBRARY
+ OPENSSL_INCLUDE_DIR
+ VERSION_VAR
+ OPENSSL_VERSION
+ HANDLE_COMPONENTS
+ FAIL_MESSAGE
+ "Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR"
+)
+
+mark_as_advanced(OPENSSL_INCLUDE_DIR)
+
+if(OPENSSL_FOUND)
+ if(NOT TARGET OpenSSL::Crypto AND
+ (EXISTS "${OPENSSL_CRYPTO_LIBRARY}" OR
+ EXISTS "${LIB_EAY_LIBRARY_DEBUG}" OR
+ EXISTS "${LIB_EAY_LIBRARY_RELEASE}")
+ )
+ add_library(OpenSSL::Crypto UNKNOWN IMPORTED)
+ set_target_properties(OpenSSL::Crypto PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${OPENSSL_INCLUDE_DIR}")
+ if(EXISTS "${OPENSSL_CRYPTO_LIBRARY}")
+ set_target_properties(OpenSSL::Crypto PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_LOCATION "${OPENSSL_CRYPTO_LIBRARY}")
+ endif()
+ if(EXISTS "${LIB_EAY_LIBRARY_RELEASE}")
+ set_property(TARGET OpenSSL::Crypto APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(OpenSSL::Crypto PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+ IMPORTED_LOCATION_RELEASE "${LIB_EAY_LIBRARY_RELEASE}")
+ endif()
+ if(EXISTS "${LIB_EAY_LIBRARY_DEBUG}")
+ set_property(TARGET OpenSSL::Crypto APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(OpenSSL::Crypto PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+ IMPORTED_LOCATION_DEBUG "${LIB_EAY_LIBRARY_DEBUG}")
+ endif()
+ _OpenSSL_target_add_dependencies(OpenSSL::Crypto)
+ endif()
+
+ if(NOT TARGET OpenSSL::SSL AND
+ (EXISTS "${OPENSSL_SSL_LIBRARY}" OR
+ EXISTS "${SSL_EAY_LIBRARY_DEBUG}" OR
+ EXISTS "${SSL_EAY_LIBRARY_RELEASE}")
+ )
+ add_library(OpenSSL::SSL UNKNOWN IMPORTED)
+ set_target_properties(OpenSSL::SSL PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${OPENSSL_INCLUDE_DIR}")
+ if(EXISTS "${OPENSSL_SSL_LIBRARY}")
+ set_target_properties(OpenSSL::SSL PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_LOCATION "${OPENSSL_SSL_LIBRARY}")
+ endif()
+ if(EXISTS "${SSL_EAY_LIBRARY_RELEASE}")
+ set_property(TARGET OpenSSL::SSL APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(OpenSSL::SSL PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+ IMPORTED_LOCATION_RELEASE "${SSL_EAY_LIBRARY_RELEASE}")
+ endif()
+ if(EXISTS "${SSL_EAY_LIBRARY_DEBUG}")
+ set_property(TARGET OpenSSL::SSL APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(OpenSSL::SSL PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+ IMPORTED_LOCATION_DEBUG "${SSL_EAY_LIBRARY_DEBUG}")
+ endif()
+ if(TARGET OpenSSL::Crypto)
+ set_target_properties(OpenSSL::SSL PROPERTIES
+ INTERFACE_LINK_LIBRARIES OpenSSL::Crypto)
+ endif()
+ _OpenSSL_target_add_dependencies(OpenSSL::SSL)
+ endif()
+endif()
+
+# Restore the original find library ordering
+if(OPENSSL_USE_STATIC_LIBS)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${_openssl_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
+endif()
diff --git a/share/cmake-3.16/Modules/FindOpenSceneGraph.cmake b/share/cmake-3.17/Modules/FindOpenSceneGraph.cmake
index 27909bc..27909bc 100644
--- a/share/cmake-3.16/Modules/FindOpenSceneGraph.cmake
+++ b/share/cmake-3.17/Modules/FindOpenSceneGraph.cmake
diff --git a/share/cmake-3.16/Modules/FindOpenThreads.cmake b/share/cmake-3.17/Modules/FindOpenThreads.cmake
index bc45eea..bc45eea 100644
--- a/share/cmake-3.16/Modules/FindOpenThreads.cmake
+++ b/share/cmake-3.17/Modules/FindOpenThreads.cmake
diff --git a/share/cmake-3.16/Modules/FindPHP4.cmake b/share/cmake-3.17/Modules/FindPHP4.cmake
index 34b4adb..34b4adb 100644
--- a/share/cmake-3.16/Modules/FindPHP4.cmake
+++ b/share/cmake-3.17/Modules/FindPHP4.cmake
diff --git a/share/cmake-3.17/Modules/FindPNG.cmake b/share/cmake-3.17/Modules/FindPNG.cmake
new file mode 100644
index 0000000..f1fe89a
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindPNG.cmake
@@ -0,0 +1,160 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindPNG
+-------
+
+Find libpng, the official reference library for the PNG image format.
+
+Imported targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :prop_tgt:`IMPORTED` target:
+
+``PNG::PNG``
+ The libpng library, if found.
+
+Result variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project:
+
+``PNG_INCLUDE_DIRS``
+ where to find png.h, etc.
+``PNG_LIBRARIES``
+ the libraries to link against to use PNG.
+``PNG_DEFINITIONS``
+ You should add_definitions(${PNG_DEFINITIONS}) before compiling code
+ that includes png library files.
+``PNG_FOUND``
+ If false, do not try to use PNG.
+``PNG_VERSION_STRING``
+ the version of the PNG library found (since CMake 2.8.8)
+
+Obsolete variables
+^^^^^^^^^^^^^^^^^^
+
+The following variables may also be set, for backwards compatibility:
+
+``PNG_LIBRARY``
+ where to find the PNG library.
+``PNG_INCLUDE_DIR``
+ where to find the PNG headers (same as PNG_INCLUDE_DIRS)
+
+Since PNG depends on the ZLib compression library, none of the above
+will be defined unless ZLib can be found.
+#]=======================================================================]
+
+if(PNG_FIND_QUIETLY)
+ set(_FIND_ZLIB_ARG QUIET)
+endif()
+find_package(ZLIB ${_FIND_ZLIB_ARG})
+
+if(ZLIB_FOUND)
+ find_path(PNG_PNG_INCLUDE_DIR png.h PATH_SUFFIXES include/libpng)
+
+ list(APPEND PNG_NAMES png libpng)
+ unset(PNG_NAMES_DEBUG)
+ set(_PNG_VERSION_SUFFIXES 17 16 15 14 12)
+ if (PNG_FIND_VERSION MATCHES "^([0-9]+)\\.([0-9]+)(\\..*)?$")
+ set(_PNG_VERSION_SUFFIX_MIN "${CMAKE_MATCH_1}${CMAKE_MATCH_2}")
+ if (PNG_FIND_VERSION_EXACT)
+ set(_PNG_VERSION_SUFFIXES ${_PNG_VERSION_SUFFIX_MIN})
+ else ()
+ string(REGEX REPLACE
+ "${_PNG_VERSION_SUFFIX_MIN}.*" "${_PNG_VERSION_SUFFIX_MIN}"
+ _PNG_VERSION_SUFFIXES "${_PNG_VERSION_SUFFIXES}")
+ endif ()
+ unset(_PNG_VERSION_SUFFIX_MIN)
+ endif ()
+ foreach(v IN LISTS _PNG_VERSION_SUFFIXES)
+ list(APPEND PNG_NAMES png${v} libpng${v} libpng${v}_static)
+ list(APPEND PNG_NAMES_DEBUG png${v}d libpng${v}d libpng${v}_staticd)
+ endforeach()
+ unset(_PNG_VERSION_SUFFIXES)
+ # For compatibility with versions prior to this multi-config search, honor
+ # any PNG_LIBRARY that is already specified and skip the search.
+ if(NOT PNG_LIBRARY)
+ find_library(PNG_LIBRARY_RELEASE NAMES ${PNG_NAMES})
+ find_library(PNG_LIBRARY_DEBUG NAMES ${PNG_NAMES_DEBUG})
+ include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
+ select_library_configurations(PNG)
+ mark_as_advanced(PNG_LIBRARY_RELEASE PNG_LIBRARY_DEBUG)
+ endif()
+ unset(PNG_NAMES)
+ unset(PNG_NAMES_DEBUG)
+
+ # Set by select_library_configurations(), but we want the one from
+ # find_package_handle_standard_args() below.
+ unset(PNG_FOUND)
+
+ if (PNG_LIBRARY AND PNG_PNG_INCLUDE_DIR)
+ # png.h includes zlib.h. Sigh.
+ set(PNG_INCLUDE_DIRS ${PNG_PNG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR} )
+ set(PNG_INCLUDE_DIR ${PNG_INCLUDE_DIRS} ) # for backward compatibility
+ set(PNG_LIBRARIES ${PNG_LIBRARY} ${ZLIB_LIBRARY})
+ if((CMAKE_SYSTEM_NAME STREQUAL "Linux") AND
+ ("${PNG_LIBRARY}" MATCHES "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$"))
+ list(APPEND PNG_LIBRARIES m)
+ endif()
+
+ if (CYGWIN)
+ if(BUILD_SHARED_LIBS)
+ # No need to define PNG_USE_DLL here, because it's default for Cygwin.
+ else()
+ set (PNG_DEFINITIONS -DPNG_STATIC)
+ set(_PNG_COMPILE_DEFINITIONS PNG_STATIC)
+ endif()
+ endif ()
+
+ if(NOT TARGET PNG::PNG)
+ add_library(PNG::PNG UNKNOWN IMPORTED)
+ set_target_properties(PNG::PNG PROPERTIES
+ INTERFACE_COMPILE_DEFINITIONS "${_PNG_COMPILE_DEFINITIONS}"
+ INTERFACE_INCLUDE_DIRECTORIES "${PNG_INCLUDE_DIRS}"
+ INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
+ if((CMAKE_SYSTEM_NAME STREQUAL "Linux") AND
+ ("${PNG_LIBRARY}" MATCHES "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$"))
+ set_property(TARGET PNG::PNG APPEND PROPERTY
+ INTERFACE_LINK_LIBRARIES m)
+ endif()
+
+ if(EXISTS "${PNG_LIBRARY}")
+ set_target_properties(PNG::PNG PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_LOCATION "${PNG_LIBRARY}")
+ endif()
+ if(EXISTS "${PNG_LIBRARY_RELEASE}")
+ set_property(TARGET PNG::PNG APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(PNG::PNG PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+ IMPORTED_LOCATION_RELEASE "${PNG_LIBRARY_RELEASE}")
+ endif()
+ if(EXISTS "${PNG_LIBRARY_DEBUG}")
+ set_property(TARGET PNG::PNG APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(PNG::PNG PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+ IMPORTED_LOCATION_DEBUG "${PNG_LIBRARY_DEBUG}")
+ endif()
+ endif()
+
+ unset(_PNG_COMPILE_DEFINITIONS)
+ endif ()
+
+ if (PNG_PNG_INCLUDE_DIR AND EXISTS "${PNG_PNG_INCLUDE_DIR}/png.h")
+ file(STRINGS "${PNG_PNG_INCLUDE_DIR}/png.h" png_version_str REGEX "^#define[ \t]+PNG_LIBPNG_VER_STRING[ \t]+\".+\"")
+
+ string(REGEX REPLACE "^#define[ \t]+PNG_LIBPNG_VER_STRING[ \t]+\"([^\"]+)\".*" "\\1" PNG_VERSION_STRING "${png_version_str}")
+ unset(png_version_str)
+ endif ()
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(PNG
+ REQUIRED_VARS PNG_LIBRARY PNG_PNG_INCLUDE_DIR
+ VERSION_VAR PNG_VERSION_STRING)
+
+mark_as_advanced(PNG_PNG_INCLUDE_DIR PNG_LIBRARY )
diff --git a/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake b/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake
new file mode 100644
index 0000000..a078049
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake
@@ -0,0 +1,453 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindPackageHandleStandardArgs
+-----------------------------
+
+This module provides a function intended to be used in :ref:`Find Modules`
+implementing :command:`find_package(<PackageName>)` calls. It handles the
+``REQUIRED``, ``QUIET`` and version-related arguments of ``find_package``.
+It also sets the ``<PackageName>_FOUND`` variable. The package is
+considered found if all variables listed contain valid results, e.g.
+valid filepaths.
+
+.. command:: find_package_handle_standard_args
+
+ There are two signatures::
+
+ find_package_handle_standard_args(<PackageName>
+ (DEFAULT_MSG|<custom-failure-message>)
+ <required-var>...
+ )
+
+ find_package_handle_standard_args(<PackageName>
+ [FOUND_VAR <result-var>]
+ [REQUIRED_VARS <required-var>...]
+ [VERSION_VAR <version-var>]
+ [HANDLE_COMPONENTS]
+ [CONFIG_MODE]
+ [NAME_MISMATCHED]
+ [REASON_FAILURE_MESSAGE <reason-failure-message>]
+ [FAIL_MESSAGE <custom-failure-message>]
+ )
+
+ The ``<PackageName>_FOUND`` variable will be set to ``TRUE`` if all
+ the variables ``<required-var>...`` are valid and any optional
+ constraints are satisfied, and ``FALSE`` otherwise. A success or
+ failure message may be displayed based on the results and on
+ whether the ``REQUIRED`` and/or ``QUIET`` option was given to
+ the :command:`find_package` call.
+
+ The options are:
+
+ ``(DEFAULT_MSG|<custom-failure-message>)``
+ In the simple signature this specifies the failure message.
+ Use ``DEFAULT_MSG`` to ask for a default message to be computed
+ (recommended). Not valid in the full signature.
+
+ ``FOUND_VAR <result-var>``
+ Obsolete. Specifies either ``<PackageName>_FOUND`` or
+ ``<PACKAGENAME>_FOUND`` as the result variable. This exists only
+ for compatibility with older versions of CMake and is now ignored.
+ Result variables of both names are always set for compatibility.
+
+ ``REQUIRED_VARS <required-var>...``
+ Specify the variables which are required for this package.
+ These may be named in the generated failure message asking the
+ user to set the missing variable values. Therefore these should
+ typically be cache entries such as ``FOO_LIBRARY`` and not output
+ variables like ``FOO_LIBRARIES``.
+
+ ``VERSION_VAR <version-var>``
+ Specify the name of a variable that holds the version of the package
+ that has been found. This version will be checked against the
+ (potentially) specified required version given to the
+ :command:`find_package` call, including its ``EXACT`` option.
+ The default messages include information about the required
+ version and the version which has been actually found, both
+ if the version is ok or not.
+
+ ``HANDLE_COMPONENTS``
+ Enable handling of package components. In this case, the command
+ will report which components have been found and which are missing,
+ and the ``<PackageName>_FOUND`` variable will be set to ``FALSE``
+ if any of the required components (i.e. not the ones listed after
+ the ``OPTIONAL_COMPONENTS`` option of :command:`find_package`) are
+ missing.
+
+ ``CONFIG_MODE``
+ Specify that the calling find module is a wrapper around a
+ call to ``find_package(<PackageName> NO_MODULE)``. This implies
+ a ``VERSION_VAR`` value of ``<PackageName>_VERSION``. The command
+ will automatically check whether the package configuration file
+ was found.
+
+ ``REASON_FAILURE_MESSAGE <reason-failure-message>``
+ Specify a custom message of the reason for the failure which will be
+ appended to the default generated message.
+
+ ``FAIL_MESSAGE <custom-failure-message>``
+ Specify a custom failure message instead of using the default
+ generated message. Not recommended.
+
+ ``NAME_MISMATCHED``
+ Indicate that the ``<PackageName>`` does not match
+ ``${CMAKE_FIND_PACKAGE_NAME}``. This is usually a mistake and raises a
+ warning, but it may be intentional for usage of the command for components
+ of a larger package.
+
+Example for the simple signature:
+
+.. code-block:: cmake
+
+ find_package_handle_standard_args(LibXml2 DEFAULT_MSG
+ LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)
+
+The ``LibXml2`` package is considered to be found if both
+``LIBXML2_LIBRARY`` and ``LIBXML2_INCLUDE_DIR`` are valid.
+Then also ``LibXml2_FOUND`` is set to ``TRUE``. If it is not found
+and ``REQUIRED`` was used, it fails with a
+:command:`message(FATAL_ERROR)`, independent whether ``QUIET`` was
+used or not. If it is found, success will be reported, including
+the content of the first ``<required-var>``. On repeated CMake runs,
+the same message will not be printed again.
+
+.. note::
+
+ If ``<PackageName>`` does not match ``CMAKE_FIND_PACKAGE_NAME`` for the
+ calling module, a warning that there is a mismatch is given. The
+ ``FPHSA_NAME_MISMATCHED`` variable may be set to bypass the warning if using
+ the old signature and the ``NAME_MISMATCHED`` argument using the new
+ signature. To avoid forcing the caller to require newer versions of CMake for
+ usage, the variable's value will be used if defined when the
+ ``NAME_MISMATCHED`` argument is not passed for the new signature (but using
+ both is an error)..
+
+Example for the full signature:
+
+.. code-block:: cmake
+
+ find_package_handle_standard_args(LibArchive
+ REQUIRED_VARS LibArchive_LIBRARY LibArchive_INCLUDE_DIR
+ VERSION_VAR LibArchive_VERSION)
+
+In this case, the ``LibArchive`` package is considered to be found if
+both ``LibArchive_LIBRARY`` and ``LibArchive_INCLUDE_DIR`` are valid.
+Also the version of ``LibArchive`` will be checked by using the version
+contained in ``LibArchive_VERSION``. Since no ``FAIL_MESSAGE`` is given,
+the default messages will be printed.
+
+Another example for the full signature:
+
+.. code-block:: cmake
+
+ find_package(Automoc4 QUIET NO_MODULE HINTS /opt/automoc4)
+ find_package_handle_standard_args(Automoc4 CONFIG_MODE)
+
+In this case, a ``FindAutmoc4.cmake`` module wraps a call to
+``find_package(Automoc4 NO_MODULE)`` and adds an additional search
+directory for ``automoc4``. Then the call to
+``find_package_handle_standard_args`` produces a proper success/failure
+message.
+#]=======================================================================]
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageMessage.cmake)
+
+# internal helper macro
+macro(_FPHSA_FAILURE_MESSAGE _msg)
+ set (__msg "${_msg}")
+ if (FPHSA_REASON_FAILURE_MESSAGE)
+ string(APPEND __msg "\n Reason given by package: ${FPHSA_REASON_FAILURE_MESSAGE}\n")
+ endif()
+ if (${_NAME}_FIND_REQUIRED)
+ message(FATAL_ERROR "${__msg}")
+ else ()
+ if (NOT ${_NAME}_FIND_QUIETLY)
+ message(STATUS "${__msg}")
+ endif ()
+ endif ()
+endmacro()
+
+
+# internal helper macro to generate the failure message when used in CONFIG_MODE:
+macro(_FPHSA_HANDLE_FAILURE_CONFIG_MODE)
+ # <PackageName>_CONFIG is set, but FOUND is false, this means that some other of the REQUIRED_VARS was not found:
+ if(${_NAME}_CONFIG)
+ _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: missing:${MISSING_VARS} (found ${${_NAME}_CONFIG} ${VERSION_MSG})")
+ else()
+ # If _CONSIDERED_CONFIGS is set, the config-file has been found, but no suitable version.
+ # List them all in the error message:
+ if(${_NAME}_CONSIDERED_CONFIGS)
+ set(configsText "")
+ list(LENGTH ${_NAME}_CONSIDERED_CONFIGS configsCount)
+ math(EXPR configsCount "${configsCount} - 1")
+ foreach(currentConfigIndex RANGE ${configsCount})
+ list(GET ${_NAME}_CONSIDERED_CONFIGS ${currentConfigIndex} filename)
+ list(GET ${_NAME}_CONSIDERED_VERSIONS ${currentConfigIndex} version)
+ string(APPEND configsText "\n ${filename} (version ${version})")
+ endforeach()
+ if (${_NAME}_NOT_FOUND_MESSAGE)
+ if (FPHSA_REASON_FAILURE_MESSAGE)
+ string(PREPEND FPHSA_REASON_FAILURE_MESSAGE "${${_NAME}_NOT_FOUND_MESSAGE}\n ")
+ else()
+ set(FPHSA_REASON_FAILURE_MESSAGE "${${_NAME}_NOT_FOUND_MESSAGE}")
+ endif()
+ else()
+ string(APPEND configsText "\n")
+ endif()
+ _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} ${VERSION_MSG}, checked the following files:${configsText}")
+
+ else()
+ # Simple case: No Config-file was found at all:
+ _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: found neither ${_NAME}Config.cmake nor ${_NAME_LOWER}-config.cmake ${VERSION_MSG}")
+ endif()
+ endif()
+endmacro()
+
+
+function(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FIRST_ARG)
+
+ # Set up the arguments for `cmake_parse_arguments`.
+ set(options CONFIG_MODE HANDLE_COMPONENTS NAME_MISMATCHED)
+ set(oneValueArgs FAIL_MESSAGE REASON_FAILURE_MESSAGE VERSION_VAR FOUND_VAR)
+ set(multiValueArgs REQUIRED_VARS)
+
+ # Check whether we are in 'simple' or 'extended' mode:
+ set(_KEYWORDS_FOR_EXTENDED_MODE ${options} ${oneValueArgs} ${multiValueArgs} )
+ list(FIND _KEYWORDS_FOR_EXTENDED_MODE "${_FIRST_ARG}" INDEX)
+
+ unset(FPHSA_NAME_MISMATCHED_override)
+ if (DEFINED FPHSA_NAME_MISMATCHED)
+ # If the variable NAME_MISMATCHED variable is set, error if it is passed as
+ # an argument. The former is for old signatures, the latter is for new
+ # signatures.
+ list(FIND ARGN "NAME_MISMATCHED" name_mismatched_idx)
+ if (NOT name_mismatched_idx EQUAL "-1")
+ message(FATAL_ERROR
+ "The `NAME_MISMATCHED` argument may only be specified by the argument or "
+ "the variable, not both.")
+ endif ()
+
+ # But use the variable if it is not an argument to avoid forcing minimum
+ # CMake version bumps for calling modules.
+ set(FPHSA_NAME_MISMATCHED_override "${FPHSA_NAME_MISMATCHED}")
+ endif ()
+
+ if(${INDEX} EQUAL -1)
+ set(FPHSA_FAIL_MESSAGE ${_FIRST_ARG})
+ set(FPHSA_REQUIRED_VARS ${ARGN})
+ set(FPHSA_VERSION_VAR)
+ else()
+ cmake_parse_arguments(FPHSA "${options}" "${oneValueArgs}" "${multiValueArgs}" ${_FIRST_ARG} ${ARGN})
+
+ if(FPHSA_UNPARSED_ARGUMENTS)
+ message(FATAL_ERROR "Unknown keywords given to FIND_PACKAGE_HANDLE_STANDARD_ARGS(): \"${FPHSA_UNPARSED_ARGUMENTS}\"")
+ endif()
+
+ if(NOT FPHSA_FAIL_MESSAGE)
+ set(FPHSA_FAIL_MESSAGE "DEFAULT_MSG")
+ endif()
+
+ # In config-mode, we rely on the variable <PackageName>_CONFIG, which is set by find_package()
+ # when it successfully found the config-file, including version checking:
+ if(FPHSA_CONFIG_MODE)
+ list(INSERT FPHSA_REQUIRED_VARS 0 ${_NAME}_CONFIG)
+ list(REMOVE_DUPLICATES FPHSA_REQUIRED_VARS)
+ set(FPHSA_VERSION_VAR ${_NAME}_VERSION)
+ endif()
+
+ if(NOT FPHSA_REQUIRED_VARS)
+ message(FATAL_ERROR "No REQUIRED_VARS specified for FIND_PACKAGE_HANDLE_STANDARD_ARGS()")
+ endif()
+ endif()
+
+ if (DEFINED FPHSA_NAME_MISMATCHED_override)
+ set(FPHSA_NAME_MISMATCHED "${FPHSA_NAME_MISMATCHED_override}")
+ endif ()
+
+ if (DEFINED CMAKE_FIND_PACKAGE_NAME
+ AND NOT FPHSA_NAME_MISMATCHED
+ AND NOT _NAME STREQUAL CMAKE_FIND_PACKAGE_NAME)
+ message(AUTHOR_WARNING
+ "The package name passed to `find_package_handle_standard_args` "
+ "(${_NAME}) does not match the name of the calling package "
+ "(${CMAKE_FIND_PACKAGE_NAME}). This can lead to problems in calling "
+ "code that expects `find_package` result variables (e.g., `_FOUND`) "
+ "to follow a certain pattern.")
+ endif ()
+
+# now that we collected all arguments, process them
+
+ if("x${FPHSA_FAIL_MESSAGE}" STREQUAL "xDEFAULT_MSG")
+ set(FPHSA_FAIL_MESSAGE "Could NOT find ${_NAME}")
+ endif()
+
+ list(GET FPHSA_REQUIRED_VARS 0 _FIRST_REQUIRED_VAR)
+
+ string(TOUPPER ${_NAME} _NAME_UPPER)
+ string(TOLOWER ${_NAME} _NAME_LOWER)
+
+ if(FPHSA_FOUND_VAR)
+ set(_FOUND_VAR_UPPER ${_NAME_UPPER}_FOUND)
+ set(_FOUND_VAR_MIXED ${_NAME}_FOUND)
+ if(FPHSA_FOUND_VAR STREQUAL _FOUND_VAR_MIXED OR FPHSA_FOUND_VAR STREQUAL _FOUND_VAR_UPPER)
+ set(_FOUND_VAR ${FPHSA_FOUND_VAR})
+ else()
+ message(FATAL_ERROR "The argument for FOUND_VAR is \"${FPHSA_FOUND_VAR}\", but only \"${_FOUND_VAR_MIXED}\" and \"${_FOUND_VAR_UPPER}\" are valid names.")
+ endif()
+ else()
+ set(_FOUND_VAR ${_NAME_UPPER}_FOUND)
+ endif()
+
+ # collect all variables which were not found, so they can be printed, so the
+ # user knows better what went wrong (#6375)
+ set(MISSING_VARS "")
+ set(DETAILS "")
+ # check if all passed variables are valid
+ set(FPHSA_FOUND_${_NAME} TRUE)
+ foreach(_CURRENT_VAR ${FPHSA_REQUIRED_VARS})
+ if(NOT ${_CURRENT_VAR})
+ set(FPHSA_FOUND_${_NAME} FALSE)
+ string(APPEND MISSING_VARS " ${_CURRENT_VAR}")
+ else()
+ string(APPEND DETAILS "[${${_CURRENT_VAR}}]")
+ endif()
+ endforeach()
+ if(FPHSA_FOUND_${_NAME})
+ set(${_NAME}_FOUND TRUE)
+ set(${_NAME_UPPER}_FOUND TRUE)
+ else()
+ set(${_NAME}_FOUND FALSE)
+ set(${_NAME_UPPER}_FOUND FALSE)
+ endif()
+
+ # component handling
+ unset(FOUND_COMPONENTS_MSG)
+ unset(MISSING_COMPONENTS_MSG)
+
+ if(FPHSA_HANDLE_COMPONENTS)
+ foreach(comp ${${_NAME}_FIND_COMPONENTS})
+ if(${_NAME}_${comp}_FOUND)
+
+ if(NOT DEFINED FOUND_COMPONENTS_MSG)
+ set(FOUND_COMPONENTS_MSG "found components:")
+ endif()
+ string(APPEND FOUND_COMPONENTS_MSG " ${comp}")
+
+ else()
+
+ if(NOT DEFINED MISSING_COMPONENTS_MSG)
+ set(MISSING_COMPONENTS_MSG "missing components:")
+ endif()
+ string(APPEND MISSING_COMPONENTS_MSG " ${comp}")
+
+ if(${_NAME}_FIND_REQUIRED_${comp})
+ set(${_NAME}_FOUND FALSE)
+ string(APPEND MISSING_VARS " ${comp}")
+ endif()
+
+ endif()
+ endforeach()
+ set(COMPONENT_MSG "${FOUND_COMPONENTS_MSG} ${MISSING_COMPONENTS_MSG}")
+ string(APPEND DETAILS "[c${COMPONENT_MSG}]")
+ endif()
+
+ # version handling:
+ set(VERSION_MSG "")
+ set(VERSION_OK TRUE)
+
+ # check with DEFINED here as the requested or found version may be "0"
+ if (DEFINED ${_NAME}_FIND_VERSION)
+ if(DEFINED ${FPHSA_VERSION_VAR})
+ set(_FOUND_VERSION ${${FPHSA_VERSION_VAR}})
+
+ if(${_NAME}_FIND_VERSION_EXACT) # exact version required
+ # count the dots in the version string
+ string(REGEX REPLACE "[^.]" "" _VERSION_DOTS "${_FOUND_VERSION}")
+ # add one dot because there is one dot more than there are components
+ string(LENGTH "${_VERSION_DOTS}." _VERSION_DOTS)
+ if (_VERSION_DOTS GREATER ${_NAME}_FIND_VERSION_COUNT)
+ # Because of the C++ implementation of find_package() ${_NAME}_FIND_VERSION_COUNT
+ # is at most 4 here. Therefore a simple lookup table is used.
+ if (${_NAME}_FIND_VERSION_COUNT EQUAL 1)
+ set(_VERSION_REGEX "[^.]*")
+ elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 2)
+ set(_VERSION_REGEX "[^.]*\\.[^.]*")
+ elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 3)
+ set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*")
+ else ()
+ set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*\\.[^.]*")
+ endif ()
+ string(REGEX REPLACE "^(${_VERSION_REGEX})\\..*" "\\1" _VERSION_HEAD "${_FOUND_VERSION}")
+ unset(_VERSION_REGEX)
+ if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _VERSION_HEAD)
+ set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"")
+ set(VERSION_OK FALSE)
+ else ()
+ set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")")
+ endif ()
+ unset(_VERSION_HEAD)
+ else ()
+ if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _FOUND_VERSION)
+ set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"")
+ set(VERSION_OK FALSE)
+ else ()
+ set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")")
+ endif ()
+ endif ()
+ unset(_VERSION_DOTS)
+
+ else() # minimum version specified:
+ if (${_NAME}_FIND_VERSION VERSION_GREATER _FOUND_VERSION)
+ set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is at least \"${${_NAME}_FIND_VERSION}\"")
+ set(VERSION_OK FALSE)
+ else ()
+ set(VERSION_MSG "(found suitable version \"${_FOUND_VERSION}\", minimum required is \"${${_NAME}_FIND_VERSION}\")")
+ endif ()
+ endif()
+
+ else()
+
+ # if the package was not found, but a version was given, add that to the output:
+ if(${_NAME}_FIND_VERSION_EXACT)
+ set(VERSION_MSG "(Required is exact version \"${${_NAME}_FIND_VERSION}\")")
+ else()
+ set(VERSION_MSG "(Required is at least version \"${${_NAME}_FIND_VERSION}\")")
+ endif()
+
+ endif()
+ else ()
+ # Check with DEFINED as the found version may be 0.
+ if(DEFINED ${FPHSA_VERSION_VAR})
+ set(VERSION_MSG "(found version \"${${FPHSA_VERSION_VAR}}\")")
+ endif()
+ endif ()
+
+ if(VERSION_OK)
+ string(APPEND DETAILS "[v${${FPHSA_VERSION_VAR}}(${${_NAME}_FIND_VERSION})]")
+ else()
+ set(${_NAME}_FOUND FALSE)
+ endif()
+
+
+ # print the result:
+ if (${_NAME}_FOUND)
+ FIND_PACKAGE_MESSAGE(${_NAME} "Found ${_NAME}: ${${_FIRST_REQUIRED_VAR}} ${VERSION_MSG} ${COMPONENT_MSG}" "${DETAILS}")
+ else ()
+
+ if(FPHSA_CONFIG_MODE)
+ _FPHSA_HANDLE_FAILURE_CONFIG_MODE()
+ else()
+ if(NOT VERSION_OK)
+ _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: ${VERSION_MSG} (found ${${_FIRST_REQUIRED_VAR}})")
+ else()
+ _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} (missing:${MISSING_VARS}) ${VERSION_MSG}")
+ endif()
+ endif()
+
+ endif ()
+
+ set(${_NAME}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE)
+ set(${_NAME_UPPER}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE)
+endfunction()
diff --git a/share/cmake-3.16/Modules/FindPackageMessage.cmake b/share/cmake-3.17/Modules/FindPackageMessage.cmake
index 0628b98..0628b98 100644
--- a/share/cmake-3.16/Modules/FindPackageMessage.cmake
+++ b/share/cmake-3.17/Modules/FindPackageMessage.cmake
diff --git a/share/cmake-3.16/Modules/FindPatch.cmake b/share/cmake-3.17/Modules/FindPatch.cmake
index 4998839..4998839 100644
--- a/share/cmake-3.16/Modules/FindPatch.cmake
+++ b/share/cmake-3.17/Modules/FindPatch.cmake
diff --git a/share/cmake-3.16/Modules/FindPerl.cmake b/share/cmake-3.17/Modules/FindPerl.cmake
index fd120bf..fd120bf 100644
--- a/share/cmake-3.16/Modules/FindPerl.cmake
+++ b/share/cmake-3.17/Modules/FindPerl.cmake
diff --git a/share/cmake-3.16/Modules/FindPerlLibs.cmake b/share/cmake-3.17/Modules/FindPerlLibs.cmake
index 7e27f31..7e27f31 100644
--- a/share/cmake-3.16/Modules/FindPerlLibs.cmake
+++ b/share/cmake-3.17/Modules/FindPerlLibs.cmake
diff --git a/share/cmake-3.16/Modules/FindPhysFS.cmake b/share/cmake-3.17/Modules/FindPhysFS.cmake
index a32f83a..a32f83a 100644
--- a/share/cmake-3.16/Modules/FindPhysFS.cmake
+++ b/share/cmake-3.17/Modules/FindPhysFS.cmake
diff --git a/share/cmake-3.16/Modules/FindPike.cmake b/share/cmake-3.17/Modules/FindPike.cmake
index b78db2a..b78db2a 100644
--- a/share/cmake-3.16/Modules/FindPike.cmake
+++ b/share/cmake-3.17/Modules/FindPike.cmake
diff --git a/share/cmake-3.17/Modules/FindPkgConfig.cmake b/share/cmake-3.17/Modules/FindPkgConfig.cmake
new file mode 100644
index 0000000..c79f20f
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindPkgConfig.cmake
@@ -0,0 +1,778 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[========================================[.rst:
+FindPkgConfig
+-------------
+
+A ``pkg-config`` module for CMake.
+
+Finds the ``pkg-config`` executable and adds the :command:`pkg_get_variable`,
+:command:`pkg_check_modules` and :command:`pkg_search_module` commands. The
+following variables will also be set:
+
+``PKG_CONFIG_FOUND``
+ if pkg-config executable was found
+``PKG_CONFIG_EXECUTABLE``
+ pathname of the pkg-config program
+``PKG_CONFIG_VERSION_STRING``
+ version of pkg-config (since CMake 2.8.8)
+
+#]========================================]
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+
+### Common stuff ####
+set(PKG_CONFIG_VERSION 1)
+
+# find pkg-config, use PKG_CONFIG if set
+if((NOT PKG_CONFIG_EXECUTABLE) AND (NOT "$ENV{PKG_CONFIG}" STREQUAL ""))
+ set(PKG_CONFIG_EXECUTABLE "$ENV{PKG_CONFIG}" CACHE FILEPATH "pkg-config executable")
+endif()
+find_program(PKG_CONFIG_EXECUTABLE NAMES pkg-config DOC "pkg-config executable")
+mark_as_advanced(PKG_CONFIG_EXECUTABLE)
+
+if (PKG_CONFIG_EXECUTABLE)
+ execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --version
+ OUTPUT_VARIABLE PKG_CONFIG_VERSION_STRING
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+endif ()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(PkgConfig
+ REQUIRED_VARS PKG_CONFIG_EXECUTABLE
+ VERSION_VAR PKG_CONFIG_VERSION_STRING)
+
+# This is needed because the module name is "PkgConfig" but the name of
+# this variable has always been PKG_CONFIG_FOUND so this isn't automatically
+# handled by FPHSA.
+set(PKG_CONFIG_FOUND "${PKGCONFIG_FOUND}")
+
+# Unsets the given variables
+macro(_pkgconfig_unset var)
+ set(${var} "" CACHE INTERNAL "")
+endmacro()
+
+macro(_pkgconfig_set var value)
+ set(${var} ${value} CACHE INTERNAL "")
+endmacro()
+
+# Invokes pkgconfig, cleans up the result and sets variables
+macro(_pkgconfig_invoke _pkglist _prefix _varname _regexp)
+ set(_pkgconfig_invoke_result)
+
+ execute_process(
+ COMMAND ${PKG_CONFIG_EXECUTABLE} ${ARGN} ${_pkglist}
+ OUTPUT_VARIABLE _pkgconfig_invoke_result
+ RESULT_VARIABLE _pkgconfig_failed
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if (_pkgconfig_failed)
+ set(_pkgconfig_${_varname} "")
+ _pkgconfig_unset(${_prefix}_${_varname})
+ else()
+ string(REGEX REPLACE "[\r\n]" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
+
+ if (NOT ${_regexp} STREQUAL "")
+ string(REGEX REPLACE "${_regexp}" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
+ endif()
+
+ separate_arguments(_pkgconfig_invoke_result)
+
+ #message(STATUS " ${_varname} ... ${_pkgconfig_invoke_result}")
+ set(_pkgconfig_${_varname} ${_pkgconfig_invoke_result})
+ _pkgconfig_set(${_prefix}_${_varname} "${_pkgconfig_invoke_result}")
+ endif()
+endmacro()
+
+# Internal version of pkg_get_variable; expects PKG_CONFIG_PATH to already be set
+function (_pkg_get_variable result pkg variable)
+ _pkgconfig_invoke("${pkg}" "prefix" "result" "" "--variable=${variable}")
+ set("${result}"
+ "${prefix_result}"
+ PARENT_SCOPE)
+endfunction ()
+
+# Invokes pkgconfig two times; once without '--static' and once with
+# '--static'
+macro(_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp)
+ _pkgconfig_invoke("${_pkglist}" ${_prefix} ${_varname} "${cleanup_regexp}" ${ARGN})
+ _pkgconfig_invoke("${_pkglist}" ${_prefix} STATIC_${_varname} "${cleanup_regexp}" --static ${ARGN})
+endmacro()
+
+# Splits given arguments into options and a package list
+macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global)
+ set(${_is_req} 0)
+ set(${_is_silent} 0)
+ set(${_no_cmake_path} 0)
+ set(${_no_cmake_environment_path} 0)
+ set(${_imp_target} 0)
+ set(${_imp_target_global} 0)
+ if(DEFINED PKG_CONFIG_USE_CMAKE_PREFIX_PATH)
+ if(NOT PKG_CONFIG_USE_CMAKE_PREFIX_PATH)
+ set(${_no_cmake_path} 1)
+ set(${_no_cmake_environment_path} 1)
+ endif()
+ elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.1)
+ set(${_no_cmake_path} 1)
+ set(${_no_cmake_environment_path} 1)
+ endif()
+
+ foreach(_pkg ${ARGN})
+ if (_pkg STREQUAL "REQUIRED")
+ set(${_is_req} 1)
+ endif ()
+ if (_pkg STREQUAL "QUIET")
+ set(${_is_silent} 1)
+ endif ()
+ if (_pkg STREQUAL "NO_CMAKE_PATH")
+ set(${_no_cmake_path} 1)
+ endif()
+ if (_pkg STREQUAL "NO_CMAKE_ENVIRONMENT_PATH")
+ set(${_no_cmake_environment_path} 1)
+ endif()
+ if (_pkg STREQUAL "IMPORTED_TARGET")
+ set(${_imp_target} 1)
+ endif()
+ if (_pkg STREQUAL "GLOBAL")
+ set(${_imp_target_global} 1)
+ endif()
+ endforeach()
+
+ if (${_imp_target_global} AND NOT ${_imp_target})
+ message(SEND_ERROR "the argument GLOBAL may only be used together with IMPORTED_TARGET")
+ endif()
+
+ set(${_result} ${ARGN})
+ list(REMOVE_ITEM ${_result} "REQUIRED")
+ list(REMOVE_ITEM ${_result} "QUIET")
+ list(REMOVE_ITEM ${_result} "NO_CMAKE_PATH")
+ list(REMOVE_ITEM ${_result} "NO_CMAKE_ENVIRONMENT_PATH")
+ list(REMOVE_ITEM ${_result} "IMPORTED_TARGET")
+ list(REMOVE_ITEM ${_result} "GLOBAL")
+endmacro()
+
+# Add the content of a variable or an environment variable to a list of
+# paths
+# Usage:
+# - _pkgconfig_add_extra_path(_extra_paths VAR)
+# - _pkgconfig_add_extra_path(_extra_paths ENV VAR)
+function(_pkgconfig_add_extra_path _extra_paths_var _var)
+ set(_is_env 0)
+ if(ARGC GREATER 2 AND _var STREQUAL "ENV")
+ set(_var ${ARGV2})
+ set(_is_env 1)
+ endif()
+ if(NOT _is_env)
+ if(NOT "${${_var}}" STREQUAL "")
+ list(APPEND ${_extra_paths_var} ${${_var}})
+ endif()
+ else()
+ if(NOT "$ENV{${_var}}" STREQUAL "")
+ file(TO_CMAKE_PATH "$ENV{${_var}}" _path)
+ list(APPEND ${_extra_paths_var} ${_path})
+ unset(_path)
+ endif()
+ endif()
+ set(${_extra_paths_var} ${${_extra_paths_var}} PARENT_SCOPE)
+endfunction()
+
+# scan the LDFLAGS returned by pkg-config for library directories and
+# libraries, figure out the absolute paths of that libraries in the
+# given directories
+function(_pkg_find_libs _prefix _no_cmake_path _no_cmake_environment_path)
+ unset(_libs)
+ unset(_find_opts)
+
+ # set the options that are used as long as the .pc file does not provide a library
+ # path to look into
+ if(_no_cmake_path)
+ list(APPEND _find_opts "NO_CMAKE_PATH")
+ endif()
+ if(_no_cmake_environment_path)
+ list(APPEND _find_opts "NO_CMAKE_ENVIRONMENT_PATH")
+ endif()
+
+ unset(_search_paths)
+ foreach (flag IN LISTS ${_prefix}_LDFLAGS)
+ if (flag MATCHES "^-L(.*)")
+ list(APPEND _search_paths ${CMAKE_MATCH_1})
+ continue()
+ endif()
+ if (flag MATCHES "^-l(.*)")
+ set(_pkg_search "${CMAKE_MATCH_1}")
+ else()
+ continue()
+ endif()
+
+ if(_search_paths)
+ # Firstly search in -L paths
+ find_library(pkgcfg_lib_${_prefix}_${_pkg_search}
+ NAMES ${_pkg_search}
+ HINTS ${_search_paths} NO_DEFAULT_PATH)
+ endif()
+ find_library(pkgcfg_lib_${_prefix}_${_pkg_search}
+ NAMES ${_pkg_search}
+ ${_find_opts})
+ mark_as_advanced(pkgcfg_lib_${_prefix}_${_pkg_search})
+ if(pkgcfg_lib_${_prefix}_${_pkg_search})
+ list(APPEND _libs "${pkgcfg_lib_${_prefix}_${_pkg_search}}")
+ else()
+ list(APPEND _libs ${_pkg_search})
+ endif()
+ endforeach()
+
+ set(${_prefix}_LINK_LIBRARIES "${_libs}" PARENT_SCOPE)
+endfunction()
+
+# create an imported target from all the information returned by pkg-config
+function(_pkg_create_imp_target _prefix _imp_target_global)
+ # only create the target if it is linkable, i.e. no executables
+ if (NOT TARGET PkgConfig::${_prefix}
+ AND ( ${_prefix}_INCLUDE_DIRS OR ${_prefix}_LINK_LIBRARIES OR ${_prefix}_LDFLAGS_OTHER OR ${_prefix}_CFLAGS_OTHER ))
+ if(${_imp_target_global})
+ set(_global_opt "GLOBAL")
+ else()
+ unset(_global_opt)
+ endif()
+ add_library(PkgConfig::${_prefix} INTERFACE IMPORTED ${_global_opt})
+
+ if(${_prefix}_INCLUDE_DIRS)
+ set_property(TARGET PkgConfig::${_prefix} PROPERTY
+ INTERFACE_INCLUDE_DIRECTORIES "${${_prefix}_INCLUDE_DIRS}")
+ endif()
+ if(${_prefix}_LINK_LIBRARIES)
+ set_property(TARGET PkgConfig::${_prefix} PROPERTY
+ INTERFACE_LINK_LIBRARIES "${${_prefix}_LINK_LIBRARIES}")
+ endif()
+ if(${_prefix}_LDFLAGS_OTHER)
+ set_property(TARGET PkgConfig::${_prefix} PROPERTY
+ INTERFACE_LINK_OPTIONS "${${_prefix}_LDFLAGS_OTHER}")
+ endif()
+ if(${_prefix}_CFLAGS_OTHER)
+ set_property(TARGET PkgConfig::${_prefix} PROPERTY
+ INTERFACE_COMPILE_OPTIONS "${${_prefix}_CFLAGS_OTHER}")
+ endif()
+ endif()
+endfunction()
+
+# recalculate the dynamic output
+# this is a macro and not a function so the result of _pkg_find_libs is automatically propagated
+macro(_pkg_recalculate _prefix _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global)
+ _pkg_find_libs(${_prefix} ${_no_cmake_path} ${_no_cmake_environment_path})
+ if(${_imp_target})
+ _pkg_create_imp_target(${_prefix} ${_imp_target_global})
+ endif()
+endmacro()
+
+###
+macro(_pkg_set_path_internal)
+ set(_extra_paths)
+
+ if(NOT _no_cmake_path)
+ _pkgconfig_add_extra_path(_extra_paths CMAKE_PREFIX_PATH)
+ _pkgconfig_add_extra_path(_extra_paths CMAKE_FRAMEWORK_PATH)
+ _pkgconfig_add_extra_path(_extra_paths CMAKE_APPBUNDLE_PATH)
+ endif()
+
+ if(NOT _no_cmake_environment_path)
+ _pkgconfig_add_extra_path(_extra_paths ENV CMAKE_PREFIX_PATH)
+ _pkgconfig_add_extra_path(_extra_paths ENV CMAKE_FRAMEWORK_PATH)
+ _pkgconfig_add_extra_path(_extra_paths ENV CMAKE_APPBUNDLE_PATH)
+ endif()
+
+ if(NOT _extra_paths STREQUAL "")
+ # Save the PKG_CONFIG_PATH environment variable, and add paths
+ # from the CMAKE_PREFIX_PATH variables
+ set(_pkgconfig_path_old "$ENV{PKG_CONFIG_PATH}")
+ set(_pkgconfig_path "${_pkgconfig_path_old}")
+ if(NOT _pkgconfig_path STREQUAL "")
+ file(TO_CMAKE_PATH "${_pkgconfig_path}" _pkgconfig_path)
+ endif()
+
+ # Create a list of the possible pkgconfig subfolder (depending on
+ # the system
+ set(_lib_dirs)
+ if(NOT DEFINED CMAKE_SYSTEM_NAME
+ OR (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$"
+ AND NOT CMAKE_CROSSCOMPILING))
+ if(EXISTS "/etc/debian_version") # is this a debian system ?
+ if(CMAKE_LIBRARY_ARCHITECTURE)
+ list(APPEND _lib_dirs "lib/${CMAKE_LIBRARY_ARCHITECTURE}/pkgconfig")
+ endif()
+ else()
+ # not debian, check the FIND_LIBRARY_USE_LIB32_PATHS and FIND_LIBRARY_USE_LIB64_PATHS properties
+ get_property(uselib32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS)
+ if(uselib32 AND CMAKE_SIZEOF_VOID_P EQUAL 4)
+ list(APPEND _lib_dirs "lib32/pkgconfig")
+ endif()
+ get_property(uselib64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
+ if(uselib64 AND CMAKE_SIZEOF_VOID_P EQUAL 8)
+ list(APPEND _lib_dirs "lib64/pkgconfig")
+ endif()
+ get_property(uselibx32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS)
+ if(uselibx32 AND CMAKE_INTERNAL_PLATFORM_ABI STREQUAL "ELF X32")
+ list(APPEND _lib_dirs "libx32/pkgconfig")
+ endif()
+ endif()
+ endif()
+ if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND NOT CMAKE_CROSSCOMPILING)
+ list(APPEND _lib_dirs "libdata/pkgconfig")
+ endif()
+ list(APPEND _lib_dirs "lib/pkgconfig")
+ list(APPEND _lib_dirs "share/pkgconfig")
+
+ # Check if directories exist and eventually append them to the
+ # pkgconfig path list
+ foreach(_prefix_dir ${_extra_paths})
+ foreach(_lib_dir ${_lib_dirs})
+ if(EXISTS "${_prefix_dir}/${_lib_dir}")
+ list(APPEND _pkgconfig_path "${_prefix_dir}/${_lib_dir}")
+ list(REMOVE_DUPLICATES _pkgconfig_path)
+ endif()
+ endforeach()
+ endforeach()
+
+ # Prepare and set the environment variable
+ if(NOT _pkgconfig_path STREQUAL "")
+ # remove empty values from the list
+ list(REMOVE_ITEM _pkgconfig_path "")
+ file(TO_NATIVE_PATH "${_pkgconfig_path}" _pkgconfig_path)
+ if(CMAKE_HOST_UNIX)
+ string(REPLACE ";" ":" _pkgconfig_path "${_pkgconfig_path}")
+ string(REPLACE "\\ " " " _pkgconfig_path "${_pkgconfig_path}")
+ endif()
+ set(ENV{PKG_CONFIG_PATH} "${_pkgconfig_path}")
+ endif()
+
+ # Unset variables
+ unset(_lib_dirs)
+ unset(_pkgconfig_path)
+ endif()
+endmacro()
+
+macro(_pkg_restore_path_internal)
+ if(NOT _extra_paths STREQUAL "")
+ # Restore the environment variable
+ set(ENV{PKG_CONFIG_PATH} "${_pkgconfig_path_old}")
+ endif()
+
+ unset(_extra_paths)
+ unset(_pkgconfig_path_old)
+endmacro()
+
+###
+macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global _prefix)
+ _pkgconfig_unset(${_prefix}_FOUND)
+ _pkgconfig_unset(${_prefix}_VERSION)
+ _pkgconfig_unset(${_prefix}_PREFIX)
+ _pkgconfig_unset(${_prefix}_INCLUDEDIR)
+ _pkgconfig_unset(${_prefix}_LIBDIR)
+ _pkgconfig_unset(${_prefix}_MODULE_NAME)
+ _pkgconfig_unset(${_prefix}_LIBS)
+ _pkgconfig_unset(${_prefix}_LIBS_L)
+ _pkgconfig_unset(${_prefix}_LIBS_PATHS)
+ _pkgconfig_unset(${_prefix}_LIBS_OTHER)
+ _pkgconfig_unset(${_prefix}_CFLAGS)
+ _pkgconfig_unset(${_prefix}_CFLAGS_I)
+ _pkgconfig_unset(${_prefix}_CFLAGS_OTHER)
+ _pkgconfig_unset(${_prefix}_STATIC_LIBDIR)
+ _pkgconfig_unset(${_prefix}_STATIC_LIBS)
+ _pkgconfig_unset(${_prefix}_STATIC_LIBS_L)
+ _pkgconfig_unset(${_prefix}_STATIC_LIBS_PATHS)
+ _pkgconfig_unset(${_prefix}_STATIC_LIBS_OTHER)
+ _pkgconfig_unset(${_prefix}_STATIC_CFLAGS)
+ _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_I)
+ _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_OTHER)
+
+ # create a better addressable variable of the modules and calculate its size
+ set(_pkg_check_modules_list ${ARGN})
+ list(LENGTH _pkg_check_modules_list _pkg_check_modules_cnt)
+
+ if(PKG_CONFIG_EXECUTABLE)
+ # give out status message telling checked module
+ if (NOT ${_is_silent})
+ if (_pkg_check_modules_cnt EQUAL 1)
+ message(STATUS "Checking for module '${_pkg_check_modules_list}'")
+ else()
+ message(STATUS "Checking for modules '${_pkg_check_modules_list}'")
+ endif()
+ endif()
+
+ set(_pkg_check_modules_packages)
+ set(_pkg_check_modules_failed)
+
+ _pkg_set_path_internal()
+
+ # iterate through module list and check whether they exist and match the required version
+ foreach (_pkg_check_modules_pkg ${_pkg_check_modules_list})
+ set(_pkg_check_modules_exist_query)
+
+ # check whether version is given
+ 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}")
+ else()
+ set(_pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}")
+ set(_pkg_check_modules_pkg_op)
+ set(_pkg_check_modules_pkg_ver)
+ endif()
+
+ _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_VERSION)
+ _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_PREFIX)
+ _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_INCLUDEDIR)
+ _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_LIBDIR)
+
+ 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)
+ list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_name} ${_pkg_check_modules_pkg_op} ${_pkg_check_modules_pkg_ver}")
+ else()
+ list(APPEND _pkg_check_modules_exist_query --exists)
+ list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_name}")
+ endif()
+
+ # execute the query
+ execute_process(
+ COMMAND ${PKG_CONFIG_EXECUTABLE} ${_pkg_check_modules_exist_query}
+ RESULT_VARIABLE _pkgconfig_retval
+ ERROR_VARIABLE _pkgconfig_error
+ ERROR_STRIP_TRAILING_WHITESPACE)
+
+ # evaluate result and tell failures
+ if (_pkgconfig_retval)
+ if(NOT ${_is_silent})
+ message(STATUS " ${_pkgconfig_error}")
+ endif()
+
+ set(_pkg_check_modules_failed 1)
+ endif()
+ endforeach()
+
+ if(_pkg_check_modules_failed)
+ # fail when requested
+ if (${_is_required})
+ message(FATAL_ERROR "A required package was not found")
+ endif ()
+ else()
+ # when we are here, we checked whether requested modules
+ # exist. Now, go through them and set variables
+
+ _pkgconfig_set(${_prefix}_FOUND 1)
+ list(LENGTH _pkg_check_modules_packages pkg_count)
+
+ # iterate through all modules again and set individual variables
+ foreach (_pkg_check_modules_pkg ${_pkg_check_modules_packages})
+ # handle case when there is only one package required
+ if (pkg_count EQUAL 1)
+ set(_pkg_check_prefix "${_prefix}")
+ else()
+ set(_pkg_check_prefix "${_prefix}_${_pkg_check_modules_pkg}")
+ endif()
+
+ _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" VERSION "" --modversion )
+ pkg_get_variable("${_pkg_check_prefix}_PREFIX" ${_pkg_check_modules_pkg} "prefix")
+ pkg_get_variable("${_pkg_check_prefix}_INCLUDEDIR" ${_pkg_check_modules_pkg} "includedir")
+ pkg_get_variable("${_pkg_check_prefix}_LIBDIR" ${_pkg_check_modules_pkg} "libdir")
+ foreach (variable IN ITEMS PREFIX INCLUDEDIR LIBDIR)
+ _pkgconfig_set("${_pkg_check_prefix}_${variable}" "${${_pkg_check_prefix}_${variable}}")
+ endforeach ()
+ _pkgconfig_set("${_pkg_check_prefix}_MODULE_NAME" "${_pkg_check_modules_pkg}")
+
+ if (NOT ${_is_silent})
+ message(STATUS " Found ${_pkg_check_modules_pkg}, version ${_pkgconfig_VERSION}")
+ endif ()
+ endforeach()
+
+ # set variables which are combined for multiple modules
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARIES "(^| )-l" --libs-only-l )
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARY_DIRS "(^| )-L" --libs-only-L )
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS "" --libs )
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS_OTHER "" --libs-only-other )
+
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS "(^| )-I" --cflags-only-I )
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS "" --cflags )
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS_OTHER "" --cflags-only-other )
+
+ _pkg_recalculate("${_prefix}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global})
+ endif()
+
+ _pkg_restore_path_internal()
+ else()
+ if (${_is_required})
+ message(SEND_ERROR "pkg-config tool not found")
+ endif ()
+ endif()
+endmacro()
+
+
+#[========================================[.rst:
+.. command:: pkg_check_modules
+
+ Checks for all the given modules, setting a variety of result variables in
+ the calling scope.
+
+ .. code-block:: cmake
+
+ pkg_check_modules(<prefix>
+ [REQUIRED] [QUIET]
+ [NO_CMAKE_PATH]
+ [NO_CMAKE_ENVIRONMENT_PATH]
+ [IMPORTED_TARGET [GLOBAL]]
+ <moduleSpec> [<moduleSpec>...])
+
+ When the ``REQUIRED`` argument is given, the command will fail with an error
+ if module(s) could not be found.
+
+ When the ``QUIET`` argument is given, no status messages will be printed.
+
+ By default, if :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.1 or
+ later, or if :variable:`PKG_CONFIG_USE_CMAKE_PREFIX_PATH` is set to a
+ boolean ``True`` value, then the :variable:`CMAKE_PREFIX_PATH`,
+ :variable:`CMAKE_FRAMEWORK_PATH`, and :variable:`CMAKE_APPBUNDLE_PATH` cache
+ and environment variables will be added to the ``pkg-config`` search path.
+ The ``NO_CMAKE_PATH`` and ``NO_CMAKE_ENVIRONMENT_PATH`` arguments
+ disable this behavior for the cache variables and environment variables
+ respectively.
+
+ The ``IMPORTED_TARGET`` argument will create an imported target named
+ ``PkgConfig::<prefix>`` that can be passed directly as an argument to
+ :command:`target_link_libraries`. The ``GLOBAL`` argument will make the
+ imported target available in global scope.
+
+ 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:
+
+ - ``foo`` matches any version.
+ - ``foo<2`` only matches versions before 2.
+ - ``foo>=3.1`` matches any version from 3.1 or later.
+ - ``foo=1.2.3`` requires that foo must be exactly version 1.2.3.
+
+ The following variables may be set upon return. Two sets of values exist:
+ One for the common case (``<XXX> = <prefix>``) and another for the
+ information ``pkg-config`` provides when called with the ``--static``
+ option (``<XXX> = <prefix>_STATIC``).
+
+ ``<XXX>_FOUND``
+ set to 1 if module(s) exist
+ ``<XXX>_LIBRARIES``
+ only the libraries (without the '-l')
+ ``<XXX>_LINK_LIBRARIES``
+ the libraries and their absolute paths
+ ``<XXX>_LIBRARY_DIRS``
+ the paths of the libraries (without the '-L')
+ ``<XXX>_LDFLAGS``
+ all required linker flags
+ ``<XXX>_LDFLAGS_OTHER``
+ all other linker flags
+ ``<XXX>_INCLUDE_DIRS``
+ the '-I' preprocessor flags (without the '-I')
+ ``<XXX>_CFLAGS``
+ all required cflags
+ ``<XXX>_CFLAGS_OTHER``
+ the other compiler flags
+
+ All but ``<XXX>_FOUND`` may be a :ref:`;-list <CMake Language Lists>` if the
+ associated variable returned from ``pkg-config`` has multiple values.
+
+ There are some special variables whose prefix depends on the number of
+ ``<moduleSpec>`` given. When there is only one ``<moduleSpec>``,
+ ``<YYY>`` will simply be ``<prefix>``, but if two or more ``<moduleSpec>``
+ items are given, ``<YYY>`` will be ``<prefix>_<moduleName>``.
+
+ ``<YYY>_VERSION``
+ version of the module
+ ``<YYY>_PREFIX``
+ prefix directory of the module
+ ``<YYY>_INCLUDEDIR``
+ include directory of the module
+ ``<YYY>_LIBDIR``
+ lib directory of the module
+
+ Examples:
+
+ .. code-block:: cmake
+
+ pkg_check_modules (GLIB2 glib-2.0)
+
+ Looks for any version of glib2. If found, the output variable
+ ``GLIB2_VERSION`` will hold the actual version found.
+
+ .. code-block:: cmake
+
+ pkg_check_modules (GLIB2 glib-2.0>=2.10)
+
+ Looks for at least version 2.10 of glib2. If found, the output variable
+ ``GLIB2_VERSION`` will hold the actual version found.
+
+ .. code-block:: cmake
+
+ pkg_check_modules (FOO glib-2.0>=2.10 gtk+-2.0)
+
+ Looks for both glib2-2.0 (at least version 2.10) and any version of
+ gtk2+-2.0. Only if both are found will ``FOO`` be considered found.
+ The ``FOO_glib-2.0_VERSION`` and ``FOO_gtk+-2.0_VERSION`` variables will be
+ set to their respective found module versions.
+
+ .. code-block:: cmake
+
+ pkg_check_modules (XRENDER REQUIRED xrender)
+
+ Requires any version of ``xrender``. Example output variables set by a
+ successful call::
+
+ XRENDER_LIBRARIES=Xrender;X11
+ XRENDER_STATIC_LIBRARIES=Xrender;X11;pthread;Xau;Xdmcp
+#]========================================]
+macro(pkg_check_modules _prefix _module0)
+ _pkgconfig_parse_options(_pkg_modules _pkg_is_required _pkg_is_silent _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global "${_module0}" ${ARGN})
+ # check cached value
+ if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND OR
+ (NOT "${ARGN}" STREQUAL "" AND NOT "${__pkg_config_arguments_${_prefix}}" STREQUAL "${_module0};${ARGN}") OR
+ ( "${ARGN}" STREQUAL "" AND NOT "${__pkg_config_arguments_${_prefix}}" STREQUAL "${_module0}"))
+ _pkg_check_modules_internal("${_pkg_is_required}" "${_pkg_is_silent}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global} "${_prefix}" ${_pkg_modules})
+
+ _pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION})
+ if (${_prefix}_FOUND)
+ _pkgconfig_set(__pkg_config_arguments_${_prefix} "${_module0};${ARGN}")
+ endif()
+ else()
+ if (${_prefix}_FOUND)
+ _pkg_recalculate("${_prefix}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global})
+ endif()
+ endif()
+endmacro()
+
+
+#[========================================[.rst:
+.. command:: pkg_search_module
+
+ The behavior of this command is the same as :command:`pkg_check_modules`,
+ except that rather than checking for all the specified modules, it searches
+ for just the first successful match.
+
+ .. code-block:: cmake
+
+ pkg_search_module(<prefix>
+ [REQUIRED] [QUIET]
+ [NO_CMAKE_PATH]
+ [NO_CMAKE_ENVIRONMENT_PATH]
+ [IMPORTED_TARGET [GLOBAL]]
+ <moduleSpec> [<moduleSpec>...])
+
+ If a module is found, the ``<prefix>_MODULE_NAME`` variable will contain the
+ name of the matching module. This variable can be used if you need to run
+ :command:`pkg_get_variable`.
+
+ Example:
+
+ .. code-block:: cmake
+
+ pkg_search_module (BAR libxml-2.0 libxml2 libxml>=2)
+#]========================================]
+macro(pkg_search_module _prefix _module0)
+ _pkgconfig_parse_options(_pkg_modules_alt _pkg_is_required _pkg_is_silent _no_cmake_path _no_cmake_environment_path _imp_target _imp_target_global "${_module0}" ${ARGN})
+ # check cached value
+ if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND)
+ set(_pkg_modules_found 0)
+
+ if (NOT ${_pkg_is_silent})
+ message(STATUS "Checking for one of the modules '${_pkg_modules_alt}'")
+ endif ()
+
+ # iterate through all modules and stop at the first working one.
+ foreach(_pkg_alt ${_pkg_modules_alt})
+ if(NOT _pkg_modules_found)
+ _pkg_check_modules_internal(0 1 ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global} "${_prefix}" "${_pkg_alt}")
+ endif()
+
+ if (${_prefix}_FOUND)
+ set(_pkg_modules_found 1)
+ break()
+ endif()
+ endforeach()
+
+ if (NOT ${_prefix}_FOUND)
+ if(${_pkg_is_required})
+ message(SEND_ERROR "None of the required '${_pkg_modules_alt}' found")
+ endif()
+ endif()
+
+ _pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION})
+ elseif (${_prefix}_FOUND)
+ _pkg_recalculate("${_prefix}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global})
+ endif()
+endmacro()
+
+#[========================================[.rst:
+.. command:: pkg_get_variable
+
+ Retrieves the value of a pkg-config variable ``varName`` and stores it in the
+ result variable ``resultVar`` in the calling scope.
+
+ .. code-block:: cmake
+
+ pkg_get_variable(<resultVar> <moduleName> <varName>)
+
+ If ``pkg-config`` returns multiple values for the specified variable,
+ ``resultVar`` will contain a :ref:`;-list <CMake Language Lists>`.
+
+ For example:
+
+ .. code-block:: cmake
+
+ pkg_get_variable(GI_GIRDIR gobject-introspection-1.0 girdir)
+#]========================================]
+function (pkg_get_variable result pkg variable)
+ _pkg_set_path_internal()
+ _pkgconfig_invoke("${pkg}" "prefix" "result" "" "--variable=${variable}")
+ set("${result}"
+ "${prefix_result}"
+ PARENT_SCOPE)
+ _pkg_restore_path_internal()
+endfunction ()
+
+
+#[========================================[.rst:
+Variables Affecting Behavior
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. variable:: PKG_CONFIG_EXECUTABLE
+
+ This can be set to the path of the pkg-config executable. If not provided,
+ it will be set by the module as a result of calling :command:`find_program`
+ internally. The ``PKG_CONFIG`` environment variable can be used as a hint.
+
+.. variable:: PKG_CONFIG_USE_CMAKE_PREFIX_PATH
+
+ Specifies whether :command:`pkg_check_modules` and
+ :command:`pkg_search_module` should add the paths in the
+ :variable:`CMAKE_PREFIX_PATH`, :variable:`CMAKE_FRAMEWORK_PATH` and
+ :variable:`CMAKE_APPBUNDLE_PATH` cache and environment variables to the
+ ``pkg-config`` search path.
+
+ If this variable is not set, this behavior is enabled by default if
+ :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` is 3.1 or later, disabled
+ otherwise.
+#]========================================]
+
+
+### Local Variables:
+### mode: cmake
+### End:
+
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FindPostgreSQL.cmake b/share/cmake-3.17/Modules/FindPostgreSQL.cmake
index 1927aa4..1927aa4 100644
--- a/share/cmake-3.16/Modules/FindPostgreSQL.cmake
+++ b/share/cmake-3.17/Modules/FindPostgreSQL.cmake
diff --git a/share/cmake-3.16/Modules/FindProducer.cmake b/share/cmake-3.17/Modules/FindProducer.cmake
index 65495b5..65495b5 100644
--- a/share/cmake-3.16/Modules/FindProducer.cmake
+++ b/share/cmake-3.17/Modules/FindProducer.cmake
diff --git a/share/cmake-3.17/Modules/FindProtobuf.cmake b/share/cmake-3.17/Modules/FindProtobuf.cmake
new file mode 100644
index 0000000..f35978d
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindProtobuf.cmake
@@ -0,0 +1,661 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindProtobuf
+------------
+
+Locate and configure the Google Protocol Buffers library.
+
+The following variables can be set and are optional:
+
+``Protobuf_SRC_ROOT_FOLDER``
+ When compiling with MSVC, if this cache variable is set
+ the protobuf-default VS project build locations
+ (vsprojects/Debug and vsprojects/Release
+ or vsprojects/x64/Debug and vsprojects/x64/Release)
+ will be searched for libraries and binaries.
+``Protobuf_IMPORT_DIRS``
+ List of additional directories to be searched for
+ imported .proto files.
+``Protobuf_DEBUG``
+ Show debug messages.
+``Protobuf_USE_STATIC_LIBS``
+ Set to ON to force the use of the static libraries.
+ Default is OFF.
+
+Defines the following variables:
+
+``Protobuf_FOUND``
+ Found the Google Protocol Buffers library
+ (libprotobuf & header files)
+``Protobuf_VERSION``
+ Version of package found.
+``Protobuf_INCLUDE_DIRS``
+ Include directories for Google Protocol Buffers
+``Protobuf_LIBRARIES``
+ The protobuf libraries
+``Protobuf_PROTOC_LIBRARIES``
+ The protoc libraries
+``Protobuf_LITE_LIBRARIES``
+ The protobuf-lite libraries
+
+The following :prop_tgt:`IMPORTED` targets are also defined:
+
+``protobuf::libprotobuf``
+ The protobuf library.
+``protobuf::libprotobuf-lite``
+ The protobuf lite library.
+``protobuf::libprotoc``
+ The protoc library.
+``protobuf::protoc``
+ The protoc compiler.
+
+The following cache variables are also available to set or use:
+
+``Protobuf_LIBRARY``
+ The protobuf library
+``Protobuf_PROTOC_LIBRARY``
+ The protoc library
+``Protobuf_INCLUDE_DIR``
+ The include directory for protocol buffers
+``Protobuf_PROTOC_EXECUTABLE``
+ The protoc compiler
+``Protobuf_LIBRARY_DEBUG``
+ The protobuf library (debug)
+``Protobuf_PROTOC_LIBRARY_DEBUG``
+ The protoc library (debug)
+``Protobuf_LITE_LIBRARY``
+ The protobuf lite library
+``Protobuf_LITE_LIBRARY_DEBUG``
+ The protobuf lite library (debug)
+
+Example:
+
+.. code-block:: cmake
+
+ find_package(Protobuf REQUIRED)
+ include_directories(${Protobuf_INCLUDE_DIRS})
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+ protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS foo.proto)
+ protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS EXPORT_MACRO DLL_EXPORT foo.proto)
+ protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS DESCRIPTORS PROTO_DESCS foo.proto)
+ protobuf_generate_python(PROTO_PY foo.proto)
+ add_executable(bar bar.cc ${PROTO_SRCS} ${PROTO_HDRS})
+ target_link_libraries(bar ${Protobuf_LIBRARIES})
+
+.. note::
+ The ``protobuf_generate_cpp`` and ``protobuf_generate_python``
+ functions and :command:`add_executable` or :command:`add_library`
+ calls only work properly within the same directory.
+
+.. command:: protobuf_generate_cpp
+
+ Add custom commands to process ``.proto`` files to C++::
+
+ protobuf_generate_cpp (<SRCS> <HDRS>
+ [DESCRIPTORS <DESC>] [EXPORT_MACRO <MACRO>] [<ARGN>...])
+
+ ``SRCS``
+ Variable to define with autogenerated source files
+ ``HDRS``
+ Variable to define with autogenerated header files
+ ``DESCRIPTORS``
+ Variable to define with autogenerated descriptor files, if requested.
+ ``EXPORT_MACRO``
+ is a macro which should expand to ``__declspec(dllexport)`` or
+ ``__declspec(dllimport)`` depending on what is being compiled.
+ ``ARGN``
+ ``.proto`` files
+
+.. command:: protobuf_generate_python
+
+ Add custom commands to process ``.proto`` files to Python::
+
+ protobuf_generate_python (<PY> [<ARGN>...])
+
+ ``PY``
+ Variable to define with autogenerated Python files
+ ``ARGN``
+ ``.proto`` filess
+#]=======================================================================]
+
+function(protobuf_generate)
+ set(_options APPEND_PATH DESCRIPTORS)
+ set(_singleargs LANGUAGE OUT_VAR EXPORT_MACRO PROTOC_OUT_DIR)
+ if(COMMAND target_sources)
+ list(APPEND _singleargs TARGET)
+ endif()
+ set(_multiargs PROTOS IMPORT_DIRS GENERATE_EXTENSIONS)
+
+ cmake_parse_arguments(protobuf_generate "${_options}" "${_singleargs}" "${_multiargs}" "${ARGN}")
+
+ if(NOT protobuf_generate_PROTOS AND NOT protobuf_generate_TARGET)
+ message(SEND_ERROR "Error: protobuf_generate called without any targets or source files")
+ return()
+ endif()
+
+ if(NOT protobuf_generate_OUT_VAR AND NOT protobuf_generate_TARGET)
+ message(SEND_ERROR "Error: protobuf_generate called without a target or output variable")
+ return()
+ endif()
+
+ if(NOT protobuf_generate_LANGUAGE)
+ set(protobuf_generate_LANGUAGE cpp)
+ endif()
+ string(TOLOWER ${protobuf_generate_LANGUAGE} protobuf_generate_LANGUAGE)
+
+ if(NOT protobuf_generate_PROTOC_OUT_DIR)
+ set(protobuf_generate_PROTOC_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+ endif()
+
+ if(protobuf_generate_EXPORT_MACRO AND protobuf_generate_LANGUAGE STREQUAL cpp)
+ set(_dll_export_decl "dllexport_decl=${protobuf_generate_EXPORT_MACRO}:")
+ endif()
+
+ if(NOT protobuf_generate_GENERATE_EXTENSIONS)
+ if(protobuf_generate_LANGUAGE STREQUAL cpp)
+ set(protobuf_generate_GENERATE_EXTENSIONS .pb.h .pb.cc)
+ elseif(protobuf_generate_LANGUAGE STREQUAL python)
+ set(protobuf_generate_GENERATE_EXTENSIONS _pb2.py)
+ else()
+ message(SEND_ERROR "Error: protobuf_generate given unknown Language ${LANGUAGE}, please provide a value for GENERATE_EXTENSIONS")
+ return()
+ endif()
+ endif()
+
+ if(protobuf_generate_TARGET)
+ get_target_property(_source_list ${protobuf_generate_TARGET} SOURCES)
+ foreach(_file ${_source_list})
+ if(_file MATCHES "proto$")
+ list(APPEND protobuf_generate_PROTOS ${_file})
+ endif()
+ endforeach()
+ endif()
+
+ if(NOT protobuf_generate_PROTOS)
+ message(SEND_ERROR "Error: protobuf_generate could not find any .proto files")
+ return()
+ endif()
+
+ if(protobuf_generate_APPEND_PATH)
+ # Create an include path for each file specified
+ foreach(_file ${protobuf_generate_PROTOS})
+ get_filename_component(_abs_file ${_file} ABSOLUTE)
+ get_filename_component(_abs_path ${_abs_file} PATH)
+ list(FIND _protobuf_include_path ${_abs_path} _contains_already)
+ if(${_contains_already} EQUAL -1)
+ list(APPEND _protobuf_include_path -I ${_abs_path})
+ endif()
+ endforeach()
+ else()
+ set(_protobuf_include_path -I ${CMAKE_CURRENT_SOURCE_DIR})
+ endif()
+
+ foreach(DIR ${protobuf_generate_IMPORT_DIRS})
+ get_filename_component(ABS_PATH ${DIR} ABSOLUTE)
+ list(FIND _protobuf_include_path ${ABS_PATH} _contains_already)
+ if(${_contains_already} EQUAL -1)
+ list(APPEND _protobuf_include_path -I ${ABS_PATH})
+ endif()
+ endforeach()
+
+ set(_generated_srcs_all)
+ foreach(_proto ${protobuf_generate_PROTOS})
+ get_filename_component(_abs_file ${_proto} ABSOLUTE)
+ get_filename_component(_abs_dir ${_abs_file} DIRECTORY)
+ get_filename_component(_basename ${_proto} NAME_WE)
+ file(RELATIVE_PATH _rel_dir ${CMAKE_CURRENT_SOURCE_DIR} ${_abs_dir})
+
+ set(_possible_rel_dir)
+ if (NOT protobuf_generate_APPEND_PATH)
+ set(_possible_rel_dir ${_rel_dir}/)
+ endif()
+
+ set(_generated_srcs)
+ foreach(_ext ${protobuf_generate_GENERATE_EXTENSIONS})
+ list(APPEND _generated_srcs "${protobuf_generate_PROTOC_OUT_DIR}/${_possible_rel_dir}${_basename}${_ext}")
+ endforeach()
+
+ if(protobuf_generate_DESCRIPTORS AND protobuf_generate_LANGUAGE STREQUAL cpp)
+ set(_descriptor_file "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.desc")
+ set(_dll_desc_out "--descriptor_set_out=${_descriptor_file}")
+ list(APPEND _generated_srcs ${_descriptor_file})
+ endif()
+ list(APPEND _generated_srcs_all ${_generated_srcs})
+
+ add_custom_command(
+ OUTPUT ${_generated_srcs}
+ COMMAND protobuf::protoc
+ ARGS --${protobuf_generate_LANGUAGE}_out ${_dll_export_decl}${protobuf_generate_PROTOC_OUT_DIR} ${_dll_desc_out} ${_protobuf_include_path} ${_abs_file}
+ DEPENDS ${_abs_file} protobuf::protoc
+ COMMENT "Running ${protobuf_generate_LANGUAGE} protocol buffer compiler on ${_proto}"
+ VERBATIM )
+ endforeach()
+
+ set_source_files_properties(${_generated_srcs_all} PROPERTIES GENERATED TRUE)
+ if(protobuf_generate_OUT_VAR)
+ set(${protobuf_generate_OUT_VAR} ${_generated_srcs_all} PARENT_SCOPE)
+ endif()
+ if(protobuf_generate_TARGET)
+ target_sources(${protobuf_generate_TARGET} PRIVATE ${_generated_srcs_all})
+ endif()
+endfunction()
+
+function(PROTOBUF_GENERATE_CPP SRCS HDRS)
+ cmake_parse_arguments(protobuf_generate_cpp "" "EXPORT_MACRO;DESCRIPTORS" "" ${ARGN})
+
+ set(_proto_files "${protobuf_generate_cpp_UNPARSED_ARGUMENTS}")
+ if(NOT _proto_files)
+ message(SEND_ERROR "Error: PROTOBUF_GENERATE_CPP() called without any proto files")
+ return()
+ endif()
+
+ if(PROTOBUF_GENERATE_CPP_APPEND_PATH)
+ set(_append_arg APPEND_PATH)
+ endif()
+
+ if(protobuf_generate_cpp_DESCRIPTORS)
+ set(_descriptors DESCRIPTORS)
+ endif()
+
+ if(DEFINED PROTOBUF_IMPORT_DIRS AND NOT DEFINED Protobuf_IMPORT_DIRS)
+ set(Protobuf_IMPORT_DIRS "${PROTOBUF_IMPORT_DIRS}")
+ endif()
+
+ if(DEFINED Protobuf_IMPORT_DIRS)
+ set(_import_arg IMPORT_DIRS ${Protobuf_IMPORT_DIRS})
+ endif()
+
+ set(_outvar)
+ protobuf_generate(${_append_arg} ${_descriptors} LANGUAGE cpp EXPORT_MACRO ${protobuf_generate_cpp_EXPORT_MACRO} OUT_VAR _outvar ${_import_arg} PROTOS ${_proto_files})
+
+ set(${SRCS})
+ set(${HDRS})
+ if(protobuf_generate_cpp_DESCRIPTORS)
+ set(${protobuf_generate_cpp_DESCRIPTORS})
+ endif()
+
+ foreach(_file ${_outvar})
+ if(_file MATCHES "cc$")
+ list(APPEND ${SRCS} ${_file})
+ elseif(_file MATCHES "desc$")
+ list(APPEND ${protobuf_generate_cpp_DESCRIPTORS} ${_file})
+ else()
+ list(APPEND ${HDRS} ${_file})
+ endif()
+ endforeach()
+ set(${SRCS} ${${SRCS}} PARENT_SCOPE)
+ set(${HDRS} ${${HDRS}} PARENT_SCOPE)
+ if(protobuf_generate_cpp_DESCRIPTORS)
+ set(${protobuf_generate_cpp_DESCRIPTORS} "${${protobuf_generate_cpp_DESCRIPTORS}}" PARENT_SCOPE)
+ endif()
+endfunction()
+
+function(PROTOBUF_GENERATE_PYTHON SRCS)
+ if(NOT ARGN)
+ message(SEND_ERROR "Error: PROTOBUF_GENERATE_PYTHON() called without any proto files")
+ return()
+ endif()
+
+ if(PROTOBUF_GENERATE_CPP_APPEND_PATH)
+ set(_append_arg APPEND_PATH)
+ endif()
+
+ if(DEFINED PROTOBUF_IMPORT_DIRS AND NOT DEFINED Protobuf_IMPORT_DIRS)
+ set(Protobuf_IMPORT_DIRS "${PROTOBUF_IMPORT_DIRS}")
+ endif()
+
+ if(DEFINED Protobuf_IMPORT_DIRS)
+ set(_import_arg IMPORT_DIRS ${Protobuf_IMPORT_DIRS})
+ endif()
+
+ set(_outvar)
+ protobuf_generate(${_append_arg} LANGUAGE python OUT_VAR _outvar ${_import_arg} PROTOS ${ARGN})
+ set(${SRCS} ${_outvar} PARENT_SCOPE)
+endfunction()
+
+
+if(Protobuf_DEBUG)
+ # Output some of their choices
+ message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
+ "Protobuf_USE_STATIC_LIBS = ${Protobuf_USE_STATIC_LIBS}")
+endif()
+
+
+# Backwards compatibility
+# Define camel case versions of input variables
+foreach(UPPER
+ PROTOBUF_SRC_ROOT_FOLDER
+ PROTOBUF_IMPORT_DIRS
+ PROTOBUF_DEBUG
+ PROTOBUF_LIBRARY
+ PROTOBUF_PROTOC_LIBRARY
+ PROTOBUF_INCLUDE_DIR
+ PROTOBUF_PROTOC_EXECUTABLE
+ PROTOBUF_LIBRARY_DEBUG
+ PROTOBUF_PROTOC_LIBRARY_DEBUG
+ PROTOBUF_LITE_LIBRARY
+ PROTOBUF_LITE_LIBRARY_DEBUG
+ )
+ if (DEFINED ${UPPER})
+ string(REPLACE "PROTOBUF_" "Protobuf_" Camel ${UPPER})
+ if (NOT DEFINED ${Camel})
+ set(${Camel} ${${UPPER}})
+ endif()
+ endif()
+endforeach()
+
+if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(_PROTOBUF_ARCH_DIR x64/)
+endif()
+
+
+# Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
+if( Protobuf_USE_STATIC_LIBS )
+ set( _protobuf_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ if(WIN32)
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ else()
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .a )
+ endif()
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
+
+# Internal function: search for normal library as well as a debug one
+# if the debug one is specified also include debug/optimized keywords
+# in *_LIBRARIES variable
+function(_protobuf_find_libraries name filename)
+ if(${name}_LIBRARIES)
+ # Use result recorded by a previous call.
+ return()
+ elseif(${name}_LIBRARY)
+ # Honor cache entry used by CMake 3.5 and lower.
+ set(${name}_LIBRARIES "${${name}_LIBRARY}" PARENT_SCOPE)
+ else()
+ find_library(${name}_LIBRARY_RELEASE
+ NAMES ${filename}
+ PATHS ${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Release)
+ mark_as_advanced(${name}_LIBRARY_RELEASE)
+
+ find_library(${name}_LIBRARY_DEBUG
+ NAMES ${filename}d ${filename}
+ PATHS ${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Debug)
+ mark_as_advanced(${name}_LIBRARY_DEBUG)
+
+ select_library_configurations(${name})
+
+ if(UNIX AND Threads_FOUND)
+ list(APPEND ${name}_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
+ endif()
+
+ set(${name}_LIBRARY "${${name}_LIBRARY}" PARENT_SCOPE)
+ set(${name}_LIBRARIES "${${name}_LIBRARIES}" PARENT_SCOPE)
+ endif()
+endfunction()
+
+#
+# Main.
+#
+
+# By default have PROTOBUF_GENERATE_CPP macro pass -I to protoc
+# for each directory where a proto file is referenced.
+if(NOT DEFINED PROTOBUF_GENERATE_CPP_APPEND_PATH)
+ set(PROTOBUF_GENERATE_CPP_APPEND_PATH TRUE)
+endif()
+
+
+# Google's provided vcproj files generate libraries with a "lib"
+# prefix on Windows
+if(MSVC)
+ set(Protobuf_ORIG_FIND_LIBRARY_PREFIXES "${CMAKE_FIND_LIBRARY_PREFIXES}")
+ set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
+
+ find_path(Protobuf_SRC_ROOT_FOLDER protobuf.pc.in)
+endif()
+
+if(UNIX)
+ # Protobuf headers may depend on threading.
+ find_package(Threads QUIET)
+endif()
+
+# The Protobuf library
+_protobuf_find_libraries(Protobuf protobuf)
+#DOC "The Google Protocol Buffers RELEASE Library"
+
+_protobuf_find_libraries(Protobuf_LITE protobuf-lite)
+
+# The Protobuf Protoc Library
+_protobuf_find_libraries(Protobuf_PROTOC protoc)
+
+# Restore original find library prefixes
+if(MSVC)
+ set(CMAKE_FIND_LIBRARY_PREFIXES "${Protobuf_ORIG_FIND_LIBRARY_PREFIXES}")
+endif()
+
+# Find the include directory
+find_path(Protobuf_INCLUDE_DIR
+ google/protobuf/service.h
+ PATHS ${Protobuf_SRC_ROOT_FOLDER}/src
+)
+mark_as_advanced(Protobuf_INCLUDE_DIR)
+
+# Find the protoc Executable
+find_program(Protobuf_PROTOC_EXECUTABLE
+ NAMES protoc
+ DOC "The Google Protocol Buffers Compiler"
+ PATHS
+ ${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Release
+ ${Protobuf_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Debug
+)
+mark_as_advanced(Protobuf_PROTOC_EXECUTABLE)
+
+if(Protobuf_DEBUG)
+ message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
+ "requested version of Google Protobuf is ${Protobuf_FIND_VERSION}")
+endif()
+
+if(Protobuf_INCLUDE_DIR)
+ set(_PROTOBUF_COMMON_HEADER ${Protobuf_INCLUDE_DIR}/google/protobuf/stubs/common.h)
+
+ if(Protobuf_DEBUG)
+ message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
+ "location of common.h: ${_PROTOBUF_COMMON_HEADER}")
+ endif()
+
+ set(Protobuf_VERSION "")
+ set(Protobuf_LIB_VERSION "")
+ file(STRINGS ${_PROTOBUF_COMMON_HEADER} _PROTOBUF_COMMON_H_CONTENTS REGEX "#define[ \t]+GOOGLE_PROTOBUF_VERSION[ \t]+")
+ if(_PROTOBUF_COMMON_H_CONTENTS MATCHES "#define[ \t]+GOOGLE_PROTOBUF_VERSION[ \t]+([0-9]+)")
+ set(Protobuf_LIB_VERSION "${CMAKE_MATCH_1}")
+ endif()
+ unset(_PROTOBUF_COMMON_H_CONTENTS)
+
+ math(EXPR _PROTOBUF_MAJOR_VERSION "${Protobuf_LIB_VERSION} / 1000000")
+ math(EXPR _PROTOBUF_MINOR_VERSION "${Protobuf_LIB_VERSION} / 1000 % 1000")
+ math(EXPR _PROTOBUF_SUBMINOR_VERSION "${Protobuf_LIB_VERSION} % 1000")
+ set(Protobuf_VERSION "${_PROTOBUF_MAJOR_VERSION}.${_PROTOBUF_MINOR_VERSION}.${_PROTOBUF_SUBMINOR_VERSION}")
+
+ if(Protobuf_DEBUG)
+ message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
+ "${_PROTOBUF_COMMON_HEADER} reveals protobuf ${Protobuf_VERSION}")
+ endif()
+
+ if(Protobuf_PROTOC_EXECUTABLE)
+ # Check Protobuf compiler version to be aligned with libraries version
+ execute_process(COMMAND ${Protobuf_PROTOC_EXECUTABLE} --version
+ OUTPUT_VARIABLE _PROTOBUF_PROTOC_EXECUTABLE_VERSION)
+
+ if("${_PROTOBUF_PROTOC_EXECUTABLE_VERSION}" MATCHES "libprotoc ([0-9.]+)")
+ set(_PROTOBUF_PROTOC_EXECUTABLE_VERSION "${CMAKE_MATCH_1}")
+ endif()
+
+ if(Protobuf_DEBUG)
+ message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
+ "${Protobuf_PROTOC_EXECUTABLE} reveals version ${_PROTOBUF_PROTOC_EXECUTABLE_VERSION}")
+ endif()
+
+ if(NOT "${_PROTOBUF_PROTOC_EXECUTABLE_VERSION}" VERSION_EQUAL "${Protobuf_VERSION}")
+ message(WARNING "Protobuf compiler version ${_PROTOBUF_PROTOC_EXECUTABLE_VERSION}"
+ " doesn't match library version ${Protobuf_VERSION}")
+ endif()
+ endif()
+
+ if(Protobuf_LIBRARY)
+ if(NOT TARGET protobuf::libprotobuf)
+ add_library(protobuf::libprotobuf UNKNOWN IMPORTED)
+ set_target_properties(protobuf::libprotobuf PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${Protobuf_INCLUDE_DIR}")
+ if(EXISTS "${Protobuf_LIBRARY}")
+ set_target_properties(protobuf::libprotobuf PROPERTIES
+ IMPORTED_LOCATION "${Protobuf_LIBRARY}")
+ endif()
+ if(EXISTS "${Protobuf_LIBRARY_RELEASE}")
+ set_property(TARGET protobuf::libprotobuf APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(protobuf::libprotobuf PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${Protobuf_LIBRARY_RELEASE}")
+ endif()
+ if(EXISTS "${Protobuf_LIBRARY_DEBUG}")
+ set_property(TARGET protobuf::libprotobuf APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(protobuf::libprotobuf PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${Protobuf_LIBRARY_DEBUG}")
+ endif()
+ if (Protobuf_VERSION VERSION_GREATER_EQUAL "3.6")
+ set_property(TARGET protobuf::libprotobuf APPEND PROPERTY
+ INTERFACE_COMPILE_FEATURES cxx_std_11
+ )
+ endif()
+ if (MSVC AND NOT Protobuf_USE_STATIC_LIBS)
+ set_property(TARGET protobuf::libprotobuf APPEND PROPERTY
+ INTERFACE_COMPILE_DEFINITIONS "PROTOBUF_USE_DLLS"
+ )
+ endif()
+ if(UNIX AND TARGET Threads::Threads)
+ set_property(TARGET protobuf::libprotobuf APPEND PROPERTY
+ INTERFACE_LINK_LIBRARIES Threads::Threads)
+ endif()
+ endif()
+ endif()
+
+ if(Protobuf_LITE_LIBRARY)
+ if(NOT TARGET protobuf::libprotobuf-lite)
+ add_library(protobuf::libprotobuf-lite UNKNOWN IMPORTED)
+ set_target_properties(protobuf::libprotobuf-lite PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${Protobuf_INCLUDE_DIR}")
+ if(EXISTS "${Protobuf_LITE_LIBRARY}")
+ set_target_properties(protobuf::libprotobuf-lite PROPERTIES
+ IMPORTED_LOCATION "${Protobuf_LITE_LIBRARY}")
+ endif()
+ if(EXISTS "${Protobuf_LITE_LIBRARY_RELEASE}")
+ set_property(TARGET protobuf::libprotobuf-lite APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(protobuf::libprotobuf-lite PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${Protobuf_LITE_LIBRARY_RELEASE}")
+ endif()
+ if(EXISTS "${Protobuf_LITE_LIBRARY_DEBUG}")
+ set_property(TARGET protobuf::libprotobuf-lite APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(protobuf::libprotobuf-lite PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${Protobuf_LITE_LIBRARY_DEBUG}")
+ endif()
+ if (MSVC AND NOT Protobuf_USE_STATIC_LIBS)
+ set_property(TARGET protobuf::libprotobuf-lite APPEND PROPERTY
+ INTERFACE_COMPILE_DEFINITIONS "PROTOBUF_USE_DLLS"
+ )
+ endif()
+ if(UNIX AND TARGET Threads::Threads)
+ set_property(TARGET protobuf::libprotobuf-lite APPEND PROPERTY
+ INTERFACE_LINK_LIBRARIES Threads::Threads)
+ endif()
+ endif()
+ endif()
+
+ if(Protobuf_PROTOC_LIBRARY)
+ if(NOT TARGET protobuf::libprotoc)
+ add_library(protobuf::libprotoc UNKNOWN IMPORTED)
+ set_target_properties(protobuf::libprotoc PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${Protobuf_INCLUDE_DIR}")
+ if(EXISTS "${Protobuf_PROTOC_LIBRARY}")
+ set_target_properties(protobuf::libprotoc PROPERTIES
+ IMPORTED_LOCATION "${Protobuf_PROTOC_LIBRARY}")
+ endif()
+ if(EXISTS "${Protobuf_PROTOC_LIBRARY_RELEASE}")
+ set_property(TARGET protobuf::libprotoc APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(protobuf::libprotoc PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${Protobuf_PROTOC_LIBRARY_RELEASE}")
+ endif()
+ if(EXISTS "${Protobuf_PROTOC_LIBRARY_DEBUG}")
+ set_property(TARGET protobuf::libprotoc APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(protobuf::libprotoc PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${Protobuf_PROTOC_LIBRARY_DEBUG}")
+ endif()
+ if (Protobuf_VERSION VERSION_GREATER_EQUAL "3.6")
+ set_property(TARGET protobuf::libprotoc APPEND PROPERTY
+ INTERFACE_COMPILE_FEATURES cxx_std_11
+ )
+ endif()
+ if (MSVC AND NOT Protobuf_USE_STATIC_LIBS)
+ set_property(TARGET protobuf::libprotoc APPEND PROPERTY
+ INTERFACE_COMPILE_DEFINITIONS "PROTOBUF_USE_DLLS"
+ )
+ endif()
+ if(UNIX AND TARGET Threads::Threads)
+ set_property(TARGET protobuf::libprotoc APPEND PROPERTY
+ INTERFACE_LINK_LIBRARIES Threads::Threads)
+ endif()
+ endif()
+ endif()
+
+ if(Protobuf_PROTOC_EXECUTABLE)
+ if(NOT TARGET protobuf::protoc)
+ add_executable(protobuf::protoc IMPORTED)
+ if(EXISTS "${Protobuf_PROTOC_EXECUTABLE}")
+ set_target_properties(protobuf::protoc PROPERTIES
+ IMPORTED_LOCATION "${Protobuf_PROTOC_EXECUTABLE}")
+ endif()
+ endif()
+ endif()
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Protobuf
+ REQUIRED_VARS Protobuf_LIBRARIES Protobuf_INCLUDE_DIR
+ VERSION_VAR Protobuf_VERSION
+)
+
+if(Protobuf_FOUND)
+ set(Protobuf_INCLUDE_DIRS ${Protobuf_INCLUDE_DIR})
+endif()
+
+# Restore the original find library ordering
+if( Protobuf_USE_STATIC_LIBS )
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${_protobuf_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
+endif()
+
+# Backwards compatibility
+# Define upper case versions of output variables
+foreach(Camel
+ Protobuf_SRC_ROOT_FOLDER
+ Protobuf_IMPORT_DIRS
+ Protobuf_DEBUG
+ Protobuf_INCLUDE_DIRS
+ Protobuf_LIBRARIES
+ Protobuf_PROTOC_LIBRARIES
+ Protobuf_LITE_LIBRARIES
+ Protobuf_LIBRARY
+ Protobuf_PROTOC_LIBRARY
+ Protobuf_INCLUDE_DIR
+ Protobuf_PROTOC_EXECUTABLE
+ Protobuf_LIBRARY_DEBUG
+ Protobuf_PROTOC_LIBRARY_DEBUG
+ Protobuf_LITE_LIBRARY
+ Protobuf_LITE_LIBRARY_DEBUG
+ )
+ string(TOUPPER ${Camel} UPPER)
+ set(${UPPER} ${${Camel}})
+endforeach()
diff --git a/share/cmake-3.17/Modules/FindPython.cmake b/share/cmake-3.17/Modules/FindPython.cmake
new file mode 100644
index 0000000..9dfa222
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindPython.cmake
@@ -0,0 +1,370 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindPython
+----------
+
+Find Python interpreter, compiler and development environment (include
+directories and libraries).
+
+The following components are supported:
+
+* ``Interpreter``: search for Python interpreter.
+* ``Compiler``: search for Python compiler. Only offered by IronPython.
+* ``Development``: search for development artifacts (include directories and
+ libraries).
+* ``NumPy``: search for NumPy include directories.
+
+If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
+
+To ensure consistent versions between components ``Interpreter``, ``Compiler``,
+``Development`` and ``NumPy``, specify all components at the same time::
+
+ find_package (Python COMPONENTS Interpreter Development)
+
+This module looks preferably for version 3 of Python. If not found, version 2
+is searched.
+To manage concurrent versions 3 and 2 of Python, use :module:`FindPython3` and
+:module:`FindPython2` modules rather than this one.
+
+.. note::
+
+ If components ``Interpreter`` and ``Development`` are both specified, this
+ module search only for interpreter with same platform architecture as the one
+ defined by ``CMake`` configuration. This contraint does not apply if only
+ ``Interpreter`` component is specified.
+
+Imported Targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :ref:`Imported Targets <Imported Targets>`
+(when :prop_gbl:`CMAKE_ROLE` is ``PROJECT``):
+
+``Python::Interpreter``
+ Python interpreter. Target defined if component ``Interpreter`` is found.
+``Python::Compiler``
+ Python compiler. Target defined if component ``Compiler`` is found.
+``Python::Python``
+ Python library for Python embedding. Target defined if component
+ ``Development`` is found.
+``Python::Module``
+ Python library for Python module. Target defined if component ``Development``
+ is found.
+``Python::NumPy``
+ NumPy Python library. Target defined if component ``NumPy`` is found.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project
+(see :ref:`Standard Variable Names <CMake Developer Standard Variable Names>`):
+
+``Python_FOUND``
+ System has the Python requested components.
+``Python_Interpreter_FOUND``
+ System has the Python interpreter.
+``Python_EXECUTABLE``
+ Path to the Python interpreter.
+``Python_INTERPRETER_ID``
+ A short string unique to the interpreter. Possible values include:
+ * Python
+ * ActivePython
+ * Anaconda
+ * Canopy
+ * IronPython
+``Python_STDLIB``
+ Standard platform independent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``.
+``Python_STDARCH``
+ Standard platform dependent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``.
+``Python_SITELIB``
+ Third-party platform independent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``.
+``Python_SITEARCH``
+ Third-party platform dependent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``.
+``Python_SOABI``
+ Extension suffix for modules.
+
+ Information returned by
+ ``distutils.sysconfig.get_config_flag('SOABI')`` or computed from
+ ``distutils.sysconfig.get_config_flag('EXT_SUFFIX')`` or
+ ``python-config --extension-suffix``.
+``Python_Compiler_FOUND``
+ System has the Python compiler.
+``Python_COMPILER``
+ Path to the Python compiler. Only offered by IronPython.
+``Python_COMPILER_ID``
+ A short string unique to the compiler. Possible values include:
+ * IronPython
+``Python_Development_FOUND``
+ System has the Python development artifacts.
+``Python_INCLUDE_DIRS``
+ The Python include directories.
+``Python_LIBRARIES``
+ The Python libraries.
+``Python_LIBRARY_DIRS``
+ The Python library directories.
+``Python_RUNTIME_LIBRARY_DIRS``
+ The Python runtime library directories.
+``Python_VERSION``
+ Python version.
+``Python_VERSION_MAJOR``
+ Python major version.
+``Python_VERSION_MINOR``
+ Python minor version.
+``Python_VERSION_PATCH``
+ Python patch version.
+``Python_NumPy_FOUND``
+ System has the NumPy.
+``Python_NumPy_INCLUDE_DIRS``
+ The NumPy include directries.
+``Python_NumPy_VERSION``
+ The NumPy version.
+
+Hints
+^^^^^
+
+``Python_ROOT_DIR``
+ Define the root directory of a Python installation.
+
+``Python_USE_STATIC_LIBS``
+ * If not defined, search for shared libraries and static libraries in that
+ order.
+ * If set to TRUE, search **only** for static libraries.
+ * If set to FALSE, search **only** for shared libraries.
+
+``Python_FIND_ABI``
+ This variable defines which ABIs, as defined in
+ `PEP 3149 <https://www.python.org/dev/peps/pep-3149/>`_, should be searched.
+
+ .. note::
+
+ This hint will be honored only when searched for ``Python`` version 3.
+
+ .. note::
+
+ If ``Python_FIND_ABI`` is not defined, any ABI will be searched.
+
+ The ``Python_FIND_ABI`` variable is a 3-tuple specifying, in that order,
+ ``pydebug`` (``d``), ``pymalloc`` (``m``) and ``unicode`` (``u``) flags.
+ Each element can be set to one of the following:
+
+ * ``ON``: Corresponding flag is selected.
+ * ``OFF``: Corresponding flag is not selected.
+ * ``ANY``: The two posibilties (``ON`` and ``OFF``) will be searched.
+
+ From this 3-tuple, various ABIs will be searched starting from the most
+ specialized to the most general. Moreover, ``debug`` versions will be
+ searched **after** ``non-debug`` ones.
+
+ For example, if we have::
+
+ set (Python_FIND_ABI "ON" "ANY" "ANY")
+
+ The following flags combinations will be appended, in that order, to the
+ artifact names: ``dmu``, ``dm``, ``du``, and ``d``.
+
+ And to search any possible ABIs::
+
+ set (Python_FIND_ABI "ANY" "ANY" "ANY")
+
+ The following combinations, in that order, will be used: ``mu``, ``m``,
+ ``u``, ``<empty>``, ``dmu``, ``dm``, ``du`` and ``d``.
+
+ .. note::
+
+ This hint is useful only on ``POSIX`` systems. So, on ``Windows`` systems,
+ when ``Python_FIND_ABI`` is defined, ``Python`` distributions from
+ `python.org <https://www.python.org/>`_ will be found only if value for
+ each flag is ``OFF`` or ``ANY``.
+
+``Python_FIND_STRATEGY``
+ This variable defines how lookup will be done.
+ The ``Python_FIND_STRATEGY`` variable can be set to empty or one of the
+ following:
+
+ * ``VERSION``: Try to find the most recent version in all specified
+ locations.
+ This is the default if policy :policy:`CMP0094` is undefined or set to
+ ``OLD``.
+ * ``LOCATION``: Stops lookup as soon as a version satisfying version
+ constraints is founded.
+ This is the default if policy :policy:`CMP0094` is set to ``NEW``.
+
+``Python_FIND_REGISTRY``
+ On Windows the ``Python_FIND_REGISTRY`` variable determine the order
+ of preference between registry and environment variables.
+ the ``Python_FIND_REGISTRY`` variable can be set to empty or one of the
+ following:
+
+ * ``FIRST``: Try to use registry before environment variables.
+ This is the default.
+ * ``LAST``: Try to use registry after environment variables.
+ * ``NEVER``: Never try to use registry.
+
+``Python_FIND_FRAMEWORK``
+ On macOS the ``Python_FIND_FRAMEWORK`` variable determine the order of
+ preference between Apple-style and unix-style package components.
+ This variable can be set to empty or take same values as
+ :variable:`CMAKE_FIND_FRAMEWORK` variable.
+
+ .. note::
+
+ Value ``ONLY`` is not supported so ``FIRST`` will be used instead.
+
+ If ``Python_FIND_FRAMEWORK`` is not defined, :variable:`CMAKE_FIND_FRAMEWORK`
+ variable will be used, if any.
+
+``Python_FIND_VIRTUALENV``
+ This variable defines the handling of virtual environments managed by
+ ``virtualenv`` or ``conda``. It is meaningful only when a virtual environment
+ is active (i.e. the ``activate`` script has been evaluated). In this case, it
+ takes precedence over ``Python_FIND_REGISTRY`` and ``CMAKE_FIND_FRAMEWORK``
+ variables. The ``Python_FIND_VIRTUALENV`` variable can be set to empty or
+ one of the following:
+
+ * ``FIRST``: The virtual environment is used before any other standard
+ paths to look-up for the interpreter. This is the default.
+ * ``ONLY``: Only the virtual environment is used to look-up for the
+ interpreter.
+ * ``STANDARD``: The virtual environment is not used to look-up for the
+ interpreter. In this case, variable ``Python_FIND_REGISTRY`` (Windows)
+ or ``CMAKE_FIND_FRAMEWORK`` (macOS) can be set with value ``LAST`` or
+ ``NEVER`` to select preferably the interpreter from the virtual
+ environment.
+
+ .. note::
+
+ If the component ``Development`` is requested, it is **strongly**
+ recommended to also include the component ``Interpreter`` to get expected
+ result.
+
+Artifacts Specification
+^^^^^^^^^^^^^^^^^^^^^^^
+
+To solve special cases, it is possible to specify directly the artifacts by
+setting the following variables:
+
+``Python_EXECUTABLE``
+ The path to the interpreter.
+
+``Python_COMPILER``
+ The path to the compiler.
+
+``Python_LIBRARY``
+ The path to the library. It will be used to compute the
+ variables ``Python_LIBRARIES``, ``Python_LIBRAY_DIRS`` and
+ ``Python_RUNTIME_LIBRARY_DIRS``.
+
+``Python_INCLUDE_DIR``
+ The path to the directory of the ``Python`` headers. It will be used to
+ compute the variable ``Python_INCLUDE_DIRS``.
+
+``Python_NumPy_INCLUDE_DIR``
+ The path to the directory of the ``NumPy`` headers. It will be used to
+ compute the variable ``Python_NumPy_INCLUDE_DIRS``.
+
+.. note::
+
+ All paths must be absolute. Any artifact specified with a relative path
+ will be ignored.
+
+.. note::
+
+ When an artifact is specified, all ``HINTS`` will be ignored and no search
+ will be performed for this artifact.
+
+ If more than one artifact is specified, it is the user's responsability to
+ ensure the consistency of the various artifacts.
+
+Commands
+^^^^^^^^
+
+This module defines the command ``Python_add_library`` (when
+:prop_gbl:`CMAKE_ROLE` is ``PROJECT``), which has the same semantics as
+:command:`add_library` and adds a dependency to target ``Python::Python`` or,
+when library type is ``MODULE``, to target ``Python::Module`` and takes care of
+Python module naming rules::
+
+ Python_add_library (<name> [STATIC | SHARED | MODULE [WITH_SOABI]]
+ <source1> [<source2> ...])
+
+If the library type is not specified, ``MODULE`` is assumed.
+
+For ``MODULE`` library type, if option ``WITH_SOABI`` is specified, the
+module suffix will include the ``Python_SOABI`` value, if any.
+#]=======================================================================]
+
+
+set (_PYTHON_PREFIX Python)
+
+if (DEFINED Python_FIND_VERSION)
+ set (_Python_REQUIRED_VERSION_MAJOR ${Python_FIND_VERSION_MAJOR})
+
+ include (${CMAKE_CURRENT_LIST_DIR}/FindPython/Support.cmake)
+else()
+ # iterate over versions in quiet and NOT required modes to avoid multiple
+ # "Found" messages and prematurally failure.
+ set (_Python_QUIETLY ${Python_FIND_QUIETLY})
+ set (_Python_REQUIRED ${Python_FIND_REQUIRED})
+ set (Python_FIND_QUIETLY TRUE)
+ set (Python_FIND_REQUIRED FALSE)
+
+ set (_Python_REQUIRED_VERSIONS 3 2)
+ set (_Python_REQUIRED_VERSION_LAST 2)
+
+ unset (_Python_INPUT_VARS)
+ foreach (_Python_ITEM IN ITEMS Python_EXECUTABLE Python_COMPILER Python_LIBRARY
+ Python_INCLUDE_DIR Python_NumPy_INCLUDE_DIR)
+ if (NOT DEFINED ${_Python_ITEM})
+ list (APPEND _Python_INPUT_VARS ${_Python_ITEM})
+ endif()
+ endforeach()
+
+ foreach (_Python_REQUIRED_VERSION_MAJOR IN LISTS _Python_REQUIRED_VERSIONS)
+ set (Python_FIND_VERSION ${_Python_REQUIRED_VERSION_MAJOR})
+ include (${CMAKE_CURRENT_LIST_DIR}/FindPython/Support.cmake)
+ if (Python_FOUND OR
+ _Python_REQUIRED_VERSION_MAJOR EQUAL _Python_REQUIRED_VERSION_LAST)
+ break()
+ endif()
+ # clean-up INPUT variables not set by the user
+ foreach (_Python_ITEM IN LISTS _Python_INPUT_VARS)
+ unset (${_Python_ITEM})
+ endforeach()
+ # clean-up some CACHE variables to ensure look-up restart from scratch
+ foreach (_Python_ITEM IN LISTS _Python_CACHED_VARS)
+ unset (${_Python_ITEM} CACHE)
+ endforeach()
+ endforeach()
+
+ unset (Python_FIND_VERSION)
+
+ set (Python_FIND_QUIETLY ${_Python_QUIETLY})
+ set (Python_FIND_REQUIRED ${_Python_REQUIRED})
+ if (Python_FIND_REQUIRED OR NOT Python_FIND_QUIETLY)
+ # call again validation command to get "Found" or error message
+ find_package_handle_standard_args (Python HANDLE_COMPONENTS
+ REQUIRED_VARS ${_Python_REQUIRED_VARS}
+ VERSION_VAR Python_VERSION)
+ endif()
+endif()
+
+if (COMMAND __Python_add_library)
+ macro (Python_add_library)
+ __Python_add_library (Python ${ARGV})
+ endmacro()
+endif()
+
+unset (_PYTHON_PREFIX)
diff --git a/share/cmake-3.17/Modules/FindPython/Support.cmake b/share/cmake-3.17/Modules/FindPython/Support.cmake
new file mode 100644
index 0000000..ce06458
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindPython/Support.cmake
@@ -0,0 +1,2584 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#
+# This file is a "template" file used by various FindPython modules.
+#
+
+cmake_policy (GET CMP0094 _${_PYTHON_PREFIX}_LOOKUP_POLICY)
+
+cmake_policy (VERSION 3.7)
+
+if (_${_PYTHON_PREFIX}_LOOKUP_POLICY)
+ cmake_policy (SET CMP0094 ${_${_PYTHON_PREFIX}_LOOKUP_POLICY})
+endif()
+
+#
+# Initial configuration
+#
+if (NOT DEFINED _PYTHON_PREFIX)
+ message (FATAL_ERROR "FindPython: INTERNAL ERROR")
+endif()
+if (NOT DEFINED _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+ message (FATAL_ERROR "FindPython: INTERNAL ERROR")
+endif()
+if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL 3)
+ set(_${_PYTHON_PREFIX}_VERSIONS 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
+elseif (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL 2)
+ set(_${_PYTHON_PREFIX}_VERSIONS 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0)
+else()
+ message (FATAL_ERROR "FindPython: INTERNAL ERROR")
+endif()
+
+get_property(_${_PYTHON_PREFIX}_CMAKE_ROLE GLOBAL PROPERTY CMAKE_ROLE)
+
+
+#
+# helper commands
+#
+macro (_PYTHON_DISPLAY_FAILURE _PYTHON_MSG)
+ if (${_PYTHON_PREFIX}_FIND_REQUIRED)
+ message (FATAL_ERROR "${_PYTHON_MSG}")
+ else()
+ if (NOT ${_PYTHON_PREFIX}_FIND_QUIETLY)
+ message(STATUS "${_PYTHON_MSG}")
+ endif ()
+ endif()
+
+ set (${_PYTHON_PREFIX}_FOUND FALSE)
+ string (TOUPPER "${_PYTHON_PREFIX}" _${_PYTHON_PREFIX}_UPPER_PREFIX)
+ set (${_PYTHON_UPPER_PREFIX}_FOUND FALSE)
+ return()
+endmacro()
+
+
+function (_PYTHON_MARK_AS_INTERNAL)
+ foreach (var IN LISTS ARGV)
+ if (DEFINED CACHE{${var}})
+ set_property (CACHE ${var} PROPERTY TYPE INTERNAL)
+ endif()
+ endforeach()
+endfunction()
+
+
+macro (_PYTHON_SELECT_LIBRARY_CONFIGURATIONS _PYTHON_BASENAME)
+ if(NOT DEFINED ${_PYTHON_BASENAME}_LIBRARY_RELEASE)
+ set(${_PYTHON_BASENAME}_LIBRARY_RELEASE "${_PYTHON_BASENAME}_LIBRARY_RELEASE-NOTFOUND")
+ endif()
+ if(NOT DEFINED ${_PYTHON_BASENAME}_LIBRARY_DEBUG)
+ set(${_PYTHON_BASENAME}_LIBRARY_DEBUG "${_PYTHON_BASENAME}_LIBRARY_DEBUG-NOTFOUND")
+ endif()
+
+ get_property(_PYTHON_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
+ if (${_PYTHON_BASENAME}_LIBRARY_DEBUG AND ${_PYTHON_BASENAME}_LIBRARY_RELEASE AND
+ NOT ${_PYTHON_BASENAME}_LIBRARY_DEBUG STREQUAL ${_PYTHON_BASENAME}_LIBRARY_RELEASE AND
+ (_PYTHON_isMultiConfig OR CMAKE_BUILD_TYPE))
+ # if the generator is multi-config or if CMAKE_BUILD_TYPE is set for
+ # single-config generators, set optimized and debug libraries
+ set (${_PYTHON_BASENAME}_LIBRARY "")
+ foreach (_PYTHON_libname IN LISTS ${_PYTHON_BASENAME}_LIBRARY_RELEASE )
+ list( APPEND ${_PYTHON_BASENAME}_LIBRARY optimized "${_PYTHON_libname}" )
+ endforeach()
+ foreach (_PYTHON_libname IN LISTS ${_PYTHON_BASENAME}_LIBRARY_DEBUG )
+ list( APPEND ${_PYTHON_BASENAME}_LIBRARY debug "${_PYTHON_libname}" )
+ endforeach()
+ elseif (${_PYTHON_BASENAME}_LIBRARY_RELEASE)
+ set (${_PYTHON_BASENAME}_LIBRARY "${${_PYTHON_BASENAME}_LIBRARY_RELEASE}")
+ elseif (${_PYTHON_BASENAME}_LIBRARY_DEBUG)
+ set (${_PYTHON_BASENAME}_LIBRARY "${${_PYTHON_BASENAME}_LIBRARY_DEBUG}")
+ else()
+ set (${_PYTHON_BASENAME}_LIBRARY "${_PYTHON_BASENAME}_LIBRARY-NOTFOUND")
+ endif()
+
+ set (${_PYTHON_BASENAME}_LIBRARIES "${${_PYTHON_BASENAME}_LIBRARY}")
+endmacro()
+
+
+macro (_PYTHON_FIND_FRAMEWORKS)
+ set (${_PYTHON_PREFIX}_FRAMEWORKS)
+ if (CMAKE_HOST_APPLE OR APPLE)
+ file(TO_CMAKE_PATH "$ENV{CMAKE_FRAMEWORK_PATH}" _pff_CMAKE_FRAMEWORK_PATH)
+ set (_pff_frameworks ${CMAKE_FRAMEWORK_PATH}
+ ${_pff_CMAKE_FRAMEWORK_PATH}
+ ~/Library/Frameworks
+ /usr/local/Frameworks
+ ${CMAKE_SYSTEM_FRAMEWORK_PATH})
+ list (REMOVE_DUPLICATES _pff_frameworks)
+ foreach (_pff_framework IN LISTS _pff_frameworks)
+ if (EXISTS ${_pff_framework}/Python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}.framework)
+ list (APPEND ${_PYTHON_PREFIX}_FRAMEWORKS ${_pff_framework}/Python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}.framework)
+ endif()
+ if (EXISTS ${_pff_framework}/Python.framework)
+ list (APPEND ${_PYTHON_PREFIX}_FRAMEWORKS ${_pff_framework}/Python.framework)
+ endif()
+ endforeach()
+ unset (_pff_frameworks)
+ unset (_pff_framework)
+ endif()
+endmacro()
+
+function (_PYTHON_GET_FRAMEWORKS _PYTHON_PGF_FRAMEWORK_PATHS _PYTHON_VERSION)
+ set (_PYTHON_FRAMEWORK_PATHS)
+ foreach (_PYTHON_FRAMEWORK IN LISTS ${_PYTHON_PREFIX}_FRAMEWORKS)
+ list (APPEND _PYTHON_FRAMEWORK_PATHS
+ "${_PYTHON_FRAMEWORK}/Versions/${_PYTHON_VERSION}")
+ endforeach()
+ set (${_PYTHON_PGF_FRAMEWORK_PATHS} ${_PYTHON_FRAMEWORK_PATHS} PARENT_SCOPE)
+endfunction()
+
+function (_PYTHON_GET_REGISTRIES _PYTHON_PGR_REGISTRY_PATHS _PYTHON_VERSION)
+ string (REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${_PYTHON_VERSION})
+ set (${_PYTHON_PGR_REGISTRY_PATHS}
+ [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
+ [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
+ [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}\\InstallPath]
+ [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_PYTHON_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
+ [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_PYTHON_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_PYTHON_VERSION}\\InstallPath]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_PYTHON_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${_PYTHON_VERSION_NO_DOTS}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
+ PARENT_SCOPE)
+endfunction()
+
+
+function (_PYTHON_GET_ABIFLAGS _PGABIFLAGS)
+ set (abiflags)
+ list (GET _${_PYTHON_PREFIX}_FIND_ABI 0 pydebug)
+ list (GET _${_PYTHON_PREFIX}_FIND_ABI 1 pymalloc)
+ list (GET _${_PYTHON_PREFIX}_FIND_ABI 2 unicode)
+
+ if (pymalloc STREQUAL "ANY" AND unicode STREQUAL "ANY")
+ set (abiflags "mu" "m" "u" "")
+ elseif (pymalloc STREQUAL "ANY" AND unicode STREQUAL "ON")
+ set (abiflags "mu" "u")
+ elseif (pymalloc STREQUAL "ANY" AND unicode STREQUAL "OFF")
+ set (abiflags "m" "")
+ elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "ANY")
+ set (abiflags "mu" "m")
+ elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "ON")
+ set (abiflags "mu")
+ elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "OFF")
+ set (abiflags "m")
+ elseif (pymalloc STREQUAL "ON" AND unicode STREQUAL "ANY")
+ set (abiflags "u" "")
+ elseif (pymalloc STREQUAL "OFF" AND unicode STREQUAL "ON")
+ set (abiflags "u")
+ endif()
+
+ if (pydebug STREQUAL "ON")
+ if (abiflags)
+ list (TRANSFORM abiflags PREPEND "d")
+ else()
+ set (abiflags "d")
+ endif()
+ elseif (pydebug STREQUAL "ANY")
+ if (abiflags)
+ set (flags "${abiflags}")
+ list (TRANSFORM flags PREPEND "d")
+ list (APPEND abiflags "${flags}")
+ else()
+ set (abiflags "" "d")
+ endif()
+ endif()
+
+ set (${_PGABIFLAGS} "${abiflags}" PARENT_SCOPE)
+endfunction()
+
+function (_PYTHON_GET_PATH_SUFFIXES _PYTHON_PGPS_PATH_SUFFIXES)
+ cmake_parse_arguments (PARSE_ARGV 1 _PGPS "LIBRARY;INCLUDE" "VERSION" "")
+
+ if (DEFINED _${_PYTHON_PREFIX}_ABIFLAGS)
+ set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}")
+ else()
+ set (abi "mu" "m" "u" "")
+ endif()
+
+ set (path_suffixes)
+ if (_PGPS_LIBRARY)
+ if (CMAKE_LIBRARY_ARCHITECTURE)
+ list (APPEND path_suffixes lib/${CMAKE_LIBRARY_ARCHITECTURE})
+ endif()
+ list (APPEND path_suffixes lib libs)
+
+ if (CMAKE_LIBRARY_ARCHITECTURE)
+ set (suffixes "${abi}")
+ if (suffixes)
+ list (TRANSFORM suffixes PREPEND "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}")
+ list (TRANSFORM suffixes APPEND "-${CMAKE_LIBRARY_ARCHITECTURE}")
+ else()
+ set (suffixes "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}-${CMAKE_LIBRARY_ARCHITECTURE}")
+ endif()
+ list (APPEND path_suffixes ${suffixes})
+ endif()
+ set (suffixes "${abi}")
+ if (suffixes)
+ list (TRANSFORM suffixes PREPEND "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}")
+ else()
+ set (suffixes "lib/python${_PGPS_VERSION}/config-${_PGPS_VERSION}")
+ endif()
+ list (APPEND path_suffixes ${suffixes})
+ elseif (_PGPS_INCLUDE)
+ set (suffixes "${abi}")
+ if (suffixes)
+ list (TRANSFORM suffixes PREPEND "include/python${_PGPS_VERSION}")
+ else()
+ set (suffixes "include/python${_PGPS_VERSION}")
+ endif()
+ list (APPEND path_suffixes ${suffixes} include)
+ endif()
+
+ set (${_PYTHON_PGPS_PATH_SUFFIXES} ${path_suffixes} PARENT_SCOPE)
+endfunction()
+
+function (_PYTHON_GET_NAMES _PYTHON_PGN_NAMES)
+ cmake_parse_arguments (PARSE_ARGV 1 _PGN "POSIX;EXECUTABLE;CONFIG;LIBRARY;WIN32;DEBUG" "VERSION" "")
+
+ set (names)
+
+ if (_PGN_WIN32)
+ string (REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${_PGN_VERSION})
+
+ set (name python${_PYTHON_VERSION_NO_DOTS})
+ if (_PGN_DEBUG)
+ string (APPEND name "_d")
+ endif()
+
+ list (APPEND names "${name}")
+ endif()
+
+ if (_PGN_POSIX)
+ if (DEFINED _${_PYTHON_PREFIX}_ABIFLAGS)
+ set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}")
+ else()
+ if (_PGN_EXECUTABLE OR _PGN_CONFIG)
+ set (abi "")
+ else()
+ set (abi "mu" "m" "u" "")
+ endif()
+ endif()
+
+ if (abi)
+ if (_PGN_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
+ set (abinames "${abi}")
+ list (TRANSFORM abinames PREPEND "${CMAKE_LIBRARY_ARCHITECTURE}-python${_PGN_VERSION}")
+ list (TRANSFORM abinames APPEND "-config")
+ list (APPEND names ${abinames})
+ endif()
+ set (abinames "${abi}")
+ list (TRANSFORM abinames PREPEND "python${_PGN_VERSION}")
+ if (_PGN_CONFIG)
+ list (TRANSFORM abinames APPEND "-config")
+ endif()
+ list (APPEND names ${abinames})
+ else()
+ if (_PGN_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
+ set (abinames "${CMAKE_LIBRARY_ARCHITECTURE}-python${_PGN_VERSION}")
+ endif()
+ list (APPEND abinames "python${_PGN_VERSION}")
+ if (_PGN_CONFIG)
+ list (TRANSFORM abinames APPEND "-config")
+ endif()
+ list (APPEND names ${abinames})
+ endif()
+ endif()
+
+ set (${_PYTHON_PGN_NAMES} ${names} PARENT_SCOPE)
+endfunction()
+
+function (_PYTHON_GET_CONFIG_VAR _PYTHON_PGCV_VALUE NAME)
+ unset (${_PYTHON_PGCV_VALUE} PARENT_SCOPE)
+
+ if (NOT NAME MATCHES "^(PREFIX|ABIFLAGS|CONFIGDIR|INCLUDES|LIBS|SOABI)$")
+ return()
+ endif()
+
+ if (_${_PYTHON_PREFIX}_CONFIG)
+ if (NAME STREQUAL "SOABI")
+ set (config_flag "--extension-suffix")
+ else()
+ set (config_flag "--${NAME}")
+ endif()
+ string (TOLOWER "${config_flag}" config_flag)
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" ${config_flag}
+ RESULT_VARIABLE _result
+ OUTPUT_VARIABLE _values
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (_result)
+ unset (_values)
+ else()
+ if (NAME STREQUAL "INCLUDES")
+ # do some clean-up
+ string (REGEX MATCHALL "(-I|-iwithsysroot)[ ]*[^ ]+" _values "${_values}")
+ string (REGEX REPLACE "(-I|-iwithsysroot)[ ]*" "" _values "${_values}")
+ list (REMOVE_DUPLICATES _values)
+ elseif (NAME STREQUAL "SOABI")
+ # clean-up: remove prefix character and suffix
+ string (REGEX REPLACE "^[.-](.+)(${CMAKE_SHARED_LIBRARY_SUFFIX}|\\.(so|pyd))$" "\\1" _values "${_values}")
+ endif()
+ endif()
+ endif()
+
+ if (_${_PYTHON_PREFIX}_EXECUTABLE AND NOT CMAKE_CROSSCOMPILING)
+ if (NAME STREQUAL "PREFIX")
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig; sys.stdout.write(';'.join([sysconfig.PREFIX,sysconfig.EXEC_PREFIX,sysconfig.BASE_EXEC_PREFIX]))"
+ RESULT_VARIABLE _result
+ OUTPUT_VARIABLE _values
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (_result)
+ unset (_values)
+ else()
+ list (REMOVE_DUPLICATES _values)
+ endif()
+ elseif (NAME STREQUAL "INCLUDES")
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig; sys.stdout.write(';'.join([sysconfig.get_python_inc(plat_specific=True),sysconfig.get_python_inc(plat_specific=False)]))"
+ RESULT_VARIABLE _result
+ OUTPUT_VARIABLE _values
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (_result)
+ unset (_values)
+ endif()
+ elseif (NAME STREQUAL "SOABI")
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig;sys.stdout.write(';'.join([sysconfig.get_config_var('SOABI') or '',sysconfig.get_config_var('EXT_SUFFIX') or '']))"
+ RESULT_VARIABLE _result
+ OUTPUT_VARIABLE _soabi
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (_result)
+ unset (_values)
+ else()
+ list (GET _soabi 0 _values)
+ if (NOT _values)
+ # try to compute SOABI from EXT_SUFFIX
+ list (GET _soabi 1 _values)
+ if (_values)
+ # clean-up: remove prefix character and suffix
+ string (REGEX REPLACE "^[.-](.+)(${CMAKE_SHARED_LIBRARY_SUFFIX}|\\.(so|pyd))$" "\\1" _values "${_values}")
+ endif()
+ endif()
+ endif()
+ else()
+ set (config_flag "${NAME}")
+ if (NAME STREQUAL "CONFIGDIR")
+ set (config_flag "LIBPL")
+ endif()
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_config_var('${config_flag}'))"
+ RESULT_VARIABLE _result
+ OUTPUT_VARIABLE _values
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (_result)
+ unset (_values)
+ endif()
+ endif()
+ endif()
+
+ if (config_flag STREQUAL "ABIFLAGS")
+ set (${_PYTHON_PGCV_VALUE} "${_values}" PARENT_SCOPE)
+ return()
+ endif()
+
+ if (NOT _values OR _values STREQUAL "None")
+ return()
+ endif()
+
+ if (NAME STREQUAL "LIBS")
+ # do some clean-up
+ string (REGEX MATCHALL "-(l|framework)[ ]*[^ ]+" _values "${_values}")
+ # remove elements relative to python library itself
+ list (FILTER _values EXCLUDE REGEX "-lpython")
+ list (REMOVE_DUPLICATES _values)
+ endif()
+
+ set (${_PYTHON_PGCV_VALUE} "${_values}" PARENT_SCOPE)
+endfunction()
+
+function (_PYTHON_GET_VERSION)
+ cmake_parse_arguments (PARSE_ARGV 0 _PGV "LIBRARY;INCLUDE" "PREFIX" "")
+
+ unset (${_PGV_PREFIX}VERSION PARENT_SCOPE)
+ unset (${_PGV_PREFIX}VERSION_MAJOR PARENT_SCOPE)
+ unset (${_PGV_PREFIX}VERSION_MINOR PARENT_SCOPE)
+ unset (${_PGV_PREFIX}VERSION_PATCH PARENT_SCOPE)
+ unset (${_PGV_PREFIX}ABI PARENT_SCOPE)
+
+ if (_PGV_LIBRARY)
+ # retrieve version and abi from library name
+ if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ # extract version from library name
+ if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "python([23])([0-9]+)")
+ set (${_PGV_PREFIX}VERSION_MAJOR "${CMAKE_MATCH_1}" PARENT_SCOPE)
+ set (${_PGV_PREFIX}VERSION_MINOR "${CMAKE_MATCH_2}" PARENT_SCOPE)
+ set (${_PGV_PREFIX}VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}" PARENT_SCOPE)
+ set (${_PGV_PREFIX}ABI "" PARENT_SCOPE)
+ elseif (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "python([23])\\.([0-9]+)([dmu]*)")
+ set (${_PGV_PREFIX}VERSION_MAJOR "${CMAKE_MATCH_1}" PARENT_SCOPE)
+ set (${_PGV_PREFIX}VERSION_MINOR "${CMAKE_MATCH_2}" PARENT_SCOPE)
+ set (${_PGV_PREFIX}VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}" PARENT_SCOPE)
+ set (${_PGV_PREFIX}ABI "${CMAKE_MATCH_3}" PARENT_SCOPE)
+ endif()
+ endif()
+ else()
+ if (_${_PYTHON_PREFIX}_INCLUDE_DIR)
+ # retrieve version from header file
+ file (STRINGS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}/patchlevel.h" version
+ REGEX "^#define[ \t]+PY_VERSION[ \t]+\"[^\"]+\"")
+ string (REGEX REPLACE "^#define[ \t]+PY_VERSION[ \t]+\"([^\"]+)\".*" "\\1"
+ version "${version}")
+ string (REGEX MATCHALL "[0-9]+" versions "${version}")
+ list (GET versions 0 version_major)
+ list (GET versions 1 version_minor)
+ list (GET versions 2 version_patch)
+
+ set (${_PGV_PREFIX}VERSION "${version_major}.${version_minor}" PARENT_SCOPE)
+ set (${_PGV_PREFIX}VERSION_MAJOR ${version_major} PARENT_SCOPE)
+ set (${_PGV_PREFIX}VERSION_MINOR ${version_minor} PARENT_SCOPE)
+ set (${_PGV_PREFIX}VERSION_PATCH ${version_patch} PARENT_SCOPE)
+
+ # compute ABI flags
+ if (version_major VERSION_GREATER 2)
+ file (STRINGS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}/pyconfig.h" config REGEX "(Py_DEBUG|WITH_PYMALLOC|Py_UNICODE_SIZE|MS_WIN32)")
+ set (abi)
+ if (config MATCHES "#[ ]*define[ ]+MS_WIN32")
+ # ABI not used on Windows
+ set (abi "")
+ else()
+ if (config MATCHES "#[ ]*define[ ]+Py_DEBUG[ ]+1")
+ string (APPEND abi "d")
+ endif()
+ if (config MATCHES "#[ ]*define[ ]+WITH_PYMALLOC[ ]+1")
+ string (APPEND abi "m")
+ endif()
+ if (config MATCHES "#[ ]*define[ ]+Py_UNICODE_SIZE[ ]+4")
+ string (APPEND abi "u")
+ endif()
+ set (${_PGV_PREFIX}ABI "${abi}" PARENT_SCOPE)
+ endif()
+ else()
+ # ABI not supported
+ set (${_PGV_PREFIX}ABI "" PARENT_SCOPE)
+ endif()
+ endif()
+ endif()
+endfunction()
+
+
+function (_PYTHON_VALIDATE_INTERPRETER)
+ if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
+ return()
+ endif()
+
+ cmake_parse_arguments (PARSE_ARGV 0 _PVI "EXACT;CHECK_EXISTS" "" "")
+ if (_PVI_UNPARSED_ARGUMENTS)
+ set (expected_version ${_PVI_UNPARSED_ARGUMENTS})
+ else()
+ unset (expected_version)
+ endif()
+
+ if (_PVI_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_EXECUTABLE}")
+ # interpreter does not exist anymore
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot find the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+ return()
+ endif()
+
+ # validate ABI compatibility
+ if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI)
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys; sys.stdout.write(sys.abiflags)"
+ RESULT_VARIABLE result
+ OUTPUT_VARIABLE abi
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (result)
+ # assume ABI is not supported
+ set (abi "")
+ endif()
+ if (NOT abi IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
+ # incompatible ABI
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong ABI for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+ return()
+ endif()
+ endif()
+
+ get_filename_component (python_name "${_${_PYTHON_PREFIX}_EXECUTABLE}" NAME)
+
+ if (expected_version AND NOT python_name STREQUAL "python${expected_version}${abi}${CMAKE_EXECUTABLE_SUFFIX}")
+ # executable found must have a specific version
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:2]]))"
+ RESULT_VARIABLE result
+ OUTPUT_VARIABLE version
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (result)
+ # interpreter is not usable
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+ else()
+ if (_PVI_EXACT AND NOT version VERSION_EQUAL expected_version)
+ # interpreter has wrong version
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+ else()
+ # check that version is OK
+ string(REGEX REPLACE "^([0-9]+)\\..*$" "\\1" major_version "${version}")
+ string(REGEX REPLACE "^([0-9]+)\\.?.*$" "\\1" expected_major_version "${expected_version}")
+ if (NOT major_version VERSION_EQUAL expected_major_version
+ OR NOT version VERSION_GREATER_EQUAL expected_version)
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+ endif()
+ endif()
+ endif()
+ if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
+ return()
+ endif()
+ else()
+ if (NOT python_name STREQUAL "python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}${CMAKE_EXECUTABLE_SUFFIX}")
+ # executable found do not have version in name
+ # ensure major version is OK
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys; sys.stdout.write(str(sys.version_info[0]))"
+ RESULT_VARIABLE result
+ OUTPUT_VARIABLE version
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (result OR NOT version EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+ # interpreter not usable or has wrong major version
+ if (result)
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
+ else()
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong major version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
+ endif()
+ set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+ return()
+ endif()
+ endif()
+ endif()
+
+ if (CMAKE_SIZEOF_VOID_P AND "Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+ AND NOT CMAKE_CROSSCOMPILING)
+ # In this case, interpreter must have same architecture as environment
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys, struct; sys.stdout.write(str(struct.calcsize(\"P\")))"
+ RESULT_VARIABLE result
+ OUTPUT_VARIABLE size
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (result OR NOT size EQUAL CMAKE_SIZEOF_VOID_P)
+ # interpreter not usable or has wrong architecture
+ if (result)
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
+ else()
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong architecture for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
+ endif()
+ set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+ return()
+ endif()
+ endif()
+endfunction()
+
+
+function (_PYTHON_VALIDATE_COMPILER expected_version)
+ if (NOT _${_PYTHON_PREFIX}_COMPILER)
+ return()
+ endif()
+
+ cmake_parse_arguments (_PVC "EXACT;CHECK_EXISTS" "" "" ${ARGN})
+ if (_PVC_UNPARSED_ARGUMENTS)
+ set (major_version FALSE)
+ set (expected_version ${_PVC_UNPARSED_ARGUMENTS})
+ else()
+ set (major_version TRUE)
+ set (expected_version ${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR})
+ set (_PVC_EXACT TRUE)
+ endif()
+
+ if (_PVC_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_COMPILER}")
+ # Compiler does not exist anymore
+ set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Cannot find the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
+ return()
+ endif()
+
+ # retrieve python environment version from compiler
+ set (working_dir "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/PythonCompilerVersion.dir")
+ if (major_version)
+ # check only major version
+ file (WRITE "${working_dir}/version.py" "import sys; sys.stdout.write(str(sys.version_info[0]))")
+ else()
+ file (WRITE "${working_dir}/version.py" "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:2]]))\n")
+ endif()
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_COMPILER}" /target:exe /embed "${working_dir}/version.py"
+ WORKING_DIRECTORY "${working_dir}"
+ OUTPUT_QUIET
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process (COMMAND "${working_dir}/version"
+ WORKING_DIRECTORY "${working_dir}"
+ RESULT_VARIABLE result
+ OUTPUT_VARIABLE version
+ ERROR_QUIET)
+ file (REMOVE_RECURSE "${_${_PYTHON_PREFIX}_VERSION_DIR}")
+
+ if (result OR (_PVC_EXACT AND NOT version VERSION_EQUAL expected_version) OR (version VERSION_LESS expected_version))
+ # Compiler not usable or has wrong version
+ if (result)
+ set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Cannot use the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"")
+ else()
+ set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Wrong version for the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"")
+ endif()
+ set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
+ endif()
+endfunction()
+
+
+function (_PYTHON_VALIDATE_LIBRARY)
+ if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ return()
+ endif()
+
+ cmake_parse_arguments (PARSE_ARGV 0 _PVL "EXACT;CHECK_EXISTS" "" "")
+ if (_PVL_UNPARSED_ARGUMENTS)
+ set (expected_version ${_PVL_UNPARSED_ARGUMENTS})
+ else()
+ unset (expected_version)
+ endif()
+
+ if (_PVL_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
+ # library does not exist anymore
+ set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Cannot find the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
+ if (WIN32)
+ set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_DEBUG PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_DEBUG-NOTFOUND")
+ endif()
+ set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+ return()
+ endif()
+
+ # retrieve version and abi from library name
+ _python_get_version (LIBRARY PREFIX lib_)
+
+ if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT lib_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
+ # incompatible ABI
+ set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong ABI for the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
+ else()
+ if (expected_version)
+ if ((_PVL_EXACT AND NOT lib_VERSION VERSION_EQUAL expected_version) OR (lib_VERSION VERSION_LESS expected_version))
+ # library has wrong version
+ set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong version for the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
+ endif()
+ else()
+ if (NOT lib_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+ # library has wrong major version
+ set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong major version for the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
+ endif()
+ endif()
+ endif()
+
+ if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ if (WIN32)
+ set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_DEBUG PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_DEBUG-NOTFOUND")
+ endif()
+ unset (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE CACHE)
+ unset (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG CACHE)
+ set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+ endif()
+endfunction()
+
+
+function (_PYTHON_VALIDATE_INCLUDE_DIR)
+ if (NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
+ return()
+ endif()
+
+ cmake_parse_arguments (PARSE_ARGV 0 _PVID "EXACT;CHECK_EXISTS" "" "")
+ if (_PVID_UNPARSED_ARGUMENTS)
+ set (expected_version ${_PVID_UNPARSED_ARGUMENTS})
+ else()
+ unset (expected_version)
+ endif()
+
+ if (_PVID_CHECK_EXISTS AND NOT EXISTS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
+ # include file does not exist anymore
+ set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Cannot find the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+ return()
+ endif()
+
+ # retrieve version from header file
+ _python_get_version (INCLUDE PREFIX inc_)
+
+ if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT inc_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
+ # incompatible ABI
+ set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong ABI for the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+ else()
+ if (expected_version)
+ if ((_PVID_EXACT AND NOT inc_VERSION VERSION_EQUAL expected_version) OR (inc_VERSION VERSION_LESS expected_version))
+ # include dir has wrong version
+ set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong version for the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+ endif()
+ else()
+ if (NOT inc_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+ # include dir has wrong major version
+ set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong major version for the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+ endif()
+ endif()
+ endif()
+endfunction()
+
+
+function (_PYTHON_FIND_RUNTIME_LIBRARY _PYTHON_LIB)
+ string (REPLACE "_RUNTIME" "" _PYTHON_LIB "${_PYTHON_LIB}")
+ # look at runtime part on systems supporting it
+ if (CMAKE_SYSTEM_NAME STREQUAL "Windows" OR
+ (CMAKE_SYSTEM_NAME MATCHES "MSYS|CYGWIN"
+ AND ${_PYTHON_LIB} MATCHES "${CMAKE_IMPORT_LIBRARY_SUFFIX}$"))
+ set (CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_SHARED_LIBRARY_SUFFIX})
+ # MSYS has a special syntax for runtime libraries
+ if (CMAKE_SYSTEM_NAME MATCHES "MSYS")
+ list (APPEND CMAKE_FIND_LIBRARY_PREFIXES "msys-")
+ endif()
+ find_library (${ARGV})
+ endif()
+endfunction()
+
+
+function (_PYTHON_SET_LIBRARY_DIRS _PYTHON_SLD_RESULT)
+ unset (_PYTHON_DIRS)
+ set (_PYTHON_LIBS ${ARGN})
+ foreach (_PYTHON_LIB IN LISTS _PYTHON_LIBS)
+ if (${_PYTHON_LIB})
+ get_filename_component (_PYTHON_DIR "${${_PYTHON_LIB}}" DIRECTORY)
+ list (APPEND _PYTHON_DIRS "${_PYTHON_DIR}")
+ endif()
+ endforeach()
+ if (_PYTHON_DIRS)
+ list (REMOVE_DUPLICATES _PYTHON_DIRS)
+ endif()
+ set (${_PYTHON_SLD_RESULT} ${_PYTHON_DIRS} PARENT_SCOPE)
+endfunction()
+
+
+# If major version is specified, it must be the same as internal major version
+if (DEFINED ${_PYTHON_PREFIX}_FIND_VERSION_MAJOR
+ AND NOT ${_PYTHON_PREFIX}_FIND_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+ _python_display_failure ("Could NOT find ${_PYTHON_PREFIX}: Wrong major version specified is \"${${_PYTHON_PREFIX}_FIND_VERSION_MAJOR}\", but expected major version is \"${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}\"")
+endif()
+
+
+# handle components
+if (NOT ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+ set (${_PYTHON_PREFIX}_FIND_COMPONENTS Interpreter)
+ set (${_PYTHON_PREFIX}_FIND_REQUIRED_Interpreter TRUE)
+endif()
+if ("NumPy" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+ list (APPEND ${_PYTHON_PREFIX}_FIND_COMPONENTS "Interpreter" "Development")
+ list (REMOVE_DUPLICATES ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+endif()
+foreach (_${_PYTHON_PREFIX}_COMPONENT IN ITEMS Interpreter Compiler Development NumPy)
+ set (${_PYTHON_PREFIX}_${_${_PYTHON_PREFIX}_COMPONENT}_FOUND FALSE)
+endforeach()
+unset (_${_PYTHON_PREFIX}_FIND_VERSIONS)
+
+# Set versions to search
+## default: search any version
+set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${_${_PYTHON_PREFIX}_VERSIONS})
+
+if (${_PYTHON_PREFIX}_FIND_VERSION_COUNT GREATER 1)
+ if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
+ set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_FIND_VERSION_MAJOR}.${${_PYTHON_PREFIX}_FIND_VERSION_MINOR})
+ else()
+ unset (_${_PYTHON_PREFIX}_FIND_VERSIONS)
+ # add all compatible versions
+ foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_VERSIONS)
+ if (_${_PYTHON_PREFIX}_VERSION VERSION_GREATER_EQUAL ${_PYTHON_PREFIX}_FIND_VERSION)
+ list (APPEND _${_PYTHON_PREFIX}_FIND_VERSIONS ${_${_PYTHON_PREFIX}_VERSION})
+ endif()
+ endforeach()
+ endif()
+endif()
+
+# Set ABIs to search
+## default: search any ABI
+if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_LESS 3)
+ # ABI not supported
+ unset (_${_PYTHON_PREFIX}_FIND_ABI)
+ set (_${_PYTHON_PREFIX}_ABIFLAGS "")
+else()
+ unset (_${_PYTHON_PREFIX}_FIND_ABI)
+ unset (_${_PYTHON_PREFIX}_ABIFLAGS)
+ if (DEFINED ${_PYTHON_PREFIX}_FIND_ABI)
+ # normalization
+ string (TOUPPER "${${_PYTHON_PREFIX}_FIND_ABI}" _${_PYTHON_PREFIX}_FIND_ABI)
+ list (TRANSFORM _${_PYTHON_PREFIX}_FIND_ABI REPLACE "^(TRUE|Y(ES)?|1)$" "ON")
+ list (TRANSFORM _${_PYTHON_PREFIX}_FIND_ABI REPLACE "^(FALSE|N(O)?|0)$" "OFF")
+ if (NOT _${_PYTHON_PREFIX}_FIND_ABI MATCHES "^(ON|OFF|ANY);(ON|OFF|ANY);(ON|OFF|ANY)$")
+ message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_ABI}: invalid value for '${_PYTHON_PREFIX}_FIND_ABI'. Ignore it")
+ unset (_${_PYTHON_PREFIX}_FIND_ABI)
+ endif()
+ _python_get_abiflags (_${_PYTHON_PREFIX}_ABIFLAGS)
+ endif()
+endif()
+unset (${_PYTHON_PREFIX}_SOABI)
+
+# Define lookup strategy
+if (_${_PYTHON_PREFIX}_LOOKUP_POLICY STREQUAL "NEW")
+ set (_${_PYTHON_PREFIX}_FIND_STRATEGY "LOCATION")
+else()
+ set (_${_PYTHON_PREFIX}_FIND_STRATEGY "VERSION")
+endif()
+if (DEFINED ${_PYTHON_PREFIX}_FIND_STRATEGY)
+ if (NOT ${_PYTHON_PREFIX}_FIND_STRATEGY MATCHES "^(VERSION|LOCATION)$")
+ message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_STRATEGY}: invalid value for '${_PYTHON_PREFIX}_FIND_STRATEGY'. 'VERSION' or 'LOCATION' expected.")
+ set (_${_PYTHON_PREFIX}_FIND_STRATEGY "VERSION")
+ else()
+ set (_${_PYTHON_PREFIX}_FIND_STRATEGY "${${_PYTHON_PREFIX}_FIND_STRATEGY}")
+ endif()
+endif()
+
+# 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")
+ set (_${_PYTHON_PREFIX}_ARCH2 ${_${_PYTHON_PREFIX}_ARCH})
+else()
+ # architecture unknown, search for both 64bit and 32bit
+ set (_${_PYTHON_PREFIX}_ARCH 64)
+ set (_${_PYTHON_PREFIX}_ARCH2 32)
+endif()
+
+# IronPython support
+if (CMAKE_SIZEOF_VOID_P)
+ # In this case, search only for 64bit or 32bit
+ math (EXPR _${_PYTHON_PREFIX}_ARCH "${CMAKE_SIZEOF_VOID_P} * 8")
+ set (_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES ipy${_${_PYTHON_PREFIX}_ARCH} ipy)
+else()
+ # architecture unknown, search for natural interpreter
+ set (_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES ipy)
+endif()
+set (_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES net45 net40)
+
+# Apple frameworks handling
+_python_find_frameworks ()
+
+set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK "FIRST")
+
+if (DEFINED ${_PYTHON_PREFIX}_FIND_FRAMEWORK)
+ if (NOT ${_PYTHON_PREFIX}_FIND_FRAMEWORK MATCHES "^(FIRST|LAST|NEVER)$")
+ message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_FRAMEWORK}: invalid value for '${_PYTHON_PREFIX}_FIND_FRAMEWORK'. 'FIRST', 'LAST' or 'NEVER' expected. 'FIRST' will be used instead.")
+ else()
+ set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK ${${_PYTHON_PREFIX}_FIND_FRAMEWORK})
+ endif()
+elseif (DEFINED CMAKE_FIND_FRAMEWORK)
+ if (CMAKE_FIND_FRAMEWORK STREQUAL "ONLY")
+ message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: CMAKE_FIND_FRAMEWORK: 'ONLY' value is not supported. 'FIRST' will be used instead.")
+ elseif (NOT CMAKE_FIND_FRAMEWORK MATCHES "^(FIRST|LAST|NEVER)$")
+ message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${CMAKE_FIND_FRAMEWORK}: invalid value for 'CMAKE_FIND_FRAMEWORK'. 'FIRST', 'LAST' or 'NEVER' expected. 'FIRST' will be used instead.")
+ else()
+ set (_${_PYTHON_PREFIX}_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
+ endif()
+endif()
+
+# Save CMAKE_FIND_APPBUNDLE
+if (DEFINED CMAKE_FIND_APPBUNDLE)
+ set (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE ${CMAKE_FIND_APPBUNDLE})
+else()
+ unset (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
+endif()
+# To avoid app bundle lookup
+set (CMAKE_FIND_APPBUNDLE "NEVER")
+
+# Save CMAKE_FIND_FRAMEWORK
+if (DEFINED CMAKE_FIND_FRAMEWORK)
+ set (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
+else()
+ unset (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
+endif()
+# To avoid framework lookup
+set (CMAKE_FIND_FRAMEWORK "NEVER")
+
+# Windows Registry handling
+if (DEFINED ${_PYTHON_PREFIX}_FIND_REGISTRY)
+ if (NOT ${_PYTHON_PREFIX}_FIND_REGISTRY MATCHES "^(FIRST|LAST|NEVER)$")
+ message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_REGISTRY}: invalid value for '${_PYTHON_PREFIX}_FIND_REGISTRY'. 'FIRST', 'LAST' or 'NEVER' expected. 'FIRST' will be used instead.")
+ set (_${_PYTHON_PREFIX}_FIND_REGISTRY "FIRST")
+ else()
+ set (_${_PYTHON_PREFIX}_FIND_REGISTRY ${${_PYTHON_PREFIX}_FIND_REGISTRY})
+ endif()
+else()
+ set (_${_PYTHON_PREFIX}_FIND_REGISTRY "FIRST")
+endif()
+
+# virtual environments recognition
+if (DEFINED ENV{VIRTUAL_ENV} OR DEFINED ENV{CONDA_PREFIX})
+ if (DEFINED ${_PYTHON_PREFIX}_FIND_VIRTUALENV)
+ if (NOT ${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY|STANDARD)$")
+ message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${${_PYTHON_PREFIX}_FIND_VIRTUALENV}: invalid value for '${_PYTHON_PREFIX}_FIND_VIRTUALENV'. 'FIRST', 'ONLY' or 'STANDARD' expected. 'FIRST' will be used instead.")
+ set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV "FIRST")
+ else()
+ set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV ${${_PYTHON_PREFIX}_FIND_VIRTUALENV})
+ endif()
+ else()
+ set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV FIRST)
+ endif()
+else()
+ set (_${_PYTHON_PREFIX}_FIND_VIRTUALENV STANDARD)
+endif()
+
+
+# Compute search signature
+# This signature will be used to check validity of cached variables on new search
+set (_${_PYTHON_PREFIX}_SIGNATURE "${${_PYTHON_PREFIX}_ROOT_DIR}:${${_PYTHON_PREFIX}_FIND_STRATEGY}:${${_PYTHON_PREFIX}_FIND_VIRTUALENV}")
+if (NOT WIN32)
+ string (APPEND _${_PYTHON_PREFIX}_SIGNATURE ":${${_PYTHON_PREFIX}_USE_STATIC_LIBS}:")
+endif()
+if (CMAKE_HOST_APPLE)
+ string (APPEND _${_PYTHON_PREFIX}_SIGNATURE ":${${_PYTHON_PREFIX}_FIND_FRAMEWORK}")
+endif()
+if (CMAKE_HOST_WIN32)
+ string (APPEND _${_PYTHON_PREFIX}_SIGNATURE ":${${_PYTHON_PREFIX}_FIND_REGISTRY}")
+endif()
+
+
+unset (_${_PYTHON_PREFIX}_REQUIRED_VARS)
+unset (_${_PYTHON_PREFIX}_CACHED_VARS)
+unset (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE)
+unset (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE)
+unset (_${_PYTHON_PREFIX}_Development_REASON_FAILURE)
+unset (_${_PYTHON_PREFIX}_NumPy_REASON_FAILURE)
+
+
+# first step, search for the interpreter
+if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+ list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_EXECUTABLE)
+ if (${_PYTHON_PREFIX}_FIND_REQUIRED_Interpreter)
+ list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_EXECUTABLE)
+ endif()
+
+ if (DEFINED ${_PYTHON_PREFIX}_EXECUTABLE
+ AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_EXECUTABLE}")
+ if (NOT ${_PYTHON_PREFIX}_EXECUTABLE STREQUAL _${_PYTHON_PREFIX}_EXECUTABLE)
+ # invalidate cache properties
+ unset (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES CACHE)
+ endif()
+ set (_${_PYTHON_PREFIX}_EXECUTABLE "${${_PYTHON_PREFIX}_EXECUTABLE}" CACHE INTERNAL "")
+ elseif (DEFINED _${_PYTHON_PREFIX}_EXECUTABLE)
+ # compute interpreter signature and check validity of definition
+ string (MD5 __${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_EXECUTABLE}")
+ if (__${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE)
+ # check version validity
+ if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
+ else()
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
+ endif()
+ else()
+ unset (_${_PYTHON_PREFIX}_EXECUTABLE CACHE)
+ endif()
+ if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
+ unset (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE CACHE)
+ unset (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES CACHE)
+ endif()
+ endif()
+
+ if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
+ set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
+
+ if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
+ unset (_${_PYTHON_PREFIX}_NAMES)
+ unset (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
+ unset (_${_PYTHON_PREFIX}_REGISTRY_PATHS)
+
+ foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
+ # build all executable names
+ _python_get_names (_${_PYTHON_PREFIX}_VERSION_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX EXECUTABLE)
+ list (APPEND _${_PYTHON_PREFIX}_NAMES ${_${_PYTHON_PREFIX}_VERSION_NAMES})
+
+ # Framework Paths
+ _python_get_frameworks (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_VERSION})
+ list (APPEND _${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS})
+
+ # Registry Paths
+ _python_get_registries (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_VERSION})
+ list (APPEND _${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS}
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath])
+ endforeach()
+ list (APPEND _${_PYTHON_PREFIX}_NAMES python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR} python)
+
+ while (TRUE)
+ # Virtual environments handling
+ if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX
+ PATH_SUFFIXES bin Scripts
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+ if (NOT _${_PYTHON_PREFIX}_FIND_VIRTUALENV STREQUAL "ONLY")
+ break()
+ endif()
+ endif()
+
+ # Apple frameworks handling
+ if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ PATH_SUFFIXES bin
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+ endif()
+ # Windows registry
+ if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+ endif()
+
+ # try using HINTS
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+ # try using standard paths
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
+ NAMES_PER_DIR
+ PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES})
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+
+ # Apple frameworks handling
+ if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ NAMES_PER_DIR
+ PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ PATH_SUFFIXES bin
+ NO_DEFAULT_PATH)
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+ endif()
+ # Windows registry
+ if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
+ NAMES_PER_DIR
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
+ NO_DEFAULT_PATH)
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+ endif()
+
+ break()
+ endwhile()
+ else()
+ # look-up for various versions and locations
+ foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
+ _python_get_names (_${_PYTHON_PREFIX}_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX EXECUTABLE)
+ list (APPEND _${_PYTHON_PREFIX}_NAMES python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
+ python)
+
+ _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION})
+ _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_VERSION})
+
+ # Virtual environments handling
+ if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX
+ PATH_SUFFIXES bin Scripts
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+ if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV STREQUAL "ONLY")
+ continue()
+ endif()
+ endif()
+
+ # Apple frameworks handling
+ if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ PATH_SUFFIXES bin
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ endif()
+
+ # Windows registry
+ if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
+ PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ endif()
+
+ _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+
+ # try using HINTS
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+ # try using standard paths.
+ # NAMES_PER_DIR is not defined on purpose to have a chance to find
+ # expected version.
+ # For example, typical systems have 'python' for version 2.* and 'python3'
+ # for version 3.*. So looking for names per dir will find, potentially,
+ # systematically 'python' (i.e. version 2) even if version 3 is searched.
+ if (CMAKE_HOST_WIN32)
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ python
+ ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES})
+ else()
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES})
+ endif()
+ _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+
+ # Apple frameworks handling
+ if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ NAMES_PER_DIR
+ PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ PATH_SUFFIXES bin
+ NO_DEFAULT_PATH)
+ endif()
+
+ # Windows registry
+ if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES}
+ NAMES_PER_DIR
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
+ PATH_SUFFIXES bin ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
+ NO_DEFAULT_PATH)
+ endif()
+
+ _python_validate_interpreter (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+ endforeach()
+
+ if (NOT _${_PYTHON_PREFIX}_EXECUTABLE AND
+ NOT _${_PYTHON_PREFIX}_FIND_VIRTUALENV STREQUAL "ONLY")
+ # No specific version found. Retry with generic names and standard paths.
+ # NAMES_PER_DIR is not defined on purpose to have a chance to find
+ # expected version.
+ # For example, typical systems have 'python' for version 2.* and 'python3'
+ # for version 3.*. So looking for names per dir will find, potentially,
+ # systematically 'python' (i.e. version 2) even if version 3 is searched.
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}
+ python
+ ${_${_PYTHON_PREFIX}_IRON_PYTHON_NAMES})
+ _python_validate_interpreter ()
+ endif()
+ endif()
+ endif()
+
+ set (${_PYTHON_PREFIX}_EXECUTABLE "${_${_PYTHON_PREFIX}_EXECUTABLE}")
+
+ # retrieve exact version of executable found
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:3]]))"
+ RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+ OUTPUT_VARIABLE ${_PYTHON_PREFIX}_VERSION
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (NOT _${_PYTHON_PREFIX}_RESULT)
+ set (_${_PYTHON_PREFIX}_EXECUTABLE_USABLE TRUE)
+ else()
+ # Interpreter is not usable
+ set (_${_PYTHON_PREFIX}_EXECUTABLE_USABLE FALSE)
+ unset (${_PYTHON_PREFIX}_VERSION)
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot run the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"")
+ endif()
+ endif()
+
+ if (_${_PYTHON_PREFIX}_EXECUTABLE AND _${_PYTHON_PREFIX}_EXECUTABLE_USABLE)
+ if (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES)
+ set (${_PYTHON_PREFIX}_Interpreter_FOUND TRUE)
+
+ list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 0 ${_PYTHON_PREFIX}_INTERPRETER_ID)
+
+ list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 1 ${_PYTHON_PREFIX}_VERSION_MAJOR)
+ list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 2 ${_PYTHON_PREFIX}_VERSION_MINOR)
+ list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 3 ${_PYTHON_PREFIX}_VERSION_PATH)
+
+ list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 4 _${_PYTHON_PREFIX}_ARCH)
+ set (_${_PYTHON_PREFIX}_ARCH2 ${_${_PYTHON_PREFIX}_ARCH})
+
+ list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 5 _${_PYTHON_PREFIX}_ABIFLAGS)
+ list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 6 ${_PYTHON_PREFIX}_SOABI)
+
+ list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 7 ${_PYTHON_PREFIX}_STDLIB)
+ list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 8 ${_PYTHON_PREFIX}_STDARCH)
+ list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 9 ${_PYTHON_PREFIX}_SITELIB)
+ list (GET _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES 10 ${_PYTHON_PREFIX}_SITEARCH)
+ else()
+ string (REGEX MATCHALL "[0-9]+" _${_PYTHON_PREFIX}_VERSIONS "${${_PYTHON_PREFIX}_VERSION}")
+ list (GET _${_PYTHON_PREFIX}_VERSIONS 0 ${_PYTHON_PREFIX}_VERSION_MAJOR)
+ list (GET _${_PYTHON_PREFIX}_VERSIONS 1 ${_PYTHON_PREFIX}_VERSION_MINOR)
+ list (GET _${_PYTHON_PREFIX}_VERSIONS 2 ${_PYTHON_PREFIX}_VERSION_PATCH)
+
+ if (${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+ set (${_PYTHON_PREFIX}_Interpreter_FOUND TRUE)
+
+ # Use interpreter version and ABI for future searches to ensure consistency
+ set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR})
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; sys.stdout.write(sys.abiflags)"
+ RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+ OUTPUT_VARIABLE _${_PYTHON_PREFIX}_ABIFLAGS
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (_${_PYTHON_PREFIX}_RESULT)
+ # assunme ABI is not supported
+ set (_${_PYTHON_PREFIX}_ABIFLAGS "")
+ endif()
+ endif()
+
+ if (${_PYTHON_PREFIX}_Interpreter_FOUND)
+ # compute and save interpreter signature
+ string (MD5 __${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_EXECUTABLE}")
+ set (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE "${__${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}" CACHE INTERNAL "")
+
+ 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
+ OUTPUT_VARIABLE ${_PYTHON_PREFIX}_INTERPRETER_ID
+ ERROR_VARIABLE ${_PYTHON_PREFIX}_INTERPRETER_ID)
+ if (NOT _${_PYTHON_PREFIX}_RESULT)
+ if (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "Anaconda")
+ set (${_PYTHON_PREFIX}_INTERPRETER_ID "Anaconda")
+ elseif (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "Enthought")
+ set (${_PYTHON_PREFIX}_INTERPRETER_ID "Canopy")
+ else()
+ string (REGEX REPLACE "^([^ ]+).*" "\\1" ${_PYTHON_PREFIX}_INTERPRETER_ID "${${_PYTHON_PREFIX}_INTERPRETER_ID}")
+ if (${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "Python")
+ # try to get a more precise ID
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; print(sys.copyright)"
+ RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+ OUTPUT_VARIABLE ${_PYTHON_PREFIX}_COPYRIGHT
+ ERROR_QUIET)
+ if (${_PYTHON_PREFIX}_COPYRIGHT MATCHES "ActiveState")
+ set (${_PYTHON_PREFIX}_INTERPRETER_ID "ActivePython")
+ endif()
+ endif()
+ endif()
+ else()
+ set (${_PYTHON_PREFIX}_INTERPRETER_ID Python)
+ endif()
+
+ # retrieve various package installation directories
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys; from distutils import sysconfig;sys.stdout.write(';'.join([sysconfig.get_python_lib(plat_specific=False,standard_lib=True),sysconfig.get_python_lib(plat_specific=True,standard_lib=True),sysconfig.get_python_lib(plat_specific=False,standard_lib=False),sysconfig.get_python_lib(plat_specific=True,standard_lib=False)]))"
+ RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+ OUTPUT_VARIABLE _${_PYTHON_PREFIX}_LIBPATHS
+ ERROR_QUIET)
+ if (NOT _${_PYTHON_PREFIX}_RESULT)
+ list (GET _${_PYTHON_PREFIX}_LIBPATHS 0 ${_PYTHON_PREFIX}_STDLIB)
+ list (GET _${_PYTHON_PREFIX}_LIBPATHS 1 ${_PYTHON_PREFIX}_STDARCH)
+ list (GET _${_PYTHON_PREFIX}_LIBPATHS 2 ${_PYTHON_PREFIX}_SITELIB)
+ list (GET _${_PYTHON_PREFIX}_LIBPATHS 3 ${_PYTHON_PREFIX}_SITEARCH)
+ else()
+ unset (${_PYTHON_PREFIX}_STDLIB)
+ unset (${_PYTHON_PREFIX}_STDARCH)
+ unset (${_PYTHON_PREFIX}_SITELIB)
+ unset (${_PYTHON_PREFIX}_SITEARCH)
+ endif()
+
+ if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_GREATER_EQUAL 3)
+ _python_get_config_var (${_PYTHON_PREFIX}_SOABI SOABI)
+ endif()
+
+ # store properties in the cache to speed-up future searches
+ set (_${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES
+ "${${_PYTHON_PREFIX}_INTERPRETER_ID};${${_PYTHON_PREFIX}_VERSION_MAJOR};${${_PYTHON_PREFIX}_VERSION_MINOR};${${_PYTHON_PREFIX}_VERSION_PATCH};${_${_PYTHON_PREFIX}_ARCH};${_${_PYTHON_PREFIX}_ABIFLAGS};${${_PYTHON_PREFIX}_SOABI};${${_PYTHON_PREFIX}_STDLIB};${${_PYTHON_PREFIX}_STDARCH};${${_PYTHON_PREFIX}_SITELIB};${${_PYTHON_PREFIX}_SITEARCH}" CACHE INTERNAL "${_PYTHON_PREFIX} Properties")
+ else()
+ unset (_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE CACHE)
+ unset (${_PYTHON_PREFIX}_INTERPRETER_ID)
+ endif()
+ endif()
+ endif()
+
+ _python_mark_as_internal (_${_PYTHON_PREFIX}_EXECUTABLE
+ _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES
+ _${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE)
+endif()
+
+
+# second step, search for compiler (IronPython)
+if ("Compiler" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+ list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_COMPILER)
+ if (${_PYTHON_PREFIX}_FIND_REQUIRED_Compiler)
+ list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_COMPILER)
+ endif()
+
+ if (DEFINED ${_PYTHON_PREFIX}_COMPILER
+ AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_COMPILER}")
+ set (_${_PYTHON_PREFIX}_COMPILER "${${_PYTHON_PREFIX}_COMPILER}" CACHE INTERNAL "")
+ elseif (DEFINED _${_PYTHON_PREFIX}_COMPILER)
+ # compute compiler signature and check validity of definition
+ string (MD5 __${_PYTHON_PREFIX}_COMPILER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_COMPILER}")
+ if (__${_PYTHON_PREFIX}_COMPILER_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_COMPILER_SIGNATURE)
+ # check version validity
+ if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
+ _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
+ else()
+ _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
+ endif()
+ else()
+ unset (_${_PYTHON_PREFIX}_COMPILER CACHE)
+ unset (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE CACHE)
+ endif()
+ endif()
+
+ if (NOT _${_PYTHON_PREFIX}_COMPILER)
+ # IronPython specific artifacts
+ # If IronPython interpreter is found, use its path
+ unset (_${_PYTHON_PREFIX}_IRON_ROOT)
+ if (${_PYTHON_PREFIX}_Interpreter_FOUND AND ${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "IronPython")
+ get_filename_component (_${_PYTHON_PREFIX}_IRON_ROOT "${${_PYTHON_PREFIX}_EXECUTABLE}" DIRECTORY)
+ endif()
+
+ if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
+ set (_${_PYTHON_PREFIX}_REGISTRY_PATHS)
+
+ foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
+ # Registry Paths
+ list (APPEND _${_PYTHON_PREFIX}_REGISTRY_PATHS
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath])
+ endforeach()
+
+ while (TRUE)
+ if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ipyc
+ HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION})
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+ endif()
+
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ipyc
+ HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION})
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+
+ if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ipyc
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
+ NO_DEFAULT_PATH)
+ endif()
+
+ break()
+ endwhile()
+ else()
+ # try using root dir and registry
+ foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
+ if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ipyc
+ HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+ endif()
+
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ipyc
+ HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+
+ if (_${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ipyc
+ PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${_${_PYTHON_PREFIX}_VERSION}\\InstallPath]
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
+ NO_DEFAULT_PATH)
+ _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+ endif()
+ endforeach()
+
+ # no specific version found, re-try in standard paths
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ipyc
+ HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES})
+ endif()
+ endif()
+
+ set (${_PYTHON_PREFIX}_COMPILER "${_${_PYTHON_PREFIX}_COMPILER}")
+
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ # retrieve python environment version from compiler
+ set (_${_PYTHON_PREFIX}_VERSION_DIR "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/PythonCompilerVersion.dir")
+ file (WRITE "${_${_PYTHON_PREFIX}_VERSION_DIR}/version.py" "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:3]]))\n")
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_COMPILER}" /target:exe /embed "${_${_PYTHON_PREFIX}_VERSION_DIR}/version.py"
+ WORKING_DIRECTORY "${_${_PYTHON_PREFIX}_VERSION_DIR}"
+ OUTPUT_QUIET
+ ERROR_QUIET)
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_VERSION_DIR}/version"
+ WORKING_DIRECTORY "${_${_PYTHON_PREFIX}_VERSION_DIR}"
+ RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+ OUTPUT_VARIABLE _${_PYTHON_PREFIX}_VERSION
+ ERROR_QUIET)
+ if (NOT _${_PYTHON_PREFIX}_RESULT)
+ set (_${_PYTHON_PREFIX}_COMPILER_USABLE TRUE)
+ string (REGEX MATCHALL "[0-9]+" _${_PYTHON_PREFIX}_VERSIONS "${_${_PYTHON_PREFIX}_VERSION}")
+ list (GET _${_PYTHON_PREFIX}_VERSIONS 0 _${_PYTHON_PREFIX}_VERSION_MAJOR)
+ list (GET _${_PYTHON_PREFIX}_VERSIONS 1 _${_PYTHON_PREFIX}_VERSION_MINOR)
+ list (GET _${_PYTHON_PREFIX}_VERSIONS 2 _${_PYTHON_PREFIX}_VERSION_PATCH)
+
+ if (NOT ${_PYTHON_PREFIX}_Interpreter_FOUND)
+ # set public version information
+ set (${_PYTHON_PREFIX}_VERSION ${_${_PYTHON_PREFIX}_VERSION})
+ set (${_PYTHON_PREFIX}_VERSION_MAJOR ${_${_PYTHON_PREFIX}_VERSION_MAJOR})
+ set (${_PYTHON_PREFIX}_VERSION_MINOR ${_${_PYTHON_PREFIX}_VERSION_MINOR})
+ set (${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_VERSION_PATCH})
+ endif()
+ else()
+ # compiler not usable
+ set (_${_PYTHON_PREFIX}_COMPILER_USABLE FALSE)
+ set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Cannot run the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"")
+ endif()
+ file (REMOVE_RECURSE "${_${_PYTHON_PREFIX}_VERSION_DIR}")
+ endif()
+
+ if (_${_PYTHON_PREFIX}_COMPILER AND _${_PYTHON_PREFIX}_COMPILER_USABLE)
+ if (${_PYTHON_PREFIX}_Interpreter_FOUND)
+ # Compiler must be compatible with interpreter
+ if (${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR} VERSION_EQUAL ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR})
+ set (${_PYTHON_PREFIX}_Compiler_FOUND TRUE)
+ endif()
+ elseif (${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+ set (${_PYTHON_PREFIX}_Compiler_FOUND TRUE)
+ # Use compiler version for future searches to ensure consistency
+ set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR})
+ endif()
+ endif()
+
+ if (${_PYTHON_PREFIX}_Compiler_FOUND)
+ # compute and save compiler signature
+ string (MD5 __${_PYTHON_PREFIX}_COMPILER_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_COMPILER}")
+ set (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE "${__${_PYTHON_PREFIX}_COMPILER_SIGNATURE}" CACHE INTERNAL "")
+
+ set (${_PYTHON_PREFIX}_COMPILER_ID IronPython)
+ else()
+ unset (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE CACHE)
+ unset (${_PYTHON_PREFIX}_COMPILER_ID)
+ endif()
+
+ _python_mark_as_internal (_${_PYTHON_PREFIX}_COMPILER
+ _${_PYTHON_PREFIX}_COMPILER_SIGNATURE)
+endif()
+
+
+# third step, search for the development artifacts
+## Development environment is not compatible with IronPython interpreter
+if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+ AND NOT ${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "IronPython")
+ list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_LIBRARY_RELEASE
+ _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
+ _${_PYTHON_PREFIX}_LIBRARY_DEBUG
+ _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG
+ _${_PYTHON_PREFIX}_INCLUDE_DIR)
+ if (${_PYTHON_PREFIX}_FIND_REQUIRED_Development)
+ list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_LIBRARIES
+ ${_PYTHON_PREFIX}_INCLUDE_DIRS)
+ endif()
+
+ if (DEFINED _${_PYTHON_PREFIX}_LIBRARY_RELEASE OR DEFINED _${_PYTHON_PREFIX}_INCLUDE_DIR)
+ # compute development signature and check validity of definition
+ string (MD5 __${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}:${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
+ if (WIN32 AND NOT DEFINED _${_PYTHON_PREFIX}_LIBRARY_DEBUG)
+ set (_${_PYTHON_PREFIX}_LIBRARY_DEBUG "${_PYTHON_PREFIX}_LIBRARY_DEBUG-NOTFOUND" CACHE INTERNAL "")
+ endif()
+ if (NOT DEFINED _${_PYTHON_PREFIX}_INCLUDE_DIR)
+ set (_${_PYTHON_PREFIX}_INCLUDE_DIR "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND" CACHE INTERNAL "")
+ endif()
+ if (__${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE)
+ # check version validity
+ if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
+ _python_validate_library (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
+ _python_validate_include_dir (${${_PYTHON_PREFIX}_FIND_VERSION} EXACT CHECK_EXISTS)
+ else()
+ _python_validate_library (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
+ _python_validate_include_dir (${${_PYTHON_PREFIX}_FIND_VERSION} CHECK_EXISTS)
+ endif()
+ else()
+ unset (_${_PYTHON_PREFIX}_LIBRARY_RELEASE CACHE)
+ unset (_${_PYTHON_PREFIX}_LIBRARY_DEBUG CACHE)
+ unset (_${_PYTHON_PREFIX}_INCLUDE_DIR CACHE)
+ endif()
+ endif()
+ if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE OR NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
+ unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+ unset (_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE CACHE)
+ endif()
+
+ if (DEFINED ${_PYTHON_PREFIX}_LIBRARY
+ AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_LIBRARY}")
+ set (_${_PYTHON_PREFIX}_LIBRARY_RELEASE "${${_PYTHON_PREFIX}_LIBRARY}" CACHE INTERNAL "")
+ unset (_${_PYTHON_PREFIX}_LIBRARY_DEBUG CACHE)
+ unset (_${_PYTHON_PREFIX}_INCLUDE_DIR CACHE)
+ endif()
+ if (DEFINED ${_PYTHON_PREFIX}_INCLUDE_DIR
+ AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_INCLUDE_DIR}")
+ set (_${_PYTHON_PREFIX}_INCLUDE_DIR "${${_PYTHON_PREFIX}_INCLUDE_DIR}" CACHE INTERNAL "")
+ endif()
+
+ # Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
+ unset (_${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES)
+ if (DEFINED ${_PYTHON_PREFIX}_USE_STATIC_LIBS AND NOT WIN32)
+ set(_${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ if(${_PYTHON_PREFIX}_USE_STATIC_LIBS)
+ set (CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
+ else()
+ list (REMOVE_ITEM CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
+ endif()
+ endif()
+
+ if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE OR NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
+ # if python interpreter is found, use it to look-up for artifacts
+ # to ensure consistency between interpreter and development environments.
+ # If not, try to locate a compatible config tool
+ if (NOT ${_PYTHON_PREFIX}_Interpreter_FOUND OR CMAKE_CROSSCOMPILING)
+ set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
+ unset (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS)
+ if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
+ set (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX)
+ endif()
+ unset (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
+
+ if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
+ set (_${_PYTHON_PREFIX}_CONFIG_NAMES)
+
+ foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
+ _python_get_names (_${_PYTHON_PREFIX}_VERSION_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX CONFIG)
+ list (APPEND _${_PYTHON_PREFIX}_CONFIG_NAMES ${_${_PYTHON_PREFIX}_VERSION_NAMES})
+
+ # Framework Paths
+ _python_get_frameworks (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_VERSION})
+ list (APPEND _${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS})
+ endforeach()
+
+ # Apple frameworks handling
+ if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+ find_program (_${_PYTHON_PREFIX}_CONFIG
+ NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+ ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ PATH_SUFFIXES bin
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ endif()
+
+ find_program (_${_PYTHON_PREFIX}_CONFIG
+ NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+ PATH_SUFFIXES bin)
+
+ # Apple frameworks handling
+ if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+ find_program (_${_PYTHON_PREFIX}_CONFIG
+ NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
+ NAMES_PER_DIR
+ PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ PATH_SUFFIXES bin
+ NO_DEFAULT_PATH)
+ endif()
+
+ if (_${_PYTHON_PREFIX}_CONFIG)
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --help
+ RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+ OUTPUT_VARIABLE __${_PYTHON_PREFIX}_HELP
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (_${_PYTHON_PREFIX}_RESULT)
+ # assume config tool is not usable
+ unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+ endif()
+ endif()
+
+ if (_${_PYTHON_PREFIX}_CONFIG)
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --abiflags
+ RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+ OUTPUT_VARIABLE __${_PYTHON_PREFIX}_ABIFLAGS
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (_${_PYTHON_PREFIX}_RESULT)
+ # assume ABI is not supported
+ set (__${_PYTHON_PREFIX}_ABIFLAGS "")
+ endif()
+ if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT __${_PYTHON_PREFIX}_ABIFLAGS IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
+ # Wrong ABI
+ unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+ endif()
+ endif()
+
+ if (_${_PYTHON_PREFIX}_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
+ # check that config tool match library architecture
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --configdir
+ RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+ OUTPUT_VARIABLE _${_PYTHON_PREFIX}_CONFIGDIR
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (_${_PYTHON_PREFIX}_RESULT)
+ unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+ else()
+ string(FIND "${_${_PYTHON_PREFIX}_CONFIGDIR}" "${CMAKE_LIBRARY_ARCHITECTURE}" _${_PYTHON_PREFIX}_RESULT)
+ if (_${_PYTHON_PREFIX}_RESULT EQUAL -1)
+ unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+ endif()
+ endif()
+ endif()
+ else()
+ foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
+ # try to use pythonX.Y-config tool
+ _python_get_names (_${_PYTHON_PREFIX}_CONFIG_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} POSIX CONFIG)
+
+ # Framework Paths
+ _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION})
+
+ # Apple frameworks handling
+ if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+ find_program (_${_PYTHON_PREFIX}_CONFIG
+ NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+ ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ PATH_SUFFIXES bin
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ endif()
+
+ find_program (_${_PYTHON_PREFIX}_CONFIG
+ NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+ PATH_SUFFIXES bin)
+
+ # Apple frameworks handling
+ if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+ find_program (_${_PYTHON_PREFIX}_CONFIG
+ NAMES ${_${_PYTHON_PREFIX}_CONFIG_NAMES}
+ NAMES_PER_DIR
+ PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ PATH_SUFFIXES bin
+ NO_DEFAULT_PATH)
+ endif()
+
+ unset (_${_PYTHON_PREFIX}_CONFIG_NAMES)
+
+ if (_${_PYTHON_PREFIX}_CONFIG)
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --help
+ RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+ OUTPUT_VARIABLE __${_PYTHON_PREFIX}_HELP
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (_${_PYTHON_PREFIX}_RESULT)
+ # assume config tool is not usable
+ unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+ endif()
+ endif()
+
+ if (NOT _${_PYTHON_PREFIX}_CONFIG)
+ continue()
+ endif()
+
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --abiflags
+ RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+ OUTPUT_VARIABLE __${_PYTHON_PREFIX}_ABIFLAGS
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (_${_PYTHON_PREFIX}_RESULT)
+ # assume ABI is not supported
+ set (__${_PYTHON_PREFIX}_ABIFLAGS "")
+ endif()
+ if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT __${_PYTHON_PREFIX}_ABIFLAGS IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)
+ # Wrong ABI
+ unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+ continue()
+ endif()
+
+ if (_${_PYTHON_PREFIX}_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
+ # check that config tool match library architecture
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --configdir
+ RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+ OUTPUT_VARIABLE _${_PYTHON_PREFIX}_CONFIGDIR
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (_${_PYTHON_PREFIX}_RESULT)
+ unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+ continue()
+ endif()
+ string (FIND "${_${_PYTHON_PREFIX}_CONFIGDIR}" "${CMAKE_LIBRARY_ARCHITECTURE}" _${_PYTHON_PREFIX}_RESULT)
+ if (_${_PYTHON_PREFIX}_RESULT EQUAL -1)
+ unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+ continue()
+ endif()
+ endif()
+
+ if (_${_PYTHON_PREFIX}_CONFIG)
+ break()
+ endif()
+ endforeach()
+ endif()
+ endif()
+ endif()
+
+ if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ if ((${_PYTHON_PREFIX}_Interpreter_FOUND AND NOT CMAKE_CROSSCOMPILING) OR _${_PYTHON_PREFIX}_CONFIG)
+ # retrieve root install directory
+ _python_get_config_var (_${_PYTHON_PREFIX}_PREFIX PREFIX)
+
+ # enforce current ABI
+ _python_get_config_var (_${_PYTHON_PREFIX}_ABIFLAGS ABIFLAGS)
+
+ set (_${_PYTHON_PREFIX}_HINTS "${_${_PYTHON_PREFIX}_PREFIX}")
+
+ # retrieve library
+ ## compute some paths and artifact names
+ if (_${_PYTHON_PREFIX}_CONFIG)
+ string (REGEX REPLACE "^.+python([0-9.]+)[a-z]*-config" "\\1" _${_PYTHON_PREFIX}_VERSION "${_${_PYTHON_PREFIX}_CONFIG}")
+ else()
+ set (_${_PYTHON_PREFIX}_VERSION "${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR}")
+ endif()
+ _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_VERSION} LIBRARY)
+ _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 POSIX LIBRARY)
+
+ _python_get_config_var (_${_PYTHON_PREFIX}_CONFIGDIR CONFIGDIR)
+ list (APPEND _${_PYTHON_PREFIX}_HINTS "${_${_PYTHON_PREFIX}_CONFIGDIR}")
+
+ list (APPEND _${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
+
+ find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+ NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ endif()
+
+ # Rely on HINTS and standard paths if interpreter or config tool failed to locate artifacts
+ if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
+
+ unset (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS)
+ if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
+ set (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX)
+ endif()
+
+ if (_${_PYTHON_PREFIX}_FIND_STRATEGY STREQUAL "LOCATION")
+ unset (_${_PYTHON_PREFIX}_LIB_NAMES)
+ unset (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG)
+ unset (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
+ unset (_${_PYTHON_PREFIX}_REGISTRY_PATHS)
+ unset (_${_PYTHON_PREFIX}_PATH_SUFFIXES)
+
+ foreach (_${_PYTHON_PREFIX}_LIB_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
+ # library names
+ _python_get_names (_${_PYTHON_PREFIX}_VERSION_NAMES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 POSIX LIBRARY)
+ list (APPEND _${_PYTHON_PREFIX}_LIB_NAMES ${_${_PYTHON_PREFIX}_VERSION_NAMES})
+ _python_get_names (_${_PYTHON_PREFIX}_VERSION_NAMES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 DEBUG)
+ list (APPEND _${_PYTHON_PREFIX}_LIB_NAMES_DEBUG ${_${_PYTHON_PREFIX}_VERSION_NAMES})
+
+ # Framework Paths
+ _python_get_frameworks (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_LIB_VERSION})
+ list (APPEND _${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS})
+
+ # Registry Paths
+ _python_get_registries (_${_PYTHON_PREFIX}_VERSION_PATHS ${_${_PYTHON_PREFIX}_LIB_VERSION})
+ list (APPEND _${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_VERSION_PATHS})
+
+ # Paths suffixes
+ _python_get_path_suffixes (_${_PYTHON_PREFIX}_VERSION_PATHS VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} LIBRARY)
+ list (APPEND _${_PYTHON_PREFIX}_PATH_SUFFIXES ${_${_PYTHON_PREFIX}_VERSION_PATHS})
+ endforeach()
+
+ if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+ find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+ NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+ ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ endif()
+
+ if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+ find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+ NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+ ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ endif()
+
+ # search in HINTS locations
+ find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+ NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+
+ if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+ set (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS})
+ else()
+ unset (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
+ endif()
+
+ if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+ set (__${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS})
+ else()
+ unset (__${_PYTHON_PREFIX}_REGISTRY_PATHS)
+ endif()
+
+ # search in all default paths
+ find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+ NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+ NAMES_PER_DIR
+ PATHS ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ ${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
+ else()
+ foreach (_${_PYTHON_PREFIX}_LIB_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
+ _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 POSIX LIBRARY)
+ _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} WIN32 DEBUG)
+
+ _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_LIB_VERSION})
+ _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_LIB_VERSION})
+
+ _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION} LIBRARY)
+
+ if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+ find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+ NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+ ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ endif()
+
+ if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+ find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+ NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+ ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ endif()
+
+ # search in HINTS locations
+ find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+ NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+
+ if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+ set (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS})
+ else()
+ unset (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
+ endif()
+
+ if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+ set (__${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS})
+ else()
+ unset (__${_PYTHON_PREFIX}_REGISTRY_PATHS)
+ endif()
+
+ # search in all default paths
+ find_library (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+ NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+ NAMES_PER_DIR
+ PATHS ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ ${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
+
+ if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ break()
+ endif()
+ endforeach()
+ endif()
+ endif()
+ endif()
+
+ # finalize library version information
+ _python_get_version (LIBRARY PREFIX _${_PYTHON_PREFIX}_)
+
+ set (${_PYTHON_PREFIX}_LIBRARY_RELEASE "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
+
+ if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE AND NOT EXISTS "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
+ set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Cannot find the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
+ endif()
+
+ set (_${_PYTHON_PREFIX}_HINTS "${${_PYTHON_PREFIX}_ROOT_DIR}" ENV ${_PYTHON_PREFIX}_ROOT_DIR)
+
+ if (WIN32 AND _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ # search for debug library
+ # use release library location as a hint
+ _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 DEBUG)
+ get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
+ find_library (_${_PYTHON_PREFIX}_LIBRARY_DEBUG
+ NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG}
+ NAMES_PER_DIR
+ HINTS "${_${_PYTHON_PREFIX}_PATH}" ${_${_PYTHON_PREFIX}_HINTS}
+ NO_DEFAULT_PATH)
+ endif()
+
+ # retrieve runtime libraries
+ if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 POSIX LIBRARY)
+ get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
+ get_filename_component (_${_PYTHON_PREFIX}_PATH2 "${_${_PYTHON_PREFIX}_PATH}" DIRECTORY)
+ _python_find_runtime_library (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
+ NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES}
+ NAMES_PER_DIR
+ HINTS "${_${_PYTHON_PREFIX}_PATH}" "${_${_PYTHON_PREFIX}_PATH2}" ${_${_PYTHON_PREFIX}_HINTS}
+ PATH_SUFFIXES bin)
+ endif()
+ if (_${_PYTHON_PREFIX}_LIBRARY_DEBUG)
+ _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_VERSION} WIN32 DEBUG)
+ get_filename_component (_${_PYTHON_PREFIX}_PATH "${_${_PYTHON_PREFIX}_LIBRARY_DEBUG}" DIRECTORY)
+ get_filename_component (_${_PYTHON_PREFIX}_PATH2 "${_${_PYTHON_PREFIX}_PATH}" DIRECTORY)
+ _python_find_runtime_library (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG
+ NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG}
+ NAMES_PER_DIR
+ HINTS "${_${_PYTHON_PREFIX}_PATH}" "${_${_PYTHON_PREFIX}_PATH2}" ${_${_PYTHON_PREFIX}_HINTS}
+ PATH_SUFFIXES bin)
+ endif()
+
+ # Don't search for include dir if no library was founded
+ if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE AND NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
+ if ((${_PYTHON_PREFIX}_Interpreter_FOUND AND NOT CMAKE_CROSSCOMPILING) OR _${_PYTHON_PREFIX}_CONFIG)
+ _python_get_config_var (_${_PYTHON_PREFIX}_INCLUDE_DIRS INCLUDES)
+
+ find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
+ NAMES Python.h
+ HINTS ${_${_PYTHON_PREFIX}_INCLUDE_DIRS}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ endif()
+
+ # Rely on HINTS and standard paths if interpreter or config tool failed to locate artifacts
+ if (NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
+ unset (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS)
+ if (_${_PYTHON_PREFIX}_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
+ set (_${_PYTHON_PREFIX}_VIRTUALENV_PATHS ENV VIRTUAL_ENV ENV CONDA_PREFIX)
+ endif()
+ unset (_${_PYTHON_PREFIX}_INCLUDE_HINTS)
+
+ # Use the library's install prefix as a hint
+ if (${_${_PYTHON_PREFIX}_LIBRARY_RELEASE} MATCHES "^(.+/Frameworks/Python.framework/Versions/[0-9.]+)")
+ list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${CMAKE_MATCH_1}")
+ elseif (${_${_PYTHON_PREFIX}_LIBRARY_RELEASE} MATCHES "^(.+)/lib(64|32)?/python[0-9.]+/config")
+ list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${CMAKE_MATCH_1}")
+ elseif (DEFINED CMAKE_LIBRARY_ARCHITECTURE AND ${_${_PYTHON_PREFIX}_LIBRARY_RELEASE} MATCHES "^(.+)/lib/${CMAKE_LIBRARY_ARCHITECTURE}")
+ list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${CMAKE_MATCH_1}")
+ else()
+ # assume library is in a directory under root
+ get_filename_component (_${_PYTHON_PREFIX}_PREFIX "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" DIRECTORY)
+ get_filename_component (_${_PYTHON_PREFIX}_PREFIX "${_${_PYTHON_PREFIX}_PREFIX}" DIRECTORY)
+ list (APPEND _${_PYTHON_PREFIX}_INCLUDE_HINTS "${_${_PYTHON_PREFIX}_PREFIX}")
+ endif()
+
+ _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_VERSION})
+ _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_VERSION})
+ _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_VERSION} INCLUDE)
+
+ if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+ find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
+ NAMES Python.h
+ HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+ ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ endif()
+
+ if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+ find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
+ NAMES Python.h
+ HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+ ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ endif()
+
+ if (APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+ set (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS})
+ else()
+ unset (__${_PYTHON_PREFIX}_FRAMEWORK_PATHS)
+ endif()
+
+ if (WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+ set (__${_PYTHON_PREFIX}_REGISTRY_PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS})
+ else()
+ unset (__${_PYTHON_PREFIX}_REGISTRY_PATHS)
+ endif()
+
+ find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
+ NAMES Python.h
+ HINTS ${_${_PYTHON_PREFIX}_INCLUDE_HINTS} ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_VIRTUALENV_PATHS}
+ ${__${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ ${__${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ endif()
+
+ # search header file in standard locations
+ find_path (_${_PYTHON_PREFIX}_INCLUDE_DIR
+ NAMES Python.h)
+ endif()
+
+ set (${_PYTHON_PREFIX}_INCLUDE_DIRS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
+
+ if (_${_PYTHON_PREFIX}_INCLUDE_DIR AND NOT EXISTS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
+ set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Cannot find the directory \"${_${_PYTHON_PREFIX}_INCLUDE_DIR}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_INCLUDE_DIR-NOTFOUND")
+ endif()
+
+ if (_${_PYTHON_PREFIX}_INCLUDE_DIR)
+ # retrieve version from header file
+ _python_get_version (INCLUDE PREFIX _${_PYTHON_PREFIX}_INC_)
+
+ # update versioning
+ if (_${_PYTHON_PREFIX}_INC_VERSION VERSION_EQUAL ${_${_PYTHON_PREFIX}_VERSION})
+ set (_${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_INC_VERSION_PATCH})
+ endif()
+ endif()
+
+ if (NOT ${_PYTHON_PREFIX}_Interpreter_FOUND AND NOT ${_PYTHON_PREFIX}_Compiler_FOUND)
+ # set public version information
+ set (${_PYTHON_PREFIX}_VERSION ${_${_PYTHON_PREFIX}_VERSION})
+ set (${_PYTHON_PREFIX}_VERSION_MAJOR ${_${_PYTHON_PREFIX}_VERSION_MAJOR})
+ set (${_PYTHON_PREFIX}_VERSION_MINOR ${_${_PYTHON_PREFIX}_VERSION_MINOR})
+ set (${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_VERSION_PATCH})
+ endif()
+
+ # define public variables
+ set (${_PYTHON_PREFIX}_LIBRARY_DEBUG "${_${_PYTHON_PREFIX}_LIBRARY_DEBUG}")
+ _python_select_library_configurations (${_PYTHON_PREFIX})
+
+ set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE "${_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE}")
+ set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG "${_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG}")
+
+ if (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE)
+ set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY "${_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE}")
+ elseif (_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG)
+ set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY "${_${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG}")
+ else()
+ set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY "${_PYTHON_PREFIX}_RUNTIME_LIBRARY-NOTFOUND")
+ endif()
+
+ _python_set_library_dirs (${_PYTHON_PREFIX}_LIBRARY_DIRS
+ _${_PYTHON_PREFIX}_LIBRARY_RELEASE _${_PYTHON_PREFIX}_LIBRARY_DEBUG)
+ if (UNIX)
+ if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "${CMAKE_SHARED_LIBRARY_SUFFIX}$")
+ set (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DIRS ${${_PYTHON_PREFIX}_LIBRARY_DIRS})
+ endif()
+ else()
+ _python_set_library_dirs (${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DIRS
+ _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG)
+ endif()
+
+ if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE AND _${_PYTHON_PREFIX}_INCLUDE_DIR)
+ if (${_PYTHON_PREFIX}_Interpreter_FOUND OR ${_PYTHON_PREFIX}_Compiler_FOUND)
+ # development environment must be compatible with interpreter/compiler
+ if (${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR} VERSION_EQUAL ${${_PYTHON_PREFIX}_VERSION_MAJOR}.${${_PYTHON_PREFIX}_VERSION_MINOR}
+ AND ${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_INC_VERSION_MINOR} VERSION_EQUAL ${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR})
+ set (${_PYTHON_PREFIX}_Development_FOUND TRUE)
+ endif()
+ elseif (${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR
+ AND ${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_INC_VERSION_MINOR} VERSION_EQUAL ${_${_PYTHON_PREFIX}_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_VERSION_MINOR})
+ set (${_PYTHON_PREFIX}_Development_FOUND TRUE)
+ endif()
+ if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND
+ (NOT _${_PYTHON_PREFIX}_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS
+ OR NOT _${_PYTHON_PREFIX}_INC_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS))
+ set (${_PYTHON_PREFIX}_Development_FOUND FALSE)
+ endif()
+ endif()
+
+ if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR VERSION_GREATER_EQUAL 3
+ AND NOT DEFINED ${_PYTHON_PREFIX}_SOABI)
+ _python_get_config_var (${_PYTHON_PREFIX}_SOABI SOABI)
+ endif()
+
+ if (${_PYTHON_PREFIX}_Development_FOUND)
+ # compute and save development signature
+ string (MD5 __${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE "${_${_PYTHON_PREFIX}_SIGNATURE}:${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}:${_${_PYTHON_PREFIX}_INCLUDE_DIR}")
+ set (_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE "${__${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE}" CACHE INTERNAL "")
+ else()
+ unset (_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE CACHE)
+ endif()
+
+ # Restore the original find library ordering
+ if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES)
+ set (CMAKE_FIND_LIBRARY_SUFFIXES ${_${_PYTHON_PREFIX}_CMAKE_FIND_LIBRARY_SUFFIXES})
+ endif()
+
+ _python_mark_as_internal (_${_PYTHON_PREFIX}_LIBRARY_RELEASE
+ _${_PYTHON_PREFIX}_LIBRARY_DEBUG
+ _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
+ _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG
+ _${_PYTHON_PREFIX}_INCLUDE_DIR
+ _${_PYTHON_PREFIX}_CONFIG
+ _${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE)
+endif()
+
+if ("NumPy" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS AND ${_PYTHON_PREFIX}_Interpreter_FOUND)
+ list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
+ if (${_PYTHON_PREFIX}_FIND_REQUIRED_NumPy)
+ list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_NumPy_INCLUDE_DIRS)
+ endif()
+
+ if (DEFINED ${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR
+ AND IS_ABSOLUTE "${${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
+ set (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR "${${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}" CACHE INTERNAL "")
+ elseif (DEFINED _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
+ # compute numpy signature. Depends on interpreter and development signatures
+ string (MD5 __${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}:${_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE}:${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
+ if (NOT __${_PYTHON_PREFIX}_NUMPY_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_NUMPY_SIGNATURE
+ OR NOT EXISTS "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
+ unset (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR CACHE)
+ unset (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE CACHE)
+ endif()
+ endif()
+
+ if (NOT _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
+ execute_process(
+ COMMAND "${${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "from __future__ import print_function\ntry: import numpy; print(numpy.get_include(), end='')\nexcept:pass\n"
+ RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+ OUTPUT_VARIABLE _${_PYTHON_PREFIX}_NumPy_PATH
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if (NOT _${_PYTHON_PREFIX}_RESULT)
+ find_path (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR
+ NAMES "numpy/arrayobject.h" "numpy/numpyconfig.h"
+ HINTS "${_${_PYTHON_PREFIX}_NumPy_PATH}"
+ NO_DEFAULT_PATH)
+ endif()
+ endif()
+
+ set (${_PYTHON_PREFIX}_NumPy_INCLUDE_DIRS "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
+
+ if(_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR AND NOT EXISTS "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")
+ set (_${_PYTHON_PREFIX}_NumPy_REASON_FAILURE "Cannot find the directory \"${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}\"")
+ set_property (CACHE _${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR PROPERTY VALUE "${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR-NOTFOUND")
+ endif()
+
+ if (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR)
+ execute_process (
+ COMMAND "${${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "from __future__ import print_function\ntry: import numpy; print(numpy.__version__, end='')\nexcept:pass\n"
+ RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
+ OUTPUT_VARIABLE _${_PYTHON_PREFIX}_NumPy_VERSION)
+ if (NOT _${_PYTHON_PREFIX}_RESULT)
+ set (${_PYTHON_PREFIX}_NumPy_VERSION "${_${_PYTHON_PREFIX}_NumPy_VERSION}")
+ else()
+ unset (${_PYTHON_PREFIX}_NumPy_VERSION)
+ endif()
+
+ # final step: set NumPy founded only if Development component is founded as well
+ set(${_PYTHON_PREFIX}_NumPy_FOUND ${${_PYTHON_PREFIX}_Development_FOUND})
+ else()
+ set (${_PYTHON_PREFIX}_NumPy_FOUND FALSE)
+ endif()
+
+ if (${_PYTHON_PREFIX}_NumPy_FOUND)
+ # compute and save numpy signature
+ string (MD5 __${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}:${_${_PYTHON_PREFIX}_DEVELOPMENT_SIGNATURE}:${${_PYTHON_PREFIX}_NumPyINCLUDE_DIR}")
+ set (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${__${_PYTHON_PREFIX}_NUMPY_SIGNATURE}" CACHE INTERNAL "")
+ else()
+ unset (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE CACHE)
+ endif()
+
+ _python_mark_as_internal (_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR
+ _${_PYTHON_PREFIX}_NUMPY_SIGNATURE)
+endif()
+
+# final validation
+if (${_PYTHON_PREFIX}_VERSION_MAJOR AND
+ NOT ${_PYTHON_PREFIX}_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
+ _python_display_failure ("Could NOT find ${_PYTHON_PREFIX}: Found unsuitable major version \"${${_PYTHON_PREFIX}_VERSION_MAJOR}\", but required major version is exact version \"${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}\"")
+endif()
+
+unset (_${_PYTHON_PREFIX}_REASON_FAILURE)
+foreach (_${_PYTHON_PREFIX}_COMPONENT IN ITEMS Interpreter Compiler Development NumPy)
+ if (_${_PYTHON_PREFIX}_${_${_PYTHON_PREFIX}_COMPONENT}_REASON_FAILURE)
+ string (APPEND _${_PYTHON_PREFIX}_REASON_FAILURE "\n ${_${_PYTHON_PREFIX}_COMPONENT}: ${_${_PYTHON_PREFIX}_${_${_PYTHON_PREFIX}_COMPONENT}_REASON_FAILURE}")
+ endif()
+endforeach()
+
+include (${CMAKE_CURRENT_LIST_DIR}/../FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args (${_PYTHON_PREFIX}
+ REQUIRED_VARS ${_${_PYTHON_PREFIX}_REQUIRED_VARS}
+ VERSION_VAR ${_PYTHON_PREFIX}_VERSION
+ HANDLE_COMPONENTS
+ REASON_FAILURE_MESSAGE "${_${_PYTHON_PREFIX}_REASON_FAILURE}")
+
+# Create imported targets and helper functions
+if(_${_PYTHON_PREFIX}_CMAKE_ROLE STREQUAL "PROJECT")
+ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+ AND ${_PYTHON_PREFIX}_Interpreter_FOUND
+ AND NOT TARGET ${_PYTHON_PREFIX}::Interpreter)
+ add_executable (${_PYTHON_PREFIX}::Interpreter IMPORTED)
+ set_property (TARGET ${_PYTHON_PREFIX}::Interpreter
+ PROPERTY IMPORTED_LOCATION "${${_PYTHON_PREFIX}_EXECUTABLE}")
+ endif()
+
+ if ("Compiler" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+ AND ${_PYTHON_PREFIX}_Compiler_FOUND
+ AND NOT TARGET ${_PYTHON_PREFIX}::Compiler)
+ add_executable (${_PYTHON_PREFIX}::Compiler IMPORTED)
+ set_property (TARGET ${_PYTHON_PREFIX}::Compiler
+ PROPERTY IMPORTED_LOCATION "${${_PYTHON_PREFIX}_COMPILER}")
+ endif()
+
+ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+ AND ${_PYTHON_PREFIX}_Development_FOUND)
+
+ macro (__PYTHON_IMPORT_LIBRARY __name)
+ if (${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "${CMAKE_SHARED_LIBRARY_SUFFIX}$"
+ OR ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE)
+ set (_${_PYTHON_PREFIX}_LIBRARY_TYPE SHARED)
+ else()
+ set (_${_PYTHON_PREFIX}_LIBRARY_TYPE STATIC)
+ endif()
+
+ if (NOT TARGET ${__name})
+ add_library (${__name} ${_${_PYTHON_PREFIX}_LIBRARY_TYPE} IMPORTED)
+ endif()
+
+ set_property (TARGET ${__name}
+ PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${${_PYTHON_PREFIX}_INCLUDE_DIRS}")
+
+ if (${_PYTHON_PREFIX}_LIBRARY_RELEASE AND ${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE)
+ # System manage shared libraries in two parts: import and runtime
+ if (${_PYTHON_PREFIX}_LIBRARY_RELEASE AND ${_PYTHON_PREFIX}_LIBRARY_DEBUG)
+ set_property (TARGET ${__name} PROPERTY IMPORTED_CONFIGURATIONS RELEASE DEBUG)
+ set_target_properties (${__name}
+ PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+ IMPORTED_IMPLIB_RELEASE "${${_PYTHON_PREFIX}_LIBRARY_RELEASE}"
+ IMPORTED_LOCATION_RELEASE "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE}")
+ set_target_properties (${__name}
+ PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+ IMPORTED_IMPLIB_DEBUG "${${_PYTHON_PREFIX}_LIBRARY_DEBUG}"
+ IMPORTED_LOCATION_DEBUG "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG}")
+ else()
+ set_target_properties (${__name}
+ PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_IMPLIB "${${_PYTHON_PREFIX}_LIBRARY}"
+ IMPORTED_LOCATION "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY}")
+ endif()
+ else()
+ if (${_PYTHON_PREFIX}_LIBRARY_RELEASE AND ${_PYTHON_PREFIX}_LIBRARY_DEBUG)
+ set_property (TARGET ${__name} PROPERTY IMPORTED_CONFIGURATIONS RELEASE DEBUG)
+ set_target_properties (${__name}
+ PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+ IMPORTED_LOCATION_RELEASE "${${_PYTHON_PREFIX}_LIBRARY_RELEASE}")
+ set_target_properties (${__name}
+ PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+ IMPORTED_LOCATION_DEBUG "${${_PYTHON_PREFIX}_LIBRARY_DEBUG}")
+ else()
+ set_target_properties (${__name}
+ PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_LOCATION "${${_PYTHON_PREFIX}_LIBRARY}")
+ endif()
+ endif()
+
+ if (_${_PYTHON_PREFIX}_LIBRARY_TYPE STREQUAL "STATIC")
+ # extend link information with dependent libraries
+ _python_get_config_var (_${_PYTHON_PREFIX}_LINK_LIBRARIES LIBS)
+ if (_${_PYTHON_PREFIX}_LINK_LIBRARIES)
+ set_property (TARGET ${__name}
+ PROPERTY INTERFACE_LINK_LIBRARIES ${_${_PYTHON_PREFIX}_LINK_LIBRARIES})
+ endif()
+ endif()
+ endmacro()
+
+ __python_import_library (${_PYTHON_PREFIX}::Python)
+
+ if (CMAKE_SYSTEM_NAME MATCHES "^(Windows.*|CYGWIN|MSYS)$")
+ # On Windows/CYGWIN/MSYS, Python::Module is the same as Python::Python
+ # but ALIAS cannot be used because the imported library is not GLOBAL.
+ __python_import_library (${_PYTHON_PREFIX}::Module)
+ else()
+ if (NOT TARGET ${_PYTHON_PREFIX}::Module )
+ add_library (${_PYTHON_PREFIX}::Module INTERFACE IMPORTED)
+ endif()
+ set_property (TARGET ${_PYTHON_PREFIX}::Module
+ PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${${_PYTHON_PREFIX}_INCLUDE_DIRS}")
+
+ # When available, enforce shared library generation with undefined symbols
+ if (APPLE)
+ set_property (TARGET ${_PYTHON_PREFIX}::Module
+ PROPERTY INTERFACE_LINK_OPTIONS "LINKER:-undefined,dynamic_lookup")
+ endif()
+ if (CMAKE_SYSTEM_NAME STREQUAL "SunOS")
+ set_property (TARGET ${_PYTHON_PREFIX}::Module
+ PROPERTY INTERFACE_LINK_OPTIONS "LINKER:-z,nodefs")
+ endif()
+ if (CMAKE_SYSTEM_NAME STREQUAL "AIX")
+ set_property (TARGET ${_PYTHON_PREFIX}::Module
+ PROPERTY INTERFACE_LINK_OPTIONS "LINKER:-b,erok")
+ endif()
+ endif()
+
+ #
+ # PYTHON_ADD_LIBRARY (<name> [STATIC|SHARED|MODULE] src1 src2 ... srcN)
+ # It is used to build modules for python.
+ #
+ function (__${_PYTHON_PREFIX}_ADD_LIBRARY prefix name)
+ cmake_parse_arguments (PARSE_ARGV 2 PYTHON_ADD_LIBRARY
+ "STATIC;SHARED;MODULE;WITH_SOABI" "" "")
+
+ if (prefix STREQUAL "Python2" AND PYTHON_ADD_LIBRARY_WITH_SOABI)
+ message (AUTHOR_WARNING "FindPython2: Option `WITH_SOABI` is not supported for Python2 and will be ignored.")
+ unset (PYTHON_ADD_LIBRARY_WITH_SOABI)
+ endif()
+
+ if (PYTHON_ADD_LIBRARY_STATIC)
+ set (type STATIC)
+ elseif (PYTHON_ADD_LIBRARY_SHARED)
+ set (type SHARED)
+ else()
+ set (type MODULE)
+ endif()
+ add_library (${name} ${type} ${PYTHON_ADD_LIBRARY_UNPARSED_ARGUMENTS})
+
+ get_property (type TARGET ${name} PROPERTY TYPE)
+
+ if (type STREQUAL "MODULE_LIBRARY")
+ target_link_libraries (${name} PRIVATE ${prefix}::Module)
+ # customize library name to follow module name rules
+ set_property (TARGET ${name} PROPERTY PREFIX "")
+ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ set_property (TARGET ${name} PROPERTY SUFFIX ".pyd")
+ endif()
+
+ if (PYTHON_ADD_LIBRARY_WITH_SOABI AND ${prefix}_SOABI)
+ get_property (suffix TARGET ${name} PROPERTY SUFFIX)
+ if (NOT suffix)
+ set (suffix "${CMAKE_SHARED_MODULE_SUFFIX}")
+ endif()
+ set_property (TARGET ${name} PROPERTY SUFFIX ".${${prefix}_SOABI}${suffix}")
+ endif()
+ else()
+ if (PYTHON_ADD_LIBRARY_WITH_SOABI)
+ message (AUTHOR_WARNING "Find${prefix}: Option `WITH_SOABI` is only supported for `MODULE` library type.")
+ endif()
+ target_link_libraries (${name} PRIVATE ${prefix}::Python)
+ endif()
+ endfunction()
+ endif()
+
+ if ("NumPy" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS AND ${_PYTHON_PREFIX}_NumPy_FOUND
+ AND NOT TARGET ${_PYTHON_PREFIX}::NumPy AND TARGET ${_PYTHON_PREFIX}::Module)
+ add_library (${_PYTHON_PREFIX}::NumPy INTERFACE IMPORTED)
+ set_property (TARGET ${_PYTHON_PREFIX}::NumPy
+ PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${${_PYTHON_PREFIX}_NumPy_INCLUDE_DIRS}")
+ target_link_libraries (${_PYTHON_PREFIX}::NumPy INTERFACE ${_PYTHON_PREFIX}::Module)
+ endif()
+endif()
+
+# final clean-up
+
+# Restore CMAKE_FIND_APPBUNDLE
+if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
+ set (CMAKE_FIND_APPBUNDLE ${_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE})
+ unset (_${_PYTHON_PREFIX}_CMAKE_FIND_APPBUNDLE)
+else()
+ unset (CMAKE_FIND_APPBUNDLE)
+endif()
+# Restore CMAKE_FIND_FRAMEWORK
+if (DEFINED _${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
+ set (CMAKE_FIND_FRAMEWORK ${_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK})
+ unset (_${_PYTHON_PREFIX}_CMAKE_FIND_FRAMEWORK)
+else()
+ unset (CMAKE_FIND_FRAMEWORK)
+endif()
diff --git a/share/cmake-3.17/Modules/FindPython2.cmake b/share/cmake-3.17/Modules/FindPython2.cmake
new file mode 100644
index 0000000..af8ad39
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindPython2.cmake
@@ -0,0 +1,268 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindPython2
+-----------
+
+Find Python 2 interpreter, compiler and development environment (include
+directories and libraries).
+
+The following components are supported:
+
+* ``Interpreter``: search for Python 2 interpreter
+* ``Compiler``: search for Python 2 compiler. Only offered by IronPython.
+* ``Development``: search for development artifacts (include directories and
+ libraries)
+* ``NumPy``: search for NumPy include directories.
+
+If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
+
+To ensure consistent versions between components ``Interpreter``, ``Compiler``,
+``Development`` and ``NumPy``, specify all components at the same time::
+
+ find_package (Python2 COMPONENTS Interpreter Development)
+
+This module looks only for version 2 of Python. This module can be used
+concurrently with :module:`FindPython3` module to use both Python versions.
+
+The :module:`FindPython` module can be used if Python version does not matter
+for you.
+
+.. note::
+
+ If components ``Interpreter`` and ``Development`` are both specified, this
+ module search only for interpreter with same platform architecture as the one
+ defined by ``CMake`` configuration. This contraint does not apply if only
+ ``Interpreter`` component is specified.
+
+Imported Targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :ref:`Imported Targets <Imported Targets>`
+(when :prop_gbl:`CMAKE_ROLE` is ``PROJECT``):
+
+``Python2::Interpreter``
+ Python 2 interpreter. Target defined if component ``Interpreter`` is found.
+``Python2::Compiler``
+ Python 2 compiler. Target defined if component ``Compiler`` is found.
+``Python2::Python``
+ Python 2 library for Python embedding. Target defined if component
+ ``Development`` is found.
+``Python2::Module``
+ Python 2 library for Python module. Target defined if component
+ ``Development`` is found.
+``Python2::NumPy``
+ NumPy library for Python 2. Target defined if component ``NumPy`` is found.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project
+(see :ref:`Standard Variable Names <CMake Developer Standard Variable Names>`):
+
+``Python2_FOUND``
+ System has the Python 2 requested components.
+``Python2_Interpreter_FOUND``
+ System has the Python 2 interpreter.
+``Python2_EXECUTABLE``
+ Path to the Python 2 interpreter.
+``Python2_INTERPRETER_ID``
+ A short string unique to the interpreter. Possible values include:
+ * Python
+ * ActivePython
+ * Anaconda
+ * Canopy
+ * IronPython
+``Python2_STDLIB``
+ Standard platform independent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``.
+``Python2_STDARCH``
+ Standard platform dependent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``.
+``Python2_SITELIB``
+ Third-party platform independent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``.
+``Python2_SITEARCH``
+ Third-party platform dependent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``.
+``Python2_Compiler_FOUND``
+ System has the Python 2 compiler.
+``Python2_COMPILER``
+ Path to the Python 2 compiler. Only offered by IronPython.
+``Python2_COMPILER_ID``
+ A short string unique to the compiler. Possible values include:
+ * IronPython
+``Python2_Development_FOUND``
+ System has the Python 2 development artifacts.
+``Python2_INCLUDE_DIRS``
+ The Python 2 include directories.
+``Python2_LIBRARIES``
+ The Python 2 libraries.
+``Python2_LIBRARY_DIRS``
+ The Python 2 library directories.
+``Python2_RUNTIME_LIBRARY_DIRS``
+ The Python 2 runtime library directories.
+``Python2_VERSION``
+ Python 2 version.
+``Python2_VERSION_MAJOR``
+ Python 2 major version.
+``Python2_VERSION_MINOR``
+ Python 2 minor version.
+``Python2_VERSION_PATCH``
+ Python 2 patch version.
+``Python2_NumPy_FOUND``
+ System has the NumPy.
+``Python2_NumPy_INCLUDE_DIRS``
+ The NumPy include directries.
+``Python2_NumPy_VERSION``
+ The NumPy version.
+
+Hints
+^^^^^
+
+``Python2_ROOT_DIR``
+ Define the root directory of a Python 2 installation.
+
+``Python2_USE_STATIC_LIBS``
+ * If not defined, search for shared libraries and static libraries in that
+ order.
+ * If set to TRUE, search **only** for static libraries.
+ * If set to FALSE, search **only** for shared libraries.
+
+``Python2_FIND_STRATEGY``
+ This variable defines how lookup will be done.
+ The ``Python2_FIND_STRATEGY`` variable can be set to empty or one of the
+ following:
+
+ * ``VERSION``: Try to find the most recent version in all specified
+ locations.
+ This is the default if policy :policy:`CMP0094` is undefined or set to
+ ``OLD``.
+ * ``LOCATION``: Stops lookup as soon as a version satisfying version
+ constraints is founded.
+ This is the default if policy :policy:`CMP0094` is set to ``NEW``.
+
+``Python2_FIND_REGISTRY``
+ On Windows the ``Python2_FIND_REGISTRY`` variable determine the order
+ of preference between registry and environment variables.
+ the ``Python2_FIND_REGISTRY`` variable can be set to empty or one of the
+ following:
+
+ * ``FIRST``: Try to use registry before environment variables.
+ This is the default.
+ * ``LAST``: Try to use registry after environment variables.
+ * ``NEVER``: Never try to use registry.
+
+``Python2_FIND_FRAMEWORK``
+ On macOS the ``Python2_FIND_FRAMEWORK`` variable determine the order of
+ preference between Apple-style and unix-style package components.
+ This variable can be set to empty or take same values as
+ :variable:`CMAKE_FIND_FRAMEWORK` variable.
+
+ .. note::
+
+ Value ``ONLY`` is not supported so ``FIRST`` will be used instead.
+
+ If ``Python2_FIND_FRAMEWORK`` is not defined, :variable:`CMAKE_FIND_FRAMEWORK`
+ variable will be used, if any.
+
+``Python2_FIND_VIRTUALENV``
+ This variable defines the handling of virtual environments managed by
+ ``virtualenv`` or ``conda``. It is meaningful only when a virtual environment
+ is active (i.e. the ``activate`` script has been evaluated). In this case, it
+ takes precedence over ``Python2_FIND_REGISTRY`` and ``CMAKE_FIND_FRAMEWORK``
+ variables. The ``Python2_FIND_VIRTUALENV`` variable can be set to empty or
+ one of the following:
+
+ * ``FIRST``: The virtual environment is used before any other standard
+ paths to look-up for the interpreter. This is the default.
+ * ``ONLY``: Only the virtual environment is used to look-up for the
+ interpreter.
+ * ``STANDARD``: The virtual environment is not used to look-up for the
+ interpreter. In this case, variable ``Python2_FIND_REGISTRY`` (Windows)
+ or ``CMAKE_FIND_FRAMEWORK`` (macOS) can be set with value ``LAST`` or
+ ``NEVER`` to select preferably the interpreter from the virtual
+ environment.
+
+ .. note::
+
+ If the component ``Development`` is requested, it is **strongly**
+ recommended to also include the component ``Interpreter`` to get expected
+ result.
+
+Artifacts Specification
+^^^^^^^^^^^^^^^^^^^^^^^
+
+To solve special cases, it is possible to specify directly the artifacts by
+setting the following variables:
+
+``Python2_EXECUTABLE``
+ The path to the interpreter.
+
+``Python2_COMPILER``
+ The path to the compiler.
+
+``Python2_LIBRARY``
+ The path to the library. It will be used to compute the
+ variables ``Python2_LIBRARIES``, ``Python2_LIBRAY_DIRS`` and
+ ``Python2_RUNTIME_LIBRARY_DIRS``.
+
+``Python2_INCLUDE_DIR``
+ The path to the directory of the ``Python`` headers. It will be used to
+ compute the variable ``Python2_INCLUDE_DIRS``.
+
+``Python2_NumPy_INCLUDE_DIR``
+ The path to the directory of the ``NumPy`` headers. It will be used to
+ compute the variable ``Python2_NumPy_INCLUDE_DIRS``.
+
+.. note::
+
+ All paths must be absolute. Any artifact specified with a relative path
+ will be ignored.
+
+.. note::
+
+ When an artifact is specified, all ``HINTS`` will be ignored and no search
+ will be performed for this artifact.
+
+ If more than one artifact is specified, it is the user's responsability to
+ ensure the consistency of the various artifacts.
+
+Commands
+^^^^^^^^
+
+This module defines the command ``Python2_add_library`` (when
+:prop_gbl:`CMAKE_ROLE` is ``PROJECT``), which has the same semantics as
+:command:`add_library` and adds a dependency to target ``Python2::Python`` or,
+when library type is ``MODULE``, to target ``Python2::Module`` and takes care
+of Python module naming rules::
+
+ Python2_add_library (<name> [STATIC | SHARED | MODULE]
+ <source1> [<source2> ...])
+
+If library type is not specified, ``MODULE`` is assumed.
+#]=======================================================================]
+
+
+set (_PYTHON_PREFIX Python2)
+
+set (_Python2_REQUIRED_VERSION_MAJOR 2)
+
+include (${CMAKE_CURRENT_LIST_DIR}/FindPython/Support.cmake)
+
+if (COMMAND __Python2_add_library)
+ macro (Python2_add_library)
+ __Python2_add_library (Python2 ${ARGV})
+ endmacro()
+endif()
+
+unset (_PYTHON_PREFIX)
diff --git a/share/cmake-3.17/Modules/FindPython3.cmake b/share/cmake-3.17/Modules/FindPython3.cmake
new file mode 100644
index 0000000..66f4f75
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindPython3.cmake
@@ -0,0 +1,319 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindPython3
+-----------
+
+Find Python 3 interpreter, compiler and development environment (include
+directories and libraries).
+
+The following components are supported:
+
+* ``Interpreter``: search for Python 3 interpreter
+* ``Compiler``: search for Python 3 compiler. Only offered by IronPython.
+* ``Development``: search for development artifacts (include directories and
+ libraries)
+* ``NumPy``: search for NumPy include directories.
+
+If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
+
+To ensure consistent versions between components ``Interpreter``, ``Compiler``,
+``Development`` and ``NumPy``, specify all components at the same time::
+
+ find_package (Python3 COMPONENTS Interpreter Development)
+
+This module looks only for version 3 of Python. This module can be used
+concurrently with :module:`FindPython2` module to use both Python versions.
+
+The :module:`FindPython` module can be used if Python version does not matter
+for you.
+
+.. note::
+
+ If components ``Interpreter`` and ``Development`` are both specified, this
+ module search only for interpreter with same platform architecture as the one
+ defined by ``CMake`` configuration. This contraint does not apply if only
+ ``Interpreter`` component is specified.
+
+Imported Targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :ref:`Imported Targets <Imported Targets>`
+(when :prop_gbl:`CMAKE_ROLE` is ``PROJECT``):
+
+``Python3::Interpreter``
+ Python 3 interpreter. Target defined if component ``Interpreter`` is found.
+``Python3::Compiler``
+ Python 3 compiler. Target defined if component ``Compiler`` is found.
+``Python3::Python``
+ Python 3 library for Python embedding. Target defined if component
+ ``Development`` is found.
+``Python3::Module``
+ Python 3 library for Python module. Target defined if component
+ ``Development`` is found.
+``Python3::NumPy``
+ NumPy library for Python 3. Target defined if component ``NumPy`` is found.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project
+(see :ref:`Standard Variable Names <CMake Developer Standard Variable Names>`):
+
+``Python3_FOUND``
+ System has the Python 3 requested components.
+``Python3_Interpreter_FOUND``
+ System has the Python 3 interpreter.
+``Python3_EXECUTABLE``
+ Path to the Python 3 interpreter.
+``Python3_INTERPRETER_ID``
+ A short string unique to the interpreter. Possible values include:
+ * Python
+ * ActivePython
+ * Anaconda
+ * Canopy
+ * IronPython
+``Python3_STDLIB``
+ Standard platform independent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``.
+``Python3_STDARCH``
+ Standard platform dependent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``.
+``Python3_SITELIB``
+ Third-party platform independent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``.
+``Python3_SITEARCH``
+ Third-party platform dependent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``.
+``Python3_SOABI``
+ Extension suffix for modules.
+
+ Information returned by
+ ``distutils.sysconfig.get_config_flag('SOABI')`` or computed from
+ ``distutils.sysconfig.get_config_flag('EXT_SUFFIX')`` or
+ ``python3-config --extension-suffix``.
+``Python3_Compiler_FOUND``
+ System has the Python 3 compiler.
+``Python3_COMPILER``
+ Path to the Python 3 compiler. Only offered by IronPython.
+``Python3_COMPILER_ID``
+ A short string unique to the compiler. Possible values include:
+ * IronPython
+``Python3_Development_FOUND``
+ System has the Python 3 development artifacts.
+``Python3_INCLUDE_DIRS``
+ The Python 3 include directories.
+``Python3_LIBRARIES``
+ The Python 3 libraries.
+``Python3_LIBRARY_DIRS``
+ The Python 3 library directories.
+``Python3_RUNTIME_LIBRARY_DIRS``
+ The Python 3 runtime library directories.
+``Python3_VERSION``
+ Python 3 version.
+``Python3_VERSION_MAJOR``
+ Python 3 major version.
+``Python3_VERSION_MINOR``
+ Python 3 minor version.
+``Python3_VERSION_PATCH``
+ Python 3 patch version.
+``Python3_NumPy_FOUND``
+ System has the NumPy.
+``Python3_NumPy_INCLUDE_DIRS``
+ The NumPy include directries.
+``Python3_NumPy_VERSION``
+ The NumPy version.
+
+Hints
+^^^^^
+
+``Python3_ROOT_DIR``
+ Define the root directory of a Python 3 installation.
+
+``Python3_USE_STATIC_LIBS``
+ * If not defined, search for shared libraries and static libraries in that
+ order.
+ * If set to TRUE, search **only** for static libraries.
+ * If set to FALSE, search **only** for shared libraries.
+
+``Python3_FIND_ABI``
+ This variable defines which ABIs, as defined in
+ `PEP 3149 <https://www.python.org/dev/peps/pep-3149/>`_, should be searched.
+
+ .. note::
+
+ If ``Python3_FIND_ABI`` is not defined, any ABI will be searched.
+
+ The ``Python3_FIND_ABI`` variable is a 3-tuple specifying, in that order,
+ ``pydebug`` (``d``), ``pymalloc`` (``m``) and ``unicode`` (``u``) flags.
+ Each element can be set to one of the following:
+
+ * ``ON``: Corresponding flag is selected.
+ * ``OFF``: Corresponding flag is not selected.
+ * ``ANY``: The two posibilties (``ON`` and ``OFF``) will be searched.
+
+ From this 3-tuple, various ABIs will be searched starting from the most
+ specialized to the most general. Moreover, ``debug`` versions will be
+ searched **after** ``non-debug`` ones.
+
+ For example, if we have::
+
+ set (Python3_FIND_ABI "ON" "ANY" "ANY")
+
+ The following flags combinations will be appended, in that order, to the
+ artifact names: ``dmu``, ``dm``, ``du``, and ``d``.
+
+ And to search any possible ABIs::
+
+ set (Python3_FIND_ABI "ANY" "ANY" "ANY")
+
+ The following combinations, in that order, will be used: ``mu``, ``m``,
+ ``u``, ``<empty>``, ``dmu``, ``dm``, ``du`` and ``d``.
+
+ .. note::
+
+ This hint is useful only on ``POSIX`` systems. So, on ``Windows`` systems,
+ when ``Python3_FIND_ABI`` is defined, ``Python`` distributions from
+ `python.org <https://www.python.org/>`_ will be found only if value for
+ each flag is ``OFF`` or ``ANY``.
+
+``Python3_FIND_STRATEGY``
+ This variable defines how lookup will be done.
+ The ``Python3_FIND_STRATEGY`` variable can be set to empty or one of the
+ following:
+
+ * ``VERSION``: Try to find the most recent version in all specified
+ locations.
+ This is the default if policy :policy:`CMP0094` is undefined or set to
+ ``OLD``.
+ * ``LOCATION``: Stops lookup as soon as a version satisfying version
+ constraints is founded.
+ This is the default if policy :policy:`CMP0094` is set to ``NEW``.
+
+``Python3_FIND_REGISTRY``
+ On Windows the ``Python3_FIND_REGISTRY`` variable determine the order
+ of preference between registry and environment variables.
+ The ``Python3_FIND_REGISTRY`` variable can be set to empty or one of the
+ following:
+
+ * ``FIRST``: Try to use registry before environment variables.
+ This is the default.
+ * ``LAST``: Try to use registry after environment variables.
+ * ``NEVER``: Never try to use registry.
+
+``Python3_FIND_FRAMEWORK``
+ On macOS the ``Python3_FIND_FRAMEWORK`` variable determine the order of
+ preference between Apple-style and unix-style package components.
+ This variable can be set to empty or take same values as
+ :variable:`CMAKE_FIND_FRAMEWORK` variable.
+
+ .. note::
+
+ Value ``ONLY`` is not supported so ``FIRST`` will be used instead.
+
+ If ``Python3_FIND_FRAMEWORK`` is not defined, :variable:`CMAKE_FIND_FRAMEWORK`
+ variable will be used, if any.
+
+``Python3_FIND_VIRTUALENV``
+ This variable defines the handling of virtual environments managed by
+ ``virtualenv`` or ``conda``. It is meaningful only when a virtual environment
+ is active (i.e. the ``activate`` script has been evaluated). In this case, it
+ takes precedence over ``Python3_FIND_REGISTRY`` and ``CMAKE_FIND_FRAMEWORK``
+ variables. The ``Python3_FIND_VIRTUALENV`` variable can be set to empty or
+ one of the following:
+
+ * ``FIRST``: The virtual environment is used before any other standard
+ paths to look-up for the interpreter. This is the default.
+ * ``ONLY``: Only the virtual environment is used to look-up for the
+ interpreter.
+ * ``STANDARD``: The virtual environment is not used to look-up for the
+ interpreter. In this case, variable ``Python3_FIND_REGISTRY`` (Windows)
+ or ``CMAKE_FIND_FRAMEWORK`` (macOS) can be set with value ``LAST`` or
+ ``NEVER`` to select preferably the interpreter from the virtual
+ environment.
+
+ .. note::
+
+ If the component ``Development`` is requested, it is **strongly**
+ recommended to also include the component ``Interpreter`` to get expected
+ result.
+
+Artifacts Specification
+^^^^^^^^^^^^^^^^^^^^^^^
+
+To solve special cases, it is possible to specify directly the artifacts by
+setting the following variables:
+
+``Python3_EXECUTABLE``
+ The path to the interpreter.
+
+``Python3_COMPILER``
+ The path to the compiler.
+
+``Python3_LIBRARY``
+ The path to the library. It will be used to compute the
+ variables ``Python3_LIBRARIES``, ``Python3_LIBRAY_DIRS`` and
+ ``Python3_RUNTIME_LIBRARY_DIRS``.
+
+``Python3_INCLUDE_DIR``
+ The path to the directory of the ``Python`` headers. It will be used to
+ compute the variable ``Python3_INCLUDE_DIRS``.
+
+``Python3_NumPy_INCLUDE_DIR``
+ The path to the directory of the ``NumPy`` headers. It will be used to
+ compute the variable ``Python3_NumPy_INCLUDE_DIRS``.
+
+.. note::
+
+ All paths must be absolute. Any artifact specified with a relative path
+ will be ignored.
+
+.. note::
+
+ When an artifact is specified, all ``HINTS`` will be ignored and no search
+ will be performed for this artifact.
+
+ If more than one artifact is specified, it is the user's responsability to
+ ensure the consistency of the various artifacts.
+
+Commands
+^^^^^^^^
+
+This module defines the command ``Python3_add_library`` (when
+:prop_gbl:`CMAKE_ROLE` is ``PROJECT``), which has the same semantics as
+:command:`add_library` and adds a dependency to target ``Python3::Python`` or,
+when library type is ``MODULE``, to target ``Python3::Module`` and takes care
+of Python module naming rules::
+
+ Python3_add_library (<name> [STATIC | SHARED | MODULE [WITH_SOABI]]
+ <source1> [<source2> ...])
+
+If the library type is not specified, ``MODULE`` is assumed.
+
+For ``MODULE`` library type, if option ``WITH_SOABI`` is specified, the
+module suffix will include the ``Python3_SOABI`` value, if any.
+#]=======================================================================]
+
+
+set (_PYTHON_PREFIX Python3)
+
+set (_Python3_REQUIRED_VERSION_MAJOR 3)
+
+include (${CMAKE_CURRENT_LIST_DIR}/FindPython/Support.cmake)
+
+if (COMMAND __Python3_add_library)
+ macro (Python3_add_library)
+ __Python3_add_library (Python3 ${ARGV})
+ endmacro()
+endif()
+
+unset (_PYTHON_PREFIX)
diff --git a/share/cmake-3.16/Modules/FindPythonInterp.cmake b/share/cmake-3.17/Modules/FindPythonInterp.cmake
index 1e01a99..1e01a99 100644
--- a/share/cmake-3.16/Modules/FindPythonInterp.cmake
+++ b/share/cmake-3.17/Modules/FindPythonInterp.cmake
diff --git a/share/cmake-3.16/Modules/FindPythonLibs.cmake b/share/cmake-3.17/Modules/FindPythonLibs.cmake
index d3ec7be..d3ec7be 100644
--- a/share/cmake-3.16/Modules/FindPythonLibs.cmake
+++ b/share/cmake-3.17/Modules/FindPythonLibs.cmake
diff --git a/share/cmake-3.16/Modules/FindQt.cmake b/share/cmake-3.17/Modules/FindQt.cmake
index d6a0662..d6a0662 100644
--- a/share/cmake-3.16/Modules/FindQt.cmake
+++ b/share/cmake-3.17/Modules/FindQt.cmake
diff --git a/share/cmake-3.16/Modules/FindQt3.cmake b/share/cmake-3.17/Modules/FindQt3.cmake
index 563ed46..563ed46 100644
--- a/share/cmake-3.16/Modules/FindQt3.cmake
+++ b/share/cmake-3.17/Modules/FindQt3.cmake
diff --git a/share/cmake-3.16/Modules/FindQt4.cmake b/share/cmake-3.17/Modules/FindQt4.cmake
index 3993968..3993968 100644
--- a/share/cmake-3.16/Modules/FindQt4.cmake
+++ b/share/cmake-3.17/Modules/FindQt4.cmake
diff --git a/share/cmake-3.16/Modules/FindQuickTime.cmake b/share/cmake-3.17/Modules/FindQuickTime.cmake
index 107486d..107486d 100644
--- a/share/cmake-3.16/Modules/FindQuickTime.cmake
+++ b/share/cmake-3.17/Modules/FindQuickTime.cmake
diff --git a/share/cmake-3.16/Modules/FindRTI.cmake b/share/cmake-3.17/Modules/FindRTI.cmake
index 54d2bec..54d2bec 100644
--- a/share/cmake-3.16/Modules/FindRTI.cmake
+++ b/share/cmake-3.17/Modules/FindRTI.cmake
diff --git a/share/cmake-3.16/Modules/FindRuby.cmake b/share/cmake-3.17/Modules/FindRuby.cmake
index 7e01fbc..7e01fbc 100644
--- a/share/cmake-3.16/Modules/FindRuby.cmake
+++ b/share/cmake-3.17/Modules/FindRuby.cmake
diff --git a/share/cmake-3.16/Modules/FindSDL.cmake b/share/cmake-3.17/Modules/FindSDL.cmake
index 8d793a9..8d793a9 100644
--- a/share/cmake-3.16/Modules/FindSDL.cmake
+++ b/share/cmake-3.17/Modules/FindSDL.cmake
diff --git a/share/cmake-3.16/Modules/FindSDL_image.cmake b/share/cmake-3.17/Modules/FindSDL_image.cmake
index e687b49..e687b49 100644
--- a/share/cmake-3.16/Modules/FindSDL_image.cmake
+++ b/share/cmake-3.17/Modules/FindSDL_image.cmake
diff --git a/share/cmake-3.16/Modules/FindSDL_mixer.cmake b/share/cmake-3.17/Modules/FindSDL_mixer.cmake
index 315400a..315400a 100644
--- a/share/cmake-3.16/Modules/FindSDL_mixer.cmake
+++ b/share/cmake-3.17/Modules/FindSDL_mixer.cmake
diff --git a/share/cmake-3.16/Modules/FindSDL_net.cmake b/share/cmake-3.17/Modules/FindSDL_net.cmake
index 28cb4d6..28cb4d6 100644
--- a/share/cmake-3.16/Modules/FindSDL_net.cmake
+++ b/share/cmake-3.17/Modules/FindSDL_net.cmake
diff --git a/share/cmake-3.16/Modules/FindSDL_sound.cmake b/share/cmake-3.17/Modules/FindSDL_sound.cmake
index 8d2f9f8..8d2f9f8 100644
--- a/share/cmake-3.16/Modules/FindSDL_sound.cmake
+++ b/share/cmake-3.17/Modules/FindSDL_sound.cmake
diff --git a/share/cmake-3.16/Modules/FindSDL_ttf.cmake b/share/cmake-3.17/Modules/FindSDL_ttf.cmake
index d5721da..d5721da 100644
--- a/share/cmake-3.16/Modules/FindSDL_ttf.cmake
+++ b/share/cmake-3.17/Modules/FindSDL_ttf.cmake
diff --git a/share/cmake-3.16/Modules/FindSQLite3.cmake b/share/cmake-3.17/Modules/FindSQLite3.cmake
index 374d7af..374d7af 100644
--- a/share/cmake-3.16/Modules/FindSQLite3.cmake
+++ b/share/cmake-3.17/Modules/FindSQLite3.cmake
diff --git a/share/cmake-3.16/Modules/FindSWIG.cmake b/share/cmake-3.17/Modules/FindSWIG.cmake
index ae6ae56..ae6ae56 100644
--- a/share/cmake-3.16/Modules/FindSWIG.cmake
+++ b/share/cmake-3.17/Modules/FindSWIG.cmake
diff --git a/share/cmake-3.16/Modules/FindSelfPackers.cmake b/share/cmake-3.17/Modules/FindSelfPackers.cmake
index 1abbcbd..1abbcbd 100644
--- a/share/cmake-3.16/Modules/FindSelfPackers.cmake
+++ b/share/cmake-3.17/Modules/FindSelfPackers.cmake
diff --git a/share/cmake-3.16/Modules/FindSquish.cmake b/share/cmake-3.17/Modules/FindSquish.cmake
index 7d49505..7d49505 100644
--- a/share/cmake-3.16/Modules/FindSquish.cmake
+++ b/share/cmake-3.17/Modules/FindSquish.cmake
diff --git a/share/cmake-3.16/Modules/FindSubversion.cmake b/share/cmake-3.17/Modules/FindSubversion.cmake
index ce280e2..ce280e2 100644
--- a/share/cmake-3.16/Modules/FindSubversion.cmake
+++ b/share/cmake-3.17/Modules/FindSubversion.cmake
diff --git a/share/cmake-3.17/Modules/FindTCL.cmake b/share/cmake-3.17/Modules/FindTCL.cmake
new file mode 100644
index 0000000..960265f
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindTCL.cmake
@@ -0,0 +1,241 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindTCL
+-------
+
+TK_INTERNAL_PATH was removed.
+
+This module finds if Tcl is installed and determines where the include
+files and libraries are. It also determines what the name of the
+library is. This code sets the following variables:
+
+::
+
+ TCL_FOUND = Tcl was found
+ TK_FOUND = Tk was found
+ TCLTK_FOUND = Tcl and Tk were found
+ TCL_LIBRARY = path to Tcl library (tcl tcl80)
+ TCL_INCLUDE_PATH = path to where tcl.h can be found
+ TCL_TCLSH = path to tclsh binary (tcl tcl80)
+ TK_LIBRARY = path to Tk library (tk tk80 etc)
+ TK_INCLUDE_PATH = path to where tk.h can be found
+ TK_WISH = full path to the wish executable
+
+
+
+In an effort to remove some clutter and clear up some issues for
+people who are not necessarily Tcl/Tk gurus/developers, some
+variables were moved or removed. Changes compared to CMake 2.4 are:
+
+::
+
+ => they were only useful for people writing Tcl/Tk extensions.
+ => these libs are not packaged by default with Tcl/Tk distributions.
+ Even when Tcl/Tk is built from source, several flavors of debug libs
+ are created and there is no real reason to pick a single one
+ specifically (say, amongst tcl84g, tcl84gs, or tcl84sgx).
+ Let's leave that choice to the user by allowing him to assign
+ TCL_LIBRARY to any Tcl library, debug or not.
+ => this ended up being only a Win32 variable, and there is a lot of
+ confusion regarding the location of this file in an installed Tcl/Tk
+ tree anyway (see 8.5 for example). If you need the internal path at
+ this point it is safer you ask directly where the *source* tree is
+ and dig from there.
+#]=======================================================================]
+
+include(${CMAKE_CURRENT_LIST_DIR}/CMakeFindFrameworks.cmake)
+include(${CMAKE_CURRENT_LIST_DIR}/FindTclsh.cmake)
+include(${CMAKE_CURRENT_LIST_DIR}/FindWish.cmake)
+
+if(TCLSH_VERSION_STRING)
+ set(TCL_TCLSH_VERSION "${TCLSH_VERSION_STRING}")
+else()
+ get_filename_component(TCL_TCLSH_PATH "${TCL_TCLSH}" PATH)
+ get_filename_component(TCL_TCLSH_PATH_PARENT "${TCL_TCLSH_PATH}" PATH)
+ string(REGEX REPLACE
+ "^.*tclsh([0-9]\\.*[0-9]).*$" "\\1" TCL_TCLSH_VERSION "${TCL_TCLSH}")
+endif()
+
+get_filename_component(TK_WISH_PATH "${TK_WISH}" PATH)
+get_filename_component(TK_WISH_PATH_PARENT "${TK_WISH_PATH}" PATH)
+string(REGEX REPLACE
+ "^.*wish([0-9]\\.*[0-9]).*$" "\\1" TK_WISH_VERSION "${TK_WISH}")
+
+get_filename_component(TCL_INCLUDE_PATH_PARENT "${TCL_INCLUDE_PATH}" PATH)
+get_filename_component(TK_INCLUDE_PATH_PARENT "${TK_INCLUDE_PATH}" PATH)
+
+get_filename_component(TCL_LIBRARY_PATH "${TCL_LIBRARY}" PATH)
+get_filename_component(TCL_LIBRARY_PATH_PARENT "${TCL_LIBRARY_PATH}" PATH)
+string(REGEX REPLACE
+ "^.*tcl([0-9]\\.*[0-9]).*$" "\\1" TCL_LIBRARY_VERSION "${TCL_LIBRARY}")
+
+get_filename_component(TK_LIBRARY_PATH "${TK_LIBRARY}" PATH)
+get_filename_component(TK_LIBRARY_PATH_PARENT "${TK_LIBRARY_PATH}" PATH)
+string(REGEX REPLACE
+ "^.*tk([0-9]\\.*[0-9]).*$" "\\1" TK_LIBRARY_VERSION "${TK_LIBRARY}")
+
+set(TCLTK_POSSIBLE_LIB_PATHS
+ "${TCL_INCLUDE_PATH_PARENT}/lib"
+ "${TK_INCLUDE_PATH_PARENT}/lib"
+ "${TCL_LIBRARY_PATH}"
+ "${TK_LIBRARY_PATH}"
+ "${TCL_TCLSH_PATH_PARENT}/lib"
+ "${TK_WISH_PATH_PARENT}/lib"
+)
+
+set(TCLTK_POSSIBLE_LIB_PATH_SUFFIXES
+ lib/tcl/tcl8.7
+ lib/tcl/tk8.7
+ lib/tcl/tcl8.6
+ lib/tcl/tk8.6
+ lib/tcl/tcl8.5
+ lib/tcl/tk8.5
+ lib/tcl/tcl8.4
+ lib/tcl/tk8.4
+)
+
+if(WIN32)
+ get_filename_component(
+ ActiveTcl_CurrentVersion
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl;CurrentVersion]"
+ NAME)
+ set(TCLTK_POSSIBLE_LIB_PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/lib"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/lib"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/lib"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/lib"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/lib"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/lib"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/lib"
+ "$ENV{ProgramFiles}/Tcl/Lib"
+ "C:/Program Files/Tcl/lib"
+ "C:/Tcl/lib"
+ )
+endif()
+
+find_library(TCL_LIBRARY
+ NAMES
+ tcl
+ tcl${TCL_LIBRARY_VERSION} tcl${TCL_TCLSH_VERSION} tcl${TK_WISH_VERSION}
+ tcl87 tcl8.7 tcl87t tcl8.7t
+ tcl86 tcl8.6 tcl86t tcl8.6t
+ tcl85 tcl8.5
+ tcl84 tcl8.4
+ tcl83 tcl8.3
+ tcl82 tcl8.2
+ tcl80 tcl8.0
+ PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
+ )
+
+find_library(TK_LIBRARY
+ NAMES
+ tk
+ tk${TK_LIBRARY_VERSION} tk${TCL_TCLSH_VERSION} tk${TK_WISH_VERSION}
+ tk87 tk8.7 tk87t tk8.7t
+ tk86 tk8.6 tk86t tk8.6t
+ tk85 tk8.5
+ tk84 tk8.4
+ tk83 tk8.3
+ tk82 tk8.2
+ tk80 tk8.0
+ PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
+ )
+
+CMAKE_FIND_FRAMEWORKS(Tcl)
+CMAKE_FIND_FRAMEWORKS(Tk)
+
+set(TCL_FRAMEWORK_INCLUDES)
+if(Tcl_FRAMEWORKS)
+ if(NOT TCL_INCLUDE_PATH)
+ foreach(dir ${Tcl_FRAMEWORKS})
+ set(TCL_FRAMEWORK_INCLUDES ${TCL_FRAMEWORK_INCLUDES} ${dir}/Headers)
+ endforeach()
+ endif()
+endif()
+
+set(TK_FRAMEWORK_INCLUDES)
+if(Tk_FRAMEWORKS)
+ if(NOT TK_INCLUDE_PATH)
+ foreach(dir ${Tk_FRAMEWORKS})
+ set(TK_FRAMEWORK_INCLUDES ${TK_FRAMEWORK_INCLUDES}
+ ${dir}/Headers ${dir}/PrivateHeaders)
+ endforeach()
+ endif()
+endif()
+
+set(TCLTK_POSSIBLE_INCLUDE_PATHS
+ "${TCL_LIBRARY_PATH_PARENT}/include"
+ "${TK_LIBRARY_PATH_PARENT}/include"
+ "${TCL_INCLUDE_PATH}"
+ "${TK_INCLUDE_PATH}"
+ ${TCL_FRAMEWORK_INCLUDES}
+ ${TK_FRAMEWORK_INCLUDES}
+ "${TCL_TCLSH_PATH_PARENT}/include"
+ "${TK_WISH_PATH_PARENT}/include"
+ )
+
+set(TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES
+ include/tcl${TK_LIBRARY_VERSION}
+ include/tcl${TCL_LIBRARY_VERSION}
+ include/tcl8.7
+ include/tk8.7
+ include/tcl8.6
+ include/tk8.6
+ include/tcl8.5
+ include/tk8.5
+ include/tcl8.4
+ include/tk8.4
+ include/tcl8.3
+ include/tcl8.2
+ include/tcl8.0
+ )
+
+if(WIN32)
+ set(TCLTK_POSSIBLE_INCLUDE_PATHS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/include"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/include"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/include"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/include"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/include"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/include"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/include"
+ "$ENV{ProgramFiles}/Tcl/include"
+ "C:/Program Files/Tcl/include"
+ "C:/Tcl/include"
+ )
+endif()
+
+find_path(TCL_INCLUDE_PATH
+ NAMES tcl.h
+ HINTS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES}
+ )
+
+find_path(TK_INCLUDE_PATH
+ NAMES tk.h
+ HINTS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES}
+ )
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(TCL DEFAULT_MSG TCL_LIBRARY TCL_INCLUDE_PATH)
+set(FPHSA_NAME_MISMATCHED 1)
+set(TCLTK_FIND_REQUIRED ${TCL_FIND_REQUIRED})
+set(TCLTK_FIND_QUIETLY ${TCL_FIND_QUIETLY})
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(TCLTK DEFAULT_MSG TCL_LIBRARY TCL_INCLUDE_PATH TK_LIBRARY TK_INCLUDE_PATH)
+set(TK_FIND_REQUIRED ${TCL_FIND_REQUIRED})
+set(TK_FIND_QUIETLY ${TCL_FIND_QUIETLY})
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(TK DEFAULT_MSG TK_LIBRARY TK_INCLUDE_PATH)
+unset(FPHSA_NAME_MISMATCHED)
+
+mark_as_advanced(
+ TCL_INCLUDE_PATH
+ TK_INCLUDE_PATH
+ TCL_LIBRARY
+ TK_LIBRARY
+ )
diff --git a/share/cmake-3.16/Modules/FindTIFF.cmake b/share/cmake-3.17/Modules/FindTIFF.cmake
index 00a3a41..00a3a41 100644
--- a/share/cmake-3.16/Modules/FindTIFF.cmake
+++ b/share/cmake-3.17/Modules/FindTIFF.cmake
diff --git a/share/cmake-3.16/Modules/FindTclStub.cmake b/share/cmake-3.17/Modules/FindTclStub.cmake
index 8f63480..8f63480 100644
--- a/share/cmake-3.16/Modules/FindTclStub.cmake
+++ b/share/cmake-3.17/Modules/FindTclStub.cmake
diff --git a/share/cmake-3.16/Modules/FindTclsh.cmake b/share/cmake-3.17/Modules/FindTclsh.cmake
index 82be473..82be473 100644
--- a/share/cmake-3.16/Modules/FindTclsh.cmake
+++ b/share/cmake-3.17/Modules/FindTclsh.cmake
diff --git a/share/cmake-3.17/Modules/FindThreads.cmake b/share/cmake-3.17/Modules/FindThreads.cmake
new file mode 100644
index 0000000..f97e5c8
--- /dev/null
+++ b/share/cmake-3.17/Modules/FindThreads.cmake
@@ -0,0 +1,248 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindThreads
+-----------
+
+This module determines the thread library of the system.
+
+Imported Targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :prop_tgt:`IMPORTED` target:
+
+``Threads::Threads``
+ The thread library, if found.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+The following variables are set:
+
+``Threads_FOUND``
+ If a supported thread library was found.
+``CMAKE_THREAD_LIBS_INIT``
+ The thread library to use. This may be empty if the thread functions
+ are provided by the system libraries and no special flags are needed
+ to use them.
+``CMAKE_USE_WIN32_THREADS_INIT``
+ If the found thread library is the win32 one.
+``CMAKE_USE_PTHREADS_INIT``
+ If the found thread library is pthread compatible.
+``CMAKE_HP_PTHREADS_INIT``
+ If the found thread library is the HP thread library.
+
+Variables Affecting Behavior
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. variable:: THREADS_PREFER_PTHREAD_FLAG
+
+ If the use of the -pthread compiler and linker flag is preferred then
+ the caller can set this variable to TRUE. The compiler flag can only be
+ used with the imported target. Use of both the imported target as well
+ as this switch is highly recommended for new code.
+
+ This variable has no effect if the system libraries provide the
+ thread functions, i.e. when ``CMAKE_THREAD_LIBS_INIT`` will be empty.
+#]=======================================================================]
+
+include (CheckLibraryExists)
+set(Threads_FOUND FALSE)
+set(CMAKE_REQUIRED_QUIET_SAVE ${CMAKE_REQUIRED_QUIET})
+set(CMAKE_REQUIRED_QUIET ${Threads_FIND_QUIETLY})
+
+if(CMAKE_C_COMPILER_LOADED)
+ include (CheckIncludeFile)
+ include (CheckCSourceCompiles)
+elseif(CMAKE_CXX_COMPILER_LOADED)
+ include (CheckIncludeFileCXX)
+ include (CheckCXXSourceCompiles)
+else()
+ message(FATAL_ERROR "FindThreads only works if either C or CXX language is enabled")
+endif()
+
+# simple pthread test code
+set(PTHREAD_C_CXX_TEST_SOURCE [====[
+#include <pthread.h>
+
+void* test_func(void* data)
+{
+ return data;
+}
+
+int main(void)
+{
+ pthread_t thread;
+ pthread_create(&thread, NULL, test_func, NULL);
+ pthread_detach(thread);
+ pthread_cancel(thread);
+ pthread_join(thread, NULL);
+ pthread_atfork(NULL, NULL, NULL);
+ pthread_exit(NULL);
+
+ return 0;
+}
+]====])
+
+# Internal helper macro.
+# Do NOT even think about using it outside of this file!
+macro(_check_threads_lib LIBNAME FUNCNAME VARNAME)
+ if(NOT Threads_FOUND)
+ CHECK_LIBRARY_EXISTS(${LIBNAME} ${FUNCNAME} "" ${VARNAME})
+ if(${VARNAME})
+ set(CMAKE_THREAD_LIBS_INIT "-l${LIBNAME}")
+ set(CMAKE_HAVE_THREADS_LIBRARY 1)
+ set(Threads_FOUND TRUE)
+ endif()
+ endif ()
+endmacro()
+
+# Internal helper macro.
+# Do NOT even think about using it outside of this file!
+macro(_check_pthreads_flag)
+ if(NOT Threads_FOUND)
+ # If we did not found -lpthread, -lpthread, or -lthread, look for -pthread
+ if(NOT DEFINED THREADS_HAVE_PTHREAD_ARG)
+ message(CHECK_START "Check if compiler accepts -pthread")
+ if(CMAKE_C_COMPILER_LOADED)
+ set(_threads_src ${CMAKE_CURRENT_LIST_DIR}/CheckForPthreads.c)
+ elseif(CMAKE_CXX_COMPILER_LOADED)
+ set(_threads_src ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindThreads/CheckForPthreads.cxx)
+ configure_file(${CMAKE_CURRENT_LIST_DIR}/CheckForPthreads.c "${_threads_src}" COPYONLY)
+ endif()
+ try_compile(THREADS_HAVE_PTHREAD_ARG
+ ${CMAKE_BINARY_DIR}
+ ${_threads_src}
+ CMAKE_FLAGS -DLINK_LIBRARIES:STRING=-pthread
+ OUTPUT_VARIABLE OUTPUT)
+ unset(_threads_src)
+
+ if(THREADS_HAVE_PTHREAD_ARG)
+ set(Threads_FOUND TRUE)
+ message(CHECK_PASS "yes")
+ else()
+ message(CHECK_FAIL "no")
+ file(APPEND
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if compiler accepts -pthread failed with the following output:\n${OUTPUT}\n\n")
+ endif()
+
+ endif()
+
+ if(THREADS_HAVE_PTHREAD_ARG)
+ set(Threads_FOUND TRUE)
+ set(CMAKE_THREAD_LIBS_INIT "-pthread")
+ endif()
+ endif()
+endmacro()
+
+# Do we have pthreads?
+if(CMAKE_C_COMPILER_LOADED)
+ CHECK_INCLUDE_FILE("pthread.h" CMAKE_HAVE_PTHREAD_H)
+else()
+ CHECK_INCLUDE_FILE_CXX("pthread.h" CMAKE_HAVE_PTHREAD_H)
+endif()
+
+if(CMAKE_HAVE_PTHREAD_H)
+ #
+ # We have pthread.h
+ # Let's check for the library now.
+ #
+ set(CMAKE_HAVE_THREADS_LIBRARY)
+ if(NOT THREADS_HAVE_PTHREAD_ARG)
+ # Check if pthread functions are in normal C library.
+ # We list some pthread functions in PTHREAD_C_CXX_TEST_SOURCE test code.
+ # If the pthread functions already exist in C library, we could just use
+ # them instead of linking to the additional pthread library.
+ if(CMAKE_C_COMPILER_LOADED)
+ CHECK_C_SOURCE_COMPILES("${PTHREAD_C_CXX_TEST_SOURCE}" CMAKE_HAVE_LIBC_PTHREAD)
+ elseif(CMAKE_CXX_COMPILER_LOADED)
+ CHECK_CXX_SOURCE_COMPILES("${PTHREAD_C_CXX_TEST_SOURCE}" CMAKE_HAVE_LIBC_PTHREAD)
+ endif()
+ if(CMAKE_HAVE_LIBC_PTHREAD)
+ set(CMAKE_THREAD_LIBS_INIT "")
+ set(CMAKE_HAVE_THREADS_LIBRARY 1)
+ set(Threads_FOUND TRUE)
+ else()
+ # Check for -pthread first if enabled. This is the recommended
+ # way, but not backwards compatible as one must also pass -pthread
+ # as compiler flag then.
+ if (THREADS_PREFER_PTHREAD_FLAG)
+ _check_pthreads_flag()
+ endif ()
+
+ if(CMAKE_SYSTEM MATCHES "GHS-MULTI")
+ _check_threads_lib(posix pthread_create CMAKE_HAVE_PTHREADS_CREATE)
+ endif()
+ _check_threads_lib(pthreads pthread_create CMAKE_HAVE_PTHREADS_CREATE)
+ _check_threads_lib(pthread pthread_create CMAKE_HAVE_PTHREAD_CREATE)
+ if(CMAKE_SYSTEM_NAME MATCHES "SunOS")
+ # On sun also check for -lthread
+ _check_threads_lib(thread thr_create CMAKE_HAVE_THR_CREATE)
+ endif()
+ endif()
+ endif()
+
+ _check_pthreads_flag()
+endif()
+
+if(CMAKE_THREAD_LIBS_INIT OR CMAKE_HAVE_LIBC_PTHREAD)
+ set(CMAKE_USE_PTHREADS_INIT 1)
+ set(Threads_FOUND TRUE)
+endif()
+
+if(CMAKE_SYSTEM_NAME MATCHES "Windows")
+ set(CMAKE_USE_WIN32_THREADS_INIT 1)
+ set(Threads_FOUND TRUE)
+endif()
+
+if(CMAKE_USE_PTHREADS_INIT)
+ if(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
+ # Use libcma if it exists and can be used. It provides more
+ # symbols than the plain pthread library. CMA threads
+ # have actually been deprecated:
+ # http://docs.hp.com/en/B3920-90091/ch12s03.html#d0e11395
+ # http://docs.hp.com/en/947/d8.html
+ # but we need to maintain compatibility here.
+ # The CMAKE_HP_PTHREADS setting actually indicates whether CMA threads
+ # are available.
+ CHECK_LIBRARY_EXISTS(cma pthread_attr_create "" CMAKE_HAVE_HP_CMA)
+ if(CMAKE_HAVE_HP_CMA)
+ set(CMAKE_THREAD_LIBS_INIT "-lcma")
+ set(CMAKE_HP_PTHREADS_INIT 1)
+ set(Threads_FOUND TRUE)
+ endif()
+ set(CMAKE_USE_PTHREADS_INIT 1)
+ endif()
+
+ if(CMAKE_SYSTEM MATCHES "OSF1-V")
+ set(CMAKE_USE_PTHREADS_INIT 0)
+ set(CMAKE_THREAD_LIBS_INIT )
+ endif()
+
+ if(CMAKE_SYSTEM MATCHES "CYGWIN_NT")
+ set(CMAKE_USE_PTHREADS_INIT 1)
+ set(Threads_FOUND TRUE)
+ set(CMAKE_THREAD_LIBS_INIT )
+ set(CMAKE_USE_WIN32_THREADS_INIT 0)
+ endif()
+endif()
+
+set(CMAKE_REQUIRED_QUIET ${CMAKE_REQUIRED_QUIET_SAVE})
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Threads DEFAULT_MSG Threads_FOUND)
+
+if(THREADS_FOUND AND NOT TARGET Threads::Threads)
+ add_library(Threads::Threads INTERFACE IMPORTED)
+
+ if(THREADS_HAVE_PTHREAD_ARG)
+ set_property(TARGET Threads::Threads
+ PROPERTY INTERFACE_COMPILE_OPTIONS "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler -pthread>"
+ "$<$<NOT:$<COMPILE_LANGUAGE:CUDA>>:-pthread>")
+ endif()
+
+ if(CMAKE_THREAD_LIBS_INIT)
+ set_property(TARGET Threads::Threads PROPERTY INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
+ endif()
+endif()
diff --git a/share/cmake-3.16/Modules/FindUnixCommands.cmake b/share/cmake-3.17/Modules/FindUnixCommands.cmake
index 2513f5c..2513f5c 100644
--- a/share/cmake-3.16/Modules/FindUnixCommands.cmake
+++ b/share/cmake-3.17/Modules/FindUnixCommands.cmake
diff --git a/share/cmake-3.16/Modules/FindVulkan.cmake b/share/cmake-3.17/Modules/FindVulkan.cmake
index 55da55f..55da55f 100644
--- a/share/cmake-3.16/Modules/FindVulkan.cmake
+++ b/share/cmake-3.17/Modules/FindVulkan.cmake
diff --git a/share/cmake-3.16/Modules/FindWget.cmake b/share/cmake-3.17/Modules/FindWget.cmake
index bd01ec2..bd01ec2 100644
--- a/share/cmake-3.16/Modules/FindWget.cmake
+++ b/share/cmake-3.17/Modules/FindWget.cmake
diff --git a/share/cmake-3.16/Modules/FindWish.cmake b/share/cmake-3.17/Modules/FindWish.cmake
index b332bde..b332bde 100644
--- a/share/cmake-3.16/Modules/FindWish.cmake
+++ b/share/cmake-3.17/Modules/FindWish.cmake
diff --git a/share/cmake-3.16/Modules/FindX11.cmake b/share/cmake-3.17/Modules/FindX11.cmake
index b28dd12..b28dd12 100644
--- a/share/cmake-3.16/Modules/FindX11.cmake
+++ b/share/cmake-3.17/Modules/FindX11.cmake
diff --git a/share/cmake-3.16/Modules/FindXCTest.cmake b/share/cmake-3.17/Modules/FindXCTest.cmake
index 15721e1..15721e1 100644
--- a/share/cmake-3.16/Modules/FindXCTest.cmake
+++ b/share/cmake-3.17/Modules/FindXCTest.cmake
diff --git a/share/cmake-3.16/Modules/FindXMLRPC.cmake b/share/cmake-3.17/Modules/FindXMLRPC.cmake
index 69e6df2..69e6df2 100644
--- a/share/cmake-3.16/Modules/FindXMLRPC.cmake
+++ b/share/cmake-3.17/Modules/FindXMLRPC.cmake
diff --git a/share/cmake-3.16/Modules/FindXalanC.cmake b/share/cmake-3.17/Modules/FindXalanC.cmake
index 3adaa44..3adaa44 100644
--- a/share/cmake-3.16/Modules/FindXalanC.cmake
+++ b/share/cmake-3.17/Modules/FindXalanC.cmake
diff --git a/share/cmake-3.16/Modules/FindXercesC.cmake b/share/cmake-3.17/Modules/FindXercesC.cmake
index 47bfd62..47bfd62 100644
--- a/share/cmake-3.16/Modules/FindXercesC.cmake
+++ b/share/cmake-3.17/Modules/FindXercesC.cmake
diff --git a/share/cmake-3.16/Modules/FindZLIB.cmake b/share/cmake-3.17/Modules/FindZLIB.cmake
index 79e2313..79e2313 100644
--- a/share/cmake-3.16/Modules/FindZLIB.cmake
+++ b/share/cmake-3.17/Modules/FindZLIB.cmake
diff --git a/share/cmake-3.16/Modules/Findosg.cmake b/share/cmake-3.17/Modules/Findosg.cmake
index 027f315..027f315 100644
--- a/share/cmake-3.16/Modules/Findosg.cmake
+++ b/share/cmake-3.17/Modules/Findosg.cmake
diff --git a/share/cmake-3.16/Modules/FindosgAnimation.cmake b/share/cmake-3.17/Modules/FindosgAnimation.cmake
index 65e3016..65e3016 100644
--- a/share/cmake-3.16/Modules/FindosgAnimation.cmake
+++ b/share/cmake-3.17/Modules/FindosgAnimation.cmake
diff --git a/share/cmake-3.16/Modules/FindosgDB.cmake b/share/cmake-3.17/Modules/FindosgDB.cmake
index a28f650..a28f650 100644
--- a/share/cmake-3.16/Modules/FindosgDB.cmake
+++ b/share/cmake-3.17/Modules/FindosgDB.cmake
diff --git a/share/cmake-3.16/Modules/FindosgFX.cmake b/share/cmake-3.17/Modules/FindosgFX.cmake
index 438fab7..438fab7 100644
--- a/share/cmake-3.16/Modules/FindosgFX.cmake
+++ b/share/cmake-3.17/Modules/FindosgFX.cmake
diff --git a/share/cmake-3.16/Modules/FindosgGA.cmake b/share/cmake-3.17/Modules/FindosgGA.cmake
index 7b6ef30..7b6ef30 100644
--- a/share/cmake-3.16/Modules/FindosgGA.cmake
+++ b/share/cmake-3.17/Modules/FindosgGA.cmake
diff --git a/share/cmake-3.16/Modules/FindosgIntrospection.cmake b/share/cmake-3.17/Modules/FindosgIntrospection.cmake
index 625e4c2..625e4c2 100644
--- a/share/cmake-3.16/Modules/FindosgIntrospection.cmake
+++ b/share/cmake-3.17/Modules/FindosgIntrospection.cmake
diff --git a/share/cmake-3.16/Modules/FindosgManipulator.cmake b/share/cmake-3.17/Modules/FindosgManipulator.cmake
index 857ff5d..857ff5d 100644
--- a/share/cmake-3.16/Modules/FindosgManipulator.cmake
+++ b/share/cmake-3.17/Modules/FindosgManipulator.cmake
diff --git a/share/cmake-3.16/Modules/FindosgParticle.cmake b/share/cmake-3.17/Modules/FindosgParticle.cmake
index 91a30dc..91a30dc 100644
--- a/share/cmake-3.16/Modules/FindosgParticle.cmake
+++ b/share/cmake-3.17/Modules/FindosgParticle.cmake
diff --git a/share/cmake-3.16/Modules/FindosgPresentation.cmake b/share/cmake-3.17/Modules/FindosgPresentation.cmake
index eae75d6..eae75d6 100644
--- a/share/cmake-3.16/Modules/FindosgPresentation.cmake
+++ b/share/cmake-3.17/Modules/FindosgPresentation.cmake
diff --git a/share/cmake-3.16/Modules/FindosgProducer.cmake b/share/cmake-3.17/Modules/FindosgProducer.cmake
index 33b9f73..33b9f73 100644
--- a/share/cmake-3.16/Modules/FindosgProducer.cmake
+++ b/share/cmake-3.17/Modules/FindosgProducer.cmake
diff --git a/share/cmake-3.16/Modules/FindosgQt.cmake b/share/cmake-3.17/Modules/FindosgQt.cmake
index cf35630..cf35630 100644
--- a/share/cmake-3.16/Modules/FindosgQt.cmake
+++ b/share/cmake-3.17/Modules/FindosgQt.cmake
diff --git a/share/cmake-3.16/Modules/FindosgShadow.cmake b/share/cmake-3.17/Modules/FindosgShadow.cmake
index 0049c4e..0049c4e 100644
--- a/share/cmake-3.16/Modules/FindosgShadow.cmake
+++ b/share/cmake-3.17/Modules/FindosgShadow.cmake
diff --git a/share/cmake-3.16/Modules/FindosgSim.cmake b/share/cmake-3.17/Modules/FindosgSim.cmake
index 43ba542..43ba542 100644
--- a/share/cmake-3.16/Modules/FindosgSim.cmake
+++ b/share/cmake-3.17/Modules/FindosgSim.cmake
diff --git a/share/cmake-3.16/Modules/FindosgTerrain.cmake b/share/cmake-3.17/Modules/FindosgTerrain.cmake
index c6f5b69..c6f5b69 100644
--- a/share/cmake-3.16/Modules/FindosgTerrain.cmake
+++ b/share/cmake-3.17/Modules/FindosgTerrain.cmake
diff --git a/share/cmake-3.16/Modules/FindosgText.cmake b/share/cmake-3.17/Modules/FindosgText.cmake
index fd3c232..fd3c232 100644
--- a/share/cmake-3.16/Modules/FindosgText.cmake
+++ b/share/cmake-3.17/Modules/FindosgText.cmake
diff --git a/share/cmake-3.16/Modules/FindosgUtil.cmake b/share/cmake-3.17/Modules/FindosgUtil.cmake
index e84727a..e84727a 100644
--- a/share/cmake-3.16/Modules/FindosgUtil.cmake
+++ b/share/cmake-3.17/Modules/FindosgUtil.cmake
diff --git a/share/cmake-3.16/Modules/FindosgViewer.cmake b/share/cmake-3.17/Modules/FindosgViewer.cmake
index 2174357..2174357 100644
--- a/share/cmake-3.16/Modules/FindosgViewer.cmake
+++ b/share/cmake-3.17/Modules/FindosgViewer.cmake
diff --git a/share/cmake-3.16/Modules/FindosgVolume.cmake b/share/cmake-3.17/Modules/FindosgVolume.cmake
index 35defef..35defef 100644
--- a/share/cmake-3.16/Modules/FindosgVolume.cmake
+++ b/share/cmake-3.17/Modules/FindosgVolume.cmake
diff --git a/share/cmake-3.16/Modules/FindosgWidget.cmake b/share/cmake-3.17/Modules/FindosgWidget.cmake
index c7aae44..c7aae44 100644
--- a/share/cmake-3.16/Modules/FindosgWidget.cmake
+++ b/share/cmake-3.17/Modules/FindosgWidget.cmake
diff --git a/share/cmake-3.16/Modules/Findosg_functions.cmake b/share/cmake-3.17/Modules/Findosg_functions.cmake
index 563b6bd..563b6bd 100644
--- a/share/cmake-3.16/Modules/Findosg_functions.cmake
+++ b/share/cmake-3.17/Modules/Findosg_functions.cmake
diff --git a/share/cmake-3.16/Modules/FindwxWidgets.cmake b/share/cmake-3.17/Modules/FindwxWidgets.cmake
index 93ac51d..93ac51d 100644
--- a/share/cmake-3.16/Modules/FindwxWidgets.cmake
+++ b/share/cmake-3.17/Modules/FindwxWidgets.cmake
diff --git a/share/cmake-3.16/Modules/FindwxWindows.cmake b/share/cmake-3.17/Modules/FindwxWindows.cmake
index 35840f5..35840f5 100644
--- a/share/cmake-3.16/Modules/FindwxWindows.cmake
+++ b/share/cmake-3.17/Modules/FindwxWindows.cmake
diff --git a/share/cmake-3.17/Modules/FortranCInterface.cmake b/share/cmake-3.17/Modules/FortranCInterface.cmake
new file mode 100644
index 0000000..547346b
--- /dev/null
+++ b/share/cmake-3.17/Modules/FortranCInterface.cmake
@@ -0,0 +1,392 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FortranCInterface
+-----------------
+
+Fortran/C Interface Detection
+
+This module automatically detects the API by which C and Fortran
+languages interact.
+
+Module Variables
+^^^^^^^^^^^^^^^^
+
+Variables that indicate if the mangling is found:
+
+``FortranCInterface_GLOBAL_FOUND``
+ Global subroutines and functions.
+
+``FortranCInterface_MODULE_FOUND``
+ Module subroutines and functions (declared by "MODULE PROCEDURE").
+
+This module also provides the following variables to specify
+the detected mangling, though a typical use case does not need
+to reference them and can use the `Module Functions`_ below.
+
+``FortranCInterface_GLOBAL_PREFIX``
+ Prefix for a global symbol without an underscore.
+
+``FortranCInterface_GLOBAL_SUFFIX``
+ Suffix for a global symbol without an underscore.
+
+``FortranCInterface_GLOBAL_CASE``
+ The case for a global symbol without an underscore,
+ either ``UPPER`` or ``LOWER``.
+
+``FortranCInterface_GLOBAL__PREFIX``
+ Prefix for a global symbol with an underscore.
+
+``FortranCInterface_GLOBAL__SUFFIX``
+ Suffix for a global symbol with an underscore.
+
+``FortranCInterface_GLOBAL__CASE``
+ The case for a global symbol with an underscore,
+ either ``UPPER`` or ``LOWER``.
+
+``FortranCInterface_MODULE_PREFIX``
+ Prefix for a module symbol without an underscore.
+
+``FortranCInterface_MODULE_MIDDLE``
+ Middle of a module symbol without an underscore that appears
+ between the name of the module and the name of the symbol.
+
+``FortranCInterface_MODULE_SUFFIX``
+ Suffix for a module symbol without an underscore.
+
+``FortranCInterface_MODULE_CASE``
+ The case for a module symbol without an underscore,
+ either ``UPPER`` or ``LOWER``.
+
+``FortranCInterface_MODULE__PREFIX``
+ Prefix for a module symbol with an underscore.
+
+``FortranCInterface_MODULE__MIDDLE``
+ Middle of a module symbol with an underscore that appears
+ between the name of the module and the name of the symbol.
+
+``FortranCInterface_MODULE__SUFFIX``
+ Suffix for a module symbol with an underscore.
+
+``FortranCInterface_MODULE__CASE``
+ The case for a module symbol with an underscore,
+ either ``UPPER`` or ``LOWER``.
+
+Module Functions
+^^^^^^^^^^^^^^^^
+
+.. command:: FortranCInterface_HEADER
+
+ The ``FortranCInterface_HEADER`` function is provided to generate a
+ C header file containing macros to mangle symbol names::
+
+ FortranCInterface_HEADER(<file>
+ [MACRO_NAMESPACE <macro-ns>]
+ [SYMBOL_NAMESPACE <ns>]
+ [SYMBOLS [<module>:]<function> ...])
+
+ It generates in ``<file>`` definitions of the following macros::
+
+ #define FortranCInterface_GLOBAL (name,NAME) ...
+ #define FortranCInterface_GLOBAL_(name,NAME) ...
+ #define FortranCInterface_MODULE (mod,name, MOD,NAME) ...
+ #define FortranCInterface_MODULE_(mod,name, MOD,NAME) ...
+
+ These macros mangle four categories of Fortran symbols, respectively:
+
+ * Global symbols without '_': ``call mysub()``
+ * Global symbols with '_' : ``call my_sub()``
+ * Module symbols without '_': ``use mymod; call mysub()``
+ * Module symbols with '_' : ``use mymod; call my_sub()``
+
+ If mangling for a category is not known, its macro is left undefined.
+ All macros require raw names in both lower case and upper case.
+
+ The options are:
+
+ ``MACRO_NAMESPACE``
+ Replace the default ``FortranCInterface_`` prefix with a given
+ namespace ``<macro-ns>``.
+
+ ``SYMBOLS``
+ List symbols to mangle automatically with C preprocessor definitions::
+
+ <function> ==> #define <ns><function> ...
+ <module>:<function> ==> #define <ns><module>_<function> ...
+
+ If the mangling for some symbol is not known then no preprocessor
+ definition is created, and a warning is displayed.
+
+ ``SYMBOL_NAMESPACE``
+ Prefix all preprocessor definitions generated by the ``SYMBOLS``
+ option with a given namespace ``<ns>``.
+
+.. command:: FortranCInterface_VERIFY
+
+ The ``FortranCInterface_VERIFY`` function is provided to verify
+ that the Fortran and C/C++ compilers work together::
+
+ FortranCInterface_VERIFY([CXX] [QUIET])
+
+ It tests whether a simple test executable using Fortran and C (and C++
+ when the CXX option is given) compiles and links successfully. The
+ result is stored in the cache entry ``FortranCInterface_VERIFIED_C``
+ (or ``FortranCInterface_VERIFIED_CXX`` if ``CXX`` is given) as a boolean.
+ If the check fails and ``QUIET`` is not given the function terminates with a
+ fatal error message describing the problem. The purpose of this check
+ is to stop a build early for incompatible compiler combinations. The
+ test is built in the ``Release`` configuration.
+
+Example Usage
+^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ include(FortranCInterface)
+ FortranCInterface_HEADER(FC.h MACRO_NAMESPACE "FC_")
+
+This creates a "FC.h" header that defines mangling macros ``FC_GLOBAL()``,
+``FC_GLOBAL_()``, ``FC_MODULE()``, and ``FC_MODULE_()``.
+
+.. code-block:: cmake
+
+ include(FortranCInterface)
+ FortranCInterface_HEADER(FCMangle.h
+ MACRO_NAMESPACE "FC_"
+ SYMBOL_NAMESPACE "FC_"
+ SYMBOLS mysub mymod:my_sub)
+
+This creates a "FCMangle.h" header that defines the same ``FC_*()``
+mangling macros as the previous example plus preprocessor symbols
+``FC_mysub`` and ``FC_mymod_my_sub``.
+
+Additional Manglings
+^^^^^^^^^^^^^^^^^^^^
+
+FortranCInterface is aware of possible ``GLOBAL`` and ``MODULE`` manglings
+for many Fortran compilers, but it also provides an interface to specify
+new possible manglings. Set the variables::
+
+ FortranCInterface_GLOBAL_SYMBOLS
+ FortranCInterface_MODULE_SYMBOLS
+
+before including FortranCInterface to specify manglings of the symbols
+``MySub``, ``My_Sub``, ``MyModule:MySub``, and ``My_Module:My_Sub``.
+For example, the code:
+
+.. code-block:: cmake
+
+ set(FortranCInterface_GLOBAL_SYMBOLS mysub_ my_sub__ MYSUB_)
+ # ^^^^^ ^^^^^^ ^^^^^
+ set(FortranCInterface_MODULE_SYMBOLS
+ __mymodule_MOD_mysub __my_module_MOD_my_sub)
+ # ^^^^^^^^ ^^^^^ ^^^^^^^^^ ^^^^^^
+ include(FortranCInterface)
+
+tells FortranCInterface to try given ``GLOBAL`` and ``MODULE`` manglings.
+(The carets point at raw symbol names for clarity in this example but
+are not needed.)
+#]=======================================================================]
+
+#-----------------------------------------------------------------------------
+# Execute at most once in a project.
+if(FortranCInterface_SOURCE_DIR)
+ return()
+endif()
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0007 NEW)
+
+#-----------------------------------------------------------------------------
+# Verify that C and Fortran are available.
+foreach(lang C Fortran)
+ if(NOT CMAKE_${lang}_COMPILER_LOADED)
+ message(FATAL_ERROR
+ "FortranCInterface requires the ${lang} language to be enabled.")
+ endif()
+endforeach()
+
+#-----------------------------------------------------------------------------
+set(FortranCInterface_SOURCE_DIR ${CMAKE_ROOT}/Modules/FortranCInterface)
+
+# MinGW's make tool does not always like () in the path
+if("${CMAKE_GENERATOR}" MATCHES "MinGW" AND
+ "${FortranCInterface_SOURCE_DIR}" MATCHES "[()]")
+ file(COPY ${FortranCInterface_SOURCE_DIR}/
+ DESTINATION ${CMAKE_BINARY_DIR}/CMakeFiles/FortranCInterfaceMinGW)
+ set(FortranCInterface_SOURCE_DIR ${CMAKE_BINARY_DIR}/CMakeFiles/FortranCInterfaceMinGW)
+endif()
+
+# Create the interface detection project if it does not exist.
+if(NOT FortranCInterface_BINARY_DIR)
+ set(FortranCInterface_BINARY_DIR ${CMAKE_BINARY_DIR}/CMakeFiles/FortranCInterface)
+ include(${FortranCInterface_SOURCE_DIR}/Detect.cmake)
+endif()
+
+# Load the detection results.
+include(${FortranCInterface_BINARY_DIR}/Output.cmake)
+
+#-----------------------------------------------------------------------------
+function(FortranCInterface_HEADER file)
+ # Parse arguments.
+ if(IS_ABSOLUTE "${file}")
+ set(FILE "${file}")
+ else()
+ set(FILE "${CMAKE_CURRENT_BINARY_DIR}/${file}")
+ endif()
+ set(MACRO_NAMESPACE "FortranCInterface_")
+ set(SYMBOL_NAMESPACE)
+ set(SYMBOLS)
+ set(doing)
+ foreach(arg ${ARGN})
+ if("x${arg}" MATCHES "^x(SYMBOLS|SYMBOL_NAMESPACE|MACRO_NAMESPACE)$")
+ set(doing "${arg}")
+ elseif("x${doing}" MATCHES "^x(SYMBOLS)$")
+ list(APPEND "${doing}" "${arg}")
+ elseif("x${doing}" MATCHES "^x(SYMBOL_NAMESPACE|MACRO_NAMESPACE)$")
+ set("${doing}" "${arg}")
+ set(doing)
+ else()
+ message(AUTHOR_WARNING "Unknown argument: \"${arg}\"")
+ endif()
+ endforeach()
+
+ # Generate macro definitions.
+ set(HEADER_CONTENT)
+ set(_desc_GLOBAL "/* Mangling for Fortran global symbols without underscores. */")
+ set(_desc_GLOBAL_ "/* Mangling for Fortran global symbols with underscores. */")
+ set(_desc_MODULE "/* Mangling for Fortran module symbols without underscores. */")
+ set(_desc_MODULE_ "/* Mangling for Fortran module symbols with underscores. */")
+ foreach(macro GLOBAL GLOBAL_ MODULE MODULE_)
+ if(FortranCInterface_${macro}_MACRO)
+ string(APPEND HEADER_CONTENT "
+${_desc_${macro}}
+#define ${MACRO_NAMESPACE}${macro}${FortranCInterface_${macro}_MACRO}
+")
+ endif()
+ endforeach()
+
+ # Generate symbol mangling definitions.
+ if(SYMBOLS)
+ string(APPEND HEADER_CONTENT "
+/*--------------------------------------------------------------------------*/
+/* Mangle some symbols automatically. */
+")
+ endif()
+ foreach(f ${SYMBOLS})
+ if("${f}" MATCHES ":")
+ # Module symbol name. Parse "<module>:<function>" syntax.
+ string(REPLACE ":" ";" pieces "${f}")
+ list(GET pieces 0 module)
+ list(GET pieces 1 function)
+ string(TOUPPER "${module}" m_upper)
+ string(TOLOWER "${module}" m_lower)
+ string(TOUPPER "${function}" f_upper)
+ string(TOLOWER "${function}" f_lower)
+ if("${function}" MATCHES "_")
+ set(form "_")
+ else()
+ set(form "")
+ endif()
+ if(FortranCInterface_MODULE${form}_MACRO)
+ string(APPEND HEADER_CONTENT "#define ${SYMBOL_NAMESPACE}${module}_${function} ${MACRO_NAMESPACE}MODULE${form}(${m_lower},${f_lower}, ${m_upper},${f_upper})\n")
+ else()
+ message(AUTHOR_WARNING "No FortranCInterface mangling known for ${f}")
+ endif()
+ else()
+ # Global symbol name.
+ if("${f}" MATCHES "_")
+ set(form "_")
+ else()
+ set(form "")
+ endif()
+ string(TOUPPER "${f}" f_upper)
+ string(TOLOWER "${f}" f_lower)
+ if(FortranCInterface_GLOBAL${form}_MACRO)
+ string(APPEND HEADER_CONTENT "#define ${SYMBOL_NAMESPACE}${f} ${MACRO_NAMESPACE}GLOBAL${form}(${f_lower}, ${f_upper})\n")
+ else()
+ message(AUTHOR_WARNING "No FortranCInterface mangling known for ${f}")
+ endif()
+ endif()
+ endforeach()
+
+ # Store the content.
+ configure_file(${FortranCInterface_SOURCE_DIR}/Macro.h.in ${FILE} @ONLY)
+endfunction()
+
+function(FortranCInterface_VERIFY)
+ # Check arguments.
+
+ set(lang C)
+ set(quiet 0)
+ set(verify_cxx 0)
+ foreach(arg ${ARGN})
+ if("${arg}" STREQUAL "QUIET")
+ set(quiet 1)
+ elseif("${arg}" STREQUAL "CXX")
+ set(lang CXX)
+ set(verify_cxx 1)
+ else()
+ message(FATAL_ERROR
+ "FortranCInterface_VERIFY - called with unknown argument:\n ${arg}")
+ endif()
+ endforeach()
+
+ if(NOT CMAKE_${lang}_COMPILER_LOADED)
+ message(FATAL_ERROR
+ "FortranCInterface_VERIFY(${lang}) requires ${lang} to be enabled.")
+ endif()
+
+ # Build the verification project if not yet built.
+ if(NOT DEFINED FortranCInterface_VERIFIED_${lang})
+ set(_desc "Verifying Fortran/${lang} Compiler Compatibility")
+ message(CHECK_START "${_desc}")
+
+ # Build a sample project which reports symbols.
+ set(CMAKE_TRY_COMPILE_CONFIGURATION Release)
+ try_compile(FortranCInterface_VERIFY_${lang}_COMPILED
+ ${FortranCInterface_BINARY_DIR}/Verify${lang}
+ ${FortranCInterface_SOURCE_DIR}/Verify
+ VerifyFortranC # project name
+ VerifyFortranC # target name
+ CMAKE_FLAGS -DVERIFY_CXX=${verify_cxx}
+ -DCMAKE_VERBOSE_MAKEFILE=ON
+ "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}"
+ "-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}"
+ "-DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}"
+ "-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}"
+ "-DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}"
+ "-DCMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}"
+ OUTPUT_VARIABLE _output)
+ file(WRITE "${FortranCInterface_BINARY_DIR}/Verify${lang}/output.txt" "${_output}")
+
+ # Report results.
+ if(FortranCInterface_VERIFY_${lang}_COMPILED)
+ message(CHECK_PASS "Success")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "${_desc} passed with the following output:\n${_output}\n\n")
+ set(FortranCInterface_VERIFIED_${lang} 1 CACHE INTERNAL "Fortran/${lang} compatibility")
+ else()
+ message(CHECK_FAIL "Failed")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "${_desc} failed with the following output:\n${_output}\n\n")
+ set(FortranCInterface_VERIFIED_${lang} 0 CACHE INTERNAL "Fortran/${lang} compatibility")
+ endif()
+ unset(FortranCInterface_VERIFY_${lang}_COMPILED CACHE)
+ endif()
+
+ # Error if compilers are incompatible.
+ if(NOT FortranCInterface_VERIFIED_${lang} AND NOT quiet)
+ file(READ "${FortranCInterface_BINARY_DIR}/Verify${lang}/output.txt" _output)
+ string(REPLACE "\n" "\n " _output "${_output}")
+ message(FATAL_ERROR
+ "The Fortran compiler:\n ${CMAKE_Fortran_COMPILER}\n"
+ "and the ${lang} compiler:\n ${CMAKE_${lang}_COMPILER}\n"
+ "failed to compile a simple test project using both languages. "
+ "The output was:\n ${_output}")
+ endif()
+endfunction()
+
+# Restore including context policies.
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/FortranCInterface/CMakeLists.txt b/share/cmake-3.17/Modules/FortranCInterface/CMakeLists.txt
index 381080b..381080b 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/CMakeLists.txt
+++ b/share/cmake-3.17/Modules/FortranCInterface/CMakeLists.txt
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Detect.cmake b/share/cmake-3.17/Modules/FortranCInterface/Detect.cmake
new file mode 100644
index 0000000..33de6c6
--- /dev/null
+++ b/share/cmake-3.17/Modules/FortranCInterface/Detect.cmake
@@ -0,0 +1,180 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+configure_file(${FortranCInterface_SOURCE_DIR}/Input.cmake.in
+ ${FortranCInterface_BINARY_DIR}/Input.cmake @ONLY)
+
+# Detect the Fortran/C interface on the first run or when the
+# configuration changes.
+if(${FortranCInterface_BINARY_DIR}/Input.cmake
+ IS_NEWER_THAN ${FortranCInterface_BINARY_DIR}/Output.cmake
+ OR ${FortranCInterface_SOURCE_DIR}/Output.cmake.in
+ IS_NEWER_THAN ${FortranCInterface_BINARY_DIR}/Output.cmake
+ OR ${FortranCInterface_SOURCE_DIR}/CMakeLists.txt
+ IS_NEWER_THAN ${FortranCInterface_BINARY_DIR}/Output.cmake
+ OR ${CMAKE_CURRENT_LIST_FILE}
+ IS_NEWER_THAN ${FortranCInterface_BINARY_DIR}/Output.cmake
+ )
+ message(CHECK_START "Detecting Fortran/C Interface")
+else()
+ return()
+endif()
+
+# Invalidate verification results.
+unset(FortranCInterface_VERIFIED_C CACHE)
+unset(FortranCInterface_VERIFIED_CXX CACHE)
+
+set(_result)
+
+# Build a sample project which reports symbols.
+set(CMAKE_TRY_COMPILE_CONFIGURATION Release)
+try_compile(FortranCInterface_COMPILED
+ ${FortranCInterface_BINARY_DIR}
+ ${FortranCInterface_SOURCE_DIR}
+ FortranCInterface # project name
+ FortranCInterface # target name
+ CMAKE_FLAGS
+ "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}"
+ "-DCMAKE_Fortran_FLAGS:STRING=${CMAKE_Fortran_FLAGS}"
+ "-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}"
+ "-DCMAKE_Fortran_FLAGS_RELEASE:STRING=${CMAKE_Fortran_FLAGS_RELEASE}"
+ OUTPUT_VARIABLE FortranCInterface_OUTPUT)
+set(FortranCInterface_COMPILED ${FortranCInterface_COMPILED})
+unset(FortranCInterface_COMPILED CACHE)
+
+# Locate the sample project executable.
+if(FortranCInterface_COMPILED)
+ find_program(FortranCInterface_EXE
+ NAMES FortranCInterface${CMAKE_EXECUTABLE_SUFFIX}
+ PATHS ${FortranCInterface_BINARY_DIR} ${FortranCInterface_BINARY_DIR}/Release
+ NO_DEFAULT_PATH
+ )
+ set(FortranCInterface_EXE ${FortranCInterface_EXE})
+ unset(FortranCInterface_EXE CACHE)
+else()
+ set(_result "Failed to compile")
+ set(FortranCInterface_EXE)
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Fortran/C interface test project failed with the following output:\n"
+ "${FortranCInterface_OUTPUT}\n")
+endif()
+
+# Load symbols from INFO:symbol[] strings in the executable.
+set(FortranCInterface_SYMBOLS)
+if(FortranCInterface_EXE)
+ file(STRINGS "${FortranCInterface_EXE}" _info_strings
+ LIMIT_COUNT 8 REGEX "INFO:[A-Za-z0-9_]+\\[[^]]*\\]")
+ foreach(info ${_info_strings})
+ if("${info}" MATCHES "INFO:symbol\\[([^]]*)\\]")
+ list(APPEND FortranCInterface_SYMBOLS ${CMAKE_MATCH_1})
+ endif()
+ endforeach()
+elseif(NOT _result)
+ set(_result "Failed to load sample executable")
+endif()
+
+set(_case_mysub "LOWER")
+set(_case_my_sub "LOWER")
+set(_case_MYSUB "UPPER")
+set(_case_MY_SUB "UPPER")
+set(_global_regex "^(_*)(mysub|MYSUB)([_$]*)$")
+set(_global__regex "^(_*)(my_sub|MY_SUB)([_$]*)$")
+set(_module_regex "^(_*)(mymodule|MYMODULE)([A-Za-z_$]*)(mysub|MYSUB)([_$]*)$")
+set(_module__regex "^(_*)(my_module|MY_MODULE)([A-Za-z_$]*)(my_sub|MY_SUB)([_$]*)$")
+
+# Parse the symbol names.
+foreach(symbol ${FortranCInterface_SYMBOLS})
+ foreach(form "" "_")
+ # Look for global symbols.
+ string(REGEX REPLACE "${_global_${form}regex}"
+ "\\1;\\2;\\3" pieces "${symbol}")
+ list(LENGTH pieces len)
+ if(len EQUAL 3)
+ set(FortranCInterface_GLOBAL_${form}SYMBOL "${symbol}")
+ list(GET pieces 0 FortranCInterface_GLOBAL_${form}PREFIX)
+ list(GET pieces 1 name)
+ list(GET pieces 2 FortranCInterface_GLOBAL_${form}SUFFIX)
+ set(FortranCInterface_GLOBAL_${form}CASE "${_case_${name}}")
+ endif()
+
+ # Look for module symbols.
+ string(REGEX REPLACE "${_module_${form}regex}"
+ "\\1;\\2;\\3;\\4;\\5" pieces "${symbol}")
+ list(LENGTH pieces len)
+ if(len EQUAL 5)
+ set(FortranCInterface_MODULE_${form}SYMBOL "${symbol}")
+ list(GET pieces 0 FortranCInterface_MODULE_${form}PREFIX)
+ list(GET pieces 1 module)
+ list(GET pieces 2 FortranCInterface_MODULE_${form}MIDDLE)
+ list(GET pieces 3 name)
+ list(GET pieces 4 FortranCInterface_MODULE_${form}SUFFIX)
+ set(FortranCInterface_MODULE_${form}CASE "${_case_${name}}")
+ endif()
+ endforeach()
+endforeach()
+
+# Construct mangling macro definitions.
+set(_name_LOWER "name")
+set(_name_UPPER "NAME")
+foreach(form "" "_")
+ if(FortranCInterface_GLOBAL_${form}SYMBOL)
+ if(FortranCInterface_GLOBAL_${form}PREFIX)
+ set(_prefix "${FortranCInterface_GLOBAL_${form}PREFIX}##")
+ else()
+ set(_prefix "")
+ endif()
+ if(FortranCInterface_GLOBAL_${form}SUFFIX)
+ set(_suffix "##${FortranCInterface_GLOBAL_${form}SUFFIX}")
+ else()
+ set(_suffix "")
+ endif()
+ set(_name "${_name_${FortranCInterface_GLOBAL_${form}CASE}}")
+ set(FortranCInterface_GLOBAL${form}_MACRO
+ "(name,NAME) ${_prefix}${_name}${_suffix}")
+ endif()
+ if(FortranCInterface_MODULE_${form}SYMBOL)
+ if(FortranCInterface_MODULE_${form}PREFIX)
+ set(_prefix "${FortranCInterface_MODULE_${form}PREFIX}##")
+ else()
+ set(_prefix "")
+ endif()
+ if(FortranCInterface_MODULE_${form}SUFFIX)
+ set(_suffix "##${FortranCInterface_MODULE_${form}SUFFIX}")
+ else()
+ set(_suffix "")
+ endif()
+ set(_name "${_name_${FortranCInterface_MODULE_${form}CASE}}")
+ set(_middle "##${FortranCInterface_MODULE_${form}MIDDLE}##")
+ set(FortranCInterface_MODULE${form}_MACRO
+ "(mod_name,name, mod_NAME,NAME) ${_prefix}mod_${_name}${_middle}${_name}${_suffix}")
+ endif()
+endforeach()
+
+# Summarize what is available.
+foreach(scope GLOBAL MODULE)
+ if(FortranCInterface_${scope}_SYMBOL AND
+ FortranCInterface_${scope}__SYMBOL)
+ set(FortranCInterface_${scope}_FOUND 1)
+ else()
+ set(FortranCInterface_${scope}_FOUND 0)
+ endif()
+endforeach()
+
+# Record the detection results.
+configure_file(${FortranCInterface_SOURCE_DIR}/Output.cmake.in
+ ${FortranCInterface_BINARY_DIR}/Output.cmake @ONLY)
+file(APPEND ${FortranCInterface_BINARY_DIR}/Output.cmake "\n")
+
+# Report the results.
+if(FortranCInterface_GLOBAL_FOUND)
+ if(FortranCInterface_MODULE_FOUND)
+ set(_result "Found GLOBAL and MODULE mangling")
+ else()
+ set(_result "Found GLOBAL but not MODULE mangling")
+ endif()
+ set(_result_type CHECK_PASS)
+elseif(NOT _result)
+ set(_result "Failed to recognize symbols")
+ set(_result_type CHECK_FAIL)
+endif()
+message(${_result_type} "${_result}")
diff --git a/share/cmake-3.16/Modules/FortranCInterface/Input.cmake.in b/share/cmake-3.17/Modules/FortranCInterface/Input.cmake.in
index f261e3b..f261e3b 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/Input.cmake.in
+++ b/share/cmake-3.17/Modules/FortranCInterface/Input.cmake.in
diff --git a/share/cmake-3.16/Modules/FortranCInterface/MYMODULE.c b/share/cmake-3.17/Modules/FortranCInterface/MYMODULE.c
index 19b51fb..19b51fb 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/MYMODULE.c
+++ b/share/cmake-3.17/Modules/FortranCInterface/MYMODULE.c
diff --git a/share/cmake-3.16/Modules/FortranCInterface/MY_MODULE.c b/share/cmake-3.17/Modules/FortranCInterface/MY_MODULE.c
index 87b3071..87b3071 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/MY_MODULE.c
+++ b/share/cmake-3.17/Modules/FortranCInterface/MY_MODULE.c
diff --git a/share/cmake-3.16/Modules/FortranCInterface/Macro.h.in b/share/cmake-3.17/Modules/FortranCInterface/Macro.h.in
index d015a62..d015a62 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/Macro.h.in
+++ b/share/cmake-3.17/Modules/FortranCInterface/Macro.h.in
diff --git a/share/cmake-3.16/Modules/FortranCInterface/Output.cmake.in b/share/cmake-3.17/Modules/FortranCInterface/Output.cmake.in
index bce410e..bce410e 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/Output.cmake.in
+++ b/share/cmake-3.17/Modules/FortranCInterface/Output.cmake.in
diff --git a/share/cmake-3.16/Modules/FortranCInterface/Verify/CMakeLists.txt b/share/cmake-3.17/Modules/FortranCInterface/Verify/CMakeLists.txt
index 98cdeb7..98cdeb7 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/Verify/CMakeLists.txt
+++ b/share/cmake-3.17/Modules/FortranCInterface/Verify/CMakeLists.txt
diff --git a/share/cmake-3.16/Modules/FortranCInterface/Verify/VerifyC.c b/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyC.c
index 7f847ef..7f847ef 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/Verify/VerifyC.c
+++ b/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyC.c
diff --git a/share/cmake-3.16/Modules/FortranCInterface/Verify/VerifyCXX.cxx b/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyCXX.cxx
index 689fac5..689fac5 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/Verify/VerifyCXX.cxx
+++ b/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyCXX.cxx
diff --git a/share/cmake-3.16/Modules/FortranCInterface/Verify/VerifyFortran.f b/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyFortran.f
index a17e48d..a17e48d 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/Verify/VerifyFortran.f
+++ b/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyFortran.f
diff --git a/share/cmake-3.16/Modules/FortranCInterface/Verify/main.c b/share/cmake-3.17/Modules/FortranCInterface/Verify/main.c
index 582ef1d..582ef1d 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/Verify/main.c
+++ b/share/cmake-3.17/Modules/FortranCInterface/Verify/main.c
diff --git a/share/cmake-3.16/Modules/FortranCInterface/call_mod.f90 b/share/cmake-3.17/Modules/FortranCInterface/call_mod.f90
index 9b6af64..9b6af64 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/call_mod.f90
+++ b/share/cmake-3.17/Modules/FortranCInterface/call_mod.f90
diff --git a/share/cmake-3.16/Modules/FortranCInterface/call_sub.f b/share/cmake-3.17/Modules/FortranCInterface/call_sub.f
index ce3d50b..ce3d50b 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/call_sub.f
+++ b/share/cmake-3.17/Modules/FortranCInterface/call_sub.f
diff --git a/share/cmake-3.16/Modules/FortranCInterface/main.F b/share/cmake-3.17/Modules/FortranCInterface/main.F
index 84991b0..84991b0 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/main.F
+++ b/share/cmake-3.17/Modules/FortranCInterface/main.F
diff --git a/share/cmake-3.16/Modules/FortranCInterface/my_module.f90 b/share/cmake-3.17/Modules/FortranCInterface/my_module.f90
index 82713b4..82713b4 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/my_module.f90
+++ b/share/cmake-3.17/Modules/FortranCInterface/my_module.f90
diff --git a/share/cmake-3.16/Modules/FortranCInterface/my_module_.c b/share/cmake-3.17/Modules/FortranCInterface/my_module_.c
index 6fa89d1..6fa89d1 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/my_module_.c
+++ b/share/cmake-3.17/Modules/FortranCInterface/my_module_.c
diff --git a/share/cmake-3.16/Modules/FortranCInterface/my_sub.f b/share/cmake-3.17/Modules/FortranCInterface/my_sub.f
index 247ba06..247ba06 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/my_sub.f
+++ b/share/cmake-3.17/Modules/FortranCInterface/my_sub.f
diff --git a/share/cmake-3.16/Modules/FortranCInterface/mymodule.f90 b/share/cmake-3.17/Modules/FortranCInterface/mymodule.f90
index ef6281a..ef6281a 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/mymodule.f90
+++ b/share/cmake-3.17/Modules/FortranCInterface/mymodule.f90
diff --git a/share/cmake-3.16/Modules/FortranCInterface/mymodule_.c b/share/cmake-3.17/Modules/FortranCInterface/mymodule_.c
index 444953b..444953b 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/mymodule_.c
+++ b/share/cmake-3.17/Modules/FortranCInterface/mymodule_.c
diff --git a/share/cmake-3.16/Modules/FortranCInterface/mysub.f b/share/cmake-3.17/Modules/FortranCInterface/mysub.f
index 1c27ff4..1c27ff4 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/mysub.f
+++ b/share/cmake-3.17/Modules/FortranCInterface/mysub.f
diff --git a/share/cmake-3.16/Modules/FortranCInterface/symbol.c.in b/share/cmake-3.17/Modules/FortranCInterface/symbol.c.in
index 369fa45..369fa45 100644
--- a/share/cmake-3.16/Modules/FortranCInterface/symbol.c.in
+++ b/share/cmake-3.17/Modules/FortranCInterface/symbol.c.in
diff --git a/share/cmake-3.17/Modules/GNUInstallDirs.cmake b/share/cmake-3.17/Modules/GNUInstallDirs.cmake
new file mode 100644
index 0000000..9ef22b9
--- /dev/null
+++ b/share/cmake-3.17/Modules/GNUInstallDirs.cmake
@@ -0,0 +1,383 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+GNUInstallDirs
+--------------
+
+Define GNU standard installation directories
+
+Provides install directory variables as defined by the
+`GNU Coding Standards`_.
+
+.. _`GNU Coding Standards`: https://www.gnu.org/prep/standards/html_node/Directory-Variables.html
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+Inclusion of this module defines the following variables:
+
+``CMAKE_INSTALL_<dir>``
+
+ Destination for files of a given type. This value may be passed to
+ the ``DESTINATION`` options of :command:`install` commands for the
+ corresponding file type.
+
+``CMAKE_INSTALL_FULL_<dir>``
+
+ The absolute path generated from the corresponding ``CMAKE_INSTALL_<dir>``
+ value. If the value is not already an absolute path, an absolute path
+ is constructed typically by prepending the value of the
+ :variable:`CMAKE_INSTALL_PREFIX` variable. However, there are some
+ `special cases`_ as documented below.
+
+where ``<dir>`` is one of:
+
+``BINDIR``
+ user executables (``bin``)
+``SBINDIR``
+ system admin executables (``sbin``)
+``LIBEXECDIR``
+ program executables (``libexec``)
+``SYSCONFDIR``
+ read-only single-machine data (``etc``)
+``SHAREDSTATEDIR``
+ modifiable architecture-independent data (``com``)
+``LOCALSTATEDIR``
+ modifiable single-machine data (``var``)
+``RUNSTATEDIR``
+ run-time variable data (``LOCALSTATEDIR/run``)
+``LIBDIR``
+ object code libraries (``lib`` or ``lib64``
+ or ``lib/<multiarch-tuple>`` on Debian)
+``INCLUDEDIR``
+ C header files (``include``)
+``OLDINCLUDEDIR``
+ C header files for non-gcc (``/usr/include``)
+``DATAROOTDIR``
+ read-only architecture-independent data root (``share``)
+``DATADIR``
+ read-only architecture-independent data (``DATAROOTDIR``)
+``INFODIR``
+ info documentation (``DATAROOTDIR/info``)
+``LOCALEDIR``
+ locale-dependent data (``DATAROOTDIR/locale``)
+``MANDIR``
+ man documentation (``DATAROOTDIR/man``)
+``DOCDIR``
+ documentation root (``DATAROOTDIR/doc/PROJECT_NAME``)
+
+If the includer does not define a value the above-shown default will be
+used and the value will appear in the cache for editing by the user.
+
+Special Cases
+^^^^^^^^^^^^^
+
+The following values of :variable:`CMAKE_INSTALL_PREFIX` are special:
+
+``/``
+
+ For ``<dir>`` other than the ``SYSCONFDIR``, ``LOCALSTATEDIR`` and
+ ``RUNSTATEDIR``, the value of ``CMAKE_INSTALL_<dir>`` is prefixed
+ with ``usr/`` if it is not user-specified as an absolute path.
+ For example, the ``INCLUDEDIR`` value ``include`` becomes ``usr/include``.
+ This is required by the `GNU Coding Standards`_, which state:
+
+ When building the complete GNU system, the prefix will be empty
+ and ``/usr`` will be a symbolic link to ``/``.
+
+``/usr``
+
+ For ``<dir>`` equal to ``SYSCONFDIR``, ``LOCALSTATEDIR`` or
+ ``RUNSTATEDIR``, the ``CMAKE_INSTALL_FULL_<dir>`` is computed by
+ prepending just ``/`` to the value of ``CMAKE_INSTALL_<dir>``
+ if it is not user-specified as an absolute path.
+ For example, the ``SYSCONFDIR`` value ``etc`` becomes ``/etc``.
+ This is required by the `GNU Coding Standards`_.
+
+``/opt/...``
+
+ For ``<dir>`` equal to ``SYSCONFDIR``, ``LOCALSTATEDIR`` or
+ ``RUNSTATEDIR``, the ``CMAKE_INSTALL_FULL_<dir>`` is computed by
+ *appending* the prefix to the value of ``CMAKE_INSTALL_<dir>``
+ if it is not user-specified as an absolute path.
+ For example, the ``SYSCONFDIR`` value ``etc`` becomes ``/etc/opt/...``.
+ This is defined by the `Filesystem Hierarchy Standard`_.
+
+.. _`Filesystem Hierarchy Standard`: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
+
+Macros
+^^^^^^
+
+.. command:: GNUInstallDirs_get_absolute_install_dir
+
+ ::
+
+ GNUInstallDirs_get_absolute_install_dir(absvar var)
+
+ Set the given variable ``absvar`` to the absolute path contained
+ within the variable ``var``. This is to allow the computation of an
+ absolute path, accounting for all the special cases documented
+ above. While this macro is used to compute the various
+ ``CMAKE_INSTALL_FULL_<dir>`` variables, it is exposed publicly to
+ allow users who create additional path variables to also compute
+ absolute paths where necessary, using the same logic.
+#]=======================================================================]
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
+
+# Convert a cache variable to PATH type
+
+macro(_GNUInstallDirs_cache_convert_to_path var description)
+ get_property(_GNUInstallDirs_cache_type CACHE ${var} PROPERTY TYPE)
+ if(_GNUInstallDirs_cache_type STREQUAL "UNINITIALIZED")
+ file(TO_CMAKE_PATH "${${var}}" _GNUInstallDirs_cmakepath)
+ set_property(CACHE ${var} PROPERTY TYPE PATH)
+ set_property(CACHE ${var} PROPERTY VALUE "${_GNUInstallDirs_cmakepath}")
+ set_property(CACHE ${var} PROPERTY HELPSTRING "${description}")
+ unset(_GNUInstallDirs_cmakepath)
+ endif()
+ unset(_GNUInstallDirs_cache_type)
+endmacro()
+
+# Create a cache variable with default for a path.
+macro(_GNUInstallDirs_cache_path var default description)
+ if(NOT DEFINED ${var})
+ set(${var} "${default}" CACHE PATH "${description}")
+ endif()
+ _GNUInstallDirs_cache_convert_to_path("${var}" "${description}")
+endmacro()
+
+# Create a cache variable with not default for a path, with a fallback
+# when unset; used for entries slaved to other entries such as
+# DATAROOTDIR.
+macro(_GNUInstallDirs_cache_path_fallback var default description)
+ if(NOT ${var})
+ set(${var} "" CACHE PATH "${description}")
+ set(${var} "${default}")
+ endif()
+ _GNUInstallDirs_cache_convert_to_path("${var}" "${description}")
+endmacro()
+
+# Installation directories
+#
+
+_GNUInstallDirs_cache_path(CMAKE_INSTALL_BINDIR "bin"
+ "User executables (bin)")
+_GNUInstallDirs_cache_path(CMAKE_INSTALL_SBINDIR "sbin"
+ "System admin executables (sbin)")
+_GNUInstallDirs_cache_path(CMAKE_INSTALL_LIBEXECDIR "libexec"
+ "Program executables (libexec)")
+_GNUInstallDirs_cache_path(CMAKE_INSTALL_SYSCONFDIR "etc"
+ "Read-only single-machine data (etc)")
+_GNUInstallDirs_cache_path(CMAKE_INSTALL_SHAREDSTATEDIR "com"
+ "Modifiable architecture-independent data (com)")
+_GNUInstallDirs_cache_path(CMAKE_INSTALL_LOCALSTATEDIR "var"
+ "Modifiable single-machine data (var)")
+
+# We check if the variable was manually set and not cached, in order to
+# allow projects to set the values as normal variables before including
+# GNUInstallDirs to avoid having the entries cached or user-editable. It
+# replaces the "if(NOT DEFINED CMAKE_INSTALL_XXX)" checks in all the
+# other cases.
+# If CMAKE_INSTALL_LIBDIR is defined, if _libdir_set is false, then the
+# variable is a normal one, otherwise it is a cache one.
+get_property(_libdir_set CACHE CMAKE_INSTALL_LIBDIR PROPERTY TYPE SET)
+if(NOT DEFINED CMAKE_INSTALL_LIBDIR OR (_libdir_set
+ AND DEFINED _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX
+ AND NOT "${_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX}" STREQUAL "${CMAKE_INSTALL_PREFIX}"))
+ # If CMAKE_INSTALL_LIBDIR is not defined, it is always executed.
+ # Otherwise:
+ # * if _libdir_set is false it is not executed (meaning that it is
+ # not a cache variable)
+ # * if _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX is not defined it is
+ # not executed
+ # * if _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX and
+ # CMAKE_INSTALL_PREFIX are the same string it is not executed.
+ # _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX is updated after the
+ # execution, of this part of code, therefore at the next inclusion
+ # of the file, CMAKE_INSTALL_LIBDIR is defined, and the 2 strings
+ # are equal, meaning that the if is not executed the code the
+ # second time.
+
+ set(_LIBDIR_DEFAULT "lib")
+ # Override this default 'lib' with 'lib64' iff:
+ # - we are on Linux system but NOT cross-compiling
+ # - we are NOT on debian
+ # - we are on a 64 bits system
+ # reason is: amd64 ABI: https://github.com/hjl-tools/x86-psABI/wiki/X86-psABI
+ # For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
+ # CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
+ # and CMAKE_INSTALL_PREFIX is "/usr"
+ # See http://wiki.debian.org/Multiarch
+ if(DEFINED _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX)
+ set(__LAST_LIBDIR_DEFAULT "lib")
+ # __LAST_LIBDIR_DEFAULT is the default value that we compute from
+ # _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX, not a cache entry for
+ # the value that was last used as the default.
+ # This value is used to figure out whether the user changed the
+ # CMAKE_INSTALL_LIBDIR value manually, or if the value was the
+ # default one. When CMAKE_INSTALL_PREFIX changes, the value is
+ # updated to the new default, unless the user explicitly changed it.
+ endif()
+ if (NOT DEFINED CMAKE_SYSTEM_NAME OR NOT DEFINED CMAKE_SIZEOF_VOID_P)
+ message(AUTHOR_WARNING
+ "Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. "
+ "Please enable at least one language before including GNUInstallDirs.")
+ endif()
+ if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$"
+ AND NOT CMAKE_CROSSCOMPILING
+ AND NOT EXISTS "/etc/arch-release")
+ if (EXISTS "/etc/debian_version") # is this a debian system ?
+ if(CMAKE_LIBRARY_ARCHITECTURE)
+ if("${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$")
+ set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
+ endif()
+ if(DEFINED _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX
+ AND "${_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$")
+ set(__LAST_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
+ endif()
+ endif()
+ else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
+ if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
+ set(_LIBDIR_DEFAULT "lib64")
+ if(DEFINED _GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX)
+ set(__LAST_LIBDIR_DEFAULT "lib64")
+ endif()
+ endif()
+ endif()
+ endif()
+ if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
+ set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "Object code libraries (${_LIBDIR_DEFAULT})")
+ elseif(DEFINED __LAST_LIBDIR_DEFAULT
+ AND "${__LAST_LIBDIR_DEFAULT}" STREQUAL "${CMAKE_INSTALL_LIBDIR}")
+ set_property(CACHE CMAKE_INSTALL_LIBDIR PROPERTY VALUE "${_LIBDIR_DEFAULT}")
+ endif()
+endif()
+_GNUInstallDirs_cache_convert_to_path(CMAKE_INSTALL_LIBDIR "Object code libraries (lib)")
+
+# Save for next run
+set(_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE INTERNAL "CMAKE_INSTALL_PREFIX during last run")
+unset(_libdir_set)
+unset(__LAST_LIBDIR_DEFAULT)
+
+_GNUInstallDirs_cache_path(CMAKE_INSTALL_INCLUDEDIR "include"
+ "C header files (include)")
+_GNUInstallDirs_cache_path(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include"
+ "C header files for non-gcc (/usr/include)")
+_GNUInstallDirs_cache_path(CMAKE_INSTALL_DATAROOTDIR "share"
+ "Read-only architecture-independent data root (share)")
+
+#-----------------------------------------------------------------------------
+# Values whose defaults are relative to DATAROOTDIR. Store empty values in
+# the cache and store the defaults in local variables if the cache values are
+# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.
+
+_GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}"
+ "Read-only architecture-independent data (DATAROOTDIR)")
+
+if(CMAKE_SYSTEM_NAME MATCHES "^(([^kF].*)?BSD|DragonFly)$")
+ _GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_INFODIR "info"
+ "Info documentation (info)")
+else()
+ _GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info"
+ "Info documentation (DATAROOTDIR/info)")
+endif()
+
+if(CMAKE_SYSTEM_NAME MATCHES "^(([^k].*)?BSD|DragonFly)$")
+ _GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_MANDIR "man"
+ "Man documentation (man)")
+else()
+ _GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man"
+ "Man documentation (DATAROOTDIR/man)")
+endif()
+
+_GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale"
+ "Locale-dependent data (DATAROOTDIR/locale)")
+_GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}"
+ "Documentation root (DATAROOTDIR/doc/PROJECT_NAME)")
+
+_GNUInstallDirs_cache_path_fallback(CMAKE_INSTALL_RUNSTATEDIR "${CMAKE_INSTALL_LOCALSTATEDIR}/run"
+ "Run-time variable data (LOCALSTATEDIR/run)")
+
+#-----------------------------------------------------------------------------
+
+mark_as_advanced(
+ CMAKE_INSTALL_BINDIR
+ CMAKE_INSTALL_SBINDIR
+ CMAKE_INSTALL_LIBEXECDIR
+ CMAKE_INSTALL_SYSCONFDIR
+ CMAKE_INSTALL_SHAREDSTATEDIR
+ CMAKE_INSTALL_LOCALSTATEDIR
+ CMAKE_INSTALL_RUNSTATEDIR
+ CMAKE_INSTALL_LIBDIR
+ CMAKE_INSTALL_INCLUDEDIR
+ CMAKE_INSTALL_OLDINCLUDEDIR
+ CMAKE_INSTALL_DATAROOTDIR
+ CMAKE_INSTALL_DATADIR
+ CMAKE_INSTALL_INFODIR
+ CMAKE_INSTALL_LOCALEDIR
+ CMAKE_INSTALL_MANDIR
+ CMAKE_INSTALL_DOCDIR
+ )
+
+macro(GNUInstallDirs_get_absolute_install_dir absvar var)
+ if(NOT IS_ABSOLUTE "${${var}}")
+ # Handle special cases:
+ # - CMAKE_INSTALL_PREFIX == /
+ # - CMAKE_INSTALL_PREFIX == /usr
+ # - CMAKE_INSTALL_PREFIX == /opt/...
+ if("${CMAKE_INSTALL_PREFIX}" STREQUAL "/")
+ if("${dir}" STREQUAL "SYSCONFDIR" OR "${dir}" STREQUAL "LOCALSTATEDIR" OR "${dir}" STREQUAL "RUNSTATEDIR")
+ set(${absvar} "/${${var}}")
+ else()
+ if (NOT "${${var}}" MATCHES "^usr/")
+ set(${var} "usr/${${var}}")
+ endif()
+ set(${absvar} "/${${var}}")
+ endif()
+ elseif("${CMAKE_INSTALL_PREFIX}" MATCHES "^/usr/?$")
+ if("${dir}" STREQUAL "SYSCONFDIR" OR "${dir}" STREQUAL "LOCALSTATEDIR" OR "${dir}" STREQUAL "RUNSTATEDIR")
+ set(${absvar} "/${${var}}")
+ else()
+ set(${absvar} "${CMAKE_INSTALL_PREFIX}/${${var}}")
+ endif()
+ elseif("${CMAKE_INSTALL_PREFIX}" MATCHES "^/opt/.*")
+ if("${dir}" STREQUAL "SYSCONFDIR" OR "${dir}" STREQUAL "LOCALSTATEDIR" OR "${dir}" STREQUAL "RUNSTATEDIR")
+ set(${absvar} "/${${var}}${CMAKE_INSTALL_PREFIX}")
+ else()
+ set(${absvar} "${CMAKE_INSTALL_PREFIX}/${${var}}")
+ endif()
+ else()
+ set(${absvar} "${CMAKE_INSTALL_PREFIX}/${${var}}")
+ endif()
+ else()
+ set(${absvar} "${${var}}")
+ endif()
+endmacro()
+
+# Result directories
+#
+foreach(dir
+ BINDIR
+ SBINDIR
+ LIBEXECDIR
+ SYSCONFDIR
+ SHAREDSTATEDIR
+ LOCALSTATEDIR
+ RUNSTATEDIR
+ LIBDIR
+ INCLUDEDIR
+ OLDINCLUDEDIR
+ DATAROOTDIR
+ DATADIR
+ INFODIR
+ LOCALEDIR
+ MANDIR
+ DOCDIR
+ )
+ GNUInstallDirs_get_absolute_install_dir(CMAKE_INSTALL_FULL_${dir} CMAKE_INSTALL_${dir})
+endforeach()
+
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/GenerateExportHeader.cmake b/share/cmake-3.17/Modules/GenerateExportHeader.cmake
index e4481f6..e4481f6 100644
--- a/share/cmake-3.16/Modules/GenerateExportHeader.cmake
+++ b/share/cmake-3.17/Modules/GenerateExportHeader.cmake
diff --git a/share/cmake-3.17/Modules/GetPrerequisites.cmake b/share/cmake-3.17/Modules/GetPrerequisites.cmake
new file mode 100644
index 0000000..5c8c196
--- /dev/null
+++ b/share/cmake-3.17/Modules/GetPrerequisites.cmake
@@ -0,0 +1,1047 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+GetPrerequisites
+----------------
+
+.. deprecated:: 3.16
+
+ Use :command:`file(GET_RUNTIME_DEPENDENCIES)` instead.
+
+Functions to analyze and list executable file prerequisites.
+
+This module provides functions to list the .dll, .dylib or .so files
+that an executable or shared library file depends on. (Its
+prerequisites.)
+
+It uses various tools to obtain the list of required shared library
+files:
+
+::
+
+ dumpbin (Windows)
+ objdump (MinGW on Windows)
+ ldd (Linux/Unix)
+ otool (Mac OSX)
+
+The following functions are provided by this module:
+
+::
+
+ get_prerequisites
+ list_prerequisites
+ list_prerequisites_by_glob
+ gp_append_unique
+ is_file_executable
+ gp_item_default_embedded_path
+ (projects can override with gp_item_default_embedded_path_override)
+ gp_resolve_item
+ (projects can override with gp_resolve_item_override)
+ gp_resolved_file_type
+ (projects can override with gp_resolved_file_type_override)
+ gp_file_type
+
+Requires CMake 2.6 or greater because it uses function, break, return
+and PARENT_SCOPE.
+
+::
+
+ GET_PREREQUISITES(<target> <prerequisites_var> <exclude_system> <recurse>
+ <exepath> <dirs> [<rpaths>])
+
+Get the list of shared library files required by <target>. The list
+in the variable named <prerequisites_var> should be empty on first
+entry to this function. On exit, <prerequisites_var> will contain the
+list of required shared library files.
+
+<target> is the full path to an executable file. <prerequisites_var>
+is the name of a CMake variable to contain the results.
+<exclude_system> must be 0 or 1 indicating whether to include or
+exclude "system" prerequisites. If <recurse> is set to 1 all
+prerequisites will be found recursively, if set to 0 only direct
+prerequisites are listed. <exepath> is the path to the top level
+executable used for @executable_path replacment on the Mac. <dirs> is
+a list of paths where libraries might be found: these paths are
+searched first when a target without any path info is given. Then
+standard system locations are also searched: PATH, Framework
+locations, /usr/lib...
+
+The variable GET_PREREQUISITES_VERBOSE can be set to true to enable verbose
+output.
+
+::
+
+ LIST_PREREQUISITES(<target> [<recurse> [<exclude_system> [<verbose>]]])
+
+Print a message listing the prerequisites of <target>.
+
+<target> is the name of a shared library or executable target or the
+full path to a shared library or executable file. If <recurse> is set
+to 1 all prerequisites will be found recursively, if set to 0 only
+direct prerequisites are listed. <exclude_system> must be 0 or 1
+indicating whether to include or exclude "system" prerequisites. With
+<verbose> set to 0 only the full path names of the prerequisites are
+printed, set to 1 extra informatin will be displayed.
+
+::
+
+ LIST_PREREQUISITES_BY_GLOB(<glob_arg> <glob_exp>)
+
+Print the prerequisites of shared library and executable files
+matching a globbing pattern. <glob_arg> is GLOB or GLOB_RECURSE and
+<glob_exp> is a globbing expression used with "file(GLOB" or
+"file(GLOB_RECURSE" to retrieve a list of matching files. If a
+matching file is executable, its prerequisites are listed.
+
+Any additional (optional) arguments provided are passed along as the
+optional arguments to the list_prerequisites calls.
+
+::
+
+ GP_APPEND_UNIQUE(<list_var> <value>)
+
+Append <value> to the list variable <list_var> only if the value is
+not already in the list.
+
+::
+
+ IS_FILE_EXECUTABLE(<file> <result_var>)
+
+Return 1 in <result_var> if <file> is a binary executable, 0
+otherwise.
+
+::
+
+ GP_ITEM_DEFAULT_EMBEDDED_PATH(<item> <default_embedded_path_var>)
+
+Return the path that others should refer to the item by when the item
+is embedded inside a bundle.
+
+Override on a per-project basis by providing a project-specific
+gp_item_default_embedded_path_override function.
+
+::
+
+ GP_RESOLVE_ITEM(<context> <item> <exepath> <dirs> <resolved_item_var>
+ [<rpaths>])
+
+Resolve an item into an existing full path file.
+
+Override on a per-project basis by providing a project-specific
+gp_resolve_item_override function.
+
+::
+
+ GP_RESOLVED_FILE_TYPE(<original_file> <file> <exepath> <dirs> <type_var>
+ [<rpaths>])
+
+Return the type of <file> with respect to <original_file>. String
+describing type of prerequisite is returned in variable named
+<type_var>.
+
+Use <exepath> and <dirs> if necessary to resolve non-absolute <file>
+values -- but only for non-embedded items.
+
+Possible types are:
+
+::
+
+ system
+ local
+ embedded
+ other
+
+Override on a per-project basis by providing a project-specific
+gp_resolved_file_type_override function.
+
+::
+
+ GP_FILE_TYPE(<original_file> <file> <type_var>)
+
+Return the type of <file> with respect to <original_file>. String
+describing type of prerequisite is returned in variable named
+<type_var>.
+
+Possible types are:
+
+::
+
+ system
+ local
+ embedded
+ other
+#]=======================================================================]
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+
+function(gp_append_unique list_var value)
+ if(NOT value IN_LIST ${list_var})
+ set(${list_var} ${${list_var}} "${value}" PARENT_SCOPE)
+ endif()
+endfunction()
+
+
+function(is_file_executable file result_var)
+ #
+ # A file is not executable until proven otherwise:
+ #
+ set(${result_var} 0 PARENT_SCOPE)
+
+ get_filename_component(file_full "${file}" ABSOLUTE)
+ string(TOLOWER "${file_full}" file_full_lower)
+
+ # If file name ends in .exe on Windows, *assume* executable:
+ #
+ if(WIN32 AND NOT UNIX)
+ if("${file_full_lower}" MATCHES "\\.exe$")
+ set(${result_var} 1 PARENT_SCOPE)
+ return()
+ endif()
+
+ # A clause could be added here that uses output or return value of dumpbin
+ # to determine ${result_var}. In 99%+? practical cases, the exe name
+ # match will be sufficient...
+ #
+ endif()
+
+ # Use the information returned from the Unix shell command "file" to
+ # determine if ${file_full} should be considered an executable file...
+ #
+ # If the file command's output contains "executable" and does *not* contain
+ # "text" then it is likely an executable suitable for prerequisite analysis
+ # via the get_prerequisites macro.
+ #
+ if(UNIX)
+ if(NOT file_cmd)
+ find_program(file_cmd "file")
+ mark_as_advanced(file_cmd)
+ endif()
+
+ if(file_cmd)
+ execute_process(COMMAND "${file_cmd}" "${file_full}"
+ RESULT_VARIABLE file_rv
+ OUTPUT_VARIABLE file_ov
+ ERROR_VARIABLE file_ev
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ if(NOT file_rv STREQUAL "0")
+ message(FATAL_ERROR "${file_cmd} failed: ${file_rv}\n${file_ev}")
+ endif()
+
+ # Replace the name of the file in the output with a placeholder token
+ # (the string " _file_full_ ") so that just in case the path name of
+ # the file contains the word "text" or "executable" we are not fooled
+ # into thinking "the wrong thing" because the file name matches the
+ # other 'file' command output we are looking for...
+ #
+ string(REPLACE "${file_full}" " _file_full_ " file_ov "${file_ov}")
+ string(TOLOWER "${file_ov}" file_ov)
+
+ #message(STATUS "file_ov='${file_ov}'")
+ if("${file_ov}" MATCHES "executable")
+ #message(STATUS "executable!")
+ if("${file_ov}" MATCHES "text")
+ #message(STATUS "but text, so *not* a binary executable!")
+ else()
+ set(${result_var} 1 PARENT_SCOPE)
+ return()
+ endif()
+ endif()
+
+ # Also detect position independent executables on Linux,
+ # where "file" gives "shared object ... (uses shared libraries)"
+ if("${file_ov}" MATCHES "shared object.*\(uses shared libs\)")
+ set(${result_var} 1 PARENT_SCOPE)
+ return()
+ endif()
+
+ # "file" version 5.22 does not print "(used shared libraries)"
+ # but uses "interpreter"
+ if("${file_ov}" MATCHES "shared object.*interpreter")
+ set(${result_var} 1 PARENT_SCOPE)
+ return()
+ endif()
+
+ else()
+ message(STATUS "warning: No 'file' command, skipping execute_process...")
+ endif()
+ endif()
+endfunction()
+
+
+function(gp_item_default_embedded_path item default_embedded_path_var)
+
+ # On Windows and Linux, "embed" prerequisites in the same directory
+ # as the executable by default:
+ #
+ set(path "@executable_path")
+
+ # On the Mac, relative to the executable depending on the type
+ # of the thing we are embedding:
+ #
+ if(APPLE)
+ #
+ # The assumption here is that all executables in the bundle will be
+ # in same-level-directories inside the bundle. The parent directory
+ # of an executable inside the bundle should be MacOS or a sibling of
+ # MacOS and all embedded paths returned from here will begin with
+ # "@executable_path/../" and will work from all executables in all
+ # such same-level-directories inside the bundle.
+ #
+
+ # By default, embed things right next to the main bundle executable:
+ #
+ set(path "@executable_path/../../Contents/MacOS")
+
+ # Embed frameworks and .dylibs in the embedded "Frameworks" directory
+ # (sibling of MacOS):
+ #
+ if(item MATCHES "[^/]+\\.framework/" OR item MATCHES "\\.dylib$")
+ set(path "@executable_path/../Frameworks")
+ endif()
+ endif()
+
+ # Provide a hook so that projects can override the default embedded location
+ # of any given library by whatever logic they choose:
+ #
+ if(COMMAND gp_item_default_embedded_path_override)
+ gp_item_default_embedded_path_override("${item}" path)
+ endif()
+
+ set(${default_embedded_path_var} "${path}" PARENT_SCOPE)
+endfunction()
+
+
+function(gp_resolve_item context item exepath dirs resolved_item_var)
+ set(resolved 0)
+ set(resolved_item "${item}")
+ if(ARGC GREATER 5)
+ set(rpaths "${ARGV5}")
+ else()
+ set(rpaths "")
+ endif()
+
+ # Is it already resolved?
+ #
+ if(IS_ABSOLUTE "${resolved_item}" AND EXISTS "${resolved_item}")
+ set(resolved 1)
+ endif()
+
+ if(NOT resolved)
+ if(item MATCHES "^@executable_path")
+ #
+ # @executable_path references are assumed relative to exepath
+ #
+ string(REPLACE "@executable_path" "${exepath}" ri "${item}")
+ get_filename_component(ri "${ri}" ABSOLUTE)
+
+ if(EXISTS "${ri}")
+ #message(STATUS "info: embedded item exists (${ri})")
+ set(resolved 1)
+ set(resolved_item "${ri}")
+ else()
+ message(STATUS "warning: embedded item does not exist '${ri}'")
+ endif()
+ endif()
+ endif()
+
+ if(NOT resolved)
+ if(item MATCHES "^@loader_path")
+ #
+ # @loader_path references are assumed relative to the
+ # PATH of the given "context" (presumably another library)
+ #
+ get_filename_component(contextpath "${context}" PATH)
+ string(REPLACE "@loader_path" "${contextpath}" ri "${item}")
+ get_filename_component(ri "${ri}" ABSOLUTE)
+
+ if(EXISTS "${ri}")
+ #message(STATUS "info: embedded item exists (${ri})")
+ set(resolved 1)
+ set(resolved_item "${ri}")
+ else()
+ message(STATUS "warning: embedded item does not exist '${ri}'")
+ endif()
+ endif()
+ endif()
+
+ if(NOT resolved)
+ if(item MATCHES "^@rpath")
+ #
+ # @rpath references are relative to the paths built into the binaries with -rpath
+ # We handle this case like we do for other Unixes
+ #
+ string(REPLACE "@rpath/" "" norpath_item "${item}")
+
+ set(ri "ri-NOTFOUND")
+ find_file(ri "${norpath_item}" ${exepath} ${dirs} ${rpaths} NO_DEFAULT_PATH)
+ if(ri)
+ #message(STATUS "info: 'find_file' in exepath/dirs/rpaths (${ri})")
+ set(resolved 1)
+ set(resolved_item "${ri}")
+ set(ri "ri-NOTFOUND")
+ endif()
+
+ endif()
+ endif()
+
+ if(NOT resolved)
+ set(ri "ri-NOTFOUND")
+ find_file(ri "${item}" ${exepath} ${dirs} NO_DEFAULT_PATH)
+ find_file(ri "${item}" ${exepath} ${dirs} /usr/lib)
+
+ get_filename_component(basename_item "${item}" NAME)
+ find_file(ri "${basename_item}" PATHS ${exepath} ${dirs} NO_DEFAULT_PATH)
+ find_file(ri "${basename_item}" PATHS /usr/lib)
+
+ if(ri)
+ #message(STATUS "info: 'find_file' in exepath/dirs (${ri})")
+ set(resolved 1)
+ set(resolved_item "${ri}")
+ set(ri "ri-NOTFOUND")
+ endif()
+ endif()
+
+ if(NOT resolved)
+ if(item MATCHES "[^/]+\\.framework/")
+ set(fw "fw-NOTFOUND")
+ find_file(fw "${item}"
+ "~/Library/Frameworks"
+ "/Library/Frameworks"
+ "/System/Library/Frameworks"
+ )
+ if(fw)
+ #message(STATUS "info: 'find_file' found framework (${fw})")
+ set(resolved 1)
+ set(resolved_item "${fw}")
+ set(fw "fw-NOTFOUND")
+ endif()
+ endif()
+ endif()
+
+ # Using find_program on Windows will find dll files that are in the PATH.
+ # (Converting simple file names into full path names if found.)
+ #
+ if(WIN32 AND NOT UNIX)
+ if(NOT resolved)
+ set(ri "ri-NOTFOUND")
+ find_program(ri "${item}" PATHS ${exepath} ${dirs} NO_DEFAULT_PATH)
+ find_program(ri "${item}" PATHS ${exepath} ${dirs})
+ if(ri)
+ #message(STATUS "info: 'find_program' in exepath/dirs (${ri})")
+ set(resolved 1)
+ set(resolved_item "${ri}")
+ set(ri "ri-NOTFOUND")
+ endif()
+ endif()
+ endif()
+
+ # Provide a hook so that projects can override item resolution
+ # by whatever logic they choose:
+ #
+ if(COMMAND gp_resolve_item_override)
+ gp_resolve_item_override("${context}" "${item}" "${exepath}" "${dirs}" resolved_item resolved)
+ endif()
+
+ if(NOT resolved)
+ message(STATUS "
+warning: cannot resolve item '${item}'
+
+ possible problems:
+ need more directories?
+ need to use InstallRequiredSystemLibraries?
+ run in install tree instead of build tree?
+")
+# message(STATUS "
+#******************************************************************************
+#warning: cannot resolve item '${item}'
+#
+# possible problems:
+# need more directories?
+# need to use InstallRequiredSystemLibraries?
+# run in install tree instead of build tree?
+#
+# context='${context}'
+# item='${item}'
+# exepath='${exepath}'
+# dirs='${dirs}'
+# resolved_item_var='${resolved_item_var}'
+#******************************************************************************
+#")
+ endif()
+
+ set(${resolved_item_var} "${resolved_item}" PARENT_SCOPE)
+endfunction()
+
+
+function(gp_resolved_file_type original_file file exepath dirs type_var)
+ if(ARGC GREATER 5)
+ set(rpaths "${ARGV5}")
+ else()
+ set(rpaths "")
+ endif()
+ #message(STATUS "**")
+
+ if(NOT IS_ABSOLUTE "${original_file}")
+ message(STATUS "warning: gp_resolved_file_type expects absolute full path for first arg original_file")
+ endif()
+ if(IS_ABSOLUTE "${original_file}")
+ get_filename_component(original_file "${original_file}" ABSOLUTE) # canonicalize path
+ endif()
+
+ set(is_embedded 0)
+ set(is_local 0)
+ set(is_system 0)
+
+ set(resolved_file "${file}")
+
+ if("${file}" MATCHES "^@(executable|loader)_path")
+ set(is_embedded 1)
+ endif()
+
+ if(NOT is_embedded)
+ if(NOT IS_ABSOLUTE "${file}")
+ gp_resolve_item("${original_file}" "${file}" "${exepath}" "${dirs}" resolved_file "${rpaths}")
+ endif()
+ if(IS_ABSOLUTE "${resolved_file}")
+ get_filename_component(resolved_file "${resolved_file}" ABSOLUTE) # canonicalize path
+ endif()
+
+ string(TOLOWER "${original_file}" original_lower)
+ string(TOLOWER "${resolved_file}" lower)
+
+ if(UNIX)
+ if(resolved_file MATCHES "^(/lib/|/lib32/|/libx32/|/lib64/|/usr/lib/|/usr/lib32/|/usr/libx32/|/usr/lib64/|/usr/X11R6/|/usr/bin/)")
+ set(is_system 1)
+ endif()
+ endif()
+
+ if(APPLE)
+ if(resolved_file MATCHES "^(/System/Library/|/usr/lib/)")
+ set(is_system 1)
+ endif()
+ endif()
+
+ if(WIN32)
+ string(TOLOWER "$ENV{SystemRoot}" sysroot)
+ file(TO_CMAKE_PATH "${sysroot}" sysroot)
+
+ string(TOLOWER "$ENV{windir}" windir)
+ file(TO_CMAKE_PATH "${windir}" windir)
+
+ if(lower MATCHES "^(${sysroot}/sys(tem|wow)|${windir}/sys(tem|wow)|(.*/)*(msvc|api-ms-win-|vcruntime)[^/]+dll)")
+ set(is_system 1)
+ endif()
+
+ if(UNIX)
+ # if cygwin, we can get the properly formed windows paths from cygpath
+ find_program(CYGPATH_EXECUTABLE cygpath)
+
+ if(CYGPATH_EXECUTABLE)
+ execute_process(COMMAND ${CYGPATH_EXECUTABLE} -W
+ RESULT_VARIABLE env_rv
+ OUTPUT_VARIABLE env_windir
+ ERROR_VARIABLE env_ev
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT env_rv STREQUAL "0")
+ message(FATAL_ERROR "${CYGPATH_EXECUTABLE} -W failed: ${env_rv}\n${env_ev}")
+ endif()
+ execute_process(COMMAND ${CYGPATH_EXECUTABLE} -S
+ RESULT_VARIABLE env_rv
+ OUTPUT_VARIABLE env_sysdir
+ ERROR_VARIABLE env_ev
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT env_rv STREQUAL "0")
+ message(FATAL_ERROR "${CYGPATH_EXECUTABLE} -S failed: ${env_rv}\n${env_ev}")
+ endif()
+ string(TOLOWER "${env_windir}" windir)
+ string(TOLOWER "${env_sysdir}" sysroot)
+
+ if(lower MATCHES "^(${sysroot}/sys(tem|wow)|${windir}/sys(tem|wow)|(.*/)*(msvc|api-ms-win-|vcruntime)[^/]+dll)")
+ set(is_system 1)
+ endif()
+ endif()
+ endif()
+ endif()
+
+ if(NOT is_system)
+ get_filename_component(original_path "${original_lower}" PATH)
+ get_filename_component(path "${lower}" PATH)
+ if(original_path STREQUAL path)
+ set(is_local 1)
+ else()
+ string(LENGTH "${original_path}/" original_length)
+ string(LENGTH "${lower}" path_length)
+ if(${path_length} GREATER ${original_length})
+ string(SUBSTRING "${lower}" 0 ${original_length} path)
+ if("${original_path}/" STREQUAL path)
+ set(is_embedded 1)
+ endif()
+ endif()
+ endif()
+ endif()
+ endif()
+
+ # Return type string based on computed booleans:
+ #
+ set(type "other")
+
+ if(is_system)
+ set(type "system")
+ elseif(is_embedded)
+ set(type "embedded")
+ elseif(is_local)
+ set(type "local")
+ endif()
+
+ #message(STATUS "gp_resolved_file_type: '${file}' '${resolved_file}'")
+ #message(STATUS " type: '${type}'")
+
+ if(NOT is_embedded)
+ if(NOT IS_ABSOLUTE "${resolved_file}")
+ if(lower MATCHES "^(msvc|api-ms-win-|vcruntime)[^/]+dll" AND is_system)
+ message(STATUS "info: non-absolute msvc file '${file}' returning type '${type}'")
+ else()
+ message(STATUS "warning: gp_resolved_file_type non-absolute file '${file}' returning type '${type}' -- possibly incorrect")
+ endif()
+ endif()
+ endif()
+
+ # Provide a hook so that projects can override the decision on whether a
+ # library belongs to the system or not by whatever logic they choose:
+ #
+ if(COMMAND gp_resolved_file_type_override)
+ gp_resolved_file_type_override("${resolved_file}" type)
+ endif()
+
+ set(${type_var} "${type}" PARENT_SCOPE)
+
+ #message(STATUS "**")
+endfunction()
+
+
+function(gp_file_type original_file file type_var)
+ if(NOT IS_ABSOLUTE "${original_file}")
+ message(STATUS "warning: gp_file_type expects absolute full path for first arg original_file")
+ endif()
+
+ get_filename_component(exepath "${original_file}" PATH)
+
+ set(type "")
+ gp_resolved_file_type("${original_file}" "${file}" "${exepath}" "" type)
+
+ set(${type_var} "${type}" PARENT_SCOPE)
+endfunction()
+
+
+function(get_prerequisites target prerequisites_var exclude_system recurse exepath dirs)
+ set(verbose 0)
+ set(eol_char "E")
+ if(ARGC GREATER 6)
+ set(rpaths "${ARGV6}")
+ else()
+ set(rpaths "")
+ endif()
+
+ if(GET_PREREQUISITES_VERBOSE)
+ set(verbose 1)
+ endif()
+
+ if(NOT IS_ABSOLUTE "${target}")
+ message("warning: target '${target}' is not absolute...")
+ endif()
+
+ if(NOT EXISTS "${target}")
+ message("warning: target '${target}' does not exist...")
+ return()
+ endif()
+
+ # Check for a script by extension (.bat,.sh,...) or if the file starts with "#!" (shebang)
+ file(READ ${target} file_contents LIMIT 5)
+ if(target MATCHES "\\.(bat|c?sh|bash|ksh|cmd)$" OR file_contents MATCHES "^#!")
+ message(STATUS "GetPrequisites(${target}) : ignoring script file")
+ # Clear var
+ set(${prerequisites_var} "" PARENT_SCOPE)
+ return()
+ endif()
+
+ set(gp_cmd_paths ${gp_cmd_paths}
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\14.0;InstallDir]/../../VC/bin"
+ "$ENV{VS140COMNTOOLS}/../../VC/bin"
+ "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\12.0;InstallDir]/../../VC/bin"
+ "$ENV{VS120COMNTOOLS}/../../VC/bin"
+ "C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0;InstallDir]/../../VC/bin"
+ "$ENV{VS110COMNTOOLS}/../../VC/bin"
+ "C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0;InstallDir]/../../VC/bin"
+ "$ENV{VS100COMNTOOLS}/../../VC/bin"
+ "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0;InstallDir]/../../VC/bin"
+ "$ENV{VS90COMNTOOLS}/../../VC/bin"
+ "C:/Program Files/Microsoft Visual Studio 9.0/VC/bin"
+ "C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]/../../VC/bin"
+ "$ENV{VS80COMNTOOLS}/../../VC/bin"
+ "C:/Program Files/Microsoft Visual Studio 8/VC/BIN"
+ "C:/Program Files (x86)/Microsoft Visual Studio 8/VC/BIN"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.1;InstallDir]/../../VC7/bin"
+ "$ENV{VS71COMNTOOLS}/../../VC7/bin"
+ "C:/Program Files/Microsoft Visual Studio .NET 2003/VC7/BIN"
+ "C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/VC7/BIN"
+ )
+
+ # <setup-gp_tool-vars>
+ #
+ # Try to choose the right tool by default. Caller can set gp_tool prior to
+ # calling this function to force using a different tool.
+ #
+ if(NOT gp_tool)
+ set(gp_tool "ldd")
+
+ if(APPLE)
+ set(gp_tool "otool")
+ endif()
+
+ if(WIN32 AND NOT UNIX) # This is how to check for cygwin, har!
+ find_program(gp_dumpbin "dumpbin" PATHS ${gp_cmd_paths})
+ if(gp_dumpbin)
+ set(gp_tool "dumpbin")
+ elseif(CMAKE_OBJDUMP) # Try harder. Maybe we're on MinGW
+ set(gp_tool "${CMAKE_OBJDUMP}")
+ else()
+ set(gp_tool "objdump")
+ endif()
+ endif()
+ endif()
+
+ find_program(gp_cmd ${gp_tool} PATHS ${gp_cmd_paths})
+
+ if(NOT gp_cmd)
+ message(STATUS "warning: could not find '${gp_tool}' - cannot analyze prerequisites...")
+ return()
+ endif()
+
+ set(gp_cmd_maybe_filter) # optional command to pre-filter gp_tool results
+
+ if(gp_tool MATCHES "ldd$")
+ set(gp_cmd_args "")
+ set(gp_regex "^[\t ]*[^\t ]+ =>[\t ]+([^\t\(]+)( \(.+\))?${eol_char}$")
+ set(gp_regex_error "not found${eol_char}$")
+ set(gp_regex_fallback "^[\t ]*([^\t ]+) => ([^\t ]+).*${eol_char}$")
+ set(gp_regex_cmp_count 1)
+ elseif(gp_tool MATCHES "otool$")
+ set(gp_cmd_args "-L")
+ set(gp_regex "^\t([^\t]+) \\(compatibility version ([0-9]+.[0-9]+.[0-9]+), current version ([0-9]+.[0-9]+.[0-9]+)\\)${eol_char}$")
+ set(gp_regex_error "")
+ set(gp_regex_fallback "")
+ set(gp_regex_cmp_count 3)
+ elseif(gp_tool MATCHES "dumpbin$")
+ set(gp_cmd_args "/dependents")
+ set(gp_regex "^ ([^ ].*[Dd][Ll][Ll])${eol_char}$")
+ set(gp_regex_error "")
+ set(gp_regex_fallback "")
+ set(gp_regex_cmp_count 1)
+ elseif(gp_tool MATCHES "objdump$")
+ set(gp_cmd_args "-p")
+ set(gp_regex "^\t*DLL Name: (.*\\.[Dd][Ll][Ll])${eol_char}$")
+ set(gp_regex_error "")
+ set(gp_regex_fallback "")
+ set(gp_regex_cmp_count 1)
+ # objdump generates copious output so we create a grep filter to pre-filter results
+ if(WIN32)
+ find_program(gp_grep_cmd findstr)
+ else()
+ find_program(gp_grep_cmd grep)
+ endif()
+ if(gp_grep_cmd)
+ set(gp_cmd_maybe_filter COMMAND ${gp_grep_cmd} "-a" "^[[:blank:]]*DLL Name: ")
+ endif()
+ else()
+ message(STATUS "warning: gp_tool='${gp_tool}' is an unknown tool...")
+ message(STATUS "CMake function get_prerequisites needs more code to handle '${gp_tool}'")
+ message(STATUS "Valid gp_tool values are dumpbin, ldd, objdump and otool.")
+ return()
+ endif()
+
+
+ if(gp_tool MATCHES "dumpbin$")
+ # When running dumpbin, it also needs the "Common7/IDE" directory in the
+ # PATH. It will already be in the PATH if being run from a Visual Studio
+ # command prompt. Add it to the PATH here in case we are running from a
+ # different command prompt.
+ #
+ get_filename_component(gp_cmd_dir "${gp_cmd}" PATH)
+ get_filename_component(gp_cmd_dlls_dir "${gp_cmd_dir}/../../Common7/IDE" ABSOLUTE)
+ # Use cmake paths as a user may have a PATH element ending with a backslash.
+ # This will escape the list delimiter and create havoc!
+ if(EXISTS "${gp_cmd_dlls_dir}")
+ # only add to the path if it is not already in the path
+ set(gp_found_cmd_dlls_dir 0)
+ file(TO_CMAKE_PATH "$ENV{PATH}" env_path)
+ foreach(gp_env_path_element ${env_path})
+ if(gp_env_path_element STREQUAL gp_cmd_dlls_dir)
+ set(gp_found_cmd_dlls_dir 1)
+ endif()
+ endforeach()
+
+ if(NOT gp_found_cmd_dlls_dir)
+ file(TO_NATIVE_PATH "${gp_cmd_dlls_dir}" gp_cmd_dlls_dir)
+ set(ENV{PATH} "$ENV{PATH};${gp_cmd_dlls_dir}")
+ endif()
+ endif()
+ endif()
+ #
+ # </setup-gp_tool-vars>
+
+ if(gp_tool MATCHES "ldd$")
+ set(old_ld_env "$ENV{LD_LIBRARY_PATH}")
+ set(new_ld_env "${exepath}")
+ foreach(dir ${dirs})
+ string(APPEND new_ld_env ":${dir}")
+ endforeach()
+ set(ENV{LD_LIBRARY_PATH} "${new_ld_env}:$ENV{LD_LIBRARY_PATH}")
+ endif()
+
+
+ # Track new prerequisites at each new level of recursion. Start with an
+ # empty list at each level:
+ #
+ set(unseen_prereqs)
+
+ # Run gp_cmd on the target:
+ #
+ execute_process(
+ COMMAND ${gp_cmd} ${gp_cmd_args} ${target}
+ ${gp_cmd_maybe_filter}
+ RESULT_VARIABLE gp_rv
+ OUTPUT_VARIABLE gp_cmd_ov
+ ERROR_VARIABLE gp_ev
+ )
+
+ if(gp_tool MATCHES "dumpbin$")
+ # Exclude delay load dependencies under windows (they are listed in dumpbin output after the message below)
+ string(FIND "${gp_cmd_ov}" "Image has the following delay load dependencies" gp_delayload_pos)
+ if (${gp_delayload_pos} GREATER -1)
+ string(SUBSTRING "${gp_cmd_ov}" 0 ${gp_delayload_pos} gp_cmd_ov_no_delayload_deps)
+ string(SUBSTRING "${gp_cmd_ov}" ${gp_delayload_pos} -1 gp_cmd_ov_delayload_deps)
+ if (verbose)
+ message(STATUS "GetPrequisites(${target}) : ignoring the following delay load dependencies :\n ${gp_cmd_ov_delayload_deps}")
+ endif()
+ set(gp_cmd_ov ${gp_cmd_ov_no_delayload_deps})
+ endif()
+ endif()
+
+ if(NOT gp_rv STREQUAL "0")
+ if(gp_tool MATCHES "dumpbin$")
+ # dumpbin error messages seem to go to stdout
+ message(FATAL_ERROR "${gp_cmd} failed: ${gp_rv}\n${gp_ev}\n${gp_cmd_ov}")
+ else()
+ message(FATAL_ERROR "${gp_cmd} failed: ${gp_rv}\n${gp_ev}")
+ endif()
+ endif()
+
+ if(gp_tool MATCHES "ldd$")
+ set(ENV{LD_LIBRARY_PATH} "${old_ld_env}")
+ endif()
+
+ if(verbose)
+ message(STATUS "<RawOutput cmd='${gp_cmd} ${gp_cmd_args} ${target}'>")
+ message(STATUS "gp_cmd_ov='${gp_cmd_ov}'")
+ message(STATUS "</RawOutput>")
+ endif()
+
+ get_filename_component(target_dir "${target}" PATH)
+
+ # Convert to a list of lines:
+ #
+ string(REPLACE ";" "\\;" candidates "${gp_cmd_ov}")
+ string(REPLACE "\n" "${eol_char};" candidates "${candidates}")
+
+ # check for install id and remove it from list, since otool -L can include a
+ # reference to itself
+ set(gp_install_id)
+ if(gp_tool MATCHES "otool$")
+ execute_process(
+ COMMAND ${gp_cmd} -D ${target}
+ RESULT_VARIABLE otool_rv
+ OUTPUT_VARIABLE gp_install_id_ov
+ ERROR_VARIABLE otool_ev
+ )
+ if(NOT otool_rv STREQUAL "0")
+ message(FATAL_ERROR "otool -D failed: ${otool_rv}\n${otool_ev}")
+ endif()
+ # second line is install name
+ string(REGEX REPLACE ".*:\n" "" gp_install_id "${gp_install_id_ov}")
+ if(gp_install_id)
+ # trim
+ string(REGEX MATCH "[^\n ].*[^\n ]" gp_install_id "${gp_install_id}")
+ #message("INSTALL ID is \"${gp_install_id}\"")
+ endif()
+ endif()
+
+ # Analyze each line for file names that match the regular expression:
+ #
+ foreach(candidate ${candidates})
+ if("${candidate}" MATCHES "${gp_regex}")
+
+ # Extract information from each candidate:
+ if(gp_regex_error AND "${candidate}" MATCHES "${gp_regex_error}")
+ string(REGEX REPLACE "${gp_regex_fallback}" "\\1" raw_item "${candidate}")
+ else()
+ string(REGEX REPLACE "${gp_regex}" "\\1" raw_item "${candidate}")
+ endif()
+
+ if(gp_regex_cmp_count GREATER 1)
+ string(REGEX REPLACE "${gp_regex}" "\\2" raw_compat_version "${candidate}")
+ string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\1" compat_major_version "${raw_compat_version}")
+ string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\2" compat_minor_version "${raw_compat_version}")
+ string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\3" compat_patch_version "${raw_compat_version}")
+ endif()
+
+ if(gp_regex_cmp_count GREATER 2)
+ string(REGEX REPLACE "${gp_regex}" "\\3" raw_current_version "${candidate}")
+ string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\1" current_major_version "${raw_current_version}")
+ string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\2" current_minor_version "${raw_current_version}")
+ string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\3" current_patch_version "${raw_current_version}")
+ endif()
+
+ # Use the raw_item as the list entries returned by this function. Use the
+ # gp_resolve_item function to resolve it to an actual full path file if
+ # necessary.
+ #
+ set(item "${raw_item}")
+
+ # Add each item unless it is excluded:
+ #
+ set(add_item 1)
+
+ if(item STREQUAL gp_install_id)
+ set(add_item 0)
+ endif()
+
+ if(add_item AND ${exclude_system})
+ set(type "")
+ gp_resolved_file_type("${target}" "${item}" "${exepath}" "${dirs}" type "${rpaths}")
+
+ if(type STREQUAL "system")
+ set(add_item 0)
+ endif()
+ endif()
+
+ if(add_item)
+ list(LENGTH ${prerequisites_var} list_length_before_append)
+ gp_append_unique(${prerequisites_var} "${item}")
+ list(LENGTH ${prerequisites_var} list_length_after_append)
+
+ if(${recurse})
+ # If item was really added, this is the first time we have seen it.
+ # Add it to unseen_prereqs so that we can recursively add *its*
+ # prerequisites...
+ #
+ # But first: resolve its name to an absolute full path name such
+ # that the analysis tools can simply accept it as input.
+ #
+ if(NOT list_length_before_append EQUAL list_length_after_append)
+ gp_resolve_item("${target}" "${item}" "${exepath}" "${dirs}" resolved_item "${rpaths}")
+ if(EXISTS "${resolved_item}")
+ # Recurse only if we could resolve the item.
+ # Otherwise the prerequisites_var list will be cleared
+ set(unseen_prereqs ${unseen_prereqs} "${resolved_item}")
+ endif()
+ endif()
+ endif()
+ endif()
+ else()
+ if(verbose)
+ message(STATUS "ignoring non-matching line: '${candidate}'")
+ endif()
+ endif()
+ endforeach()
+
+ list(LENGTH ${prerequisites_var} prerequisites_var_length)
+ if(prerequisites_var_length GREATER 0)
+ list(SORT ${prerequisites_var})
+ endif()
+ if(${recurse})
+ set(more_inputs ${unseen_prereqs})
+ foreach(input ${more_inputs})
+ get_prerequisites("${input}" ${prerequisites_var} ${exclude_system} ${recurse} "${exepath}" "${dirs}" "${rpaths}")
+ endforeach()
+ endif()
+
+ set(${prerequisites_var} ${${prerequisites_var}} PARENT_SCOPE)
+endfunction()
+
+
+function(list_prerequisites target)
+ if(ARGC GREATER 1 AND NOT "${ARGV1}" STREQUAL "")
+ set(all "${ARGV1}")
+ else()
+ set(all 1)
+ endif()
+
+ if(ARGC GREATER 2 AND NOT "${ARGV2}" STREQUAL "")
+ set(exclude_system "${ARGV2}")
+ else()
+ set(exclude_system 0)
+ endif()
+
+ if(ARGC GREATER 3 AND NOT "${ARGV3}" STREQUAL "")
+ set(verbose "${ARGV3}")
+ else()
+ set(verbose 0)
+ endif()
+
+ set(count 0)
+ set(count_str "")
+ set(print_count "${verbose}")
+ set(print_prerequisite_type "${verbose}")
+ set(print_target "${verbose}")
+ set(type_str "")
+
+ get_filename_component(exepath "${target}" PATH)
+
+ set(prereqs "")
+ get_prerequisites("${target}" prereqs ${exclude_system} ${all} "${exepath}" "")
+
+ if(print_target)
+ message(STATUS "File '${target}' depends on:")
+ endif()
+
+ foreach(d ${prereqs})
+ math(EXPR count "${count} + 1")
+
+ if(print_count)
+ set(count_str "${count}. ")
+ endif()
+
+ if(print_prerequisite_type)
+ gp_file_type("${target}" "${d}" type)
+ set(type_str " (${type})")
+ endif()
+
+ message(STATUS "${count_str}${d}${type_str}")
+ endforeach()
+endfunction()
+
+
+function(list_prerequisites_by_glob glob_arg glob_exp)
+ message(STATUS "=============================================================================")
+ message(STATUS "List prerequisites of executables matching ${glob_arg} '${glob_exp}'")
+ message(STATUS "")
+ file(${glob_arg} file_list ${glob_exp})
+ foreach(f ${file_list})
+ is_file_executable("${f}" is_f_executable)
+ if(is_f_executable)
+ message(STATUS "=============================================================================")
+ list_prerequisites("${f}" ${ARGN})
+ message(STATUS "")
+ endif()
+ endforeach()
+endfunction()
+
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/GoogleTest.cmake b/share/cmake-3.17/Modules/GoogleTest.cmake
index a5bb863..a5bb863 100644
--- a/share/cmake-3.16/Modules/GoogleTest.cmake
+++ b/share/cmake-3.17/Modules/GoogleTest.cmake
diff --git a/share/cmake-3.16/Modules/GoogleTestAddTests.cmake b/share/cmake-3.17/Modules/GoogleTestAddTests.cmake
index 4abbbec..4abbbec 100644
--- a/share/cmake-3.16/Modules/GoogleTestAddTests.cmake
+++ b/share/cmake-3.17/Modules/GoogleTestAddTests.cmake
diff --git a/share/cmake-3.16/Modules/ITKCompatibility.cmake b/share/cmake-3.17/Modules/ITKCompatibility.cmake
index 7d211b6..7d211b6 100644
--- a/share/cmake-3.16/Modules/ITKCompatibility.cmake
+++ b/share/cmake-3.17/Modules/ITKCompatibility.cmake
diff --git a/share/cmake-3.16/Modules/InstallRequiredSystemLibraries.cmake b/share/cmake-3.17/Modules/InstallRequiredSystemLibraries.cmake
index 04687b9..04687b9 100644
--- a/share/cmake-3.16/Modules/InstallRequiredSystemLibraries.cmake
+++ b/share/cmake-3.17/Modules/InstallRequiredSystemLibraries.cmake
diff --git a/share/cmake-3.16/Modules/IntelVSImplicitPath/CMakeLists.txt b/share/cmake-3.17/Modules/IntelVSImplicitPath/CMakeLists.txt
index d115704..d115704 100644
--- a/share/cmake-3.16/Modules/IntelVSImplicitPath/CMakeLists.txt
+++ b/share/cmake-3.17/Modules/IntelVSImplicitPath/CMakeLists.txt
diff --git a/share/cmake-3.16/Modules/IntelVSImplicitPath/detect.cmake b/share/cmake-3.17/Modules/IntelVSImplicitPath/detect.cmake
index 20753be..20753be 100644
--- a/share/cmake-3.16/Modules/IntelVSImplicitPath/detect.cmake
+++ b/share/cmake-3.17/Modules/IntelVSImplicitPath/detect.cmake
diff --git a/share/cmake-3.16/Modules/IntelVSImplicitPath/hello.f b/share/cmake-3.17/Modules/IntelVSImplicitPath/hello.f
index e69de29..e69de29 100644
--- a/share/cmake-3.16/Modules/IntelVSImplicitPath/hello.f
+++ b/share/cmake-3.17/Modules/IntelVSImplicitPath/hello.f
diff --git a/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake b/share/cmake-3.17/Modules/Internal/CMakeCheckCompilerFlag.cmake
index 9c8dfb6..9c8dfb6 100644
--- a/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake
+++ b/share/cmake-3.17/Modules/Internal/CMakeCheckCompilerFlag.cmake
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPack.DS_Store.in b/share/cmake-3.17/Modules/Internal/CPack/CPack.DS_Store.in
index 5be0eeb..5be0eeb 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPack.DS_Store.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPack.DS_Store.in
Binary files differ
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPack.Description.plist.in b/share/cmake-3.17/Modules/Internal/CPack/CPack.Description.plist.in
index 3d11476..3d11476 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPack.Description.plist.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPack.Description.plist.in
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPack.Info.plist.in b/share/cmake-3.17/Modules/Internal/CPack/CPack.Info.plist.in
index 6e32500..6e32500 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPack.Info.plist.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPack.Info.plist.in
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPack.NuGet.nuspec.in b/share/cmake-3.17/Modules/Internal/CPack/CPack.NuGet.nuspec.in
index b7beb5d..b7beb5d 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPack.NuGet.nuspec.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPack.NuGet.nuspec.in
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPack.OSXScriptLauncher.in b/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.in
index c715860..c715860 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPack.OSXScriptLauncher.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.in
Binary files differ
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in b/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in
index 5f5f17a..5f5f17a 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in
Binary files differ
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in b/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in
index 23a1483..23a1483 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in b/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in
index de30ea1..de30ea1 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in
Binary files differ
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPack.RuntimeScript.in b/share/cmake-3.17/Modules/Internal/CPack/CPack.RuntimeScript.in
index f27444f..f27444f 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPack.RuntimeScript.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPack.RuntimeScript.in
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPack.STGZ_Header.sh.in b/share/cmake-3.17/Modules/Internal/CPack/CPack.STGZ_Header.sh.in
index a857aa5..a857aa5 100755..100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPack.STGZ_Header.sh.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPack.STGZ_Header.sh.in
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPack.VolumeIcon.icns.in b/share/cmake-3.17/Modules/Internal/CPack/CPack.VolumeIcon.icns.in
index c59217e..c59217e 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPack.VolumeIcon.icns.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPack.VolumeIcon.icns.in
Binary files differ
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPack.background.png.in b/share/cmake-3.17/Modules/Internal/CPack/CPack.background.png.in
index a32ab37..a32ab37 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPack.background.png.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPack.background.png.in
Binary files differ
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPack.distribution.dist.in b/share/cmake-3.17/Modules/Internal/CPack/CPack.distribution.dist.in
index f20e66c..f20e66c 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPack.distribution.dist.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPack.distribution.dist.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackDeb.cmake b/share/cmake-3.17/Modules/Internal/CPack/CPackDeb.cmake
new file mode 100644
index 0000000..14bb104
--- /dev/null
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPackDeb.cmake
@@ -0,0 +1,766 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# CPack script for creating Debian package
+# Author: Mathieu Malaterre
+#
+# http://wiki.debian.org/HowToPackageForDebian
+
+if(CMAKE_BINARY_DIR)
+ message(FATAL_ERROR "CPackDeb.cmake may only be used by CPack internally.")
+endif()
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+
+function(cpack_deb_variable_fallback OUTPUT_VAR_NAME)
+ set(FALLBACK_VAR_NAMES ${ARGN})
+
+ foreach(variable_name IN LISTS FALLBACK_VAR_NAMES)
+ if(${variable_name})
+ set(${OUTPUT_VAR_NAME} "${${variable_name}}" PARENT_SCOPE)
+ break()
+ endif()
+ endforeach()
+endfunction()
+
+function(get_component_package_name var component)
+ string(TOUPPER "${component}" component_upcase)
+ if(CPACK_DEBIAN_${component_upcase}_PACKAGE_NAME)
+ string(TOLOWER "${CPACK_DEBIAN_${component_upcase}_PACKAGE_NAME}" package_name)
+ else()
+ string(TOLOWER "${CPACK_DEBIAN_PACKAGE_NAME}-${component}" package_name)
+ endif()
+
+ set("${var}" "${package_name}" PARENT_SCOPE)
+endfunction()
+
+#extract library name and version for given shared object
+function(extract_so_info shared_object libname version)
+ if(READELF_EXECUTABLE)
+ execute_process(COMMAND "${READELF_EXECUTABLE}" -d "${shared_object}"
+ WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+ RESULT_VARIABLE result
+ OUTPUT_VARIABLE output
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(result EQUAL 0)
+ string(REGEX MATCH "\\(?SONAME\\)?[^\n]*\\[([^\n]+)\\.so\\.([^\n]*)\\]" soname "${output}")
+ set(${libname} "${CMAKE_MATCH_1}" PARENT_SCOPE)
+ set(${version} "${CMAKE_MATCH_2}" PARENT_SCOPE)
+ else()
+ message(WARNING "Error running readelf for \"${shared_object}\"")
+ endif()
+ else()
+ message(FATAL_ERROR "Readelf utility is not available.")
+ endif()
+endfunction()
+
+function(cpack_deb_check_description SUMMARY LINES RESULT_VARIABLE)
+ set(_result TRUE)
+
+ # Get the summary line
+ if(NOT SUMMARY MATCHES "^[^\\s].*$")
+ set(_result FALSE)
+ set(${RESULT_VARIABLE} ${_result} PARENT_SCOPE)
+ return()
+ endif()
+
+ foreach(_line IN LISTS LINES)
+ if(NOT _line MATCHES "^ +[^ ]+.*$")
+ set(_result FALSE)
+ break()
+ endif()
+ endforeach()
+
+ set(${RESULT_VARIABLE} ${_result} PARENT_SCOPE)
+endfunction()
+
+function(cpack_deb_format_package_description TEXT OUTPUT_VAR)
+ # Turn the possible multi-line string into a list
+ string(UUID uuid NAMESPACE 00000000-0000-0000-0000-000000000000 TYPE SHA1)
+ string(REPLACE ";" "${uuid}" _text "${TEXT}")
+ string(REPLACE "\n" ";" _lines "${_text}")
+ list(POP_FRONT _lines _summary)
+
+ # Check if reformatting required
+ cpack_deb_check_description("${_summary}" "${_lines}" _result)
+ if(_result)
+ # Ok, no formatting required
+ set(${OUTPUT_VAR} "${TEXT}" PARENT_SCOPE)
+ return()
+ endif()
+
+ # Format the summary line
+ string(STRIP "${_summary}" _summary)
+
+ # Make sure the rest formatted properly
+ set(_result)
+ foreach(_line IN LISTS _lines)
+ string(STRIP "${_line}" _line_strip)
+ if(NOT _line_strip)
+ # Replace empty lines w/ a _single full stop character_
+ set(_line " .")
+ else()
+ # Prepend the normal lines w/ a single space.
+ # If the line already starts w/ at least one space,
+ # it'll become _verbatim_ (assuming it supposed to be
+ # verbatim in the original text).
+ string(PREPEND _line " ")
+ endif()
+ list(APPEND _result "${_line}")
+ endforeach()
+
+ list(PREPEND _result "${_summary}")
+ list(JOIN _result "\n" _result)
+ string(REPLACE "${uuid}" ";" _result "${_result}")
+ set(${OUTPUT_VAR} "${_result}" PARENT_SCOPE)
+endfunction()
+
+function(cpack_deb_prepare_package_vars)
+ # CPACK_DEBIAN_PACKAGE_SHLIBDEPS
+ # If specify OFF, only user depends are used
+ if(NOT DEFINED CPACK_DEBIAN_PACKAGE_SHLIBDEPS)
+ set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF)
+ endif()
+
+ set(WDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_DEB_PACKAGE_COMPONENT_PART_PATH}")
+ set(DBGSYMDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_DEB_PACKAGE_COMPONENT_PART_PATH}-dbgsym")
+ file(REMOVE_RECURSE "${DBGSYMDIR}")
+
+ # per component automatic discover: some of the component might not have
+ # binaries.
+ if(CPACK_DEB_PACKAGE_COMPONENT)
+ string(TOUPPER "${CPACK_DEB_PACKAGE_COMPONENT}" _local_component_name)
+ set(_component_shlibdeps_var "CPACK_DEBIAN_${_local_component_name}_PACKAGE_SHLIBDEPS")
+
+ # if set, overrides the global configuration
+ if(DEFINED ${_component_shlibdeps_var})
+ set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS "${${_component_shlibdeps_var}}")
+ if(CPACK_DEBIAN_PACKAGE_DEBUG)
+ message("CPackDeb Debug: component '${CPACK_DEB_PACKAGE_COMPONENT}' dpkg-shlibdeps set to ${CPACK_DEBIAN_PACKAGE_SHLIBDEPS}")
+ endif()
+ endif()
+ endif()
+
+ cpack_deb_variable_fallback("CPACK_DEBIAN_DEBUGINFO_PACKAGE"
+ "CPACK_DEBIAN_${_local_component_name}_DEBUGINFO_PACKAGE"
+ "CPACK_DEBIAN_DEBUGINFO_PACKAGE")
+ if(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OR CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS OR CPACK_DEBIAN_DEBUGINFO_PACKAGE)
+ # Generating binary list - Get type of all install files
+ file(GLOB_RECURSE FILE_PATHS_ LIST_DIRECTORIES false RELATIVE "${WDIR}" "${WDIR}/*")
+
+ find_program(FILE_EXECUTABLE file)
+ if(NOT FILE_EXECUTABLE)
+ message(FATAL_ERROR "CPackDeb: file utility is not available. CPACK_DEBIAN_PACKAGE_SHLIBDEPS and CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS options are not available.")
+ endif()
+
+ # get file info so that we can determine if file is executable or not
+ unset(CPACK_DEB_INSTALL_FILES)
+ foreach(FILE_ IN LISTS FILE_PATHS_)
+ execute_process(COMMAND ${CMAKE_COMMAND} -E env LC_ALL=C ${FILE_EXECUTABLE} "./${FILE_}"
+ WORKING_DIRECTORY "${WDIR}"
+ RESULT_VARIABLE FILE_RESULT_
+ OUTPUT_VARIABLE INSTALL_FILE_)
+ if(NOT FILE_RESULT_ EQUAL 0)
+ message(FATAL_ERROR "CPackDeb: execution of command: '${FILE_EXECUTABLE} ./${FILE_}' failed with exit code: ${FILE_RESULT_}")
+ endif()
+ list(APPEND CPACK_DEB_INSTALL_FILES "${INSTALL_FILE_}")
+ endforeach()
+
+ # Only dynamically linked ELF files are included
+ # Extract only file name infront of ":"
+ foreach(_FILE IN LISTS CPACK_DEB_INSTALL_FILES)
+ if(_FILE MATCHES "ELF.*dynamically linked")
+ string(REGEX MATCH "(^.*):" _FILE_NAME "${_FILE}")
+ list(APPEND CPACK_DEB_BINARY_FILES "${CMAKE_MATCH_1}")
+ set(CONTAINS_EXECUTABLE_FILES_ TRUE)
+ endif()
+ if(_FILE MATCHES "ELF.*shared object")
+ string(REGEX MATCH "(^.*):" _FILE_NAME "${_FILE}")
+ list(APPEND CPACK_DEB_SHARED_OBJECT_FILES "${CMAKE_MATCH_1}")
+ endif()
+ if(_FILE MATCHES "ELF.*not stripped")
+ string(REGEX MATCH "(^.*):" _FILE_NAME "${_FILE}")
+ list(APPEND CPACK_DEB_UNSTRIPPED_FILES "${CMAKE_MATCH_1}")
+ endif()
+ endforeach()
+ endif()
+
+ find_program(READELF_EXECUTABLE NAMES readelf)
+
+ if(CPACK_DEBIAN_DEBUGINFO_PACKAGE AND CPACK_DEB_UNSTRIPPED_FILES)
+ find_program(OBJCOPY_EXECUTABLE NAMES objcopy)
+
+ if(NOT OBJCOPY_EXECUTABLE)
+ message(FATAL_ERROR "debuginfo packages require the objcopy tool")
+ endif()
+ if(NOT READELF_EXECUTABLE)
+ message(FATAL_ERROR "debuginfo packages require the readelf tool")
+ endif()
+
+ file(RELATIVE_PATH _DBGSYM_ROOT "${CPACK_TEMPORARY_DIRECTORY}" "${DBGSYMDIR}")
+ foreach(_FILE IN LISTS CPACK_DEB_UNSTRIPPED_FILES)
+
+ # Get the file's Build ID
+ execute_process(COMMAND env LC_ALL=C ${READELF_EXECUTABLE} -n "${_FILE}"
+ WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+ OUTPUT_VARIABLE READELF_OUTPUT
+ RESULT_VARIABLE READELF_RESULT
+ ERROR_VARIABLE READELF_ERROR
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
+ if(NOT READELF_RESULT EQUAL 0)
+ message(FATAL_ERROR "CPackDeb: readelf: '${READELF_ERROR}';\n"
+ "executed command: '${READELF_EXECUTABLE} -n ${_FILE}'")
+ endif()
+ if(READELF_OUTPUT MATCHES "Build ID: ([0-9a-zA-Z][0-9a-zA-Z])([0-9a-zA-Z]*)")
+ set(_BUILD_ID_START ${CMAKE_MATCH_1})
+ set(_BUILD_ID_REMAINING ${CMAKE_MATCH_2})
+ list(APPEND BUILD_IDS ${_BUILD_ID_START}${_BUILD_ID_REMAINING})
+ else()
+ message(FATAL_ERROR "Unable to determine Build ID for ${_FILE}")
+ endif()
+
+ # Split out the debug symbols from the binaries
+ set(_FILE_DBGSYM ${_DBGSYM_ROOT}/usr/lib/debug/.build-id/${_BUILD_ID_START}/${_BUILD_ID_REMAINING}.debug)
+ get_filename_component(_OUT_DIR "${_FILE_DBGSYM}" DIRECTORY)
+ file(MAKE_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}/${_OUT_DIR}")
+ execute_process(COMMAND ${OBJCOPY_EXECUTABLE} --only-keep-debug "${_FILE}" "${_FILE_DBGSYM}"
+ WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+ OUTPUT_VARIABLE OBJCOPY_OUTPUT
+ RESULT_VARIABLE OBJCOPY_RESULT
+ ERROR_VARIABLE OBJCOPY_ERROR
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
+ if(NOT OBJCOPY_RESULT EQUAL 0)
+ message(FATAL_ERROR "CPackDeb: objcopy: '${OBJCOPY_ERROR}';\n"
+ "executed command: '${OBJCOPY_EXECUTABLE} --only-keep-debug ${_FILE} ${_FILE_DBGSYM}'")
+ endif()
+ execute_process(COMMAND ${OBJCOPY_EXECUTABLE} --strip-unneeded ${_FILE}
+ WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+ OUTPUT_VARIABLE OBJCOPY_OUTPUT
+ RESULT_VARIABLE OBJCOPY_RESULT
+ ERROR_VARIABLE OBJCOPY_ERROR
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
+ if(NOT OBJCOPY_RESULT EQUAL 0)
+ message(FATAL_ERROR "CPackDeb: objcopy: '${OBJCOPY_ERROR}';\n"
+ "executed command: '${OBJCOPY_EXECUTABLE} --strip-debug ${_FILE}'")
+ endif()
+ execute_process(COMMAND ${OBJCOPY_EXECUTABLE} --add-gnu-debuglink=${_FILE_DBGSYM} ${_FILE}
+ WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+ OUTPUT_VARIABLE OBJCOPY_OUTPUT
+ RESULT_VARIABLE OBJCOPY_RESULT
+ ERROR_VARIABLE OBJCOPY_ERROR
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
+ if(NOT OBJCOPY_RESULT EQUAL 0)
+ message(FATAL_ERROR "CPackDeb: objcopy: '${OBJCOPY_ERROR}';\n"
+ "executed command: '${OBJCOPY_EXECUTABLE} --add-gnu-debuglink=${_FILE_DBGSYM} ${_FILE}'")
+ endif()
+ endforeach()
+ endif()
+
+ if(CPACK_DEBIAN_PACKAGE_SHLIBDEPS)
+ # dpkg-shlibdeps is a Debian utility for generating dependency list
+ find_program(SHLIBDEPS_EXECUTABLE dpkg-shlibdeps)
+
+ if(SHLIBDEPS_EXECUTABLE)
+ # Check version of the dpkg-shlibdeps tool using CPackDEB method
+ execute_process(COMMAND ${CMAKE_COMMAND} -E env LC_ALL=C ${SHLIBDEPS_EXECUTABLE} --version
+ OUTPUT_VARIABLE _TMP_VERSION
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(_TMP_VERSION MATCHES "dpkg-shlibdeps version ([0-9]+\\.[0-9]+\\.[0-9]+)")
+ set(SHLIBDEPS_EXECUTABLE_VERSION "${CMAKE_MATCH_1}")
+ else()
+ unset(SHLIBDEPS_EXECUTABLE_VERSION)
+ endif()
+
+ if(CPACK_DEBIAN_PACKAGE_DEBUG)
+ message("CPackDeb Debug: dpkg-shlibdeps --version output is '${_TMP_VERSION}'")
+ message("CPackDeb Debug: dpkg-shlibdeps version is <${SHLIBDEPS_EXECUTABLE_VERSION}>")
+ endif()
+
+ if(CONTAINS_EXECUTABLE_FILES_)
+ message("CPackDeb: - Generating dependency list")
+
+ # Create blank control file for running dpkg-shlibdeps
+ # There might be some other way to invoke dpkg-shlibdeps without creating this file
+ # but standard debian package should not have anything that can collide with this file or directory
+ file(MAKE_DIRECTORY ${CPACK_TEMPORARY_DIRECTORY}/debian)
+ file(WRITE ${CPACK_TEMPORARY_DIRECTORY}/debian/control "")
+
+ # Create a DEBIAN directory so that dpkg-shlibdeps can find the package dir when resolving $ORIGIN.
+ file(MAKE_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}/DEBIAN")
+
+ # Add --ignore-missing-info if the tool supports it
+ execute_process(COMMAND ${CMAKE_COMMAND} -E env LC_ALL=C ${SHLIBDEPS_EXECUTABLE} --help
+ OUTPUT_VARIABLE _TMP_HELP
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(_TMP_HELP MATCHES "--ignore-missing-info")
+ set(IGNORE_MISSING_INFO_FLAG "--ignore-missing-info")
+ endif()
+
+ # Execute dpkg-shlibdeps
+ # --ignore-missing-info : allow dpkg-shlibdeps to run even if some libs do not belong to a package
+ # -O : print to STDOUT
+ execute_process(COMMAND ${SHLIBDEPS_EXECUTABLE} ${IGNORE_MISSING_INFO_FLAG} -O ${CPACK_DEB_BINARY_FILES}
+ WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+ OUTPUT_VARIABLE SHLIBDEPS_OUTPUT
+ RESULT_VARIABLE SHLIBDEPS_RESULT
+ ERROR_VARIABLE SHLIBDEPS_ERROR
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
+ if(CPACK_DEBIAN_PACKAGE_DEBUG)
+ # dpkg-shlibdeps will throw some warnings if some input files are not binary
+ message( "CPackDeb Debug: dpkg-shlibdeps warnings \n${SHLIBDEPS_ERROR}")
+ endif()
+ if(NOT SHLIBDEPS_RESULT EQUAL 0)
+ message(FATAL_ERROR "CPackDeb: dpkg-shlibdeps: '${SHLIBDEPS_ERROR}';\n"
+ "executed command: '${SHLIBDEPS_EXECUTABLE} ${IGNORE_MISSING_INFO_FLAG} -O ${CPACK_DEB_BINARY_FILES}';\n"
+ "found files: '${INSTALL_FILE_}';\n"
+ "files info: '${CPACK_DEB_INSTALL_FILES}';\n"
+ "binary files: '${CPACK_DEB_BINARY_FILES}'")
+ endif()
+
+ #Get rid of prefix generated by dpkg-shlibdeps
+ string(REGEX REPLACE "^.*Depends=" "" CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS "${SHLIBDEPS_OUTPUT}")
+
+ if(CPACK_DEBIAN_PACKAGE_DEBUG)
+ message("CPackDeb Debug: Found dependency: ${CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS} from output ${SHLIBDEPS_OUTPUT}")
+ endif()
+
+ # Remove blank control file
+ # Might not be safe if package actual contain file or directory named debian
+ file(REMOVE_RECURSE "${CPACK_TEMPORARY_DIRECTORY}/debian")
+
+ # remove temporary directory that was created only for dpkg-shlibdeps execution
+ file(REMOVE_RECURSE "${CPACK_TEMPORARY_DIRECTORY}/DEBIAN")
+ else()
+ if(CPACK_DEBIAN_PACKAGE_DEBUG)
+ message(AUTHOR_WARNING "CPackDeb Debug: Using only user-provided depends because package does not contain executable files that link to shared libraries.")
+ endif()
+ endif()
+ else()
+ message("CPackDeb: Using only user-provided dependencies because dpkg-shlibdeps is not found.")
+ endif()
+
+ else()
+ if(CPACK_DEBIAN_PACKAGE_DEBUG)
+ message("CPackDeb Debug: Using only user-provided dependencies")
+ endif()
+ endif()
+
+ # Let's define the control file found in debian package:
+
+ # Binary package:
+ # http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-binarycontrolfiles
+
+ # DEBIAN/control
+ # debian policy enforce lower case for package name
+ # Package: (mandatory)
+ if(NOT CPACK_DEBIAN_PACKAGE_NAME)
+ string(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_DEBIAN_PACKAGE_NAME)
+ endif()
+
+ # Version: (mandatory)
+ if(NOT CPACK_DEBIAN_PACKAGE_VERSION)
+ if(NOT CPACK_PACKAGE_VERSION)
+ message(FATAL_ERROR "CPackDeb: Debian package requires a package version")
+ endif()
+ set(CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
+ endif()
+
+ if(DEFINED CPACK_DEBIAN_PACKAGE_RELEASE OR DEFINED CPACK_DEBIAN_PACKAGE_EPOCH)
+ # only test the version format if CPACK_DEBIAN_PACKAGE_RELEASE or
+ # CPACK_DEBIAN_PACKAGE_EPOCH is set
+ if(NOT CPACK_DEBIAN_PACKAGE_VERSION MATCHES "^[0-9][A-Za-z0-9.+~-]*$")
+ message(FATAL_ERROR
+ "CPackDeb: Debian package version must confirm to \"^[0-9][A-Za-z0-9.+~-]*$\" regex!")
+ endif()
+ else()
+ # before CMake 3.10 version format was not tested so only warn to preserve
+ # backward compatibility
+ if(NOT CPACK_DEBIAN_PACKAGE_VERSION MATCHES "^([0-9]+:)?[0-9][A-Za-z0-9.+~-]*$")
+ message(AUTHOR_WARNING
+ "CPackDeb: Debian package versioning ([<epoch>:]<version>[-<release>])"
+ " should confirm to \"^([0-9]+:)?[0-9][A-Za-z0-9.+~-]*$\" regex in"
+ " order to satisfy Debian packaging rules.")
+ endif()
+ endif()
+
+ if(CPACK_DEBIAN_PACKAGE_RELEASE)
+ if(NOT CPACK_DEBIAN_PACKAGE_RELEASE MATCHES "^[A-Za-z0-9.+~]+$")
+ message(FATAL_ERROR
+ "CPackDeb: Debian package release must confirm to \"^[A-Za-z0-9.+~]+$\" regex!")
+ endif()
+ string(APPEND CPACK_DEBIAN_PACKAGE_VERSION
+ "-${CPACK_DEBIAN_PACKAGE_RELEASE}")
+ elseif(DEFINED CPACK_DEBIAN_PACKAGE_EPOCH)
+ # only test the version format if CPACK_DEBIAN_PACKAGE_RELEASE or
+ # CPACK_DEBIAN_PACKAGE_EPOCH is set - versions CPack/Deb generator before
+ # CMake 3.10 did not check for version format so we have to preserve
+ # backward compatibility
+ if(CPACK_DEBIAN_PACKAGE_VERSION MATCHES ".*-.*")
+ message(FATAL_ERROR
+ "CPackDeb: Debian package version must not contain hyphens when CPACK_DEBIAN_PACKAGE_RELEASE is not provided!")
+ endif()
+ endif()
+
+ if(CPACK_DEBIAN_PACKAGE_EPOCH)
+ if(NOT CPACK_DEBIAN_PACKAGE_EPOCH MATCHES "^[0-9]+$")
+ message(FATAL_ERROR
+ "CPackDeb: Debian package epoch must confirm to \"^[0-9]+$\" regex!")
+ endif()
+ set(CPACK_DEBIAN_PACKAGE_VERSION
+ "${CPACK_DEBIAN_PACKAGE_EPOCH}:${CPACK_DEBIAN_PACKAGE_VERSION}")
+ endif()
+
+ # Architecture: (mandatory)
+ if(CPACK_DEB_PACKAGE_COMPONENT AND CPACK_DEBIAN_${_local_component_name}_PACKAGE_ARCHITECTURE)
+ set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${CPACK_DEBIAN_${_local_component_name}_PACKAGE_ARCHITECTURE}")
+ elseif(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
+ # There is no such thing as i686 architecture on debian, you should use i386 instead
+ # $ dpkg --print-architecture
+ find_program(DPKG_CMD dpkg)
+ if(NOT DPKG_CMD)
+ message(STATUS "CPackDeb: Can not find dpkg in your path, default to i386.")
+ set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE i386)
+ endif()
+ execute_process(COMMAND "${DPKG_CMD}" --print-architecture
+ OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ endif()
+
+ # Source: (optional)
+ # in case several packages are constructed from a unique source
+ # (multipackaging), the source may be indicated as well.
+ # The source might contain a version if the generated package
+ # version is different from the source version
+ if(NOT CPACK_DEBIAN_PACKAGE_SOURCE)
+ set(CPACK_DEBIAN_PACKAGE_SOURCE "")
+ endif()
+
+ # have a look at get_property(result GLOBAL PROPERTY ENABLED_FEATURES),
+ # this returns the successful find_package() calls, maybe this can help
+ # Depends:
+ # You should set: DEBIAN_PACKAGE_DEPENDS
+ # TODO: automate 'objdump -p | grep NEEDED'
+
+ # if per-component variable, overrides the global CPACK_DEBIAN_PACKAGE_${variable_type_}
+ # automatic dependency discovery will be performed afterwards.
+ if(CPACK_DEB_PACKAGE_COMPONENT)
+ foreach(value_type_ IN ITEMS DEPENDS RECOMMENDS SUGGESTS PREDEPENDS ENHANCES BREAKS CONFLICTS PROVIDES REPLACES SOURCE SECTION PRIORITY NAME)
+ set(_component_var "CPACK_DEBIAN_${_local_component_name}_PACKAGE_${value_type_}")
+
+ # if set, overrides the global variable
+ if(DEFINED ${_component_var})
+ set(CPACK_DEBIAN_PACKAGE_${value_type_} "${${_component_var}}")
+ if(CPACK_DEBIAN_PACKAGE_DEBUG)
+ message("CPackDeb Debug: component '${_local_component_name}' ${value_type_} "
+ "value set to '${CPACK_DEBIAN_PACKAGE_${value_type_}}'")
+ endif()
+ endif()
+ endforeach()
+
+ if(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS)
+ unset(COMPONENT_DEPENDS)
+ foreach(_PACK IN LISTS CPACK_COMPONENT_${_local_component_name}_DEPENDS)
+ get_component_package_name(_PACK_NAME "${_PACK}")
+ list(PREPEND COMPONENT_DEPENDS "${_PACK_NAME} (= ${CPACK_DEBIAN_PACKAGE_VERSION})")
+ endforeach()
+ list(JOIN COMPONENT_DEPENDS ", " COMPONENT_DEPENDS)
+ if(COMPONENT_DEPENDS)
+ list(PREPEND CPACK_DEBIAN_PACKAGE_DEPENDS ${COMPONENT_DEPENDS})
+ list(JOIN CPACK_DEBIAN_PACKAGE_DEPENDS ", " CPACK_DEBIAN_PACKAGE_DEPENDS)
+ endif()
+ endif()
+ endif()
+
+ # at this point, the CPACK_DEBIAN_PACKAGE_DEPENDS is properly set
+ # to the minimal dependency of the package
+ # Append automatically discovered dependencies .
+ if(CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS)
+ list(APPEND CPACK_DEBIAN_PACKAGE_DEPENDS ${CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS})
+ list(JOIN CPACK_DEBIAN_PACKAGE_DEPENDS ", " CPACK_DEBIAN_PACKAGE_DEPENDS)
+ endif()
+
+ if(NOT CPACK_DEBIAN_PACKAGE_DEPENDS)
+ message(STATUS "CPACK_DEBIAN_PACKAGE_DEPENDS not set, the package will have no dependencies.")
+ endif()
+
+ # Maintainer: (mandatory)
+ if(NOT CPACK_DEBIAN_PACKAGE_MAINTAINER)
+ if(NOT CPACK_PACKAGE_CONTACT)
+ message(FATAL_ERROR "CPackDeb: Debian package requires a maintainer for a package, set CPACK_PACKAGE_CONTACT or CPACK_DEBIAN_PACKAGE_MAINTAINER")
+ endif()
+ set(CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_CONTACT})
+ endif()
+
+ # Description: (mandatory)
+ # Try package description first
+ if(CPACK_USED_DEFAULT_PACKAGE_DESCRIPTION_FILE)
+ set(_desc_fallback)
+ else()
+ set(_desc_fallback "CPACK_PACKAGE_DESCRIPTION")
+ endif()
+ if(CPACK_DEB_PACKAGE_COMPONENT)
+ cpack_deb_variable_fallback("CPACK_DEBIAN_PACKAGE_DESCRIPTION"
+ "CPACK_DEBIAN_${_local_component_name}_DESCRIPTION"
+ "CPACK_COMPONENT_${_local_component_name}_DESCRIPTION")
+ else()
+ cpack_deb_variable_fallback("CPACK_DEBIAN_PACKAGE_DESCRIPTION"
+ "CPACK_DEBIAN_PACKAGE_DESCRIPTION"
+ ${_desc_fallback})
+ endif()
+
+ # Still no description? ... and description file has set ...
+ if(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION
+ AND CPACK_PACKAGE_DESCRIPTION_FILE
+ AND NOT CPACK_PACKAGE_DESCRIPTION_FILE STREQUAL CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE)
+ # Read `CPACK_PACKAGE_DESCRIPTION_FILE` then...
+ file(READ ${CPACK_PACKAGE_DESCRIPTION_FILE} CPACK_DEBIAN_PACKAGE_DESCRIPTION)
+ endif()
+
+ # Still no description? #2
+ if(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION)
+ # Try to get `CPACK_PACKAGE_DESCRIPTION_SUMMARY` as the last hope
+ if(CPACK_PACKAGE_DESCRIPTION_SUMMARY)
+ set(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
+ else()
+ # Giving up! Report an error...
+ set(_description_failure_message
+ "CPackDeb: Debian package requires a summary for a package, set CPACK_PACKAGE_DESCRIPTION_SUMMARY or CPACK_DEBIAN_PACKAGE_DESCRIPTION")
+ if(CPACK_DEB_PACKAGE_COMPONENT)
+ string(APPEND _description_failure_message
+ " or CPACK_DEBIAN_${_local_component_name}_DESCRIPTION")
+ endif()
+ message(FATAL_ERROR _description_failure_message)
+ endif()
+
+ # Ok, description has set. According to the `Debian Policy Manual`_ the frist
+ # line is a pacakge summary. Try to get it as well...
+ # See also: https://www.debian.org/doc/debian-policy/ch-controlfields.html#description
+ elseif(CPACK_PACKAGE_DESCRIPTION_SUMMARY AND
+ NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY STREQUAL CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY)
+ # Merge summary w/ the detailed description
+ string(PREPEND CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}\n")
+ endif()
+ # assert(CPACK_DEBIAN_PACKAGE_DESCRIPTION)
+
+ # Make sure description is properly formatted
+ cpack_deb_format_package_description(
+ "${CPACK_DEBIAN_PACKAGE_DESCRIPTION}"
+ CPACK_DEBIAN_PACKAGE_DESCRIPTION
+ )
+
+ # Homepage: (optional)
+ if(NOT CPACK_DEBIAN_PACKAGE_HOMEPAGE AND CPACK_PACKAGE_HOMEPAGE_URL)
+ set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "${CPACK_PACKAGE_HOMEPAGE_URL}")
+ endif()
+
+ # Section: (recommended)
+ if(NOT CPACK_DEBIAN_PACKAGE_SECTION)
+ set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
+ endif()
+
+ # Priority: (recommended)
+ if(NOT CPACK_DEBIAN_PACKAGE_PRIORITY)
+ set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
+ endif()
+
+ if(CPACK_DEBIAN_ARCHIVE_TYPE)
+ if(CPACK_DEBIAN_ARCHIVE_TYPE STREQUAL "paxr")
+ message(DEPRECATION "CPACK_DEBIAN_ARCHIVE_TYPE set to old and invalid "
+ "type 'paxr', mapping to 'gnutar'")
+ set(CPACK_DEBIAN_ARCHIVE_TYPE "gnutar")
+ elseif(NOT CPACK_DEBIAN_ARCHIVE_TYPE STREQUAL "gnutar")
+ message(FATAL_ERROR "CPACK_DEBIAN_ARCHIVE_TYPE set to unsupported"
+ "type ${CPACK_DEBIAN_ARCHIVE_TYPE}")
+ endif()
+ else()
+ set(CPACK_DEBIAN_ARCHIVE_TYPE "gnutar")
+ endif()
+
+ # Compression: (recommended)
+ if(NOT CPACK_DEBIAN_COMPRESSION_TYPE)
+ set(CPACK_DEBIAN_COMPRESSION_TYPE "gzip")
+ endif()
+
+ # Recommends:
+ # You should set: CPACK_DEBIAN_PACKAGE_RECOMMENDS
+
+ # Suggests:
+ # You should set: CPACK_DEBIAN_PACKAGE_SUGGESTS
+
+ # CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
+ # This variable allow advanced user to add custom script to the control.tar.gz (inside the .deb archive)
+ # Typical examples are:
+ # - conffiles
+ # - postinst
+ # - postrm
+ # - prerm
+ # Usage:
+ # set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
+ # "${CMAKE_CURRENT_SOURCE_DIR}/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm")
+
+ # Are we packaging components ?
+ if(CPACK_DEB_PACKAGE_COMPONENT)
+ # override values with per component version if set
+ foreach(VAR_NAME_ IN ITEMS PACKAGE_CONTROL_EXTRA PACKAGE_CONTROL_STRICT_PERMISSION)
+ if(CPACK_DEBIAN_${_local_component_name}_${VAR_NAME_})
+ set(CPACK_DEBIAN_${VAR_NAME_} "${CPACK_DEBIAN_${_local_component_name}_${VAR_NAME_}}")
+ endif()
+ endforeach()
+ get_component_package_name(CPACK_DEBIAN_PACKAGE_NAME ${_local_component_name})
+ endif()
+
+ if(NOT CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY)
+ set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY "=")
+ endif()
+
+ unset(CPACK_DEBIAN_PACKAGE_SHLIBS_LIST)
+
+ if(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS)
+ if(READELF_EXECUTABLE)
+ foreach(_FILE IN LISTS CPACK_DEB_SHARED_OBJECT_FILES)
+ extract_so_info("${_FILE}" libname soversion)
+ if(libname AND DEFINED soversion)
+ list(APPEND CPACK_DEBIAN_PACKAGE_SHLIBS_LIST
+ "${libname} ${soversion} ${CPACK_DEBIAN_PACKAGE_NAME} (${CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY} ${CPACK_DEBIAN_PACKAGE_VERSION})")
+ else()
+ message(AUTHOR_WARNING "Shared library '${_FILE}' is missing soname or soversion. Library will not be added to DEBIAN/shlibs control file.")
+ endif()
+ endforeach()
+ list(JOIN CPACK_DEBIAN_PACKAGE_SHLIBS_LIST "\n" CPACK_DEBIAN_PACKAGE_SHLIBS_LIST)
+ else()
+ message(FATAL_ERROR "Readelf utility is not available. CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS option is not available.")
+ endif()
+ endif()
+
+ # add ldconfig call in default postrm and postint
+ set(CPACK_ADD_LDCONFIG_CALL 0)
+ foreach(_FILE IN LISTS CPACK_DEB_SHARED_OBJECT_FILES)
+ get_filename_component(_DIR ${_FILE} DIRECTORY)
+ # all files in CPACK_DEB_SHARED_OBJECT_FILES have dot at the beginning
+ if(_DIR STREQUAL "./lib" OR _DIR STREQUAL "./usr/lib")
+ set(CPACK_ADD_LDCONFIG_CALL 1)
+ endif()
+ endforeach()
+
+ if(CPACK_ADD_LDCONFIG_CALL)
+ set(CPACK_DEBIAN_GENERATE_POSTINST 1)
+ set(CPACK_DEBIAN_GENERATE_POSTRM 1)
+ foreach(f IN LISTS PACKAGE_CONTROL_EXTRA)
+ get_filename_component(n "${f}" NAME)
+ if(n STREQUAL "postinst")
+ set(CPACK_DEBIAN_GENERATE_POSTINST 0)
+ endif()
+ if(n STREQUAL "postrm")
+ set(CPACK_DEBIAN_GENERATE_POSTRM 0)
+ endif()
+ endforeach()
+ else()
+ set(CPACK_DEBIAN_GENERATE_POSTINST 0)
+ set(CPACK_DEBIAN_GENERATE_POSTRM 0)
+ endif()
+
+ cpack_deb_variable_fallback("CPACK_DEBIAN_FILE_NAME"
+ "CPACK_DEBIAN_${_local_component_name}_FILE_NAME"
+ "CPACK_DEBIAN_FILE_NAME")
+ if(CPACK_DEBIAN_FILE_NAME)
+ if(CPACK_DEBIAN_FILE_NAME STREQUAL "DEB-DEFAULT")
+ # Patch package file name to be in correct debian format:
+ # <foo>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
+ set(CPACK_OUTPUT_FILE_NAME
+ "${CPACK_DEBIAN_PACKAGE_NAME}_${CPACK_DEBIAN_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb")
+ set(CPACK_DBGSYM_OUTPUT_FILE_NAME
+ "${CPACK_DEBIAN_PACKAGE_NAME}-dbgsym_${CPACK_DEBIAN_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.ddeb")
+ else()
+ if(NOT CPACK_DEBIAN_FILE_NAME MATCHES ".*\\.(deb|ipk)")
+ message(FATAL_ERROR "'${CPACK_DEBIAN_FILE_NAME}' is not a valid DEB package file name as it must end with '.deb' or '.ipk'!")
+ endif()
+
+ set(CPACK_OUTPUT_FILE_NAME "${CPACK_DEBIAN_FILE_NAME}")
+ string(REGEX REPLACE "\.deb$" "-dbgsym.ddeb" CPACK_DBGSYM_OUTPUT_FILE_NAME "${CPACK_DEBIAN_FILE_NAME}")
+ endif()
+
+ set(CPACK_TEMPORARY_PACKAGE_FILE_NAME "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_OUTPUT_FILE_NAME}")
+ get_filename_component(BINARY_DIR "${CPACK_OUTPUT_FILE_PATH}" DIRECTORY)
+ set(CPACK_OUTPUT_FILE_PATH "${BINARY_DIR}/${CPACK_OUTPUT_FILE_NAME}")
+ else()
+ # back compatibility - don't change the name
+ string(REGEX REPLACE "\.deb$" "-dbgsym.ddeb" CPACK_DBGSYM_OUTPUT_FILE_NAME "${CPACK_OUTPUT_FILE_NAME}")
+ endif()
+
+ # Print out some debug information if we were asked for that
+ if(CPACK_DEBIAN_PACKAGE_DEBUG)
+ message("CPackDeb:Debug: CPACK_TOPLEVEL_DIRECTORY = '${CPACK_TOPLEVEL_DIRECTORY}'")
+ message("CPackDeb:Debug: CPACK_TOPLEVEL_TAG = '${CPACK_TOPLEVEL_TAG}'")
+ message("CPackDeb:Debug: CPACK_TEMPORARY_DIRECTORY = '${CPACK_TEMPORARY_DIRECTORY}'")
+ message("CPackDeb:Debug: CPACK_OUTPUT_FILE_NAME = '${CPACK_OUTPUT_FILE_NAME}'")
+ message("CPackDeb:Debug: CPACK_OUTPUT_FILE_PATH = '${CPACK_OUTPUT_FILE_PATH}'")
+ message("CPackDeb:Debug: CPACK_PACKAGE_FILE_NAME = '${CPACK_PACKAGE_FILE_NAME}'")
+ message("CPackDeb:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = '${CPACK_PACKAGE_INSTALL_DIRECTORY}'")
+ message("CPackDeb:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = '${CPACK_TEMPORARY_PACKAGE_FILE_NAME}'")
+ message("CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION = '${CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION}'")
+ message("CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_SOURCE = '${CPACK_DEBIAN_PACKAGE_SOURCE}'")
+ endif()
+
+ # For debian source packages:
+ # debian/control
+ # http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-sourcecontrolfiles
+
+ # .dsc
+ # http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-debiansourcecontrolfiles
+
+ # Builds-Depends:
+ #if(NOT CPACK_DEBIAN_PACKAGE_BUILDS_DEPENDS)
+ # set(CPACK_DEBIAN_PACKAGE_BUILDS_DEPENDS
+ # "debhelper (>> 5.0.0), libncurses5-dev, tcl8.4"
+ # )
+ #endif()
+
+ # move variables to parent scope so that they may be used to create debian package
+ set(GEN_CPACK_OUTPUT_FILE_NAME "${CPACK_OUTPUT_FILE_NAME}" PARENT_SCOPE)
+ set(GEN_CPACK_TEMPORARY_PACKAGE_FILE_NAME "${CPACK_TEMPORARY_PACKAGE_FILE_NAME}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_NAME "${CPACK_DEBIAN_PACKAGE_NAME}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_VERSION "${CPACK_DEBIAN_PACKAGE_VERSION}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_SECTION "${CPACK_DEBIAN_PACKAGE_SECTION}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_PRIORITY "${CPACK_DEBIAN_PACKAGE_PRIORITY}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_MAINTAINER "${CPACK_DEBIAN_PACKAGE_MAINTAINER}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_DEBIAN_PACKAGE_DESCRIPTION}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_ARCHIVE_TYPE "${CPACK_DEBIAN_ARCHIVE_TYPE}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_COMPRESSION_TYPE "${CPACK_DEBIAN_COMPRESSION_TYPE}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_RECOMMENDS "${CPACK_DEBIAN_PACKAGE_RECOMMENDS}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_SUGGESTS "${CPACK_DEBIAN_PACKAGE_SUGGESTS}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_HOMEPAGE "${CPACK_DEBIAN_PACKAGE_HOMEPAGE}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_PREDEPENDS "${CPACK_DEBIAN_PACKAGE_PREDEPENDS}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_ENHANCES "${CPACK_DEBIAN_PACKAGE_ENHANCES}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_BREAKS "${CPACK_DEBIAN_PACKAGE_BREAKS}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_CONFLICTS "${CPACK_DEBIAN_PACKAGE_CONFLICTS}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_PROVIDES "${CPACK_DEBIAN_PACKAGE_PROVIDES}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_REPLACES "${CPACK_DEBIAN_PACKAGE_REPLACES}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_SHLIBS "${CPACK_DEBIAN_PACKAGE_SHLIBS_LIST}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION
+ "${CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_PACKAGE_SOURCE
+ "${CPACK_DEBIAN_PACKAGE_SOURCE}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_GENERATE_POSTINST "${CPACK_DEBIAN_GENERATE_POSTINST}" PARENT_SCOPE)
+ set(GEN_CPACK_DEBIAN_GENERATE_POSTRM "${CPACK_DEBIAN_GENERATE_POSTRM}" PARENT_SCOPE)
+ set(GEN_WDIR "${WDIR}" PARENT_SCOPE)
+
+ set(GEN_CPACK_DEBIAN_DEBUGINFO_PACKAGE "${CPACK_DEBIAN_DEBUGINFO_PACKAGE}" PARENT_SCOPE)
+ if(BUILD_IDS)
+ set(GEN_DBGSYMDIR "${DBGSYMDIR}" PARENT_SCOPE)
+ set(GEN_CPACK_DBGSYM_OUTPUT_FILE_NAME "${CPACK_DBGSYM_OUTPUT_FILE_NAME}" PARENT_SCOPE)
+ list(JOIN BUILD_IDS " " BUILD_IDS)
+ set(GEN_BUILD_IDS "${BUILD_IDS}" PARENT_SCOPE)
+ endif()
+endfunction()
+
+cpack_deb_prepare_package_vars()
+
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPackExternal.cmake b/share/cmake-3.17/Modules/Internal/CPack/CPackExternal.cmake
index e4d055a..e4d055a 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPackExternal.cmake
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPackExternal.cmake
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackFreeBSD.cmake b/share/cmake-3.17/Modules/Internal/CPack/CPackFreeBSD.cmake
new file mode 100644
index 0000000..ae40532
--- /dev/null
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPackFreeBSD.cmake
@@ -0,0 +1,107 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+if(CMAKE_BINARY_DIR)
+ message(FATAL_ERROR "CPackFreeBSD.cmake may only be used by CPack internally.")
+endif()
+
+if(NOT UNIX)
+ message(FATAL_ERROR "CPackFreeBSD.cmake may only be used under UNIX.")
+endif()
+
+
+###
+#
+# These bits are copied from the Debian packaging file; slightly modified.
+# They are used for filling in FreeBSD-packaging variables that can take
+# on values from elsewhere -- e.g. the package description may as well be
+# copied from Debian.
+#
+function(_cpack_freebsd_fallback_var OUTPUT_VAR_NAME)
+ set(FALLBACK_VAR_NAMES ${ARGN})
+
+ set(VALUE "${${OUTPUT_VAR_NAME}}")
+ if(VALUE)
+ return()
+ endif()
+
+ foreach(variable_name IN LISTS FALLBACK_VAR_NAMES)
+ if(${variable_name})
+ set(${OUTPUT_VAR_NAME} "${${variable_name}}" PARENT_SCOPE)
+ set(VALUE "${${variable_name}}")
+ break()
+ endif()
+ endforeach()
+ if(NOT VALUE)
+ message(WARNING "Variable ${OUTPUT_VAR_NAME} could not be given a fallback value from any variable ${FALLBACK_VAR_NAMES}.")
+ endif()
+endfunction()
+
+function(check_required_var VAR_NAME)
+ if(NOT ${VAR_NAME})
+ message(FATAL_ERROR "Variable ${VAR_NAME} is not set.")
+ endif()
+endfunction()
+
+set(_cpack_freebsd_fallback_origin "misc/bogus")
+
+_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_NAME"
+ "CPACK_PACKAGE_NAME"
+ "CMAKE_PROJECT_NAME"
+ )
+
+set(_cpack_freebsd_fallback_www "http://example.com/?pkg=${CPACK_FREEBSD_PACKAGE_NAME}")
+
+_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_COMMENT"
+ "CPACK_PACKAGE_DESCRIPTION_SUMMARY"
+ )
+
+# TODO: maybe read the PACKAGE_DESCRIPTION file for the longer
+# FreeBSD pkg-descr?
+_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_DESCRIPTION"
+ "CPACK_DEBIAN_PACKAGE_DESCRIPTION"
+ "CPACK_PACKAGE_DESCRIPTION_SUMMARY"
+ "PACKAGE_DESCRIPTION"
+ )
+
+# There's really only one homepage for a project, so
+# re-use the Debian setting if it's there.
+_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_WWW"
+ "CPACK_PACKAGE_HOMEPAGE_URL"
+ "CPACK_DEBIAN_PACKAGE_HOMEPAGE"
+ "_cpack_freebsd_fallback_www"
+ )
+
+_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_VERSION"
+ "CMAKE_PROJECT_VERSION"
+ "${CMAKE_PROJECT_NAME}_VERSION"
+ "PROJECT_VERSION"
+ "CPACK_PACKAGE_VERSION"
+ "CPACK_PACKAGE_VERSION"
+ )
+
+_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_MAINTAINER"
+ "CPACK_PACKAGE_CONTACT"
+ )
+
+_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_LICENSE"
+ "CPACK_RPM_PACKAGE_LICENSE"
+ )
+
+_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_ORIGIN"
+ "_cpack_freebsd_fallback_origin"
+ )
+
+if(NOT CPACK_FREEBSD_PACKAGE_CATEGORIES)
+ string(REGEX REPLACE "/.*" "" CPACK_FREEBSD_PACKAGE_CATEGORIES ${CPACK_FREEBSD_PACKAGE_ORIGIN})
+endif()
+
+check_required_var("CPACK_FREEBSD_PACKAGE_NAME")
+check_required_var("CPACK_FREEBSD_PACKAGE_ORIGIN")
+check_required_var("CPACK_FREEBSD_PACKAGE_VERSION")
+check_required_var("CPACK_FREEBSD_PACKAGE_MAINTAINER")
+check_required_var("CPACK_FREEBSD_PACKAGE_COMMENT")
+check_required_var("CPACK_FREEBSD_PACKAGE_DESCRIPTION")
+check_required_var("CPACK_FREEBSD_PACKAGE_WWW")
+check_required_var("CPACK_FREEBSD_PACKAGE_LICENSE")
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake b/share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake
new file mode 100644
index 0000000..1f4bcfd
--- /dev/null
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake
@@ -0,0 +1,354 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# Author: Alex Turbov
+
+if(CMAKE_BINARY_DIR)
+ message(FATAL_ERROR "CPackNuGet.cmake may only be used by CPack internally.")
+endif()
+
+function(_cpack_nuget_debug)
+ if(CPACK_NUGET_PACKAGE_DEBUG)
+ message("CPackNuGet:Debug: " ${ARGN})
+ endif()
+endfunction()
+
+function(_cpack_nuget_debug_var NAME)
+ if(CPACK_NUGET_PACKAGE_DEBUG)
+ message("CPackNuGet:Debug: ${NAME}=`${${NAME}}`")
+ endif()
+endfunction()
+
+function(_cpack_nuget_variable_fallback OUTPUT_VAR_NAME NUGET_VAR_NAME)
+ if(ARGN)
+ list(JOIN ARGN "`, `" _va_args)
+ set(_va_args ", ARGN: `${_va_args}`")
+ endif()
+ _cpack_nuget_debug(
+ "_cpack_nuget_variable_fallback: "
+ "OUTPUT_VAR_NAME=`${OUTPUT_VAR_NAME}`, "
+ "NUGET_VAR_NAME=`${NUGET_VAR_NAME}`"
+ "${_va_args}"
+ )
+
+ set(_options USE_CDATA)
+ set(_one_value_args LIST_GLUE)
+ set(_multi_value_args FALLBACK_VARS)
+ cmake_parse_arguments(PARSE_ARGV 0 _args "${_options}" "${_one_value_args}" "${_multi_value_args}")
+
+ if(CPACK_NUGET_PACKAGE_COMPONENT)
+ string(
+ TOUPPER "${CPACK_NUGET_PACKAGE_COMPONENT}"
+ CPACK_NUGET_PACKAGE_COMPONENT_UPPER
+ )
+ endif()
+
+ if(CPACK_NUGET_PACKAGE_COMPONENT
+ AND CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT}_PACKAGE_${NUGET_VAR_NAME}
+ )
+ set(
+ _result
+ "${CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT}_PACKAGE_${NUGET_VAR_NAME}}"
+ )
+ _cpack_nuget_debug(
+ " CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT}_PACKAGE_${NUGET_VAR_NAME}: "
+ "OUTPUT_VAR_NAME->${OUTPUT_VAR_NAME}=`${_result}`"
+ )
+
+ elseif(CPACK_NUGET_PACKAGE_COMPONENT_UPPER
+ AND CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_${NUGET_VAR_NAME}
+ )
+ set(
+ _result
+ "${CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_${NUGET_VAR_NAME}}"
+ )
+ _cpack_nuget_debug(
+ " CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_${NUGET_VAR_NAME}: "
+ "OUTPUT_VAR_NAME->${OUTPUT_VAR_NAME}=`${_result}`"
+ )
+
+ elseif(CPACK_NUGET_PACKAGE_${NUGET_VAR_NAME})
+ set(_result "${CPACK_NUGET_PACKAGE_${NUGET_VAR_NAME}}")
+ _cpack_nuget_debug(
+ " CPACK_NUGET_PACKAGE_${NUGET_VAR_NAME}: "
+ "OUTPUT_VAR_NAME->${OUTPUT_VAR_NAME}=`${_result}`"
+ )
+
+ else()
+ foreach(_var IN LISTS _args_FALLBACK_VARS)
+ _cpack_nuget_debug(" Fallback: ${_var} ...")
+ if(${_var})
+ _cpack_nuget_debug(" ${_var}=`${${_var}}`")
+ set(_result "${${_var}}")
+ _cpack_nuget_debug(
+ " ${_var}: OUTPUT_VAR_NAME->${OUTPUT_VAR_NAME}=`${_result}`"
+ )
+ break()
+ endif()
+ endforeach()
+ endif()
+
+ if(_result)
+ if(_args_USE_CDATA)
+ set(_value_before "<![CDATA[")
+ set(_value_after "]]>")
+ endif()
+
+ list(LENGTH _result _result_len)
+ if(_result_len GREATER 1 AND _args_LIST_GLUE)
+ list(JOIN _result "${_args_LIST_GLUE}" _result)
+ endif()
+
+ set(${OUTPUT_VAR_NAME} "${_value_before}${_result}${_value_after}" PARENT_SCOPE)
+ endif()
+
+endfunction()
+
+function(_cpack_nuget_variable_fallback_and_wrap_into_element ELEMENT NUGET_VAR_NAME)
+ set(_options)
+ set(_one_value_args)
+ set(_multi_value_args FALLBACK_VARS)
+ cmake_parse_arguments(PARSE_ARGV 0 _args "${_options}" "${_one_value_args}" "${_multi_value_args}")
+
+ _cpack_nuget_variable_fallback(_value ${NUGET_VAR_NAME} ${ARGN} USE_CDATA)
+
+ if(_value)
+ string(TOUPPER "${ELEMENT}" _ELEMENT_UP)
+ set(
+ _CPACK_NUGET_${_ELEMENT_UP}_TAG
+ "<${ELEMENT}>${_value}</${ELEMENT}>"
+ PARENT_SCOPE
+ )
+ endif()
+endfunction()
+
+# Print some debug info
+_cpack_nuget_debug("---[CPack NuGet Input Variables]---")
+_cpack_nuget_debug_var(CPACK_PACKAGE_NAME)
+_cpack_nuget_debug_var(CPACK_PACKAGE_VERSION)
+_cpack_nuget_debug_var(CPACK_TOPLEVEL_TAG)
+_cpack_nuget_debug_var(CPACK_TOPLEVEL_DIRECTORY)
+_cpack_nuget_debug_var(CPACK_TEMPORARY_DIRECTORY)
+_cpack_nuget_debug_var(CPACK_NUGET_GROUPS)
+if(CPACK_NUGET_GROUPS)
+ foreach(_group IN LISTS CPACK_NUGET_GROUPS)
+ string(MAKE_C_IDENTIFIER "${_group}" _group_up)
+ string(TOUPPER "${_group_up}" _group_up)
+ _cpack_nuget_debug_var(CPACK_NUGET_${_group_up}_GROUP_COMPONENTS)
+ endforeach()
+endif()
+_cpack_nuget_debug_var(CPACK_NUGET_COMPONENTS)
+_cpack_nuget_debug_var(CPACK_NUGET_ALL_IN_ONE)
+_cpack_nuget_debug_var(CPACK_NUGET_ORDINAL_MONOLITIC)
+_cpack_nuget_debug("-----------------------------------")
+
+function(_cpack_nuget_render_spec)
+ # Make a variable w/ upper-cased component name
+ if(CPACK_NUGET_PACKAGE_COMPONENT)
+ string(TOUPPER "${CPACK_NUGET_PACKAGE_COMPONENT}" CPACK_NUGET_PACKAGE_COMPONENT_UPPER)
+ endif()
+
+ # Set mandatory variables (not wrapped into XML elements)
+ # https://docs.microsoft.com/en-us/nuget/reference/nuspec#required-metadata-elements
+ if(CPACK_NUGET_PACKAGE_COMPONENT)
+ if(CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_NAME)
+ set(
+ CPACK_NUGET_PACKAGE_NAME
+ "${CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_NAME}"
+ )
+ elseif(NOT CPACK_NUGET_PACKAGE_COMPONENT STREQUAL "Unspecified")
+ set(
+ CPACK_NUGET_PACKAGE_NAME
+ "${CPACK_PACKAGE_NAME}.${CPACK_NUGET_PACKAGE_COMPONENT}"
+ )
+ else()
+ set(CPACK_NUGET_PACKAGE_NAME "${CPACK_PACKAGE_NAME}")
+ endif()
+ elseif(NOT CPACK_NUGET_PACKAGE_NAME)
+ set(CPACK_NUGET_PACKAGE_NAME "${CPACK_PACKAGE_NAME}")
+ endif()
+
+ _cpack_nuget_variable_fallback(
+ CPACK_NUGET_PACKAGE_VERSION VERSION
+ FALLBACK_VARS
+ CPACK_PACKAGE_VERSION
+ )
+ _cpack_nuget_variable_fallback(
+ CPACK_NUGET_PACKAGE_DESCRIPTION DESCRIPTION
+ FALLBACK_VARS
+ CPACK_COMPONENT_${CPACK_NUGET_PACKAGE_COMPONENT}_DESCRIPTION
+ CPACK_COMPONENT_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_DESCRIPTION
+ CPACK_COMPONENT_GROUP_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_DESCRIPTION
+ CPACK_PACKAGE_DESCRIPTION
+ USE_CDATA
+ )
+ _cpack_nuget_variable_fallback(
+ CPACK_NUGET_PACKAGE_AUTHORS AUTHORS
+ FALLBACK_VARS
+ CPACK_PACKAGE_VENDOR
+ USE_CDATA
+ LIST_GLUE ","
+ )
+
+ # Set optional variables (wrapped into XML elements)
+ # https://docs.microsoft.com/en-us/nuget/reference/nuspec#optional-metadata-elements
+ _cpack_nuget_variable_fallback_and_wrap_into_element(
+ title
+ TITLE
+ FALLBACK_VARS
+ CPACK_COMPONENT_${CPACK_NUGET_PACKAGE_COMPONENT}_DISPLAY_NAME
+ CPACK_COMPONENT_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_DISPLAY_NAME
+ CPACK_COMPONENT_GROUP_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_DISPLAY_NAME
+ )
+ _cpack_nuget_variable_fallback_and_wrap_into_element(owners OWNERS LIST_GLUE ",")
+ _cpack_nuget_variable_fallback_and_wrap_into_element(
+ projectUrl
+ HOMEPAGE_URL
+ FALLBACK_VARS
+ CPACK_PACKAGE_HOMEPAGE_URL
+ )
+ _cpack_nuget_variable_fallback_and_wrap_into_element(licenseUrl LICENSEURL)
+ _cpack_nuget_variable_fallback_and_wrap_into_element(iconUrl ICONURL)
+ _cpack_nuget_variable_fallback_and_wrap_into_element(
+ summary DESCRIPTION_SUMMARY
+ FALLBACK_VARS
+ CPACK_PACKAGE_DESCRIPTION_SUMMARY
+ )
+ if(CPACK_NUGET_PACKAGE_REQUIRE_LICENSE_ACCEPTANCE)
+ set(
+ _CPACK_NUGET_REQUIRELICENSEACCEPTANCE_TAG
+ "<requireLicenseAcceptance>true</requireLicenseAcceptance>"
+ )
+ endif()
+ _cpack_nuget_variable_fallback_and_wrap_into_element(releaseNotes RELEASE_NOTES)
+ _cpack_nuget_variable_fallback_and_wrap_into_element(copyright COPYRIGHT)
+ _cpack_nuget_variable_fallback_and_wrap_into_element(tags TAGS LIST_GLUE " ")
+
+ # Handle dependencies
+ _cpack_nuget_variable_fallback(_deps DEPENDENCIES)
+ set(_collected_deps)
+ foreach(_dep IN LISTS _deps)
+ _cpack_nuget_debug(" checking dependency `${_dep}`")
+
+ _cpack_nuget_variable_fallback(_ver DEPENDENCIES_${_dep}_VERSION)
+
+ if(NOT _ver)
+ string(TOUPPER "${_dep}" _dep_upper)
+ _cpack_nuget_variable_fallback(_ver DEPENDENCIES_${_dep_upper}_VERSION)
+ endif()
+
+ if(_ver)
+ _cpack_nuget_debug(" got `${_dep}` dependency version ${_ver}")
+ string(CONCAT _collected_deps "${_collected_deps}" " <dependency id=\"${_dep}\" version=\"${_ver}\" />\n")
+ endif()
+ endforeach()
+
+ # Render deps into the variable
+ if(_collected_deps)
+ string(CONCAT _CPACK_NUGET_DEPENDENCIES_TAG "<dependencies>\n" "${_collected_deps}" " </dependencies>")
+ endif()
+
+ # Render the spec file
+ # NOTE The spec filename doesn't matter. Being included into a package,
+ # NuGet will name it properly.
+ _cpack_nuget_debug("Rendering `${CPACK_TEMPORARY_DIRECTORY}/CPack.NuGet.nuspec` file...")
+ configure_file(
+ "${CMAKE_ROOT}/Modules/Internal/CPack/CPack.NuGet.nuspec.in"
+ "${CPACK_TEMPORARY_DIRECTORY}/CPack.NuGet.nuspec"
+ @ONLY
+ )
+endfunction()
+
+function(_cpack_nuget_make_files_tag)
+ set(_files)
+ foreach(_comp IN LISTS ARGN)
+ string(APPEND _files " <file src=\"${_comp}\\**\" target=\".\" />\n")
+ endforeach()
+ set(_CPACK_NUGET_FILES_TAG "<files>\n${_files} </files>" PARENT_SCOPE)
+endfunction()
+
+find_program(NUGET_EXECUTABLE nuget)
+_cpack_nuget_debug_var(NUGET_EXECUTABLE)
+if(NOT NUGET_EXECUTABLE)
+ message(FATAL_ERROR "NuGet executable not found")
+endif()
+
+# Add details for debug run
+if(CPACK_NUGET_PACKAGE_DEBUG)
+ list(APPEND CPACK_NUGET_PACK_ADDITIONAL_OPTIONS "-Verbosity" "detailed")
+endif()
+
+# Case one: ordinal all-in-one package
+if(CPACK_NUGET_ORDINAL_MONOLITIC)
+ # This variable `CPACK_NUGET_ALL_IN_ONE` set by C++ code:
+ # Meaning to pack all installed files into a single package
+ _cpack_nuget_debug("---[Making an ordinal monolitic package]---")
+ _cpack_nuget_render_spec()
+ execute_process(
+ COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS}
+ WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+ )
+
+elseif(CPACK_NUGET_ALL_IN_ONE)
+ # This variable `CPACK_NUGET_ALL_IN_ONE` set by C++ code:
+ # Meaning to pack all installed components into a single package
+ _cpack_nuget_debug("---[Making a monolitic package from installed components]---")
+
+ # Prepare the `files` element which include files from several components
+ _cpack_nuget_make_files_tag(${CPACK_NUGET_COMPONENTS})
+ _cpack_nuget_render_spec()
+ execute_process(
+ COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS}
+ WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+ )
+
+else()
+ # Is there any grouped component?
+ if(CPACK_NUGET_GROUPS)
+ _cpack_nuget_debug("---[Making grouped component(s) package(s)]---")
+ foreach(_group IN LISTS CPACK_NUGET_GROUPS)
+ _cpack_nuget_debug("Starting to make the package for group `${_group}`")
+ string(MAKE_C_IDENTIFIER "${_group}" _group_up)
+ string(TOUPPER "${_group_up}" _group_up)
+
+ # Render a spec file which includes all components in the current group
+ unset(_CPACK_NUGET_FILES_TAG)
+ _cpack_nuget_make_files_tag(${CPACK_NUGET_${_group_up}_GROUP_COMPONENTS})
+ # Temporary set `CPACK_NUGET_PACKAGE_COMPONENT` to the group name
+ # to properly collect various per group settings
+ set(CPACK_NUGET_PACKAGE_COMPONENT ${_group})
+ _cpack_nuget_render_spec()
+ unset(CPACK_NUGET_PACKAGE_COMPONENT)
+ execute_process(
+ COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS}
+ WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+ )
+ endforeach()
+ endif()
+ # Is there any single component package needed?
+ if(CPACK_NUGET_COMPONENTS)
+ _cpack_nuget_debug("---[Making single-component(s) package(s)]---")
+ foreach(_comp IN LISTS CPACK_NUGET_COMPONENTS)
+ _cpack_nuget_debug("Starting to make the package for component `${_comp}`")
+ # Render a spec file which includes only given component
+ unset(_CPACK_NUGET_FILES_TAG)
+ _cpack_nuget_make_files_tag(${_comp})
+ # Temporary set `CPACK_NUGET_PACKAGE_COMPONENT` to the current
+ # component name to properly collect various per group settings
+ set(CPACK_NUGET_PACKAGE_COMPONENT ${_comp})
+ _cpack_nuget_render_spec()
+ unset(CPACK_NUGET_PACKAGE_COMPONENT)
+ execute_process(
+ COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS}
+ WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+ )
+ endforeach()
+ endif()
+endif()
+
+file(GLOB_RECURSE GEN_CPACK_OUTPUT_FILES "${CPACK_TEMPORARY_DIRECTORY}/*.nupkg")
+if(NOT GEN_CPACK_OUTPUT_FILES)
+ message(FATAL_ERROR "NuGet package was not generated at `${CPACK_TEMPORARY_DIRECTORY}`!")
+endif()
+
+_cpack_nuget_debug("Generated files: ${GEN_CPACK_OUTPUT_FILES}")
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackRPM.cmake b/share/cmake-3.17/Modules/Internal/CPack/CPackRPM.cmake
new file mode 100644
index 0000000..3485e7d
--- /dev/null
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPackRPM.cmake
@@ -0,0 +1,1881 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# Author: Eric Noulard with the help of Alexander Neundorf.
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+
+function(get_file_permissions FILE RETURN_VAR)
+ execute_process(COMMAND ls -l ${FILE}
+ OUTPUT_VARIABLE permissions_
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ string(REPLACE " " ";" permissions_ "${permissions_}")
+ list(GET permissions_ 0 permissions_)
+
+ unset(text_notation_)
+ set(any_chars_ ".")
+ foreach(PERMISSION_TYPE "OWNER" "GROUP" "WORLD")
+ if(permissions_ MATCHES "${any_chars_}r.*")
+ list(APPEND text_notation_ "${PERMISSION_TYPE}_READ")
+ endif()
+ string(APPEND any_chars_ ".")
+ if(permissions_ MATCHES "${any_chars_}w.*")
+ list(APPEND text_notation_ "${PERMISSION_TYPE}_WRITE")
+ endif()
+ string(APPEND any_chars_ ".")
+ if(permissions_ MATCHES "${any_chars_}x.*")
+ list(APPEND text_notation_ "${PERMISSION_TYPE}_EXECUTE")
+ endif()
+ endforeach()
+
+ set(${RETURN_VAR} "${text_notation_}" PARENT_SCOPE)
+endfunction()
+
+function(get_unix_permissions_octal_notation PERMISSIONS_VAR RETURN_VAR)
+ set(PERMISSIONS ${${PERMISSIONS_VAR}})
+ list(LENGTH PERMISSIONS PERM_LEN_PRE)
+ list(REMOVE_DUPLICATES PERMISSIONS)
+ list(LENGTH PERMISSIONS PERM_LEN_POST)
+
+ if(NOT ${PERM_LEN_PRE} EQUAL ${PERM_LEN_POST})
+ message(FATAL_ERROR "${PERMISSIONS_VAR} contains duplicate values.")
+ endif()
+
+ foreach(PERMISSION_TYPE "OWNER" "GROUP" "WORLD")
+ set(${PERMISSION_TYPE}_PERMISSIONS 0)
+
+ foreach(PERMISSION ${PERMISSIONS})
+ if("${PERMISSION}" STREQUAL "${PERMISSION_TYPE}_READ")
+ math(EXPR ${PERMISSION_TYPE}_PERMISSIONS "${${PERMISSION_TYPE}_PERMISSIONS} + 4")
+ elseif("${PERMISSION}" STREQUAL "${PERMISSION_TYPE}_WRITE")
+ math(EXPR ${PERMISSION_TYPE}_PERMISSIONS "${${PERMISSION_TYPE}_PERMISSIONS} + 2")
+ elseif("${PERMISSION}" STREQUAL "${PERMISSION_TYPE}_EXECUTE")
+ math(EXPR ${PERMISSION_TYPE}_PERMISSIONS "${${PERMISSION_TYPE}_PERMISSIONS} + 1")
+ elseif(PERMISSION MATCHES "${PERMISSION_TYPE}.*")
+ message(FATAL_ERROR "${PERMISSIONS_VAR} contains invalid values.")
+ endif()
+ endforeach()
+ endforeach()
+
+ set(${RETURN_VAR} "${OWNER_PERMISSIONS}${GROUP_PERMISSIONS}${WORLD_PERMISSIONS}" PARENT_SCOPE)
+endfunction()
+
+function(cpack_rpm_exact_regex regex_var string)
+ string(REGEX REPLACE "([][+.*()^])" "\\\\\\1" regex "${string}")
+ set("${regex_var}" "${regex}" PARENT_SCOPE)
+endfunction()
+
+function(cpack_rpm_prepare_relocation_paths)
+ # set appropriate prefix, remove possible trailing slash and convert backslashes to slashes
+ if(CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_PREFIX)
+ file(TO_CMAKE_PATH "${CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_PREFIX}" PATH_PREFIX)
+ elseif(CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_PREFIX)
+ file(TO_CMAKE_PATH "${CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_PREFIX}" PATH_PREFIX)
+ else()
+ file(TO_CMAKE_PATH "${CPACK_PACKAGING_INSTALL_PREFIX}" PATH_PREFIX)
+ endif()
+
+ set(RPM_RELOCATION_PATHS "${CPACK_RPM_RELOCATION_PATHS}")
+ list(REMOVE_DUPLICATES RPM_RELOCATION_PATHS)
+
+ # set base path prefix
+ if(EXISTS "${WDIR}/${PATH_PREFIX}")
+ if(NOT CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION AND
+ NOT CPACK_RPM_NO_${CPACK_RPM_PACKAGE_COMPONENT}_INSTALL_PREFIX_RELOCATION AND
+ NOT CPACK_RPM_NO_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_INSTALL_PREFIX_RELOCATION)
+ string(APPEND TMP_RPM_PREFIXES "Prefix: ${PATH_PREFIX}\n")
+ list(APPEND RPM_USED_PACKAGE_PREFIXES "${PATH_PREFIX}")
+
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: removing '${PATH_PREFIX}' from relocation paths")
+ endif()
+ endif()
+ endif()
+
+ # set other path prefixes
+ foreach(RELOCATION_PATH ${RPM_RELOCATION_PATHS})
+ if(IS_ABSOLUTE "${RELOCATION_PATH}")
+ set(PREPARED_RELOCATION_PATH "${RELOCATION_PATH}")
+ elseif(PATH_PREFIX STREQUAL "/")
+ # don't prefix path with a second slash as "//" is treated as network path
+ # by get_filename_component() so it remains in path even inside rpm
+ # package where it may cause problems with relocation
+ set(PREPARED_RELOCATION_PATH "/${RELOCATION_PATH}")
+ else()
+ set(PREPARED_RELOCATION_PATH "${PATH_PREFIX}/${RELOCATION_PATH}")
+ endif()
+
+ # handle cases where path contains extra slashes (e.g. /a//b/ instead of
+ # /a/b)
+ get_filename_component(PREPARED_RELOCATION_PATH
+ "${PREPARED_RELOCATION_PATH}" ABSOLUTE)
+
+ if(EXISTS "${WDIR}/${PREPARED_RELOCATION_PATH}")
+ string(APPEND TMP_RPM_PREFIXES "Prefix: ${PREPARED_RELOCATION_PATH}\n")
+ list(APPEND RPM_USED_PACKAGE_PREFIXES "${PREPARED_RELOCATION_PATH}")
+ endif()
+ endforeach()
+
+ # warn about all the paths that are not relocatable
+ file(GLOB_RECURSE FILE_PATHS_ "${WDIR}/*")
+ foreach(TMP_PATH ${FILE_PATHS_})
+ string(LENGTH "${WDIR}" WDIR_LEN)
+ string(SUBSTRING "${TMP_PATH}" ${WDIR_LEN} -1 TMP_PATH)
+ unset(TMP_PATH_FOUND_)
+
+ foreach(RELOCATION_PATH ${RPM_USED_PACKAGE_PREFIXES})
+ file(RELATIVE_PATH REL_PATH_ "${RELOCATION_PATH}" "${TMP_PATH}")
+ string(SUBSTRING "${REL_PATH_}" 0 2 PREFIX_)
+
+ if(NOT "${PREFIX_}" STREQUAL "..")
+ set(TPM_PATH_FOUND_ TRUE)
+ break()
+ endif()
+ endforeach()
+
+ if(NOT TPM_PATH_FOUND_)
+ message(AUTHOR_WARNING "CPackRPM:Warning: Path ${TMP_PATH} is not on one of the relocatable paths! Package will be partially relocatable.")
+ endif()
+ endforeach()
+
+ set(RPM_USED_PACKAGE_PREFIXES "${RPM_USED_PACKAGE_PREFIXES}" PARENT_SCOPE)
+ set(TMP_RPM_PREFIXES "${TMP_RPM_PREFIXES}" PARENT_SCOPE)
+endfunction()
+
+function(cpack_rpm_prepare_content_list)
+ # get files list
+ file(GLOB_RECURSE CPACK_RPM_INSTALL_FILES LIST_DIRECTORIES true RELATIVE "${WDIR}" "${WDIR}/*")
+ set(CPACK_RPM_INSTALL_FILES "/${CPACK_RPM_INSTALL_FILES}")
+ string(REPLACE ";" ";/" CPACK_RPM_INSTALL_FILES "${CPACK_RPM_INSTALL_FILES}")
+
+ # if we are creating a relocatable package, omit parent directories of
+ # CPACK_RPM_PACKAGE_PREFIX. This is achieved by building a "filter list"
+ # which is passed to the find command that generates the content-list
+ if(CPACK_RPM_PACKAGE_RELOCATABLE)
+ # get a list of the elements in CPACK_RPM_PACKAGE_PREFIXES that are
+ # destinct parent paths of other relocation paths and remove the
+ # final element (so the install-prefix dir itself is not omitted
+ # from the RPM's content-list)
+ list(SORT RPM_USED_PACKAGE_PREFIXES)
+ set(_DISTINCT_PATH "NOT_SET")
+ foreach(_RPM_RELOCATION_PREFIX ${RPM_USED_PACKAGE_PREFIXES})
+ if(NOT "${_RPM_RELOCATION_PREFIX}" MATCHES "${_DISTINCT_PATH}/.*")
+ set(_DISTINCT_PATH "${_RPM_RELOCATION_PREFIX}")
+
+ string(REPLACE "/" ";" _CPACK_RPM_PACKAGE_PREFIX_ELEMS " ${_RPM_RELOCATION_PREFIX}")
+ list(REMOVE_AT _CPACK_RPM_PACKAGE_PREFIX_ELEMS -1)
+ unset(_TMP_LIST)
+ # Now generate all of the parent dirs of the relocation path
+ foreach(_PREFIX_PATH_ELEM ${_CPACK_RPM_PACKAGE_PREFIX_ELEMS})
+ list(APPEND _TMP_LIST "${_PREFIX_PATH_ELEM}")
+ string(REPLACE ";" "/" _OMIT_DIR "${_TMP_LIST}")
+ separate_arguments(_OMIT_DIR)
+ list(APPEND _RPM_DIRS_TO_OMIT ${_OMIT_DIR})
+ endforeach()
+ endif()
+ endforeach()
+ endif()
+
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: Initial list of path to OMIT in RPM: ${_RPM_DIRS_TO_OMIT}")
+ endif()
+
+ if(NOT DEFINED CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST)
+ set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST /etc /etc/init.d /usr /usr/bin
+ /usr/include /usr/lib /usr/libx32 /usr/lib64
+ /usr/share /usr/share/aclocal /usr/share/doc )
+ if(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION)
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: Adding ${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION} to builtin omit list.")
+ endif()
+ list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST "${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION}")
+ endif()
+ endif()
+
+ if(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST)
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST= ${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST}")
+ endif()
+ list(APPEND _RPM_DIRS_TO_OMIT ${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST})
+ endif()
+
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: Final list of path to OMIT in RPM: ${_RPM_DIRS_TO_OMIT}")
+ endif()
+
+ list(REMOVE_ITEM CPACK_RPM_INSTALL_FILES ${_RPM_DIRS_TO_OMIT})
+
+ # add man paths that will be compressed
+ # (copied from /usr/lib/rpm/brp-compress - script that does the actual
+ # compressing)
+ list(APPEND MAN_LOCATIONS "/usr/man/man.*" "/usr/man/.*/man.*" "/usr/info.*"
+ "/usr/share/man/man.*" "/usr/share/man/.*/man.*" "/usr/share/info.*"
+ "/usr/kerberos/man.*" "/usr/X11R6/man/man.*" "/usr/lib/perl5/man/man.*"
+ "/usr/share/doc/.*/man/man.*" "/usr/lib/.*/man/man.*")
+
+ if(CPACK_RPM_ADDITIONAL_MAN_DIRS)
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: CPACK_RPM_ADDITIONAL_MAN_DIRS= ${CPACK_RPM_ADDITIONAL_MAN_DIRS}")
+ endif()
+ list(APPEND MAN_LOCATIONS ${CPACK_RPM_ADDITIONAL_MAN_DIRS})
+ endif()
+
+ foreach(PACK_LOCATION IN LISTS CPACK_RPM_INSTALL_FILES)
+ foreach(MAN_LOCATION IN LISTS MAN_LOCATIONS)
+ # man pages are files inside a certain location
+ if(PACK_LOCATION MATCHES "${MAN_LOCATION}/"
+ AND NOT IS_DIRECTORY "${WDIR}${PACK_LOCATION}"
+ AND NOT IS_SYMLINK "${WDIR}${PACK_LOCATION}")
+ list(FIND CPACK_RPM_INSTALL_FILES "${PACK_LOCATION}" INDEX)
+ # insert file location that covers compressed man pages
+ # even if using a wildcard causes duplicates as those are
+ # handled by RPM and we still keep the same file list
+ # in spec file - wildcard only represents file type (e.g. .gz)
+ list(INSERT CPACK_RPM_INSTALL_FILES ${INDEX} "${PACK_LOCATION}*")
+ # remove file location that doesn't cover compressed man pages
+ math(EXPR INDEX ${INDEX}+1)
+ list(REMOVE_AT CPACK_RPM_INSTALL_FILES ${INDEX})
+
+ break()
+ endif()
+ endforeach()
+ endforeach()
+
+ set(CPACK_RPM_INSTALL_FILES "${CPACK_RPM_INSTALL_FILES}" PARENT_SCOPE)
+endfunction()
+
+function(cpack_rpm_symlink_get_relocation_prefixes LOCATION PACKAGE_PREFIXES RETURN_VARIABLE)
+ foreach(PKG_PREFIX IN LISTS PACKAGE_PREFIXES)
+ string(REGEX MATCH "^${PKG_PREFIX}/.*" FOUND_ "${LOCATION}")
+ if(FOUND_)
+ list(APPEND TMP_PREFIXES "${PKG_PREFIX}")
+ endif()
+ endforeach()
+
+ set(${RETURN_VARIABLE} "${TMP_PREFIXES}" PARENT_SCOPE)
+endfunction()
+
+function(cpack_rpm_symlink_create_relocation_script PACKAGE_PREFIXES)
+ list(LENGTH PACKAGE_PREFIXES LAST_INDEX)
+ set(SORTED_PACKAGE_PREFIXES "${PACKAGE_PREFIXES}")
+ list(SORT SORTED_PACKAGE_PREFIXES)
+ list(REVERSE SORTED_PACKAGE_PREFIXES)
+ math(EXPR LAST_INDEX ${LAST_INDEX}-1)
+
+ foreach(SYMLINK_INDEX RANGE ${LAST_INDEX})
+ list(GET SORTED_PACKAGE_PREFIXES ${SYMLINK_INDEX} SRC_PATH)
+ list(FIND PACKAGE_PREFIXES "${SRC_PATH}" SYMLINK_INDEX) # reverse magic
+ string(LENGTH "${SRC_PATH}" SRC_PATH_LEN)
+
+ set(PARTS_CNT 0)
+ set(SCRIPT_PART "if [ \"$RPM_INSTALL_PREFIX${SYMLINK_INDEX}\" != \"${SRC_PATH}\" ]; then\n")
+
+ # both paths relocated
+ foreach(POINT_INDEX RANGE ${LAST_INDEX})
+ list(GET SORTED_PACKAGE_PREFIXES ${POINT_INDEX} POINT_PATH)
+ list(FIND PACKAGE_PREFIXES "${POINT_PATH}" POINT_INDEX) # reverse magic
+ string(LENGTH "${POINT_PATH}" POINT_PATH_LEN)
+
+ if(_RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_${POINT_INDEX})
+ if("${SYMLINK_INDEX}" EQUAL "${POINT_INDEX}")
+ set(INDENT "")
+ else()
+ string(APPEND SCRIPT_PART " if [ \"$RPM_INSTALL_PREFIX${POINT_INDEX}\" != \"${POINT_PATH}\" ]; then\n")
+ set(INDENT " ")
+ endif()
+
+ foreach(RELOCATION_NO IN LISTS _RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_${POINT_INDEX})
+ math(EXPR PARTS_CNT ${PARTS_CNT}+1)
+
+ math(EXPR RELOCATION_INDEX ${RELOCATION_NO}-1)
+ list(GET _RPM_RELOCATION_SCRIPT_PAIRS ${RELOCATION_INDEX} RELOCATION_SCRIPT_PAIR)
+ string(FIND "${RELOCATION_SCRIPT_PAIR}" ":" SPLIT_INDEX)
+
+ math(EXPR SRC_PATH_END ${SPLIT_INDEX}-${SRC_PATH_LEN})
+ string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} ${SRC_PATH_LEN} ${SRC_PATH_END} SYMLINK_)
+
+ math(EXPR POINT_PATH_START ${SPLIT_INDEX}+1+${POINT_PATH_LEN})
+ string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} ${POINT_PATH_START} -1 POINT_)
+
+ string(APPEND SCRIPT_PART " ${INDENT}if [ -z \"$CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}\" ]; then\n")
+ string(APPEND SCRIPT_PART " ${INDENT}ln -s \"$RPM_INSTALL_PREFIX${POINT_INDEX}${POINT_}\" \"$RPM_INSTALL_PREFIX${SYMLINK_INDEX}${SYMLINK_}\"\n")
+ string(APPEND SCRIPT_PART " ${INDENT}CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}=true\n")
+ string(APPEND SCRIPT_PART " ${INDENT}fi\n")
+ endforeach()
+
+ if(NOT "${SYMLINK_INDEX}" EQUAL "${POINT_INDEX}")
+ string(APPEND SCRIPT_PART " fi\n")
+ endif()
+ endif()
+ endforeach()
+
+ # source path relocated
+ if(_RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_X)
+ foreach(RELOCATION_NO IN LISTS _RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_X)
+ math(EXPR PARTS_CNT ${PARTS_CNT}+1)
+
+ math(EXPR RELOCATION_INDEX ${RELOCATION_NO}-1)
+ list(GET _RPM_RELOCATION_SCRIPT_PAIRS ${RELOCATION_INDEX} RELOCATION_SCRIPT_PAIR)
+ string(FIND "${RELOCATION_SCRIPT_PAIR}" ":" SPLIT_INDEX)
+
+ math(EXPR SRC_PATH_END ${SPLIT_INDEX}-${SRC_PATH_LEN})
+ string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} ${SRC_PATH_LEN} ${SRC_PATH_END} SYMLINK_)
+
+ math(EXPR POINT_PATH_START ${SPLIT_INDEX}+1)
+ string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} ${POINT_PATH_START} -1 POINT_)
+
+ string(APPEND SCRIPT_PART " if [ -z \"$CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}\" ]; then\n")
+ string(APPEND SCRIPT_PART " ln -s \"${POINT_}\" \"$RPM_INSTALL_PREFIX${SYMLINK_INDEX}${SYMLINK_}\"\n")
+ string(APPEND SCRIPT_PART " CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}=true\n")
+ string(APPEND SCRIPT_PART " fi\n")
+ endforeach()
+ endif()
+
+ if(PARTS_CNT)
+ set(SCRIPT "${SCRIPT_PART}")
+ string(APPEND SCRIPT "fi\n")
+ endif()
+ endforeach()
+
+ # point path relocated
+ foreach(POINT_INDEX RANGE ${LAST_INDEX})
+ list(GET SORTED_PACKAGE_PREFIXES ${POINT_INDEX} POINT_PATH)
+ list(FIND PACKAGE_PREFIXES "${POINT_PATH}" POINT_INDEX) # reverse magic
+ string(LENGTH "${POINT_PATH}" POINT_PATH_LEN)
+
+ if(_RPM_RELOCATION_SCRIPT_X_${POINT_INDEX})
+ string(APPEND SCRIPT "if [ \"$RPM_INSTALL_PREFIX${POINT_INDEX}\" != \"${POINT_PATH}\" ]; then\n")
+
+ foreach(RELOCATION_NO IN LISTS _RPM_RELOCATION_SCRIPT_X_${POINT_INDEX})
+ math(EXPR RELOCATION_INDEX ${RELOCATION_NO}-1)
+ list(GET _RPM_RELOCATION_SCRIPT_PAIRS ${RELOCATION_INDEX} RELOCATION_SCRIPT_PAIR)
+ string(FIND "${RELOCATION_SCRIPT_PAIR}" ":" SPLIT_INDEX)
+
+ string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} 0 ${SPLIT_INDEX} SYMLINK_)
+
+ math(EXPR POINT_PATH_START ${SPLIT_INDEX}+1+${POINT_PATH_LEN})
+ string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} ${POINT_PATH_START} -1 POINT_)
+
+ string(APPEND SCRIPT " if [ -z \"$CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}\" ]; then\n")
+ string(APPEND SCRIPT " ln -s \"$RPM_INSTALL_PREFIX${POINT_INDEX}${POINT_}\" \"${SYMLINK_}\"\n")
+ string(APPEND SCRIPT " CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}=true\n")
+ string(APPEND SCRIPT " fi\n")
+ endforeach()
+
+ string(APPEND SCRIPT "fi\n")
+ endif()
+ endforeach()
+
+ # no path relocated
+ if(_RPM_RELOCATION_SCRIPT_X_X)
+ foreach(RELOCATION_NO IN LISTS _RPM_RELOCATION_SCRIPT_X_X)
+ math(EXPR RELOCATION_INDEX ${RELOCATION_NO}-1)
+ list(GET _RPM_RELOCATION_SCRIPT_PAIRS ${RELOCATION_INDEX} RELOCATION_SCRIPT_PAIR)
+ string(FIND "${RELOCATION_SCRIPT_PAIR}" ":" SPLIT_INDEX)
+
+ string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} 0 ${SPLIT_INDEX} SYMLINK_)
+
+ math(EXPR POINT_PATH_START ${SPLIT_INDEX}+1)
+ string(SUBSTRING ${RELOCATION_SCRIPT_PAIR} ${POINT_PATH_START} -1 POINT_)
+
+ string(APPEND SCRIPT "if [ -z \"$CPACK_RPM_RELOCATED_SYMLINK_${RELOCATION_INDEX}\" ]; then\n")
+ string(APPEND SCRIPT " ln -s \"${POINT_}\" \"${SYMLINK_}\"\n")
+ string(APPEND SCRIPT "fi\n")
+ endforeach()
+ endif()
+
+ set(RPM_SYMLINK_POSTINSTALL "${SCRIPT}" PARENT_SCOPE)
+endfunction()
+
+function(cpack_rpm_symlink_add_for_relocation_script PACKAGE_PREFIXES SYMLINK SYMLINK_RELOCATION_PATHS POINT POINT_RELOCATION_PATHS)
+ list(LENGTH SYMLINK_RELOCATION_PATHS SYMLINK_PATHS_COUTN)
+ list(LENGTH POINT_RELOCATION_PATHS POINT_PATHS_COUNT)
+
+ list(APPEND _RPM_RELOCATION_SCRIPT_PAIRS "${SYMLINK}:${POINT}")
+ list(LENGTH _RPM_RELOCATION_SCRIPT_PAIRS PAIR_NO)
+
+ if(SYMLINK_PATHS_COUTN)
+ foreach(SYMLINK_RELOC_PATH IN LISTS SYMLINK_RELOCATION_PATHS)
+ list(FIND PACKAGE_PREFIXES "${SYMLINK_RELOC_PATH}" SYMLINK_INDEX)
+
+ # source path relocated
+ list(APPEND _RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_X "${PAIR_NO}")
+ list(APPEND RELOCATION_VARS "_RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_X")
+
+ foreach(POINT_RELOC_PATH IN LISTS POINT_RELOCATION_PATHS)
+ list(FIND PACKAGE_PREFIXES "${POINT_RELOC_PATH}" POINT_INDEX)
+
+ # both paths relocated
+ list(APPEND _RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_${POINT_INDEX} "${PAIR_NO}")
+ list(APPEND RELOCATION_VARS "_RPM_RELOCATION_SCRIPT_${SYMLINK_INDEX}_${POINT_INDEX}")
+
+ # point path relocated
+ list(APPEND _RPM_RELOCATION_SCRIPT_X_${POINT_INDEX} "${PAIR_NO}")
+ list(APPEND RELOCATION_VARS "_RPM_RELOCATION_SCRIPT_X_${POINT_INDEX}")
+ endforeach()
+ endforeach()
+ elseif(POINT_PATHS_COUNT)
+ foreach(POINT_RELOC_PATH IN LISTS POINT_RELOCATION_PATHS)
+ list(FIND PACKAGE_PREFIXES "${POINT_RELOC_PATH}" POINT_INDEX)
+
+ # point path relocated
+ list(APPEND _RPM_RELOCATION_SCRIPT_X_${POINT_INDEX} "${PAIR_NO}")
+ list(APPEND RELOCATION_VARS "_RPM_RELOCATION_SCRIPT_X_${POINT_INDEX}")
+ endforeach()
+ endif()
+
+ # no path relocated
+ list(APPEND _RPM_RELOCATION_SCRIPT_X_X "${PAIR_NO}")
+ list(APPEND RELOCATION_VARS "_RPM_RELOCATION_SCRIPT_X_X")
+
+ # place variables into parent scope
+ foreach(VAR IN LISTS RELOCATION_VARS)
+ set(${VAR} "${${VAR}}" PARENT_SCOPE)
+ endforeach()
+ set(_RPM_RELOCATION_SCRIPT_PAIRS "${_RPM_RELOCATION_SCRIPT_PAIRS}" PARENT_SCOPE)
+ set(REQUIRES_SYMLINK_RELOCATION_SCRIPT "true" PARENT_SCOPE)
+ set(DIRECTIVE "%ghost " PARENT_SCOPE)
+endfunction()
+
+function(cpack_rpm_prepare_install_files INSTALL_FILES_LIST WDIR PACKAGE_PREFIXES IS_RELOCATABLE)
+ # Prepend directories in ${CPACK_RPM_INSTALL_FILES} with %dir
+ # This is necessary to avoid duplicate files since rpmbuild does
+ # recursion on its own when encountering a pathname which is a directory
+ # which is not flagged as %dir
+ string(STRIP "${INSTALL_FILES_LIST}" INSTALL_FILES_LIST)
+ string(REPLACE "\n" ";" INSTALL_FILES_LIST
+ "${INSTALL_FILES_LIST}")
+ string(REPLACE "\"" "" INSTALL_FILES_LIST
+ "${INSTALL_FILES_LIST}")
+ string(LENGTH "${WDIR}" WDR_LEN_)
+
+ list(SORT INSTALL_FILES_LIST) # make file order consistent on all platforms
+
+ foreach(F IN LISTS INSTALL_FILES_LIST)
+ unset(DIRECTIVE)
+
+ if(IS_SYMLINK "${WDIR}/${F}")
+ if(IS_RELOCATABLE)
+ # check that symlink has relocatable format
+ get_filename_component(SYMLINK_LOCATION_ "${WDIR}/${F}" DIRECTORY)
+ execute_process(COMMAND ls -la "${WDIR}/${F}"
+ WORKING_DIRECTORY "${WDIR}"
+ OUTPUT_VARIABLE SYMLINK_POINT_
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ string(FIND "${SYMLINK_POINT_}" "->" SYMLINK_POINT_INDEX_ REVERSE)
+ math(EXPR SYMLINK_POINT_INDEX_ ${SYMLINK_POINT_INDEX_}+3)
+ string(LENGTH "${SYMLINK_POINT_}" SYMLINK_POINT_LENGTH_)
+
+ # get destination path
+ string(SUBSTRING "${SYMLINK_POINT_}" ${SYMLINK_POINT_INDEX_} ${SYMLINK_POINT_LENGTH_} SYMLINK_POINT_)
+
+ # check if path is relative or absolute
+ string(SUBSTRING "${SYMLINK_POINT_}" 0 1 SYMLINK_IS_ABSOLUTE_)
+
+ if(${SYMLINK_IS_ABSOLUTE_} STREQUAL "/")
+ # prevent absolute paths from having /../ or /./ section inside of them
+ get_filename_component(SYMLINK_POINT_ "${SYMLINK_POINT_}" ABSOLUTE)
+ else()
+ # handle relative path
+ get_filename_component(SYMLINK_POINT_ "${SYMLINK_LOCATION_}/${SYMLINK_POINT_}" ABSOLUTE)
+ endif()
+
+ # recalculate path length after conversion to canonical form
+ string(LENGTH "${SYMLINK_POINT_}" SYMLINK_POINT_LENGTH_)
+
+ cpack_rpm_exact_regex(IN_SYMLINK_POINT_REGEX "${WDIR}")
+ string(APPEND IN_SYMLINK_POINT_REGEX "/.*")
+ if(SYMLINK_POINT_ MATCHES "${IN_SYMLINK_POINT_REGEX}")
+ # only symlinks that are pointing inside the packaging structure should be checked for relocation
+ string(SUBSTRING "${SYMLINK_POINT_}" ${WDR_LEN_} -1 SYMLINK_POINT_WD_)
+ cpack_rpm_symlink_get_relocation_prefixes("${F}" "${PACKAGE_PREFIXES}" "SYMLINK_RELOCATIONS")
+ cpack_rpm_symlink_get_relocation_prefixes("${SYMLINK_POINT_WD_}" "${PACKAGE_PREFIXES}" "POINT_RELOCATIONS")
+
+ list(LENGTH SYMLINK_RELOCATIONS SYMLINK_RELOCATIONS_COUNT)
+ list(LENGTH POINT_RELOCATIONS POINT_RELOCATIONS_COUNT)
+ else()
+ # location pointed to is outside WDR so it should be treated as a permanent symlink
+ set(SYMLINK_POINT_WD_ "${SYMLINK_POINT_}")
+
+ unset(SYMLINK_RELOCATIONS)
+ unset(POINT_RELOCATIONS)
+ unset(SYMLINK_RELOCATIONS_COUNT)
+ unset(POINT_RELOCATIONS_COUNT)
+
+ message(AUTHOR_WARNING "CPackRPM:Warning: Symbolic link '${F}' points to location that is outside packaging path! Link will possibly not be relocatable.")
+ endif()
+
+ if(SYMLINK_RELOCATIONS_COUNT AND POINT_RELOCATIONS_COUNT)
+ # find matching
+ foreach(SYMLINK_RELOCATION_PREFIX IN LISTS SYMLINK_RELOCATIONS)
+ list(FIND POINT_RELOCATIONS "${SYMLINK_RELOCATION_PREFIX}" FOUND_INDEX)
+ if(NOT ${FOUND_INDEX} EQUAL -1)
+ break()
+ endif()
+ endforeach()
+
+ if(NOT ${FOUND_INDEX} EQUAL -1)
+ # symlinks have the same subpath
+ if(${SYMLINK_RELOCATIONS_COUNT} EQUAL 1 AND ${POINT_RELOCATIONS_COUNT} EQUAL 1)
+ # permanent symlink
+ get_filename_component(SYMLINK_LOCATION_ "${F}" DIRECTORY)
+ file(RELATIVE_PATH FINAL_PATH_ ${SYMLINK_LOCATION_} ${SYMLINK_POINT_WD_})
+ execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink "${FINAL_PATH_}" "${WDIR}/${F}")
+ else()
+ # relocation subpaths
+ cpack_rpm_symlink_add_for_relocation_script("${PACKAGE_PREFIXES}" "${F}" "${SYMLINK_RELOCATIONS}"
+ "${SYMLINK_POINT_WD_}" "${POINT_RELOCATIONS}")
+ endif()
+ else()
+ # not on the same relocation path
+ cpack_rpm_symlink_add_for_relocation_script("${PACKAGE_PREFIXES}" "${F}" "${SYMLINK_RELOCATIONS}"
+ "${SYMLINK_POINT_WD_}" "${POINT_RELOCATIONS}")
+ endif()
+ elseif(POINT_RELOCATIONS_COUNT)
+ # point is relocatable
+ cpack_rpm_symlink_add_for_relocation_script("${PACKAGE_PREFIXES}" "${F}" "${SYMLINK_RELOCATIONS}"
+ "${SYMLINK_POINT_WD_}" "${POINT_RELOCATIONS}")
+ else()
+ # is not relocatable or points to non relocatable path - permanent symlink
+ execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink "${SYMLINK_POINT_WD_}" "${WDIR}/${F}")
+ endif()
+ endif()
+ elseif(IS_DIRECTORY "${WDIR}/${F}")
+ set(DIRECTIVE "%dir ")
+ endif()
+
+ string(APPEND INSTALL_FILES "${DIRECTIVE}\"${F}\"\n")
+ endforeach()
+
+ if(REQUIRES_SYMLINK_RELOCATION_SCRIPT)
+ cpack_rpm_symlink_create_relocation_script("${PACKAGE_PREFIXES}")
+ endif()
+
+ set(RPM_SYMLINK_POSTINSTALL "${RPM_SYMLINK_POSTINSTALL}" PARENT_SCOPE)
+ set(CPACK_RPM_INSTALL_FILES "${INSTALL_FILES}" PARENT_SCOPE)
+endfunction()
+
+if(CMAKE_BINARY_DIR)
+ message(FATAL_ERROR "CPackRPM.cmake may only be used by CPack internally.")
+endif()
+
+if(NOT UNIX)
+ message(FATAL_ERROR "CPackRPM.cmake may only be used under UNIX.")
+endif()
+
+# We need to check if the binaries were compiled with debug symbols
+# because without them the package will be useless
+function(cpack_rpm_debugsymbol_check INSTALL_FILES WORKING_DIR)
+ if(NOT CPACK_BUILD_SOURCE_DIRS)
+ message(FATAL_ERROR "CPackRPM: CPACK_BUILD_SOURCE_DIRS variable is not set!"
+ " Required for debuginfo packaging. See documentation of"
+ " CPACK_RPM_DEBUGINFO_PACKAGE variable for details.")
+ endif()
+
+ # With objdump we should check the debug symbols
+ find_program(OBJDUMP_EXECUTABLE objdump)
+ if(NOT OBJDUMP_EXECUTABLE)
+ message(FATAL_ERROR "CPackRPM: objdump binary could not be found!"
+ " Required for debuginfo packaging. See documentation of"
+ " CPACK_RPM_DEBUGINFO_PACKAGE variable for details.")
+ endif()
+
+ # With debugedit we prepare source files list
+ find_program(DEBUGEDIT_EXECUTABLE debugedit "/usr/lib/rpm/")
+ if(NOT DEBUGEDIT_EXECUTABLE)
+ message(FATAL_ERROR "CPackRPM: debugedit binary could not be found!"
+ " Required for debuginfo packaging. See documentation of"
+ " CPACK_RPM_DEBUGINFO_PACKAGE variable for details.")
+ endif()
+
+ unset(mkdir_list_)
+ unset(cp_list_)
+ unset(additional_sources_)
+
+ foreach(F IN LISTS INSTALL_FILES)
+ if(IS_DIRECTORY "${WORKING_DIR}/${F}" OR IS_SYMLINK "${WORKING_DIR}/${F}")
+ continue()
+ endif()
+
+ execute_process(COMMAND "${OBJDUMP_EXECUTABLE}" -h ${WORKING_DIR}/${F}
+ WORKING_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}"
+ RESULT_VARIABLE OBJDUMP_EXEC_RESULT
+ OUTPUT_VARIABLE OBJDUMP_OUT
+ ERROR_QUIET)
+ # Check if the given file is an executable or not
+ if(NOT OBJDUMP_EXEC_RESULT)
+ string(FIND "${OBJDUMP_OUT}" "debug" FIND_RESULT)
+ if(FIND_RESULT GREATER -1)
+ set(index_ 0)
+ foreach(source_dir_ IN LISTS CPACK_BUILD_SOURCE_DIRS)
+ string(LENGTH "${source_dir_}" source_dir_len_)
+ string(LENGTH "${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}" debuginfo_dir_len)
+ if(source_dir_len_ LESS debuginfo_dir_len)
+ message(FATAL_ERROR "CPackRPM: source dir path '${source_dir_}' is"
+ " shorter than debuginfo sources dir path '${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}'!"
+ " Source dir path must be longer than debuginfo sources dir path."
+ " Set CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX variable to a shorter value"
+ " or make source dir path longer."
+ " Required for debuginfo packaging. See documentation of"
+ " CPACK_RPM_DEBUGINFO_PACKAGE variable for details.")
+ endif()
+
+ file(REMOVE "${CPACK_RPM_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}/debugsources_add.list")
+ execute_process(COMMAND "${DEBUGEDIT_EXECUTABLE}" -b "${source_dir_}" -d "${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}" -i -l "${CPACK_RPM_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}/debugsources_add.list" "${WORKING_DIR}/${F}"
+ RESULT_VARIABLE res_
+ OUTPUT_VARIABLE opt_
+ ERROR_VARIABLE err_
+ )
+
+ file(STRINGS
+ "${CPACK_RPM_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}/debugsources_add.list"
+ sources_)
+ list(REMOVE_DUPLICATES sources_)
+
+ foreach(source_ IN LISTS sources_)
+ if(EXISTS "${source_dir_}/${source_}" AND NOT IS_DIRECTORY "${source_dir_}/${source_}")
+ get_filename_component(path_part_ "${source_}" DIRECTORY)
+ list(APPEND mkdir_list_ "%{buildroot}${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}/${path_part_}")
+ list(APPEND cp_list_ "cp \"${source_dir_}/${source_}\" \"%{buildroot}${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}/${path_part_}\"")
+
+ list(APPEND additional_sources_ "${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}/${source_}")
+ endif()
+ endforeach()
+
+ math(EXPR index_ "${index_} + 1")
+ endforeach()
+ else()
+ message(WARNING "CPackRPM: File: ${F} does not contain debug symbols. They will possibly be missing from debuginfo package!")
+ endif()
+
+ get_file_permissions("${WORKING_DIR}/${F}" permissions_)
+ if(NOT "USER_EXECUTE" IN_LIST permissions_ AND
+ NOT "GROUP_EXECUTE" IN_LIST permissions_ AND
+ NOT "WORLD_EXECUTE" IN_LIST permissions_)
+ if(CPACK_RPM_INSTALL_WITH_EXEC)
+ execute_process(COMMAND chmod a+x ${WORKING_DIR}/${F}
+ RESULT_VARIABLE res_
+ ERROR_VARIABLE err_
+ OUTPUT_QUIET)
+
+ if(res_)
+ message(FATAL_ERROR "CPackRPM: could not apply execute permissions "
+ "requested by CPACK_RPM_INSTALL_WITH_EXEC variable on "
+ "'${WORKING_DIR}/${F}'! Reason: '${err_}'")
+ endif()
+ else()
+ message(AUTHOR_WARNING "CPackRPM: File: ${WORKING_DIR}/${F} does not "
+ "have execute permissions. Debuginfo symbols will not be extracted"
+ "! Missing debuginfo may cause packaging failure. Consider setting "
+ "execute permissions or setting 'CPACK_RPM_INSTALL_WITH_EXEC' "
+ "variable.")
+ endif()
+ endif()
+ endif()
+ endforeach()
+
+ list(LENGTH mkdir_list_ len_)
+ if(len_)
+ list(REMOVE_DUPLICATES mkdir_list_)
+ unset(TMP_RPM_DEBUGINFO_INSTALL)
+ foreach(part_ IN LISTS mkdir_list_)
+ string(APPEND TMP_RPM_DEBUGINFO_INSTALL "mkdir -p \"${part_}\"\n")
+ endforeach()
+ endif()
+
+ list(LENGTH cp_list_ len_)
+ if(len_)
+ list(REMOVE_DUPLICATES cp_list_)
+ foreach(part_ IN LISTS cp_list_)
+ string(APPEND TMP_RPM_DEBUGINFO_INSTALL "${part_}\n")
+ endforeach()
+ endif()
+
+ if(NOT DEFINED CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS)
+ set(CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS /usr /usr/src /usr/src/debug)
+ if(CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION)
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: Adding ${CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION} to builtin omit list.")
+ endif()
+ list(APPEND CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS "${CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION}")
+ endif()
+ endif()
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS= ${CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS}")
+ endif()
+
+ list(LENGTH additional_sources_ len_)
+ if(len_)
+ list(REMOVE_DUPLICATES additional_sources_)
+ unset(additional_sources_all_)
+ foreach(source_ IN LISTS additional_sources_)
+ string(REPLACE "/" ";" split_source_ " ${source_}")
+ list(REMOVE_AT split_source_ 0)
+ unset(tmp_path_)
+ # Now generate all segments of the path
+ foreach(segment_ IN LISTS split_source_)
+ string(APPEND tmp_path_ "/${segment_}")
+ list(APPEND additional_sources_all_ "${tmp_path_}")
+ endforeach()
+ endforeach()
+
+ list(REMOVE_DUPLICATES additional_sources_all_)
+ list(REMOVE_ITEM additional_sources_all_
+ ${CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS})
+
+ unset(TMP_DEBUGINFO_ADDITIONAL_SOURCES)
+ foreach(source_ IN LISTS additional_sources_all_)
+ string(APPEND TMP_DEBUGINFO_ADDITIONAL_SOURCES "${source_}\n")
+ endforeach()
+ endif()
+
+ set(TMP_RPM_DEBUGINFO_INSTALL "${TMP_RPM_DEBUGINFO_INSTALL}" PARENT_SCOPE)
+ set(TMP_DEBUGINFO_ADDITIONAL_SOURCES "${TMP_DEBUGINFO_ADDITIONAL_SOURCES}"
+ PARENT_SCOPE)
+endfunction()
+
+function(cpack_rpm_variable_fallback OUTPUT_VAR_NAME)
+ set(FALLBACK_VAR_NAMES ${ARGN})
+
+ foreach(variable_name IN LISTS FALLBACK_VAR_NAMES)
+ if(${variable_name})
+ set(${OUTPUT_VAR_NAME} "${${variable_name}}" PARENT_SCOPE)
+ break()
+ endif()
+ endforeach()
+endfunction()
+
+function(cpack_rpm_generate_package)
+ # rpmbuild is the basic command for building RPM package
+ # it may be a simple (symbolic) link to rpm command.
+ find_program(RPMBUILD_EXECUTABLE rpmbuild)
+
+ # Check version of the rpmbuild tool this would be easier to
+ # track bugs with users and CPackRPM debug mode.
+ # We may use RPM version in order to check for available version dependent features
+ if(RPMBUILD_EXECUTABLE)
+ execute_process(COMMAND ${RPMBUILD_EXECUTABLE} --version
+ OUTPUT_VARIABLE _TMP_VERSION
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REGEX REPLACE "^.* " ""
+ RPMBUILD_EXECUTABLE_VERSION
+ ${_TMP_VERSION})
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: rpmbuild version is <${RPMBUILD_EXECUTABLE_VERSION}>")
+ endif()
+ endif()
+
+ if(NOT RPMBUILD_EXECUTABLE)
+ message(FATAL_ERROR "RPM package requires rpmbuild executable")
+ endif()
+
+ # Display lsb_release output if DEBUG mode enable
+ # This will help to diagnose problem with CPackRPM
+ # because we will know on which kind of Linux we are
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ find_program(LSB_RELEASE_EXECUTABLE lsb_release)
+ if(LSB_RELEASE_EXECUTABLE)
+ execute_process(COMMAND ${LSB_RELEASE_EXECUTABLE} -a
+ OUTPUT_VARIABLE _TMP_LSB_RELEASE_OUTPUT
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REGEX REPLACE "\n" ", "
+ LSB_RELEASE_OUTPUT
+ ${_TMP_LSB_RELEASE_OUTPUT})
+ else ()
+ set(LSB_RELEASE_OUTPUT "lsb_release not installed/found!")
+ endif()
+ message("CPackRPM:Debug: LSB_RELEASE = ${LSB_RELEASE_OUTPUT}")
+ endif()
+
+ # We may use RPM version in the future in order
+ # to shut down warning about space in buildtree
+ # some recent RPM version should support space in different places.
+ # not checked [yet].
+ if(CPACK_TOPLEVEL_DIRECTORY MATCHES ".* .*")
+ message(FATAL_ERROR "${RPMBUILD_EXECUTABLE} can't handle paths with spaces, use a build directory without spaces for building RPMs.")
+ endif()
+
+ # If rpmbuild is found
+ # we try to discover alien since we may be on non RPM distro like Debian.
+ # In this case we may try to to use more advanced features
+ # like generating RPM directly from DEB using alien.
+ # FIXME feature not finished (yet)
+ find_program(ALIEN_EXECUTABLE alien)
+ if(ALIEN_EXECUTABLE)
+ message(STATUS "alien found, we may be on a Debian based distro.")
+ endif()
+
+ # Are we packaging components ?
+ if(CPACK_RPM_PACKAGE_COMPONENT)
+ string(TOUPPER ${CPACK_RPM_PACKAGE_COMPONENT} CPACK_RPM_PACKAGE_COMPONENT_UPPER)
+ endif()
+
+ set(WDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}")
+
+ #
+ # Use user-defined RPM specific variables value
+ # or generate reasonable default value from
+ # CPACK_xxx generic values.
+ # The variables comes from the needed (mandatory or not)
+ # values found in the RPM specification file aka ".spec" file.
+ # The variables which may/should be defined are:
+ #
+
+ # CPACK_RPM_PACKAGE_SUMMARY (mandatory)
+
+ if(CPACK_RPM_PACKAGE_COMPONENT)
+ cpack_rpm_variable_fallback("CPACK_RPM_PACKAGE_SUMMARY"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_SUMMARY"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_SUMMARY")
+ endif()
+
+ if(NOT CPACK_RPM_PACKAGE_SUMMARY)
+ if(CPACK_PACKAGE_DESCRIPTION_SUMMARY)
+ set(CPACK_RPM_PACKAGE_SUMMARY ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
+ else()
+ # if neither var is defined lets use the name as summary
+ string(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_RPM_PACKAGE_SUMMARY)
+ endif()
+ endif()
+
+ if(NOT CPACK_RPM_PACKAGE_URL AND CPACK_PACKAGE_HOMEPAGE_URL)
+ set(CPACK_RPM_PACKAGE_URL "${CPACK_PACKAGE_HOMEPAGE_URL}")
+ endif()
+
+ # CPACK_RPM_PACKAGE_NAME (mandatory)
+ if(NOT CPACK_RPM_PACKAGE_NAME)
+ string(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_RPM_PACKAGE_NAME)
+ endif()
+
+ if(CPACK_RPM_PACKAGE_COMPONENT)
+ string(TOUPPER "${CPACK_RPM_MAIN_COMPONENT}"
+ CPACK_RPM_MAIN_COMPONENT_UPPER)
+
+ if(NOT CPACK_RPM_MAIN_COMPONENT_UPPER STREQUAL CPACK_RPM_PACKAGE_COMPONENT_UPPER)
+ string(APPEND CPACK_RPM_PACKAGE_NAME "-${CPACK_RPM_PACKAGE_COMPONENT}")
+
+ cpack_rpm_variable_fallback("CPACK_RPM_PACKAGE_NAME"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_NAME"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_NAME")
+ endif()
+ endif()
+
+ # CPACK_RPM_PACKAGE_VERSION (mandatory)
+ if(NOT CPACK_RPM_PACKAGE_VERSION)
+ if(NOT CPACK_PACKAGE_VERSION)
+ message(FATAL_ERROR "RPM package requires a package version")
+ endif()
+ set(CPACK_RPM_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
+ endif()
+ # Replace '-' in version with '_'
+ # '-' character is an Illegal RPM version character
+ # it is illegal because it is used to separate
+ # RPM "Version" from RPM "Release"
+ string(REPLACE "-" "_" CPACK_RPM_PACKAGE_VERSION ${CPACK_RPM_PACKAGE_VERSION})
+
+ # CPACK_RPM_PACKAGE_ARCHITECTURE (mandatory)
+ if(NOT CPACK_RPM_PACKAGE_ARCHITECTURE)
+ execute_process(COMMAND uname "-m"
+ OUTPUT_VARIABLE CPACK_RPM_PACKAGE_ARCHITECTURE
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ else()
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: using user-specified build arch = ${CPACK_RPM_PACKAGE_ARCHITECTURE}")
+ endif()
+ endif()
+
+ if(CPACK_RPM_PACKAGE_COMPONENT)
+ cpack_rpm_variable_fallback("CPACK_RPM_PACKAGE_ARCHITECTURE"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_ARCHITECTURE"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_ARCHITECTURE")
+
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: using component build arch = ${CPACK_RPM_PACKAGE_ARCHITECTURE}")
+ endif()
+ endif()
+
+ if(${CPACK_RPM_PACKAGE_ARCHITECTURE} STREQUAL "noarch")
+ set(TMP_RPM_BUILDARCH "Buildarch: ${CPACK_RPM_PACKAGE_ARCHITECTURE}")
+ else()
+ set(TMP_RPM_BUILDARCH "")
+ endif()
+
+ # CPACK_RPM_PACKAGE_RELEASE
+ # The RPM release is the numbering of the RPM package ITSELF
+ # this is the version of the PACKAGING and NOT the version
+ # of the CONTENT of the package.
+ # You may well need to generate a new RPM package release
+ # without changing the version of the packaged software.
+ # This is the case when the packaging is buggy (not) the software :=)
+ # If not set, 1 is a good candidate
+ if(NOT CPACK_RPM_PACKAGE_RELEASE)
+ set(CPACK_RPM_PACKAGE_RELEASE "1")
+ endif()
+
+ if(CPACK_RPM_PACKAGE_RELEASE_DIST)
+ string(APPEND CPACK_RPM_PACKAGE_RELEASE "%{?dist}")
+ endif()
+
+ # CPACK_RPM_PACKAGE_LICENSE
+ if(NOT CPACK_RPM_PACKAGE_LICENSE)
+ set(CPACK_RPM_PACKAGE_LICENSE "unknown")
+ endif()
+
+ # CPACK_RPM_PACKAGE_GROUP
+ if(CPACK_RPM_PACKAGE_COMPONENT)
+ cpack_rpm_variable_fallback("CPACK_RPM_PACKAGE_GROUP"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_GROUP"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_GROUP")
+ endif()
+
+ if(NOT CPACK_RPM_PACKAGE_GROUP)
+ set(CPACK_RPM_PACKAGE_GROUP "unknown")
+ endif()
+
+ # CPACK_RPM_PACKAGE_VENDOR
+ if(NOT CPACK_RPM_PACKAGE_VENDOR)
+ if(CPACK_PACKAGE_VENDOR)
+ set(CPACK_RPM_PACKAGE_VENDOR "${CPACK_PACKAGE_VENDOR}")
+ else()
+ set(CPACK_RPM_PACKAGE_VENDOR "unknown")
+ endif()
+ endif()
+
+ # CPACK_RPM_PACKAGE_SOURCE
+ # The name of the source tarball in case we generate a source RPM
+
+ # CPACK_RPM_PACKAGE_DESCRIPTION
+ # The variable content may be either
+ # - explicitly given by the user or
+ # - filled with the content of CPACK_PACKAGE_DESCRIPTION_FILE
+ # if it is defined
+ # - set to a default value
+ #
+
+ if(CPACK_RPM_PACKAGE_COMPONENT)
+ cpack_rpm_variable_fallback("CPACK_RPM_PACKAGE_DESCRIPTION"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_DESCRIPTION"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_DESCRIPTION"
+ "CPACK_COMPONENT_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DESCRIPTION")
+ endif()
+
+ if(NOT CPACK_RPM_PACKAGE_DESCRIPTION)
+ if(CPACK_PACKAGE_DESCRIPTION_FILE)
+ file(READ ${CPACK_PACKAGE_DESCRIPTION_FILE} CPACK_RPM_PACKAGE_DESCRIPTION)
+ else ()
+ set(CPACK_RPM_PACKAGE_DESCRIPTION "no package description available")
+ endif ()
+ endif ()
+
+ # CPACK_RPM_COMPRESSION_TYPE
+ #
+ if (CPACK_RPM_COMPRESSION_TYPE)
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: User Specified RPM compression type: ${CPACK_RPM_COMPRESSION_TYPE}")
+ endif()
+ if(CPACK_RPM_COMPRESSION_TYPE STREQUAL "lzma")
+ set(CPACK_RPM_COMPRESSION_TYPE_TMP "%define _binary_payload w9.lzdio")
+ endif()
+ if(CPACK_RPM_COMPRESSION_TYPE STREQUAL "xz")
+ set(CPACK_RPM_COMPRESSION_TYPE_TMP "%define _binary_payload w7.xzdio")
+ endif()
+ if(CPACK_RPM_COMPRESSION_TYPE STREQUAL "bzip2")
+ set(CPACK_RPM_COMPRESSION_TYPE_TMP "%define _binary_payload w9.bzdio")
+ endif()
+ if(CPACK_RPM_COMPRESSION_TYPE STREQUAL "gzip")
+ set(CPACK_RPM_COMPRESSION_TYPE_TMP "%define _binary_payload w9.gzdio")
+ endif()
+ else()
+ set(CPACK_RPM_COMPRESSION_TYPE_TMP "")
+ endif()
+
+ if(NOT CPACK_RPM_PACKAGE_SOURCES)
+ if(CPACK_PACKAGE_RELOCATABLE OR CPACK_RPM_PACKAGE_RELOCATABLE)
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: Trying to build a relocatable package")
+ endif()
+ if(CPACK_SET_DESTDIR AND (NOT CPACK_SET_DESTDIR STREQUAL "I_ON"))
+ message("CPackRPM:Warning: CPACK_SET_DESTDIR is set (=${CPACK_SET_DESTDIR}) while requesting a relocatable package (CPACK_RPM_PACKAGE_RELOCATABLE is set): this is not supported, the package won't be relocatable.")
+ set(CPACK_RPM_PACKAGE_RELOCATABLE FALSE)
+ else()
+ set(CPACK_RPM_PACKAGE_PREFIX ${CPACK_PACKAGING_INSTALL_PREFIX}) # kept for back compatibility (provided external RPM spec files)
+ cpack_rpm_prepare_relocation_paths()
+ set(CPACK_RPM_PACKAGE_RELOCATABLE TRUE)
+ endif()
+ endif()
+ else()
+ if(CPACK_RPM_PACKAGE_COMPONENT)
+ message(FATAL_ERROR "CPACK_RPM_PACKAGE_SOURCES parameter can not be used"
+ " in combination with CPACK_RPM_PACKAGE_COMPONENT parameter!")
+ endif()
+
+ set(CPACK_RPM_PACKAGE_RELOCATABLE FALSE) # disable relocatable option if building source RPM
+ endif()
+
+ execute_process(
+ COMMAND "${RPMBUILD_EXECUTABLE}" --querytags
+ OUTPUT_VARIABLE RPMBUILD_TAG_LIST
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REPLACE "\n" ";" RPMBUILD_TAG_LIST "${RPMBUILD_TAG_LIST}")
+
+ if(CPACK_RPM_PACKAGE_EPOCH)
+ set(TMP_RPM_EPOCH "Epoch: ${CPACK_RPM_PACKAGE_EPOCH}")
+ endif()
+
+ # Check if additional fields for RPM spec header are given
+ # There may be some COMPONENT specific variables as well
+ # If component specific var is not provided we use the global one
+ # for each component
+ foreach(_RPM_SPEC_HEADER URL REQUIRES SUGGESTS PROVIDES OBSOLETES PREFIX CONFLICTS AUTOPROV AUTOREQ AUTOREQPROV REQUIRES_PRE REQUIRES_POST REQUIRES_PREUN REQUIRES_POSTUN)
+
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: processing ${_RPM_SPEC_HEADER}")
+ endif()
+
+ if(CPACK_RPM_PACKAGE_COMPONENT)
+ cpack_rpm_variable_fallback("CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_${_RPM_SPEC_HEADER}"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_PACKAGE_${_RPM_SPEC_HEADER}")
+ endif()
+
+ if(DEFINED CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER})
+ # Prefix can be replaced by Prefixes but the old version still works so we'll ignore it for now
+ # Requires* is a special case because it gets transformed to Requires(pre/post/preun/postun)
+ # Auto* is a special case because the tags can not be queried by querytags rpmbuild flag
+ set(special_case_tags_ PREFIX REQUIRES_PRE REQUIRES_POST REQUIRES_PREUN REQUIRES_POSTUN AUTOPROV AUTOREQ AUTOREQPROV)
+ if(NOT _RPM_SPEC_HEADER IN_LIST RPMBUILD_TAG_LIST AND NOT _RPM_SPEC_HEADER IN_LIST special_case_tags_)
+ message(AUTHOR_WARNING "CPackRPM:Warning: ${_RPM_SPEC_HEADER} not "
+ "supported in provided rpmbuild. Tag will not be used.")
+ continue()
+ endif()
+
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: using CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}")
+ endif()
+
+ set(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP ${CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}})
+ endif()
+
+ # Treat the RPM Spec keyword iff it has been properly defined
+ if(DEFINED CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP)
+ # Transform NAME --> Name e.g. PROVIDES --> Provides
+ # The Upper-case first letter and lowercase tail is the
+ # appropriate value required in the final RPM spec file.
+ string(SUBSTRING ${_RPM_SPEC_HEADER} 1 -1 _PACKAGE_HEADER_TAIL)
+ string(TOLOWER "${_PACKAGE_HEADER_TAIL}" _PACKAGE_HEADER_TAIL)
+ string(SUBSTRING ${_RPM_SPEC_HEADER} 0 1 _PACKAGE_HEADER_NAME)
+ string(APPEND _PACKAGE_HEADER_NAME "${_PACKAGE_HEADER_TAIL}")
+ # The following keywords require parentheses around the "pre" or "post" suffix in the final RPM spec file.
+ set(SCRIPTS_REQUIREMENTS_LIST REQUIRES_PRE REQUIRES_POST REQUIRES_PREUN REQUIRES_POSTUN)
+ list(FIND SCRIPTS_REQUIREMENTS_LIST ${_RPM_SPEC_HEADER} IS_SCRIPTS_REQUIREMENT_FOUND)
+ if(NOT ${IS_SCRIPTS_REQUIREMENT_FOUND} EQUAL -1)
+ string(REPLACE "_" "(" _PACKAGE_HEADER_NAME "${_PACKAGE_HEADER_NAME}")
+ string(APPEND _PACKAGE_HEADER_NAME ")")
+ endif()
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: User defined ${_PACKAGE_HEADER_NAME}:\n ${CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP}")
+ endif()
+ set(TMP_RPM_${_RPM_SPEC_HEADER} "${_PACKAGE_HEADER_NAME}: ${CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP}")
+ unset(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP)
+ endif()
+ endforeach()
+
+ # CPACK_RPM_SPEC_INSTALL_POST
+ # May be used to define a RPM post intallation script
+ # for example setting it to "/bin/true" may prevent
+ # rpmbuild from stripping binaries.
+ if(CPACK_RPM_SPEC_INSTALL_POST)
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: User defined CPACK_RPM_SPEC_INSTALL_POST = ${CPACK_RPM_SPEC_INSTALL_POST}")
+ endif()
+ set(TMP_RPM_SPEC_INSTALL_POST "%define __spec_install_post ${CPACK_RPM_SPEC_INSTALL_POST}")
+ endif()
+
+ # CPACK_RPM_POST_INSTALL_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_POST_INSTALL_SCRIPT_FILE)
+ # CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_POST_UNINSTALL_SCRIPT_FILE)
+ # May be used to embed a post (un)installation script in the spec file.
+ # The referred script file(s) will be read and directly
+ # put after the %post or %postun section
+ # ----------------------------------------------------------------
+ # CPACK_RPM_PRE_INSTALL_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_PRE_INSTALL_SCRIPT_FILE)
+ # CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_PRE_UNINSTALL_SCRIPT_FILE)
+ # May be used to embed a pre (un)installation script in the spec file.
+ # The referred script file(s) will be read and directly
+ # put after the %pre or %preun section
+ foreach(RPM_SCRIPT_FILE_TYPE_ "INSTALL" "UNINSTALL")
+ foreach(RPM_SCRIPT_FILE_TIME_ "PRE" "POST")
+ set("CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_READ_FILE"
+ "${CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_SCRIPT_FILE}")
+
+ if(CPACK_RPM_PACKAGE_COMPONENT)
+ cpack_rpm_variable_fallback("CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_READ_FILE"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_SCRIPT_FILE"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_SCRIPT_FILE")
+ endif()
+
+ # Handle file if it has been specified
+ if(CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_READ_FILE)
+ if(EXISTS ${CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_READ_FILE})
+ file(READ ${CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_READ_FILE}
+ "CPACK_RPM_SPEC_${RPM_SCRIPT_FILE_TIME_}${RPM_SCRIPT_FILE_TYPE_}")
+ else()
+ message("CPackRPM:Warning: CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_SCRIPT_FILE <${CPACK_RPM_${RPM_SCRIPT_FILE_TIME_}_${RPM_SCRIPT_FILE_TYPE_}_READ_FILE}> does not exists - ignoring")
+ endif()
+ else()
+ # reset SPEC var value if no file has been specified
+ # (either globally or component-wise)
+ set("CPACK_RPM_SPEC_${RPM_SCRIPT_FILE_TIME_}${RPM_SCRIPT_FILE_TYPE_}" "")
+ endif()
+ endforeach()
+ endforeach()
+
+ # CPACK_RPM_CHANGELOG_FILE
+ # May be used to embed a changelog in the spec file.
+ # The referred file will be read and directly put after the %changelog section
+ if(CPACK_RPM_CHANGELOG_FILE)
+ if(EXISTS ${CPACK_RPM_CHANGELOG_FILE})
+ file(READ ${CPACK_RPM_CHANGELOG_FILE} CPACK_RPM_SPEC_CHANGELOG)
+ else()
+ message(SEND_ERROR "CPackRPM:Warning: CPACK_RPM_CHANGELOG_FILE <${CPACK_RPM_CHANGELOG_FILE}> does not exists - ignoring")
+ endif()
+ else()
+ set(CPACK_RPM_SPEC_CHANGELOG "* Sun Jul 4 2010 Eric Noulard <eric.noulard@gmail.com> - ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}\n Generated by CPack RPM (no Changelog file were provided)")
+ endif()
+
+ # CPACK_RPM_SPEC_MORE_DEFINE
+ # This is a generated spec rpm file spaceholder
+ if(CPACK_RPM_SPEC_MORE_DEFINE)
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: User defined more define spec line specified:\n ${CPACK_RPM_SPEC_MORE_DEFINE}")
+ endif()
+ endif()
+
+ # Now we may create the RPM build tree structure
+ set(CPACK_RPM_ROOTDIR "${CPACK_TOPLEVEL_DIRECTORY}")
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: Using CPACK_RPM_ROOTDIR=${CPACK_RPM_ROOTDIR}")
+ endif()
+ # Prepare RPM build tree
+ file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR})
+ file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/tmp)
+ file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/BUILD)
+ file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/RPMS)
+ file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/SOURCES)
+ file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/SPECS)
+ file(MAKE_DIRECTORY ${CPACK_RPM_ROOTDIR}/SRPMS)
+
+ # it seems rpmbuild can't handle spaces in the path
+ # neither escaping (as below) nor putting quotes around the path seem to help
+ #string(REGEX REPLACE " " "\\\\ " CPACK_RPM_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}")
+ set(CPACK_RPM_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}")
+
+ cpack_rpm_prepare_content_list()
+
+ # In component case, put CPACK_ABSOLUTE_DESTINATION_FILES_<COMPONENT>
+ # into CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL
+ # otherwise, put CPACK_ABSOLUTE_DESTINATION_FILES
+ # This must be done BEFORE the CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL handling
+ if(CPACK_RPM_PACKAGE_COMPONENT)
+ if(CPACK_ABSOLUTE_DESTINATION_FILES)
+ cpack_rpm_variable_fallback("COMPONENT_FILES_TAG"
+ "CPACK_ABSOLUTE_DESTINATION_FILES_${CPACK_RPM_PACKAGE_COMPONENT}"
+ "CPACK_ABSOLUTE_DESTINATION_FILES_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}")
+ set(CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL "${${COMPONENT_FILES_TAG}}")
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: Handling Absolute Destination Files: <${CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL}>")
+ message("CPackRPM:Debug: in component = ${CPACK_RPM_PACKAGE_COMPONENT}")
+ endif()
+ endif()
+ else()
+ if(CPACK_ABSOLUTE_DESTINATION_FILES)
+ set(CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL "${CPACK_ABSOLUTE_DESTINATION_FILES}")
+ endif()
+ endif()
+
+ # In component case, set CPACK_RPM_USER_FILELIST_INTERNAL with CPACK_RPM_<COMPONENT>_USER_FILELIST.
+ set(CPACK_RPM_USER_FILELIST_INTERNAL "")
+ if(CPACK_RPM_PACKAGE_COMPONENT)
+ cpack_rpm_variable_fallback("CPACK_RPM_USER_FILELIST_INTERNAL"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_USER_FILELIST"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_USER_FILELIST")
+
+ if(CPACK_RPM_PACKAGE_DEBUG AND CPACK_RPM_USER_FILELIST_INTERNAL)
+ message("CPackRPM:Debug: Handling User Filelist: <${CPACK_RPM_USER_FILELIST_INTERNAL}>")
+ message("CPackRPM:Debug: in component = ${CPACK_RPM_PACKAGE_COMPONENT}")
+ endif()
+ elseif(CPACK_RPM_USER_FILELIST)
+ set(CPACK_RPM_USER_FILELIST_INTERNAL "${CPACK_RPM_USER_FILELIST}")
+ endif()
+
+ # Handle user specified file line list in CPACK_RPM_USER_FILELIST_INTERNAL
+ # Remove those files from CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL
+ # or CPACK_RPM_INSTALL_FILES,
+ # hence it must be done before these auto-generated lists are processed.
+ if(CPACK_RPM_USER_FILELIST_INTERNAL)
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: Handling User Filelist: <${CPACK_RPM_USER_FILELIST_INTERNAL}>")
+ endif()
+
+ # Create CMake list from CPACK_RPM_INSTALL_FILES
+ string(STRIP "${CPACK_RPM_INSTALL_FILES}" CPACK_RPM_INSTALL_FILES_LIST)
+ string(REPLACE "\n" ";" CPACK_RPM_INSTALL_FILES_LIST
+ "${CPACK_RPM_INSTALL_FILES_LIST}")
+ string(REPLACE "\"" "" CPACK_RPM_INSTALL_FILES_LIST
+ "${CPACK_RPM_INSTALL_FILES_LIST}")
+
+ set(CPACK_RPM_USER_INSTALL_FILES "")
+ foreach(F IN LISTS CPACK_RPM_USER_FILELIST_INTERNAL)
+ string(REGEX REPLACE "%[A-Za-z]+(\\([^()]*\\))? " "" F_PATH ${F})
+ string(REGEX MATCH "(%[A-Za-z]+(\\([^()]*\\))? )*" F_PREFIX ${F})
+ string(STRIP ${F_PREFIX} F_PREFIX)
+
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: F_PREFIX=<${F_PREFIX}>, F_PATH=<${F_PATH}>")
+ endif()
+ if(F_PREFIX)
+ string(APPEND F_PREFIX " ")
+ endif()
+ # Rebuild the user list file
+ string(APPEND CPACK_RPM_USER_INSTALL_FILES "${F_PREFIX}\"${F_PATH}\"\n")
+
+ # Remove from CPACK_RPM_INSTALL_FILES and CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL
+ list(REMOVE_ITEM CPACK_RPM_INSTALL_FILES_LIST ${F_PATH})
+ # ABSOLUTE destination files list may not exists at all
+ if (CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL)
+ list(REMOVE_ITEM CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL ${F_PATH})
+ endif()
+ endforeach()
+
+ # Rebuild CPACK_RPM_INSTALL_FILES
+ set(CPACK_RPM_INSTALL_FILES "")
+ foreach(F IN LISTS CPACK_RPM_INSTALL_FILES_LIST)
+ string(APPEND CPACK_RPM_INSTALL_FILES "\"${F}\"\n")
+ endforeach()
+ else()
+ set(CPACK_RPM_USER_INSTALL_FILES "")
+ endif()
+
+ if (CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL)
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: Handling Absolute Destination Files: ${CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL}")
+ endif()
+ # Remove trailing space
+ string(STRIP "${CPACK_RPM_INSTALL_FILES}" CPACK_RPM_INSTALL_FILES_LIST)
+ # Transform endline separated - string into CMake List
+ string(REPLACE "\n" ";" CPACK_RPM_INSTALL_FILES_LIST "${CPACK_RPM_INSTALL_FILES_LIST}")
+ # Remove unnecessary quotes
+ string(REPLACE "\"" "" CPACK_RPM_INSTALL_FILES_LIST "${CPACK_RPM_INSTALL_FILES_LIST}")
+ # Remove ABSOLUTE install file from INSTALL FILE LIST
+ list(REMOVE_ITEM CPACK_RPM_INSTALL_FILES_LIST ${CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL})
+ # Rebuild INSTALL_FILES
+ set(CPACK_RPM_INSTALL_FILES "")
+ foreach(F IN LISTS CPACK_RPM_INSTALL_FILES_LIST)
+ string(APPEND CPACK_RPM_INSTALL_FILES "\"${F}\"\n")
+ endforeach()
+ # Build ABSOLUTE_INSTALL_FILES
+ set(CPACK_RPM_ABSOLUTE_INSTALL_FILES "")
+ foreach(F IN LISTS CPACK_ABSOLUTE_DESTINATION_FILES_INTERNAL)
+ string(APPEND CPACK_RPM_ABSOLUTE_INSTALL_FILES "%config \"${F}\"\n")
+ endforeach()
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: CPACK_RPM_ABSOLUTE_INSTALL_FILES=${CPACK_RPM_ABSOLUTE_INSTALL_FILES}")
+ message("CPackRPM:Debug: CPACK_RPM_INSTALL_FILES=${CPACK_RPM_INSTALL_FILES}")
+ endif()
+ else()
+ # reset vars in order to avoid leakage of value(s) from one component to another
+ set(CPACK_RPM_ABSOLUTE_INSTALL_FILES "")
+ endif()
+
+ cpack_rpm_variable_fallback("CPACK_RPM_DEBUGINFO_PACKAGE"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_DEBUGINFO_PACKAGE"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEBUGINFO_PACKAGE"
+ "CPACK_RPM_DEBUGINFO_PACKAGE")
+ if(CPACK_RPM_DEBUGINFO_PACKAGE OR (CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE AND NOT GENERATE_SPEC_PARTS))
+ cpack_rpm_variable_fallback("CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_BUILD_SOURCE_DIRS_PREFIX"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_BUILD_SOURCE_DIRS_PREFIX"
+ "CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX")
+ if(NOT CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX)
+ set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}")
+ endif()
+
+ # handle cases where path contains extra slashes (e.g. /a//b/ instead of
+ # /a/b)
+ get_filename_component(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX
+ "${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}" ABSOLUTE)
+
+ if(CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE AND GENERATE_SPEC_PARTS)
+ file(WRITE "${CPACK_RPM_ROOTDIR}/SPECS/${CPACK_RPM_PACKAGE_COMPONENT}.files"
+ "${CPACK_RPM_INSTALL_FILES}")
+ else()
+ if(CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE AND CPACK_RPM_PACKAGE_COMPONENT)
+ # this part is only required by components packaging - with monolithic
+ # packages we can be certain that there are no other components present
+ # so CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE is a noop
+ if(CPACK_RPM_DEBUGINFO_PACKAGE)
+ # only add current package files to debuginfo list if debuginfo
+ # generation is enabled for current package
+ string(STRIP "${CPACK_RPM_INSTALL_FILES}" install_files_)
+ string(REPLACE "\n" ";" install_files_ "${install_files_}")
+ string(REPLACE "\"" "" install_files_ "${install_files_}")
+ else()
+ unset(install_files_)
+ endif()
+
+ file(GLOB files_ "${CPACK_RPM_DIRECTORY}/SPECS/*.files")
+
+ foreach(f_ IN LISTS files_)
+ file(READ "${f_}" tmp_)
+ string(APPEND install_files_ ";${tmp_}")
+ endforeach()
+
+ # if there were other components/groups so we need to move files from them
+ # to current component otherwise those files won't be found
+ file(GLOB components_ LIST_DIRECTORIES true RELATIVE
+ "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}"
+ "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/*")
+ foreach(component_ IN LISTS components_)
+ string(TOUPPER "${component_}" component_dir_upper_)
+ if(component_dir_upper_ STREQUAL CPACK_RPM_PACKAGE_COMPONENT_UPPER)
+ # skip current component
+ continue()
+ endif()
+
+ file(GLOB_RECURSE files_for_move_ LIST_DIRECTORIES false RELATIVE
+ "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${component_}"
+ "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${component_}/*")
+
+ foreach(f_ IN LISTS files_for_move_)
+ get_filename_component(dir_path_ "${f_}" DIRECTORY)
+ set(src_file_
+ "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${component_}/${f_}")
+
+ # check that we are not overriding an existing file that doesn't
+ # match the file that we want to copy
+ if(EXISTS "${src_file_}" AND EXISTS "${WDIR}/${f_}")
+ execute_process(
+ COMMAND ${CMAKE_COMMAND} -E compare_files "${src_file_}" "${WDIR}/${f_}"
+ RESULT_VARIABLE res_
+ )
+ if(res_)
+ message(FATAL_ERROR "CPackRPM:Error: File on path '${WDIR}/${f_}'"
+ " already exists but is a different than the one in component"
+ " '${component_}'! Packages will not be generated.")
+ endif()
+ endif()
+
+ file(MAKE_DIRECTORY "${WDIR}/${dir_path_}")
+ file(RENAME "${src_file_}"
+ "${WDIR}/${f_}")
+ endforeach()
+ endforeach()
+
+ cpack_rpm_debugsymbol_check("${install_files_}" "${WDIR}")
+ else()
+ string(STRIP "${CPACK_RPM_INSTALL_FILES}" install_files_)
+ string(REPLACE "\n" ";" install_files_ "${install_files_}")
+ string(REPLACE "\"" "" install_files_ "${install_files_}")
+
+ cpack_rpm_debugsymbol_check("${install_files_}" "${WDIR}")
+ endif()
+
+ if(TMP_DEBUGINFO_ADDITIONAL_SOURCES)
+ set(TMP_RPM_DEBUGINFO "
+# Modified version of %%debug_package macro
+# defined in /usr/lib/rpm/macros as that one
+# can't handle injection of extra source files.
+%ifnarch noarch
+%global __debug_package 1
+%package debuginfo
+Summary: Debug information for package %{name}
+Group: Development/Debug
+AutoReqProv: 0
+%description debuginfo
+This package provides debug information for package %{name}.
+Debug information is useful when developing applications that use this
+package or when debugging this package.
+%files debuginfo -f debugfiles.list
+%defattr(-,root,root)
+${TMP_DEBUGINFO_ADDITIONAL_SOURCES}
+%endif
+")
+ elseif(CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE)
+ message(AUTHOR_WARNING "CPackRPM:Warning: debuginfo package was requested"
+ " but will not be generated as no source files were found!")
+ else()
+ message(AUTHOR_WARNING "CPackRPM:Warning: debuginfo package was requested"
+ " but will not be generated as no source files were found! Component: '"
+ "${CPACK_RPM_PACKAGE_COMPONENT}'.")
+ endif()
+ endif()
+ endif()
+
+ # Prepare install files
+ cpack_rpm_prepare_install_files(
+ "${CPACK_RPM_INSTALL_FILES}"
+ "${WDIR}"
+ "${RPM_USED_PACKAGE_PREFIXES}"
+ "${CPACK_RPM_PACKAGE_RELOCATABLE}"
+ )
+
+ # set default user and group
+ foreach(_PERM_TYPE "USER" "GROUP")
+ if(CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEFAULT_${_PERM_TYPE})
+ set(TMP_DEFAULT_${_PERM_TYPE} "${CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEFAULT_${_PERM_TYPE}}")
+ elseif(CPACK_RPM_DEFAULT_${_PERM_TYPE})
+ set(TMP_DEFAULT_${_PERM_TYPE} "${CPACK_RPM_DEFAULT_${_PERM_TYPE}}")
+ else()
+ set(TMP_DEFAULT_${_PERM_TYPE} "root")
+ endif()
+ endforeach()
+
+ # set default file and dir permissions
+ foreach(_PERM_TYPE "FILE" "DIR")
+ if(CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEFAULT_${_PERM_TYPE}_PERMISSIONS)
+ get_unix_permissions_octal_notation("CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEFAULT_${_PERM_TYPE}_PERMISSIONS" "TMP_DEFAULT_${_PERM_TYPE}_PERMISSIONS")
+ set(_PERMISSIONS_VAR "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEFAULT_${_PERM_TYPE}_PERMISSIONS")
+ elseif(CPACK_RPM_DEFAULT_${_PERM_TYPE}_PERMISSIONS)
+ get_unix_permissions_octal_notation("CPACK_RPM_DEFAULT_${_PERM_TYPE}_PERMISSIONS" "TMP_DEFAULT_${_PERM_TYPE}_PERMISSIONS")
+ set(_PERMISSIONS_VAR "CPACK_RPM_DEFAULT_${_PERM_TYPE}_PERMISSIONS")
+ else()
+ set(TMP_DEFAULT_${_PERM_TYPE}_PERMISSIONS "-")
+ endif()
+ endforeach()
+
+ # The name of the final spec file to be used by rpmbuild
+ set(CPACK_RPM_BINARY_SPECFILE "${CPACK_RPM_ROOTDIR}/SPECS/${CPACK_RPM_PACKAGE_NAME}.spec")
+
+ # Print out some debug information if we were asked for that
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: CPACK_TOPLEVEL_DIRECTORY = ${CPACK_TOPLEVEL_DIRECTORY}")
+ message("CPackRPM:Debug: CPACK_TOPLEVEL_TAG = ${CPACK_TOPLEVEL_TAG}")
+ message("CPackRPM:Debug: CPACK_TEMPORARY_DIRECTORY = ${CPACK_TEMPORARY_DIRECTORY}")
+ message("CPackRPM:Debug: CPACK_OUTPUT_FILE_NAME = ${CPACK_OUTPUT_FILE_NAME}")
+ message("CPackRPM:Debug: CPACK_OUTPUT_FILE_PATH = ${CPACK_OUTPUT_FILE_PATH}")
+ message("CPackRPM:Debug: CPACK_PACKAGE_FILE_NAME = ${CPACK_PACKAGE_FILE_NAME}")
+ message("CPackRPM:Debug: CPACK_RPM_BINARY_SPECFILE = ${CPACK_RPM_BINARY_SPECFILE}")
+ message("CPackRPM:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY = ${CPACK_PACKAGE_INSTALL_DIRECTORY}")
+ message("CPackRPM:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = ${CPACK_TEMPORARY_PACKAGE_FILE_NAME}")
+ endif()
+
+ #
+ # USER generated/provided spec file handling.
+ #
+
+ # We can have a component specific spec file.
+ if(CPACK_RPM_PACKAGE_COMPONENT)
+ cpack_rpm_variable_fallback("CPACK_RPM_USER_BINARY_SPECFILE"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_USER_BINARY_SPECFILE"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_USER_BINARY_SPECFILE")
+ endif()
+
+ cpack_rpm_variable_fallback("CPACK_RPM_FILE_NAME"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_FILE_NAME"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_FILE_NAME"
+ "CPACK_RPM_FILE_NAME")
+ if(NOT CPACK_RPM_FILE_NAME STREQUAL "RPM-DEFAULT")
+ if(CPACK_RPM_FILE_NAME)
+ if(NOT CPACK_RPM_FILE_NAME MATCHES ".*\\.rpm")
+ message(FATAL_ERROR "'${CPACK_RPM_FILE_NAME}' is not a valid RPM package file name as it must end with '.rpm'!")
+ endif()
+ else()
+ # old file name format for back compatibility
+ string(TOUPPER "${CPACK_RPM_MAIN_COMPONENT}"
+ CPACK_RPM_MAIN_COMPONENT_UPPER)
+
+ if(CPACK_RPM_MAIN_COMPONENT_UPPER STREQUAL CPACK_RPM_PACKAGE_COMPONENT_UPPER)
+ # this is the main component so ignore the component filename part
+ set(CPACK_RPM_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.rpm")
+ else()
+ set(CPACK_RPM_FILE_NAME "${CPACK_OUTPUT_FILE_NAME}")
+ endif()
+ endif()
+ # else example:
+ #set(CPACK_RPM_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}-${CPACK_RPM_PACKAGE_ARCHITECTURE}.rpm")
+
+ if(CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE AND GENERATE_SPEC_PARTS)
+ string(TOLOWER "${CPACK_RPM_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.*\\.rpm" expected_filename_)
+
+ file(WRITE "${CPACK_RPM_ROOTDIR}/SPECS/${CPACK_RPM_PACKAGE_COMPONENT}.rpm_name"
+ "${expected_filename_};${CPACK_RPM_FILE_NAME}")
+ elseif(NOT CPACK_RPM_DEBUGINFO_PACKAGE)
+ set(FILE_NAME_DEFINE "%define _rpmfilename ${CPACK_RPM_FILE_NAME}")
+ endif()
+ endif()
+
+ if(CPACK_RPM_PACKAGE_SOURCES) # source rpm
+ set(archive_name_ "${CPACK_RPM_PACKAGE_NAME}-${CPACK_RPM_PACKAGE_VERSION}")
+
+ execute_process(
+ COMMAND ${CMAKE_COMMAND} -E tar "cfvz" "${CPACK_RPM_DIRECTORY}/SOURCES/${archive_name_}.tar.gz" "${CPACK_PACKAGE_FILE_NAME}"
+ WORKING_DIRECTORY ${CPACK_RPM_DIRECTORY}
+ )
+ set(TMP_RPM_SOURCE "Source: ${archive_name_}.tar.gz")
+
+ if(CPACK_RPM_BUILDREQUIRES)
+ set(TMP_RPM_BUILD_REQUIRES "BuildRequires: ${CPACK_RPM_BUILDREQUIRES}")
+ endif()
+
+ # Disable debuginfo packages - srpm generates invalid packages due to
+ # releasing control to cpack to generate binary packages.
+ # Note however that this doesn't prevent cpack to generate debuginfo
+ # packages when run from srpm with --rebuild.
+ set(TMP_RPM_DISABLE_DEBUGINFO "%define debug_package %{nil}")
+
+ if(NOT CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX)
+ set(CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX "/")
+ endif()
+
+ set(TMP_RPM_BUILD
+ "
+%build
+mkdir cpack_rpm_build_dir
+cd cpack_rpm_build_dir
+'${CMAKE_COMMAND}' ${CPACK_RPM_SOURCE_PKG_BUILD_PARAMS} -DCPACK_PACKAGING_INSTALL_PREFIX=${CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX} ../${CPACK_PACKAGE_FILE_NAME}
+make %{?_smp_mflags}" # %{?_smp_mflags} -> -j option
+ )
+ set(TMP_RPM_INSTALL
+ "
+cd cpack_rpm_build_dir
+cpack -G RPM
+mv *.rpm %_rpmdir"
+ )
+ set(TMP_RPM_PREP "%setup -c")
+
+ set(RPMBUILD_FLAGS "-bs")
+
+ file(WRITE ${CPACK_RPM_BINARY_SPECFILE}.in
+ "# Restore old style debuginfo creation for rpm >= 4.14.
+%undefine _debugsource_packages
+%undefine _debuginfo_subpackages
+
+# -*- rpm-spec -*-
+BuildRoot: %_topdir/\@CPACK_PACKAGE_FILE_NAME\@
+Summary: \@CPACK_RPM_PACKAGE_SUMMARY\@
+Name: \@CPACK_RPM_PACKAGE_NAME\@
+Version: \@CPACK_RPM_PACKAGE_VERSION\@
+Release: \@CPACK_RPM_PACKAGE_RELEASE\@
+License: \@CPACK_RPM_PACKAGE_LICENSE\@
+Group: \@CPACK_RPM_PACKAGE_GROUP\@
+Vendor: \@CPACK_RPM_PACKAGE_VENDOR\@
+
+\@TMP_RPM_SOURCE\@
+\@TMP_RPM_BUILD_REQUIRES\@
+\@TMP_RPM_BUILDARCH\@
+\@TMP_RPM_PREFIXES\@
+
+\@TMP_RPM_DISABLE_DEBUGINFO\@
+
+%define _rpmdir %_topdir/RPMS
+%define _srcrpmdir %_topdir/SRPMS
+\@FILE_NAME_DEFINE\@
+%define _unpackaged_files_terminate_build 0
+\@TMP_RPM_SPEC_INSTALL_POST\@
+\@CPACK_RPM_SPEC_MORE_DEFINE\@
+\@CPACK_RPM_COMPRESSION_TYPE_TMP\@
+
+%description
+\@CPACK_RPM_PACKAGE_DESCRIPTION\@
+
+# This is a shortcutted spec file generated by CMake RPM generator
+# we skip _install step because CPack does that for us.
+# We do only save CPack installed tree in _prepr
+# and then restore it in build.
+%prep
+\@TMP_RPM_PREP\@
+
+\@TMP_RPM_BUILD\@
+
+#p build
+
+%install
+\@TMP_RPM_INSTALL\@
+
+%clean
+
+%changelog
+\@CPACK_RPM_SPEC_CHANGELOG\@
+"
+ )
+
+ elseif(GENERATE_SPEC_PARTS) # binary rpm with single debuginfo package
+ file(WRITE ${CPACK_RPM_BINARY_SPECFILE}.in
+ "# -*- rpm-spec -*-
+%package -n \@CPACK_RPM_PACKAGE_NAME\@
+Summary: \@CPACK_RPM_PACKAGE_SUMMARY\@
+Version: \@CPACK_RPM_PACKAGE_VERSION\@
+Release: \@CPACK_RPM_PACKAGE_RELEASE\@
+License: \@CPACK_RPM_PACKAGE_LICENSE\@
+Group: \@CPACK_RPM_PACKAGE_GROUP\@
+Vendor: \@CPACK_RPM_PACKAGE_VENDOR\@
+
+\@TMP_RPM_URL\@
+\@TMP_RPM_REQUIRES\@
+\@TMP_RPM_REQUIRES_PRE\@
+\@TMP_RPM_REQUIRES_POST\@
+\@TMP_RPM_REQUIRES_PREUN\@
+\@TMP_RPM_REQUIRES_POSTUN\@
+\@TMP_RPM_PROVIDES\@
+\@TMP_RPM_OBSOLETES\@
+\@TMP_RPM_CONFLICTS\@
+\@TMP_RPM_SUGGESTS\@
+\@TMP_RPM_AUTOPROV\@
+\@TMP_RPM_AUTOREQ\@
+\@TMP_RPM_AUTOREQPROV\@
+\@TMP_RPM_BUILDARCH\@
+\@TMP_RPM_PREFIXES\@
+\@TMP_RPM_EPOCH\@
+
+%description -n \@CPACK_RPM_PACKAGE_NAME\@
+\@CPACK_RPM_PACKAGE_DESCRIPTION\@
+
+%files -n \@CPACK_RPM_PACKAGE_NAME\@
+%defattr(\@TMP_DEFAULT_FILE_PERMISSIONS\@,\@TMP_DEFAULT_USER\@,\@TMP_DEFAULT_GROUP\@,\@TMP_DEFAULT_DIR_PERMISSIONS\@)
+\@CPACK_RPM_INSTALL_FILES\@
+\@CPACK_RPM_ABSOLUTE_INSTALL_FILES\@
+\@CPACK_RPM_USER_INSTALL_FILES\@
+"
+ )
+
+ else() # binary rpm
+ if(CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE)
+ # find generated spec file and take its name
+ file(GLOB spec_files_ "${CPACK_RPM_DIRECTORY}/SPECS/*.spec")
+
+ foreach(f_ IN LISTS spec_files_)
+ file(READ "${f_}" tmp_)
+ string(APPEND TMP_OTHER_COMPONENTS "\n${tmp_}\n")
+ endforeach()
+ endif()
+
+ # We should generate a USER spec file template:
+ # - either because the user asked for it : CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
+ # - or the user did not provide one : NOT CPACK_RPM_USER_BINARY_SPECFILE
+ set(RPMBUILD_FLAGS "-bb")
+ if(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE OR NOT CPACK_RPM_USER_BINARY_SPECFILE)
+
+ file(WRITE ${CPACK_RPM_BINARY_SPECFILE}.in
+ "# Restore old style debuginfo creation for rpm >= 4.14.
+%undefine _debugsource_packages
+%undefine _debuginfo_subpackages
+
+# -*- rpm-spec -*-
+BuildRoot: %_topdir/\@CPACK_PACKAGE_FILE_NAME\@\@CPACK_RPM_PACKAGE_COMPONENT_PART_PATH\@
+Summary: \@CPACK_RPM_PACKAGE_SUMMARY\@
+Name: \@CPACK_RPM_PACKAGE_NAME\@
+Version: \@CPACK_RPM_PACKAGE_VERSION\@
+Release: \@CPACK_RPM_PACKAGE_RELEASE\@
+License: \@CPACK_RPM_PACKAGE_LICENSE\@
+Group: \@CPACK_RPM_PACKAGE_GROUP\@
+Vendor: \@CPACK_RPM_PACKAGE_VENDOR\@
+
+\@TMP_RPM_URL\@
+\@TMP_RPM_REQUIRES\@
+\@TMP_RPM_REQUIRES_PRE\@
+\@TMP_RPM_REQUIRES_POST\@
+\@TMP_RPM_REQUIRES_PREUN\@
+\@TMP_RPM_REQUIRES_POSTUN\@
+\@TMP_RPM_PROVIDES\@
+\@TMP_RPM_OBSOLETES\@
+\@TMP_RPM_CONFLICTS\@
+\@TMP_RPM_SUGGESTS\@
+\@TMP_RPM_AUTOPROV\@
+\@TMP_RPM_AUTOREQ\@
+\@TMP_RPM_AUTOREQPROV\@
+\@TMP_RPM_BUILDARCH\@
+\@TMP_RPM_PREFIXES\@
+\@TMP_RPM_EPOCH\@
+
+\@TMP_RPM_DEBUGINFO\@
+
+%define _rpmdir %_topdir/RPMS
+%define _srcrpmdir %_topdir/SRPMS
+\@FILE_NAME_DEFINE\@
+%define _unpackaged_files_terminate_build 0
+\@TMP_RPM_SPEC_INSTALL_POST\@
+\@CPACK_RPM_SPEC_MORE_DEFINE\@
+\@CPACK_RPM_COMPRESSION_TYPE_TMP\@
+
+%description
+\@CPACK_RPM_PACKAGE_DESCRIPTION\@
+
+# This is a shortcutted spec file generated by CMake RPM generator
+# we skip _install step because CPack does that for us.
+# We do only save CPack installed tree in _prepr
+# and then restore it in build.
+%prep
+mv $RPM_BUILD_ROOT %_topdir/tmpBBroot
+
+%install
+if [ -e $RPM_BUILD_ROOT ];
+then
+ rm -rf $RPM_BUILD_ROOT
+fi
+mv %_topdir/tmpBBroot $RPM_BUILD_ROOT
+
+\@TMP_RPM_DEBUGINFO_INSTALL\@
+
+%clean
+
+%post
+\@RPM_SYMLINK_POSTINSTALL\@
+\@CPACK_RPM_SPEC_POSTINSTALL\@
+
+%postun
+\@CPACK_RPM_SPEC_POSTUNINSTALL\@
+
+%pre
+\@CPACK_RPM_SPEC_PREINSTALL\@
+
+%preun
+\@CPACK_RPM_SPEC_PREUNINSTALL\@
+
+%files
+%defattr(\@TMP_DEFAULT_FILE_PERMISSIONS\@,\@TMP_DEFAULT_USER\@,\@TMP_DEFAULT_GROUP\@,\@TMP_DEFAULT_DIR_PERMISSIONS\@)
+\@CPACK_RPM_INSTALL_FILES\@
+\@CPACK_RPM_ABSOLUTE_INSTALL_FILES\@
+\@CPACK_RPM_USER_INSTALL_FILES\@
+
+%changelog
+\@CPACK_RPM_SPEC_CHANGELOG\@
+
+\@TMP_OTHER_COMPONENTS\@
+"
+ )
+ endif()
+
+ # Stop here if we were asked to only generate a template USER spec file
+ # The generated file may then be used as a template by user who wants
+ # to customize their own spec file.
+ if(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE)
+ message(FATAL_ERROR "CPackRPM: STOP here Generated USER binary spec file template is: ${CPACK_RPM_BINARY_SPECFILE}.in")
+ endif()
+ endif()
+
+ # After that we may either use a user provided spec file
+ # or generate one using appropriate variables value.
+ if(CPACK_RPM_USER_BINARY_SPECFILE)
+ # User may have specified SPECFILE just use it
+ message("CPackRPM: Will use USER specified spec file: ${CPACK_RPM_USER_BINARY_SPECFILE}")
+ # The user provided file is processed for @var replacement
+ configure_file(${CPACK_RPM_USER_BINARY_SPECFILE} ${CPACK_RPM_BINARY_SPECFILE} @ONLY)
+ else()
+ # No User specified spec file, will use the generated spec file
+ message("CPackRPM: Will use GENERATED spec file: ${CPACK_RPM_BINARY_SPECFILE}")
+ # Note the just created file is processed for @var replacement
+ configure_file(${CPACK_RPM_BINARY_SPECFILE}.in ${CPACK_RPM_BINARY_SPECFILE} @ONLY)
+ endif()
+
+ if(NOT GENERATE_SPEC_PARTS) # generate package
+ if(RPMBUILD_EXECUTABLE)
+ # Now call rpmbuild using the SPECFILE
+ execute_process(
+ COMMAND "${RPMBUILD_EXECUTABLE}" ${RPMBUILD_FLAGS}
+ --define "_topdir ${CPACK_RPM_DIRECTORY}"
+ --buildroot "%_topdir/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}"
+ --target "${CPACK_RPM_PACKAGE_ARCHITECTURE}"
+ "${CPACK_RPM_BINARY_SPECFILE}"
+ WORKING_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}"
+ RESULT_VARIABLE CPACK_RPMBUILD_EXEC_RESULT
+ ERROR_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild${CPACK_RPM_PACKAGE_NAME}.err"
+ OUTPUT_FILE "${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild${CPACK_RPM_PACKAGE_NAME}.out")
+ if(CPACK_RPM_PACKAGE_DEBUG OR CPACK_RPMBUILD_EXEC_RESULT)
+ file(READ ${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild${CPACK_RPM_PACKAGE_NAME}.err RPMBUILDERR)
+ file(READ ${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild${CPACK_RPM_PACKAGE_NAME}.out RPMBUILDOUT)
+ message("CPackRPM:Debug: You may consult rpmbuild logs in: ")
+ message("CPackRPM:Debug: - ${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild${CPACK_RPM_PACKAGE_NAME}.err")
+ message("CPackRPM:Debug: *** ${RPMBUILDERR} ***")
+ message("CPackRPM:Debug: - ${CPACK_TOPLEVEL_DIRECTORY}/rpmbuild${CPACK_RPM_PACKAGE_NAME}.out")
+ message("CPackRPM:Debug: *** ${RPMBUILDOUT} ***")
+ endif()
+ else()
+ if(ALIEN_EXECUTABLE)
+ message(FATAL_ERROR "RPM packaging through alien not done (yet)")
+ endif()
+ endif()
+
+ # find generated rpm files and take their names
+ file(GLOB_RECURSE GENERATED_FILES "${CPACK_RPM_DIRECTORY}/RPMS/*.rpm"
+ "${CPACK_RPM_DIRECTORY}/SRPMS/*.rpm")
+
+ if(NOT GENERATED_FILES)
+ message(FATAL_ERROR "RPM package was not generated! ${CPACK_RPM_DIRECTORY}")
+ endif()
+
+ unset(expected_filenames_)
+ unset(filenames_)
+ if(CPACK_RPM_DEBUGINFO_PACKAGE AND NOT CPACK_RPM_FILE_NAME STREQUAL "RPM-DEFAULT")
+ list(APPEND expected_filenames_
+ "${CPACK_RPM_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.*\\.rpm")
+ list(APPEND filenames_ "${CPACK_RPM_FILE_NAME}")
+ endif()
+
+ if(CPACK_RPM_DEBUGINFO_PACKAGE)
+ cpack_rpm_variable_fallback("CPACK_RPM_DEBUGINFO_FILE_NAME"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_DEBUGINFO_FILE_NAME"
+ "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEBUGINFO_FILE_NAME"
+ "CPACK_RPM_DEBUGINFO_FILE_NAME")
+
+ if(CPACK_RPM_DEBUGINFO_FILE_NAME AND
+ NOT CPACK_RPM_DEBUGINFO_FILE_NAME STREQUAL "RPM-DEFAULT")
+ list(APPEND expected_filenames_
+ "${CPACK_RPM_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}.*\\.rpm")
+ string(REPLACE "@cpack_component@" "${CPACK_RPM_PACKAGE_COMPONENT}"
+ CPACK_RPM_DEBUGINFO_FILE_NAME "${CPACK_RPM_DEBUGINFO_FILE_NAME}")
+ list(APPEND filenames_ "${CPACK_RPM_DEBUGINFO_FILE_NAME}")
+ endif()
+ endif()
+
+ # check if other files have to be renamed
+ file(GLOB rename_files_ "${CPACK_RPM_DIRECTORY}/SPECS/*.rpm_name")
+ if(rename_files_)
+ foreach(f_ IN LISTS rename_files_)
+ file(READ "${f_}" tmp_)
+ list(GET tmp_ 0 efn_)
+ list(APPEND expected_filenames_ "${efn_}")
+ list(GET tmp_ 1 fn_)
+ list(APPEND filenames_ "${fn_}")
+ endforeach()
+ endif()
+
+ if(expected_filenames_)
+ foreach(F IN LISTS GENERATED_FILES)
+ unset(matched_)
+ foreach(expected_ IN LISTS expected_filenames_)
+ if(F MATCHES ".*/${expected_}")
+ list(FIND expected_filenames_ "${expected_}" idx_)
+ list(GET filenames_ ${idx_} filename_)
+ get_filename_component(FILE_PATH "${F}" DIRECTORY)
+ file(RENAME "${F}" "${FILE_PATH}/${filename_}")
+ list(APPEND new_files_list_ "${FILE_PATH}/${filename_}")
+ set(matched_ "YES")
+
+ break()
+ endif()
+ endforeach()
+
+ if(NOT matched_)
+ list(APPEND new_files_list_ "${F}")
+ endif()
+ endforeach()
+
+ set(GENERATED_FILES "${new_files_list_}")
+ endif()
+ endif()
+
+ set(GEN_CPACK_OUTPUT_FILES "${GENERATED_FILES}" PARENT_SCOPE)
+
+ if(CPACK_RPM_PACKAGE_DEBUG)
+ message("CPackRPM:Debug: GEN_CPACK_OUTPUT_FILES = ${GENERATED_FILES}")
+ endif()
+endfunction()
+
+cpack_rpm_generate_package()
+
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPackWIX.cmake b/share/cmake-3.17/Modules/Internal/CPack/CPackWIX.cmake
index d1875f2..d1875f2 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPackWIX.cmake
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPackWIX.cmake
diff --git a/share/cmake-3.16/Modules/Internal/CPack/CPackZIP.cmake b/share/cmake-3.17/Modules/Internal/CPack/CPackZIP.cmake
index f619de4..f619de4 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/CPackZIP.cmake
+++ b/share/cmake-3.17/Modules/Internal/CPack/CPackZIP.cmake
diff --git a/share/cmake-3.16/Modules/Internal/CPack/NSIS.InstallOptions.ini.in b/share/cmake-3.17/Modules/Internal/CPack/NSIS.InstallOptions.ini.in
index d92d779..d92d779 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/NSIS.InstallOptions.ini.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/NSIS.InstallOptions.ini.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/NSIS.template.in b/share/cmake-3.17/Modules/Internal/CPack/NSIS.template.in
new file mode 100644
index 0000000..660bfa3
--- /dev/null
+++ b/share/cmake-3.17/Modules/Internal/CPack/NSIS.template.in
@@ -0,0 +1,978 @@
+; CPack install script designed for a nmake build
+
+;--------------------------------
+; You must define these values
+
+ !define VERSION "@CPACK_PACKAGE_VERSION@"
+ !define PATCH "@CPACK_PACKAGE_VERSION_PATCH@"
+ !define INST_DIR "@CPACK_TEMPORARY_DIRECTORY@"
+
+;--------------------------------
+;Variables
+
+ Var MUI_TEMP
+ Var STARTMENU_FOLDER
+ Var SV_ALLUSERS
+ Var START_MENU
+ Var DO_NOT_ADD_TO_PATH
+ Var ADD_TO_PATH_ALL_USERS
+ Var ADD_TO_PATH_CURRENT_USER
+ Var INSTALL_DESKTOP
+ Var IS_DEFAULT_INSTALLDIR
+;--------------------------------
+;Include Modern UI
+
+ !include "MUI.nsh"
+
+ ;Default installation folder
+ InstallDir "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
+
+;--------------------------------
+;General
+
+ ;Name and file
+ Name "@CPACK_NSIS_PACKAGE_NAME@"
+ OutFile "@CPACK_TOPLEVEL_DIRECTORY@/@CPACK_OUTPUT_FILE_NAME@"
+
+ ;Set compression
+ SetCompressor @CPACK_NSIS_COMPRESSOR@
+
+ ;Require administrator access
+ RequestExecutionLevel admin
+
+@CPACK_NSIS_DEFINES@
+
+ !include Sections.nsh
+
+;--- Component support macros: ---
+; The code for the add/remove functionality is from:
+; http://nsis.sourceforge.net/Add/Remove_Functionality
+; It has been modified slightly and extended to provide
+; inter-component dependencies.
+Var AR_SecFlags
+Var AR_RegFlags
+@CPACK_NSIS_SECTION_SELECTED_VARS@
+
+; Loads the "selected" flag for the section named SecName into the
+; variable VarName.
+!macro LoadSectionSelectedIntoVar SecName VarName
+ SectionGetFlags ${${SecName}} $${VarName}
+ IntOp $${VarName} $${VarName} & ${SF_SELECTED} ;Turn off all other bits
+!macroend
+
+; Loads the value of a variable... can we get around this?
+!macro LoadVar VarName
+ IntOp $R0 0 + $${VarName}
+!macroend
+
+; Sets the value of a variable
+!macro StoreVar VarName IntValue
+ IntOp $${VarName} 0 + ${IntValue}
+!macroend
+
+!macro InitSection SecName
+ ; This macro reads component installed flag from the registry and
+ ;changes checked state of the section on the components page.
+ ;Input: section index constant name specified in Section command.
+
+ ClearErrors
+ ;Reading component status from registry
+ ReadRegDWORD $AR_RegFlags HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" "Installed"
+ IfErrors "default_${SecName}"
+ ;Status will stay default if registry value not found
+ ;(component was never installed)
+ IntOp $AR_RegFlags $AR_RegFlags & ${SF_SELECTED} ;Turn off all other bits
+ SectionGetFlags ${${SecName}} $AR_SecFlags ;Reading default section flags
+ IntOp $AR_SecFlags $AR_SecFlags & 0xFFFE ;Turn lowest (enabled) bit off
+ IntOp $AR_SecFlags $AR_RegFlags | $AR_SecFlags ;Change lowest bit
+
+ ; Note whether this component was installed before
+ !insertmacro StoreVar ${SecName}_was_installed $AR_RegFlags
+ IntOp $R0 $AR_RegFlags & $AR_RegFlags
+
+ ;Writing modified flags
+ SectionSetFlags ${${SecName}} $AR_SecFlags
+
+ "default_${SecName}:"
+ !insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected
+!macroend
+
+!macro FinishSection SecName
+ ; This macro reads section flag set by user and removes the section
+ ;if it is not selected.
+ ;Then it writes component installed flag to registry
+ ;Input: section index constant name specified in Section command.
+
+ SectionGetFlags ${${SecName}} $AR_SecFlags ;Reading section flags
+ ;Checking lowest bit:
+ IntOp $AR_SecFlags $AR_SecFlags & ${SF_SELECTED}
+ IntCmp $AR_SecFlags 1 "leave_${SecName}"
+ ;Section is not selected:
+ ;Calling Section uninstall macro and writing zero installed flag
+ !insertmacro "Remove_${${SecName}}"
+ WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \
+ "Installed" 0
+ Goto "exit_${SecName}"
+
+ "leave_${SecName}:"
+ ;Section is selected:
+ WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\Components\${SecName}" \
+ "Installed" 1
+
+ "exit_${SecName}:"
+!macroend
+
+!macro RemoveSection_CPack SecName
+ ; This macro is used to call section's Remove_... macro
+ ;from the uninstaller.
+ ;Input: section index constant name specified in Section command.
+
+ !insertmacro "Remove_${${SecName}}"
+!macroend
+
+; Determine whether the selection of SecName changed
+!macro MaybeSelectionChanged SecName
+ !insertmacro LoadVar ${SecName}_selected
+ SectionGetFlags ${${SecName}} $R1
+ IntOp $R1 $R1 & ${SF_SELECTED} ;Turn off all other bits
+
+ ; See if the status has changed:
+ IntCmp $R0 $R1 "${SecName}_unchanged"
+ !insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected
+
+ IntCmp $R1 ${SF_SELECTED} "${SecName}_was_selected"
+ !insertmacro "Deselect_required_by_${SecName}"
+ goto "${SecName}_unchanged"
+
+ "${SecName}_was_selected:"
+ !insertmacro "Select_${SecName}_depends"
+
+ "${SecName}_unchanged:"
+!macroend
+;--- End of Add/Remove macros ---
+
+;--------------------------------
+;Interface Settings
+
+ !define MUI_HEADERIMAGE
+ !define MUI_ABORTWARNING
+
+;----------------------------------------
+; based upon a script of "Written by KiCHiK 2003-01-18 05:57:02"
+;----------------------------------------
+!verbose 3
+!include "WinMessages.NSH"
+!verbose 4
+;====================================================
+; get_NT_environment
+; Returns: the selected environment
+; Output : head of the stack
+;====================================================
+!macro select_NT_profile UN
+Function ${UN}select_NT_profile
+ StrCmp $ADD_TO_PATH_ALL_USERS "1" 0 environment_single
+ DetailPrint "Selected environment for all users"
+ Push "all"
+ Return
+ environment_single:
+ DetailPrint "Selected environment for current user only."
+ Push "current"
+ Return
+FunctionEnd
+!macroend
+!insertmacro select_NT_profile ""
+!insertmacro select_NT_profile "un."
+;----------------------------------------------------
+!define NT_current_env 'HKCU "Environment"'
+!define NT_all_env 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
+
+!ifndef WriteEnvStr_RegKey
+ !ifdef ALL_USERS
+ !define WriteEnvStr_RegKey \
+ 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
+ !else
+ !define WriteEnvStr_RegKey 'HKCU "Environment"'
+ !endif
+!endif
+
+; AddToPath - Adds the given dir to the search path.
+; Input - head of the stack
+; Note - Win9x systems requires reboot
+
+Function AddToPath
+ Exch $0
+ Push $1
+ Push $2
+ Push $3
+
+ # don't add if the path doesn't exist
+ IfFileExists "$0\*.*" "" AddToPath_done
+
+ ReadEnvStr $1 PATH
+ ; if the path is too long for a NSIS variable NSIS will return a 0
+ ; length string. If we find that, then warn and skip any path
+ ; modification as it will trash the existing path.
+ StrLen $2 $1
+ IntCmp $2 0 CheckPathLength_ShowPathWarning CheckPathLength_Done CheckPathLength_Done
+ CheckPathLength_ShowPathWarning:
+ Messagebox MB_OK|MB_ICONEXCLAMATION "Warning! PATH too long installer unable to modify PATH!"
+ Goto AddToPath_done
+ CheckPathLength_Done:
+ Push "$1;"
+ Push "$0;"
+ Call StrStr
+ Pop $2
+ StrCmp $2 "" "" AddToPath_done
+ Push "$1;"
+ Push "$0\;"
+ Call StrStr
+ Pop $2
+ StrCmp $2 "" "" AddToPath_done
+ GetFullPathName /SHORT $3 $0
+ Push "$1;"
+ Push "$3;"
+ Call StrStr
+ Pop $2
+ StrCmp $2 "" "" AddToPath_done
+ Push "$1;"
+ Push "$3\;"
+ Call StrStr
+ Pop $2
+ StrCmp $2 "" "" AddToPath_done
+
+ Call IsNT
+ Pop $1
+ StrCmp $1 1 AddToPath_NT
+ ; Not on NT
+ StrCpy $1 $WINDIR 2
+ FileOpen $1 "$1\autoexec.bat" a
+ FileSeek $1 -1 END
+ FileReadByte $1 $2
+ IntCmp $2 26 0 +2 +2 # DOS EOF
+ FileSeek $1 -1 END # write over EOF
+ FileWrite $1 "$\r$\nSET PATH=%PATH%;$3$\r$\n"
+ FileClose $1
+ SetRebootFlag true
+ Goto AddToPath_done
+
+ AddToPath_NT:
+ StrCmp $ADD_TO_PATH_ALL_USERS "1" ReadAllKey
+ ReadRegStr $1 ${NT_current_env} "PATH"
+ Goto DoTrim
+ ReadAllKey:
+ ReadRegStr $1 ${NT_all_env} "PATH"
+ DoTrim:
+ StrCmp $1 "" AddToPath_NTdoIt
+ Push $1
+ Call Trim
+ Pop $1
+ StrCpy $0 "$1;$0"
+ AddToPath_NTdoIt:
+ StrCmp $ADD_TO_PATH_ALL_USERS "1" WriteAllKey
+ WriteRegExpandStr ${NT_current_env} "PATH" $0
+ Goto DoSend
+ WriteAllKey:
+ WriteRegExpandStr ${NT_all_env} "PATH" $0
+ DoSend:
+ SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
+
+ AddToPath_done:
+ Pop $3
+ Pop $2
+ Pop $1
+ Pop $0
+FunctionEnd
+
+
+; RemoveFromPath - Remove a given dir from the path
+; Input: head of the stack
+
+Function un.RemoveFromPath
+ Exch $0
+ Push $1
+ Push $2
+ Push $3
+ Push $4
+ Push $5
+ Push $6
+
+ IntFmt $6 "%c" 26 # DOS EOF
+
+ Call un.IsNT
+ Pop $1
+ StrCmp $1 1 unRemoveFromPath_NT
+ ; Not on NT
+ StrCpy $1 $WINDIR 2
+ FileOpen $1 "$1\autoexec.bat" r
+ GetTempFileName $4
+ FileOpen $2 $4 w
+ GetFullPathName /SHORT $0 $0
+ StrCpy $0 "SET PATH=%PATH%;$0"
+ Goto unRemoveFromPath_dosLoop
+
+ unRemoveFromPath_dosLoop:
+ FileRead $1 $3
+ StrCpy $5 $3 1 -1 # read last char
+ StrCmp $5 $6 0 +2 # if DOS EOF
+ StrCpy $3 $3 -1 # remove DOS EOF so we can compare
+ StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoopRemoveLine
+ StrCmp $3 "$0$\n" unRemoveFromPath_dosLoopRemoveLine
+ StrCmp $3 "$0" unRemoveFromPath_dosLoopRemoveLine
+ StrCmp $3 "" unRemoveFromPath_dosLoopEnd
+ FileWrite $2 $3
+ Goto unRemoveFromPath_dosLoop
+ unRemoveFromPath_dosLoopRemoveLine:
+ SetRebootFlag true
+ Goto unRemoveFromPath_dosLoop
+
+ unRemoveFromPath_dosLoopEnd:
+ FileClose $2
+ FileClose $1
+ StrCpy $1 $WINDIR 2
+ Delete "$1\autoexec.bat"
+ CopyFiles /SILENT $4 "$1\autoexec.bat"
+ Delete $4
+ Goto unRemoveFromPath_done
+
+ unRemoveFromPath_NT:
+ StrCmp $ADD_TO_PATH_ALL_USERS "1" unReadAllKey
+ ReadRegStr $1 ${NT_current_env} "PATH"
+ Goto unDoTrim
+ unReadAllKey:
+ ReadRegStr $1 ${NT_all_env} "PATH"
+ unDoTrim:
+ StrCpy $5 $1 1 -1 # copy last char
+ StrCmp $5 ";" +2 # if last char != ;
+ StrCpy $1 "$1;" # append ;
+ Push $1
+ Push "$0;"
+ Call un.StrStr ; Find `$0;` in $1
+ Pop $2 ; pos of our dir
+ StrCmp $2 "" unRemoveFromPath_done
+ ; else, it is in path
+ # $0 - path to add
+ # $1 - path var
+ StrLen $3 "$0;"
+ StrLen $4 $2
+ StrCpy $5 $1 -$4 # $5 is now the part before the path to remove
+ StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove
+ StrCpy $3 $5$6
+
+ StrCpy $5 $3 1 -1 # copy last char
+ StrCmp $5 ";" 0 +2 # if last char == ;
+ StrCpy $3 $3 -1 # remove last char
+
+ StrCmp $ADD_TO_PATH_ALL_USERS "1" unWriteAllKey
+ WriteRegExpandStr ${NT_current_env} "PATH" $3
+ Goto unDoSend
+ unWriteAllKey:
+ WriteRegExpandStr ${NT_all_env} "PATH" $3
+ unDoSend:
+ SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
+
+ unRemoveFromPath_done:
+ Pop $6
+ Pop $5
+ Pop $4
+ Pop $3
+ Pop $2
+ Pop $1
+ Pop $0
+FunctionEnd
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Uninstall sutff
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+###########################################
+# Utility Functions #
+###########################################
+
+;====================================================
+; IsNT - Returns 1 if the current system is NT, 0
+; otherwise.
+; Output: head of the stack
+;====================================================
+; IsNT
+; no input
+; output, top of the stack = 1 if NT or 0 if not
+;
+; Usage:
+; Call IsNT
+; Pop $R0
+; ($R0 at this point is 1 or 0)
+
+!macro IsNT un
+Function ${un}IsNT
+ Push $0
+ ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
+ StrCmp $0 "" 0 IsNT_yes
+ ; we are not NT.
+ Pop $0
+ Push 0
+ Return
+
+ IsNT_yes:
+ ; NT!!!
+ Pop $0
+ Push 1
+FunctionEnd
+!macroend
+!insertmacro IsNT ""
+!insertmacro IsNT "un."
+
+; StrStr
+; input, top of stack = string to search for
+; top of stack-1 = string to search in
+; output, top of stack (replaces with the portion of the string remaining)
+; modifies no other variables.
+;
+; Usage:
+; Push "this is a long ass string"
+; Push "ass"
+; Call StrStr
+; Pop $R0
+; ($R0 at this point is "ass string")
+
+!macro StrStr un
+Function ${un}StrStr
+Exch $R1 ; st=haystack,old$R1, $R1=needle
+ Exch ; st=old$R1,haystack
+ Exch $R2 ; st=old$R1,old$R2, $R2=haystack
+ Push $R3
+ Push $R4
+ Push $R5
+ StrLen $R3 $R1
+ StrCpy $R4 0
+ ; $R1=needle
+ ; $R2=haystack
+ ; $R3=len(needle)
+ ; $R4=cnt
+ ; $R5=tmp
+ loop:
+ StrCpy $R5 $R2 $R3 $R4
+ StrCmp $R5 $R1 done
+ StrCmp $R5 "" done
+ IntOp $R4 $R4 + 1
+ Goto loop
+done:
+ StrCpy $R1 $R2 "" $R4
+ Pop $R5
+ Pop $R4
+ Pop $R3
+ Pop $R2
+ Exch $R1
+FunctionEnd
+!macroend
+!insertmacro StrStr ""
+!insertmacro StrStr "un."
+
+Function Trim ; Added by Pelaca
+ Exch $R1
+ Push $R2
+Loop:
+ StrCpy $R2 "$R1" 1 -1
+ StrCmp "$R2" " " RTrim
+ StrCmp "$R2" "$\n" RTrim
+ StrCmp "$R2" "$\r" RTrim
+ StrCmp "$R2" ";" RTrim
+ GoTo Done
+RTrim:
+ StrCpy $R1 "$R1" -1
+ Goto Loop
+Done:
+ Pop $R2
+ Exch $R1
+FunctionEnd
+
+Function ConditionalAddToRegisty
+ Pop $0
+ Pop $1
+ StrCmp "$0" "" ConditionalAddToRegisty_EmptyString
+ WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" \
+ "$1" "$0"
+ ;MessageBox MB_OK "Set Registry: '$1' to '$0'"
+ DetailPrint "Set install registry entry: '$1' to '$0'"
+ ConditionalAddToRegisty_EmptyString:
+FunctionEnd
+
+;--------------------------------
+
+!ifdef CPACK_USES_DOWNLOAD
+Function DownloadFile
+ IfFileExists $INSTDIR\* +2
+ CreateDirectory $INSTDIR
+ Pop $0
+
+ ; Skip if already downloaded
+ IfFileExists $INSTDIR\$0 0 +2
+ Return
+
+ StrCpy $1 "@CPACK_DOWNLOAD_SITE@"
+
+ try_again:
+ NSISdl::download "$1/$0" "$INSTDIR\$0"
+
+ Pop $1
+ StrCmp $1 "success" success
+ StrCmp $1 "Cancelled" cancel
+ MessageBox MB_OK "Download failed: $1"
+ cancel:
+ Return
+ success:
+FunctionEnd
+!endif
+
+;--------------------------------
+; Define some macro setting for the gui
+@CPACK_NSIS_INSTALLER_MUI_ICON_CODE@
+@CPACK_NSIS_INSTALLER_ICON_CODE@
+@CPACK_NSIS_INSTALLER_MUI_WELCOMEFINISH_CODE@
+@CPACK_NSIS_INSTALLER_MUI_UNWELCOMEFINISH_CODE@
+@CPACK_NSIS_INSTALLER_MUI_COMPONENTS_DESC@
+@CPACK_NSIS_INSTALLER_MUI_FINISHPAGE_RUN_CODE@
+
+;--------------------------------
+;Pages
+ @CPACK_NSIS_INSTALLER_WELCOME_TITLE_CODE@
+ @CPACK_NSIS_INSTALLER_WELCOME_TITLE_3LINES_CODE@
+ !insertmacro MUI_PAGE_WELCOME
+
+ !insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@"
+ Page custom InstallOptionsPage
+ !insertmacro MUI_PAGE_DIRECTORY
+
+ ;Start Menu Folder Page Configuration
+ !define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX"
+ !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
+ !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
+ !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
+
+ @CPACK_NSIS_PAGE_COMPONENTS@
+
+ !insertmacro MUI_PAGE_INSTFILES
+ @CPACK_NSIS_INSTALLER_FINISH_TITLE_CODE@
+ @CPACK_NSIS_INSTALLER_FINISH_TITLE_3LINES_CODE@
+ !insertmacro MUI_PAGE_FINISH
+
+ !insertmacro MUI_UNPAGE_CONFIRM
+ !insertmacro MUI_UNPAGE_INSTFILES
+
+;--------------------------------
+;Languages
+
+ !insertmacro MUI_LANGUAGE "English" ;first language is the default language
+ !insertmacro MUI_LANGUAGE "Albanian"
+ !insertmacro MUI_LANGUAGE "Arabic"
+ !insertmacro MUI_LANGUAGE "Basque"
+ !insertmacro MUI_LANGUAGE "Belarusian"
+ !insertmacro MUI_LANGUAGE "Bosnian"
+ !insertmacro MUI_LANGUAGE "Breton"
+ !insertmacro MUI_LANGUAGE "Bulgarian"
+ !insertmacro MUI_LANGUAGE "Croatian"
+ !insertmacro MUI_LANGUAGE "Czech"
+ !insertmacro MUI_LANGUAGE "Danish"
+ !insertmacro MUI_LANGUAGE "Dutch"
+ !insertmacro MUI_LANGUAGE "Estonian"
+ !insertmacro MUI_LANGUAGE "Farsi"
+ !insertmacro MUI_LANGUAGE "Finnish"
+ !insertmacro MUI_LANGUAGE "French"
+ !insertmacro MUI_LANGUAGE "German"
+ !insertmacro MUI_LANGUAGE "Greek"
+ !insertmacro MUI_LANGUAGE "Hebrew"
+ !insertmacro MUI_LANGUAGE "Hungarian"
+ !insertmacro MUI_LANGUAGE "Icelandic"
+ !insertmacro MUI_LANGUAGE "Indonesian"
+ !insertmacro MUI_LANGUAGE "Irish"
+ !insertmacro MUI_LANGUAGE "Italian"
+ !insertmacro MUI_LANGUAGE "Japanese"
+ !insertmacro MUI_LANGUAGE "Korean"
+ !insertmacro MUI_LANGUAGE "Kurdish"
+ !insertmacro MUI_LANGUAGE "Latvian"
+ !insertmacro MUI_LANGUAGE "Lithuanian"
+ !insertmacro MUI_LANGUAGE "Luxembourgish"
+ !insertmacro MUI_LANGUAGE "Macedonian"
+ !insertmacro MUI_LANGUAGE "Malay"
+ !insertmacro MUI_LANGUAGE "Mongolian"
+ !insertmacro MUI_LANGUAGE "Norwegian"
+ !insertmacro MUI_LANGUAGE "Polish"
+ !insertmacro MUI_LANGUAGE "Portuguese"
+ !insertmacro MUI_LANGUAGE "PortugueseBR"
+ !insertmacro MUI_LANGUAGE "Romanian"
+ !insertmacro MUI_LANGUAGE "Russian"
+ !insertmacro MUI_LANGUAGE "Serbian"
+ !insertmacro MUI_LANGUAGE "SerbianLatin"
+ !insertmacro MUI_LANGUAGE "SimpChinese"
+ !insertmacro MUI_LANGUAGE "Slovak"
+ !insertmacro MUI_LANGUAGE "Slovenian"
+ !insertmacro MUI_LANGUAGE "Spanish"
+ !insertmacro MUI_LANGUAGE "Swedish"
+ !insertmacro MUI_LANGUAGE "Thai"
+ !insertmacro MUI_LANGUAGE "TradChinese"
+ !insertmacro MUI_LANGUAGE "Turkish"
+ !insertmacro MUI_LANGUAGE "Ukrainian"
+ !insertmacro MUI_LANGUAGE "Welsh"
+
+;--------------------------------
+;Reserve Files
+
+ ;These files should be inserted before other files in the data block
+ ;Keep these lines before any File command
+ ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)
+
+ ReserveFile "NSIS.InstallOptions.ini"
+ !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
+
+ ; for UserInfo::GetName and UserInfo::GetAccountType
+ ReserveFile /plugin 'UserInfo.dll'
+
+;--------------------------------
+; Installation types
+@CPACK_NSIS_INSTALLATION_TYPES@
+
+;--------------------------------
+; Component sections
+@CPACK_NSIS_COMPONENT_SECTIONS@
+
+;--------------------------------
+;Installer Sections
+
+Section "-Core installation"
+ ;Use the entire tree produced by the INSTALL target. Keep the
+ ;list of directories here in sync with the RMDir commands below.
+ SetOutPath "$INSTDIR"
+ @CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS@
+ @CPACK_NSIS_FULL_INSTALL@
+
+ ;Store installation folder
+ WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR
+
+ ;Create uninstaller
+ WriteUninstaller "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
+ Push "DisplayName"
+ Push "@CPACK_NSIS_DISPLAY_NAME@"
+ Call ConditionalAddToRegisty
+ Push "DisplayVersion"
+ Push "@CPACK_PACKAGE_VERSION@"
+ Call ConditionalAddToRegisty
+ Push "Publisher"
+ Push "@CPACK_PACKAGE_VENDOR@"
+ Call ConditionalAddToRegisty
+ Push "UninstallString"
+ Push "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
+ Call ConditionalAddToRegisty
+ Push "NoRepair"
+ Push "1"
+ Call ConditionalAddToRegisty
+
+ !ifdef CPACK_NSIS_ADD_REMOVE
+ ;Create add/remove functionality
+ Push "ModifyPath"
+ Push "$INSTDIR\AddRemove.exe"
+ Call ConditionalAddToRegisty
+ !else
+ Push "NoModify"
+ Push "1"
+ Call ConditionalAddToRegisty
+ !endif
+
+ ; Optional registration
+ Push "DisplayIcon"
+ Push "$INSTDIR\@CPACK_NSIS_INSTALLED_ICON_NAME@"
+ Call ConditionalAddToRegisty
+ Push "HelpLink"
+ Push "@CPACK_NSIS_HELP_LINK@"
+ Call ConditionalAddToRegisty
+ Push "URLInfoAbout"
+ Push "@CPACK_NSIS_URL_INFO_ABOUT@"
+ Call ConditionalAddToRegisty
+ Push "Contact"
+ Push "@CPACK_NSIS_CONTACT@"
+ Call ConditionalAddToRegisty
+ !insertmacro MUI_INSTALLOPTIONS_READ $INSTALL_DESKTOP "NSIS.InstallOptions.ini" "Field 5" "State"
+ !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+
+ ;Create shortcuts
+ CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
+@CPACK_NSIS_CREATE_ICONS@
+@CPACK_NSIS_CREATE_ICONS_EXTRA@
+ CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
+
+ ;Read a value from an InstallOptions INI file
+ !insertmacro MUI_INSTALLOPTIONS_READ $DO_NOT_ADD_TO_PATH "NSIS.InstallOptions.ini" "Field 2" "State"
+ !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_ALL_USERS "NSIS.InstallOptions.ini" "Field 3" "State"
+ !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_CURRENT_USER "NSIS.InstallOptions.ini" "Field 4" "State"
+
+ ; Write special uninstall registry entries
+ Push "StartMenu"
+ Push "$STARTMENU_FOLDER"
+ Call ConditionalAddToRegisty
+ Push "DoNotAddToPath"
+ Push "$DO_NOT_ADD_TO_PATH"
+ Call ConditionalAddToRegisty
+ Push "AddToPathAllUsers"
+ Push "$ADD_TO_PATH_ALL_USERS"
+ Call ConditionalAddToRegisty
+ Push "AddToPathCurrentUser"
+ Push "$ADD_TO_PATH_CURRENT_USER"
+ Call ConditionalAddToRegisty
+ Push "InstallToDesktop"
+ Push "$INSTALL_DESKTOP"
+ Call ConditionalAddToRegisty
+
+ !insertmacro MUI_STARTMENU_WRITE_END
+
+@CPACK_NSIS_EXTRA_INSTALL_COMMANDS@
+
+SectionEnd
+
+Section "-Add to path"
+ Push $INSTDIR\bin
+ StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 doNotAddToPath
+ StrCmp $DO_NOT_ADD_TO_PATH "1" doNotAddToPath 0
+ Call AddToPath
+ doNotAddToPath:
+SectionEnd
+
+;--------------------------------
+; Create custom pages
+Function InstallOptionsPage
+ !insertmacro MUI_HEADER_TEXT "Install Options" "Choose options for installing @CPACK_NSIS_PACKAGE_NAME@"
+ !insertmacro MUI_INSTALLOPTIONS_DISPLAY "NSIS.InstallOptions.ini"
+
+FunctionEnd
+
+;--------------------------------
+; determine admin versus local install
+Function un.onInit
+
+ ClearErrors
+ UserInfo::GetName
+ IfErrors noLM
+ Pop $0
+ UserInfo::GetAccountType
+ Pop $1
+ StrCmp $1 "Admin" 0 +3
+ SetShellVarContext all
+ ;MessageBox MB_OK 'User "$0" is in the Admin group'
+ Goto done
+ StrCmp $1 "Power" 0 +3
+ SetShellVarContext all
+ ;MessageBox MB_OK 'User "$0" is in the Power Users group'
+ Goto done
+
+ noLM:
+ ;Get installation folder from registry if available
+
+ done:
+
+FunctionEnd
+
+;--- Add/Remove callback functions: ---
+!macro SectionList MacroName
+ ;This macro used to perform operation on multiple sections.
+ ;List all of your components in following manner here.
+@CPACK_NSIS_COMPONENT_SECTION_LIST@
+!macroend
+
+Section -FinishComponents
+ ;Removes unselected components and writes component status to registry
+ !insertmacro SectionList "FinishSection"
+
+!ifdef CPACK_NSIS_ADD_REMOVE
+ ; Get the name of the installer executable
+ System::Call 'kernel32::GetModuleFileNameA(i 0, t .R0, i 1024) i r1'
+ StrCpy $R3 $R0
+
+ ; Strip off the last 13 characters, to see if we have AddRemove.exe
+ StrLen $R1 $R0
+ IntOp $R1 $R0 - 13
+ StrCpy $R2 $R0 13 $R1
+ StrCmp $R2 "AddRemove.exe" addremove_installed
+
+ ; We're not running AddRemove.exe, so install it
+ CopyFiles $R3 $INSTDIR\AddRemove.exe
+
+ addremove_installed:
+!endif
+SectionEnd
+;--- End of Add/Remove callback functions ---
+
+;--------------------------------
+; Component dependencies
+Function .onSelChange
+ !insertmacro SectionList MaybeSelectionChanged
+FunctionEnd
+
+;--------------------------------
+;Uninstaller Section
+
+Section "Uninstall"
+ ReadRegStr $START_MENU SHCTX \
+ "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "StartMenu"
+ ;MessageBox MB_OK "Start menu is in: $START_MENU"
+ ReadRegStr $DO_NOT_ADD_TO_PATH SHCTX \
+ "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "DoNotAddToPath"
+ ReadRegStr $ADD_TO_PATH_ALL_USERS SHCTX \
+ "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "AddToPathAllUsers"
+ ReadRegStr $ADD_TO_PATH_CURRENT_USER SHCTX \
+ "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "AddToPathCurrentUser"
+ ;MessageBox MB_OK "Add to path: $DO_NOT_ADD_TO_PATH all users: $ADD_TO_PATH_ALL_USERS"
+ ReadRegStr $INSTALL_DESKTOP SHCTX \
+ "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "InstallToDesktop"
+ ;MessageBox MB_OK "Install to desktop: $INSTALL_DESKTOP "
+
+@CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS@
+
+ ;Remove files we installed.
+ ;Keep the list of directories here in sync with the File commands above.
+@CPACK_NSIS_DELETE_FILES@
+@CPACK_NSIS_DELETE_DIRECTORIES@
+
+!ifdef CPACK_NSIS_ADD_REMOVE
+ ;Remove the add/remove program
+ Delete "$INSTDIR\AddRemove.exe"
+!endif
+
+ ;Remove the uninstaller itself.
+ Delete "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
+ DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
+
+ ;Remove the installation directory if it is empty.
+ RMDir "$INSTDIR"
+
+ ; Remove the registry entries.
+ DeleteRegKey SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
+
+ ; Removes all optional components
+ !insertmacro SectionList "RemoveSection_CPack"
+
+ !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
+
+ Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
+@CPACK_NSIS_DELETE_ICONS@
+@CPACK_NSIS_DELETE_ICONS_EXTRA@
+
+ ;Delete empty start menu parent directories
+ StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
+
+ startMenuDeleteLoop:
+ ClearErrors
+ RMDir $MUI_TEMP
+ GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
+
+ IfErrors startMenuDeleteLoopDone
+
+ StrCmp "$MUI_TEMP" "$SMPROGRAMS" startMenuDeleteLoopDone startMenuDeleteLoop
+ startMenuDeleteLoopDone:
+
+ ; If the user changed the shortcut, then untinstall may not work. This should
+ ; try to fix it.
+ StrCpy $MUI_TEMP "$START_MENU"
+ Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
+@CPACK_NSIS_DELETE_ICONS_EXTRA@
+
+ ;Delete empty start menu parent directories
+ StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
+
+ secondStartMenuDeleteLoop:
+ ClearErrors
+ RMDir $MUI_TEMP
+ GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
+
+ IfErrors secondStartMenuDeleteLoopDone
+
+ StrCmp "$MUI_TEMP" "$SMPROGRAMS" secondStartMenuDeleteLoopDone secondStartMenuDeleteLoop
+ secondStartMenuDeleteLoopDone:
+
+ DeleteRegKey /ifempty SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
+
+ Push $INSTDIR\bin
+ StrCmp $DO_NOT_ADD_TO_PATH_ "1" doNotRemoveFromPath 0
+ Call un.RemoveFromPath
+ doNotRemoveFromPath:
+SectionEnd
+
+;--------------------------------
+; determine admin versus local install
+; Is install for "AllUsers" or "JustMe"?
+; Default to "JustMe" - set to "AllUsers" if admin or on Win9x
+; This function is used for the very first "custom page" of the installer.
+; This custom page does not show up visibly, but it executes prior to the
+; first visible page and sets up $INSTDIR properly...
+; Choose different default installation folder based on SV_ALLUSERS...
+; "Program Files" for AllUsers, "My Documents" for JustMe...
+
+Function .onInit
+ StrCmp "@CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL@" "ON" 0 inst
+
+ ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "UninstallString"
+ StrCmp $0 "" inst
+
+ MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION \
+ "@CPACK_NSIS_PACKAGE_NAME@ is already installed. $\n$\nDo you want to uninstall the old version before installing the new one?" \
+ /SD IDYES IDYES uninst IDNO inst
+ Abort
+
+;Run the uninstaller
+uninst:
+ ClearErrors
+ StrLen $2 "\Uninstall.exe"
+ StrCpy $3 $0 -$2 # remove "\Uninstall.exe" from UninstallString to get path
+ ExecWait '"$0" /S _?=$3' ;Do not copy the uninstaller to a temp file
+
+ IfErrors uninst_failed inst
+uninst_failed:
+ MessageBox MB_OK|MB_ICONSTOP "Uninstall failed."
+ Abort
+
+
+inst:
+ ; Reads components status for registry
+ !insertmacro SectionList "InitSection"
+
+ ; check to see if /D has been used to change
+ ; the install directory by comparing it to the
+ ; install directory that is expected to be the
+ ; default
+ StrCpy $IS_DEFAULT_INSTALLDIR 0
+ StrCmp "$INSTDIR" "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@" 0 +2
+ StrCpy $IS_DEFAULT_INSTALLDIR 1
+
+ StrCpy $SV_ALLUSERS "JustMe"
+ ; if default install dir then change the default
+ ; if it is installed for JustMe
+ StrCmp "$IS_DEFAULT_INSTALLDIR" "1" 0 +2
+ StrCpy $INSTDIR "$DOCUMENTS\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
+
+ ClearErrors
+ UserInfo::GetName
+ IfErrors noLM
+ Pop $0
+ UserInfo::GetAccountType
+ Pop $1
+ StrCmp $1 "Admin" 0 +4
+ SetShellVarContext all
+ ;MessageBox MB_OK 'User "$0" is in the Admin group'
+ StrCpy $SV_ALLUSERS "AllUsers"
+ Goto done
+ StrCmp $1 "Power" 0 +4
+ SetShellVarContext all
+ ;MessageBox MB_OK 'User "$0" is in the Power Users group'
+ StrCpy $SV_ALLUSERS "AllUsers"
+ Goto done
+
+ noLM:
+ StrCpy $SV_ALLUSERS "AllUsers"
+ ;Get installation folder from registry if available
+
+ done:
+ StrCmp $SV_ALLUSERS "AllUsers" 0 +3
+ StrCmp "$IS_DEFAULT_INSTALLDIR" "1" 0 +2
+ StrCpy $INSTDIR "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
+
+ StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 noOptionsPage
+ !insertmacro MUI_INSTALLOPTIONS_EXTRACT "NSIS.InstallOptions.ini"
+
+ noOptionsPage:
+FunctionEnd
diff --git a/share/cmake-3.16/Modules/Internal/CPack/WIX.template.in b/share/cmake-3.17/Modules/Internal/CPack/WIX.template.in
index c4fc83a..c4fc83a 100644
--- a/share/cmake-3.16/Modules/Internal/CPack/WIX.template.in
+++ b/share/cmake-3.17/Modules/Internal/CPack/WIX.template.in
diff --git a/share/cmake-3.17/Modules/Internal/FeatureTesting.cmake b/share/cmake-3.17/Modules/Internal/FeatureTesting.cmake
new file mode 100644
index 0000000..72d96b3
--- /dev/null
+++ b/share/cmake-3.17/Modules/Internal/FeatureTesting.cmake
@@ -0,0 +1,119 @@
+
+macro(_record_compiler_features lang compile_flags feature_list)
+ include("${CMAKE_ROOT}/Modules/Compiler/${CMAKE_${lang}_COMPILER_ID}-${lang}-FeatureTests.cmake" OPTIONAL)
+
+ string(TOLOWER ${lang} lang_lc)
+ file(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.bin")
+ file(WRITE "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}" "
+ const char features[] = {\"\\n\"\n")
+
+ get_property(known_features GLOBAL PROPERTY CMAKE_${lang}_KNOWN_FEATURES)
+
+ foreach(feature ${known_features})
+ if (_cmake_feature_test_${feature})
+ if (${_cmake_feature_test_${feature}} STREQUAL 1)
+ set(_feature_condition "\"1\" ")
+ else()
+ set(_feature_condition "#if ${_cmake_feature_test_${feature}}\n\"1\"\n#else\n\"0\"\n#endif\n")
+ endif()
+ file(APPEND "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}" "\"${lang}_FEATURE:\"\n${_feature_condition}\"${feature}\\n\"\n")
+ endif()
+ endforeach()
+ file(APPEND "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}"
+ "\n};\n\nint main(int argc, char** argv) { (void)argv; return features[argc]; }\n")
+
+ if(CMAKE_${lang}_LINK_WITH_STANDARD_COMPILE_OPTION)
+ # This toolchain requires use of the language standard flag
+ # when linking in order to use the matching standard library.
+ set(compile_flags_for_link "${compile_flags}")
+ else()
+ set(compile_flags_for_link "")
+ endif()
+
+ try_compile(CMAKE_${lang}_FEATURE_TEST
+ ${CMAKE_BINARY_DIR} "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}"
+ COMPILE_DEFINITIONS "${compile_flags}"
+ LINK_LIBRARIES "${compile_flags_for_link}"
+ OUTPUT_VARIABLE _output
+ COPY_FILE "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.bin"
+ COPY_FILE_ERROR _copy_error
+ )
+ if(CMAKE_${lang}_FEATURE_TEST AND NOT _copy_error)
+ set(_result 0)
+ else()
+ set(_result 255)
+ endif()
+ unset(CMAKE_${lang}_FEATURE_TEST CACHE)
+ unset(compile_flags_for_link)
+
+ if (_result EQUAL 0)
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "\n\nDetecting ${lang} [${compile_flags}] compiler features compiled with the following output:\n${_output}\n\n")
+ if(EXISTS "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.bin")
+ file(STRINGS "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.bin"
+ features REGEX "${lang}_FEATURE:.*")
+ foreach(info ${features})
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ " Feature record: ${info}\n")
+ string(REPLACE "${lang}_FEATURE:" "" info ${info})
+ string(SUBSTRING ${info} 0 1 has_feature)
+ if(has_feature)
+ string(REGEX REPLACE "^1" "" feature ${info})
+ list(APPEND ${feature_list} ${feature})
+ endif()
+ endforeach()
+ endif()
+ else()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Detecting ${lang} [${compile_flags}] compiler features failed to compile with the following output:\n${_output}\n${_copy_error}\n\n")
+ endif()
+endmacro()
+
+macro(_record_compiler_features_c std)
+ list(APPEND CMAKE_C${std}_COMPILE_FEATURES c_std_${std})
+
+ get_property(lang_level_has_features GLOBAL PROPERTY CMAKE_C${std}_KNOWN_FEATURES)
+ if(lang_level_has_features)
+ _record_compiler_features(C "${CMAKE_C${std}_STANDARD_COMPILE_OPTION}" CMAKE_C${std}_COMPILE_FEATURES)
+ endif()
+ unset(lang_level_has_features)
+endmacro()
+
+macro(_record_compiler_features_cxx std)
+ list(APPEND CMAKE_CXX${std}_COMPILE_FEATURES cxx_std_${std})
+
+ get_property(lang_level_has_features GLOBAL PROPERTY CMAKE_CXX${std}_KNOWN_FEATURES)
+ if(lang_level_has_features)
+ _record_compiler_features(CXX "${CMAKE_CXX${std}_STANDARD_COMPILE_OPTION}" CMAKE_CXX${std}_COMPILE_FEATURES)
+ endif()
+ unset(lang_level_has_features)
+endmacro()
+
+macro(_record_compiler_features_cuda std)
+ list(APPEND CMAKE_CUDA${std}_COMPILE_FEATURES cuda_std_${std})
+
+ get_property(lang_level_has_features GLOBAL PROPERTY CMAKE_CUDA${std}_KNOWN_FEATURES)
+ if(lang_level_has_features)
+ _record_compiler_features(CUDA "${CMAKE_CUDA${std}_STANDARD_COMPILE_OPTION}" CMAKE_CUDA${std}_COMPILE_FEATURES)
+ endif()
+ unset(lang_level_has_features)
+endmacro()
+
+macro(_has_compiler_features lang level compile_flags feature_list)
+ # presume all known features are supported
+ get_property(known_features GLOBAL PROPERTY CMAKE_${lang}${level}_KNOWN_FEATURES)
+ list(APPEND ${feature_list} ${known_features})
+endmacro()
+
+macro(_has_compiler_features_c std)
+ list(APPEND CMAKE_C${std}_COMPILE_FEATURES c_std_${std})
+ _has_compiler_features(C ${std} "${CMAKE_C${std}_STANDARD_COMPILE_OPTION}" CMAKE_C${std}_COMPILE_FEATURES)
+endmacro()
+macro(_has_compiler_features_cxx std)
+ list(APPEND CMAKE_CXX${std}_COMPILE_FEATURES cxx_std_${std})
+ _has_compiler_features(CXX ${std} "${CMAKE_CXX${std}_STANDARD_COMPILE_OPTION}" CMAKE_CXX${std}_COMPILE_FEATURES)
+endmacro()
+macro(_has_compiler_features_cuda std)
+ list(APPEND CMAKE_CUDA${std}_COMPILE_FEATURES cuda_std_${std})
+ _has_compiler_features(CUDA ${std} "${CMAKE_CUDA${std}_STANDARD_COMPILE_OPTION}" CMAKE_CUDA${std}_COMPILE_FEATURES)
+endmacro()
diff --git a/share/cmake-3.16/Modules/KDE3Macros.cmake b/share/cmake-3.17/Modules/KDE3Macros.cmake
index 1c353ba..1c353ba 100644
--- a/share/cmake-3.16/Modules/KDE3Macros.cmake
+++ b/share/cmake-3.17/Modules/KDE3Macros.cmake
diff --git a/share/cmake-3.16/Modules/MacOSXBundleInfo.plist.in b/share/cmake-3.17/Modules/MacOSXBundleInfo.plist.in
index a4009bc..a4009bc 100644
--- a/share/cmake-3.16/Modules/MacOSXBundleInfo.plist.in
+++ b/share/cmake-3.17/Modules/MacOSXBundleInfo.plist.in
diff --git a/share/cmake-3.16/Modules/MacOSXFrameworkInfo.plist.in b/share/cmake-3.17/Modules/MacOSXFrameworkInfo.plist.in
index 18eaef2..18eaef2 100644
--- a/share/cmake-3.16/Modules/MacOSXFrameworkInfo.plist.in
+++ b/share/cmake-3.17/Modules/MacOSXFrameworkInfo.plist.in
diff --git a/share/cmake-3.16/Modules/MacroAddFileDependencies.cmake b/share/cmake-3.17/Modules/MacroAddFileDependencies.cmake
index ca60b57..ca60b57 100644
--- a/share/cmake-3.16/Modules/MacroAddFileDependencies.cmake
+++ b/share/cmake-3.17/Modules/MacroAddFileDependencies.cmake
diff --git a/share/cmake-3.16/Modules/MatlabTestsRedirect.cmake b/share/cmake-3.17/Modules/MatlabTestsRedirect.cmake
index fc36fc3..fc36fc3 100644
--- a/share/cmake-3.16/Modules/MatlabTestsRedirect.cmake
+++ b/share/cmake-3.17/Modules/MatlabTestsRedirect.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-Clang-C.cmake b/share/cmake-3.17/Modules/Platform/AIX-Clang-C.cmake
index 0e8a1c0..0e8a1c0 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-Clang-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-Clang-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-Clang-CXX.cmake b/share/cmake-3.17/Modules/Platform/AIX-Clang-CXX.cmake
index 6b9110e..6b9110e 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-Clang-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-Clang-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-GNU-ASM.cmake b/share/cmake-3.17/Modules/Platform/AIX-GNU-ASM.cmake
index c256df6..c256df6 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-GNU-ASM.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-GNU-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/AIX-GNU-C.cmake
index f49d528..f49d528 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/AIX-GNU-CXX.cmake
index d047801..d047801 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-GNU-Fortran.cmake b/share/cmake-3.17/Modules/Platform/AIX-GNU-Fortran.cmake
index 07772a7..07772a7 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-GNU-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-GNU.cmake b/share/cmake-3.17/Modules/Platform/AIX-GNU.cmake
new file mode 100644
index 0000000..5a532c7
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/AIX-GNU.cmake
@@ -0,0 +1,33 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This module is shared by multiple languages; use include blocker.
+if(__AIX_COMPILER_GNU)
+ return()
+endif()
+set(__AIX_COMPILER_GNU 1)
+
+macro(__aix_compiler_gnu lang)
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-blibpath:")
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":")
+ string(APPEND CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS " -Wl,-bnoipath")
+ set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,-bexpall") # CMP0065 old behavior
+ set(CMAKE_${lang}_USE_IMPLICIT_LINK_DIRECTORIES_IN_RUNTIME_PATH 1)
+
+ set(CMAKE_${lang}_LINK_FLAGS "-Wl,-bnoipath")
+ if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 7 OR CMAKE_SYSTEM_VERSION VERSION_LESS 7.1)
+ unset(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY)
+ endif()
+
+ # Construct the export list ourselves to pass only the object files so
+ # that we export only the symbols actually provided by the sources.
+ set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
+ "\"${CMAKE_ROOT}/Modules/Platform/AIX/ExportImportList\" -o <OBJECT_DIR>/exports.exp <AIX_EXPORTS> <OBJECTS>"
+ "<CMAKE_${lang}_COMPILER> <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> -Wl,-bE:<OBJECT_DIR>/exports.exp <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>"
+ )
+
+ set(CMAKE_${lang}_LINK_EXECUTABLE_WITH_EXPORTS
+ "\"${CMAKE_ROOT}/Modules/Platform/AIX/ExportImportList\" -o <TARGET_IMPLIB> -l . <AIX_EXPORTS> <OBJECTS>"
+ "<CMAKE_${lang}_COMPILER> <FLAGS> <CMAKE_${lang}_LINK_FLAGS> -Wl,-bE:<TARGET_IMPLIB> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/AIX-VisualAge-C.cmake b/share/cmake-3.17/Modules/Platform/AIX-VisualAge-C.cmake
index 67b3171..67b3171 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-VisualAge-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-VisualAge-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-VisualAge-CXX.cmake b/share/cmake-3.17/Modules/Platform/AIX-VisualAge-CXX.cmake
index 7894d24..7894d24 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-VisualAge-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-VisualAge-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-VisualAge-Fortran.cmake b/share/cmake-3.17/Modules/Platform/AIX-VisualAge-Fortran.cmake
index 19e59d6..19e59d6 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-VisualAge-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-VisualAge-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-XL-ASM.cmake b/share/cmake-3.17/Modules/Platform/AIX-XL-ASM.cmake
index ea0944b..ea0944b 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-XL-ASM.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-XL-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-XL-C.cmake b/share/cmake-3.17/Modules/Platform/AIX-XL-C.cmake
index cbfd58b..cbfd58b 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-XL-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-XL-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-XL-CXX.cmake b/share/cmake-3.17/Modules/Platform/AIX-XL-CXX.cmake
index 78baef5..78baef5 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-XL-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-XL-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-XL-Fortran.cmake b/share/cmake-3.17/Modules/Platform/AIX-XL-Fortran.cmake
index 6d4f655..6d4f655 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-XL-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-XL-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XL.cmake b/share/cmake-3.17/Modules/Platform/AIX-XL.cmake
new file mode 100644
index 0000000..2a8c159
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/AIX-XL.cmake
@@ -0,0 +1,41 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This module is shared by multiple languages; use include blocker.
+if(__AIX_COMPILER_XL)
+ return()
+endif()
+set(__AIX_COMPILER_XL 1)
+
+macro(__aix_compiler_xl lang)
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-blibpath:")
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":")
+ string(APPEND CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS " -Wl,-bnoipath")
+ set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-Wl,-bexpall") # CMP0065 old behavior
+ set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS " ")
+ set(CMAKE_SHARED_MODULE_${lang}_FLAGS " ")
+
+ set(CMAKE_${lang}_LINK_FLAGS "-Wl,-bnoipath")
+
+ set(_OBJECTS " <OBJECTS>")
+ if(DEFINED CMAKE_XL_CreateExportList AND CMAKE_XL_CreateExportList STREQUAL "")
+ # Prior to CMake 3.16, CMAKE_XL_CreateExportList held the path to the XL CreateExportList tool.
+ # Users could set it to an empty value to skip automatic exports in favor of manual -bE: flags.
+ # Preserve that behavior for compatibility (even though it was undocumented).
+ set(_OBJECTS "")
+ endif()
+
+ # Construct the export list ourselves to pass only the object files so
+ # that we export only the symbols actually provided by the sources.
+ set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
+ "\"${CMAKE_ROOT}/Modules/Platform/AIX/ExportImportList\" -o <OBJECT_DIR>/exports.exp <AIX_EXPORTS>${_OBJECTS}"
+ "<CMAKE_${lang}_COMPILER> <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> -Wl,-bE:<OBJECT_DIR>/exports.exp <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>"
+ )
+
+ set(CMAKE_${lang}_LINK_EXECUTABLE_WITH_EXPORTS
+ "\"${CMAKE_ROOT}/Modules/Platform/AIX/ExportImportList\" -o <TARGET_IMPLIB> -l . <AIX_EXPORTS> <OBJECTS>"
+ "<CMAKE_${lang}_COMPILER> <FLAGS> <CMAKE_${lang}_LINK_FLAGS> -Wl,-bE:<TARGET_IMPLIB> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+
+ unset(_OBJECTS)
+endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/AIX-XLClang-C.cmake b/share/cmake-3.17/Modules/Platform/AIX-XLClang-C.cmake
index f0bedc5..f0bedc5 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-XLClang-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-XLClang-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-XLClang-CXX.cmake b/share/cmake-3.17/Modules/Platform/AIX-XLClang-CXX.cmake
index cceb576..cceb576 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-XLClang-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-XLClang-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX-XLClang.cmake b/share/cmake-3.17/Modules/Platform/AIX-XLClang.cmake
index c932095..c932095 100644
--- a/share/cmake-3.16/Modules/Platform/AIX-XLClang.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX-XLClang.cmake
diff --git a/share/cmake-3.16/Modules/Platform/AIX.cmake b/share/cmake-3.17/Modules/Platform/AIX.cmake
index 03cef51..03cef51 100644
--- a/share/cmake-3.16/Modules/Platform/AIX.cmake
+++ b/share/cmake-3.17/Modules/Platform/AIX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX/ExportImportList b/share/cmake-3.17/Modules/Platform/AIX/ExportImportList
new file mode 100644
index 0000000..891bce7
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/AIX/ExportImportList
@@ -0,0 +1,60 @@
+#!/bin/sh
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# This script is internal to CMake and meant only to be
+# invoked by CMake-generated build systems on AIX.
+
+usage='usage: ExportImportList -o <out-file> [-l <lib>] [-n] [--] <objects>...'
+
+die() {
+ echo "$@" 1>&2; exit 1
+}
+
+# Process command-line arguments.
+out=''
+lib=''
+no_objects=''
+while test "$#" != 0; do
+ case "$1" in
+ -l) shift; lib="$1" ;;
+ -o) shift; out="$1" ;;
+ -n) no_objects='1' ;;
+ --) shift; break ;;
+ -*) die "$usage" ;;
+ *) break ;;
+ esac
+ shift
+done
+test -n "$out" || die "$usage"
+
+# Build a temporary file that atomically replaces the output later.
+out_tmp="$out.tmp$$"
+trap 'rm -f "$out_tmp"' EXIT INT TERM
+> "$out_tmp"
+
+# Collect symbols exported from all object files.
+if test -z "$no_objects"; then
+ for f in "$@"; do
+ dump -tov -X 32_64 "$f" |
+ awk '
+ BEGIN {
+ V["EXPORTED"]=" export"
+ V["PROTECTED"]=" protected"
+ }
+ /^\[[0-9]+\]\tm +[^ ]+ +\.(text|data|bss) +[^ ]+ +(extern|weak) +(EXPORTED|PROTECTED| ) / {
+ if (!match($NF,/^(\.|__sinit|__sterm|__[0-9]+__)/)) {
+ print $NF V[$(NF-1)]
+ }
+ }
+ '
+ done >> "$out_tmp"
+fi
+
+# Generate the export/import file.
+{
+ if test -n "$lib"; then
+ echo "#! $lib"
+ fi
+ sort -u "$out_tmp"
+} > "$out"
diff --git a/share/cmake-3.16/Modules/Platform/ARTOS-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/ARTOS-GNU-C.cmake
index fe8d782..fe8d782 100644
--- a/share/cmake-3.16/Modules/Platform/ARTOS-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/ARTOS-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/ARTOS.cmake b/share/cmake-3.17/Modules/Platform/ARTOS.cmake
index f9365d6..f9365d6 100644
--- a/share/cmake-3.16/Modules/Platform/ARTOS.cmake
+++ b/share/cmake-3.17/Modules/Platform/ARTOS.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android-Clang-ASM.cmake b/share/cmake-3.17/Modules/Platform/Android-Clang-ASM.cmake
index 6448da6..6448da6 100644
--- a/share/cmake-3.16/Modules/Platform/Android-Clang-ASM.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android-Clang-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android-Clang-C.cmake b/share/cmake-3.17/Modules/Platform/Android-Clang-C.cmake
index 9e16911..9e16911 100644
--- a/share/cmake-3.16/Modules/Platform/Android-Clang-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android-Clang-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android-Clang-CXX.cmake b/share/cmake-3.17/Modules/Platform/Android-Clang-CXX.cmake
index 85d5088..85d5088 100644
--- a/share/cmake-3.16/Modules/Platform/Android-Clang-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Clang.cmake b/share/cmake-3.17/Modules/Platform/Android-Clang.cmake
new file mode 100644
index 0000000..759448b
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Android-Clang.cmake
@@ -0,0 +1,56 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# This module is shared by multiple languages; use include blocker.
+if(__ANDROID_COMPILER_CLANG)
+ return()
+endif()
+set(__ANDROID_COMPILER_CLANG 1)
+
+# Support for NVIDIA Nsight Tegra Visual Studio Edition was previously
+# implemented in the CMake VS IDE generators. Avoid interfering with
+# that functionality for now. Later we may try to integrate this.
+if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
+ macro(__android_compiler_clang lang)
+ endmacro()
+ return()
+endif()
+
+# Commonly used Android toolchain files that pre-date CMake upstream support
+# set CMAKE_SYSTEM_VERSION to 1. Avoid interfering with them.
+if(CMAKE_SYSTEM_VERSION EQUAL 1)
+ macro(__android_compiler_clang lang)
+ endmacro()
+ return()
+endif()
+
+# Natively compiling on an Android host doesn't use the NDK cross-compilation
+# tools.
+if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Android")
+ macro(__android_compiler_clang lang)
+ endmacro()
+ return()
+endif()
+
+include(Platform/Android-Common)
+
+# The NDK toolchain configuration files at:
+#
+# <ndk>/[build/core/]toolchains/*-clang*/setup.mk
+#
+# contain logic to set LLVM_TRIPLE for Clang-based toolchains for each target.
+# We need to produce the same target here to produce compatible binaries.
+include(Platform/Android/abi-${CMAKE_ANDROID_ARCH_ABI}-Clang)
+
+macro(__android_compiler_clang lang)
+ if(NOT "x${lang}" STREQUAL "xASM")
+ __android_compiler_common(${lang})
+ endif()
+ if(NOT CMAKE_${lang}_COMPILER_TARGET)
+ set(CMAKE_${lang}_COMPILER_TARGET "${_ANDROID_ABI_CLANG_TARGET}")
+ if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
+ string(APPEND CMAKE_${lang}_COMPILER_TARGET "${CMAKE_SYSTEM_VERSION}")
+ endif()
+ list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "--target=${CMAKE_${lang}_COMPILER_TARGET}")
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/Android-Common.cmake b/share/cmake-3.17/Modules/Platform/Android-Common.cmake
index 1affcd0..1affcd0 100644
--- a/share/cmake-3.16/Modules/Platform/Android-Common.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android-Common.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android-Determine-C.cmake b/share/cmake-3.17/Modules/Platform/Android-Determine-C.cmake
index c7d1d15..c7d1d15 100644
--- a/share/cmake-3.16/Modules/Platform/Android-Determine-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android-Determine-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android-Determine-CXX.cmake b/share/cmake-3.17/Modules/Platform/Android-Determine-CXX.cmake
index 3a3de88..3a3de88 100644
--- a/share/cmake-3.16/Modules/Platform/Android-Determine-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Determine.cmake b/share/cmake-3.17/Modules/Platform/Android-Determine.cmake
new file mode 100644
index 0000000..2225897
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Android-Determine.cmake
@@ -0,0 +1,420 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# When CMAKE_SYSTEM_NAME is "Android", CMakeDetermineSystem loads this module.
+# This module detects platform-wide information about the Android target
+# in order to store it in "CMakeSystem.cmake".
+
+# Support for NVIDIA Nsight Tegra Visual Studio Edition was previously
+# implemented in the CMake VS IDE generators. Avoid interfering with
+# that functionality for now. Later we may try to integrate this.
+if(CMAKE_GENERATOR MATCHES "Visual Studio")
+ return()
+endif()
+
+# Commonly used Android toolchain files that pre-date CMake upstream support
+# set CMAKE_SYSTEM_VERSION to 1. Avoid interfering with them.
+if(CMAKE_SYSTEM_VERSION EQUAL 1)
+ return()
+endif()
+
+# Natively compiling on an Android host doesn't use the NDK cross-compilation
+# tools.
+if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Android")
+ return()
+endif()
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+
+# If the user provided CMAKE_SYSROOT for us, extract information from it.
+set(_ANDROID_SYSROOT_NDK "")
+set(_ANDROID_SYSROOT_API "")
+set(_ANDROID_SYSROOT_ARCH "")
+set(_ANDROID_SYSROOT_STANDALONE_TOOLCHAIN "")
+if(CMAKE_SYSROOT)
+ if(NOT IS_DIRECTORY "${CMAKE_SYSROOT}")
+ message(FATAL_ERROR
+ "Android: The specified CMAKE_SYSROOT:\n"
+ " ${CMAKE_SYSROOT}\n"
+ "is not an existing directory."
+ )
+ endif()
+ if(CMAKE_SYSROOT MATCHES "^([^\\\n]*)/platforms/android-([0-9]+)/arch-([a-z0-9_]+)$")
+ set(_ANDROID_SYSROOT_NDK "${CMAKE_MATCH_1}")
+ set(_ANDROID_SYSROOT_API "${CMAKE_MATCH_2}")
+ set(_ANDROID_SYSROOT_ARCH "${CMAKE_MATCH_3}")
+ elseif(CMAKE_SYSROOT MATCHES "^([^\\\n]*)/sysroot$")
+ set(_ANDROID_SYSROOT_STANDALONE_TOOLCHAIN "${CMAKE_MATCH_1}")
+ else()
+ message(FATAL_ERROR
+ "The value of CMAKE_SYSROOT:\n"
+ " ${CMAKE_SYSROOT}\n"
+ "does not match any of the forms:\n"
+ " <ndk>/platforms/android-<api>/arch-<arch>\n"
+ " <standalone-toolchain>/sysroot\n"
+ "where:\n"
+ " <ndk> = Android NDK directory (with forward slashes)\n"
+ " <api> = Android API version number (decimal digits)\n"
+ " <arch> = Android ARCH name (lower case)\n"
+ " <standalone-toolchain> = Path to standalone toolchain prefix\n"
+ )
+ endif()
+endif()
+
+# Find the Android NDK.
+if(CMAKE_ANDROID_NDK)
+ if(NOT IS_DIRECTORY "${CMAKE_ANDROID_NDK}")
+ message(FATAL_ERROR
+ "Android: The NDK root directory specified by CMAKE_ANDROID_NDK:\n"
+ " ${CMAKE_ANDROID_NDK}\n"
+ "does not exist."
+ )
+ endif()
+elseif(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
+ if(NOT IS_DIRECTORY "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}")
+ message(FATAL_ERROR
+ "Android: The standalone toolchain directory specified by CMAKE_ANDROID_STANDALONE_TOOLCHAIN:\n"
+ " ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}\n"
+ "does not exist."
+ )
+ endif()
+ if(NOT EXISTS "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot/usr/include/android/api-level.h")
+ message(FATAL_ERROR
+ "Android: The standalone toolchain directory specified by CMAKE_ANDROID_STANDALONE_TOOLCHAIN:\n"
+ " ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}\n"
+ "does not contain a sysroot with a known layout. The file:\n"
+ " ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot/usr/include/android/api-level.h\n"
+ "does not exist."
+ )
+ endif()
+else()
+ if(IS_DIRECTORY "${_ANDROID_SYSROOT_NDK}")
+ set(CMAKE_ANDROID_NDK "${_ANDROID_SYSROOT_NDK}")
+ elseif(IS_DIRECTORY "${_ANDROID_SYSROOT_STANDALONE_TOOLCHAIN}")
+ set(CMAKE_ANDROID_STANDALONE_TOOLCHAIN "${_ANDROID_SYSROOT_STANDALONE_TOOLCHAIN}")
+ elseif(IS_DIRECTORY "${ANDROID_NDK}")
+ file(TO_CMAKE_PATH "${ANDROID_NDK}" CMAKE_ANDROID_NDK)
+ elseif(IS_DIRECTORY "${ANDROID_STANDALONE_TOOLCHAIN}")
+ file(TO_CMAKE_PATH "${ANDROID_STANDALONE_TOOLCHAIN}" CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
+ elseif(IS_DIRECTORY "$ENV{ANDROID_NDK_ROOT}")
+ file(TO_CMAKE_PATH "$ENV{ANDROID_NDK_ROOT}" CMAKE_ANDROID_NDK)
+ elseif(IS_DIRECTORY "$ENV{ANDROID_NDK}")
+ file(TO_CMAKE_PATH "$ENV{ANDROID_NDK}" CMAKE_ANDROID_NDK)
+ elseif(IS_DIRECTORY "$ENV{ANDROID_STANDALONE_TOOLCHAIN}")
+ file(TO_CMAKE_PATH "$ENV{ANDROID_STANDALONE_TOOLCHAIN}" CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
+ endif()
+ # TODO: Search harder for the NDK or standalone toolchain.
+endif()
+
+set(_ANDROID_STANDALONE_TOOLCHAIN_API "")
+if(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
+ # Try to read the API level from the toolchain launcher.
+ if(EXISTS "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/clang")
+ set(_ANDROID_API_LEVEL_CLANG_REGEX "__ANDROID_API__=([0-9]+)")
+ file(STRINGS "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/clang" _ANDROID_STANDALONE_TOOLCHAIN_BIN_CLANG
+ REGEX "${_ANDROID_API_LEVEL_CLANG_REGEX}" LIMIT_COUNT 1 LIMIT_INPUT 65536)
+ if(_ANDROID_STANDALONE_TOOLCHAIN_BIN_CLANG MATCHES "${_ANDROID_API_LEVEL_CLANG_REGEX}")
+ set(_ANDROID_STANDALONE_TOOLCHAIN_API "${CMAKE_MATCH_1}")
+ endif()
+ unset(_ANDROID_STANDALONE_TOOLCHAIN_BIN_CLANG)
+ unset(_ANDROID_API_LEVEL_CLANG_REGEX)
+ endif()
+ if(NOT _ANDROID_STANDALONE_TOOLCHAIN_API)
+ # The compiler launcher does not know __ANDROID_API__. Assume this
+ # is not unified headers and look for it in the api-level.h header.
+ set(_ANDROID_API_LEVEL_H_REGEX "^[\t ]*#[\t ]*define[\t ]+__ANDROID_API__[\t ]+([0-9]+)")
+ file(STRINGS "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot/usr/include/android/api-level.h"
+ _ANDROID_API_LEVEL_H_CONTENT REGEX "${_ANDROID_API_LEVEL_H_REGEX}")
+ if(_ANDROID_API_LEVEL_H_CONTENT MATCHES "${_ANDROID_API_LEVEL_H_REGEX}")
+ set(_ANDROID_STANDALONE_TOOLCHAIN_API "${CMAKE_MATCH_1}")
+ endif()
+ endif()
+ if(NOT _ANDROID_STANDALONE_TOOLCHAIN_API)
+ message(WARNING
+ "Android: Did not detect API level from\n"
+ " ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/clang\n"
+ "or\n"
+ " ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot/usr/include/android/api-level.h\n"
+ )
+ endif()
+endif()
+
+if(NOT CMAKE_ANDROID_NDK AND NOT CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
+ message(FATAL_ERROR "Android: Neither the NDK or a standalone toolchain was found.")
+endif()
+
+# Select an API.
+if(CMAKE_SYSTEM_VERSION)
+ set(_ANDROID_API_VAR CMAKE_SYSTEM_VERSION)
+elseif(CMAKE_ANDROID_API)
+ set(CMAKE_SYSTEM_VERSION "${CMAKE_ANDROID_API}")
+ set(_ANDROID_API_VAR CMAKE_ANDROID_API)
+elseif(_ANDROID_SYSROOT_API)
+ set(CMAKE_SYSTEM_VERSION "${_ANDROID_SYSROOT_API}")
+ set(_ANDROID_API_VAR CMAKE_SYSROOT)
+elseif(_ANDROID_STANDALONE_TOOLCHAIN_API)
+ set(CMAKE_SYSTEM_VERSION "${_ANDROID_STANDALONE_TOOLCHAIN_API}")
+endif()
+if(CMAKE_SYSTEM_VERSION)
+ if(CMAKE_ANDROID_API AND NOT "x${CMAKE_ANDROID_API}" STREQUAL "x${CMAKE_SYSTEM_VERSION}")
+ message(FATAL_ERROR
+ "Android: The API specified by CMAKE_ANDROID_API='${CMAKE_ANDROID_API}' is not consistent with CMAKE_SYSTEM_VERSION='${CMAKE_SYSTEM_VERSION}'."
+ )
+ endif()
+ if(_ANDROID_SYSROOT_API)
+ foreach(v CMAKE_ANDROID_API CMAKE_SYSTEM_VERSION)
+ if(${v} AND NOT "x${_ANDROID_SYSROOT_API}" STREQUAL "x${${v}}")
+ message(FATAL_ERROR
+ "Android: The API specified by ${v}='${${v}}' is not consistent with CMAKE_SYSROOT:\n"
+ " ${CMAKE_SYSROOT}"
+ )
+ endif()
+ endforeach()
+ endif()
+ if(CMAKE_ANDROID_NDK AND NOT IS_DIRECTORY "${CMAKE_ANDROID_NDK}/platforms/android-${CMAKE_SYSTEM_VERSION}")
+ message(FATAL_ERROR
+ "Android: The API specified by ${_ANDROID_API_VAR}='${${_ANDROID_API_VAR}}' does not exist in the NDK. "
+ "The directory:\n"
+ " ${CMAKE_ANDROID_NDK}/platforms/android-${CMAKE_SYSTEM_VERSION}\n"
+ "does not exist."
+ )
+ endif()
+elseif(CMAKE_ANDROID_NDK)
+ file(GLOB _ANDROID_APIS_1 RELATIVE "${CMAKE_ANDROID_NDK}/platforms" "${CMAKE_ANDROID_NDK}/platforms/android-[0-9]")
+ file(GLOB _ANDROID_APIS_2 RELATIVE "${CMAKE_ANDROID_NDK}/platforms" "${CMAKE_ANDROID_NDK}/platforms/android-[0-9][0-9]")
+ list(SORT _ANDROID_APIS_1)
+ list(SORT _ANDROID_APIS_2)
+ set(_ANDROID_APIS ${_ANDROID_APIS_1} ${_ANDROID_APIS_2})
+ unset(_ANDROID_APIS_1)
+ unset(_ANDROID_APIS_2)
+ if(_ANDROID_APIS STREQUAL "")
+ message(FATAL_ERROR
+ "Android: No APIs found in the NDK. No\n"
+ " ${CMAKE_ANDROID_NDK}/platforms/android-*\n"
+ "directories exist."
+ )
+ endif()
+ string(REPLACE "android-" "" _ANDROID_APIS "${_ANDROID_APIS}")
+ list(REVERSE _ANDROID_APIS)
+ list(GET _ANDROID_APIS 0 CMAKE_SYSTEM_VERSION)
+ unset(_ANDROID_APIS)
+endif()
+if(NOT CMAKE_SYSTEM_VERSION MATCHES "^[0-9]+$")
+ message(FATAL_ERROR "Android: The API specified by CMAKE_SYSTEM_VERSION='${CMAKE_SYSTEM_VERSION}' is not an integer.")
+endif()
+
+if(CMAKE_ANDROID_NDK)
+ # Identify the host platform.
+ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
+ if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "darwin-x86_64")
+ else()
+ set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "darwin-x86")
+ endif()
+ elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
+ if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "linux-x86_64")
+ else()
+ set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "linux-x86")
+ endif()
+ elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
+ if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "AMD64")
+ set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "windows-x86_64")
+ else()
+ set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "windows")
+ endif()
+ else()
+ message(FATAL_ERROR "Android: Builds hosted on '${CMAKE_HOST_SYSTEM_NAME}' not supported.")
+ endif()
+
+ # Look for a unified toolchain/sysroot provided with the NDK.
+ set(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED "${CMAKE_ANDROID_NDK}/toolchains/llvm/prebuilt/${CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG}")
+ if(NOT IS_DIRECTORY "${CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED}/sysroot")
+ set(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED "")
+ endif()
+else()
+ set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "")
+ set(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED "")
+endif()
+
+# https://developer.android.com/ndk/guides/abis.html
+
+set(_ANDROID_ABI_arm64-v8a_PROC "aarch64")
+set(_ANDROID_ABI_arm64-v8a_ARCH "arm64")
+set(_ANDROID_ABI_arm64-v8a_TRIPLE "aarch64-linux-android")
+set(_ANDROID_ABI_armeabi-v7a_PROC "armv7-a")
+set(_ANDROID_ABI_armeabi-v7a_ARCH "arm")
+set(_ANDROID_ABI_armeabi-v7a_TRIPLE "arm-linux-androideabi")
+set(_ANDROID_ABI_armeabi-v6_PROC "armv6")
+set(_ANDROID_ABI_armeabi-v6_ARCH "arm")
+set(_ANDROID_ABI_armeabi-v6_TRIPLE "arm-linux-androideabi")
+set(_ANDROID_ABI_armeabi_PROC "armv5te")
+set(_ANDROID_ABI_armeabi_ARCH "arm")
+set(_ANDROID_ABI_armeabi_TRIPLE "arm-linux-androideabi")
+set(_ANDROID_ABI_mips_PROC "mips")
+set(_ANDROID_ABI_mips_ARCH "mips")
+set(_ANDROID_ABI_mips_TRIPLE "mipsel-linux-android")
+set(_ANDROID_ABI_mips64_PROC "mips64")
+set(_ANDROID_ABI_mips64_ARCH "mips64")
+set(_ANDROID_ABI_mips64_TRIPLE "mips64el-linux-android")
+set(_ANDROID_ABI_x86_PROC "i686")
+set(_ANDROID_ABI_x86_ARCH "x86")
+set(_ANDROID_ABI_x86_TRIPLE "i686-linux-android")
+set(_ANDROID_ABI_x86_64_PROC "x86_64")
+set(_ANDROID_ABI_x86_64_ARCH "x86_64")
+set(_ANDROID_ABI_x86_64_TRIPLE "x86_64-linux-android")
+
+set(_ANDROID_PROC_aarch64_ARCH_ABI "arm64-v8a")
+set(_ANDROID_PROC_armv7-a_ARCH_ABI "armeabi-v7a")
+set(_ANDROID_PROC_armv6_ARCH_ABI "armeabi-v6")
+set(_ANDROID_PROC_armv5te_ARCH_ABI "armeabi")
+set(_ANDROID_PROC_i686_ARCH_ABI "x86")
+set(_ANDROID_PROC_mips_ARCH_ABI "mips")
+set(_ANDROID_PROC_mips64_ARCH_ABI "mips64")
+set(_ANDROID_PROC_x86_64_ARCH_ABI "x86_64")
+
+set(_ANDROID_ARCH_arm64_ABI "arm64-v8a")
+set(_ANDROID_ARCH_arm_ABI "armeabi")
+set(_ANDROID_ARCH_mips_ABI "mips")
+set(_ANDROID_ARCH_mips64_ABI "mips64")
+set(_ANDROID_ARCH_x86_ABI "x86")
+set(_ANDROID_ARCH_x86_64_ABI "x86_64")
+
+# Validate inputs.
+if(CMAKE_ANDROID_ARCH_ABI AND NOT DEFINED "_ANDROID_ABI_${CMAKE_ANDROID_ARCH_ABI}_PROC")
+ message(FATAL_ERROR "Android: Unknown ABI CMAKE_ANDROID_ARCH_ABI='${CMAKE_ANDROID_ARCH_ABI}'.")
+endif()
+if(CMAKE_SYSTEM_PROCESSOR AND NOT DEFINED "_ANDROID_PROC_${CMAKE_SYSTEM_PROCESSOR}_ARCH_ABI")
+ message(FATAL_ERROR "Android: Unknown processor CMAKE_SYSTEM_PROCESSOR='${CMAKE_SYSTEM_PROCESSOR}'.")
+endif()
+if(_ANDROID_SYSROOT_ARCH AND NOT DEFINED "_ANDROID_ARCH_${_ANDROID_SYSROOT_ARCH}_ABI")
+ message(FATAL_ERROR
+ "Android: Unknown architecture '${_ANDROID_SYSROOT_ARCH}' specified in CMAKE_SYSROOT:\n"
+ " ${CMAKE_SYSROOT}"
+ )
+endif()
+
+# Select an ABI.
+if(NOT CMAKE_ANDROID_ARCH_ABI)
+ if(CMAKE_SYSTEM_PROCESSOR)
+ set(CMAKE_ANDROID_ARCH_ABI "${_ANDROID_PROC_${CMAKE_SYSTEM_PROCESSOR}_ARCH_ABI}")
+ elseif(_ANDROID_SYSROOT_ARCH)
+ set(CMAKE_ANDROID_ARCH_ABI "${_ANDROID_ARCH_${_ANDROID_SYSROOT_ARCH}_ABI}")
+ else()
+ # https://developer.android.com/ndk/guides/application_mk.html
+ # Default is the oldest ARM ABI.
+
+ # Lookup the available ABIs among all toolchains.
+ set(_ANDROID_ABIS "")
+ file(GLOB _ANDROID_CONFIG_MKS
+ "${CMAKE_ANDROID_NDK}/build/core/toolchains/*/config.mk"
+ "${CMAKE_ANDROID_NDK}/toolchains/*/config.mk"
+ )
+ foreach(config_mk IN LISTS _ANDROID_CONFIG_MKS)
+ file(STRINGS "${config_mk}" _ANDROID_TOOL_ABIS REGEX "^TOOLCHAIN_ABIS :=")
+ string(REPLACE "TOOLCHAIN_ABIS :=" "" _ANDROID_TOOL_ABIS "${_ANDROID_TOOL_ABIS}")
+ separate_arguments(_ANDROID_TOOL_ABIS UNIX_COMMAND "${_ANDROID_TOOL_ABIS}")
+ list(APPEND _ANDROID_ABIS ${_ANDROID_TOOL_ABIS})
+ unset(_ANDROID_TOOL_ABIS)
+ endforeach()
+ unset(_ANDROID_CONFIG_MKS)
+
+ # Choose the oldest among the available arm ABIs.
+ if(_ANDROID_ABIS)
+ list(REMOVE_DUPLICATES _ANDROID_ABIS)
+ cmake_policy(PUSH)
+ cmake_policy(SET CMP0057 NEW)
+ foreach(abi armeabi armeabi-v7a arm64-v8a)
+ if("${abi}" IN_LIST _ANDROID_ABIS)
+ set(CMAKE_ANDROID_ARCH_ABI "${abi}")
+ break()
+ endif()
+ endforeach()
+ cmake_policy(POP)
+ endif()
+ unset(_ANDROID_ABIS)
+
+ if(NOT CMAKE_ANDROID_ARCH_ABI)
+ set(CMAKE_ANDROID_ARCH_ABI "armeabi")
+ endif()
+ endif()
+endif()
+set(CMAKE_ANDROID_ARCH "${_ANDROID_ABI_${CMAKE_ANDROID_ARCH_ABI}_ARCH}")
+if(_ANDROID_SYSROOT_ARCH AND NOT "x${_ANDROID_SYSROOT_ARCH}" STREQUAL "x${CMAKE_ANDROID_ARCH}")
+ message(FATAL_ERROR
+ "Android: Architecture '${_ANDROID_SYSROOT_ARCH}' specified in CMAKE_SYSROOT:\n"
+ " ${CMAKE_SYSROOT}\n"
+ "does not match architecture '${CMAKE_ANDROID_ARCH}' for the ABI '${CMAKE_ANDROID_ARCH_ABI}'."
+ )
+endif()
+set(CMAKE_ANDROID_ARCH_TRIPLE "${_ANDROID_ABI_${CMAKE_ANDROID_ARCH_ABI}_TRIPLE}")
+
+# Select a processor.
+if(NOT CMAKE_SYSTEM_PROCESSOR)
+ set(CMAKE_SYSTEM_PROCESSOR "${_ANDROID_ABI_${CMAKE_ANDROID_ARCH_ABI}_PROC}")
+endif()
+
+# If the user specified both an ABI and a processor then they might not match.
+if(NOT _ANDROID_ABI_${CMAKE_ANDROID_ARCH_ABI}_PROC STREQUAL CMAKE_SYSTEM_PROCESSOR)
+ message(FATAL_ERROR "Android: The specified CMAKE_ANDROID_ARCH_ABI='${CMAKE_ANDROID_ARCH_ABI}' and CMAKE_SYSTEM_PROCESSOR='${CMAKE_SYSTEM_PROCESSOR}' is not a valid combination.")
+endif()
+
+if(CMAKE_ANDROID_NDK AND NOT DEFINED CMAKE_ANDROID_NDK_DEPRECATED_HEADERS)
+ if(IS_DIRECTORY "${CMAKE_ANDROID_NDK}/sysroot/usr/include/${CMAKE_ANDROID_ARCH_TRIPLE}")
+ # Unified headers exist so we use them by default.
+ set(CMAKE_ANDROID_NDK_DEPRECATED_HEADERS 0)
+ else()
+ # Unified headers do not exist so use the deprecated headers.
+ set(CMAKE_ANDROID_NDK_DEPRECATED_HEADERS 1)
+ endif()
+endif()
+
+# Save the Android-specific information in CMakeSystem.cmake.
+set(CMAKE_SYSTEM_CUSTOM_CODE "
+set(CMAKE_ANDROID_NDK \"${CMAKE_ANDROID_NDK}\")
+set(CMAKE_ANDROID_STANDALONE_TOOLCHAIN \"${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}\")
+set(CMAKE_ANDROID_ARCH \"${CMAKE_ANDROID_ARCH}\")
+set(CMAKE_ANDROID_ARCH_ABI \"${CMAKE_ANDROID_ARCH_ABI}\")
+")
+
+if(CMAKE_ANDROID_NDK)
+ string(APPEND CMAKE_SYSTEM_CUSTOM_CODE
+ "set(CMAKE_ANDROID_ARCH_TRIPLE \"${CMAKE_ANDROID_ARCH_TRIPLE}\")\n"
+ "set(CMAKE_ANDROID_NDK_DEPRECATED_HEADERS \"${CMAKE_ANDROID_NDK_DEPRECATED_HEADERS}\")\n"
+ "set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG \"${CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG}\")\n"
+ "set(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED \"${CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED}\")\n"
+ )
+endif()
+
+# Select an ARM variant.
+if(CMAKE_ANDROID_ARCH_ABI MATCHES "^armeabi")
+ if(CMAKE_ANDROID_ARM_MODE)
+ set(CMAKE_ANDROID_ARM_MODE 1)
+ else()
+ set(CMAKE_ANDROID_ARM_MODE 0)
+ endif()
+ string(APPEND CMAKE_SYSTEM_CUSTOM_CODE
+ "set(CMAKE_ANDROID_ARM_MODE \"${CMAKE_ANDROID_ARM_MODE}\")\n"
+ )
+elseif(DEFINED CMAKE_ANDROID_ARM_MODE)
+ message(FATAL_ERROR "Android: CMAKE_ANDROID_ARM_MODE is set but is valid only for 'armeabi' architectures.")
+endif()
+
+if(CMAKE_ANDROID_ARCH_ABI STREQUAL "armeabi-v7a")
+ if(CMAKE_ANDROID_ARM_NEON)
+ set(CMAKE_ANDROID_ARM_NEON 1)
+ else()
+ set(CMAKE_ANDROID_ARM_NEON 0)
+ endif()
+ string(APPEND CMAKE_SYSTEM_CUSTOM_CODE
+ "set(CMAKE_ANDROID_ARM_NEON \"${CMAKE_ANDROID_ARM_NEON}\")\n"
+ )
+elseif(DEFINED CMAKE_ANDROID_ARM_NEON)
+ message(FATAL_ERROR "Android: CMAKE_ANDROID_ARM_NEON is set but is valid only for 'armeabi-v7a' architecture.")
+endif()
+
+# Report the chosen architecture.
+message(STATUS "Android: Targeting API '${CMAKE_SYSTEM_VERSION}' with architecture '${CMAKE_ANDROID_ARCH}', ABI '${CMAKE_ANDROID_ARCH_ABI}', and processor '${CMAKE_SYSTEM_PROCESSOR}'")
+
+cmake_policy(POP)
diff --git a/share/cmake-3.16/Modules/Platform/Android-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/Android-GNU-C.cmake
index 78a6a50..78a6a50 100644
--- a/share/cmake-3.16/Modules/Platform/Android-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/Android-GNU-CXX.cmake
index d30d0ff..d30d0ff 100644
--- a/share/cmake-3.16/Modules/Platform/Android-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android-GNU.cmake b/share/cmake-3.17/Modules/Platform/Android-GNU.cmake
index e1f79ca..e1f79ca 100644
--- a/share/cmake-3.16/Modules/Platform/Android-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Initialize.cmake b/share/cmake-3.17/Modules/Platform/Android-Initialize.cmake
new file mode 100644
index 0000000..b90dd7a
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Android-Initialize.cmake
@@ -0,0 +1,55 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# When CMAKE_SYSTEM_NAME is "Android", CMakeSystemSpecificInitialize loads this
+# module.
+
+# Support for NVIDIA Nsight Tegra Visual Studio Edition was previously
+# implemented in the CMake VS IDE generators. Avoid interfering with
+# that functionality for now. Later we may try to integrate this.
+if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
+ return()
+endif()
+
+# Commonly used Android toolchain files that pre-date CMake upstream support
+# set CMAKE_SYSTEM_VERSION to 1. Avoid interfering with them.
+if(CMAKE_SYSTEM_VERSION EQUAL 1)
+ return()
+endif()
+
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+# Skip sysroot selection if the NDK has a unified toolchain.
+if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
+ return()
+endif()
+
+# Natively compiling on an Android host doesn't use the NDK cross-compilation
+# tools.
+if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Android")
+ return()
+endif()
+
+if(NOT CMAKE_SYSROOT)
+ if(CMAKE_ANDROID_NDK)
+ set(CMAKE_SYSROOT "${CMAKE_ANDROID_NDK}/platforms/android-${CMAKE_SYSTEM_VERSION}/arch-${CMAKE_ANDROID_ARCH}")
+ if(NOT CMAKE_ANDROID_NDK_DEPRECATED_HEADERS)
+ set(CMAKE_SYSROOT_COMPILE "${CMAKE_ANDROID_NDK}/sysroot")
+ endif()
+ elseif(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
+ set(CMAKE_SYSROOT "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot")
+ endif()
+endif()
+
+if(CMAKE_SYSROOT)
+ if(NOT IS_DIRECTORY "${CMAKE_SYSROOT}")
+ message(FATAL_ERROR
+ "Android: The system root directory needed for the selected Android version and architecture does not exist:\n"
+ " ${CMAKE_SYSROOT}\n"
+ )
+ endif()
+else()
+ message(FATAL_ERROR
+ "Android: No CMAKE_SYSROOT was selected."
+ )
+endif()
diff --git a/share/cmake-3.17/Modules/Platform/Android.cmake b/share/cmake-3.17/Modules/Platform/Android.cmake
new file mode 100644
index 0000000..8ffa1b2
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Android.cmake
@@ -0,0 +1,24 @@
+include(Platform/Linux)
+
+set(ANDROID 1)
+
+# Natively compiling on an Android host doesn't need these flags to be reset.
+if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Android")
+ return()
+endif()
+
+# Conventionally Android does not use versioned soname
+# But in modern versions it is acceptable
+if(NOT DEFINED CMAKE_PLATFORM_NO_VERSIONED_SONAME)
+ set(CMAKE_PLATFORM_NO_VERSIONED_SONAME 1)
+endif()
+
+# Android reportedly ignores RPATH, and we cannot predict the install
+# location anyway.
+set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "")
+
+# Nsight Tegra Visual Studio Edition takes care of
+# prefixing library names with '-l'.
+if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
+ set(CMAKE_LINK_LIBRARY_FLAG "")
+endif()
diff --git a/share/cmake-3.16/Modules/Platform/Android/Determine-Compiler-NDK.cmake b/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-NDK.cmake
index f56e1d5..f56e1d5 100644
--- a/share/cmake-3.16/Modules/Platform/Android/Determine-Compiler-NDK.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-NDK.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/Determine-Compiler-Standalone.cmake b/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-Standalone.cmake
index 5095aff..5095aff 100644
--- a/share/cmake-3.16/Modules/Platform/Android/Determine-Compiler-Standalone.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-Standalone.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler.cmake b/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler.cmake
new file mode 100644
index 0000000..f9c2d89
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler.cmake
@@ -0,0 +1,85 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# This module is shared by multiple languages; use include blocker.
+if(__ANDROID_DETERMINE_COMPILER)
+ return()
+endif()
+set(__ANDROID_DETERMINE_COMPILER 1)
+
+# Support for NVIDIA Nsight Tegra Visual Studio Edition was previously
+# implemented in the CMake VS IDE generators. Avoid interfering with
+# that functionality for now. Later we may try to integrate this.
+if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
+ macro(__android_determine_compiler lang)
+ endmacro()
+ return()
+endif()
+
+# Commonly used Android toolchain files that pre-date CMake upstream support
+# set CMAKE_SYSTEM_VERSION to 1. Avoid interfering with them.
+if(CMAKE_SYSTEM_VERSION EQUAL 1)
+ macro(__android_determine_compiler lang)
+ endmacro()
+ return()
+endif()
+
+# Identify the host platform.
+if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
+ set(_ANDROID_HOST_EXT "")
+elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
+ set(_ANDROID_HOST_EXT "")
+elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
+ set(_ANDROID_HOST_EXT ".exe")
+elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Android")
+ # Natively compiling on an Android host doesn't use the NDK cross-compilation
+ # tools.
+ macro(__android_determine_compiler lang)
+ # Do nothing
+ endmacro()
+ if(NOT CMAKE_CXX_COMPILER_NAMES)
+ set(CMAKE_CXX_COMPILER_NAMES c++)
+ endif()
+ return()
+else()
+ message(FATAL_ERROR "Android: Builds hosted on '${CMAKE_HOST_SYSTEM_NAME}' not supported.")
+endif()
+
+if(CMAKE_ANDROID_NDK)
+ include(Platform/Android/Determine-Compiler-NDK)
+elseif(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
+ include(Platform/Android/Determine-Compiler-Standalone)
+else()
+ set(_ANDROID_TOOL_NDK_TOOLCHAIN_VERSION "")
+ set(_ANDROID_TOOL_C_COMPILER "")
+ set(_ANDROID_TOOL_C_TOOLCHAIN_MACHINE "")
+ set(_ANDROID_TOOL_C_TOOLCHAIN_VERSION "")
+ set(_ANDROID_TOOL_C_COMPILER_EXTERNAL_TOOLCHAIN "")
+ set(_ANDROID_TOOL_C_TOOLCHAIN_PREFIX "")
+ set(_ANDROID_TOOL_C_TOOLCHAIN_SUFFIX "")
+ set(_ANDROID_TOOL_CXX_COMPILER "")
+ set(_ANDROID_TOOL_CXX_TOOLCHAIN_MACHINE "")
+ set(_ANDROID_TOOL_CXX_TOOLCHAIN_VERSION "")
+ set(_ANDROID_TOOL_CXX_COMPILER_EXTERNAL_TOOLCHAIN "")
+ set(_ANDROID_TOOL_CXX_TOOLCHAIN_PREFIX "")
+ set(_ANDROID_TOOL_CXX_TOOLCHAIN_SUFFIX "")
+endif()
+
+unset(_ANDROID_HOST_EXT)
+
+macro(__android_determine_compiler lang)
+ if(_ANDROID_TOOL_${lang}_COMPILER)
+ set(CMAKE_${lang}_COMPILER "${_ANDROID_TOOL_${lang}_COMPILER}")
+ set(CMAKE_${lang}_COMPILER_EXTERNAL_TOOLCHAIN "${_ANDROID_TOOL_${lang}_COMPILER_EXTERNAL_TOOLCHAIN}")
+
+ # Save the Android-specific information in CMake${lang}Compiler.cmake.
+ set(CMAKE_${lang}_COMPILER_CUSTOM_CODE "
+set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION \"${_ANDROID_TOOL_NDK_TOOLCHAIN_VERSION}\")
+set(CMAKE_${lang}_ANDROID_TOOLCHAIN_MACHINE \"${_ANDROID_TOOL_${lang}_TOOLCHAIN_MACHINE}\")
+set(CMAKE_${lang}_ANDROID_TOOLCHAIN_VERSION \"${_ANDROID_TOOL_${lang}_TOOLCHAIN_VERSION}\")
+set(CMAKE_${lang}_COMPILER_EXTERNAL_TOOLCHAIN \"${_ANDROID_TOOL_${lang}_COMPILER_EXTERNAL_TOOLCHAIN}\")
+set(CMAKE_${lang}_ANDROID_TOOLCHAIN_PREFIX \"${_ANDROID_TOOL_${lang}_TOOLCHAIN_PREFIX}\")
+set(CMAKE_${lang}_ANDROID_TOOLCHAIN_SUFFIX \"${_ANDROID_TOOL_${lang}_TOOLCHAIN_SUFFIX}\")
+")
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake
index f4717d5..f4717d5 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake
index b71a674..b71a674 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-armeabi-Clang.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-Clang.cmake
index b857bd3..b857bd3 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-armeabi-Clang.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-Clang.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-armeabi-GNU.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-GNU.cmake
index 33e8b31..33e8b31 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-armeabi-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake
index a7412f5..a7412f5 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake
index 1fda184..1fda184 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake
index e2ab58b..e2ab58b 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake
index b7c328d..b7c328d 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-common-Clang.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-common-Clang.cmake
index 6025170..6025170 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-common-Clang.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-common-Clang.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-common-GNU.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-common-GNU.cmake
index 40d829f..40d829f 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-common-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-common-GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-common.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-common.cmake
index b01ef61..b01ef61 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-common.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-common.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-mips-Clang.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-mips-Clang.cmake
index 73addde..73addde 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-mips-Clang.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-mips-Clang.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-mips-GNU.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-mips-GNU.cmake
index 982ad46..982ad46 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-mips-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-mips-GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-mips64-Clang.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-mips64-Clang.cmake
index 603f1b2..603f1b2 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-mips64-Clang.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-mips64-Clang.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-mips64-GNU.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-mips64-GNU.cmake
index a1bc2c2..a1bc2c2 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-mips64-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-mips64-GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-x86-Clang.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-x86-Clang.cmake
index fe7eace..fe7eace 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-x86-Clang.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-x86-Clang.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-x86-GNU.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-x86-GNU.cmake
index 76ea5ca..76ea5ca 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-x86-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-x86-GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-x86_64-Clang.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-x86_64-Clang.cmake
index 3cbcd49..3cbcd49 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-x86_64-Clang.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-x86_64-Clang.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/abi-x86_64-GNU.cmake b/share/cmake-3.17/Modules/Platform/Android/abi-x86_64-GNU.cmake
index 441bdcd..441bdcd 100644
--- a/share/cmake-3.16/Modules/Platform/Android/abi-x86_64-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/abi-x86_64-GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-c++.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++.cmake
index 1cafd1f..1cafd1f 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-c++.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-c++_shared.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_shared.cmake
index 3389408..3389408 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-c++_shared.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_shared.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-c++_static.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_static.cmake
index 061a5c2..061a5c2 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-c++_static.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_static.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-gabi++.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++.cmake
index d3b9e45..d3b9e45 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-gabi++.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake
index 314c1e0..314c1e0 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-gabi++_static.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_static.cmake
index f4a1d3c..f4a1d3c 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-gabi++_static.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_static.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-gnustl.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl.cmake
index 46cedc6..46cedc6 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-gnustl.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake
index f20cc4d..f20cc4d 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-gnustl_static.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_static.cmake
index af4cc2a..af4cc2a 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-gnustl_static.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_static.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-none.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-none.cmake
index 45122f7..45122f7 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-none.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-none.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-stlport.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport.cmake
index efad33b..efad33b 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-stlport.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-stlport_shared.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_shared.cmake
index 2b5846b..2b5846b 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-stlport_shared.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_shared.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-stlport_static.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_static.cmake
index bf60307..bf60307 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-stlport_static.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_static.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-system.cmake b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-system.cmake
index 7d86a40..7d86a40 100644
--- a/share/cmake-3.16/Modules/Platform/Android/ndk-stl-system.cmake
+++ b/share/cmake-3.17/Modules/Platform/Android/ndk-stl-system.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-Absoft-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Apple-Absoft-Fortran.cmake
index 8caa202..8caa202 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-Absoft-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-Absoft-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-Apple-Swift.cmake b/share/cmake-3.17/Modules/Platform/Apple-Apple-Swift.cmake
index 7ca3e36..7ca3e36 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-Apple-Swift.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-Apple-Swift.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-AppleClang-C.cmake b/share/cmake-3.17/Modules/Platform/Apple-AppleClang-C.cmake
index f45ccf4..f45ccf4 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-AppleClang-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-AppleClang-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-AppleClang-CXX.cmake b/share/cmake-3.17/Modules/Platform/Apple-AppleClang-CXX.cmake
index 1128204..1128204 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-AppleClang-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-AppleClang-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-AppleClang-OBJC.cmake b/share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJC.cmake
index b78edb1..b78edb1 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-AppleClang-OBJC.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJC.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-AppleClang-OBJCXX.cmake b/share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJCXX.cmake
index ed172f1..ed172f1 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-AppleClang-OBJCXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJCXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-Clang-ASM.cmake b/share/cmake-3.17/Modules/Platform/Apple-Clang-ASM.cmake
index 935cce9..935cce9 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-Clang-ASM.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-Clang-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-Clang-C.cmake b/share/cmake-3.17/Modules/Platform/Apple-Clang-C.cmake
index 4d0dc82..4d0dc82 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-Clang-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-Clang-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-Clang-CXX.cmake b/share/cmake-3.17/Modules/Platform/Apple-Clang-CXX.cmake
index 6c1ddc1..6c1ddc1 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-Clang-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-Clang-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-Clang-OBJC.cmake b/share/cmake-3.17/Modules/Platform/Apple-Clang-OBJC.cmake
index 63cd846..63cd846 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-Clang-OBJC.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-Clang-OBJC.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-Clang-OBJCXX.cmake b/share/cmake-3.17/Modules/Platform/Apple-Clang-OBJCXX.cmake
index 28fc352..28fc352 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-Clang-OBJCXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-Clang-OBJCXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-Clang.cmake b/share/cmake-3.17/Modules/Platform/Apple-Clang.cmake
index 0681bfb..0681bfb 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-Clang.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-Clang.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/Apple-GNU-C.cmake
index 5481c99..5481c99 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/Apple-GNU-CXX.cmake
index 727f726..727f726 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-GNU-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Apple-GNU-Fortran.cmake
index 2f53603..2f53603 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-GNU-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-GNU-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-GNU-OBJC.cmake b/share/cmake-3.17/Modules/Platform/Apple-GNU-OBJC.cmake
index aa8b33f..aa8b33f 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-GNU-OBJC.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-GNU-OBJC.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-GNU-OBJCXX.cmake b/share/cmake-3.17/Modules/Platform/Apple-GNU-OBJCXX.cmake
index 919e11d..919e11d 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-GNU-OBJCXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-GNU-OBJCXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-GNU.cmake b/share/cmake-3.17/Modules/Platform/Apple-GNU.cmake
new file mode 100644
index 0000000..9572736
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Apple-GNU.cmake
@@ -0,0 +1,57 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This module is shared by multiple languages; use include blocker.
+include_guard()
+
+macro(__apple_compiler_gnu lang)
+ set(CMAKE_${lang}_VERBOSE_FLAG "-v -Wl,-v") # also tell linker to print verbose output
+ # GNU does not have -shared on OS X
+ set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names")
+ set(CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS "-bundle -Wl,-headerpad_max_install_names")
+
+ if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.3)
+ set(CMAKE_${lang}_SYSTEM_FRAMEWORK_SEARCH_FLAG "-iframework ")
+ endif()
+endmacro()
+
+macro(cmake_gnu_set_sysroot_flag lang)
+ if(NOT DEFINED CMAKE_${lang}_SYSROOT_FLAG)
+ set(_doc "${lang} compiler has -isysroot")
+ message(CHECK_START "Checking whether ${_doc}")
+ execute_process(
+ COMMAND ${CMAKE_${lang}_COMPILER} "-v" "--help"
+ OUTPUT_VARIABLE _gcc_help
+ ERROR_VARIABLE _gcc_help
+ )
+ if("${_gcc_help}" MATCHES "isysroot")
+ message(CHECK_PASS "yes")
+ set(CMAKE_${lang}_SYSROOT_FLAG "-isysroot")
+ else()
+ message(CHECK_FAIL "no")
+ set(CMAKE_${lang}_SYSROOT_FLAG "")
+ endif()
+ set(CMAKE_${lang}_SYSROOT_FLAG_CODE "set(CMAKE_${lang}_SYSROOT_FLAG \"${CMAKE_${lang}_SYSROOT_FLAG}\")")
+ endif()
+endmacro()
+
+macro(cmake_gnu_set_osx_deployment_target_flag lang)
+ if(NOT DEFINED CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG)
+ set(_doc "${lang} compiler supports OSX deployment target flag")
+ message(CHECK_START "Checking whether ${_doc}")
+ execute_process(
+ COMMAND ${CMAKE_${lang}_COMPILER} "-v" "--help"
+ OUTPUT_VARIABLE _gcc_help
+ ERROR_VARIABLE _gcc_help
+ )
+ if("${_gcc_help}" MATCHES "macosx-version-min")
+ message(CHECK_PASS "yes")
+ set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG "-mmacosx-version-min=")
+ else()
+ message(CHECK_FAIL "no")
+ set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG "")
+ endif()
+ set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG_CODE "set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG \"${CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG}\")")
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/Apple-Intel-C.cmake b/share/cmake-3.17/Modules/Platform/Apple-Intel-C.cmake
index 95bb270..95bb270 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-Intel-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-Intel-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-Intel-CXX.cmake b/share/cmake-3.17/Modules/Platform/Apple-Intel-CXX.cmake
index b87e512..b87e512 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-Intel-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-Intel-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-Intel-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Apple-Intel-Fortran.cmake
index e54e237..e54e237 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-Intel-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-Intel-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-Intel.cmake b/share/cmake-3.17/Modules/Platform/Apple-Intel.cmake
index a854be9..a854be9 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-Intel.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-Intel.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-NAG-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Apple-NAG-Fortran.cmake
index 8d3e741..8d3e741 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-NAG-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-NAG-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-NVIDIA-CUDA.cmake b/share/cmake-3.17/Modules/Platform/Apple-NVIDIA-CUDA.cmake
index bec3948..bec3948 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-NVIDIA-CUDA.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-NVIDIA-CUDA.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-PGI-C.cmake b/share/cmake-3.17/Modules/Platform/Apple-PGI-C.cmake
index 1e11724..1e11724 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-PGI-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-PGI-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-PGI-CXX.cmake b/share/cmake-3.17/Modules/Platform/Apple-PGI-CXX.cmake
index aa5daf7..aa5daf7 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-PGI-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-PGI-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-PGI-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Apple-PGI-Fortran.cmake
index 1e3e4b1..1e3e4b1 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-PGI-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-PGI-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-PGI.cmake b/share/cmake-3.17/Modules/Platform/Apple-PGI.cmake
index 8d343b7..8d343b7 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-PGI.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-PGI.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-VisualAge-C.cmake b/share/cmake-3.17/Modules/Platform/Apple-VisualAge-C.cmake
index 7fa6032..7fa6032 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-VisualAge-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-VisualAge-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-VisualAge-CXX.cmake b/share/cmake-3.17/Modules/Platform/Apple-VisualAge-CXX.cmake
index 12dd347..12dd347 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-VisualAge-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-VisualAge-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-XL-C.cmake b/share/cmake-3.17/Modules/Platform/Apple-XL-C.cmake
index e4fc3dd..e4fc3dd 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-XL-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-XL-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Apple-XL-CXX.cmake b/share/cmake-3.17/Modules/Platform/Apple-XL-CXX.cmake
index ea330c8..ea330c8 100644
--- a/share/cmake-3.16/Modules/Platform/Apple-XL-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Apple-XL-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BSDOS.cmake b/share/cmake-3.17/Modules/Platform/BSDOS.cmake
index 47852f8..47852f8 100644
--- a/share/cmake-3.16/Modules/Platform/BSDOS.cmake
+++ b/share/cmake-3.17/Modules/Platform/BSDOS.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BeOS.cmake b/share/cmake-3.17/Modules/Platform/BeOS.cmake
index ef811bd..ef811bd 100644
--- a/share/cmake-3.16/Modules/Platform/BeOS.cmake
+++ b/share/cmake-3.17/Modules/Platform/BeOS.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneL.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneL.cmake
index 082e46c..082e46c 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneL.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneL.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-base.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-base.cmake
index fe95b42..fe95b42 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-base.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-base.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake
index 3491870..3491870 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake
index d3c946b..d3c946b 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
index 9db75be..9db75be 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake
index 918ee70..918ee70 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake
index cfefb0b..cfefb0b 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake
index 9c295bd..9c295bd 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic.cmake
index daebab3..daebab3 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-dynamic.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-static-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-C.cmake
index 7c60794..7c60794 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-static-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake
index edceaad..edceaad 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake
index 6b2265a..6b2265a 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-static-XL-C.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-C.cmake
index 7d4fc13..7d4fc13 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-static-XL-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-static-XL-CXX.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-CXX.cmake
index 1df276e..1df276e 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-static-XL-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake
index 2bdb6d9..2bdb6d9 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneP-static.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-static.cmake
index 3675ed2..3675ed2 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneP-static.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneP-static.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-base.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-base.cmake
index 5e56d8e..5e56d8e 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-base.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-base.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake
index 6758304..6758304 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake
index 5d40f9f..5d40f9f 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake
index 6105999..6105999 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake
index c51dacb..c51dacb 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake
index 5dbc836..5dbc836 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake
index a6ac03b..a6ac03b 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic.cmake
index 9440a3e..9440a3e 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-dynamic.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-C.cmake
index 5fdc25c..5fdc25c 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake
index ad7c092..ad7c092 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake
index f32d1d4..f32d1d4 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static-XL-C.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-C.cmake
index 67cd57d..67cd57d 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static-XL-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake
index a171e7f..a171e7f 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake
index c7fbb44..c7fbb44 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static.cmake
index 79cd391..79cd391 100644
--- a/share/cmake-3.16/Modules/Platform/BlueGeneQ-static.cmake
+++ b/share/cmake-3.17/Modules/Platform/BlueGeneQ-static.cmake
diff --git a/share/cmake-3.16/Modules/Platform/CYGWIN-Clang-C.cmake b/share/cmake-3.17/Modules/Platform/CYGWIN-Clang-C.cmake
index e8343a4..e8343a4 100644
--- a/share/cmake-3.16/Modules/Platform/CYGWIN-Clang-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/CYGWIN-Clang-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/CYGWIN-Clang-CXX.cmake b/share/cmake-3.17/Modules/Platform/CYGWIN-Clang-CXX.cmake
index 67775de..67775de 100644
--- a/share/cmake-3.16/Modules/Platform/CYGWIN-Clang-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/CYGWIN-Clang-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/CYGWIN-Determine-CXX.cmake b/share/cmake-3.17/Modules/Platform/CYGWIN-Determine-CXX.cmake
index bf37f79..bf37f79 100644
--- a/share/cmake-3.16/Modules/Platform/CYGWIN-Determine-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/CYGWIN-Determine-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/CYGWIN-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-C.cmake
index 9eb0ecf..9eb0ecf 100644
--- a/share/cmake-3.16/Modules/Platform/CYGWIN-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/CYGWIN-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-CXX.cmake
index 2603dcd..2603dcd 100644
--- a/share/cmake-3.16/Modules/Platform/CYGWIN-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/CYGWIN-GNU-Fortran.cmake b/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-Fortran.cmake
index d3b49b6..d3b49b6 100644
--- a/share/cmake-3.16/Modules/Platform/CYGWIN-GNU-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/CYGWIN-GNU.cmake b/share/cmake-3.17/Modules/Platform/CYGWIN-GNU.cmake
index ca90712..ca90712 100644
--- a/share/cmake-3.16/Modules/Platform/CYGWIN-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/CYGWIN-GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/CYGWIN-windres.cmake b/share/cmake-3.17/Modules/Platform/CYGWIN-windres.cmake
index 7d787dd..7d787dd 100644
--- a/share/cmake-3.16/Modules/Platform/CYGWIN-windres.cmake
+++ b/share/cmake-3.17/Modules/Platform/CYGWIN-windres.cmake
diff --git a/share/cmake-3.16/Modules/Platform/CYGWIN.cmake b/share/cmake-3.17/Modules/Platform/CYGWIN.cmake
index 9b897bd..9b897bd 100644
--- a/share/cmake-3.16/Modules/Platform/CYGWIN.cmake
+++ b/share/cmake-3.17/Modules/Platform/CYGWIN.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Catamount.cmake b/share/cmake-3.17/Modules/Platform/Catamount.cmake
index 7e9e021..7e9e021 100644
--- a/share/cmake-3.16/Modules/Platform/Catamount.cmake
+++ b/share/cmake-3.17/Modules/Platform/Catamount.cmake
diff --git a/share/cmake-3.16/Modules/Platform/CrayLinuxEnvironment.cmake b/share/cmake-3.17/Modules/Platform/CrayLinuxEnvironment.cmake
index f2aaf3f..f2aaf3f 100644
--- a/share/cmake-3.16/Modules/Platform/CrayLinuxEnvironment.cmake
+++ b/share/cmake-3.17/Modules/Platform/CrayLinuxEnvironment.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Darwin-Determine-CXX.cmake b/share/cmake-3.17/Modules/Platform/Darwin-Determine-CXX.cmake
index bf37f79..bf37f79 100644
--- a/share/cmake-3.16/Modules/Platform/Darwin-Determine-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Darwin-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Darwin-Initialize.cmake b/share/cmake-3.17/Modules/Platform/Darwin-Initialize.cmake
new file mode 100644
index 0000000..729217c
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Darwin-Initialize.cmake
@@ -0,0 +1,236 @@
+# Ask xcode-select where to find /Developer or fall back to ancient location.
+execute_process(COMMAND xcode-select -print-path
+ OUTPUT_VARIABLE _stdout
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_VARIABLE _stderr
+ RESULT_VARIABLE _failed)
+if(NOT _failed AND IS_DIRECTORY ${_stdout})
+ set(OSX_DEVELOPER_ROOT ${_stdout})
+elseif(IS_DIRECTORY "/Developer")
+ set(OSX_DEVELOPER_ROOT "/Developer")
+else()
+ set(OSX_DEVELOPER_ROOT "")
+endif()
+
+execute_process(COMMAND sw_vers -productVersion
+ OUTPUT_VARIABLE CURRENT_OSX_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+# Save CMAKE_OSX_ARCHITECTURES from the environment.
+set(CMAKE_OSX_ARCHITECTURES "$ENV{CMAKE_OSX_ARCHITECTURES}" CACHE STRING
+ "Build architectures for OSX")
+
+# macOS, iOS, tvOS, and watchOS should lookup compilers from
+# Platform/Apple-${CMAKE_CXX_COMPILER_ID}-<LANG>
+set(CMAKE_EFFECTIVE_SYSTEM_NAME "Apple")
+
+#----------------------------------------------------------------------------
+# _CURRENT_OSX_VERSION - as a two-component string: 10.5, 10.6, ...
+#
+string(REGEX REPLACE "^([0-9]+\\.[0-9]+).*$" "\\1"
+ _CURRENT_OSX_VERSION "${CURRENT_OSX_VERSION}")
+
+#----------------------------------------------------------------------------
+# CMAKE_OSX_DEPLOYMENT_TARGET
+
+# Set cache variable - end user may change this during ccmake or cmake-gui configure.
+if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND _CURRENT_OSX_VERSION VERSION_GREATER 10.3)
+ set(CMAKE_OSX_DEPLOYMENT_TARGET "$ENV{MACOSX_DEPLOYMENT_TARGET}" CACHE STRING
+ "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value.")
+endif()
+
+#----------------------------------------------------------------------------
+# CMAKE_OSX_SYSROOT
+
+if(CMAKE_OSX_SYSROOT)
+ # Use the existing value without further computation to choose a default.
+ set(_CMAKE_OSX_SYSROOT_DEFAULT "${CMAKE_OSX_SYSROOT}")
+elseif(NOT "x$ENV{SDKROOT}" STREQUAL "x" AND
+ (NOT "x$ENV{SDKROOT}" MATCHES "/" OR IS_DIRECTORY "$ENV{SDKROOT}"))
+ # Use the value of SDKROOT from the environment.
+ set(_CMAKE_OSX_SYSROOT_DEFAULT "$ENV{SDKROOT}")
+elseif(CMAKE_SYSTEM_NAME STREQUAL iOS)
+ set(_CMAKE_OSX_SYSROOT_DEFAULT "iphoneos")
+elseif(CMAKE_SYSTEM_NAME STREQUAL tvOS)
+ set(_CMAKE_OSX_SYSROOT_DEFAULT "appletvos")
+elseif(CMAKE_SYSTEM_NAME STREQUAL watchOS)
+ set(_CMAKE_OSX_SYSROOT_DEFAULT "watchos")
+elseif("${CMAKE_GENERATOR}" MATCHES Xcode
+ OR CMAKE_OSX_DEPLOYMENT_TARGET
+ OR CMAKE_OSX_ARCHITECTURES MATCHES "[^;]"
+ OR NOT EXISTS "/usr/include/sys/types.h")
+ # Find installed SDKs in either Xcode-4.3+ or pre-4.3 SDKs directory.
+ set(_CMAKE_OSX_SDKS_DIR "")
+ if(OSX_DEVELOPER_ROOT)
+ foreach(d Platforms/MacOSX.platform/Developer/SDKs SDKs)
+ file(GLOB _CMAKE_OSX_SDKS ${OSX_DEVELOPER_ROOT}/${d}/*)
+ if(_CMAKE_OSX_SDKS)
+ set(_CMAKE_OSX_SDKS_DIR ${OSX_DEVELOPER_ROOT}/${d})
+ break()
+ endif()
+ endforeach()
+ endif()
+
+ if(_CMAKE_OSX_SDKS_DIR)
+ # Select SDK for current OSX version accounting for the known
+ # specially named SDKs.
+ set(_CMAKE_OSX_SDKS_VER_SUFFIX_10.4 "u")
+ set(_CMAKE_OSX_SDKS_VER_SUFFIX_10.3 ".9")
+
+ # find the latest SDK
+ set(_CMAKE_OSX_LATEST_SDK_VERSION "0.0")
+ file(GLOB _CMAKE_OSX_SDKS RELATIVE "${_CMAKE_OSX_SDKS_DIR}" "${_CMAKE_OSX_SDKS_DIR}/MacOSX*.sdk")
+ foreach(_SDK ${_CMAKE_OSX_SDKS})
+ if(_SDK MATCHES "MacOSX([0-9]+\\.[0-9]+)[^/]*\\.sdk" AND CMAKE_MATCH_1 VERSION_GREATER ${_CMAKE_OSX_LATEST_SDK_VERSION})
+ set(_CMAKE_OSX_LATEST_SDK_VERSION "${CMAKE_MATCH_1}")
+ endif()
+ endforeach()
+
+ # pick an SDK that works
+ set(_CMAKE_OSX_SYSROOT_DEFAULT)
+ foreach(ver ${CMAKE_OSX_DEPLOYMENT_TARGET}
+ ${_CURRENT_OSX_VERSION}
+ ${_CMAKE_OSX_LATEST_SDK_VERSION})
+ set(_CMAKE_OSX_DEPLOYMENT_TARGET ${ver})
+ set(_CMAKE_OSX_SDKS_VER ${_CMAKE_OSX_DEPLOYMENT_TARGET}${_CMAKE_OSX_SDKS_VER_SUFFIX_${_CMAKE_OSX_DEPLOYMENT_TARGET}})
+ set(_CMAKE_OSX_SYSROOT_CHECK "${_CMAKE_OSX_SDKS_DIR}/MacOSX${_CMAKE_OSX_SDKS_VER}.sdk")
+ if(IS_DIRECTORY "${_CMAKE_OSX_SYSROOT_CHECK}")
+ set(_CMAKE_OSX_SYSROOT_DEFAULT "${_CMAKE_OSX_SYSROOT_CHECK}")
+ break()
+ endif()
+ endforeach()
+
+ if(NOT CMAKE_CROSSCOMPILING AND NOT CMAKE_OSX_DEPLOYMENT_TARGET AND _CURRENT_OSX_VERSION VERSION_LESS _CMAKE_OSX_DEPLOYMENT_TARGET)
+ set(CMAKE_OSX_DEPLOYMENT_TARGET ${_CURRENT_OSX_VERSION} CACHE STRING
+ "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value." FORCE)
+ endif()
+ else()
+ # Assume developer files are in root (such as Xcode 4.5 command-line tools).
+ set(_CMAKE_OSX_SYSROOT_DEFAULT "")
+ endif()
+endif()
+
+# Set cache variable - end user may change this during ccmake or cmake-gui configure.
+# Choose the type based on the current value.
+set(_CMAKE_OSX_SYSROOT_TYPE STRING)
+foreach(v CMAKE_OSX_SYSROOT _CMAKE_OSX_SYSROOT_DEFAULT)
+ if("x${${v}}" MATCHES "/")
+ set(_CMAKE_OSX_SYSROOT_TYPE PATH)
+ break()
+ endif()
+endforeach()
+set(CMAKE_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_DEFAULT}" CACHE ${_CMAKE_OSX_SYSROOT_TYPE}
+ "The product will be built against the headers and libraries located inside the indicated SDK.")
+
+# Resolves the SDK name into a path
+function(_apple_resolve_sdk_path sdk_name ret)
+ execute_process(
+ COMMAND xcrun -sdk ${sdk_name} --show-sdk-path
+ OUTPUT_VARIABLE _stdout
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_VARIABLE _stderr
+ RESULT_VARIABLE _failed
+ )
+ set(${ret} "${_stdout}" PARENT_SCOPE)
+endfunction()
+# Handle multi-arch sysroots. Do this before CMAKE_OSX_SYSROOT is
+# transformed into a path, so that we know the sysroot name.
+function(_apple_resolve_multi_arch_sysroots)
+ if(CMAKE_APPLE_ARCH_SYSROOTS)
+ return() # Already cached
+ endif()
+
+ list(LENGTH CMAKE_OSX_ARCHITECTURES _num_archs)
+ if(NOT (_num_archs GREATER 1))
+ return() # Only apply to multi-arch
+ endif()
+
+ if(CMAKE_OSX_SYSROOT STREQUAL "macosx")
+ # macOS doesn't have a simulator sdk / sysroot, so there is no need to handle per-sdk arches.
+ return()
+ endif()
+
+ if(IS_DIRECTORY "${CMAKE_OSX_SYSROOT}")
+ if(NOT CMAKE_OSX_SYSROOT STREQUAL _CMAKE_OSX_SYSROOT_DEFAULT)
+ message(WARNING "Can not resolve multi-arch sysroots with CMAKE_OSX_SYSROOT set to path (${CMAKE_OSX_SYSROOT})")
+ endif()
+ return()
+ endif()
+
+ string(REPLACE "os" "simulator" _simulator_sdk ${CMAKE_OSX_SYSROOT})
+ set(_sdks "${CMAKE_OSX_SYSROOT};${_simulator_sdk}")
+ foreach(sdk ${_sdks})
+ _apple_resolve_sdk_path(${sdk} _sdk_path)
+ if(NOT IS_DIRECTORY "${_sdk_path}")
+ message(WARNING "Failed to resolve SDK path for '${sdk}'")
+ continue()
+ endif()
+
+ execute_process(
+ COMMAND plutil -extract SupportedTargets.${sdk}.Archs json ${_sdk_path}/SDKSettings.plist -o -
+ OUTPUT_VARIABLE _sdk_archs_json
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_VARIABLE _stderr
+ RESULT_VARIABLE _failed
+ )
+ if(_failed)
+ # Failure to extract supported architectures for an SDK means that the installed SDK is old
+ # and does not provide such information (SDKs that come with Xcode >= 10.x started providing
+ # the information). In such a case, return early, and handle multi-arch builds the old way
+ # (no per-sdk arches).
+ return()
+ endif()
+
+ # Poor man's JSON decoding
+ string(REGEX REPLACE "[]\\[\"]" "" _sdk_archs ${_sdk_archs_json})
+ string(REPLACE "," ";" _sdk_archs ${_sdk_archs})
+
+ set(_sdk_archs_${sdk} ${_sdk_archs})
+ set(_sdk_path_${sdk} ${_sdk_path})
+ endforeach()
+
+ foreach(arch ${CMAKE_OSX_ARCHITECTURES})
+ set(_arch_sysroot "")
+ foreach(sdk ${_sdks})
+ list(FIND _sdk_archs_${sdk} ${arch} arch_index)
+ if(NOT arch_index EQUAL -1)
+ set(_arch_sysroot ${_sdk_path_${sdk}})
+ break()
+ endif()
+ endforeach()
+ if(_arch_sysroot)
+ list(APPEND _arch_sysroots ${_arch_sysroot})
+ else()
+ message(WARNING "No SDK found for architecture '${arch}'")
+ list(APPEND _arch_sysroots "") # Placeholder
+ endif()
+ endforeach()
+
+ set(CMAKE_APPLE_ARCH_SYSROOTS "${_arch_sysroots}" CACHE INTERNAL
+ "Architecture dependent sysroots, one per CMAKE_OSX_ARCHITECTURES")
+endfunction()
+
+_apple_resolve_multi_arch_sysroots()
+
+# Transform CMAKE_OSX_SYSROOT to absolute path
+set(_CMAKE_OSX_SYSROOT_PATH "")
+if(CMAKE_OSX_SYSROOT)
+ if("x${CMAKE_OSX_SYSROOT}" MATCHES "/")
+ # This is a path to the SDK. Make sure it exists.
+ if(NOT IS_DIRECTORY "${CMAKE_OSX_SYSROOT}")
+ message(WARNING "Ignoring CMAKE_OSX_SYSROOT value:\n ${CMAKE_OSX_SYSROOT}\n"
+ "because the directory does not exist.")
+ set(CMAKE_OSX_SYSROOT "")
+ endif()
+ set(_CMAKE_OSX_SYSROOT_PATH "${CMAKE_OSX_SYSROOT}")
+ else()
+ _apple_resolve_sdk_path(${CMAKE_OSX_SYSROOT} _sdk_path)
+ if(IS_DIRECTORY "${_sdk_path}")
+ set(_CMAKE_OSX_SYSROOT_PATH "${_sdk_path}")
+ # For non-Xcode generators use the path.
+ if(NOT "${CMAKE_GENERATOR}" MATCHES "Xcode")
+ set(CMAKE_OSX_SYSROOT "${_CMAKE_OSX_SYSROOT_PATH}")
+ endif()
+ endif()
+ endif()
+endif()
diff --git a/share/cmake-3.17/Modules/Platform/Darwin.cmake b/share/cmake-3.17/Modules/Platform/Darwin.cmake
new file mode 100644
index 0000000..0a4d4e1
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Darwin.cmake
@@ -0,0 +1,220 @@
+set(APPLE 1)
+
+if(CMAKE_SYSTEM_NAME STREQUAL "iOS" OR CMAKE_SYSTEM_NAME STREQUAL "tvOS" OR CMAKE_SYSTEM_NAME STREQUAL "watchOS")
+ if(NOT DEFINED CMAKE_MACOSX_BUNDLE)
+ set(CMAKE_MACOSX_BUNDLE ON)
+ endif()
+
+ list(APPEND CMAKE_FIND_ROOT_PATH "${_CMAKE_OSX_SYSROOT_PATH}")
+ if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_LIBRARY)
+ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+ endif()
+ if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
+ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+ endif()
+ if(NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PACKAGE)
+ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+ endif()
+endif()
+
+# Darwin versions:
+# 6.x == Mac OSX 10.2 (Jaguar)
+# 7.x == Mac OSX 10.3 (Panther)
+# 8.x == Mac OSX 10.4 (Tiger)
+# 9.x == Mac OSX 10.5 (Leopard)
+# 10.x == Mac OSX 10.6 (Snow Leopard)
+# 11.x == Mac OSX 10.7 (Lion)
+# 12.x == Mac OSX 10.8 (Mountain Lion)
+string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_VERSION "${CMAKE_SYSTEM_VERSION}")
+string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\2" DARWIN_MINOR_VERSION "${CMAKE_SYSTEM_VERSION}")
+
+# Do not use the "-Wl,-search_paths_first" flag with the OSX 10.2 compiler.
+# Done this way because it is too early to do a TRY_COMPILE.
+if(NOT DEFINED HAVE_FLAG_SEARCH_PATHS_FIRST)
+ set(HAVE_FLAG_SEARCH_PATHS_FIRST 0)
+ if("${DARWIN_MAJOR_VERSION}" GREATER 6)
+ set(HAVE_FLAG_SEARCH_PATHS_FIRST 1)
+ endif()
+endif()
+# More desirable, but does not work:
+ #include(CheckCXXCompilerFlag)
+ #CHECK_CXX_COMPILER_FLAG("-Wl,-search_paths_first" HAVE_FLAG_SEARCH_PATHS_FIRST)
+
+set(CMAKE_SHARED_LIBRARY_PREFIX "lib")
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib")
+set(CMAKE_SHARED_MODULE_PREFIX "lib")
+set(CMAKE_SHARED_MODULE_SUFFIX ".so")
+set(CMAKE_MODULE_EXISTS 1)
+set(CMAKE_DL_LIBS "")
+
+# Enable rpath support for 10.5 and greater where it is known to work.
+if("${DARWIN_MAJOR_VERSION}" GREATER 8)
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
+endif()
+
+foreach(lang C CXX OBJC OBJCXX)
+ set(CMAKE_${lang}_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ")
+ set(CMAKE_${lang}_OSX_CURRENT_VERSION_FLAG "-current_version ")
+ set(CMAKE_${lang}_LINK_FLAGS "-Wl,-headerpad_max_install_names")
+
+ if(HAVE_FLAG_SEARCH_PATHS_FIRST)
+ set(CMAKE_${lang}_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_${lang}_LINK_FLAGS}")
+ endif()
+
+ set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names")
+ set(CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS "-bundle -Wl,-headerpad_max_install_names")
+ set(CMAKE_SHARED_MODULE_LOADER_${lang}_FLAG "-Wl,-bundle_loader,")
+endforeach()
+
+set(CMAKE_PLATFORM_HAS_INSTALLNAME 1)
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".tbd" ".dylib" ".so" ".a")
+
+# hack: if a new cmake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old build tree
+# (where install_name_tool was hardcoded) and where CMAKE_INSTALL_NAME_TOOL isn't in the cache
+# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun)
+# hardcode CMAKE_INSTALL_NAME_TOOL here to install_name_tool, so it behaves as it did before, Alex
+if(NOT DEFINED CMAKE_INSTALL_NAME_TOOL)
+ find_program(CMAKE_INSTALL_NAME_TOOL install_name_tool)
+ mark_as_advanced(CMAKE_INSTALL_NAME_TOOL)
+endif()
+
+# Enable shared library versioning.
+set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name")
+
+if("${_CURRENT_OSX_VERSION}" VERSION_LESS "10.5")
+ # Need to list dependent shared libraries on link line. When building
+ # with -isysroot (for universal binaries), the linker always looks for
+ # dependent libraries under the sysroot. Listing them on the link
+ # line works around the problem.
+ set(CMAKE_LINK_DEPENDENT_LIBRARY_FILES 1)
+endif()
+
+foreach(lang C CXX Fortran OBJC OBJCXX)
+ # Xcode does not support -isystem yet.
+ if(XCODE)
+ set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang})
+ endif()
+
+ set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
+ "<CMAKE_${lang}_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> <LINK_FLAGS> -o <TARGET> <SONAME_FLAG> <TARGET_INSTALLNAME_DIR><TARGET_SONAME> <OBJECTS> <LINK_LIBRARIES>")
+
+ set(CMAKE_${lang}_CREATE_SHARED_MODULE
+ "<CMAKE_${lang}_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS> <LINK_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
+
+ set(CMAKE_${lang}_CREATE_MACOSX_FRAMEWORK
+ "<CMAKE_${lang}_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> <LINK_FLAGS> -o <TARGET> <SONAME_FLAG> <TARGET_INSTALLNAME_DIR><TARGET_SONAME> <OBJECTS> <LINK_LIBRARIES>")
+
+ # Set default framework search path flag for languages known to use a
+ # preprocessor that may find headers in frameworks.
+ set(CMAKE_${lang}_FRAMEWORK_SEARCH_FLAG -F)
+endforeach()
+
+# default to searching for frameworks first
+if(NOT DEFINED CMAKE_FIND_FRAMEWORK)
+ set(CMAKE_FIND_FRAMEWORK FIRST)
+endif()
+
+# Older OS X linkers do not report their framework search path
+# with -v but "man ld" documents the following locations.
+set(CMAKE_PLATFORM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ ${_CMAKE_OSX_SYSROOT_PATH}/Library/Frameworks
+ ${_CMAKE_OSX_SYSROOT_PATH}/System/Library/Frameworks
+ )
+if(_CMAKE_OSX_SYSROOT_PATH)
+ # Treat some paths as implicit so we do not override the SDK versions.
+ list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ /System/Library/Frameworks)
+endif()
+if("${_CURRENT_OSX_VERSION}" VERSION_LESS "10.5")
+ # Older OS X tools had more implicit paths.
+ list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ ${_CMAKE_OSX_SYSROOT_PATH}/Network/Library/Frameworks)
+endif()
+
+# set up the default search directories for frameworks
+set(CMAKE_SYSTEM_FRAMEWORK_PATH
+ ~/Library/Frameworks
+ )
+if(_CMAKE_OSX_SYSROOT_PATH)
+ list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH
+ ${_CMAKE_OSX_SYSROOT_PATH}/Library/Frameworks
+ ${_CMAKE_OSX_SYSROOT_PATH}/Network/Library/Frameworks
+ ${_CMAKE_OSX_SYSROOT_PATH}/System/Library/Frameworks
+ )
+ # add platform developer framework path if exists
+ foreach(_path
+ # Xcode 6
+ ${_CMAKE_OSX_SYSROOT_PATH}/../../Library/Frameworks
+ # Xcode 5 iOS
+ ${_CMAKE_OSX_SYSROOT_PATH}/Developer/Library/Frameworks
+ # Xcode 5 OSX
+ ${_CMAKE_OSX_SYSROOT_PATH}/../../../../../Library/Frameworks
+ )
+ get_filename_component(_abolute_path "${_path}" ABSOLUTE)
+ if(EXISTS "${_abolute_path}")
+ list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH "${_abolute_path}")
+ break()
+ endif()
+ endforeach()
+endif()
+if (OSX_DEVELOPER_ROOT AND EXISTS "${OSX_DEVELOPER_ROOT}/Library/Frameworks")
+ list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH
+ ${OSX_DEVELOPER_ROOT}/Library/Frameworks)
+endif()
+list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH
+ /Library/Frameworks
+ /Network/Library/Frameworks
+ /System/Library/Frameworks)
+
+# Warn about known system mis-configuration case.
+if(CMAKE_OSX_SYSROOT)
+ get_property(_IN_TC GLOBAL PROPERTY IN_TRY_COMPILE)
+ if(NOT _IN_TC AND
+ NOT IS_SYMLINK "${CMAKE_OSX_SYSROOT}/Library/Frameworks"
+ AND IS_SYMLINK "${CMAKE_OSX_SYSROOT}/Library/Frameworks/Frameworks")
+ message(WARNING "The SDK Library/Frameworks path\n"
+ " ${CMAKE_OSX_SYSROOT}/Library/Frameworks\n"
+ "is not set up correctly on this system. "
+ "This is known to occur when installing Xcode 3.2.6:\n"
+ " http://bugs.python.org/issue14018\n"
+ "The problem may cause build errors that report missing system frameworks. "
+ "Fix your SDK symlinks to resolve this issue and avoid this warning."
+ )
+ endif()
+endif()
+
+# default to searching for application bundles first
+if(NOT DEFINED CMAKE_FIND_APPBUNDLE)
+ set(CMAKE_FIND_APPBUNDLE FIRST)
+endif()
+# set up the default search directories for application bundles
+set(_apps_paths)
+foreach(_path
+ "~/Applications"
+ "/Applications"
+ "${OSX_DEVELOPER_ROOT}/../Applications" # Xcode 4.3+
+ "${OSX_DEVELOPER_ROOT}/Applications" # pre-4.3
+ )
+ get_filename_component(_apps "${_path}" ABSOLUTE)
+ if(EXISTS "${_apps}")
+ list(APPEND _apps_paths "${_apps}")
+ endif()
+endforeach()
+if(_apps_paths)
+ list(REMOVE_DUPLICATES _apps_paths)
+endif()
+set(CMAKE_SYSTEM_APPBUNDLE_PATH
+ ${_apps_paths})
+unset(_apps_paths)
+
+include(Platform/UnixPaths)
+if(_CMAKE_OSX_SYSROOT_PATH AND EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/include)
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${_CMAKE_OSX_SYSROOT_PATH}/usr)
+ foreach(lang C CXX OBJC OBJCXX Swift)
+ list(APPEND _CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT ${_CMAKE_OSX_SYSROOT_PATH}/usr/include)
+ endforeach()
+endif()
+list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+ /sw # Fink
+ /opt/local # MacPorts
+ )
diff --git a/share/cmake-3.16/Modules/Platform/DragonFly.cmake b/share/cmake-3.17/Modules/Platform/DragonFly.cmake
index 12e5f3c..12e5f3c 100644
--- a/share/cmake-3.16/Modules/Platform/DragonFly.cmake
+++ b/share/cmake-3.17/Modules/Platform/DragonFly.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Euros.cmake b/share/cmake-3.17/Modules/Platform/Euros.cmake
index 4c7b182..4c7b182 100644
--- a/share/cmake-3.16/Modules/Platform/Euros.cmake
+++ b/share/cmake-3.17/Modules/Platform/Euros.cmake
diff --git a/share/cmake-3.16/Modules/Platform/FreeBSD-Determine-CXX.cmake b/share/cmake-3.17/Modules/Platform/FreeBSD-Determine-CXX.cmake
index b594dae..b594dae 100644
--- a/share/cmake-3.16/Modules/Platform/FreeBSD-Determine-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/FreeBSD-Determine-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/FreeBSD.cmake b/share/cmake-3.17/Modules/Platform/FreeBSD.cmake
index 4a4c00d..4a4c00d 100644
--- a/share/cmake-3.16/Modules/Platform/FreeBSD.cmake
+++ b/share/cmake-3.17/Modules/Platform/FreeBSD.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Fuchsia.cmake b/share/cmake-3.17/Modules/Platform/Fuchsia.cmake
index 4b13805..4b13805 100644
--- a/share/cmake-3.16/Modules/Platform/Fuchsia.cmake
+++ b/share/cmake-3.17/Modules/Platform/Fuchsia.cmake
diff --git a/share/cmake-3.16/Modules/Platform/GHS-MULTI-Determine.cmake b/share/cmake-3.17/Modules/Platform/GHS-MULTI-Determine.cmake
index 349d906..349d906 100644
--- a/share/cmake-3.16/Modules/Platform/GHS-MULTI-Determine.cmake
+++ b/share/cmake-3.17/Modules/Platform/GHS-MULTI-Determine.cmake
diff --git a/share/cmake-3.16/Modules/Platform/GHS-MULTI.cmake b/share/cmake-3.17/Modules/Platform/GHS-MULTI.cmake
index 60a15c4..60a15c4 100644
--- a/share/cmake-3.16/Modules/Platform/GHS-MULTI.cmake
+++ b/share/cmake-3.17/Modules/Platform/GHS-MULTI.cmake
diff --git a/share/cmake-3.16/Modules/Platform/GNU.cmake b/share/cmake-3.17/Modules/Platform/GNU.cmake
index fac29a8..fac29a8 100644
--- a/share/cmake-3.16/Modules/Platform/GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/GNUtoMS_lib.bat.in b/share/cmake-3.17/Modules/Platform/GNUtoMS_lib.bat.in
index 8613be3..8613be3 100644
--- a/share/cmake-3.16/Modules/Platform/GNUtoMS_lib.bat.in
+++ b/share/cmake-3.17/Modules/Platform/GNUtoMS_lib.bat.in
diff --git a/share/cmake-3.16/Modules/Platform/GNUtoMS_lib.cmake b/share/cmake-3.17/Modules/Platform/GNUtoMS_lib.cmake
index ca9b0f8..ca9b0f8 100644
--- a/share/cmake-3.16/Modules/Platform/GNUtoMS_lib.cmake
+++ b/share/cmake-3.17/Modules/Platform/GNUtoMS_lib.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Generic-ADSP-ASM.cmake b/share/cmake-3.17/Modules/Platform/Generic-ADSP-ASM.cmake
index e718bec..e718bec 100644
--- a/share/cmake-3.16/Modules/Platform/Generic-ADSP-ASM.cmake
+++ b/share/cmake-3.17/Modules/Platform/Generic-ADSP-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Generic-ADSP-C.cmake b/share/cmake-3.17/Modules/Platform/Generic-ADSP-C.cmake
index c8597cd..c8597cd 100644
--- a/share/cmake-3.16/Modules/Platform/Generic-ADSP-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Generic-ADSP-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Generic-ADSP-CXX.cmake b/share/cmake-3.17/Modules/Platform/Generic-ADSP-CXX.cmake
index d76bb66..d76bb66 100644
--- a/share/cmake-3.16/Modules/Platform/Generic-ADSP-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Generic-ADSP-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Generic-ADSP-Common.cmake b/share/cmake-3.17/Modules/Platform/Generic-ADSP-Common.cmake
index 026f83c..026f83c 100644
--- a/share/cmake-3.16/Modules/Platform/Generic-ADSP-Common.cmake
+++ b/share/cmake-3.17/Modules/Platform/Generic-ADSP-Common.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Generic-SDCC-C.cmake b/share/cmake-3.17/Modules/Platform/Generic-SDCC-C.cmake
new file mode 100644
index 0000000..c3fd186
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Generic-SDCC-C.cmake
@@ -0,0 +1,58 @@
+# This file implements basic support for sdcc (http://sdcc.sourceforge.net/)
+# a free C compiler for 8 and 16 bit microcontrollers.
+# To use it either a toolchain file is required or cmake has to be run like this:
+# cmake -DCMAKE_C_COMPILER=sdcc -DCMAKE_SYSTEM_NAME=Generic <dir...>
+# Since sdcc doesn't support C++, C++ support should be disabled in the
+# CMakeLists.txt using the project() command:
+# project(my_project C)
+
+set(CMAKE_STATIC_LIBRARY_PREFIX "")
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
+set(CMAKE_SHARED_LIBRARY_PREFIX "") # lib
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".lib") # .so
+set(CMAKE_IMPORT_LIBRARY_PREFIX )
+set(CMAKE_IMPORT_LIBRARY_SUFFIX )
+set(CMAKE_EXECUTABLE_SUFFIX ".ihx") # intel hex file
+set(CMAKE_LINK_LIBRARY_SUFFIX ".lib")
+set(CMAKE_DL_LIBS "")
+
+set(CMAKE_C_OUTPUT_EXTENSION ".rel")
+
+# find sdar/sdcclib as CMAKE_AR
+# since cmake may already have searched for "ar", sdar has to
+# be searched with a different variable name (SDCCAR_EXECUTABLE)
+# and must then be forced into the cache.
+# sdcclib has been deprecated in SDCC 3.2.0 and removed in 3.8.6
+# so we first look for sdar
+get_filename_component(SDCC_LOCATION "${CMAKE_C_COMPILER}" PATH)
+find_program(SDCCAR_EXECUTABLE sdar NAMES sdcclib PATHS "${SDCC_LOCATION}" NO_DEFAULT_PATH)
+find_program(SDCCAR_EXECUTABLE sdar NAMES sdcclib)
+# for compatibility, in case SDCCLIB_EXECUTABLE is set, we use it
+if(DEFINED SDCCLIB_EXECUTABLE)
+ set(CMAKE_AR "${SDCCLIB_EXECUTABLE}" CACHE FILEPATH "The sdcc librarian" FORCE)
+else()
+ set(CMAKE_AR "${SDCCAR_EXECUTABLE}" CACHE FILEPATH "The sdcc librarian" FORCE)
+endif()
+
+if("${SDCCAR_EXECUTABLE}" MATCHES "sdcclib")
+ set(CMAKE_AR_OPTIONS "-a")
+else()
+ set(CMAKE_AR_OPTIONS "-rc")
+endif()
+
+set(CMAKE_C_LINKER_WRAPPER_FLAG "-Wl" ",")
+
+# compile a C file into an object file
+set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+
+# link object files to an executable
+set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> <FLAGS> <OBJECTS> -o <TARGET> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>")
+
+# needs sdcc + sdar/sdcclib
+set(CMAKE_C_CREATE_STATIC_LIBRARY
+ "\"${CMAKE_COMMAND}\" -E remove <TARGET>"
+ "<CMAKE_AR> ${CMAKE_AR_OPTIONS} <TARGET> <LINK_FLAGS> <OBJECTS> ")
+
+# not supported by sdcc
+set(CMAKE_C_CREATE_SHARED_LIBRARY "")
+set(CMAKE_C_CREATE_MODULE_LIBRARY "")
diff --git a/share/cmake-3.16/Modules/Platform/Generic.cmake b/share/cmake-3.17/Modules/Platform/Generic.cmake
index fcb2699..fcb2699 100644
--- a/share/cmake-3.16/Modules/Platform/Generic.cmake
+++ b/share/cmake-3.17/Modules/Platform/Generic.cmake
diff --git a/share/cmake-3.16/Modules/Platform/HP-UX-GNU-ASM.cmake b/share/cmake-3.17/Modules/Platform/HP-UX-GNU-ASM.cmake
index 613b859..613b859 100644
--- a/share/cmake-3.16/Modules/Platform/HP-UX-GNU-ASM.cmake
+++ b/share/cmake-3.17/Modules/Platform/HP-UX-GNU-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Platform/HP-UX-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/HP-UX-GNU-C.cmake
index 5f9ac42..5f9ac42 100644
--- a/share/cmake-3.16/Modules/Platform/HP-UX-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/HP-UX-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/HP-UX-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/HP-UX-GNU-CXX.cmake
index ac72560..ac72560 100644
--- a/share/cmake-3.16/Modules/Platform/HP-UX-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/HP-UX-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/HP-UX-GNU-Fortran.cmake b/share/cmake-3.17/Modules/Platform/HP-UX-GNU-Fortran.cmake
index ee0181f..ee0181f 100644
--- a/share/cmake-3.16/Modules/Platform/HP-UX-GNU-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/HP-UX-GNU-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/HP-UX-GNU.cmake b/share/cmake-3.17/Modules/Platform/HP-UX-GNU.cmake
index 699c4aa..699c4aa 100644
--- a/share/cmake-3.16/Modules/Platform/HP-UX-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/HP-UX-GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/HP-UX-HP-ASM.cmake b/share/cmake-3.17/Modules/Platform/HP-UX-HP-ASM.cmake
index 05c69e4..05c69e4 100644
--- a/share/cmake-3.16/Modules/Platform/HP-UX-HP-ASM.cmake
+++ b/share/cmake-3.17/Modules/Platform/HP-UX-HP-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Platform/HP-UX-HP-C.cmake b/share/cmake-3.17/Modules/Platform/HP-UX-HP-C.cmake
index 7610383..7610383 100644
--- a/share/cmake-3.16/Modules/Platform/HP-UX-HP-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/HP-UX-HP-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/HP-UX-HP-CXX.cmake b/share/cmake-3.17/Modules/Platform/HP-UX-HP-CXX.cmake
index d37d2b0..d37d2b0 100644
--- a/share/cmake-3.16/Modules/Platform/HP-UX-HP-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/HP-UX-HP-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/HP-UX-HP-Fortran.cmake b/share/cmake-3.17/Modules/Platform/HP-UX-HP-Fortran.cmake
index 12007e4..12007e4 100644
--- a/share/cmake-3.16/Modules/Platform/HP-UX-HP-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/HP-UX-HP-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/HP-UX-HP.cmake b/share/cmake-3.17/Modules/Platform/HP-UX-HP.cmake
index b301d17..b301d17 100644
--- a/share/cmake-3.16/Modules/Platform/HP-UX-HP.cmake
+++ b/share/cmake-3.17/Modules/Platform/HP-UX-HP.cmake
diff --git a/share/cmake-3.16/Modules/Platform/HP-UX.cmake b/share/cmake-3.17/Modules/Platform/HP-UX.cmake
index 9572a7e..9572a7e 100644
--- a/share/cmake-3.16/Modules/Platform/HP-UX.cmake
+++ b/share/cmake-3.17/Modules/Platform/HP-UX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Haiku.cmake b/share/cmake-3.17/Modules/Platform/Haiku.cmake
index 7e0af61..7e0af61 100644
--- a/share/cmake-3.16/Modules/Platform/Haiku.cmake
+++ b/share/cmake-3.17/Modules/Platform/Haiku.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-Absoft-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Linux-Absoft-Fortran.cmake
index beb41a3..beb41a3 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-Absoft-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-Absoft-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-CCur-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Linux-CCur-Fortran.cmake
index ceecc2f..ceecc2f 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-CCur-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-CCur-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-Clang-C.cmake b/share/cmake-3.17/Modules/Platform/Linux-Clang-C.cmake
index 2a77d27..2a77d27 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-Clang-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-Clang-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-Clang-CXX.cmake b/share/cmake-3.17/Modules/Platform/Linux-Clang-CXX.cmake
index 9d9a4df..9d9a4df 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-Clang-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-Clang-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-Determine-CXX.cmake b/share/cmake-3.17/Modules/Platform/Linux-Determine-CXX.cmake
index b594dae..b594dae 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-Determine-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-Determine-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/Linux-GNU-C.cmake
index 84dd492..84dd492 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/Linux-GNU-CXX.cmake
index 4162335..4162335 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-GNU-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Linux-GNU-Fortran.cmake
index 85e1226..85e1226 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-GNU-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-GNU-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake b/share/cmake-3.17/Modules/Platform/Linux-GNU.cmake
index 6878254..6878254 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-Intel-C.cmake b/share/cmake-3.17/Modules/Platform/Linux-Intel-C.cmake
index 449493a..449493a 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-Intel-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-Intel-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-Intel-CXX.cmake b/share/cmake-3.17/Modules/Platform/Linux-Intel-CXX.cmake
index 142b6cf..142b6cf 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-Intel-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-Intel-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-Intel-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Linux-Intel-Fortran.cmake
index d8e94d0..d8e94d0 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-Intel-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-Intel-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-Intel.cmake b/share/cmake-3.17/Modules/Platform/Linux-Intel.cmake
index 3b5ca59..3b5ca59 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-Intel.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-Intel.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-NAG-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Linux-NAG-Fortran.cmake
index 353bae6..353bae6 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-NAG-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-NAG-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-PGI-C.cmake b/share/cmake-3.17/Modules/Platform/Linux-PGI-C.cmake
index edf4f3f..edf4f3f 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-PGI-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-PGI-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-PGI-CXX.cmake b/share/cmake-3.17/Modules/Platform/Linux-PGI-CXX.cmake
index d425f88..d425f88 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-PGI-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-PGI-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-PGI-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Linux-PGI-Fortran.cmake
index e8731a3..e8731a3 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-PGI-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-PGI-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-PGI.cmake b/share/cmake-3.17/Modules/Platform/Linux-PGI.cmake
index 0341654..0341654 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-PGI.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-PGI.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-PathScale-C.cmake b/share/cmake-3.17/Modules/Platform/Linux-PathScale-C.cmake
index 009f398..009f398 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-PathScale-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-PathScale-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-PathScale-CXX.cmake b/share/cmake-3.17/Modules/Platform/Linux-PathScale-CXX.cmake
index b6a5771..b6a5771 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-PathScale-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-PathScale-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-PathScale-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Linux-PathScale-Fortran.cmake
index 5662d3d..5662d3d 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-PathScale-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-PathScale-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-PathScale.cmake b/share/cmake-3.17/Modules/Platform/Linux-PathScale.cmake
index 6070606..6070606 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-PathScale.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-PathScale.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-SunPro-CXX.cmake b/share/cmake-3.17/Modules/Platform/Linux-SunPro-CXX.cmake
index a07f1ec..a07f1ec 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-SunPro-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-SunPro-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-TinyCC-C.cmake b/share/cmake-3.17/Modules/Platform/Linux-TinyCC-C.cmake
index 9409d8b..9409d8b 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-TinyCC-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-TinyCC-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-VisualAge-C.cmake b/share/cmake-3.17/Modules/Platform/Linux-VisualAge-C.cmake
index 0622b63..0622b63 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-VisualAge-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-VisualAge-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-VisualAge-CXX.cmake b/share/cmake-3.17/Modules/Platform/Linux-VisualAge-CXX.cmake
index b878ba0..b878ba0 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-VisualAge-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-VisualAge-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-VisualAge-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Linux-VisualAge-Fortran.cmake
index 1939a8a..1939a8a 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-VisualAge-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-VisualAge-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-XL-C.cmake b/share/cmake-3.17/Modules/Platform/Linux-XL-C.cmake
index ef0c52b..ef0c52b 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-XL-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-XL-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-XL-CXX.cmake b/share/cmake-3.17/Modules/Platform/Linux-XL-CXX.cmake
index aa57d6e..aa57d6e 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-XL-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-XL-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-XL-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Linux-XL-Fortran.cmake
index d9b4c2d..d9b4c2d 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-XL-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-XL-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux-como.cmake b/share/cmake-3.17/Modules/Platform/Linux-como.cmake
index d1550d2..d1550d2 100644
--- a/share/cmake-3.16/Modules/Platform/Linux-como.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux-como.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Linux.cmake b/share/cmake-3.17/Modules/Platform/Linux.cmake
index b5d5464..b5d5464 100644
--- a/share/cmake-3.16/Modules/Platform/Linux.cmake
+++ b/share/cmake-3.17/Modules/Platform/Linux.cmake
diff --git a/share/cmake-3.16/Modules/Platform/MP-RAS.cmake b/share/cmake-3.17/Modules/Platform/MP-RAS.cmake
index fe8d81a..fe8d81a 100644
--- a/share/cmake-3.16/Modules/Platform/MP-RAS.cmake
+++ b/share/cmake-3.17/Modules/Platform/MP-RAS.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Midipix.cmake b/share/cmake-3.17/Modules/Platform/Midipix.cmake
index 54a156b..54a156b 100644
--- a/share/cmake-3.16/Modules/Platform/Midipix.cmake
+++ b/share/cmake-3.17/Modules/Platform/Midipix.cmake
diff --git a/share/cmake-3.16/Modules/Platform/MirBSD.cmake b/share/cmake-3.17/Modules/Platform/MirBSD.cmake
index 7637f9b..7637f9b 100644
--- a/share/cmake-3.16/Modules/Platform/MirBSD.cmake
+++ b/share/cmake-3.17/Modules/Platform/MirBSD.cmake
diff --git a/share/cmake-3.16/Modules/Platform/NetBSD.cmake b/share/cmake-3.17/Modules/Platform/NetBSD.cmake
index d99cb4a..d99cb4a 100644
--- a/share/cmake-3.16/Modules/Platform/NetBSD.cmake
+++ b/share/cmake-3.17/Modules/Platform/NetBSD.cmake
diff --git a/share/cmake-3.16/Modules/Platform/OSF1.cmake b/share/cmake-3.17/Modules/Platform/OSF1.cmake
index f2ad612..f2ad612 100644
--- a/share/cmake-3.16/Modules/Platform/OSF1.cmake
+++ b/share/cmake-3.17/Modules/Platform/OSF1.cmake
diff --git a/share/cmake-3.16/Modules/Platform/OpenBSD.cmake b/share/cmake-3.17/Modules/Platform/OpenBSD.cmake
index 97e2a6a..97e2a6a 100644
--- a/share/cmake-3.16/Modules/Platform/OpenBSD.cmake
+++ b/share/cmake-3.17/Modules/Platform/OpenBSD.cmake
diff --git a/share/cmake-3.16/Modules/Platform/OpenVMS.cmake b/share/cmake-3.17/Modules/Platform/OpenVMS.cmake
index b10da23..b10da23 100644
--- a/share/cmake-3.16/Modules/Platform/OpenVMS.cmake
+++ b/share/cmake-3.17/Modules/Platform/OpenVMS.cmake
diff --git a/share/cmake-3.16/Modules/Platform/QNX.cmake b/share/cmake-3.17/Modules/Platform/QNX.cmake
index ebc4609..ebc4609 100644
--- a/share/cmake-3.16/Modules/Platform/QNX.cmake
+++ b/share/cmake-3.17/Modules/Platform/QNX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/RISCos.cmake b/share/cmake-3.17/Modules/Platform/RISCos.cmake
index 570cd7b..570cd7b 100644
--- a/share/cmake-3.16/Modules/Platform/RISCos.cmake
+++ b/share/cmake-3.17/Modules/Platform/RISCos.cmake
diff --git a/share/cmake-3.16/Modules/Platform/SCO_SV.cmake b/share/cmake-3.17/Modules/Platform/SCO_SV.cmake
index 1cb4b38..1cb4b38 100644
--- a/share/cmake-3.16/Modules/Platform/SCO_SV.cmake
+++ b/share/cmake-3.17/Modules/Platform/SCO_SV.cmake
diff --git a/share/cmake-3.16/Modules/Platform/SINIX.cmake b/share/cmake-3.17/Modules/Platform/SINIX.cmake
index e3b0a05..e3b0a05 100644
--- a/share/cmake-3.16/Modules/Platform/SINIX.cmake
+++ b/share/cmake-3.17/Modules/Platform/SINIX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/SunOS-Clang-C.cmake b/share/cmake-3.17/Modules/Platform/SunOS-Clang-C.cmake
index f06eb8f..f06eb8f 100644
--- a/share/cmake-3.16/Modules/Platform/SunOS-Clang-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/SunOS-Clang-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/SunOS-Clang-CXX.cmake b/share/cmake-3.17/Modules/Platform/SunOS-Clang-CXX.cmake
index 869182c..869182c 100644
--- a/share/cmake-3.16/Modules/Platform/SunOS-Clang-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/SunOS-Clang-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/SunOS-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/SunOS-GNU-C.cmake
index 6a96c00..6a96c00 100644
--- a/share/cmake-3.16/Modules/Platform/SunOS-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/SunOS-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/SunOS-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/SunOS-GNU-CXX.cmake
index 6b9f6fa..6b9f6fa 100644
--- a/share/cmake-3.16/Modules/Platform/SunOS-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/SunOS-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/SunOS-GNU-Fortran.cmake b/share/cmake-3.17/Modules/Platform/SunOS-GNU-Fortran.cmake
index c6b1888..c6b1888 100644
--- a/share/cmake-3.16/Modules/Platform/SunOS-GNU-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/SunOS-GNU-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/SunOS-GNU.cmake b/share/cmake-3.17/Modules/Platform/SunOS-GNU.cmake
index 47334d6..47334d6 100644
--- a/share/cmake-3.16/Modules/Platform/SunOS-GNU.cmake
+++ b/share/cmake-3.17/Modules/Platform/SunOS-GNU.cmake
diff --git a/share/cmake-3.16/Modules/Platform/SunOS-PathScale-C.cmake b/share/cmake-3.17/Modules/Platform/SunOS-PathScale-C.cmake
index 2f78da1..2f78da1 100644
--- a/share/cmake-3.16/Modules/Platform/SunOS-PathScale-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/SunOS-PathScale-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/SunOS-PathScale-CXX.cmake b/share/cmake-3.17/Modules/Platform/SunOS-PathScale-CXX.cmake
index bb79d86..bb79d86 100644
--- a/share/cmake-3.16/Modules/Platform/SunOS-PathScale-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/SunOS-PathScale-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/SunOS-PathScale-Fortran.cmake b/share/cmake-3.17/Modules/Platform/SunOS-PathScale-Fortran.cmake
index 3c202f7..3c202f7 100644
--- a/share/cmake-3.16/Modules/Platform/SunOS-PathScale-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/SunOS-PathScale-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/SunOS-PathScale.cmake b/share/cmake-3.17/Modules/Platform/SunOS-PathScale.cmake
index 25ead80..25ead80 100644
--- a/share/cmake-3.16/Modules/Platform/SunOS-PathScale.cmake
+++ b/share/cmake-3.17/Modules/Platform/SunOS-PathScale.cmake
diff --git a/share/cmake-3.16/Modules/Platform/SunOS.cmake b/share/cmake-3.17/Modules/Platform/SunOS.cmake
index 78eccf7..78eccf7 100644
--- a/share/cmake-3.16/Modules/Platform/SunOS.cmake
+++ b/share/cmake-3.17/Modules/Platform/SunOS.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Tru64.cmake b/share/cmake-3.17/Modules/Platform/Tru64.cmake
index 47852f8..47852f8 100644
--- a/share/cmake-3.16/Modules/Platform/Tru64.cmake
+++ b/share/cmake-3.17/Modules/Platform/Tru64.cmake
diff --git a/share/cmake-3.16/Modules/Platform/ULTRIX.cmake b/share/cmake-3.17/Modules/Platform/ULTRIX.cmake
index 9db4c7c..9db4c7c 100644
--- a/share/cmake-3.16/Modules/Platform/ULTRIX.cmake
+++ b/share/cmake-3.17/Modules/Platform/ULTRIX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/UNIX_SV.cmake b/share/cmake-3.17/Modules/Platform/UNIX_SV.cmake
index bd1ffce..bd1ffce 100644
--- a/share/cmake-3.16/Modules/Platform/UNIX_SV.cmake
+++ b/share/cmake-3.17/Modules/Platform/UNIX_SV.cmake
diff --git a/share/cmake-3.16/Modules/Platform/UnixPaths.cmake b/share/cmake-3.17/Modules/Platform/UnixPaths.cmake
index 97f744d..97f744d 100644
--- a/share/cmake-3.16/Modules/Platform/UnixPaths.cmake
+++ b/share/cmake-3.17/Modules/Platform/UnixPaths.cmake
diff --git a/share/cmake-3.16/Modules/Platform/UnixWare.cmake b/share/cmake-3.17/Modules/Platform/UnixWare.cmake
index 94888d9..94888d9 100644
--- a/share/cmake-3.16/Modules/Platform/UnixWare.cmake
+++ b/share/cmake-3.17/Modules/Platform/UnixWare.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Apple-Swift.cmake b/share/cmake-3.17/Modules/Platform/Windows-Apple-Swift.cmake
new file mode 100644
index 0000000..1177755
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Windows-Apple-Swift.cmake
@@ -0,0 +1 @@
+set(CMAKE_Swift_IMPLIB_LINKER_FLAGS "-Xlinker -implib:<TARGET_IMPLIB>")
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Borland-C.cmake b/share/cmake-3.17/Modules/Platform/Windows-Borland-C.cmake
index e2f76aa..e2f76aa 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Borland-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Borland-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Borland-CXX.cmake b/share/cmake-3.17/Modules/Platform/Windows-Borland-CXX.cmake
index 809490f..809490f 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Borland-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Borland-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Clang-ASM.cmake b/share/cmake-3.17/Modules/Platform/Windows-Clang-ASM.cmake
new file mode 100644
index 0000000..345d77d
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Windows-Clang-ASM.cmake
@@ -0,0 +1,2 @@
+include(Platform/Windows-Clang)
+__windows_compiler_clang(ASM)
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Clang-C.cmake b/share/cmake-3.17/Modules/Platform/Windows-Clang-C.cmake
index d007105..d007105 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Clang-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Clang-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Clang-CXX.cmake b/share/cmake-3.17/Modules/Platform/Windows-Clang-CXX.cmake
index f1d40f2..f1d40f2 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Clang-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Clang.cmake b/share/cmake-3.17/Modules/Platform/Windows-Clang.cmake
new file mode 100644
index 0000000..87ddfcd
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Windows-Clang.cmake
@@ -0,0 +1,178 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This module is shared by multiple languages; use include blocker.
+if(__WINDOWS_CLANG)
+ return()
+endif()
+set(__WINDOWS_CLANG 1)
+
+macro(__windows_compiler_clang_gnu lang)
+ set(CMAKE_LIBRARY_PATH_FLAG "-L")
+ set(CMAKE_LINK_LIBRARY_FLAG "-l")
+
+ set(CMAKE_IMPORT_LIBRARY_PREFIX "")
+ set(CMAKE_SHARED_LIBRARY_PREFIX "")
+ set(CMAKE_SHARED_MODULE_PREFIX "")
+ set(CMAKE_STATIC_LIBRARY_PREFIX "")
+ set(CMAKE_EXECUTABLE_SUFFIX ".exe")
+ set(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib")
+ set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
+ set(CMAKE_SHARED_MODULE_SUFFIX ".dll")
+ set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
+ if(NOT "${lang}" STREQUAL "ASM")
+ set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT <OBJECT> -MF <DEPFILE>")
+ endif()
+
+ set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".a" ".lib")
+ set(CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS 1)
+ set (CMAKE_LINK_DEF_FILE_FLAG "-Xlinker /DEF:")
+
+ if("${CMAKE_${lang}_SIMULATE_VERSION}" MATCHES "^([0-9]+)\\.([0-9]+)")
+ math(EXPR MSVC_VERSION "${CMAKE_MATCH_1}*100 + ${CMAKE_MATCH_2}")
+ endif()
+
+ # No -fPIC on Windows
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "")
+ set(_CMAKE_${lang}_PIE_MAY_BE_SUPPORTED_BY_LINKER NO)
+ set(CMAKE_${lang}_LINK_OPTIONS_PIE "")
+ set(CMAKE_${lang}_LINK_OPTIONS_NO_PIE "")
+ set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "")
+
+ set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 1)
+ set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_LIBRARIES 1)
+ set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1)
+
+ set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto")
+ set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
+ set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
+ set(CMAKE_${lang}_ARCHIVE_CREATE_IPO "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS>")
+ set(CMAKE_${lang}_ARCHIVE_APPEND_IPO "<CMAKE_AR> r <TARGET> <LINK_FLAGS> <OBJECTS>")
+ set(CMAKE_${lang}_ARCHIVE_FINISH_IPO "<CMAKE_RANLIB> <TARGET>")
+
+ # Create archiving rules to support large object file lists for static libraries.
+ set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
+ set(CMAKE_${lang}_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
+ set(CMAKE_${lang}_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
+ set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
+ "<CMAKE_${lang}_COMPILER> -fuse-ld=lld-link -nostartfiles -nostdlib <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} -Xlinker /implib:<TARGET_IMPLIB> -Xlinker /pdb:<TARGET_PDB> -Xlinker /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <OBJECTS> <LINK_LIBRARIES>")
+ set(CMAKE_${lang}_CREATE_SHARED_MODULE ${CMAKE_${lang}_CREATE_SHARED_LIBRARY})
+ set(CMAKE_${lang}_LINK_EXECUTABLE
+ "<CMAKE_${lang}_COMPILER> -fuse-ld=lld-link -nostartfiles -nostdlib <FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -Xlinker /implib:<TARGET_IMPLIB> -Xlinker /pdb:<TARGET_PDB> -Xlinker /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES>")
+
+ if(NOT "${lang}" STREQUAL "ASM")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded -Xclang -flto-visibility-public-std -D_MT -Xclang --dependent-lib=libcmt)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL -D_DLL -D_MT -Xclang --dependent-lib=msvcrt)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug -D_DEBUG -Xclang -flto-visibility-public-std -D_MT -Xclang --dependent-lib=libcmtd)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd)
+
+ if(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT)
+ set(__ADDED_FLAGS "")
+ set(__ADDED_FLAGS_DEBUG "")
+ else()
+ set(__ADDED_FLAGS_DEBUG "-D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd")
+ set(__ADDED_FLAGS "-D_DLL -D_MT -Xclang --dependent-lib=msvcrt")
+ endif()
+
+ string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g -Xclang -gcodeview -O0 ${__ADDED_FLAGS_DEBUG}")
+ string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os -DNDEBUG ${__ADDED_FLAGS}")
+ string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3 -DNDEBUG ${__ADDED_FLAGS}")
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g -DNDEBUG -Xclang -gcodeview ${__ADDED_FLAGS}")
+ endif()
+ set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
+
+ set(CMAKE_PCH_EXTENSION .pch)
+ set(CMAKE_PCH_PROLOGUE "#pragma clang system_header")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Xclang -include-pch -Xclang <PCH_FILE> -Xclang -include -Xclang <PCH_HEADER>)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Xclang -emit-pch -Xclang -include -Xclang <PCH_HEADER>)
+
+ unset(__ADDED_FLAGS)
+ unset(__ADDED_FLAGS_DEBUG)
+ string(TOLOWER "${CMAKE_BUILD_TYPE}" BUILD_TYPE_LOWER)
+ set(CMAKE_${lang}_STANDARD_LIBRARIES_INIT "-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -loldnames")
+
+ enable_language(RC)
+endmacro()
+
+if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC"
+ OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+
+ if ( DEFINED CMAKE_C_COMPILER_ID AND DEFINED CMAKE_CXX_COMPILER_ID
+ AND NOT "x${CMAKE_C_COMPILER_ID}" STREQUAL "x${CMAKE_CXX_COMPILER_ID}")
+ message(FATAL_ERROR "The current configuration mixes Clang and MSVC or "
+ "some other CL compatible compiler tool. This is not supported. "
+ "Use either clang or MSVC as both C and C++ compilers.")
+ endif()
+
+ if ( DEFINED CMAKE_C_COMPILER_FRONTEND_VARIANT AND DEFINED CMAKE_CXX_COMPILER_FRONTEND_VARIANT
+ AND NOT "x${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}")
+ message(FATAL_ERROR "The current configuration uses the Clang compiler "
+ "tool with mixed frontend variants, both the GNU and in MSVC CL "
+ "like variants. This is not supported. Use either clang/clang++ "
+ "or clang-cl as both C and C++ compilers.")
+ endif()
+
+ if(NOT CMAKE_RC_COMPILER_INIT)
+ # Check if rc is already in the path
+ # This may happen in cases where the user is already in a visual studio environment when CMake is invoked
+ find_program(__RC_COMPILER_PATH NAMES rc)
+
+ # Default to rc if it's available, otherwise fall back to llvm-rc
+ if(__RC_COMPILER_PATH)
+ set(CMAKE_RC_COMPILER_INIT rc)
+ else()
+ set(CMAKE_RC_COMPILER_INIT llvm-rc)
+ endif()
+
+ unset(__RC_COMPILER_PATH CACHE)
+ endif()
+
+ if ( "x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC" OR "x${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC" )
+ include(Platform/Windows-MSVC)
+
+ # Feed the preprocessed rc file to llvm-rc
+ if(CMAKE_RC_COMPILER_INIT STREQUAL "llvm-rc")
+ if(DEFINED CMAKE_C_COMPILER)
+ set(CMAKE_RC_PREPROCESSOR CMAKE_C_COMPILER)
+ elseif(DEFINED CMAKE_CXX_COMPILER)
+ set(CMAKE_RC_PREPROCESSOR CMAKE_CXX_COMPILER)
+ endif()
+ if(DEFINED CMAKE_RC_PREPROCESSOR)
+ set(CMAKE_RC_COMPILE_OBJECT "${CMAKE_COMMAND} -E cmake_llvm_rc <OBJECT>.pp <${CMAKE_RC_PREPROCESSOR}> <DEFINES> -DRC_INVOKED <INCLUDES> <FLAGS> -clang:-MD -clang:-MF -clang:<SOURCE>.d -E <SOURCE> -- <CMAKE_RC_COMPILER> <DEFINES> /fo <OBJECT> <OBJECT>.pp")
+ if(CMAKE_GENERATOR STREQUAL "Ninja")
+ set(CMAKE_NINJA_CMCLDEPS_RC 0)
+ set(CMAKE_NINJA_DEP_TYPE_RC gcc)
+ endif()
+ unset(CMAKE_RC_PREPROCESSOR)
+ endif()
+ endif()
+
+ macro(__windows_compiler_clang lang)
+ set(_COMPILE_${lang} "${_COMPILE_${lang}_MSVC}")
+ __windows_compiler_msvc(${lang})
+ endmacro()
+ else()
+ cmake_policy(GET CMP0091 __WINDOWS_CLANG_CMP0091)
+ if(__WINDOWS_CLANG_CMP0091 STREQUAL "NEW")
+ set(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
+ else()
+ set(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT "")
+ endif()
+ unset(__WINDOWS_CLANG_CMP0091)
+
+ set(CMAKE_BUILD_TYPE_INIT Debug)
+
+ macro(__windows_compiler_clang lang)
+ __windows_compiler_clang_gnu(${lang})
+ endmacro()
+ endif()
+
+else()
+ include(Platform/Windows-GNU)
+ macro(__windows_compiler_clang lang)
+ __windows_compiler_gnu(${lang})
+ endmacro()
+endif()
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Determine-CXX.cmake b/share/cmake-3.17/Modules/Platform/Windows-Determine-CXX.cmake
index bf37f79..bf37f79 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Determine-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Determine-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Embarcadero-C.cmake b/share/cmake-3.17/Modules/Platform/Windows-Embarcadero-C.cmake
index 607fd4e..607fd4e 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Embarcadero-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Embarcadero-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Embarcadero-CXX.cmake b/share/cmake-3.17/Modules/Platform/Windows-Embarcadero-CXX.cmake
index 279a4de..279a4de 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Embarcadero-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Embarcadero-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Embarcadero.cmake b/share/cmake-3.17/Modules/Platform/Windows-Embarcadero.cmake
new file mode 100644
index 0000000..0c24739
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Windows-Embarcadero.cmake
@@ -0,0 +1,136 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This module is shared by multiple languages; use include blocker.
+if(__WINDOWS_EMBARCADERO)
+ return()
+endif()
+set(__WINDOWS_EMBARCADERO 1)
+
+set(BORLAND 1)
+
+if("${CMAKE_${_lang}_COMPILER_VERSION}" VERSION_LESS 6.30)
+ # Borland target type flags (bcc32 -h -t):
+ set(_tW "-tW") # -tW GUI App (implies -U__CONSOLE__)
+ set(_tC "-tWC") # -tWC Console App (implies -D__CONSOLE__=1)
+ set(_tD "-tWD") # -tWD Build a DLL (implies -D__DLL__=1 -D_DLL=1)
+ set(_tM "-tWM") # -tWM Enable threads (implies -D__MT__=1 -D_MT=1)
+ set(_tR "-tWR -tW-") # -tWR Use DLL runtime (implies -D_RTLDLL, and '-tW' too!!)
+ # Notes:
+ # - The flags affect linking so we pass them to the linker.
+ # - The flags affect preprocessing so we pass them to the compiler.
+ # - Since '-tWR' implies '-tW' we use '-tWR -tW-' instead.
+ # - Since '-tW-' disables '-tWD' we use '-tWR -tW- -tWD' for DLLs.
+else()
+ set(EMBARCADERO 1)
+ set(_tC "-tC") # Target is a console application
+ set(_tD "-tD") # Target is a shared library
+ set(_tM "-tM") # Target is multi-threaded
+ set(_tR "-tR") # Target uses the dynamic RTL
+ set(_tW "-tW") # Target is a Windows application
+endif()
+set(_COMPILE_C "-c")
+set(_COMPILE_CXX "-P -c")
+
+set(CMAKE_LIBRARY_PATH_FLAG "-L")
+set(CMAKE_LINK_LIBRARY_FLAG "")
+
+set(CMAKE_FIND_LIBRARY_SUFFIXES "-bcc.lib" ".lib")
+
+# uncomment these out to debug makefiles
+#set(CMAKE_START_TEMP_FILE "")
+#set(CMAKE_END_TEMP_FILE "")
+#set(CMAKE_VERBOSE_MAKEFILE 1)
+
+# Borland cannot handle + in the file name, so mangle object file name
+set (CMAKE_MANGLE_OBJECT_FILE_NAMES "ON")
+
+# extra flags for a win32 exe
+set(CMAKE_CREATE_WIN32_EXE "${_tW}" )
+# extra flags for a console app
+set(CMAKE_CREATE_CONSOLE_EXE "${_tC}" )
+
+set (CMAKE_BUILD_TYPE Debug CACHE STRING
+ "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel.")
+
+foreach(t EXE SHARED MODULE)
+ string(APPEND CMAKE_${t}_LINKER_FLAGS_INIT " ${_tM} -lS:1048576 -lSc:4098 -lH:1048576 -lHc:8192 ")
+ string(APPEND CMAKE_${t}_LINKER_FLAGS_DEBUG_INIT " -v")
+ string(APPEND CMAKE_${t}_LINKER_FLAGS_RELWITHDEBINFO_INIT " -v")
+endforeach()
+
+# The Borland link tool does not support multiple concurrent
+# invocations within a single working directory.
+if(NOT DEFINED CMAKE_JOB_POOL_LINK)
+ set(CMAKE_JOB_POOL_LINK BCC32LinkPool)
+ get_property(_bccjp GLOBAL PROPERTY JOB_POOLS)
+ if(NOT _bccjp MATCHES "BCC32LinkPool=")
+ set_property(GLOBAL APPEND PROPERTY JOB_POOLS BCC32LinkPool=1)
+ endif()
+ unset(_bccjp)
+endif()
+
+macro(__embarcadero_language lang)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_DLL "${_tD}") # Note: This variable is a ';' separated list
+ set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "${_tD}") # ... while this is a space separated string.
+ set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1)
+
+ set (CMAKE_${lang}_LINKER_WRAPPER_FLAG "-l")
+
+ # compile a source file into an object file
+ # place <DEFINES> outside the response file because Borland refuses
+ # to parse quotes from the response file.
+ set(CMAKE_${lang}_COMPILE_OBJECT
+ "<CMAKE_${lang}_COMPILER> ${_tR} -DWIN32 <DEFINES> <INCLUDES> <FLAGS> -o<OBJECT> ${_COMPILE_${lang}} <SOURCE>"
+ )
+
+ set(CMAKE_${lang}_LINK_EXECUTABLE
+ "<CMAKE_${lang}_COMPILER> ${_tR} -e<TARGET> <LINK_FLAGS> <FLAGS> ${CMAKE_START_TEMP_FILE} <LINK_LIBRARIES> <OBJECTS>${CMAKE_END_TEMP_FILE}"
+ # "implib -c -w <TARGET_IMPLIB> <TARGET>"
+ )
+
+ # place <DEFINES> outside the response file because Borland refuses
+ # to parse quotes from the response file.
+ set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE
+ "cpp32 -DWIN32 <DEFINES> <INCLUDES> <FLAGS> -o<PREPROCESSED_SOURCE> ${_COMPILE_${lang}} <SOURCE>"
+ )
+ # Borland >= 5.6 allows -P option for cpp32, <= 5.5 does not
+
+ # Create a module library.
+ set(CMAKE_${lang}_CREATE_SHARED_MODULE
+ "<CMAKE_${lang}_COMPILER> ${_tR} ${_tD} ${CMAKE_START_TEMP_FILE}-e<TARGET> <LINK_FLAGS> <LINK_LIBRARIES> <OBJECTS>${CMAKE_END_TEMP_FILE}"
+ )
+
+ # Create an import library for another target.
+ set(CMAKE_${lang}_CREATE_IMPORT_LIBRARY
+ "implib -c -w <TARGET_IMPLIB> <TARGET>"
+ )
+
+ # Create a shared library.
+ # First create a module and then its import library.
+ set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
+ ${CMAKE_${lang}_CREATE_SHARED_MODULE}
+ ${CMAKE_${lang}_CREATE_IMPORT_LIBRARY}
+ )
+
+ # create a static library
+ set(CMAKE_${lang}_CREATE_STATIC_LIBRARY
+ "tlib ${CMAKE_START_TEMP_FILE}/p512 <LINK_FLAGS> /a <TARGET_QUOTED> <OBJECTS>${CMAKE_END_TEMP_FILE}"
+ )
+
+ # Precompile Headers
+ if (EMBARCADERO)
+ set(CMAKE_PCH_EXTENSION .pch)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Xclang -include-pch -Xclang <PCH_FILE> -Xclang -include -Xclang <PCH_HEADER>)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Xclang -emit-pch -Xclang -include -Xclang <PCH_HEADER>)
+ endif()
+
+ # Initial configuration flags.
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " ${_tM}")
+ string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -Od -v")
+ string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -O1 -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O2 -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -Od")
+ set(CMAKE_${lang}_STANDARD_LIBRARIES_INIT "import32.lib")
+endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Flang-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Windows-Flang-Fortran.cmake
index c4420f7..c4420f7 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Flang-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Flang-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-G95-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Windows-G95-Fortran.cmake
index af08008..af08008 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-G95-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-G95-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-ASM.cmake b/share/cmake-3.17/Modules/Platform/Windows-GNU-ASM.cmake
new file mode 100644
index 0000000..8600892
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Windows-GNU-ASM.cmake
@@ -0,0 +1,2 @@
+include(Platform/Windows-GNU)
+__windows_compiler_gnu(ASM)
diff --git a/share/cmake-3.16/Modules/Platform/Windows-GNU-C-ABI.cmake b/share/cmake-3.17/Modules/Platform/Windows-GNU-C-ABI.cmake
index 1189263..1189263 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-GNU-C-ABI.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-GNU-C-ABI.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/Windows-GNU-C.cmake
index ecf89dc..ecf89dc 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-GNU-CXX-ABI.cmake b/share/cmake-3.17/Modules/Platform/Windows-GNU-CXX-ABI.cmake
index f3c701c..f3c701c 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-GNU-CXX-ABI.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-GNU-CXX-ABI.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/Windows-GNU-CXX.cmake
index 23e6552..23e6552 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-GNU-Fortran-ABI.cmake b/share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran-ABI.cmake
index 179280b..179280b 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-GNU-Fortran-ABI.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran-ABI.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-GNU-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran.cmake
index b81b796..b81b796 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-GNU-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU.cmake b/share/cmake-3.17/Modules/Platform/Windows-GNU.cmake
new file mode 100644
index 0000000..38a8cf4
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Windows-GNU.cmake
@@ -0,0 +1,210 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This module is shared by multiple languages; use include blocker.
+if(__WINDOWS_GNU)
+ return()
+endif()
+set(__WINDOWS_GNU 1)
+
+set(CMAKE_IMPORT_LIBRARY_PREFIX "lib")
+set(CMAKE_SHARED_LIBRARY_PREFIX "lib")
+set(CMAKE_SHARED_MODULE_PREFIX "lib")
+set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
+
+set(CMAKE_EXECUTABLE_SUFFIX ".exe")
+set(CMAKE_IMPORT_LIBRARY_SUFFIX ".dll.a")
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
+set(CMAKE_SHARED_MODULE_SUFFIX ".dll")
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
+
+if(MSYS OR MINGW)
+ set(CMAKE_EXTRA_LINK_EXTENSIONS ".lib") # MinGW can also link to a MS .lib
+endif()
+
+if(MINGW)
+ set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".a" ".lib")
+ set(CMAKE_C_STANDARD_LIBRARIES_INIT "-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32")
+ set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}")
+endif()
+
+set(CMAKE_DL_LIBS "")
+set(CMAKE_LIBRARY_PATH_FLAG "-L")
+set(CMAKE_LINK_LIBRARY_FLAG "-l")
+set(CMAKE_LINK_DEF_FILE_FLAG "") # Empty string: passing the file is enough
+set(CMAKE_LINK_LIBRARY_SUFFIX "")
+set(CMAKE_CREATE_WIN32_EXE "-mwindows")
+
+set(CMAKE_GNULD_IMAGE_VERSION
+ "-Wl,--major-image-version,<TARGET_VERSION_MAJOR>,--minor-image-version,<TARGET_VERSION_MINOR>")
+
+# Check if GNU ld is too old to support @FILE syntax.
+set(__WINDOWS_GNU_LD_RESPONSE 1)
+execute_process(COMMAND ld -v OUTPUT_VARIABLE _help ERROR_VARIABLE _help)
+if("${_help}" MATCHES "GNU ld .* 2\\.1[1-6]")
+ set(__WINDOWS_GNU_LD_RESPONSE 0)
+endif()
+
+if(NOT CMAKE_GENERATOR_RC AND CMAKE_GENERATOR MATCHES "Unix Makefiles")
+ set(CMAKE_GENERATOR_RC windres)
+endif()
+
+macro(__windows_compiler_gnu lang)
+
+ if(MSYS OR MINGW)
+ # Create archiving rules to support large object file lists for static libraries.
+ set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
+ set(CMAKE_${lang}_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
+ set(CMAKE_${lang}_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
+
+ # Initialize C link type selection flags. These flags are used when
+ # building a shared library, shared module, or executable that links
+ # to other libraries to select whether to use the static or shared
+ # versions of the libraries.
+ foreach(type SHARED_LIBRARY SHARED_MODULE EXE)
+ set(CMAKE_${type}_LINK_STATIC_${lang}_FLAGS "-Wl,-Bstatic")
+ set(CMAKE_${type}_LINK_DYNAMIC_${lang}_FLAGS "-Wl,-Bdynamic")
+ endforeach()
+ endif()
+
+ # No -fPIC on Windows
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "")
+ set(_CMAKE_${lang}_PIE_MAY_BE_SUPPORTED_BY_LINKER NO)
+ set(CMAKE_${lang}_LINK_OPTIONS_PIE "")
+ set(CMAKE_${lang}_LINK_OPTIONS_NO_PIE "")
+ set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "")
+
+ set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS ${__WINDOWS_GNU_LD_RESPONSE})
+ set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_LIBRARIES ${__WINDOWS_GNU_LD_RESPONSE})
+ set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 1)
+
+ # We prefer "@" for response files but it is not supported by gcc 3.
+ execute_process(COMMAND ${CMAKE_${lang}_COMPILER} --version OUTPUT_VARIABLE _ver ERROR_VARIABLE _ver)
+ if("${_ver}" MATCHES "\\(GCC\\) 3\\.")
+ if("${lang}" STREQUAL "Fortran")
+ # The GNU Fortran compiler reports an error:
+ # no input files; unwilling to write output files
+ # when the response file is passed with "-Wl,@".
+ set(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_OBJECTS 0)
+ else()
+ # Use "-Wl,@" to pass the response file to the linker.
+ set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "-Wl,@")
+ endif()
+ # The GNU 3.x compilers do not support response files (only linkers).
+ set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_INCLUDES 0)
+ # Link libraries are generated only for the front-end.
+ set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_LIBRARIES 0)
+ else()
+ # Use "@" to pass the response file to the front-end.
+ set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "@")
+ endif()
+
+ # Binary link rules.
+ set(CMAKE_${lang}_CREATE_SHARED_MODULE
+ "<CMAKE_${lang}_COMPILER> <CMAKE_SHARED_MODULE_${lang}_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} <OBJECTS> <LINK_LIBRARIES>")
+ set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
+ "<CMAKE_${lang}_COMPILER> <CMAKE_SHARED_LIBRARY_${lang}_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS> -o <TARGET> -Wl,--out-implib,<TARGET_IMPLIB> ${CMAKE_GNULD_IMAGE_VERSION} <OBJECTS> <LINK_LIBRARIES>")
+ set(CMAKE_${lang}_LINK_EXECUTABLE
+ "<CMAKE_${lang}_COMPILER> <FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -Wl,--out-implib,<TARGET_IMPLIB> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES>")
+
+ list(APPEND CMAKE_${lang}_ABI_FILES "Platform/Windows-GNU-${lang}-ABI")
+
+ # Support very long lists of object files.
+ # TODO: check for which gcc versions this is still needed, not needed for gcc >= 4.4.
+ # Ninja generator doesn't support this work around.
+ if("${CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG}" STREQUAL "@" AND NOT CMAKE_GENERATOR MATCHES "Ninja")
+ foreach(rule CREATE_SHARED_MODULE CREATE_SHARED_LIBRARY LINK_EXECUTABLE)
+ # The gcc/collect2/ld toolchain does not use response files
+ # internally so we cannot pass long object lists. Instead pass
+ # the object file list in a response file to the archiver to put
+ # them in a temporary archive. Hand the archive to the linker.
+ string(REPLACE "<OBJECTS>" "-Wl,--whole-archive <OBJECT_DIR>/objects.a -Wl,--no-whole-archive"
+ CMAKE_${lang}_${rule} "${CMAKE_${lang}_${rule}}")
+ set(CMAKE_${lang}_${rule}
+ "<CMAKE_COMMAND> -E rm -f <OBJECT_DIR>/objects.a"
+ "<CMAKE_AR> cr <OBJECT_DIR>/objects.a <OBJECTS>"
+ "${CMAKE_${lang}_${rule}}"
+ )
+ endforeach()
+ endif()
+
+ if(NOT CMAKE_RC_COMPILER_INIT AND NOT CMAKE_GENERATOR_RC)
+ set(CMAKE_RC_COMPILER_INIT windres)
+ endif()
+
+ enable_language(RC)
+endmacro()
+
+macro(__windows_compiler_gnu_abi lang)
+ if(CMAKE_NO_GNUtoMS)
+ set(CMAKE_GNUtoMS 0)
+ else()
+ option(CMAKE_GNUtoMS "Convert GNU import libraries to MS format (requires Visual Studio)" OFF)
+ endif()
+
+ if(CMAKE_GNUtoMS AND NOT CMAKE_GNUtoMS_LIB)
+ # Find MS development environment setup script for this architecture.
+ # We need to use the MS Librarian tool (lib.exe).
+ # Find the most recent version available.
+
+ # Query the VS Installer tool for locations of VS 2017 and above.
+ set(_vs_installer_paths "")
+ foreach(vs RANGE 16 15 -1) # change the first number to the largest supported version
+ cmake_host_system_information(RESULT _vs_dir QUERY VS_${vs}_DIR)
+ if(_vs_dir)
+ list(APPEND _vs_installer_paths "${_vs_dir}/VC/Auxiliary/Build")
+ endif()
+ endforeach(vs)
+
+ if("${CMAKE_SIZEOF_VOID_P}" EQUAL 4)
+ find_program(CMAKE_GNUtoMS_VCVARS NAMES vcvars32.bat
+ DOC "Visual Studio vcvars32.bat"
+ PATHS
+ ${_vs_installer_paths}
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\14.0\\Setup\\VC;ProductDir]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\12.0\\Setup\\VC;ProductDir]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0\\Setup\\VC;ProductDir]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0\\Setup\\VC;ProductDir]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\Setup\\VC;ProductDir]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.1\\Setup\\VC;ProductDir]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Setup\\Microsoft Visual C++;ProductDir]/bin"
+ )
+ set(CMAKE_GNUtoMS_ARCH x86)
+ elseif("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
+ find_program(CMAKE_GNUtoMS_VCVARS NAMES vcvars64.bat vcvarsamd64.bat
+ DOC "Visual Studio vcvarsamd64.bat"
+ PATHS
+ ${_vs_installer_paths}
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\14.0\\Setup\\VC;ProductDir]/bin/amd64"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\12.0\\Setup\\VC;ProductDir]/bin/amd64"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\11.0\\Setup\\VC;ProductDir]/bin/amd64"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0\\Setup\\VC;ProductDir]/bin/amd64"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\Setup\\VC;ProductDir]/bin/amd64"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/bin/amd64"
+ )
+ set(CMAKE_GNUtoMS_ARCH amd64)
+ endif()
+ unset(_vs_installer_paths)
+ set_property(CACHE CMAKE_GNUtoMS_VCVARS PROPERTY ADVANCED 1)
+ if(CMAKE_GNUtoMS_VCVARS)
+ # Create helper script to run lib.exe from MS environment.
+ string(REPLACE "/" "\\" CMAKE_GNUtoMS_BAT "${CMAKE_GNUtoMS_VCVARS}")
+ set(CMAKE_GNUtoMS_LIB ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeGNUtoMS_lib.bat)
+ configure_file(${CMAKE_ROOT}/Modules/Platform/GNUtoMS_lib.bat.in ${CMAKE_GNUtoMS_LIB})
+ else()
+ message(WARNING "Disabling CMAKE_GNUtoMS option because CMAKE_GNUtoMS_VCVARS is not set.")
+ set(CMAKE_GNUtoMS 0)
+ endif()
+ endif()
+
+ if(CMAKE_GNUtoMS)
+ # Teach CMake how to create a MS import library at link time.
+ set(CMAKE_${lang}_GNUtoMS_RULE " -Wl,--output-def,<TARGET_NAME>.def"
+ "<CMAKE_COMMAND> -Dlib=\"${CMAKE_GNUtoMS_LIB}\" -Ddef=<TARGET_NAME>.def -Ddll=<TARGET> -Dimp=<TARGET_IMPLIB> -P \"${CMAKE_ROOT}/Modules/Platform/GNUtoMS_lib.cmake\""
+ )
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Intel-ASM.cmake b/share/cmake-3.17/Modules/Platform/Windows-Intel-ASM.cmake
index 31d08c7..31d08c7 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Intel-ASM.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Intel-ASM.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Intel-C.cmake b/share/cmake-3.17/Modules/Platform/Windows-Intel-C.cmake
index 06d8f50..06d8f50 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Intel-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Intel-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Intel-CXX.cmake b/share/cmake-3.17/Modules/Platform/Windows-Intel-CXX.cmake
index 666de6e..666de6e 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Intel-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Intel-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Intel-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Windows-Intel-Fortran.cmake
index e3804fb..e3804fb 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Intel-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Intel-Fortran.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Intel.cmake b/share/cmake-3.17/Modules/Platform/Windows-Intel.cmake
index 96b1760..96b1760 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Intel.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Intel.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-MSVC-C.cmake b/share/cmake-3.17/Modules/Platform/Windows-MSVC-C.cmake
index cbe1586..cbe1586 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-MSVC-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-MSVC-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-MSVC-CXX.cmake b/share/cmake-3.17/Modules/Platform/Windows-MSVC-CXX.cmake
index 0e85005..0e85005 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-MSVC-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-MSVC-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-MSVC.cmake b/share/cmake-3.17/Modules/Platform/Windows-MSVC.cmake
new file mode 100644
index 0000000..e1d6733
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Windows-MSVC.cmake
@@ -0,0 +1,443 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This module is shared by multiple languages; use include blocker.
+if(__WINDOWS_MSVC)
+ return()
+endif()
+set(__WINDOWS_MSVC 1)
+
+set(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:")
+set(CMAKE_LINK_LIBRARY_FLAG "")
+set(MSVC 1)
+
+# hack: if a new cmake (which uses CMAKE_LINKER) runs on an old build tree
+# (where link was hardcoded) and where CMAKE_LINKER isn't in the cache
+# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun)
+# hardcode CMAKE_LINKER here to link, so it behaves as it did before, Alex
+if(NOT DEFINED CMAKE_LINKER)
+ set(CMAKE_LINKER link)
+endif()
+
+if(CMAKE_VERBOSE_MAKEFILE)
+ set(CMAKE_CL_NOLOGO)
+else()
+ set(CMAKE_CL_NOLOGO "/nologo")
+endif()
+
+if(CMAKE_SYSTEM_NAME STREQUAL "WindowsCE")
+ set(CMAKE_CREATE_WIN32_EXE "/entry:WinMainCRTStartup")
+ set(CMAKE_CREATE_CONSOLE_EXE "/entry:mainACRTStartup")
+ set(_PLATFORM_LINK_FLAGS " /subsystem:windowsce")
+else()
+ set(CMAKE_CREATE_WIN32_EXE "/subsystem:windows")
+ set(CMAKE_CREATE_CONSOLE_EXE "/subsystem:console")
+ set(_PLATFORM_LINK_FLAGS "")
+endif()
+
+set(CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS 1)
+if(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio")
+ set (CMAKE_NO_BUILD_TYPE 1)
+endif()
+
+if("${CMAKE_GENERATOR}" MATCHES "Visual Studio")
+ set(MSVC_IDE 1)
+else()
+ set(MSVC_IDE 0)
+endif()
+
+if(NOT MSVC_VERSION)
+ if("x${CMAKE_C_COMPILER_ID}" STREQUAL "xMSVC")
+ set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
+ elseif("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
+ set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
+ elseif(CMAKE_C_SIMULATE_VERSION)
+ set(_compiler_version ${CMAKE_C_SIMULATE_VERSION})
+ elseif(CMAKE_CXX_SIMULATE_VERSION)
+ set(_compiler_version ${CMAKE_CXX_SIMULATE_VERSION})
+ elseif(CMAKE_Fortran_SIMULATE_VERSION)
+ set(_compiler_version ${CMAKE_Fortran_SIMULATE_VERSION})
+ elseif(CMAKE_CUDA_SIMULATE_VERSION)
+ set(_compiler_version ${CMAKE_CUDA_SIMULATE_VERSION})
+ elseif(CMAKE_C_COMPILER_VERSION)
+ set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
+ else()
+ set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
+ endif()
+ if("${_compiler_version}" MATCHES "^([0-9]+)\\.([0-9]+)")
+ math(EXPR MSVC_VERSION "${CMAKE_MATCH_1}*100 + ${CMAKE_MATCH_2}")
+ else()
+ message(FATAL_ERROR "MSVC compiler version not detected properly: ${_compiler_version}")
+ endif()
+
+ if(MSVC_VERSION GREATER_EQUAL 1920)
+ # VS 2019 or greater
+ set(MSVC_TOOLSET_VERSION 142)
+ elseif(MSVC_VERSION GREATER_EQUAL 1910)
+ # VS 2017 or greater
+ set(MSVC_TOOLSET_VERSION 141)
+ elseif(MSVC_VERSION EQUAL 1900)
+ # VS 2015
+ set(MSVC_TOOLSET_VERSION 140)
+ elseif(MSVC_VERSION EQUAL 1800)
+ # VS 2013
+ set(MSVC_TOOLSET_VERSION 120)
+ elseif(MSVC_VERSION EQUAL 1700)
+ # VS 2012
+ set(MSVC_TOOLSET_VERSION 110)
+ elseif(MSVC_VERSION EQUAL 1600)
+ # VS 2010
+ set(MSVC_TOOLSET_VERSION 100)
+ elseif(MSVC_VERSION EQUAL 1500)
+ # VS 2008
+ set(MSVC_TOOLSET_VERSION 90)
+ elseif(MSVC_VERSION EQUAL 1400)
+ # VS 2005
+ set(MSVC_TOOLSET_VERSION 80)
+ else()
+ # We don't support MSVC_TOOLSET_VERSION for earlier compiler.
+ endif()
+
+ set(MSVC10)
+ set(MSVC11)
+ set(MSVC12)
+ set(MSVC14)
+ set(MSVC60)
+ set(MSVC70)
+ set(MSVC71)
+ set(MSVC80)
+ set(MSVC90)
+ set(CMAKE_COMPILER_2005)
+ set(CMAKE_COMPILER_SUPPORTS_PDBTYPE)
+ if(NOT "${_compiler_version}" VERSION_LESS 20)
+ # We no longer provide per-version variables. Use MSVC_VERSION instead.
+ elseif(NOT "${_compiler_version}" VERSION_LESS 19)
+ set(MSVC14 1)
+ elseif(NOT "${_compiler_version}" VERSION_LESS 18)
+ set(MSVC12 1)
+ elseif(NOT "${_compiler_version}" VERSION_LESS 17)
+ set(MSVC11 1)
+ elseif(NOT "${_compiler_version}" VERSION_LESS 16)
+ set(MSVC10 1)
+ elseif(NOT "${_compiler_version}" VERSION_LESS 15)
+ set(MSVC90 1)
+ elseif(NOT "${_compiler_version}" VERSION_LESS 14)
+ set(MSVC80 1)
+ set(CMAKE_COMPILER_2005 1)
+ elseif(NOT "${_compiler_version}" VERSION_LESS 13.10)
+ set(MSVC71 1)
+ elseif(NOT "${_compiler_version}" VERSION_LESS 13)
+ set(MSVC70 1)
+ else()
+ set(MSVC60 1)
+ set(CMAKE_COMPILER_SUPPORTS_PDBTYPE 1)
+ endif()
+endif()
+
+if(MSVC_C_ARCHITECTURE_ID MATCHES 64 OR MSVC_CXX_ARCHITECTURE_ID MATCHES 64)
+ set(CMAKE_CL_64 1)
+else()
+ set(CMAKE_CL_64 0)
+endif()
+if(CMAKE_FORCE_WIN64 OR CMAKE_FORCE_IA64)
+ set(CMAKE_CL_64 1)
+endif()
+
+if("${MSVC_VERSION}" GREATER 1599)
+ set(MSVC_INCREMENTAL_DEFAULT ON)
+endif()
+
+# default to Debug builds
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+# Compute an architecture family from the architecture id.
+foreach(lang C CXX)
+ set(_MSVC_${lang}_ARCHITECTURE_FAMILY "${MSVC_${lang}_ARCHITECTURE_ID}")
+ if(_MSVC_${lang}_ARCHITECTURE_FAMILY MATCHES "^ARM64")
+ set(_MSVC_${lang}_ARCHITECTURE_FAMILY "ARM64")
+ elseif(_MSVC_${lang}_ARCHITECTURE_FAMILY MATCHES "^ARM")
+ set(_MSVC_${lang}_ARCHITECTURE_FAMILY "ARM")
+ elseif(_MSVC_${lang}_ARCHITECTURE_FAMILY MATCHES "^SH")
+ set(_MSVC_${lang}_ARCHITECTURE_FAMILY "SHx")
+ endif()
+endforeach()
+
+if(WINCE)
+ foreach(lang C CXX)
+ string(TOUPPER "${_MSVC_${lang}_ARCHITECTURE_FAMILY}" _MSVC_${lang}_ARCHITECTURE_FAMILY_UPPER)
+ endforeach()
+
+ if("${CMAKE_SYSTEM_VERSION}" MATCHES "^([0-9]+)\\.([0-9]+)")
+ math(EXPR _CE_VERSION "${CMAKE_MATCH_1}*100 + ${CMAKE_MATCH_2}")
+ elseif("${CMAKE_SYSTEM_VERSION}" STREQUAL "")
+ set(_CE_VERSION "500")
+ else()
+ message(FATAL_ERROR "Invalid Windows CE version: ${CMAKE_SYSTEM_VERSION}")
+ endif()
+
+ set(_PLATFORM_DEFINES "/D_WIN32_WCE=0x${_CE_VERSION} /DUNDER_CE /DWINCE")
+ set(_PLATFORM_DEFINES_C " /D${_MSVC_C_ARCHITECTURE_FAMILY} /D_${_MSVC_C_ARCHITECTURE_FAMILY_UPPER}_")
+ set(_PLATFORM_DEFINES_CXX " /D${_MSVC_CXX_ARCHITECTURE_FAMILY} /D_${_MSVC_CXX_ARCHITECTURE_FAMILY_UPPER}_")
+
+ set(_RTC1 "")
+ set(_FLAGS_C "")
+ set(_FLAGS_CXX " /GR /EHsc")
+
+ foreach(lang C CXX)
+ if(_MSVC_${lang}_ARCHITECTURE_FAMILY STREQUAL "ARM")
+ string(APPEND _PLATFORM_DEFINES_${lang} " /D${MSVC_${lang}_ARCHITECTURE_ID}")
+ if(MSVC_${lang}_ARCHITECTURE_ID MATCHES "^ARMV([45])I$")
+ string(APPEND _FLAGS_${lang} " /QRarch${CMAKE_MATCH_1}T")
+ endif()
+ endif()
+ endforeach()
+
+ set(CMAKE_C_STANDARD_LIBRARIES_INIT "coredll.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib")
+ foreach(t EXE SHARED MODULE)
+ string(APPEND CMAKE_${t}_LINKER_FLAGS_INIT " /NODEFAULTLIB:libc.lib /NODEFAULTLIB:oldnames.lib")
+ endforeach()
+
+ if (MSVC_VERSION LESS 1600)
+ string(APPEND CMAKE_C_STANDARD_LIBRARIES_INIT " corelibc.lib")
+ endif ()
+elseif(WINDOWS_PHONE OR WINDOWS_STORE)
+ set(_PLATFORM_DEFINES "/DWIN32")
+ set(_FLAGS_C " /DUNICODE /D_UNICODE")
+ set(_FLAGS_CXX " /DUNICODE /D_UNICODE /GR /EHsc")
+ if(WINDOWS_STORE AND MSVC_VERSION GREATER 1899)
+ set(CMAKE_C_STANDARD_LIBRARIES_INIT "WindowsApp.lib")
+ elseif(WINDOWS_PHONE)
+ set(CMAKE_C_STANDARD_LIBRARIES_INIT "WindowsPhoneCore.lib RuntimeObject.lib PhoneAppModelHost.lib")
+ elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM" OR _MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM" OR _MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM64" OR _MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM64")
+ set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib")
+ else()
+ set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib")
+ endif()
+else()
+ set(_PLATFORM_DEFINES "/DWIN32")
+
+ if(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM" OR _MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM")
+ set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib")
+ elseif(MSVC_VERSION GREATER 1310)
+ if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "v[0-9]+_clang_.*")
+ # Clang/C2 in MSVC14 Update 1 seems to not support -fsantinize (yet?)
+ # set(_RTC1 "-fsantinize=memory,safe-stack")
+ set(_FLAGS_CXX " -frtti -fexceptions")
+ else()
+ set(_RTC1 "/RTC1")
+ set(_FLAGS_CXX " /GR /EHsc")
+ endif()
+ set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib")
+ else()
+ set(_RTC1 "/GZ")
+ set(_FLAGS_CXX " /GR /GX")
+ set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib")
+ endif()
+
+ if(MSVC_VERSION LESS 1310)
+ set(_FLAGS_C " /Zm1000${_FLAGS_C}")
+ set(_FLAGS_CXX " /Zm1000${_FLAGS_CXX}")
+ endif()
+endif()
+
+set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}")
+
+# executable linker flags
+set (CMAKE_LINK_DEF_FILE_FLAG "/DEF:")
+# set the machine type
+if(MSVC_C_ARCHITECTURE_ID)
+ if(MSVC_C_ARCHITECTURE_ID MATCHES "^ARMV.I")
+ set(_MACHINE_ARCH_FLAG "/machine:THUMB")
+ elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM64")
+ set(_MACHINE_ARCH_FLAG "/machine:ARM64")
+ elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM")
+ set(_MACHINE_ARCH_FLAG "/machine:ARM")
+ else()
+ set(_MACHINE_ARCH_FLAG "/machine:${MSVC_C_ARCHITECTURE_ID}")
+ endif()
+elseif(MSVC_CXX_ARCHITECTURE_ID)
+ if(MSVC_CXX_ARCHITECTURE_ID MATCHES "^ARMV.I")
+ set(_MACHINE_ARCH_FLAG "/machine:THUMB")
+ elseif(_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM64")
+ set(_MACHINE_ARCH_FLAG "/machine:ARM64")
+ elseif(_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM")
+ set(_MACHINE_ARCH_FLAG "/machine:ARM")
+ else()
+ set(_MACHINE_ARCH_FLAG "/machine:${MSVC_CXX_ARCHITECTURE_ID}")
+ endif()
+elseif(MSVC_Fortran_ARCHITECTURE_ID)
+ set(_MACHINE_ARCH_FLAG "/machine:${MSVC_Fortran_ARCHITECTURE_ID}")
+endif()
+
+# add /debug and /INCREMENTAL:YES to DEBUG and RELWITHDEBINFO also add pdbtype
+# on versions that support it
+set( MSVC_INCREMENTAL_YES_FLAG "")
+if(NOT WINDOWS_PHONE AND NOT WINDOWS_STORE)
+ if(NOT MSVC_INCREMENTAL_DEFAULT)
+ set( MSVC_INCREMENTAL_YES_FLAG "/INCREMENTAL:YES")
+ else()
+ set( MSVC_INCREMENTAL_YES_FLAG "/INCREMENTAL" )
+ endif()
+endif()
+
+foreach(t EXE SHARED MODULE)
+ string(APPEND CMAKE_${t}_LINKER_FLAGS_INIT " ${_MACHINE_ARCH_FLAG}")
+ if (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
+ string(APPEND CMAKE_${t}_LINKER_FLAGS_DEBUG_INIT " /debug /pdbtype:sept ${MSVC_INCREMENTAL_YES_FLAG}")
+ string(APPEND CMAKE_${t}_LINKER_FLAGS_RELWITHDEBINFO_INIT " /debug /pdbtype:sept ${MSVC_INCREMENTAL_YES_FLAG}")
+ else ()
+ string(APPEND CMAKE_${t}_LINKER_FLAGS_DEBUG_INIT " /debug ${MSVC_INCREMENTAL_YES_FLAG}")
+ string(APPEND CMAKE_${t}_LINKER_FLAGS_RELWITHDEBINFO_INIT " /debug ${MSVC_INCREMENTAL_YES_FLAG}")
+ endif ()
+ # for release and minsize release default to no incremental linking
+ string(APPEND CMAKE_${t}_LINKER_FLAGS_MINSIZEREL_INIT " /INCREMENTAL:NO")
+ string(APPEND CMAKE_${t}_LINKER_FLAGS_RELEASE_INIT " /INCREMENTAL:NO")
+endforeach()
+
+string(APPEND CMAKE_STATIC_LINKER_FLAGS_INIT " ${_MACHINE_ARCH_FLAG}")
+unset(_MACHINE_ARCH_FLAG)
+
+cmake_policy(GET CMP0091 __WINDOWS_MSVC_CMP0091)
+if(__WINDOWS_MSVC_CMP0091 STREQUAL "NEW")
+ set(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
+else()
+ set(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT "")
+endif()
+unset(__WINDOWS_MSVC_CMP0091)
+
+macro(__windows_compiler_msvc lang)
+ if(NOT MSVC_VERSION LESS 1400)
+ # for 2005 make sure the manifest is put in the dll with mt
+ set(_CMAKE_VS_LINK_DLL "<CMAKE_COMMAND> -E vs_link_dll --intdir=<OBJECT_DIR> --rc=<CMAKE_RC_COMPILER> --mt=<CMAKE_MT> --manifests <MANIFESTS> -- ")
+ set(_CMAKE_VS_LINK_EXE "<CMAKE_COMMAND> -E vs_link_exe --intdir=<OBJECT_DIR> --rc=<CMAKE_RC_COMPILER> --mt=<CMAKE_MT> --manifests <MANIFESTS> -- ")
+ endif()
+ set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
+ "${_CMAKE_VS_LINK_DLL}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /dll /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR>${_PLATFORM_LINK_FLAGS} <LINK_FLAGS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
+
+ set(CMAKE_${lang}_CREATE_SHARED_MODULE ${CMAKE_${lang}_CREATE_SHARED_LIBRARY})
+ set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_LINKER> /lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
+
+ set(CMAKE_${lang}_COMPILE_OBJECT
+ "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <DEFINES> <INCLUDES> <FLAGS> /Fo<OBJECT> /Fd<TARGET_COMPILE_PDB>${_FS_${lang}} -c <SOURCE>${CMAKE_END_TEMP_FILE}")
+ set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE
+ "<CMAKE_${lang}_COMPILER> > <PREPROCESSED_SOURCE> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE>${CMAKE_END_TEMP_FILE}")
+ set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE
+ "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <DEFINES> <INCLUDES> <FLAGS> /FoNUL /FAs /Fa<ASSEMBLY_SOURCE> /c <SOURCE>${CMAKE_END_TEMP_FILE}")
+
+ set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 1)
+ set(CMAKE_${lang}_LINK_EXECUTABLE
+ "${_CMAKE_VS_LINK_EXE}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR>${_PLATFORM_LINK_FLAGS} <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
+
+ set(CMAKE_PCH_EXTENSION .pch)
+ set(CMAKE_LINK_PCH ON)
+ if(MSVC_VERSION GREATER_EQUAL 1910)
+ # VS 2017 or greater
+ if (NOT ${CMAKE_${lang}_COMPILER_ID} STREQUAL "Clang")
+ set(CMAKE_PCH_PROLOGUE "#pragma system_header")
+ else()
+ set(CMAKE_PCH_PROLOGUE "#pragma clang system_header")
+ endif()
+ endif()
+ if (NOT ${CMAKE_${lang}_COMPILER_ID} STREQUAL "Clang")
+ set(CMAKE_PCH_COPY_COMPILE_PDB ON)
+ endif()
+ set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH /Yu<PCH_HEADER> /Fp<PCH_FILE> /FI<PCH_HEADER>)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH /Yc<PCH_HEADER> /Fp<PCH_FILE> /FI<PCH_HEADER>)
+
+ if("x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xMSVC")
+ set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
+ set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
+
+ set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "/GL")
+ set(CMAKE_${lang}_LINK_OPTIONS_IPO "/INCREMENTAL:NO" "/LTCG")
+ string(REPLACE "<LINK_FLAGS> " "/LTCG <LINK_FLAGS> "
+ CMAKE_${lang}_CREATE_STATIC_LIBRARY_IPO "${CMAKE_${lang}_CREATE_STATIC_LIBRARY}")
+ elseif("x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xClang" OR
+ "x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xFlang")
+ set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
+ set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
+
+ # '-flto=thin' available since Clang 3.9 and Xcode 8
+ # * http://clang.llvm.org/docs/ThinLTO.html#clang-llvm
+ # * https://trac.macports.org/wiki/XcodeVersionInfo
+ set(_CMAKE_LTO_THIN TRUE)
+ if(CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.9)
+ set(_CMAKE_LTO_THIN FALSE)
+ endif()
+
+ if(_CMAKE_LTO_THIN)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto=thin")
+ else()
+ set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-flto")
+ endif()
+ endif()
+
+ if("x${lang}" STREQUAL "xC" OR
+ "x${lang}" STREQUAL "xCXX")
+ if(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT)
+ set(_MDd "")
+ set(_MD "")
+ else()
+ set(_MDd " /MDd")
+ set(_MD " /MD")
+ endif()
+
+ cmake_policy(GET CMP0092 _cmp0092)
+ if(_cmp0092 STREQUAL "NEW")
+ set(_W3 "")
+ set(_Wall "")
+ else()
+ set(_W3 " /W3")
+ set(_Wall " -Wall")
+ endif()
+ unset(_cmp0092)
+
+ if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "v[0-9]+_clang_.*")
+ # note: MSVC 14 2015 Update 1 sets -fno-ms-compatibility by default, but this does not allow one to compile many projects
+ # that include MS's own headers. CMake itself is affected project too.
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " ${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_${lang}} -fms-extensions -fms-compatibility -D_WINDOWS${_Wall}${_FLAGS_${lang}}")
+ string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT "${_MDd} -gline-tables-only -fno-inline -O0 ${_RTC1}")
+ string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT "${_MD} -O2 -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "${_MD} -gline-tables-only -O2 -fno-inline -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "${_MD} -DNDEBUG") # TODO: Add '-Os' once VS generator maps it properly for Clang
+ else()
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " ${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_${lang}} /D_WINDOWS${_W3}${_FLAGS_${lang}}")
+ string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT "${_MDd} /Zi /Ob0 /Od ${_RTC1}")
+ string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT "${_MD} /O2 /Ob2 /DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "${_MD} /Zi /O2 /Ob1 /DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "${_MD} /O1 /Ob1 /DNDEBUG")
+ endif()
+ unset(_Wall)
+ unset(_W3)
+ unset(_MDd)
+ unset(_MD)
+
+ set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded -MT)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL -MD)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug -MTd)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL -MDd)
+ endif()
+ set(CMAKE_${lang}_LINKER_SUPPORTS_PDB ON)
+ set(CMAKE_NINJA_DEPTYPE_${lang} msvc)
+ __windows_compiler_msvc_enable_rc("${_PLATFORM_DEFINES} ${_PLATFORM_DEFINES_${lang}}")
+endmacro()
+
+macro(__windows_compiler_msvc_enable_rc flags)
+ if(NOT CMAKE_RC_COMPILER_INIT)
+ set(CMAKE_RC_COMPILER_INIT rc)
+ endif()
+ if(NOT CMAKE_RC_FLAGS_INIT)
+ # llvm-rc fails when flags are specified with /D and no space after
+ string(REPLACE " /D" " -D" fixed_flags " ${flags}")
+ string(APPEND CMAKE_RC_FLAGS_INIT " ${fixed_flags}")
+ endif()
+ if(NOT CMAKE_RC_FLAGS_DEBUG_INIT)
+ string(APPEND CMAKE_RC_FLAGS_DEBUG_INIT " -D_DEBUG")
+ endif()
+
+ enable_language(RC)
+ if(NOT DEFINED CMAKE_NINJA_CMCLDEPS_RC)
+ set(CMAKE_NINJA_CMCLDEPS_RC 1)
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/Platform/Windows-NVIDIA-CUDA.cmake b/share/cmake-3.17/Modules/Platform/Windows-NVIDIA-CUDA.cmake
new file mode 100644
index 0000000..f809094
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Windows-NVIDIA-CUDA.cmake
@@ -0,0 +1,93 @@
+include(Platform/Windows-MSVC)
+
+set(CMAKE_CUDA_COMPILE_PTX_COMPILATION
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -ptx <SOURCE> -o <OBJECT> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS")
+set(CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -dc <SOURCE> -o <OBJECT> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS")
+set(CMAKE_CUDA_COMPILE_WHOLE_COMPILATION
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> -x cu -c <SOURCE> -o <OBJECT> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS")
+
+set(__IMPLICT_LINKS )
+foreach(dir ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
+ string(APPEND __IMPLICT_LINKS " -LIBPATH:\"${dir}\"")
+endforeach()
+foreach(lib ${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES})
+ string(APPEND __IMPLICT_LINKS " \"${lib}\"")
+endforeach()
+set(CMAKE_CUDA_LINK_EXECUTABLE
+ "<CMAKE_CUDA_HOST_LINK_LAUNCHER> <LINK_FLAGS> <OBJECTS> /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <LINK_LIBRARIES>${__IMPLICT_LINKS}")
+
+set(_CMAKE_VS_LINK_DLL "<CMAKE_COMMAND> -E vs_link_dll --intdir=<OBJECT_DIR> --rc=<CMAKE_RC_COMPILER> --mt=<CMAKE_MT> --manifests <MANIFESTS> -- ")
+set(_CMAKE_VS_LINK_EXE "<CMAKE_COMMAND> -E vs_link_exe --intdir=<OBJECT_DIR> --rc=<CMAKE_RC_COMPILER> --mt=<CMAKE_MT> --manifests <MANIFESTS> -- ")
+set(CMAKE_CUDA_CREATE_SHARED_LIBRARY
+ "${_CMAKE_VS_LINK_DLL}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /dll /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR>${_PLATFORM_LINK_FLAGS} <LINK_FLAGS> <LINK_LIBRARIES>${__IMPLICT_LINKS} ${CMAKE_END_TEMP_FILE}")
+
+set(CMAKE_CUDA_CREATE_SHARED_MODULE ${CMAKE_CUDA_CREATE_SHARED_LIBRARY})
+set(CMAKE_CUDA_CREATE_STATIC_LIBRARY "<CMAKE_LINKER> /lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
+set(CMAKE_CUDA_LINKER_SUPPORTS_PDB ON)
+set(CMAKE_CUDA_LINK_EXECUTABLE
+ "${_CMAKE_VS_LINK_EXE}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> ${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR>${_PLATFORM_LINK_FLAGS} <LINK_FLAGS> <LINK_LIBRARIES>${__IMPLICT_LINKS} ${CMAKE_END_TEMP_FILE}")
+unset(_CMAKE_VS_LINK_EXE)
+unset(_CMAKE_VS_LINK_EXE)
+
+
+# Add implicit host link directories that contain device libraries
+# to the device link line.
+set(__IMPLICT_DLINK_DIRS ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
+if(__IMPLICT_DLINK_DIRS)
+ list(REMOVE_ITEM __IMPLICT_DLINK_DIRS ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
+endif()
+set(__IMPLICT_DLINK_FLAGS )
+foreach(dir ${__IMPLICT_DLINK_DIRS})
+ if(EXISTS "${dir}/curand_static.lib")
+ string(APPEND __IMPLICT_DLINK_FLAGS " -L\"${dir}\"")
+ endif()
+endforeach()
+unset(__IMPLICT_DLINK_DIRS)
+
+set(CMAKE_CUDA_DEVICE_LINK_LIBRARY
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <LANGUAGE_COMPILE_FLAGS> ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS${__IMPLICT_DLINK_FLAGS}")
+set(CMAKE_CUDA_DEVICE_LINK_EXECUTABLE
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <FLAGS> ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Xcompiler=-Fd<TARGET_COMPILE_PDB>,-FS${__IMPLICT_DLINK_FLAGS}")
+unset(__IMPLICT_DLINK_FLAGS)
+
+string(REPLACE "/D" "-D" _PLATFORM_DEFINES_CUDA "${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_CXX}")
+
+if(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT)
+ set(_MDd "")
+ set(_MD "")
+else()
+ set(_MDd "-MDd ")
+ set(_MD "-MD ")
+endif()
+
+cmake_policy(GET CMP0092 _cmp0092)
+if(_cmp0092 STREQUAL "NEW")
+ set(_W3 "")
+else()
+ set(_W3 "/W3")
+endif()
+unset(_cmp0092)
+
+set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "STATIC")
+set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_STATIC "cudadevrt;cudart_static")
+set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_SHARED "cudadevrt;cudart")
+set(CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_NONE "")
+
+string(APPEND CMAKE_CUDA_FLAGS_INIT " ${PLATFORM_DEFINES_CUDA} -D_WINDOWS -Xcompiler=\"${_W3}${_FLAGS_CXX}\"")
+string(APPEND CMAKE_CUDA_FLAGS_DEBUG_INIT " -Xcompiler=\"${_MDd}-Zi -Ob0 -Od ${_RTC1}\"")
+string(APPEND CMAKE_CUDA_FLAGS_RELEASE_INIT " -Xcompiler=\"${_MD}-O2 -Ob2\" -DNDEBUG")
+string(APPEND CMAKE_CUDA_FLAGS_RELWITHDEBINFO_INIT " -Xcompiler=\"${_MD}-Zi -O2 -Ob1\" -DNDEBUG")
+string(APPEND CMAKE_CUDA_FLAGS_MINSIZEREL_INIT " -Xcompiler=\"${_MD}-O1 -Ob1\" -DNDEBUG")
+unset(_W3)
+unset(_MDd)
+unset(_MD)
+
+set(CMAKE_CUDA_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded -Xcompiler=-MT)
+set(CMAKE_CUDA_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL -Xcompiler=-MD)
+set(CMAKE_CUDA_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug -Xcompiler=-MTd)
+set(CMAKE_CUDA_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL -Xcompiler=-MDd)
+
+set(CMAKE_CUDA_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}")
+
+__windows_compiler_msvc_enable_rc("${_PLATFORM_DEFINES} ${_PLATFORM_DEFINES_CXX}")
diff --git a/share/cmake-3.16/Modules/Platform/Windows-OpenWatcom-C.cmake b/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-C.cmake
index ce9bc45..ce9bc45 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-OpenWatcom-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-OpenWatcom-CXX.cmake b/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-CXX.cmake
index ce9bc45..ce9bc45 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-OpenWatcom-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-OpenWatcom.cmake b/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom.cmake
index 76cd28b..76cd28b 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-OpenWatcom.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-PGI-C.cmake b/share/cmake-3.17/Modules/Platform/Windows-PGI-C.cmake
index 0495b93..0495b93 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-PGI-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-PGI-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-PGI-Fortran.cmake b/share/cmake-3.17/Modules/Platform/Windows-PGI-Fortran.cmake
index 2222e33..2222e33 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-PGI-Fortran.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-PGI-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-PGI.cmake b/share/cmake-3.17/Modules/Platform/Windows-PGI.cmake
new file mode 100644
index 0000000..8166240
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/Windows-PGI.cmake
@@ -0,0 +1,49 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This module is shared by multiple languages; use include blocker.
+if(__WINDOWS_COMPILER_PGI)
+ return()
+endif()
+set(__WINDOWS_COMPILER_PGI 1)
+
+# PGI on Windows doesn't support parallel compile processes
+if(NOT DEFINED CMAKE_JOB_POOL_LINK OR NOT DEFINED CMAKE_JOB_POOL_COMPILE OR NOT DEFINED CMAKE_JOB_POOL_PRECOMPILE_HEADER)
+ set(CMAKE_JOB_POOL_LINK PGITaskPool)
+ set(CMAKE_JOB_POOL_COMPILE PGITaskPool)
+ set(CMAKE_JOB_POOL_PRECOMPILE_HEADER PGITaskPool)
+ get_property(_pgijp GLOBAL PROPERTY JOB_POOLS)
+ if(NOT _pgijp MATCHES "PGITaskPool=")
+ set_property(GLOBAL APPEND PROPERTY JOB_POOLS PGITaskPool=1)
+ endif()
+ unset(_pgijp)
+endif()
+
+set(CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS 1)
+set(CMAKE_LINK_DEF_FILE_FLAG "-def:")
+# The link flags for PGI are the raw filename to add a file
+# and the UNIX -L syntax to link directories.
+set(CMAKE_LINK_LIBRARY_FLAG "")
+set(CMAKE_LINK_STARTFILE "pgimain[mx][xpt]+[.]obj")
+
+# Default to Debug builds, mirroring Windows-MSVC behavior
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+if(CMAKE_VERBOSE_MAKEFILE)
+ set(CMAKE_CL_NOLOGO)
+else()
+ set(CMAKE_CL_NOLOGO "/nologo")
+endif()
+
+macro(__windows_compiler_pgi lang)
+ # Shared library compile and link rules.
+ set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
+ set(CMAKE_${lang}_CREATE_SHARED_LIBRARY "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} -Mmakedll -implib:<TARGET_IMPLIB> -Xlinker -pdb:<TARGET_PDB> -Xlinker -version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <LINK_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
+ set(CMAKE_${lang}_CREATE_SHARED_MODULE "${CMAKE_${lang}_CREATE_SHARED_LIBRARY}")
+ set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} -implib:<TARGET_IMPLIB> -Xlinker -pdb:<TARGET_PDB> -Xlinker -version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
+
+ if("${lang}" MATCHES "C|CXX")
+ set(CMAKE_${lang}_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib")
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Watcom-C.cmake b/share/cmake-3.17/Modules/Platform/Windows-Watcom-C.cmake
index 44a008b..44a008b 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Watcom-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Watcom-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-Watcom-CXX.cmake b/share/cmake-3.17/Modules/Platform/Windows-Watcom-CXX.cmake
index 63d109b..63d109b 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-Watcom-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-Watcom-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-df.cmake b/share/cmake-3.17/Modules/Platform/Windows-df.cmake
index f948914..f948914 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-df.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-df.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows-windres.cmake b/share/cmake-3.17/Modules/Platform/Windows-windres.cmake
index 7d787dd..7d787dd 100644
--- a/share/cmake-3.16/Modules/Platform/Windows-windres.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows-windres.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Windows.cmake b/share/cmake-3.17/Modules/Platform/Windows.cmake
index d8b3957..d8b3957 100644
--- a/share/cmake-3.16/Modules/Platform/Windows.cmake
+++ b/share/cmake-3.17/Modules/Platform/Windows.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsCE-MSVC-C.cmake b/share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-C.cmake
index ce8060b..ce8060b 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsCE-MSVC-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsCE-MSVC-CXX.cmake b/share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-CXX.cmake
index 281eadc..281eadc 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsCE-MSVC-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsCE.cmake b/share/cmake-3.17/Modules/Platform/WindowsCE.cmake
index 65b2eae..65b2eae 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsCE.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsCE.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsPaths.cmake b/share/cmake-3.17/Modules/Platform/WindowsPaths.cmake
index 71cc609..71cc609 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsPaths.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsPaths.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-ASM.cmake b/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-ASM.cmake
new file mode 100644
index 0000000..94f4ca7
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-ASM.cmake
@@ -0,0 +1 @@
+include(Platform/Windows-Clang-ASM)
diff --git a/share/cmake-3.16/Modules/Platform/WindowsPhone-Clang-C.cmake b/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-C.cmake
index 6e38572..6e38572 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsPhone-Clang-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsPhone-Clang-CXX.cmake b/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-CXX.cmake
index bf47978..bf47978 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsPhone-Clang-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-ASM.cmake b/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-ASM.cmake
new file mode 100644
index 0000000..140eea7
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-ASM.cmake
@@ -0,0 +1 @@
+include(Platform/Windows-GNU-ASM)
diff --git a/share/cmake-3.16/Modules/Platform/WindowsPhone-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-C.cmake
index ff6acd5..ff6acd5 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsPhone-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsPhone-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-CXX.cmake
index 6adab6a..6adab6a 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsPhone-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsPhone-MSVC-C.cmake b/share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-C.cmake
index ce8060b..ce8060b 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsPhone-MSVC-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsPhone-MSVC-CXX.cmake b/share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-CXX.cmake
index 281eadc..281eadc 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsPhone-MSVC-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsPhone.cmake b/share/cmake-3.17/Modules/Platform/WindowsPhone.cmake
index 65b2eae..65b2eae 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsPhone.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsPhone.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-ASM.cmake b/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-ASM.cmake
new file mode 100644
index 0000000..94f4ca7
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-ASM.cmake
@@ -0,0 +1 @@
+include(Platform/Windows-Clang-ASM)
diff --git a/share/cmake-3.16/Modules/Platform/WindowsStore-Clang-C.cmake b/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-C.cmake
index 6e38572..6e38572 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsStore-Clang-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsStore-Clang-CXX.cmake b/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-CXX.cmake
index bf47978..bf47978 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsStore-Clang-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-ASM.cmake b/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-ASM.cmake
new file mode 100644
index 0000000..140eea7
--- /dev/null
+++ b/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-ASM.cmake
@@ -0,0 +1 @@
+include(Platform/Windows-GNU-ASM)
diff --git a/share/cmake-3.16/Modules/Platform/WindowsStore-GNU-C.cmake b/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-C.cmake
index ff6acd5..ff6acd5 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsStore-GNU-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsStore-GNU-CXX.cmake b/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-CXX.cmake
index 6adab6a..6adab6a 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsStore-GNU-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsStore-MSVC-C.cmake b/share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-C.cmake
index ce8060b..ce8060b 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsStore-MSVC-C.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-C.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsStore-MSVC-CXX.cmake b/share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-CXX.cmake
index 281eadc..281eadc 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsStore-MSVC-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/WindowsStore.cmake b/share/cmake-3.17/Modules/Platform/WindowsStore.cmake
index 65b2eae..65b2eae 100644
--- a/share/cmake-3.16/Modules/Platform/WindowsStore.cmake
+++ b/share/cmake-3.17/Modules/Platform/WindowsStore.cmake
diff --git a/share/cmake-3.16/Modules/Platform/Xenix.cmake b/share/cmake-3.17/Modules/Platform/Xenix.cmake
index 47852f8..47852f8 100644
--- a/share/cmake-3.16/Modules/Platform/Xenix.cmake
+++ b/share/cmake-3.17/Modules/Platform/Xenix.cmake
diff --git a/share/cmake-3.16/Modules/Platform/eCos.cmake b/share/cmake-3.17/Modules/Platform/eCos.cmake
index e1279ef..e1279ef 100644
--- a/share/cmake-3.16/Modules/Platform/eCos.cmake
+++ b/share/cmake-3.17/Modules/Platform/eCos.cmake
diff --git a/share/cmake-3.16/Modules/Platform/gas.cmake b/share/cmake-3.17/Modules/Platform/gas.cmake
index 7c659f2..7c659f2 100644
--- a/share/cmake-3.16/Modules/Platform/gas.cmake
+++ b/share/cmake-3.17/Modules/Platform/gas.cmake
diff --git a/share/cmake-3.16/Modules/Platform/iOS-Determine-CXX.cmake b/share/cmake-3.17/Modules/Platform/iOS-Determine-CXX.cmake
index ac80fa6..ac80fa6 100644
--- a/share/cmake-3.16/Modules/Platform/iOS-Determine-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/iOS-Determine-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/iOS-Initialize.cmake b/share/cmake-3.17/Modules/Platform/iOS-Initialize.cmake
index 301ca4c..301ca4c 100644
--- a/share/cmake-3.16/Modules/Platform/iOS-Initialize.cmake
+++ b/share/cmake-3.17/Modules/Platform/iOS-Initialize.cmake
diff --git a/share/cmake-3.16/Modules/Platform/iOS.cmake b/share/cmake-3.17/Modules/Platform/iOS.cmake
index 850ddc2..850ddc2 100644
--- a/share/cmake-3.16/Modules/Platform/iOS.cmake
+++ b/share/cmake-3.17/Modules/Platform/iOS.cmake
diff --git a/share/cmake-3.16/Modules/Platform/kFreeBSD.cmake b/share/cmake-3.17/Modules/Platform/kFreeBSD.cmake
index c1db259..c1db259 100644
--- a/share/cmake-3.16/Modules/Platform/kFreeBSD.cmake
+++ b/share/cmake-3.17/Modules/Platform/kFreeBSD.cmake
diff --git a/share/cmake-3.16/Modules/Platform/syllable.cmake b/share/cmake-3.17/Modules/Platform/syllable.cmake
index 69c108d..69c108d 100644
--- a/share/cmake-3.16/Modules/Platform/syllable.cmake
+++ b/share/cmake-3.17/Modules/Platform/syllable.cmake
diff --git a/share/cmake-3.16/Modules/Platform/tvOS-Determine-CXX.cmake b/share/cmake-3.17/Modules/Platform/tvOS-Determine-CXX.cmake
index ac80fa6..ac80fa6 100644
--- a/share/cmake-3.16/Modules/Platform/tvOS-Determine-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/tvOS-Determine-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/tvOS-Initialize.cmake b/share/cmake-3.17/Modules/Platform/tvOS-Initialize.cmake
index 6834c80..6834c80 100644
--- a/share/cmake-3.16/Modules/Platform/tvOS-Initialize.cmake
+++ b/share/cmake-3.17/Modules/Platform/tvOS-Initialize.cmake
diff --git a/share/cmake-3.16/Modules/Platform/tvOS.cmake b/share/cmake-3.17/Modules/Platform/tvOS.cmake
index 850ddc2..850ddc2 100644
--- a/share/cmake-3.16/Modules/Platform/tvOS.cmake
+++ b/share/cmake-3.17/Modules/Platform/tvOS.cmake
diff --git a/share/cmake-3.16/Modules/Platform/watchOS-Determine-CXX.cmake b/share/cmake-3.17/Modules/Platform/watchOS-Determine-CXX.cmake
index ac80fa6..ac80fa6 100644
--- a/share/cmake-3.16/Modules/Platform/watchOS-Determine-CXX.cmake
+++ b/share/cmake-3.17/Modules/Platform/watchOS-Determine-CXX.cmake
diff --git a/share/cmake-3.16/Modules/Platform/watchOS-Initialize.cmake b/share/cmake-3.17/Modules/Platform/watchOS-Initialize.cmake
index 2f396d3..2f396d3 100644
--- a/share/cmake-3.16/Modules/Platform/watchOS-Initialize.cmake
+++ b/share/cmake-3.17/Modules/Platform/watchOS-Initialize.cmake
diff --git a/share/cmake-3.16/Modules/Platform/watchOS.cmake b/share/cmake-3.17/Modules/Platform/watchOS.cmake
index 850ddc2..850ddc2 100644
--- a/share/cmake-3.16/Modules/Platform/watchOS.cmake
+++ b/share/cmake-3.17/Modules/Platform/watchOS.cmake
diff --git a/share/cmake-3.16/Modules/ProcessorCount.cmake b/share/cmake-3.17/Modules/ProcessorCount.cmake
index 43ec889..43ec889 100644
--- a/share/cmake-3.16/Modules/ProcessorCount.cmake
+++ b/share/cmake-3.17/Modules/ProcessorCount.cmake
diff --git a/share/cmake-3.16/Modules/Qt4ConfigDependentSettings.cmake b/share/cmake-3.17/Modules/Qt4ConfigDependentSettings.cmake
index 4699ecd..4699ecd 100644
--- a/share/cmake-3.16/Modules/Qt4ConfigDependentSettings.cmake
+++ b/share/cmake-3.17/Modules/Qt4ConfigDependentSettings.cmake
diff --git a/share/cmake-3.17/Modules/Qt4Macros.cmake b/share/cmake-3.17/Modules/Qt4Macros.cmake
new file mode 100644
index 0000000..cb6ae43
--- /dev/null
+++ b/share/cmake-3.17/Modules/Qt4Macros.cmake
@@ -0,0 +1,516 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+Qt4Macros
+---------
+
+
+
+This file is included by FindQt4.cmake, don't include it directly.
+#]=======================================================================]
+
+######################################
+#
+# Macros for building Qt files
+#
+######################################
+
+
+macro (QT4_EXTRACT_OPTIONS _qt4_files _qt4_options _qt4_target)
+ set(${_qt4_files})
+ set(${_qt4_options})
+ set(_QT4_DOING_OPTIONS FALSE)
+ set(_QT4_DOING_TARGET FALSE)
+ foreach(_currentArg ${ARGN})
+ if ("x${_currentArg}" STREQUAL "xOPTIONS")
+ set(_QT4_DOING_OPTIONS TRUE)
+ elseif ("x${_currentArg}" STREQUAL "xTARGET")
+ set(_QT4_DOING_TARGET TRUE)
+ else ()
+ if(_QT4_DOING_TARGET)
+ set(${_qt4_target} "${_currentArg}")
+ elseif(_QT4_DOING_OPTIONS)
+ list(APPEND ${_qt4_options} "${_currentArg}")
+ else()
+ list(APPEND ${_qt4_files} "${_currentArg}")
+ endif()
+ endif ()
+ endforeach()
+endmacro ()
+
+
+# macro used to create the names of output files preserving relative dirs
+macro (QT4_MAKE_OUTPUT_FILE infile prefix ext outfile )
+ string(LENGTH ${CMAKE_CURRENT_BINARY_DIR} _binlength)
+ string(LENGTH ${infile} _infileLength)
+ set(_checkinfile ${CMAKE_CURRENT_SOURCE_DIR})
+ if(_infileLength GREATER _binlength)
+ string(SUBSTRING "${infile}" 0 ${_binlength} _checkinfile)
+ if(_checkinfile STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
+ file(RELATIVE_PATH rel ${CMAKE_CURRENT_BINARY_DIR} ${infile})
+ else()
+ file(RELATIVE_PATH rel ${CMAKE_CURRENT_SOURCE_DIR} ${infile})
+ endif()
+ else()
+ file(RELATIVE_PATH rel ${CMAKE_CURRENT_SOURCE_DIR} ${infile})
+ endif()
+ if(WIN32 AND rel MATCHES "^([a-zA-Z]):(.*)$") # absolute path
+ set(rel "${CMAKE_MATCH_1}_${CMAKE_MATCH_2}")
+ endif()
+ set(_outfile "${CMAKE_CURRENT_BINARY_DIR}/${rel}")
+ string(REPLACE ".." "__" _outfile ${_outfile})
+ get_filename_component(outpath ${_outfile} PATH)
+ get_filename_component(_outfile ${_outfile} NAME_WE)
+ file(MAKE_DIRECTORY ${outpath})
+ set(${outfile} ${outpath}/${prefix}${_outfile}.${ext})
+endmacro ()
+
+
+macro (QT4_GET_MOC_FLAGS _moc_flags)
+ set(${_moc_flags})
+ get_directory_property(_inc_DIRS INCLUDE_DIRECTORIES)
+
+ foreach(_current ${_inc_DIRS})
+ if("${_current}" MATCHES "\\.framework/?$")
+ string(REGEX REPLACE "/[^/]+\\.framework" "" framework_path "${_current}")
+ set(${_moc_flags} ${${_moc_flags}} "-F${framework_path}")
+ else()
+ set(${_moc_flags} ${${_moc_flags}} "-I${_current}")
+ endif()
+ endforeach()
+
+ get_directory_property(_defines COMPILE_DEFINITIONS)
+ foreach(_current ${_defines})
+ set(${_moc_flags} ${${_moc_flags}} "-D${_current}")
+ endforeach()
+
+ if(Q_WS_WIN)
+ set(${_moc_flags} ${${_moc_flags}} -DWIN32)
+ endif()
+
+endmacro()
+
+
+# helper macro to set up a moc rule
+function (QT4_CREATE_MOC_COMMAND infile outfile moc_flags moc_options moc_target)
+ # For Windows, create a parameters file to work around command line length limit
+ # Pass the parameters in a file. Set the working directory to
+ # be that containing the parameters file and reference it by
+ # just the file name. This is necessary because the moc tool on
+ # MinGW builds does not seem to handle spaces in the path to the
+ # file given with the @ syntax.
+ get_filename_component(_moc_outfile_name "${outfile}" NAME)
+ get_filename_component(_moc_outfile_dir "${outfile}" PATH)
+ if(_moc_outfile_dir)
+ set(_moc_working_dir WORKING_DIRECTORY ${_moc_outfile_dir})
+ endif()
+ set (_moc_parameters_file ${outfile}_parameters)
+ set (_moc_parameters ${moc_flags} ${moc_options} -o "${outfile}" "${infile}")
+ string (REPLACE ";" "\n" _moc_parameters "${_moc_parameters}")
+
+ if(moc_target)
+ set (_moc_parameters_file ${_moc_parameters_file}$<$<BOOL:$<CONFIGURATION>>:_$<CONFIGURATION>>)
+ set(targetincludes "$<TARGET_PROPERTY:${moc_target},INCLUDE_DIRECTORIES>")
+ set(targetdefines "$<TARGET_PROPERTY:${moc_target},COMPILE_DEFINITIONS>")
+
+ set(targetincludes "$<$<BOOL:${targetincludes}>:-I$<JOIN:${targetincludes},\n-I>\n>")
+ set(targetdefines "$<$<BOOL:${targetdefines}>:-D$<JOIN:${targetdefines},\n-D>\n>")
+
+ file (GENERATE
+ OUTPUT ${_moc_parameters_file}
+ CONTENT "${targetdefines}${targetincludes}${_moc_parameters}\n"
+ )
+
+ set(targetincludes)
+ set(targetdefines)
+ else()
+ set(CMAKE_CONFIGURABLE_FILE_CONTENT "${_moc_parameters}")
+ configure_file("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
+ "${_moc_parameters_file}" @ONLY)
+ endif()
+
+ set(_moc_extra_parameters_file @${_moc_parameters_file})
+ add_custom_command(OUTPUT ${outfile}
+ COMMAND Qt4::moc ${_moc_extra_parameters_file}
+ DEPENDS ${infile} ${_moc_parameters_file}
+ ${_moc_working_dir}
+ VERBATIM)
+endfunction ()
+
+
+macro (QT4_GENERATE_MOC infile outfile )
+ # get include dirs and flags
+ QT4_GET_MOC_FLAGS(moc_flags)
+ get_filename_component(abs_infile ${infile} ABSOLUTE)
+ set(_outfile "${outfile}")
+ if(NOT IS_ABSOLUTE "${outfile}")
+ set(_outfile "${CMAKE_CURRENT_BINARY_DIR}/${outfile}")
+ endif()
+
+ if (${ARGC} GREATER 3 AND "x${ARGV2}" STREQUAL "xTARGET")
+ set(moc_target ${ARGV3})
+ endif()
+ QT4_CREATE_MOC_COMMAND(${abs_infile} ${_outfile} "${moc_flags}" "" "${moc_target}")
+ set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file
+ set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file
+endmacro ()
+
+
+# QT4_WRAP_CPP(outfiles inputfile ... )
+
+macro (QT4_WRAP_CPP outfiles )
+ # get include dirs
+ QT4_GET_MOC_FLAGS(moc_flags)
+ QT4_EXTRACT_OPTIONS(moc_files moc_options moc_target ${ARGN})
+
+ foreach (it ${moc_files})
+ get_filename_component(it ${it} ABSOLUTE)
+ QT4_MAKE_OUTPUT_FILE(${it} moc_ cxx outfile)
+ QT4_CREATE_MOC_COMMAND(${it} ${outfile} "${moc_flags}" "${moc_options}" "${moc_target}")
+ set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file
+ set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file
+ set(${outfiles} ${${outfiles}} ${outfile})
+ endforeach()
+
+endmacro ()
+
+
+# QT4_WRAP_UI(outfiles inputfile ... )
+
+macro (QT4_WRAP_UI outfiles )
+ QT4_EXTRACT_OPTIONS(ui_files ui_options ui_target ${ARGN})
+
+ foreach (it ${ui_files})
+ get_filename_component(outfile ${it} NAME_WE)
+ get_filename_component(infile ${it} ABSOLUTE)
+ set(outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${outfile}.h)
+ add_custom_command(OUTPUT ${outfile}
+ COMMAND Qt4::uic
+ ARGS ${ui_options} -o ${outfile} ${infile}
+ MAIN_DEPENDENCY ${infile} VERBATIM)
+ set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file
+ set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file
+ set(${outfiles} ${${outfiles}} ${outfile})
+ endforeach ()
+
+endmacro ()
+
+
+# QT4_ADD_RESOURCES(outfiles inputfile ... )
+
+macro (QT4_ADD_RESOURCES outfiles )
+ QT4_EXTRACT_OPTIONS(rcc_files rcc_options rcc_target ${ARGN})
+
+ foreach (it ${rcc_files})
+ get_filename_component(outfilename ${it} NAME_WE)
+ get_filename_component(infile ${it} ABSOLUTE)
+ get_filename_component(rc_path ${infile} PATH)
+ set(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cxx)
+
+ set(_RC_DEPENDS)
+ if(EXISTS "${infile}")
+ # parse file for dependencies
+ # all files are absolute paths or relative to the location of the qrc file
+ file(READ "${infile}" _RC_FILE_CONTENTS)
+ string(REGEX MATCHALL "<file[^<]+" _RC_FILES "${_RC_FILE_CONTENTS}")
+ foreach(_RC_FILE ${_RC_FILES})
+ string(REGEX REPLACE "^<file[^>]*>" "" _RC_FILE "${_RC_FILE}")
+ if(NOT IS_ABSOLUTE "${_RC_FILE}")
+ set(_RC_FILE "${rc_path}/${_RC_FILE}")
+ endif()
+ set(_RC_DEPENDS ${_RC_DEPENDS} "${_RC_FILE}")
+ endforeach()
+ unset(_RC_FILES)
+ unset(_RC_FILE_CONTENTS)
+ # Since this cmake macro is doing the dependency scanning for these files,
+ # let's make a configured file and add it as a dependency so cmake is run
+ # again when dependencies need to be recomputed.
+ QT4_MAKE_OUTPUT_FILE("${infile}" "" "qrc.depends" out_depends)
+ configure_file("${infile}" "${out_depends}" COPYONLY)
+ else()
+ # The .qrc file does not exist (yet). Let's add a dependency and hope
+ # that it will be generated later
+ set(out_depends)
+ endif()
+
+ add_custom_command(OUTPUT ${outfile}
+ COMMAND Qt4::rcc
+ ARGS ${rcc_options} -name ${outfilename} -o ${outfile} ${infile}
+ MAIN_DEPENDENCY ${infile}
+ DEPENDS ${_RC_DEPENDS} "${out_depends}" VERBATIM)
+ set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file
+ set_property(SOURCE ${outfile} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file
+ set(${outfiles} ${${outfiles}} ${outfile})
+ endforeach ()
+
+endmacro ()
+
+
+macro(QT4_ADD_DBUS_INTERFACE _sources _interface _basename)
+ get_filename_component(_infile ${_interface} ABSOLUTE)
+ set(_header "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h")
+ set(_impl "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp")
+ set(_moc "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc")
+
+ get_property(_nonamespace SOURCE ${_interface} PROPERTY NO_NAMESPACE)
+ if(_nonamespace)
+ set(_params -N -m)
+ else()
+ set(_params -m)
+ endif()
+
+ get_property(_classname SOURCE ${_interface} PROPERTY CLASSNAME)
+ if(_classname)
+ set(_params ${_params} -c ${_classname})
+ endif()
+
+ get_property(_include SOURCE ${_interface} PROPERTY INCLUDE)
+ if(_include)
+ set(_params ${_params} -i ${_include})
+ endif()
+
+ add_custom_command(OUTPUT "${_impl}" "${_header}"
+ COMMAND Qt4::qdbusxml2cpp ${_params} -p ${_basename} ${_infile}
+ DEPENDS ${_infile} VERBATIM)
+
+ set_property(SOURCE ${_impl} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file
+ set_property(SOURCE ${_impl} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file
+
+ QT4_GENERATE_MOC("${_header}" "${_moc}")
+
+ list(APPEND ${_sources} "${_impl}" "${_header}" "${_moc}")
+ MACRO_ADD_FILE_DEPENDENCIES("${_impl}" "${_moc}")
+
+endmacro()
+
+
+macro(QT4_ADD_DBUS_INTERFACES _sources)
+ foreach (_current_FILE ${ARGN})
+ get_filename_component(_infile ${_current_FILE} ABSOLUTE)
+ get_filename_component(_basename ${_current_FILE} NAME)
+ # get the part before the ".xml" suffix
+ string(TOLOWER ${_basename} _basename)
+ string(REGEX REPLACE "(.*\\.)?([^\\.]+)\\.xml" "\\2" _basename ${_basename})
+ QT4_ADD_DBUS_INTERFACE(${_sources} ${_infile} ${_basename}interface)
+ endforeach ()
+endmacro()
+
+
+macro(QT4_GENERATE_DBUS_INTERFACE _header) # _customName OPTIONS -some -options )
+ QT4_EXTRACT_OPTIONS(_customName _qt4_dbus_options _qt4_dbus_target ${ARGN})
+
+ get_filename_component(_in_file ${_header} ABSOLUTE)
+ get_filename_component(_basename ${_header} NAME_WE)
+
+ if (_customName)
+ if (IS_ABSOLUTE ${_customName})
+ get_filename_component(_containingDir ${_customName} PATH)
+ if (NOT EXISTS ${_containingDir})
+ file(MAKE_DIRECTORY "${_containingDir}")
+ endif()
+ set(_target ${_customName})
+ else()
+ set(_target ${CMAKE_CURRENT_BINARY_DIR}/${_customName})
+ endif()
+ else ()
+ set(_target ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.xml)
+ endif ()
+
+ add_custom_command(OUTPUT ${_target}
+ COMMAND Qt4::qdbuscpp2xml ${_qt4_dbus_options} ${_in_file} -o ${_target}
+ DEPENDS ${_in_file} VERBATIM
+ )
+endmacro()
+
+
+macro(QT4_ADD_DBUS_ADAPTOR _sources _xml_file _include _parentClass) # _optionalBasename _optionalClassName)
+ get_filename_component(_infile ${_xml_file} ABSOLUTE)
+
+ unset(_optionalBasename)
+ if(${ARGC} GREATER 4)
+ set(_optionalBasename "${ARGV4}")
+ endif()
+ if (_optionalBasename)
+ set(_basename ${_optionalBasename} )
+ else ()
+ string(REGEX REPLACE "(.*[/\\.])?([^\\.]+)\\.xml" "\\2adaptor" _basename ${_infile})
+ string(TOLOWER ${_basename} _basename)
+ endif ()
+
+ unset(_optionalClassName)
+ if(${ARGC} GREATER 5)
+ set(_optionalClassName "${ARGV5}")
+ endif()
+ set(_header "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h")
+ set(_impl "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp")
+ set(_moc "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc")
+
+ if(_optionalClassName)
+ add_custom_command(OUTPUT "${_impl}" "${_header}"
+ COMMAND Qt4::qdbusxml2cpp -m -a ${_basename} -c ${_optionalClassName} -i ${_include} -l ${_parentClass} ${_infile}
+ DEPENDS ${_infile} VERBATIM
+ )
+ else()
+ add_custom_command(OUTPUT "${_impl}" "${_header}"
+ COMMAND Qt4::qdbusxml2cpp -m -a ${_basename} -i ${_include} -l ${_parentClass} ${_infile}
+ DEPENDS ${_infile} VERBATIM
+ )
+ endif()
+
+ QT4_GENERATE_MOC("${_header}" "${_moc}")
+ set_property(SOURCE ${_impl} PROPERTY SKIP_AUTOMOC TRUE) # don't run automoc on this file
+ set_property(SOURCE ${_impl} PROPERTY SKIP_AUTOUIC TRUE) # don't run autouic on this file
+ MACRO_ADD_FILE_DEPENDENCIES("${_impl}" "${_moc}")
+
+ list(APPEND ${_sources} "${_impl}" "${_header}" "${_moc}")
+endmacro()
+
+
+macro(QT4_AUTOMOC)
+ if(NOT CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.11)
+ message(DEPRECATION "The qt4_automoc macro is obsolete. Use the CMAKE_AUTOMOC feature instead.")
+ endif()
+ QT4_GET_MOC_FLAGS(_moc_INCS)
+
+ set(_matching_FILES )
+ foreach (_current_FILE ${ARGN})
+
+ get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE)
+ # if "SKIP_AUTOMOC" is set to true, we will not handle this file here.
+ # This is required to make uic work correctly:
+ # we need to add generated .cpp files to the sources (to compile them),
+ # but we cannot let automoc handle them, as the .cpp files don't exist yet when
+ # cmake is run for the very first time on them -> however the .cpp files might
+ # exist at a later run. at that time we need to skip them, so that we don't add two
+ # different rules for the same moc file
+ get_property(_skip SOURCE ${_abs_FILE} PROPERTY SKIP_AUTOMOC)
+
+ if ( NOT _skip AND EXISTS ${_abs_FILE} )
+
+ file(READ ${_abs_FILE} _contents)
+
+ get_filename_component(_abs_PATH ${_abs_FILE} PATH)
+
+ string(REGEX MATCHALL "# *include +[^ ]+\\.moc[\">]" _match "${_contents}")
+ if(_match)
+ foreach (_current_MOC_INC ${_match})
+ string(REGEX MATCH "[^ <\"]+\\.moc" _current_MOC "${_current_MOC_INC}")
+
+ get_filename_component(_basename ${_current_MOC} NAME_WE)
+ if(EXISTS ${_abs_PATH}/${_basename}.hpp)
+ set(_header ${_abs_PATH}/${_basename}.hpp)
+ else()
+ set(_header ${_abs_PATH}/${_basename}.h)
+ endif()
+ set(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC})
+ QT4_CREATE_MOC_COMMAND(${_header} ${_moc} "${_moc_INCS}" "" "")
+ MACRO_ADD_FILE_DEPENDENCIES(${_abs_FILE} ${_moc})
+ endforeach ()
+ endif()
+ endif ()
+ endforeach ()
+endmacro()
+
+
+macro(QT4_CREATE_TRANSLATION _qm_files)
+ QT4_EXTRACT_OPTIONS(_lupdate_files _lupdate_options _lupdate_target ${ARGN})
+ set(_my_sources)
+ set(_my_dirs)
+ set(_my_tsfiles)
+ set(_ts_pro)
+ foreach (_file ${_lupdate_files})
+ get_filename_component(_ext ${_file} EXT)
+ get_filename_component(_abs_FILE ${_file} ABSOLUTE)
+ if(_ext MATCHES "ts")
+ list(APPEND _my_tsfiles ${_abs_FILE})
+ else()
+ if(NOT _ext)
+ list(APPEND _my_dirs ${_abs_FILE})
+ else()
+ list(APPEND _my_sources ${_abs_FILE})
+ endif()
+ endif()
+ endforeach()
+ foreach(_ts_file ${_my_tsfiles})
+ if(_my_sources)
+ # make a .pro file to call lupdate on, so we don't make our commands too
+ # long for some systems
+ get_filename_component(_ts_name ${_ts_file} NAME)
+ set(_ts_pro ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_ts_name}_lupdate.pro)
+ set(_pro_srcs)
+ foreach(_pro_src ${_my_sources})
+ string(APPEND _pro_srcs " \\\n \"${_pro_src}\"")
+ endforeach()
+ set(_pro_includes)
+ get_directory_property(_inc_DIRS INCLUDE_DIRECTORIES)
+ list(REMOVE_DUPLICATES _inc_DIRS)
+ foreach(_pro_include ${_inc_DIRS})
+ get_filename_component(_abs_include "${_pro_include}" ABSOLUTE)
+ string(APPEND _pro_includes " \\\n \"${_abs_include}\"")
+ endforeach()
+ file(GENERATE OUTPUT ${_ts_pro} CONTENT "SOURCES =${_pro_srcs}\nINCLUDEPATH =${_pro_includes}\n")
+ endif()
+ add_custom_command(OUTPUT ${_ts_file}
+ COMMAND Qt4::lupdate
+ ARGS ${_lupdate_options} ${_ts_pro} ${_my_dirs} -ts ${_ts_file}
+ DEPENDS ${_my_sources} ${_ts_pro} VERBATIM)
+ endforeach()
+ QT4_ADD_TRANSLATION(${_qm_files} ${_my_tsfiles})
+endmacro()
+
+
+macro(QT4_ADD_TRANSLATION _qm_files)
+ foreach (_current_FILE ${ARGN})
+ get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE)
+ get_filename_component(qm ${_abs_FILE} NAME)
+ # everything before the last dot has to be considered the file name (including other dots)
+ string(REGEX REPLACE "\\.[^.]*$" "" FILE_NAME ${qm})
+ get_source_file_property(output_location ${_abs_FILE} OUTPUT_LOCATION)
+ if(output_location)
+ file(MAKE_DIRECTORY "${output_location}")
+ set(qm "${output_location}/${FILE_NAME}.qm")
+ else()
+ set(qm "${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}.qm")
+ endif()
+
+ add_custom_command(OUTPUT ${qm}
+ COMMAND Qt4::lrelease
+ ARGS ${_abs_FILE} -qm ${qm}
+ DEPENDS ${_abs_FILE} VERBATIM
+ )
+ set(${_qm_files} ${${_qm_files}} ${qm})
+ endforeach ()
+endmacro()
+
+function(qt4_use_modules _target _link_type)
+ if(NOT CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.11)
+ message(DEPRECATION "The qt4_use_modules function is obsolete. Use target_link_libraries with IMPORTED targets instead.")
+ endif()
+ if ("${_link_type}" STREQUAL "LINK_PUBLIC" OR "${_link_type}" STREQUAL "LINK_PRIVATE")
+ set(modules ${ARGN})
+ set(link_type ${_link_type})
+ else()
+ set(modules ${_link_type} ${ARGN})
+ endif()
+ foreach(_module ${modules})
+ string(TOUPPER ${_module} _ucmodule)
+ set(_targetPrefix QT_QT${_ucmodule})
+ if (_ucmodule STREQUAL QAXCONTAINER OR _ucmodule STREQUAL QAXSERVER)
+ if (NOT QT_Q${_ucmodule}_FOUND)
+ message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
+ endif()
+ set(_targetPrefix QT_Q${_ucmodule})
+ else()
+ if (NOT QT_QT${_ucmodule}_FOUND)
+ message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
+ endif()
+ if ("${_ucmodule}" STREQUAL "MAIN")
+ message(FATAL_ERROR "Can not use \"${_module}\" module with qt4_use_modules.")
+ endif()
+ endif()
+ target_link_libraries(${_target} ${link_type} ${${_targetPrefix}_LIBRARIES})
+ set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${${_targetPrefix}_INCLUDE_DIR} ${QT_HEADERS_DIR} ${QT_MKSPECS_DIR}/default)
+ set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${${_targetPrefix}_COMPILE_DEFINITIONS})
+ endforeach()
+endfunction()
diff --git a/share/cmake-3.16/Modules/RepositoryInfo.txt.in b/share/cmake-3.17/Modules/RepositoryInfo.txt.in
index df8e322..df8e322 100644
--- a/share/cmake-3.16/Modules/RepositoryInfo.txt.in
+++ b/share/cmake-3.17/Modules/RepositoryInfo.txt.in
diff --git a/share/cmake-3.16/Modules/SelectLibraryConfigurations.cmake b/share/cmake-3.17/Modules/SelectLibraryConfigurations.cmake
index 4c0e9a8..4c0e9a8 100644
--- a/share/cmake-3.16/Modules/SelectLibraryConfigurations.cmake
+++ b/share/cmake-3.17/Modules/SelectLibraryConfigurations.cmake
diff --git a/share/cmake-3.16/Modules/Squish4RunTestCase.bat b/share/cmake-3.17/Modules/Squish4RunTestCase.bat
index c658208..c658208 100644..100755
--- a/share/cmake-3.16/Modules/Squish4RunTestCase.bat
+++ b/share/cmake-3.17/Modules/Squish4RunTestCase.bat
diff --git a/share/cmake-3.16/Modules/Squish4RunTestCase.sh b/share/cmake-3.17/Modules/Squish4RunTestCase.sh
index 39a3907..39a3907 100755..100644
--- a/share/cmake-3.16/Modules/Squish4RunTestCase.sh
+++ b/share/cmake-3.17/Modules/Squish4RunTestCase.sh
diff --git a/share/cmake-3.16/Modules/SquishRunTestCase.bat b/share/cmake-3.17/Modules/SquishRunTestCase.bat
index 5c5d388..5c5d388 100644..100755
--- a/share/cmake-3.16/Modules/SquishRunTestCase.bat
+++ b/share/cmake-3.17/Modules/SquishRunTestCase.bat
diff --git a/share/cmake-3.16/Modules/SquishRunTestCase.sh b/share/cmake-3.17/Modules/SquishRunTestCase.sh
index 409b46a..409b46a 100755..100644
--- a/share/cmake-3.16/Modules/SquishRunTestCase.sh
+++ b/share/cmake-3.17/Modules/SquishRunTestCase.sh
diff --git a/share/cmake-3.16/Modules/SquishTestScript.cmake b/share/cmake-3.17/Modules/SquishTestScript.cmake
index 2a80be5..2a80be5 100644
--- a/share/cmake-3.16/Modules/SquishTestScript.cmake
+++ b/share/cmake-3.17/Modules/SquishTestScript.cmake
diff --git a/share/cmake-3.16/Modules/SystemInformation.cmake b/share/cmake-3.17/Modules/SystemInformation.cmake
index 5ecc39a..5ecc39a 100644
--- a/share/cmake-3.16/Modules/SystemInformation.cmake
+++ b/share/cmake-3.17/Modules/SystemInformation.cmake
diff --git a/share/cmake-3.16/Modules/SystemInformation.in b/share/cmake-3.17/Modules/SystemInformation.in
index f2aef50..f2aef50 100644
--- a/share/cmake-3.16/Modules/SystemInformation.in
+++ b/share/cmake-3.17/Modules/SystemInformation.in
diff --git a/share/cmake-3.17/Modules/TestBigEndian.cmake b/share/cmake-3.17/Modules/TestBigEndian.cmake
new file mode 100644
index 0000000..8a769b7
--- /dev/null
+++ b/share/cmake-3.17/Modules/TestBigEndian.cmake
@@ -0,0 +1,123 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+TestBigEndian
+-------------
+
+Define macro to determine endian type
+
+Check if the system is big endian or little endian
+
+::
+
+ TEST_BIG_ENDIAN(VARIABLE)
+ VARIABLE - variable to store the result to
+#]=======================================================================]
+
+include(CheckTypeSize)
+
+macro(TEST_BIG_ENDIAN VARIABLE)
+ if(NOT DEFINED HAVE_${VARIABLE})
+ message(CHECK_START "Check if the system is big endian")
+ message(CHECK_START "Searching 16 bit integer")
+
+ if(CMAKE_C_COMPILER_LOADED)
+ set(_test_language "C")
+ elseif(CMAKE_CXX_COMPILER_LOADED)
+ set(_test_language "CXX")
+ else()
+ message(FATAL_ERROR "TEST_BIG_ENDIAN needs either C or CXX language enabled")
+ endif()
+
+ CHECK_TYPE_SIZE("unsigned short" CMAKE_SIZEOF_UNSIGNED_SHORT LANGUAGE ${_test_language})
+ if(CMAKE_SIZEOF_UNSIGNED_SHORT EQUAL 2)
+ message(CHECK_PASS "Using unsigned short")
+ set(CMAKE_16BIT_TYPE "unsigned short")
+ else()
+ CHECK_TYPE_SIZE("unsigned int" CMAKE_SIZEOF_UNSIGNED_INT LANGUAGE ${_test_language})
+ if(CMAKE_SIZEOF_UNSIGNED_INT)
+ message(CHECK_PASS "Using unsigned int")
+ set(CMAKE_16BIT_TYPE "unsigned int")
+
+ else()
+
+ CHECK_TYPE_SIZE("unsigned long" CMAKE_SIZEOF_UNSIGNED_LONG LANGUAGE ${_test_language})
+ if(CMAKE_SIZEOF_UNSIGNED_LONG)
+ message(CHECK_PASS "Using unsigned long")
+ set(CMAKE_16BIT_TYPE "unsigned long")
+ else()
+ message(FATAL_ERROR "no suitable type found")
+ endif()
+
+ endif()
+
+ endif()
+
+ if(_test_language STREQUAL "CXX")
+ set(_test_file "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/TestEndianess.cpp")
+ else()
+ set(_test_file "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/TestEndianess.c")
+ endif()
+
+ configure_file("${CMAKE_ROOT}/Modules/TestEndianess.c.in"
+ ${_test_file}
+ @ONLY)
+
+ file(READ ${_test_file} TEST_ENDIANESS_FILE_CONTENT)
+
+ try_compile(HAVE_${VARIABLE}
+ "${CMAKE_BINARY_DIR}"
+ ${_test_file}
+ OUTPUT_VARIABLE OUTPUT
+ COPY_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/TestEndianess.bin" )
+
+ if(HAVE_${VARIABLE})
+
+ file(STRINGS "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/TestEndianess.bin"
+ CMAKE_TEST_ENDIANESS_STRINGS_LE LIMIT_COUNT 1 REGEX "THIS IS LITTLE ENDIAN")
+
+ file(STRINGS "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/TestEndianess.bin"
+ CMAKE_TEST_ENDIANESS_STRINGS_BE LIMIT_COUNT 1 REGEX "THIS IS BIG ENDIAN")
+
+ # on mac, if there are universal binaries built both will be true
+ # return the result depending on the machine on which cmake runs
+ if(CMAKE_TEST_ENDIANESS_STRINGS_BE AND CMAKE_TEST_ENDIANESS_STRINGS_LE)
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES powerpc)
+ set(CMAKE_TEST_ENDIANESS_STRINGS_BE TRUE)
+ set(CMAKE_TEST_ENDIANESS_STRINGS_LE FALSE)
+ else()
+ set(CMAKE_TEST_ENDIANESS_STRINGS_BE FALSE)
+ set(CMAKE_TEST_ENDIANESS_STRINGS_LE TRUE)
+ endif()
+ message(STATUS "TEST_BIG_ENDIAN found different results, consider setting CMAKE_OSX_ARCHITECTURES or CMAKE_TRY_COMPILE_OSX_ARCHITECTURES to one or no architecture !")
+ endif()
+
+ if(CMAKE_TEST_ENDIANESS_STRINGS_LE)
+ set(${VARIABLE} 0 CACHE INTERNAL "Result of TEST_BIG_ENDIAN" FORCE)
+ message(CHECK_PASS "little endian")
+ endif()
+
+ if(CMAKE_TEST_ENDIANESS_STRINGS_BE)
+ set(${VARIABLE} 1 CACHE INTERNAL "Result of TEST_BIG_ENDIAN" FORCE)
+ message(CHECK_PASS "big endian")
+ endif()
+
+ if(NOT CMAKE_TEST_ENDIANESS_STRINGS_BE AND NOT CMAKE_TEST_ENDIANESS_STRINGS_LE)
+ message(CHECK_FAIL "TEST_BIG_ENDIAN found no result!")
+ message(SEND_ERROR "TEST_BIG_ENDIAN found no result!")
+ endif()
+
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the system is big endian passed with the following output:\n${OUTPUT}\nTestEndianess.c:\n${TEST_ENDIANESS_FILE_CONTENT}\n\n")
+
+ else()
+ message(CHECK_FAIL "failed")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the system is big endian failed with the following output:\n${OUTPUT}\nTestEndianess.c:\n${TEST_ENDIANESS_FILE_CONTENT}\n\n")
+ set(${VARIABLE})
+ endif()
+ endif()
+endmacro()
+
+
diff --git a/share/cmake-3.17/Modules/TestCXXAcceptsFlag.cmake b/share/cmake-3.17/Modules/TestCXXAcceptsFlag.cmake
new file mode 100644
index 0000000..ce505f3
--- /dev/null
+++ b/share/cmake-3.17/Modules/TestCXXAcceptsFlag.cmake
@@ -0,0 +1,44 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+TestCXXAcceptsFlag
+------------------
+
+.. deprecated:: 3.0
+
+ See :module:`CheckCXXCompilerFlag`.
+
+Check if the CXX compiler accepts a flag.
+
+.. code-block:: cmake
+
+ CHECK_CXX_ACCEPTS_FLAG(<flags> <variable>)
+
+``<flags>``
+ the flags to try
+``<variable>``
+ variable to store the result
+#]=======================================================================]
+
+macro(CHECK_CXX_ACCEPTS_FLAG FLAGS VARIABLE)
+ if(NOT DEFINED ${VARIABLE})
+ message(CHECK_START "Checking to see if CXX compiler accepts flag ${FLAGS}")
+ try_compile(${VARIABLE}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_ROOT}/Modules/DummyCXXFile.cxx
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${FLAGS}
+ OUTPUT_VARIABLE OUTPUT)
+ if(${VARIABLE})
+ message(CHECK_PASS "yes")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the CXX compiler accepts the flag ${FLAGS} passed with "
+ "the following output:\n${OUTPUT}\n\n")
+ else()
+ message(CHECK_FAIL "no")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the CXX compiler accepts the flag ${FLAGS} failed with "
+ "the following output:\n${OUTPUT}\n\n")
+ endif()
+ endif()
+endmacro()
diff --git a/share/cmake-3.16/Modules/TestEndianess.c.in b/share/cmake-3.17/Modules/TestEndianess.c.in
index c924f78..c924f78 100644
--- a/share/cmake-3.16/Modules/TestEndianess.c.in
+++ b/share/cmake-3.17/Modules/TestEndianess.c.in
diff --git a/share/cmake-3.17/Modules/TestForANSIForScope.cmake b/share/cmake-3.17/Modules/TestForANSIForScope.cmake
new file mode 100644
index 0000000..0f2dc01
--- /dev/null
+++ b/share/cmake-3.17/Modules/TestForANSIForScope.cmake
@@ -0,0 +1,43 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+TestForANSIForScope
+-------------------
+
+Check for ANSI for scope support
+
+Check if the compiler restricts the scope of variables declared in a
+for-init-statement to the loop body.
+
+::
+
+ CMAKE_NO_ANSI_FOR_SCOPE - holds result
+#]=======================================================================]
+
+if(NOT DEFINED CMAKE_ANSI_FOR_SCOPE)
+ message(CHECK_START "Check for ANSI scope")
+ try_compile(CMAKE_ANSI_FOR_SCOPE ${CMAKE_BINARY_DIR}
+ ${CMAKE_ROOT}/Modules/TestForAnsiForScope.cxx
+ OUTPUT_VARIABLE OUTPUT)
+ if (CMAKE_ANSI_FOR_SCOPE)
+ message(CHECK_PASS "found")
+ set (CMAKE_NO_ANSI_FOR_SCOPE 0 CACHE INTERNAL
+ "Does the compiler support ansi for scope.")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the CXX compiler understands ansi for scopes passed with "
+ "the following output:\n${OUTPUT}\n\n")
+ else ()
+ message(CHECK_FAIL "not found")
+ set (CMAKE_NO_ANSI_FOR_SCOPE 1 CACHE INTERNAL
+ "Does the compiler support ansi for scope.")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the CXX compiler understands ansi for scopes failed with "
+ "the following output:\n${OUTPUT}\n\n")
+ endif ()
+endif()
+
+
+
+
+
diff --git a/share/cmake-3.16/Modules/TestForANSIStreamHeaders.cmake b/share/cmake-3.17/Modules/TestForANSIStreamHeaders.cmake
index e532a71..e532a71 100644
--- a/share/cmake-3.16/Modules/TestForANSIStreamHeaders.cmake
+++ b/share/cmake-3.17/Modules/TestForANSIStreamHeaders.cmake
diff --git a/share/cmake-3.16/Modules/TestForANSIStreamHeaders.cxx b/share/cmake-3.17/Modules/TestForANSIStreamHeaders.cxx
index d314d58..d314d58 100644
--- a/share/cmake-3.16/Modules/TestForANSIStreamHeaders.cxx
+++ b/share/cmake-3.17/Modules/TestForANSIStreamHeaders.cxx
diff --git a/share/cmake-3.16/Modules/TestForAnsiForScope.cxx b/share/cmake-3.17/Modules/TestForAnsiForScope.cxx
index 4bc2c67..4bc2c67 100644
--- a/share/cmake-3.16/Modules/TestForAnsiForScope.cxx
+++ b/share/cmake-3.17/Modules/TestForAnsiForScope.cxx
diff --git a/share/cmake-3.17/Modules/TestForSSTREAM.cmake b/share/cmake-3.17/Modules/TestForSSTREAM.cmake
new file mode 100644
index 0000000..545b7ec
--- /dev/null
+++ b/share/cmake-3.17/Modules/TestForSSTREAM.cmake
@@ -0,0 +1,41 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+TestForSSTREAM
+--------------
+
+Test for compiler support of ANSI sstream header
+
+check if the compiler supports the standard ANSI sstream header
+
+::
+
+ CMAKE_NO_ANSI_STRING_STREAM - defined by the results
+#]=======================================================================]
+
+if(NOT DEFINED CMAKE_HAS_ANSI_STRING_STREAM)
+ message(CHECK_START "Check for sstream")
+ try_compile(CMAKE_HAS_ANSI_STRING_STREAM ${CMAKE_BINARY_DIR}
+ ${CMAKE_ROOT}/Modules/TestForSSTREAM.cxx
+ OUTPUT_VARIABLE OUTPUT)
+ if (CMAKE_HAS_ANSI_STRING_STREAM)
+ message(CHECK_PASS "found")
+ set (CMAKE_NO_ANSI_STRING_STREAM 0 CACHE INTERNAL
+ "Does the compiler support sstream")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the CXX compiler has sstream passed with "
+ "the following output:\n${OUTPUT}\n\n")
+ else ()
+ message(CHECK_FAIL "not found")
+ set (CMAKE_NO_ANSI_STRING_STREAM 1 CACHE INTERNAL
+ "Does the compiler support sstream")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the CXX compiler has sstream failed with "
+ "the following output:\n${OUTPUT}\n\n")
+ endif ()
+endif()
+
+
+
+
diff --git a/share/cmake-3.16/Modules/TestForSSTREAM.cxx b/share/cmake-3.17/Modules/TestForSSTREAM.cxx
index 83a75e4..83a75e4 100644
--- a/share/cmake-3.16/Modules/TestForSSTREAM.cxx
+++ b/share/cmake-3.17/Modules/TestForSSTREAM.cxx
diff --git a/share/cmake-3.17/Modules/TestForSTDNamespace.cmake b/share/cmake-3.17/Modules/TestForSTDNamespace.cmake
new file mode 100644
index 0000000..d101c83
--- /dev/null
+++ b/share/cmake-3.17/Modules/TestForSTDNamespace.cmake
@@ -0,0 +1,41 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+TestForSTDNamespace
+-------------------
+
+Test for std:: namespace support
+
+check if the compiler supports std:: on stl classes
+
+::
+
+ CMAKE_NO_STD_NAMESPACE - defined by the results
+#]=======================================================================]
+
+if(NOT DEFINED CMAKE_STD_NAMESPACE)
+ message(CHECK_START "Check for STD namespace")
+ try_compile(CMAKE_STD_NAMESPACE ${CMAKE_BINARY_DIR}
+ ${CMAKE_ROOT}/Modules/TestForSTDNamespace.cxx
+ OUTPUT_VARIABLE OUTPUT)
+ if (CMAKE_STD_NAMESPACE)
+ message(CHECK_PASS "found")
+ set (CMAKE_NO_STD_NAMESPACE 0 CACHE INTERNAL
+ "Does the compiler support std::.")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining if the CXX compiler has std namespace passed with "
+ "the following output:\n${OUTPUT}\n\n")
+ else ()
+ message(CHECK_FAIL "not found")
+ set (CMAKE_NO_STD_NAMESPACE 1 CACHE INTERNAL
+ "Does the compiler support std::.")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining if the CXX compiler has std namespace failed with "
+ "the following output:\n${OUTPUT}\n\n")
+ endif ()
+endif()
+
+
+
+
diff --git a/share/cmake-3.16/Modules/TestForSTDNamespace.cxx b/share/cmake-3.17/Modules/TestForSTDNamespace.cxx
index 62951ff..62951ff 100644
--- a/share/cmake-3.16/Modules/TestForSTDNamespace.cxx
+++ b/share/cmake-3.17/Modules/TestForSTDNamespace.cxx
diff --git a/share/cmake-3.16/Modules/UseEcos.cmake b/share/cmake-3.17/Modules/UseEcos.cmake
index 60324b1..60324b1 100644
--- a/share/cmake-3.16/Modules/UseEcos.cmake
+++ b/share/cmake-3.17/Modules/UseEcos.cmake
diff --git a/share/cmake-3.17/Modules/UseJava.cmake b/share/cmake-3.17/Modules/UseJava.cmake
new file mode 100644
index 0000000..b668b9e
--- /dev/null
+++ b/share/cmake-3.17/Modules/UseJava.cmake
@@ -0,0 +1,1425 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+UseJava
+-------
+
+Use Module for Java
+
+This file provides functions for Java. It is assumed that
+:module:`FindJava` has already been loaded. See :module:`FindJava` for
+information on how to load Java into your CMake project.
+
+Creating And Installing JARs
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ add_jar(<target_name>
+ [SOURCES] <source1> [<source2>...] [<resource1>...]
+ [INCLUDE_JARS <jar1> [<jar2>...]]
+ [ENTRY_POINT <entry>]
+ [VERSION <version>]
+ [OUTPUT_NAME <name>]
+ [OUTPUT_DIR <dir>]
+ [GENERATE_NATIVE_HEADERS <target> [DESTINATION <dir>]]
+ )
+
+This command creates a ``<target_name>.jar``. It compiles the given
+``<source>`` files and adds the given ``<resource>`` files to
+the jar file. Source files can be java files or listing files
+(prefixed by ``@``). If only resource files are given then just a jar file
+is created. The list of ``INCLUDE_JARS`` are added to the classpath when
+compiling the java sources and also to the dependencies of the target.
+``INCLUDE_JARS`` also accepts other target names created by ``add_jar()``.
+For backwards compatibility, jar files listed as sources are ignored (as
+they have been since the first version of this module).
+
+The default ``OUTPUT_DIR`` can also be changed by setting the variable
+``CMAKE_JAVA_TARGET_OUTPUT_DIR``.
+
+Optionally, using option ``GENERATE_NATIVE_HEADERS``, native header files can
+be generated for methods declared as native. These files provide the
+connective glue that allow your Java and C code to interact. An INTERFACE
+target will be created for an easy usage of generated files. Sub-option
+``DESTINATION`` can be used to specify the output directory for generated
+header files.
+
+``GENERATE_NATIVE_HEADERS`` option requires, at least, version 1.8 of the JDK.
+
+The ``add_jar()`` function sets the following target properties on
+``<target_name>``:
+
+``INSTALL_FILES``
+ The files which should be installed. This is used by ``install_jar()``.
+``JNI_SYMLINK``
+ The JNI symlink which should be installed. This is used by
+ ``install_jni_symlink()``.
+``JAR_FILE``
+ The location of the jar file so that you can include it.
+``CLASSDIR``
+ The directory where the class files can be found. For example to use them
+ with ``javah``.
+
+.. code-block:: cmake
+
+ install_jar(<target_name> <destination>)
+ install_jar(<target_name> DESTINATION <destination> [COMPONENT <component>])
+
+This command installs the ``<target_name>`` files to the given
+``<destination>``. It should be called in the same scope as ``add_jar()`` or
+it will fail.
+
+The ``install_jar()`` function sets the ``INSTALL_DESTINATION`` target
+property on jars so installed. This property holds the ``<destination>`` as
+described above, and is used by ``install_jar_exports()``. You can get this
+information with :command:`get_property` and the ``INSTALL_DESTINATION``
+property key.
+
+.. code-block:: cmake
+
+ install_jni_symlink(<target_name> <destination>)
+ install_jni_symlink(<target_name> DESTINATION <destination> [COMPONENT <component>])
+
+This command installs the ``<target_name>`` JNI symlinks to the given
+``<destination>``. It should be called in the same scope as ``add_jar()`` or
+it will fail.
+
+.. code-block:: cmake
+
+ install_jar_exports(TARGETS <jars>...
+ [NAMESPACE <namespace>]
+ FILE <filename>
+ DESTINATION <destination> [COMPONENT <component>])
+
+This command installs a target export file ``<filename>`` for the named jar
+targets to the given ``<destination>`` directory. Its function is similar to
+that of :command:`install(EXPORTS)`.
+
+.. code-block:: cmake
+
+ export_jars(TARGETS <jars>...
+ [NAMESPACE <namespace>]
+ FILE <filename>)
+
+This command writes a target export file ``<filename>`` for the named ``<jars>``
+targets. Its function is similar to that of :command:`export`.
+
+
+Examples
+""""""""
+
+To add compile flags to the target you can set these flags with the following
+variable:
+
+.. code-block:: cmake
+
+ set(CMAKE_JAVA_COMPILE_FLAGS -nowarn)
+
+
+To add a path or a jar file to the class path you can do this with the
+``CMAKE_JAVA_INCLUDE_PATH`` variable.
+
+.. code-block:: cmake
+
+ set(CMAKE_JAVA_INCLUDE_PATH /usr/share/java/shibboleet.jar)
+
+To use a different output name for the target you can set it with:
+
+.. code-block:: cmake
+
+ add_jar(foobar foobar.java OUTPUT_NAME shibboleet.jar)
+
+To use a different output directory than ``CMAKE_CURRENT_BINARY_DIR`` you can
+set it with:
+
+.. code-block:: cmake
+
+ add_jar(foobar foobar.java OUTPUT_DIR ${PROJECT_BINARY_DIR}/bin)
+
+To define an entry point in your jar you can set it with the ``ENTRY_POINT``
+named argument:
+
+.. code-block:: cmake
+
+ add_jar(example ENTRY_POINT com/examples/MyProject/Main)
+
+To define a custom manifest for the jar, you can set it with the ``MANIFEST``
+named argument:
+
+.. code-block:: cmake
+
+ add_jar(example MANIFEST /path/to/manifest)
+
+To add a version to the target output name you can set it using the ``VERSION``
+named argument to ``add_jar()``. The following example will create a jar file
+with the name ``shibboleet-1.0.0.jar`` and will create a symlink
+``shibboleet.jar`` pointing to the jar with the version information.
+
+.. code-block:: cmake
+
+ add_jar(shibboleet shibbotleet.java VERSION 1.2.0)
+
+If the target is a JNI library, utilize the following commands to
+create a JNI symbolic link:
+
+.. code-block:: cmake
+
+ set(CMAKE_JNI_TARGET TRUE)
+ add_jar(shibboleet shibbotleet.java VERSION 1.2.0)
+ install_jar(shibboleet ${LIB_INSTALL_DIR}/shibboleet)
+ install_jni_symlink(shibboleet ${JAVA_LIB_INSTALL_DIR})
+
+If a single target needs to produce more than one jar from its
+java source code, to prevent the accumulation of duplicate class
+files in subsequent jars, set/reset ``CMAKE_JAR_CLASSES_PREFIX`` prior
+to calling the ``add_jar()`` function:
+
+.. code-block:: cmake
+
+ set(CMAKE_JAR_CLASSES_PREFIX com/redhat/foo)
+ add_jar(foo foo.java)
+
+ set(CMAKE_JAR_CLASSES_PREFIX com/redhat/bar)
+ add_jar(bar bar.java)
+
+For an optimum usage of option ``GENERATE_NATIVE_HEADERS``, it is recommended to
+include module JNI before any call to ``add_jar()``. The produced target for
+native headers can then be used to compile C/C++ sources with the
+:command:`target_link_libraries` command.
+
+.. code-block:: cmake
+
+ find_package(JNI)
+ add_jar(foo foo.java GENERATE_NATIVE_HEADERS foo-native)
+ add_library(bar bar.cpp)
+ target_link_libraries(bar PRIVATE foo-native)
+
+
+Finding JARs
+^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ find_jar(<VAR>
+ <name> | NAMES <name1> [<name2>...]
+ [PATHS <path1> [<path2>... ENV <var>]]
+ [VERSIONS <version1> [<version2>]]
+ [DOC "cache documentation string"]
+ )
+
+This command is used to find a full path to the named jar. A cache
+entry named by ``<VAR>`` is created to store the result of this command.
+If the full path to a jar is found the result is stored in the
+variable and the search will not repeated unless the variable is
+cleared. If nothing is found, the result will be ``<VAR>-NOTFOUND``, and
+the search will be attempted again next time ``find_jar()`` is invoked with
+the same variable. The name of the full path to a file that is
+searched for is specified by the names listed after ``NAMES`` argument.
+Additional search locations can be specified after the ``PATHS`` argument.
+If you require special a version of a jar file you can specify it with
+the ``VERSIONS`` argument. The argument after ``DOC`` will be used for the
+documentation string in the cache.
+
+
+Javadoc
+^^^^^^^
+
+The ``create_javadoc()`` command can be used to create java documentation
+based on files or packages. For more details please read the javadoc manpage.
+
+There are two main signatures for ``create_javadoc()``. The first signature
+works with package names on a path with source files.
+
+.. code-block:: cmake
+
+ create_javadoc(<VAR>
+ PACKAGES <pkg1> [<pkg2>...]
+ [SOURCEPATH <sourcepath>]
+ [CLASSPATH <classpath>]
+ [INSTALLPATH <install path>]
+ [DOCTITLE "the documentation title"]
+ [WINDOWTITLE "the title of the document"]
+ [AUTHOR TRUE|FALSE]
+ [USE TRUE|FALSE]
+ [VERSION TRUE|FALSE]
+ )
+
+For example:
+
+.. code-block:: cmake
+
+ create_javadoc(my_example_doc
+ PACKAGES com.example.foo com.example.bar
+ SOURCEPATH "${CMAKE_CURRENT_SOURCE_DIR}"
+ CLASSPATH ${CMAKE_JAVA_INCLUDE_PATH}
+ WINDOWTITLE "My example"
+ DOCTITLE "<h1>My example</h1>"
+ AUTHOR TRUE
+ USE TRUE
+ VERSION TRUE
+ )
+
+The second signature for ``create_javadoc()`` works on a given list of
+files.
+
+.. code-block:: cmake
+
+ create_javadoc(<VAR>
+ FILES <file1> [<file2>...]
+ [CLASSPATH <classpath>]
+ [INSTALLPATH <install path>]
+ [DOCTITLE "the documentation title"]
+ [WINDOWTITLE "the title of the document"]
+ [AUTHOR TRUE|FALSE]
+ [USE TRUE|FALSE]
+ [VERSION TRUE|FALSE]
+ )
+
+For example:
+
+.. code-block:: cmake
+
+ create_javadoc(my_example_doc
+ FILES ${example_SRCS}
+ CLASSPATH ${CMAKE_JAVA_INCLUDE_PATH}
+ WINDOWTITLE "My example"
+ DOCTITLE "<h1>My example</h1>"
+ AUTHOR TRUE
+ USE TRUE
+ VERSION TRUE
+ )
+
+Both signatures share most of the options. These options are the same
+as what you can find in the javadoc manpage. Please look at the
+manpage for ``CLASSPATH``, ``DOCTITLE``, ``WINDOWTITLE``, ``AUTHOR``, ``USE``
+and ``VERSION``.
+
+If you don't set the ``INSTALLPATH``, then by default the documentation will
+be installed to :
+
+::
+
+ ${CMAKE_INSTALL_PREFIX}/share/javadoc/<VAR>
+
+
+Header Generation
+^^^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ create_javah(TARGET <target> | GENERATED_FILES <VAR>
+ CLASSES <class>...
+ [CLASSPATH <classpath>...]
+ [DEPENDS <depend>...]
+ [OUTPUT_NAME <path>|OUTPUT_DIR <path>]
+ )
+
+Create C header files from java classes. These files provide the connective glue
+that allow your Java and C code to interact.
+
+.. deprecated:: 3.11
+
+.. note::
+
+ This command will no longer be supported starting with version 10 of the JDK
+ due to the `suppression of javah tool <http://openjdk.java.net/jeps/313>`_.
+ The ``add_jar(GENERATE_NATIVE_HEADERS)`` command should be used instead.
+
+There are two main signatures for ``create_javah()``. The first signature
+returns generated files through variable specified by the ``GENERATED_FILES``
+option. For example:
+
+.. code-block:: cmake
+
+ create_javah(GENERATED_FILES files_headers
+ CLASSES org.cmake.HelloWorld
+ CLASSPATH hello.jar
+ )
+
+The second signature for ``create_javah()`` creates a target which encapsulates
+header files generation. E.g.
+
+.. code-block:: cmake
+
+ create_javah(TARGET target_headers
+ CLASSES org.cmake.HelloWorld
+ CLASSPATH hello.jar
+ )
+
+Both signatures share same options.
+
+``CLASSES <class>...``
+ Specifies Java classes used to generate headers.
+
+``CLASSPATH <classpath>...``
+ Specifies various paths to look up classes. Here .class files, jar files or
+ targets created by command add_jar can be used.
+
+``DEPENDS <depend>...``
+ Targets on which the javah target depends.
+
+``OUTPUT_NAME <path>``
+ Concatenates the resulting header files for all the classes listed by option
+ ``CLASSES`` into ``<path>``. Same behavior as option ``-o`` of javah tool.
+
+``OUTPUT_DIR <path>``
+ Sets the directory where the header files will be generated. Same behavior
+ as option ``-d`` of javah tool. If not specified,
+ :variable:`CMAKE_CURRENT_BINARY_DIR` is used as the output directory.
+#]=======================================================================]
+
+function (__java_copy_file src dest comment)
+ add_custom_command(
+ OUTPUT ${dest}
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ARGS ${src}
+ ${dest}
+ DEPENDS ${src}
+ COMMENT ${comment})
+endfunction ()
+
+function(__java_lcat VAR)
+ foreach(_line IN LISTS ARGN)
+ string(APPEND ${VAR} "${_line}\n")
+ endforeach()
+
+ set(${VAR} "${${VAR}}" PARENT_SCOPE)
+endfunction()
+
+function(__java_export_jar VAR TARGET PATH)
+ get_target_property(_jarpath ${TARGET} JAR_FILE)
+ get_filename_component(_jarname ${_jarpath} NAME)
+ set(_target "${_jar_NAMESPACE}${TARGET}")
+ __java_lcat(${VAR}
+ "# Create imported target ${_target}"
+ "add_library(${_target} IMPORTED STATIC)"
+ "set_target_properties(${_target} PROPERTIES"
+ " IMPORTED_LOCATION \"${PATH}/${_jarname}\""
+ " JAR_FILE \"${PATH}/${_jarname}\")"
+ ""
+ )
+ set(${VAR} "${${VAR}}" PARENT_SCOPE)
+endfunction()
+
+# define helper scripts
+set(_JAVA_EXPORT_TARGETS_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/javaTargets.cmake.in)
+set(_JAVA_SYMLINK_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/UseJavaSymlinks.cmake)
+
+if (CMAKE_HOST_WIN32 AND NOT CYGWIN AND CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
+ set(_UseJava_PATH_SEP "$<SEMICOLON>")
+else ()
+ set(_UseJava_PATH_SEP ":")
+endif()
+
+function(add_jar _TARGET_NAME)
+
+ cmake_parse_arguments(_add_jar
+ ""
+ "VERSION;OUTPUT_DIR;OUTPUT_NAME;ENTRY_POINT;MANIFEST"
+ "SOURCES;INCLUDE_JARS;GENERATE_NATIVE_HEADERS"
+ ${ARGN}
+ )
+
+ # In CMake < 2.8.12, add_jar used variables which were set prior to calling
+ # add_jar for customizing the behavior of add_jar. In order to be backwards
+ # compatible, check if any of those variables are set, and use them to
+ # initialize values of the named arguments. (Giving the corresponding named
+ # argument will override the value set here.)
+ #
+ # New features should use named arguments only.
+ if(NOT DEFINED _add_jar_VERSION AND DEFINED CMAKE_JAVA_TARGET_VERSION)
+ set(_add_jar_VERSION "${CMAKE_JAVA_TARGET_VERSION}")
+ endif()
+ if(NOT DEFINED _add_jar_OUTPUT_DIR AND DEFINED CMAKE_JAVA_TARGET_OUTPUT_DIR)
+ set(_add_jar_OUTPUT_DIR "${CMAKE_JAVA_TARGET_OUTPUT_DIR}")
+ endif()
+ if(NOT DEFINED _add_jar_OUTPUT_NAME AND DEFINED CMAKE_JAVA_TARGET_OUTPUT_NAME)
+ set(_add_jar_OUTPUT_NAME "${CMAKE_JAVA_TARGET_OUTPUT_NAME}")
+ # reset
+ set(CMAKE_JAVA_TARGET_OUTPUT_NAME)
+ endif()
+ if(NOT DEFINED _add_jar_ENTRY_POINT AND DEFINED CMAKE_JAVA_JAR_ENTRY_POINT)
+ set(_add_jar_ENTRY_POINT "${CMAKE_JAVA_JAR_ENTRY_POINT}")
+ endif()
+
+ set(_JAVA_SOURCE_FILES ${_add_jar_SOURCES} ${_add_jar_UNPARSED_ARGUMENTS})
+
+ if (NOT DEFINED _add_jar_OUTPUT_DIR)
+ set(_add_jar_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+ else()
+ get_filename_component(_add_jar_OUTPUT_DIR ${_add_jar_OUTPUT_DIR} ABSOLUTE)
+ endif()
+ # ensure output directory exists
+ file (MAKE_DIRECTORY "${_add_jar_OUTPUT_DIR}")
+
+ if (_add_jar_ENTRY_POINT)
+ set(_ENTRY_POINT_OPTION e)
+ set(_ENTRY_POINT_VALUE ${_add_jar_ENTRY_POINT})
+ endif ()
+
+ if (_add_jar_MANIFEST)
+ set(_MANIFEST_OPTION m)
+ get_filename_component (_MANIFEST_VALUE "${_add_jar_MANIFEST}" ABSOLUTE)
+ endif ()
+
+ unset (_GENERATE_NATIVE_HEADERS)
+ if (_add_jar_GENERATE_NATIVE_HEADERS)
+ # Raise an error if JDK version is less than 1.8 because javac -h is not supported
+ # by earlier versions.
+ if (Java_VERSION VERSION_LESS 1.8)
+ message (FATAL_ERROR "ADD_JAR: GENERATE_NATIVE_HEADERS is not supported with this version of Java.")
+ endif()
+ cmake_parse_arguments (_add_jar_GENERATE_NATIVE_HEADERS "" "DESTINATION" "" ${_add_jar_GENERATE_NATIVE_HEADERS})
+ if (NOT _add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS)
+ message (FATAL_ERROR "ADD_JAR: GENERATE_NATIVE_HEADERS: missing required argument.")
+ endif()
+ list (LENGTH _add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS length)
+ if (length GREATER 1)
+ list (REMOVE_AT _add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS 0)
+ message (FATAL_ERROR "ADD_JAR: GENERATE_NATIVE_HEADERS: ${_add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS}: unexpected argument(s).")
+ endif()
+ if (NOT _add_jar_GENERATE_NATIVE_HEADERS_DESTINATION)
+ set (_add_jar_GENERATE_NATIVE_HEADERS_DESTINATION "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_TARGET_NAME}.dir/native_headers")
+ endif()
+
+ set (_GENERATE_NATIVE_HEADERS_TARGET ${_add_jar_GENERATE_NATIVE_HEADERS_UNPARSED_ARGUMENTS})
+ set (_GENERATE_NATIVE_HEADERS_OUTPUT_DIR "${_add_jar_GENERATE_NATIVE_HEADERS_DESTINATION}")
+ set (_GENERATE_NATIVE_HEADERS -h "${_GENERATE_NATIVE_HEADERS_OUTPUT_DIR}")
+ endif()
+
+ if (LIBRARY_OUTPUT_PATH)
+ set(CMAKE_JAVA_LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH})
+ else ()
+ set(CMAKE_JAVA_LIBRARY_OUTPUT_PATH ${_add_jar_OUTPUT_DIR})
+ endif ()
+
+ set(CMAKE_JAVA_INCLUDE_PATH
+ ${CMAKE_JAVA_INCLUDE_PATH}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_JAVA_OBJECT_OUTPUT_PATH}
+ ${CMAKE_JAVA_LIBRARY_OUTPUT_PATH}
+ )
+
+ foreach (JAVA_INCLUDE_DIR IN LISTS CMAKE_JAVA_INCLUDE_PATH)
+ string(APPEND CMAKE_JAVA_INCLUDE_PATH_FINAL "${_UseJava_PATH_SEP}${JAVA_INCLUDE_DIR}")
+ endforeach()
+
+ set(CMAKE_JAVA_CLASS_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_TARGET_NAME}.dir")
+
+ set(_JAVA_TARGET_OUTPUT_NAME "${_TARGET_NAME}.jar")
+ if (_add_jar_OUTPUT_NAME AND _add_jar_VERSION)
+ set(_JAVA_TARGET_OUTPUT_NAME "${_add_jar_OUTPUT_NAME}-${_add_jar_VERSION}.jar")
+ set(_JAVA_TARGET_OUTPUT_LINK "${_add_jar_OUTPUT_NAME}.jar")
+ elseif (_add_jar_VERSION)
+ set(_JAVA_TARGET_OUTPUT_NAME "${_TARGET_NAME}-${_add_jar_VERSION}.jar")
+ set(_JAVA_TARGET_OUTPUT_LINK "${_TARGET_NAME}.jar")
+ elseif (_add_jar_OUTPUT_NAME)
+ set(_JAVA_TARGET_OUTPUT_NAME "${_add_jar_OUTPUT_NAME}.jar")
+ endif ()
+
+ set(_JAVA_CLASS_FILES)
+ set(_JAVA_COMPILE_FILES)
+ set(_JAVA_COMPILE_FILELISTS)
+ set(_JAVA_DEPENDS)
+ set(_JAVA_COMPILE_DEPENDS)
+ set(_JAVA_RESOURCE_FILES)
+ set(_JAVA_RESOURCE_FILES_RELATIVE)
+ foreach(_JAVA_SOURCE_FILE IN LISTS _JAVA_SOURCE_FILES)
+ get_filename_component(_JAVA_EXT ${_JAVA_SOURCE_FILE} EXT)
+ get_filename_component(_JAVA_FILE ${_JAVA_SOURCE_FILE} NAME_WE)
+ get_filename_component(_JAVA_PATH ${_JAVA_SOURCE_FILE} PATH)
+ get_filename_component(_JAVA_FULL ${_JAVA_SOURCE_FILE} ABSOLUTE)
+
+ if (_JAVA_SOURCE_FILE MATCHES "^@(.+)$")
+ get_filename_component(_JAVA_FULL ${CMAKE_MATCH_1} ABSOLUTE)
+ list(APPEND _JAVA_COMPILE_FILELISTS ${_JAVA_FULL})
+
+ elseif (_JAVA_EXT MATCHES ".java")
+ file(RELATIVE_PATH _JAVA_REL_BINARY_PATH ${CMAKE_CURRENT_BINARY_DIR} ${_JAVA_FULL})
+ file(RELATIVE_PATH _JAVA_REL_SOURCE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${_JAVA_FULL})
+ string(LENGTH ${_JAVA_REL_BINARY_PATH} _BIN_LEN)
+ string(LENGTH ${_JAVA_REL_SOURCE_PATH} _SRC_LEN)
+ if (_BIN_LEN LESS _SRC_LEN)
+ set(_JAVA_REL_PATH ${_JAVA_REL_BINARY_PATH})
+ else ()
+ set(_JAVA_REL_PATH ${_JAVA_REL_SOURCE_PATH})
+ endif ()
+ get_filename_component(_JAVA_REL_PATH ${_JAVA_REL_PATH} PATH)
+
+ list(APPEND _JAVA_COMPILE_FILES ${_JAVA_SOURCE_FILE})
+ set(_JAVA_CLASS_FILE "${CMAKE_JAVA_CLASS_OUTPUT_PATH}/${_JAVA_REL_PATH}/${_JAVA_FILE}.class")
+ set(_JAVA_CLASS_FILES ${_JAVA_CLASS_FILES} ${_JAVA_CLASS_FILE})
+
+ elseif (_JAVA_EXT MATCHES ".jar"
+ OR _JAVA_EXT MATCHES ".war"
+ OR _JAVA_EXT MATCHES ".ear"
+ OR _JAVA_EXT MATCHES ".sar")
+ # Ignored for backward compatibility
+
+ elseif (_JAVA_EXT STREQUAL "")
+ list(APPEND CMAKE_JAVA_INCLUDE_PATH ${JAVA_JAR_TARGET_${_JAVA_SOURCE_FILE}} ${JAVA_JAR_TARGET_${_JAVA_SOURCE_FILE}_CLASSPATH})
+ list(APPEND _JAVA_DEPENDS ${JAVA_JAR_TARGET_${_JAVA_SOURCE_FILE}})
+
+ else ()
+ __java_copy_file(${CMAKE_CURRENT_SOURCE_DIR}/${_JAVA_SOURCE_FILE}
+ ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/${_JAVA_SOURCE_FILE}
+ "Copying ${_JAVA_SOURCE_FILE} to the build directory")
+ list(APPEND _JAVA_RESOURCE_FILES ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/${_JAVA_SOURCE_FILE})
+ list(APPEND _JAVA_RESOURCE_FILES_RELATIVE ${_JAVA_SOURCE_FILE})
+ endif ()
+ endforeach()
+
+ foreach(_JAVA_INCLUDE_JAR IN LISTS _add_jar_INCLUDE_JARS)
+ if (TARGET ${_JAVA_INCLUDE_JAR})
+ get_target_property(_JAVA_JAR_PATH ${_JAVA_INCLUDE_JAR} JAR_FILE)
+ if (_JAVA_JAR_PATH)
+ string(APPEND CMAKE_JAVA_INCLUDE_PATH_FINAL "${_UseJava_PATH_SEP}${_JAVA_JAR_PATH}")
+ list(APPEND CMAKE_JAVA_INCLUDE_PATH ${_JAVA_JAR_PATH})
+ list(APPEND _JAVA_DEPENDS ${_JAVA_INCLUDE_JAR})
+ list(APPEND _JAVA_COMPILE_DEPENDS ${_JAVA_JAR_PATH})
+ else ()
+ message(SEND_ERROR "add_jar: INCLUDE_JARS target ${_JAVA_INCLUDE_JAR} is not a jar")
+ endif ()
+ else ()
+ string(APPEND CMAKE_JAVA_INCLUDE_PATH_FINAL "${_UseJava_PATH_SEP}${_JAVA_INCLUDE_JAR}")
+ list(APPEND CMAKE_JAVA_INCLUDE_PATH "${_JAVA_INCLUDE_JAR}")
+ list(APPEND _JAVA_DEPENDS "${_JAVA_INCLUDE_JAR}")
+ list(APPEND _JAVA_COMPILE_DEPENDS "${_JAVA_INCLUDE_JAR}")
+ endif ()
+ endforeach()
+
+ if (_JAVA_COMPILE_FILES OR _JAVA_COMPILE_FILELISTS)
+ set (_JAVA_SOURCES_FILELISTS)
+
+ if (_JAVA_COMPILE_FILES)
+ # Create the list of files to compile.
+ set(_JAVA_SOURCES_FILE ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_sources)
+ string(REPLACE ";" "\"\n\"" _JAVA_COMPILE_STRING "\"${_JAVA_COMPILE_FILES}\"")
+ file(WRITE ${_JAVA_SOURCES_FILE} ${_JAVA_COMPILE_STRING})
+ list (APPEND _JAVA_SOURCES_FILELISTS "@${_JAVA_SOURCES_FILE}")
+ endif()
+ if (_JAVA_COMPILE_FILELISTS)
+ foreach (_JAVA_FILELIST IN LISTS _JAVA_COMPILE_FILELISTS)
+ list (APPEND _JAVA_SOURCES_FILELISTS "@${_JAVA_FILELIST}")
+ endforeach()
+ endif()
+
+ # Compile the java files and create a list of class files
+ add_custom_command(
+ # NOTE: this command generates an artificial dependency file
+ OUTPUT ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
+ COMMAND ${Java_JAVAC_EXECUTABLE}
+ ${CMAKE_JAVA_COMPILE_FLAGS}
+ -classpath "${CMAKE_JAVA_INCLUDE_PATH_FINAL}"
+ -d ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
+ ${_GENERATE_NATIVE_HEADERS}
+ ${_JAVA_SOURCES_FILELISTS}
+ COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
+ DEPENDS ${_JAVA_COMPILE_FILES} ${_JAVA_COMPILE_FILELISTS} ${_JAVA_COMPILE_DEPENDS}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "Building Java objects for ${_TARGET_NAME}.jar"
+ )
+ add_custom_command(
+ OUTPUT ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
+ COMMAND ${CMAKE_COMMAND}
+ -DCMAKE_JAVA_CLASS_OUTPUT_PATH=${CMAKE_JAVA_CLASS_OUTPUT_PATH}
+ -DCMAKE_JAR_CLASSES_PREFIX="${CMAKE_JAR_CLASSES_PREFIX}"
+ -P ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/UseJavaClassFilelist.cmake
+ DEPENDS ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_compiled_${_TARGET_NAME}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+ else ()
+ # create an empty java_class_filelist
+ if (NOT EXISTS ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist)
+ file(WRITE ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist "")
+ endif()
+ endif ()
+
+ # create the jar file
+ set(_JAVA_JAR_OUTPUT_PATH
+ "${_add_jar_OUTPUT_DIR}/${_JAVA_TARGET_OUTPUT_NAME}")
+ if (CMAKE_JNI_TARGET)
+ add_custom_command(
+ OUTPUT ${_JAVA_JAR_OUTPUT_PATH}
+ COMMAND ${Java_JAR_EXECUTABLE}
+ -cf${_ENTRY_POINT_OPTION}${_MANIFEST_OPTION} ${_JAVA_JAR_OUTPUT_PATH} ${_ENTRY_POINT_VALUE} ${_MANIFEST_VALUE}
+ ${_JAVA_RESOURCE_FILES_RELATIVE} @java_class_filelist
+ COMMAND ${CMAKE_COMMAND}
+ -D_JAVA_TARGET_DIR=${_add_jar_OUTPUT_DIR}
+ -D_JAVA_TARGET_OUTPUT_NAME=${_JAVA_TARGET_OUTPUT_NAME}
+ -D_JAVA_TARGET_OUTPUT_LINK=${_JAVA_TARGET_OUTPUT_LINK}
+ -P ${_JAVA_SYMLINK_SCRIPT}
+ COMMAND ${CMAKE_COMMAND}
+ -D_JAVA_TARGET_DIR=${_add_jar_OUTPUT_DIR}
+ -D_JAVA_TARGET_OUTPUT_NAME=${_JAVA_JAR_OUTPUT_PATH}
+ -D_JAVA_TARGET_OUTPUT_LINK=${_JAVA_TARGET_OUTPUT_LINK}
+ -P ${_JAVA_SYMLINK_SCRIPT}
+ DEPENDS ${_JAVA_RESOURCE_FILES} ${_JAVA_DEPENDS} ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
+ WORKING_DIRECTORY ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
+ COMMENT "Creating Java archive ${_JAVA_TARGET_OUTPUT_NAME}"
+ )
+ else ()
+ add_custom_command(
+ OUTPUT ${_JAVA_JAR_OUTPUT_PATH}
+ COMMAND ${Java_JAR_EXECUTABLE}
+ -cf${_ENTRY_POINT_OPTION}${_MANIFEST_OPTION} ${_JAVA_JAR_OUTPUT_PATH} ${_ENTRY_POINT_VALUE} ${_MANIFEST_VALUE}
+ ${_JAVA_RESOURCE_FILES_RELATIVE} @java_class_filelist
+ COMMAND ${CMAKE_COMMAND}
+ -D_JAVA_TARGET_DIR=${_add_jar_OUTPUT_DIR}
+ -D_JAVA_TARGET_OUTPUT_NAME=${_JAVA_TARGET_OUTPUT_NAME}
+ -D_JAVA_TARGET_OUTPUT_LINK=${_JAVA_TARGET_OUTPUT_LINK}
+ -P ${_JAVA_SYMLINK_SCRIPT}
+ WORKING_DIRECTORY ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
+ DEPENDS ${_JAVA_RESOURCE_FILES} ${_JAVA_DEPENDS} ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist
+ COMMENT "Creating Java archive ${_JAVA_TARGET_OUTPUT_NAME}"
+ )
+ endif ()
+
+ # Add the target and make sure we have the latest resource files.
+ add_custom_target(${_TARGET_NAME} ALL DEPENDS ${_JAVA_JAR_OUTPUT_PATH})
+
+ set_property(
+ TARGET
+ ${_TARGET_NAME}
+ PROPERTY
+ INSTALL_FILES
+ ${_JAVA_JAR_OUTPUT_PATH}
+ )
+
+ if (_JAVA_TARGET_OUTPUT_LINK)
+ set_property(
+ TARGET
+ ${_TARGET_NAME}
+ PROPERTY
+ INSTALL_FILES
+ ${_JAVA_JAR_OUTPUT_PATH}
+ ${_add_jar_OUTPUT_DIR}/${_JAVA_TARGET_OUTPUT_LINK}
+ )
+
+ if (CMAKE_JNI_TARGET)
+ set_property(
+ TARGET
+ ${_TARGET_NAME}
+ PROPERTY
+ JNI_SYMLINK
+ ${_add_jar_OUTPUT_DIR}/${_JAVA_TARGET_OUTPUT_LINK}
+ )
+ endif ()
+ endif ()
+
+ set_property(
+ TARGET
+ ${_TARGET_NAME}
+ PROPERTY
+ JAR_FILE
+ ${_JAVA_JAR_OUTPUT_PATH}
+ )
+
+ set_property(
+ TARGET
+ ${_TARGET_NAME}
+ PROPERTY
+ CLASSDIR
+ ${CMAKE_JAVA_CLASS_OUTPUT_PATH}
+ )
+
+ if (_GENERATE_NATIVE_HEADERS)
+ # create an INTERFACE library encapsulating include directory for generated headers
+ add_library (${_GENERATE_NATIVE_HEADERS_TARGET} INTERFACE)
+ target_include_directories (${_GENERATE_NATIVE_HEADERS_TARGET} INTERFACE
+ "${_GENERATE_NATIVE_HEADERS_OUTPUT_DIR}"
+ ${JNI_INCLUDE_DIRS})
+ # this INTERFACE library depends on jar generation
+ add_dependencies (${_GENERATE_NATIVE_HEADERS_TARGET} ${_TARGET_NAME})
+
+ set_property (DIRECTORY APPEND PROPERTY ADDITIONAL_CLEAN_FILES
+ "${_GENERATE_NATIVE_HEADERS_OUTPUT_DIR}")
+ endif()
+endfunction()
+
+function(INSTALL_JAR _TARGET_NAME)
+ if (ARGC EQUAL 2)
+ set (_DESTINATION ${ARGV1})
+ else()
+ cmake_parse_arguments(_install_jar
+ ""
+ "DESTINATION;COMPONENT"
+ ""
+ ${ARGN})
+ if (_install_jar_DESTINATION)
+ set (_DESTINATION ${_install_jar_DESTINATION})
+ else()
+ message(SEND_ERROR "install_jar: ${_TARGET_NAME}: DESTINATION must be specified.")
+ endif()
+
+ if (_install_jar_COMPONENT)
+ set (_COMPONENT COMPONENT ${_install_jar_COMPONENT})
+ endif()
+ endif()
+
+ get_property(__FILES
+ TARGET
+ ${_TARGET_NAME}
+ PROPERTY
+ INSTALL_FILES
+ )
+ set_property(
+ TARGET
+ ${_TARGET_NAME}
+ PROPERTY
+ INSTALL_DESTINATION
+ ${_DESTINATION}
+ )
+
+ if (__FILES)
+ install(
+ FILES
+ ${__FILES}
+ DESTINATION
+ ${_DESTINATION}
+ ${_COMPONENT}
+ )
+ else ()
+ message(SEND_ERROR "install_jar: The target ${_TARGET_NAME} is not known in this scope.")
+ endif ()
+endfunction()
+
+function(INSTALL_JNI_SYMLINK _TARGET_NAME)
+ if (ARGC EQUAL 2)
+ set (_DESTINATION ${ARGV1})
+ else()
+ cmake_parse_arguments(_install_jni_symlink
+ ""
+ "DESTINATION;COMPONENT"
+ ""
+ ${ARGN})
+ if (_install_jni_symlink_DESTINATION)
+ set (_DESTINATION ${_install_jni_symlink_DESTINATION})
+ else()
+ message(SEND_ERROR "install_jni_symlink: ${_TARGET_NAME}: DESTINATION must be specified.")
+ endif()
+
+ if (_install_jni_symlink_COMPONENT)
+ set (_COMPONENT COMPONENT ${_install_jni_symlink_COMPONENT})
+ endif()
+ endif()
+
+ get_property(__SYMLINK
+ TARGET
+ ${_TARGET_NAME}
+ PROPERTY
+ JNI_SYMLINK
+ )
+
+ if (__SYMLINK)
+ install(
+ FILES
+ ${__SYMLINK}
+ DESTINATION
+ ${_DESTINATION}
+ ${_COMPONENT}
+ )
+ else ()
+ message(SEND_ERROR "install_jni_symlink: The target ${_TARGET_NAME} is not known in this scope.")
+ endif ()
+endfunction()
+
+function (find_jar VARIABLE)
+ set(_jar_names)
+ set(_jar_files)
+ set(_jar_versions)
+ set(_jar_paths
+ /usr/share/java/
+ /usr/local/share/java/
+ ${Java_JAR_PATHS})
+ set(_jar_doc "NOTSET")
+
+ set(_state "name")
+
+ foreach (arg IN LISTS ARGN)
+ if (_state STREQUAL "name")
+ if (arg STREQUAL "VERSIONS")
+ set(_state "versions")
+ elseif (arg STREQUAL "NAMES")
+ set(_state "names")
+ elseif (arg STREQUAL "PATHS")
+ set(_state "paths")
+ elseif (arg STREQUAL "DOC")
+ set(_state "doc")
+ else ()
+ set(_jar_names ${arg})
+ if (_jar_doc STREQUAL "NOTSET")
+ set(_jar_doc "Finding ${arg} jar")
+ endif ()
+ endif ()
+ elseif (_state STREQUAL "versions")
+ if (arg STREQUAL "NAMES")
+ set(_state "names")
+ elseif (arg STREQUAL "PATHS")
+ set(_state "paths")
+ elseif (arg STREQUAL "DOC")
+ set(_state "doc")
+ else ()
+ set(_jar_versions ${_jar_versions} ${arg})
+ endif ()
+ elseif (_state STREQUAL "names")
+ if (arg STREQUAL "VERSIONS")
+ set(_state "versions")
+ elseif (arg STREQUAL "PATHS")
+ set(_state "paths")
+ elseif (arg STREQUAL "DOC")
+ set(_state "doc")
+ else ()
+ set(_jar_names ${_jar_names} ${arg})
+ if (_jar_doc STREQUAL "NOTSET")
+ set(_jar_doc "Finding ${arg} jar")
+ endif ()
+ endif ()
+ elseif (_state STREQUAL "paths")
+ if (arg STREQUAL "VERSIONS")
+ set(_state "versions")
+ elseif (arg STREQUAL "NAMES")
+ set(_state "names")
+ elseif (arg STREQUAL "DOC")
+ set(_state "doc")
+ else ()
+ set(_jar_paths ${_jar_paths} ${arg})
+ endif ()
+ elseif (_state STREQUAL "doc")
+ if (arg STREQUAL "VERSIONS")
+ set(_state "versions")
+ elseif (arg STREQUAL "NAMES")
+ set(_state "names")
+ elseif (arg STREQUAL "PATHS")
+ set(_state "paths")
+ else ()
+ set(_jar_doc ${arg})
+ endif ()
+ endif ()
+ endforeach ()
+
+ if (NOT _jar_names)
+ message(FATAL_ERROR "find_jar: No name to search for given")
+ endif ()
+
+ foreach (jar_name IN LISTS _jar_names)
+ foreach (version IN LISTS _jar_versions)
+ set(_jar_files ${_jar_files} ${jar_name}-${version}.jar)
+ endforeach ()
+ set(_jar_files ${_jar_files} ${jar_name}.jar)
+ endforeach ()
+
+ find_file(${VARIABLE}
+ NAMES ${_jar_files}
+ PATHS ${_jar_paths}
+ DOC ${_jar_doc}
+ NO_DEFAULT_PATH)
+endfunction ()
+
+function(create_javadoc _target)
+ set(_javadoc_packages)
+ set(_javadoc_files)
+ set(_javadoc_sourcepath)
+ set(_javadoc_classpath)
+ set(_javadoc_installpath "${CMAKE_INSTALL_PREFIX}/share/javadoc")
+ set(_javadoc_doctitle)
+ set(_javadoc_windowtitle)
+ set(_javadoc_author FALSE)
+ set(_javadoc_version FALSE)
+ set(_javadoc_use FALSE)
+
+ set(_state "package")
+
+ foreach (arg IN LISTS ARGN)
+ if (_state STREQUAL "package")
+ if (arg STREQUAL "PACKAGES")
+ set(_state "packages")
+ elseif (arg STREQUAL "FILES")
+ set(_state "files")
+ elseif (arg STREQUAL "SOURCEPATH")
+ set(_state "sourcepath")
+ elseif (arg STREQUAL "CLASSPATH")
+ set(_state "classpath")
+ elseif (arg STREQUAL "INSTALLPATH")
+ set(_state "installpath")
+ elseif (arg STREQUAL "DOCTITLE")
+ set(_state "doctitle")
+ elseif (arg STREQUAL "WINDOWTITLE")
+ set(_state "windowtitle")
+ elseif (arg STREQUAL "AUTHOR")
+ set(_state "author")
+ elseif (arg STREQUAL "USE")
+ set(_state "use")
+ elseif (arg STREQUAL "VERSION")
+ set(_state "version")
+ else ()
+ set(_javadoc_packages ${arg})
+ set(_state "packages")
+ endif ()
+ elseif (_state STREQUAL "packages")
+ if (arg STREQUAL "FILES")
+ set(_state "files")
+ elseif (arg STREQUAL "SOURCEPATH")
+ set(_state "sourcepath")
+ elseif (arg STREQUAL "CLASSPATH")
+ set(_state "classpath")
+ elseif (arg STREQUAL "INSTALLPATH")
+ set(_state "installpath")
+ elseif (arg STREQUAL "DOCTITLE")
+ set(_state "doctitle")
+ elseif (arg STREQUAL "WINDOWTITLE")
+ set(_state "windowtitle")
+ elseif (arg STREQUAL "AUTHOR")
+ set(_state "author")
+ elseif (arg STREQUAL "USE")
+ set(_state "use")
+ elseif (arg STREQUAL "VERSION")
+ set(_state "version")
+ else ()
+ list(APPEND _javadoc_packages ${arg})
+ endif ()
+ elseif (_state STREQUAL "files")
+ if (arg STREQUAL "PACKAGES")
+ set(_state "packages")
+ elseif (arg STREQUAL "SOURCEPATH")
+ set(_state "sourcepath")
+ elseif (arg STREQUAL "CLASSPATH")
+ set(_state "classpath")
+ elseif (arg STREQUAL "INSTALLPATH")
+ set(_state "installpath")
+ elseif (arg STREQUAL "DOCTITLE")
+ set(_state "doctitle")
+ elseif (arg STREQUAL "WINDOWTITLE")
+ set(_state "windowtitle")
+ elseif (arg STREQUAL "AUTHOR")
+ set(_state "author")
+ elseif (arg STREQUAL "USE")
+ set(_state "use")
+ elseif (arg STREQUAL "VERSION")
+ set(_state "version")
+ else ()
+ list(APPEND _javadoc_files ${arg})
+ endif ()
+ elseif (_state STREQUAL "sourcepath")
+ if (arg STREQUAL "PACKAGES")
+ set(_state "packages")
+ elseif (arg STREQUAL "FILES")
+ set(_state "files")
+ elseif (arg STREQUAL "CLASSPATH")
+ set(_state "classpath")
+ elseif (arg STREQUAL "INSTALLPATH")
+ set(_state "installpath")
+ elseif (arg STREQUAL "DOCTITLE")
+ set(_state "doctitle")
+ elseif (arg STREQUAL "WINDOWTITLE")
+ set(_state "windowtitle")
+ elseif (arg STREQUAL "AUTHOR")
+ set(_state "author")
+ elseif (arg STREQUAL "USE")
+ set(_state "use")
+ elseif (arg STREQUAL "VERSION")
+ set(_state "version")
+ else ()
+ list(APPEND _javadoc_sourcepath ${arg})
+ endif ()
+ elseif (_state STREQUAL "classpath")
+ if (arg STREQUAL "PACKAGES")
+ set(_state "packages")
+ elseif (arg STREQUAL "FILES")
+ set(_state "files")
+ elseif (arg STREQUAL "SOURCEPATH")
+ set(_state "sourcepath")
+ elseif (arg STREQUAL "INSTALLPATH")
+ set(_state "installpath")
+ elseif (arg STREQUAL "DOCTITLE")
+ set(_state "doctitle")
+ elseif (arg STREQUAL "WINDOWTITLE")
+ set(_state "windowtitle")
+ elseif (arg STREQUAL "AUTHOR")
+ set(_state "author")
+ elseif (arg STREQUAL "USE")
+ set(_state "use")
+ elseif (arg STREQUAL "VERSION")
+ set(_state "version")
+ else ()
+ list(APPEND _javadoc_classpath ${arg})
+ endif ()
+ elseif (_state STREQUAL "installpath")
+ if (arg STREQUAL "PACKAGES")
+ set(_state "packages")
+ elseif (arg STREQUAL "FILES")
+ set(_state "files")
+ elseif (arg STREQUAL "SOURCEPATH")
+ set(_state "sourcepath")
+ elseif (arg STREQUAL "DOCTITLE")
+ set(_state "doctitle")
+ elseif (arg STREQUAL "WINDOWTITLE")
+ set(_state "windowtitle")
+ elseif (arg STREQUAL "AUTHOR")
+ set(_state "author")
+ elseif (arg STREQUAL "USE")
+ set(_state "use")
+ elseif (arg STREQUAL "VERSION")
+ set(_state "version")
+ else ()
+ set(_javadoc_installpath ${arg})
+ endif ()
+ elseif (_state STREQUAL "doctitle")
+ if (${arg} STREQUAL "PACKAGES")
+ set(_state "packages")
+ elseif (arg STREQUAL "FILES")
+ set(_state "files")
+ elseif (arg STREQUAL "SOURCEPATH")
+ set(_state "sourcepath")
+ elseif (arg STREQUAL "INSTALLPATH")
+ set(_state "installpath")
+ elseif (arg STREQUAL "CLASSPATH")
+ set(_state "classpath")
+ elseif (arg STREQUAL "WINDOWTITLE")
+ set(_state "windowtitle")
+ elseif (arg STREQUAL "AUTHOR")
+ set(_state "author")
+ elseif (arg STREQUAL "USE")
+ set(_state "use")
+ elseif (arg STREQUAL "VERSION")
+ set(_state "version")
+ else ()
+ set(_javadoc_doctitle ${arg})
+ endif ()
+ elseif (_state STREQUAL "windowtitle")
+ if (${arg} STREQUAL "PACKAGES")
+ set(_state "packages")
+ elseif (arg STREQUAL "FILES")
+ set(_state "files")
+ elseif (arg STREQUAL "SOURCEPATH")
+ set(_state "sourcepath")
+ elseif (arg STREQUAL "CLASSPATH")
+ set(_state "classpath")
+ elseif (arg STREQUAL "INSTALLPATH")
+ set(_state "installpath")
+ elseif (arg STREQUAL "DOCTITLE")
+ set(_state "doctitle")
+ elseif (arg STREQUAL "AUTHOR")
+ set(_state "author")
+ elseif (arg STREQUAL "USE")
+ set(_state "use")
+ elseif (arg STREQUAL "VERSION")
+ set(_state "version")
+ else ()
+ set(_javadoc_windowtitle ${arg})
+ endif ()
+ elseif (_state STREQUAL "author")
+ if (arg STREQUAL "PACKAGES")
+ set(_state "packages")
+ elseif (arg STREQUAL "FILES")
+ set(_state "files")
+ elseif (arg STREQUAL "SOURCEPATH")
+ set(_state "sourcepath")
+ elseif (arg STREQUAL "CLASSPATH")
+ set(_state "classpath")
+ elseif (arg STREQUAL "INSTALLPATH")
+ set(_state "installpath")
+ elseif (arg STREQUAL "DOCTITLE")
+ set(_state "doctitle")
+ elseif (arg STREQUAL "WINDOWTITLE")
+ set(_state "windowtitle")
+ elseif (arg STREQUAL "AUTHOR")
+ set(_state "author")
+ elseif (arg STREQUAL "USE")
+ set(_state "use")
+ elseif (arg STREQUAL "VERSION")
+ set(_state "version")
+ else ()
+ set(_javadoc_author ${arg})
+ endif ()
+ elseif (_state STREQUAL "use")
+ if (arg STREQUAL "PACKAGES")
+ set(_state "packages")
+ elseif (arg STREQUAL "FILES")
+ set(_state "files")
+ elseif (arg STREQUAL "SOURCEPATH")
+ set(_state "sourcepath")
+ elseif (arg STREQUAL "CLASSPATH")
+ set(_state "classpath")
+ elseif (arg STREQUAL "INSTALLPATH")
+ set(_state "installpath")
+ elseif (arg STREQUAL "DOCTITLE")
+ set(_state "doctitle")
+ elseif (arg STREQUAL "WINDOWTITLE")
+ set(_state "windowtitle")
+ elseif (arg STREQUAL "AUTHOR")
+ set(_state "author")
+ elseif (arg STREQUAL "USE")
+ set(_state "use")
+ elseif (arg STREQUAL "VERSION")
+ set(_state "version")
+ else ()
+ set(_javadoc_use ${arg})
+ endif ()
+ elseif (_state STREQUAL "version")
+ if (arg STREQUAL "PACKAGES")
+ set(_state "packages")
+ elseif (arg STREQUAL "FILES")
+ set(_state "files")
+ elseif (arg STREQUAL "SOURCEPATH")
+ set(_state "sourcepath")
+ elseif (arg STREQUAL "CLASSPATH")
+ set(_state "classpath")
+ elseif (arg STREQUAL "INSTALLPATH")
+ set(_state "installpath")
+ elseif (arg STREQUAL "DOCTITLE")
+ set(_state "doctitle")
+ elseif (arg STREQUAL "WINDOWTITLE")
+ set(_state "windowtitle")
+ elseif (arg STREQUAL "AUTHOR")
+ set(_state "author")
+ elseif (arg STREQUAL "USE")
+ set(_state "use")
+ elseif (arg STREQUAL "VERSION")
+ set(_state "version")
+ else ()
+ set(_javadoc_version ${arg})
+ endif ()
+ endif ()
+ endforeach ()
+
+ set(_javadoc_builddir ${CMAKE_CURRENT_BINARY_DIR}/javadoc/${_target})
+ set(_javadoc_options -d ${_javadoc_builddir})
+
+ if (_javadoc_sourcepath)
+ list(JOIN _javadoc_sourcepath "${_UseJava_PATH_SEP}" _javadoc_sourcepath)
+ list(APPEND _javadoc_options -sourcepath "\"${_javadoc_sourcepath}\"")
+ endif ()
+
+ if (_javadoc_classpath)
+ list(JOIN _javadoc_classpath "${_UseJava_PATH_SEP}" _javadoc_classpath)
+ list(APPEND _javadoc_options -classpath "\"${_javadoc_classpath}\"")
+ endif ()
+
+ if (_javadoc_doctitle)
+ list(APPEND _javadoc_options -doctitle '${_javadoc_doctitle}')
+ endif ()
+
+ if (_javadoc_windowtitle)
+ list(APPEND _javadoc_options -windowtitle '${_javadoc_windowtitle}')
+ endif ()
+
+ if (_javadoc_author)
+ list(APPEND _javadoc_options -author)
+ endif ()
+
+ if (_javadoc_use)
+ list(APPEND _javadoc_options -use)
+ endif ()
+
+ if (_javadoc_version)
+ list(APPEND _javadoc_options -version)
+ endif ()
+
+ add_custom_target(${_target}_javadoc ALL
+ COMMAND ${Java_JAVADOC_EXECUTABLE}
+ ${_javadoc_options}
+ ${_javadoc_files}
+ ${_javadoc_packages}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+
+ install(
+ DIRECTORY ${_javadoc_builddir}
+ DESTINATION ${_javadoc_installpath}
+ )
+endfunction()
+
+function (create_javah)
+ if (Java_VERSION VERSION_GREATER_EQUAL 10)
+ message (FATAL_ERROR "create_javah: not supported with this Java version. Use add_jar(GENERATE_NATIVE_HEADERS) instead.")
+ elseif (Java_VERSION VERSION_GREATER_EQUAL 1.8)
+ message (DEPRECATION "create_javah: this command will no longer be supported starting with version 10 of JDK. Update your project by using command add_jar(GENERATE_NATIVE_HEADERS) instead.")
+ endif()
+
+ cmake_parse_arguments(_create_javah
+ ""
+ "TARGET;GENERATED_FILES;OUTPUT_NAME;OUTPUT_DIR"
+ "CLASSES;CLASSPATH;DEPENDS"
+ ${ARGN})
+
+ # ckeck parameters
+ if (NOT _create_javah_TARGET AND NOT _create_javah_GENERATED_FILES)
+ message (FATAL_ERROR "create_javah: TARGET or GENERATED_FILES must be specified.")
+ endif()
+ if (_create_javah_OUTPUT_NAME AND _create_javah_OUTPUT_DIR)
+ message (FATAL_ERROR "create_javah: OUTPUT_NAME and OUTPUT_DIR are mutually exclusive.")
+ endif()
+
+ if (NOT _create_javah_CLASSES)
+ message (FATAL_ERROR "create_javah: CLASSES is a required parameter.")
+ endif()
+
+ set (_output_files)
+
+ # handle javah options
+ set (_javah_options)
+
+ if (_create_javah_CLASSPATH)
+ # CLASSPATH can specify directories, jar files or targets created with add_jar command
+ set (_classpath)
+ foreach (_path IN LISTS _create_javah_CLASSPATH)
+ if (TARGET ${_path})
+ get_target_property (_jar_path ${_path} JAR_FILE)
+ if (_jar_path)
+ list (APPEND _classpath "${_jar_path}")
+ list (APPEND _create_javah_DEPENDS "${_path}")
+ else()
+ message(SEND_ERROR "create_javah: CLASSPATH target ${_path} is not a jar.")
+ endif()
+ elseif (EXISTS "${_path}")
+ list (APPEND _classpath "${_path}")
+ if (NOT IS_DIRECTORY "${_path}")
+ list (APPEND _create_javah_DEPENDS "${_path}")
+ endif()
+ else()
+ message(SEND_ERROR "create_javah: CLASSPATH entry ${_path} does not exist.")
+ endif()
+ endforeach()
+ string (REPLACE ";" "${_UseJava_PATH_SEP}" _classpath "${_classpath}")
+ list (APPEND _javah_options -classpath "${_classpath}")
+ endif()
+
+ if (_create_javah_OUTPUT_DIR)
+ list (APPEND _javah_options -d "${_create_javah_OUTPUT_DIR}")
+ endif()
+
+ if (_create_javah_OUTPUT_NAME)
+ list (APPEND _javah_options -o "${_create_javah_OUTPUT_NAME}")
+ set (_output_files "${_create_javah_OUTPUT_NAME}")
+
+ get_filename_component (_create_javah_OUTPUT_DIR "${_create_javah_OUTPUT_NAME}" DIRECTORY)
+ get_filename_component (_create_javah_OUTPUT_DIR "${_create_javah_OUTPUT_DIR}" ABSOLUTE)
+ endif()
+
+ if (NOT _create_javah_OUTPUT_DIR)
+ set (_create_javah_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}")
+ endif()
+
+ if (NOT _create_javah_OUTPUT_NAME)
+ # compute output names
+ foreach (_class IN LISTS _create_javah_CLASSES)
+ string (REPLACE "." "_" _c_header "${_class}")
+ set (_c_header "${_create_javah_OUTPUT_DIR}/${_c_header}.h")
+ list (APPEND _output_files "${_c_header}")
+ endforeach()
+ endif()
+
+ # finalize custom command arguments
+ if (_create_javah_DEPENDS)
+ list (INSERT _create_javah_DEPENDS 0 DEPENDS)
+ endif()
+
+ add_custom_command (OUTPUT ${_output_files}
+ COMMAND "${Java_JAVAH_EXECUTABLE}" ${_javah_options} -jni ${_create_javah_CLASSES}
+ ${_create_javah_DEPENDS}
+ WORKING_DIRECTORY ${_create_javah_OUTPUT_DIR}
+ COMMENT "Building C header files from classes...")
+
+ if (_create_javah_TARGET)
+ add_custom_target (${_create_javah_TARGET} ALL DEPENDS ${_output_files})
+ endif()
+ if (_create_javah_GENERATED_FILES)
+ set (${_create_javah_GENERATED_FILES} ${_output_files} PARENT_SCOPE)
+ endif()
+endfunction()
+
+function(export_jars)
+ # Parse and validate arguments
+ cmake_parse_arguments(_export_jars
+ ""
+ "FILE;NAMESPACE"
+ "TARGETS"
+ ${ARGN}
+ )
+ if (NOT _export_jars_FILE)
+ message(SEND_ERROR "export_jars: FILE must be specified.")
+ endif()
+ if (NOT _export_jars_TARGETS)
+ message(SEND_ERROR "export_jars: TARGETS must be specified.")
+ endif()
+ set(_jar_NAMESPACE "${_export_jars_NAMESPACE}")
+
+ # Set content of generated exports file
+ string(REPLACE ";" " " __targets__ "${_export_jars_TARGETS}")
+ set(__targetdefs__ "")
+ foreach(_target IN LISTS _export_jars_TARGETS)
+ get_target_property(_jarpath ${_target} JAR_FILE)
+ get_filename_component(_jarpath ${_jarpath} PATH)
+ __java_export_jar(__targetdefs__ ${_target} "${_jarpath}")
+ endforeach()
+
+ # Generate exports file
+ configure_file(
+ ${_JAVA_EXPORT_TARGETS_SCRIPT}
+ ${_export_jars_FILE}
+ @ONLY
+ )
+endfunction()
+
+function(install_jar_exports)
+ # Parse and validate arguments
+ cmake_parse_arguments(_install_jar_exports
+ ""
+ "FILE;DESTINATION;COMPONENT;NAMESPACE"
+ "TARGETS"
+ ${ARGN}
+ )
+ if (NOT _install_jar_exports_FILE)
+ message(SEND_ERROR "install_jar_exports: FILE must be specified.")
+ endif()
+ if (NOT _install_jar_exports_DESTINATION)
+ message(SEND_ERROR "install_jar_exports: DESTINATION must be specified.")
+ endif()
+ if (NOT _install_jar_exports_TARGETS)
+ message(SEND_ERROR "install_jar_exports: TARGETS must be specified.")
+ endif()
+ set(_jar_NAMESPACE "${_install_jar_exports_NAMESPACE}")
+
+ if (_install_jar_exports_COMPONENT)
+ set (_COMPONENT COMPONENT ${_install_jar_exports_COMPONENT})
+ endif()
+
+ # Determine relative path from installed export file to install prefix
+ if(IS_ABSOLUTE "${_install_jar_exports_DESTINATION}")
+ file(RELATIVE_PATH _relpath
+ ${_install_jar_exports_DESTINATION}
+ ${CMAKE_INSTALL_PREFIX}
+ )
+ else()
+ file(RELATIVE_PATH _relpath
+ ${CMAKE_INSTALL_PREFIX}/${_install_jar_exports_DESTINATION}
+ ${CMAKE_INSTALL_PREFIX}
+ )
+ endif()
+
+ # Set up unique location for generated exports file
+ string(SHA256 _hash "${_install_jar_exports_DESTINATION}")
+ set(_tmpdir ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/JavaExports/${_hash})
+
+ # Set content of generated exports file
+ string(REPLACE ";" " " __targets__ "${_install_jar_exports_TARGETS}")
+ set(__targetdefs__ "set(_prefix \${CMAKE_CURRENT_LIST_DIR}/${_relpath})\n\n")
+ foreach(_target IN LISTS _install_jar_exports_TARGETS)
+ get_target_property(_dir ${_target} INSTALL_DESTINATION)
+ __java_export_jar(__targetdefs__ ${_target} "\${_prefix}/${_dir}")
+ endforeach()
+ __java_lcat(__targetdefs__ "\nunset(_prefix)")
+
+ # Generate and install exports file
+ configure_file(
+ ${_JAVA_EXPORT_TARGETS_SCRIPT}
+ ${_tmpdir}/${_install_jar_exports_FILE}
+ @ONLY
+ )
+ install(FILES ${_tmpdir}/${_install_jar_exports_FILE}
+ DESTINATION ${_install_jar_exports_DESTINATION}
+ ${_COMPONENT})
+endfunction()
diff --git a/share/cmake-3.16/Modules/UseJavaClassFilelist.cmake b/share/cmake-3.17/Modules/UseJavaClassFilelist.cmake
index 1c4baa9..1c4baa9 100644
--- a/share/cmake-3.16/Modules/UseJavaClassFilelist.cmake
+++ b/share/cmake-3.17/Modules/UseJavaClassFilelist.cmake
diff --git a/share/cmake-3.16/Modules/UseJavaSymlinks.cmake b/share/cmake-3.17/Modules/UseJavaSymlinks.cmake
index 3969f54..3969f54 100644
--- a/share/cmake-3.16/Modules/UseJavaSymlinks.cmake
+++ b/share/cmake-3.17/Modules/UseJavaSymlinks.cmake
diff --git a/share/cmake-3.16/Modules/UsePkgConfig.cmake b/share/cmake-3.17/Modules/UsePkgConfig.cmake
index 32d228d..32d228d 100644
--- a/share/cmake-3.16/Modules/UsePkgConfig.cmake
+++ b/share/cmake-3.17/Modules/UsePkgConfig.cmake
diff --git a/share/cmake-3.16/Modules/UseQt4.cmake b/share/cmake-3.17/Modules/UseQt4.cmake
index 8fec717..8fec717 100644
--- a/share/cmake-3.16/Modules/UseQt4.cmake
+++ b/share/cmake-3.17/Modules/UseQt4.cmake
diff --git a/share/cmake-3.16/Modules/UseSWIG.cmake b/share/cmake-3.17/Modules/UseSWIG.cmake
index 78522da..78522da 100644
--- a/share/cmake-3.16/Modules/UseSWIG.cmake
+++ b/share/cmake-3.17/Modules/UseSWIG.cmake
diff --git a/share/cmake-3.16/Modules/UseSWIG/ManageSupportFiles.cmake b/share/cmake-3.17/Modules/UseSWIG/ManageSupportFiles.cmake
index 4a03900..4a03900 100644
--- a/share/cmake-3.16/Modules/UseSWIG/ManageSupportFiles.cmake
+++ b/share/cmake-3.17/Modules/UseSWIG/ManageSupportFiles.cmake
diff --git a/share/cmake-3.16/Modules/Use_wxWindows.cmake b/share/cmake-3.17/Modules/Use_wxWindows.cmake
index 782874c..782874c 100644
--- a/share/cmake-3.16/Modules/Use_wxWindows.cmake
+++ b/share/cmake-3.17/Modules/Use_wxWindows.cmake
diff --git a/share/cmake-3.16/Modules/UsewxWidgets.cmake b/share/cmake-3.17/Modules/UsewxWidgets.cmake
index eed0410..eed0410 100644
--- a/share/cmake-3.16/Modules/UsewxWidgets.cmake
+++ b/share/cmake-3.17/Modules/UsewxWidgets.cmake
diff --git a/share/cmake-3.16/Modules/VTKCompatibility.cmake b/share/cmake-3.17/Modules/VTKCompatibility.cmake
index 1b0815e..1b0815e 100644
--- a/share/cmake-3.16/Modules/VTKCompatibility.cmake
+++ b/share/cmake-3.17/Modules/VTKCompatibility.cmake
diff --git a/share/cmake-3.16/Modules/WriteBasicConfigVersionFile.cmake b/share/cmake-3.17/Modules/WriteBasicConfigVersionFile.cmake
index 45f9e58..45f9e58 100644
--- a/share/cmake-3.16/Modules/WriteBasicConfigVersionFile.cmake
+++ b/share/cmake-3.17/Modules/WriteBasicConfigVersionFile.cmake
diff --git a/share/cmake-3.16/Modules/WriteCompilerDetectionHeader.cmake b/share/cmake-3.17/Modules/WriteCompilerDetectionHeader.cmake
index 23d81b5..23d81b5 100644
--- a/share/cmake-3.16/Modules/WriteCompilerDetectionHeader.cmake
+++ b/share/cmake-3.17/Modules/WriteCompilerDetectionHeader.cmake
diff --git a/share/cmake-3.16/Modules/ecos_clean.cmake b/share/cmake-3.17/Modules/ecos_clean.cmake
index 480b1ce..480b1ce 100644
--- a/share/cmake-3.16/Modules/ecos_clean.cmake
+++ b/share/cmake-3.17/Modules/ecos_clean.cmake
diff --git a/share/cmake-3.16/Modules/exportheader.cmake.in b/share/cmake-3.17/Modules/exportheader.cmake.in
index c518b3d..c518b3d 100644
--- a/share/cmake-3.16/Modules/exportheader.cmake.in
+++ b/share/cmake-3.17/Modules/exportheader.cmake.in
diff --git a/share/cmake-3.16/Modules/javaTargets.cmake.in b/share/cmake-3.17/Modules/javaTargets.cmake.in
index c5f9c78..c5f9c78 100644
--- a/share/cmake-3.16/Modules/javaTargets.cmake.in
+++ b/share/cmake-3.17/Modules/javaTargets.cmake.in
diff --git a/share/cmake-3.16/Modules/kde3init_dummy.cpp.in b/share/cmake-3.17/Modules/kde3init_dummy.cpp.in
index 7135c73..7135c73 100644
--- a/share/cmake-3.16/Modules/kde3init_dummy.cpp.in
+++ b/share/cmake-3.17/Modules/kde3init_dummy.cpp.in
diff --git a/share/cmake-3.16/Modules/kde3uic.cmake b/share/cmake-3.17/Modules/kde3uic.cmake
index b1f73d5..b1f73d5 100644
--- a/share/cmake-3.16/Modules/kde3uic.cmake
+++ b/share/cmake-3.17/Modules/kde3uic.cmake
diff --git a/share/cmake-3.16/Modules/readme.txt b/share/cmake-3.17/Modules/readme.txt
index a629478..a629478 100644
--- a/share/cmake-3.16/Modules/readme.txt
+++ b/share/cmake-3.17/Modules/readme.txt
diff --git a/share/cmake-3.16/Templates/AppleInfo.plist b/share/cmake-3.17/Templates/AppleInfo.plist
index 3445e53..3445e53 100644
--- a/share/cmake-3.16/Templates/AppleInfo.plist
+++ b/share/cmake-3.17/Templates/AppleInfo.plist
diff --git a/share/cmake-3.16/Templates/CMakeVSMacros1.vsmacros b/share/cmake-3.17/Templates/CMakeVSMacros1.vsmacros
index 60487d9..60487d9 100644
--- a/share/cmake-3.16/Templates/CMakeVSMacros1.vsmacros
+++ b/share/cmake-3.17/Templates/CMakeVSMacros1.vsmacros
Binary files differ
diff --git a/share/cmake-3.16/Templates/CMakeVSMacros2.vsmacros b/share/cmake-3.17/Templates/CMakeVSMacros2.vsmacros
index 5ba2799..5ba2799 100644
--- a/share/cmake-3.16/Templates/CMakeVSMacros2.vsmacros
+++ b/share/cmake-3.17/Templates/CMakeVSMacros2.vsmacros
Binary files differ
diff --git a/share/cmake-3.16/Templates/CPack.GenericDescription.txt b/share/cmake-3.17/Templates/CPack.GenericDescription.txt
index 712ee14..712ee14 100644
--- a/share/cmake-3.16/Templates/CPack.GenericDescription.txt
+++ b/share/cmake-3.17/Templates/CPack.GenericDescription.txt
diff --git a/share/cmake-3.16/Templates/CPack.GenericLicense.txt b/share/cmake-3.17/Templates/CPack.GenericLicense.txt
index 09c6218..09c6218 100644
--- a/share/cmake-3.16/Templates/CPack.GenericLicense.txt
+++ b/share/cmake-3.17/Templates/CPack.GenericLicense.txt
diff --git a/share/cmake-3.16/Templates/CPack.GenericWelcome.txt b/share/cmake-3.17/Templates/CPack.GenericWelcome.txt
index 5330087..5330087 100644
--- a/share/cmake-3.16/Templates/CPack.GenericWelcome.txt
+++ b/share/cmake-3.17/Templates/CPack.GenericWelcome.txt
diff --git a/share/cmake-3.16/Templates/CPackConfig.cmake.in b/share/cmake-3.17/Templates/CPackConfig.cmake.in
index c00ea2a..c00ea2a 100644
--- a/share/cmake-3.16/Templates/CPackConfig.cmake.in
+++ b/share/cmake-3.17/Templates/CPackConfig.cmake.in
diff --git a/share/cmake-3.16/Templates/CTestScript.cmake.in b/share/cmake-3.17/Templates/CTestScript.cmake.in
index 5fb3529..5fb3529 100644
--- a/share/cmake-3.16/Templates/CTestScript.cmake.in
+++ b/share/cmake-3.17/Templates/CTestScript.cmake.in
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_CL.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CL.json
index 06158be..06158be 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_CL.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CL.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_CSharp.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CSharp.json
index 5989aea..5989aea 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_CSharp.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CSharp.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Cuda.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Cuda.json
new file mode 100644
index 0000000..b3230ac
--- /dev/null
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Cuda.json
@@ -0,0 +1,244 @@
+[
+ {
+ "name": "AdditionalCompilerOptions",
+ "switch": "Xcompiler=",
+ "comment": "Host compiler options",
+ "value": "",
+ "flags": [
+ "UserValue",
+ "SpaceAppendable"
+ ]
+ },
+ {
+ "name": "AdditionalCompilerOptions",
+ "switch": "Xcompiler",
+ "comment": "Host compiler options",
+ "value": "",
+ "flags": [
+ "UserFollowing",
+ "SpaceAppendable"
+ ]
+ },
+ {
+ "name": "AdditionalCompilerOptions",
+ "switch": "-compiler-options=",
+ "comment": "Host compiler options",
+ "value": "",
+ "flags": [
+ "UserValue",
+ "SpaceAppendable"
+ ]
+ },
+ {
+ "name": "AdditionalCompilerOptions",
+ "switch": "-compiler-options",
+ "comment": "Host compiler options",
+ "value": "",
+ "flags": [
+ "UserFollowing",
+ "SpaceAppendable"
+ ]
+ },
+ {
+ "name": "CudaRuntime",
+ "switch": "cudart=none",
+ "comment": "No CUDA runtime library",
+ "value": "None",
+ "flags": []
+ },
+ {
+ "name": "CudaRuntime",
+ "switch": "cudart=shared",
+ "comment": "Shared/dynamic CUDA runtime library",
+ "value": "Shared",
+ "flags": []
+ },
+ {
+ "name": "CudaRuntime",
+ "switch": "cudart=static",
+ "comment": "Static CUDA runtime library",
+ "value": "Static",
+ "flags": []
+ },
+ {
+ "name": "CudaRuntime",
+ "switch": "cudart",
+ "comment": "CUDA runtime library",
+ "value": "",
+ "flags": [
+ "UserFollowing"
+ ]
+ },
+ {
+ "name": "cmake-temp-gencode",
+ "switch": "gencode=",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserValue",
+ "SemicolonAppendable"
+ ]
+ },
+ {
+ "name": "cmake-temp-gencode",
+ "switch": "gencode",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserFollowing",
+ "SemicolonAppendable"
+ ]
+ },
+ {
+ "name": "cmake-temp-gencode",
+ "switch": "-generate-code=",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserValue",
+ "SemicolonAppendable"
+ ]
+ },
+ {
+ "name": "cmake-temp-gencode",
+ "switch": "-generate-code",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserFollowing",
+ "SemicolonAppendable"
+ ]
+ },
+ {
+ "name": "cmake-temp-code",
+ "switch": "code=",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserValue"
+ ]
+ },
+ {
+ "name": "cmake-temp-code",
+ "switch": "code",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserFollowing"
+ ]
+ },
+ {
+ "name": "cmake-temp-code",
+ "switch": "-gpu-code=",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserValue"
+ ]
+ },
+ {
+ "name": "cmake-temp-code",
+ "switch": "-gpu-code",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserFollowing"
+ ]
+ },
+ {
+ "name": "cmake-temp-arch",
+ "switch": "arch=",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserValue"
+ ]
+ },
+ {
+ "name": "cmake-temp-arch",
+ "switch": "arch",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserFollowing"
+ ]
+ },
+ {
+ "name": "cmake-temp-arch",
+ "switch": "-gpu-architecture=",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserValue"
+ ]
+ },
+ {
+ "name": "cmake-temp-arch",
+ "switch": "-gpu-architecture",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserFollowing"
+ ]
+ },
+ {
+ "name": "FastMath",
+ "switch": "use_fast_math",
+ "comment": "",
+ "value": "true",
+ "flags": []
+ },
+ {
+ "name": "FastMath",
+ "switch": "-use_fast_math",
+ "comment": "",
+ "value": "true",
+ "flags": []
+ },
+ {
+ "name": "GPUDebugInfo",
+ "switch": "G",
+ "comment": "",
+ "value": "true",
+ "flags": []
+ },
+ {
+ "name": "GPUDebugInfo",
+ "switch": "-device-debug",
+ "comment": "",
+ "value": "true",
+ "flags": []
+ },
+ {
+ "name": "HostDebugInfo",
+ "switch": "g",
+ "comment": "",
+ "value": "true",
+ "flags": []
+ },
+ {
+ "name": "HostDebugInfo",
+ "switch": "-debug",
+ "comment": "",
+ "value": "true",
+ "flags": []
+ },
+ {
+ "name": "MaxRegCount",
+ "switch": "maxrregcount=",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserValue"
+ ]
+ },
+ {
+ "name": "MaxRegCount",
+ "switch": "maxrregcount",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserFollowing"
+ ]
+ }
+]
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_CudaHost.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CudaHost.json
index 2593ff1..2593ff1 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_CudaHost.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CudaHost.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_LIB.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_LIB.json
index 58a238c..58a238c 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_LIB.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_LIB.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_Link.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Link.json
index ac5b8b1..ac5b8b1 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_Link.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Link.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_MASM.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_MASM.json
index 4634306..4634306 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_MASM.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_MASM.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_NASM.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_NASM.json
index 434cd63..434cd63 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_NASM.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_NASM.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_RC.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_RC.json
index b8c0127..b8c0127 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v10_RC.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_RC.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v11_CL.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CL.json
index b47ab2e..b47ab2e 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v11_CL.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CL.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v11_CSharp.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CSharp.json
index 5989aea..5989aea 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v11_CSharp.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CSharp.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v11_LIB.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_LIB.json
index 58a238c..58a238c 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v11_LIB.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_LIB.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v11_Link.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_Link.json
index 5d5c13f..5d5c13f 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v11_Link.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_Link.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v11_MASM.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_MASM.json
index 4634306..4634306 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v11_MASM.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_MASM.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v11_RC.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_RC.json
index b8c0127..b8c0127 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v11_RC.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_RC.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v12_CL.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CL.json
index 771a555..771a555 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v12_CL.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CL.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v12_CSharp.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CSharp.json
index 5989aea..5989aea 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v12_CSharp.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CSharp.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v12_LIB.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_LIB.json
index 58a238c..58a238c 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v12_LIB.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_LIB.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v12_Link.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_Link.json
index 5d5c13f..5d5c13f 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v12_Link.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_Link.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v12_MASM.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_MASM.json
index 4634306..4634306 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v12_MASM.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_MASM.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v12_RC.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_RC.json
index b8c0127..b8c0127 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v12_RC.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_RC.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v140_CL.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CL.json
index 3dc9f35..3dc9f35 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v140_CL.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CL.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v140_CSharp.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CSharp.json
index 5989aea..5989aea 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v140_CSharp.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CSharp.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v140_Link.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_Link.json
index 3fb072c..3fb072c 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v140_Link.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_Link.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v141_CL.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CL.json
index 01fafe4..01fafe4 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v141_CL.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CL.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v141_CSharp.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CSharp.json
index 5989aea..5989aea 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v141_CSharp.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CSharp.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v141_Link.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_Link.json
index 66ee76f..66ee76f 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v141_Link.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_Link.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v142_CL.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CL.json
index 95b9d14..95b9d14 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v142_CL.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CL.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v142_CSharp.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CSharp.json
index 5989aea..5989aea 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v142_CSharp.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CSharp.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v142_Link.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_Link.json
index 66ee76f..66ee76f 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v142_Link.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_Link.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v14_LIB.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_LIB.json
index 5990ed1..5990ed1 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v14_LIB.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_LIB.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v14_MASM.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_MASM.json
index 4634306..4634306 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v14_MASM.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_MASM.json
diff --git a/share/cmake-3.16/Templates/MSBuild/FlagTables/v14_RC.json b/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_RC.json
index b8c0127..b8c0127 100644
--- a/share/cmake-3.16/Templates/MSBuild/FlagTables/v14_RC.json
+++ b/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_RC.json
diff --git a/share/cmake-3.16/Templates/MSBuild/nasm.props.in b/share/cmake-3.17/Templates/MSBuild/nasm.props.in
index 3443108..3443108 100644
--- a/share/cmake-3.16/Templates/MSBuild/nasm.props.in
+++ b/share/cmake-3.17/Templates/MSBuild/nasm.props.in
diff --git a/share/cmake-3.16/Templates/MSBuild/nasm.targets b/share/cmake-3.17/Templates/MSBuild/nasm.targets
index eeeb613..eeeb613 100644
--- a/share/cmake-3.16/Templates/MSBuild/nasm.targets
+++ b/share/cmake-3.17/Templates/MSBuild/nasm.targets
diff --git a/share/cmake-3.16/Templates/MSBuild/nasm.xml b/share/cmake-3.17/Templates/MSBuild/nasm.xml
index a5dcdd5..a5dcdd5 100644
--- a/share/cmake-3.16/Templates/MSBuild/nasm.xml
+++ b/share/cmake-3.17/Templates/MSBuild/nasm.xml
diff --git a/share/cmake-3.16/Templates/TestDriver.cxx.in b/share/cmake-3.17/Templates/TestDriver.cxx.in
index 846a828..846a828 100644
--- a/share/cmake-3.16/Templates/TestDriver.cxx.in
+++ b/share/cmake-3.17/Templates/TestDriver.cxx.in
diff --git a/share/cmake-3.16/Templates/Windows/ApplicationIcon.png b/share/cmake-3.17/Templates/Windows/ApplicationIcon.png
index c715e1b..c715e1b 100644
--- a/share/cmake-3.16/Templates/Windows/ApplicationIcon.png
+++ b/share/cmake-3.17/Templates/Windows/ApplicationIcon.png
Binary files differ
diff --git a/share/cmake-3.16/Templates/Windows/Logo.png b/share/cmake-3.17/Templates/Windows/Logo.png
index 65f91ac..65f91ac 100644
--- a/share/cmake-3.16/Templates/Windows/Logo.png
+++ b/share/cmake-3.17/Templates/Windows/Logo.png
Binary files differ
diff --git a/share/cmake-3.16/Templates/Windows/SmallLogo.png b/share/cmake-3.17/Templates/Windows/SmallLogo.png
index 460c022..460c022 100644
--- a/share/cmake-3.16/Templates/Windows/SmallLogo.png
+++ b/share/cmake-3.17/Templates/Windows/SmallLogo.png
Binary files differ
diff --git a/share/cmake-3.16/Templates/Windows/SmallLogo44x44.png b/share/cmake-3.17/Templates/Windows/SmallLogo44x44.png
index c237458..c237458 100644
--- a/share/cmake-3.16/Templates/Windows/SmallLogo44x44.png
+++ b/share/cmake-3.17/Templates/Windows/SmallLogo44x44.png
Binary files differ
diff --git a/share/cmake-3.16/Templates/Windows/SplashScreen.png b/share/cmake-3.17/Templates/Windows/SplashScreen.png
index 8342565..8342565 100644
--- a/share/cmake-3.16/Templates/Windows/SplashScreen.png
+++ b/share/cmake-3.17/Templates/Windows/SplashScreen.png
Binary files differ
diff --git a/share/cmake-3.16/Templates/Windows/StoreLogo.png b/share/cmake-3.17/Templates/Windows/StoreLogo.png
index 508c8a8..508c8a8 100644
--- a/share/cmake-3.16/Templates/Windows/StoreLogo.png
+++ b/share/cmake-3.17/Templates/Windows/StoreLogo.png
Binary files differ
diff --git a/share/cmake-3.16/Templates/Windows/Windows_TemporaryKey.pfx b/share/cmake-3.17/Templates/Windows/Windows_TemporaryKey.pfx
index 1cad999..1cad999 100644
--- a/share/cmake-3.16/Templates/Windows/Windows_TemporaryKey.pfx
+++ b/share/cmake-3.17/Templates/Windows/Windows_TemporaryKey.pfx
Binary files differ
diff --git a/share/cmake-3.16/completions/cmake b/share/cmake-3.17/completions/cmake
index d8d2c86..d8d2c86 100644
--- a/share/cmake-3.16/completions/cmake
+++ b/share/cmake-3.17/completions/cmake
diff --git a/share/cmake-3.16/completions/cpack b/share/cmake-3.17/completions/cpack
index cf5751f..cf5751f 100644
--- a/share/cmake-3.16/completions/cpack
+++ b/share/cmake-3.17/completions/cpack
diff --git a/share/cmake-3.16/completions/ctest b/share/cmake-3.17/completions/ctest
index 49343bb..49343bb 100644
--- a/share/cmake-3.16/completions/ctest
+++ b/share/cmake-3.17/completions/ctest
diff --git a/share/cmake-3.16/editors/emacs/cmake-mode.el b/share/cmake-3.17/editors/emacs/cmake-mode.el
index caaf0d5..caaf0d5 100644
--- a/share/cmake-3.16/editors/emacs/cmake-mode.el
+++ b/share/cmake-3.17/editors/emacs/cmake-mode.el
diff --git a/share/cmake-3.16/editors/vim/indent/cmake.vim b/share/cmake-3.17/editors/vim/indent/cmake.vim
index 33e583d..33e583d 100644
--- a/share/cmake-3.16/editors/vim/indent/cmake.vim
+++ b/share/cmake-3.17/editors/vim/indent/cmake.vim
diff --git a/share/cmake-3.17/editors/vim/syntax/cmake.vim b/share/cmake-3.17/editors/vim/syntax/cmake.vim
new file mode 100644
index 0000000..0676f7e
--- /dev/null
+++ b/share/cmake-3.17/editors/vim/syntax/cmake.vim
@@ -0,0 +1,3374 @@
+" Vim syntax file
+" Program: CMake - Cross-Platform Makefile Generator
+" Version: cmake version 3.14.20190529-g067a4f
+" 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: 2019 May 29
+"
+" Licence: The CMake license applies to this file. See
+" https://cmake.org/licensing
+" This implies that distribution with Vim is allowed
+
+if exists("b:current_syntax")
+ finish
+endif
+let s:keepcpo= &cpo
+set cpo&vim
+
+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
+
+syn region cmakeGeneratorExpression start="$<" end=">" contained oneline contains=cmakeVariableValue,cmakeProperty,cmakeGeneratorExpressions,cmakeTodo
+
+syn region cmakeString start='"' end='"' contained contains=cmakeTodo,cmakeVariableValue,cmakeEscaped
+
+syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo,cmakeVariableValue
+
+syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo
+
+syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeGeneratorExpressions,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeCommandManuallyAdded,cmakeArguments,cmakeTodo
+
+syn case match
+
+syn keyword cmakeProperty contained
+ \ ABSTRACT
+ \ ADDITIONAL_CLEAN_FILES
+ \ 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_ORIGIN_DEPENDS
+ \ AUTOGEN_PARALLEL
+ \ AUTOGEN_SOURCE_GROUP
+ \ AUTOGEN_TARGETS_FOLDER
+ \ AUTOGEN_TARGET_DEPENDS
+ \ AUTOMOC
+ \ AUTOMOC_COMPILER_PREDEFINES
+ \ AUTOMOC_DEPEND_FILTERS
+ \ AUTOMOC_EXECUTABLE
+ \ AUTOMOC_MACRO_NAMES
+ \ AUTOMOC_MOC_OPTIONS
+ \ AUTOMOC_SOURCE_GROUP
+ \ AUTOMOC_TARGETS_FOLDER
+ \ AUTORCC
+ \ AUTORCC_EXECUTABLE
+ \ AUTORCC_OPTIONS
+ \ AUTORCC_SOURCE_GROUP
+ \ AUTOUIC
+ \ AUTOUIC_EXECUTABLE
+ \ AUTOUIC_OPTIONS
+ \ AUTOUIC_SEARCH_PATHS
+ \ BINARY_DIR
+ \ BUILDSYSTEM_TARGETS
+ \ BUILD_RPATH
+ \ BUILD_RPATH_USE_ORIGIN
+ \ 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_CUDA_KNOWN_FEATURES
+ \ CMAKE_C_KNOWN_FEATURES
+ \ CMAKE_ROLE
+ \ 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
+ \ GHS_INTEGRITY_APP
+ \ GHS_NO_SOURCE_GROUP_FILE
+ \ 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
+ \ JOB_POOL_PRECOMPILE_HEADER
+ \ 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
+ \ MSVC_RUNTIME_LIBRARY
+ \ 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_REGULAR_EXPRESSION
+ \ SKIP_RETURN_CODE
+ \ SOURCES
+ \ SOURCE_DIR
+ \ SOVERSION
+ \ STATIC_LIBRARY_FLAGS
+ \ STATIC_LIBRARY_OPTIONS
+ \ STRINGS
+ \ SUBDIRECTORIES
+ \ SUFFIX
+ \ SYMBOLIC
+ \ Swift_DEPENDENCIES_FILE
+ \ Swift_DIAGNOSTICS_FILE
+ \ Swift_MODULE_DIRECTORY
+ \ Swift_MODULE_NAME
+ \ 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_JUST_MY_CODE_DEBUGGING
+ \ VS_KEYWORD
+ \ VS_MOBILE_EXTENSIONS_VERSION
+ \ VS_NO_SOLUTION_DEPLOY
+ \ VS_PROJECT_IMPORT
+ \ 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_GENERATE_SCHEME
+ \ XCODE_LAST_KNOWN_FILE_TYPE
+ \ XCODE_PRODUCT_TYPE
+ \ XCODE_SCHEME_ADDRESS_SANITIZER
+ \ XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
+ \ XCODE_SCHEME_ARGUMENTS
+ \ XCODE_SCHEME_DEBUG_AS_ROOT
+ \ XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
+ \ XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
+ \ XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
+ \ XCODE_SCHEME_ENVIRONMENT
+ \ XCODE_SCHEME_EXECUTABLE
+ \ XCODE_SCHEME_GUARD_MALLOC
+ \ XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
+ \ XCODE_SCHEME_MALLOC_GUARD_EDGES
+ \ XCODE_SCHEME_MALLOC_SCRIBBLE
+ \ XCODE_SCHEME_MALLOC_STACK
+ \ XCODE_SCHEME_THREAD_SANITIZER
+ \ XCODE_SCHEME_THREAD_SANITIZER_STOP
+ \ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
+ \ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
+ \ XCODE_SCHEME_ZOMBIE_OBJECTS
+ \ XCTEST
+
+syn keyword cmakeVariable contained
+ \ ANDROID
+ \ APPLE
+ \ BORLAND
+ \ BUILD_SHARED_LIBS
+ \ CACHE
+ \ CMAKE_ABSOLUTE_DESTINATION_FILES
+ \ CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS
+ \ CMAKE_ANDROID_API
+ \ CMAKE_ANDROID_API_MIN
+ \ CMAKE_ANDROID_ARCH
+ \ CMAKE_ANDROID_ARCH_ABI
+ \ CMAKE_ANDROID_ARM_MODE
+ \ CMAKE_ANDROID_ARM_NEON
+ \ CMAKE_ANDROID_ASSETS_DIRECTORIES
+ \ CMAKE_ANDROID_GUI
+ \ CMAKE_ANDROID_JAR_DEPENDENCIES
+ \ CMAKE_ANDROID_JAR_DIRECTORIES
+ \ CMAKE_ANDROID_JAVA_SOURCE_DIR
+ \ CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES
+ \ CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES
+ \ CMAKE_ANDROID_NDK
+ \ CMAKE_ANDROID_NDK_DEPRECATED_HEADERS
+ \ CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG
+ \ CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION
+ \ CMAKE_ANDROID_PROCESS_MAX
+ \ CMAKE_ANDROID_PROGUARD
+ \ CMAKE_ANDROID_PROGUARD_CONFIG_PATH
+ \ CMAKE_ANDROID_SECURE_PROPS_PATH
+ \ CMAKE_ANDROID_SKIP_ANT_STEP
+ \ CMAKE_ANDROID_STANDALONE_TOOLCHAIN
+ \ CMAKE_ANDROID_STL_TYPE
+ \ CMAKE_APPBUNDLE_PATH
+ \ CMAKE_AR
+ \ CMAKE_ARCHIVE_OUTPUT_DIRECTORY
+ \ CMAKE_ARGC
+ \ CMAKE_ARGV0
+ \ CMAKE_ASM
+ \ CMAKE_ASM_ANDROID_TOOLCHAIN_MACHINE
+ \ CMAKE_ASM_ANDROID_TOOLCHAIN_PREFIX
+ \ CMAKE_ASM_ANDROID_TOOLCHAIN_SUFFIX
+ \ CMAKE_ASM_ARCHIVE_APPEND
+ \ CMAKE_ASM_ARCHIVE_CREATE
+ \ CMAKE_ASM_ARCHIVE_FINISH
+ \ CMAKE_ASM_CLANG_TIDY
+ \ CMAKE_ASM_COMPILER
+ \ CMAKE_ASM_COMPILER_ABI
+ \ CMAKE_ASM_COMPILER_AR
+ \ CMAKE_ASM_COMPILER_ARCHITECTURE_ID
+ \ CMAKE_ASM_COMPILER_EXTERNAL_TOOLCHAIN
+ \ CMAKE_ASM_COMPILER_ID
+ \ CMAKE_ASM_COMPILER_LAUNCHER
+ \ CMAKE_ASM_COMPILER_LOADED
+ \ CMAKE_ASM_COMPILER_PREDEFINES_COMMAND
+ \ CMAKE_ASM_COMPILER_RANLIB
+ \ CMAKE_ASM_COMPILER_TARGET
+ \ CMAKE_ASM_COMPILER_VERSION
+ \ CMAKE_ASM_COMPILER_VERSION_INTERNAL
+ \ CMAKE_ASM_COMPILE_OBJECT
+ \ CMAKE_ASM_CPPCHECK
+ \ CMAKE_ASM_CPPLINT
+ \ CMAKE_ASM_CREATE_SHARED_LIBRARY
+ \ CMAKE_ASM_CREATE_SHARED_MODULE
+ \ CMAKE_ASM_CREATE_STATIC_LIBRARY
+ \ CMAKE_ASM_FLAGS
+ \ CMAKE_ASM_FLAGS_DEBUG
+ \ CMAKE_ASM_FLAGS_DEBUG_INIT
+ \ CMAKE_ASM_FLAGS_INIT
+ \ CMAKE_ASM_FLAGS_MINSIZEREL
+ \ CMAKE_ASM_FLAGS_MINSIZEREL_INIT
+ \ CMAKE_ASM_FLAGS_RELEASE
+ \ CMAKE_ASM_FLAGS_RELEASE_INIT
+ \ CMAKE_ASM_FLAGS_RELWITHDEBINFO
+ \ CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT
+ \ CMAKE_ASM_IGNORE_EXTENSIONS
+ \ CMAKE_ASM_IMPLICIT_INCLUDE_DIRECTORIES
+ \ CMAKE_ASM_IMPLICIT_LINK_DIRECTORIES
+ \ CMAKE_ASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ \ CMAKE_ASM_IMPLICIT_LINK_LIBRARIES
+ \ CMAKE_ASM_INCLUDE_WHAT_YOU_USE
+ \ CMAKE_ASM_INIT
+ \ CMAKE_ASM_LIBRARY_ARCHITECTURE
+ \ CMAKE_ASM_LINKER_PREFERENCE
+ \ CMAKE_ASM_LINKER_PREFERENCE_PROPAGATES
+ \ CMAKE_ASM_LINKER_WRAPPER_FLAG
+ \ CMAKE_ASM_LINKER_WRAPPER_FLAG_SEP
+ \ CMAKE_ASM_LINK_EXECUTABLE
+ \ CMAKE_ASM_MASM
+ \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_MACHINE
+ \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_PREFIX
+ \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_SUFFIX
+ \ CMAKE_ASM_MASM_ARCHIVE_APPEND
+ \ CMAKE_ASM_MASM_ARCHIVE_CREATE
+ \ CMAKE_ASM_MASM_ARCHIVE_FINISH
+ \ CMAKE_ASM_MASM_CLANG_TIDY
+ \ CMAKE_ASM_MASM_COMPILER
+ \ CMAKE_ASM_MASM_COMPILER_ABI
+ \ CMAKE_ASM_MASM_COMPILER_AR
+ \ CMAKE_ASM_MASM_COMPILER_ARCHITECTURE_ID
+ \ CMAKE_ASM_MASM_COMPILER_EXTERNAL_TOOLCHAIN
+ \ CMAKE_ASM_MASM_COMPILER_ID
+ \ CMAKE_ASM_MASM_COMPILER_LAUNCHER
+ \ CMAKE_ASM_MASM_COMPILER_LOADED
+ \ CMAKE_ASM_MASM_COMPILER_PREDEFINES_COMMAND
+ \ CMAKE_ASM_MASM_COMPILER_RANLIB
+ \ CMAKE_ASM_MASM_COMPILER_TARGET
+ \ CMAKE_ASM_MASM_COMPILER_VERSION
+ \ CMAKE_ASM_MASM_COMPILER_VERSION_INTERNAL
+ \ CMAKE_ASM_MASM_COMPILE_OBJECT
+ \ CMAKE_ASM_MASM_CPPCHECK
+ \ CMAKE_ASM_MASM_CPPLINT
+ \ CMAKE_ASM_MASM_CREATE_SHARED_LIBRARY
+ \ CMAKE_ASM_MASM_CREATE_SHARED_MODULE
+ \ CMAKE_ASM_MASM_CREATE_STATIC_LIBRARY
+ \ CMAKE_ASM_MASM_FLAGS
+ \ CMAKE_ASM_MASM_FLAGS_DEBUG
+ \ CMAKE_ASM_MASM_FLAGS_DEBUG_INIT
+ \ CMAKE_ASM_MASM_FLAGS_INIT
+ \ CMAKE_ASM_MASM_FLAGS_MINSIZEREL
+ \ CMAKE_ASM_MASM_FLAGS_MINSIZEREL_INIT
+ \ CMAKE_ASM_MASM_FLAGS_RELEASE
+ \ CMAKE_ASM_MASM_FLAGS_RELEASE_INIT
+ \ CMAKE_ASM_MASM_FLAGS_RELWITHDEBINFO
+ \ CMAKE_ASM_MASM_FLAGS_RELWITHDEBINFO_INIT
+ \ CMAKE_ASM_MASM_IGNORE_EXTENSIONS
+ \ CMAKE_ASM_MASM_IMPLICIT_INCLUDE_DIRECTORIES
+ \ CMAKE_ASM_MASM_IMPLICIT_LINK_DIRECTORIES
+ \ CMAKE_ASM_MASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ \ CMAKE_ASM_MASM_IMPLICIT_LINK_LIBRARIES
+ \ CMAKE_ASM_MASM_INCLUDE_WHAT_YOU_USE
+ \ CMAKE_ASM_MASM_INIT
+ \ CMAKE_ASM_MASM_LIBRARY_ARCHITECTURE
+ \ CMAKE_ASM_MASM_LINKER_PREFERENCE
+ \ CMAKE_ASM_MASM_LINKER_PREFERENCE_PROPAGATES
+ \ CMAKE_ASM_MASM_LINKER_WRAPPER_FLAG
+ \ CMAKE_ASM_MASM_LINKER_WRAPPER_FLAG_SEP
+ \ CMAKE_ASM_MASM_LINK_EXECUTABLE
+ \ CMAKE_ASM_MASM_OUTPUT_EXTENSION
+ \ CMAKE_ASM_MASM_PLATFORM_ID
+ \ CMAKE_ASM_MASM_SIMULATE_ID
+ \ CMAKE_ASM_MASM_SIMULATE_VERSION
+ \ CMAKE_ASM_MASM_SIZEOF_DATA_PTR
+ \ CMAKE_ASM_MASM_SOURCE_FILE_EXTENSIONS
+ \ CMAKE_ASM_MASM_STANDARD_INCLUDE_DIRECTORIES
+ \ CMAKE_ASM_MASM_STANDARD_LIBRARIES
+ \ CMAKE_ASM_MASM_VISIBILITY_PRESET
+ \ CMAKE_ASM_NASM
+ \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_MACHINE
+ \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_PREFIX
+ \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_SUFFIX
+ \ CMAKE_ASM_NASM_ARCHIVE_APPEND
+ \ CMAKE_ASM_NASM_ARCHIVE_CREATE
+ \ CMAKE_ASM_NASM_ARCHIVE_FINISH
+ \ CMAKE_ASM_NASM_CLANG_TIDY
+ \ CMAKE_ASM_NASM_COMPILER
+ \ CMAKE_ASM_NASM_COMPILER_ABI
+ \ CMAKE_ASM_NASM_COMPILER_AR
+ \ CMAKE_ASM_NASM_COMPILER_ARCHITECTURE_ID
+ \ CMAKE_ASM_NASM_COMPILER_EXTERNAL_TOOLCHAIN
+ \ CMAKE_ASM_NASM_COMPILER_ID
+ \ CMAKE_ASM_NASM_COMPILER_LAUNCHER
+ \ CMAKE_ASM_NASM_COMPILER_LOADED
+ \ CMAKE_ASM_NASM_COMPILER_PREDEFINES_COMMAND
+ \ CMAKE_ASM_NASM_COMPILER_RANLIB
+ \ CMAKE_ASM_NASM_COMPILER_TARGET
+ \ CMAKE_ASM_NASM_COMPILER_VERSION
+ \ CMAKE_ASM_NASM_COMPILER_VERSION_INTERNAL
+ \ CMAKE_ASM_NASM_COMPILE_OBJECT
+ \ CMAKE_ASM_NASM_CPPCHECK
+ \ CMAKE_ASM_NASM_CPPLINT
+ \ CMAKE_ASM_NASM_CREATE_SHARED_LIBRARY
+ \ CMAKE_ASM_NASM_CREATE_SHARED_MODULE
+ \ CMAKE_ASM_NASM_CREATE_STATIC_LIBRARY
+ \ CMAKE_ASM_NASM_FLAGS
+ \ CMAKE_ASM_NASM_FLAGS_DEBUG
+ \ CMAKE_ASM_NASM_FLAGS_DEBUG_INIT
+ \ CMAKE_ASM_NASM_FLAGS_INIT
+ \ CMAKE_ASM_NASM_FLAGS_MINSIZEREL
+ \ CMAKE_ASM_NASM_FLAGS_MINSIZEREL_INIT
+ \ CMAKE_ASM_NASM_FLAGS_RELEASE
+ \ CMAKE_ASM_NASM_FLAGS_RELEASE_INIT
+ \ CMAKE_ASM_NASM_FLAGS_RELWITHDEBINFO
+ \ CMAKE_ASM_NASM_FLAGS_RELWITHDEBINFO_INIT
+ \ CMAKE_ASM_NASM_IGNORE_EXTENSIONS
+ \ CMAKE_ASM_NASM_IMPLICIT_INCLUDE_DIRECTORIES
+ \ CMAKE_ASM_NASM_IMPLICIT_LINK_DIRECTORIES
+ \ CMAKE_ASM_NASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ \ CMAKE_ASM_NASM_IMPLICIT_LINK_LIBRARIES
+ \ CMAKE_ASM_NASM_INCLUDE_WHAT_YOU_USE
+ \ CMAKE_ASM_NASM_INIT
+ \ CMAKE_ASM_NASM_LIBRARY_ARCHITECTURE
+ \ CMAKE_ASM_NASM_LINKER_PREFERENCE
+ \ CMAKE_ASM_NASM_LINKER_PREFERENCE_PROPAGATES
+ \ CMAKE_ASM_NASM_LINKER_WRAPPER_FLAG
+ \ CMAKE_ASM_NASM_LINKER_WRAPPER_FLAG_SEP
+ \ CMAKE_ASM_NASM_LINK_EXECUTABLE
+ \ CMAKE_ASM_NASM_OUTPUT_EXTENSION
+ \ CMAKE_ASM_NASM_PLATFORM_ID
+ \ CMAKE_ASM_NASM_SIMULATE_ID
+ \ CMAKE_ASM_NASM_SIMULATE_VERSION
+ \ CMAKE_ASM_NASM_SIZEOF_DATA_PTR
+ \ CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS
+ \ CMAKE_ASM_NASM_STANDARD_INCLUDE_DIRECTORIES
+ \ CMAKE_ASM_NASM_STANDARD_LIBRARIES
+ \ CMAKE_ASM_NASM_VISIBILITY_PRESET
+ \ CMAKE_ASM_OUTPUT_EXTENSION
+ \ CMAKE_ASM_PLATFORM_ID
+ \ CMAKE_ASM_SIMULATE_ID
+ \ CMAKE_ASM_SIMULATE_VERSION
+ \ CMAKE_ASM_SIZEOF_DATA_PTR
+ \ CMAKE_ASM_SOURCE_FILE_EXTENSIONS
+ \ CMAKE_ASM_STANDARD_INCLUDE_DIRECTORIES
+ \ CMAKE_ASM_STANDARD_LIBRARIES
+ \ CMAKE_ASM_VISIBILITY_PRESET
+ \ CMAKE_AUTOGEN_ORIGIN_DEPENDS
+ \ 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_RPATH_USE_ORIGIN
+ \ CMAKE_BUILD_TOOL
+ \ CMAKE_BUILD_TYPE
+ \ CMAKE_BUILD_WITH_INSTALL_NAME_DIR
+ \ CMAKE_BUILD_WITH_INSTALL_RPATH
+ \ CMAKE_C
+ \ 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_CSharp
+ \ CMAKE_CSharp_ANDROID_TOOLCHAIN_MACHINE
+ \ CMAKE_CSharp_ANDROID_TOOLCHAIN_PREFIX
+ \ CMAKE_CSharp_ANDROID_TOOLCHAIN_SUFFIX
+ \ CMAKE_CSharp_ARCHIVE_APPEND
+ \ CMAKE_CSharp_ARCHIVE_CREATE
+ \ CMAKE_CSharp_ARCHIVE_FINISH
+ \ CMAKE_CSharp_CLANG_TIDY
+ \ CMAKE_CSharp_COMPILER
+ \ CMAKE_CSharp_COMPILER_ABI
+ \ CMAKE_CSharp_COMPILER_AR
+ \ CMAKE_CSharp_COMPILER_ARCHITECTURE_ID
+ \ CMAKE_CSharp_COMPILER_EXTERNAL_TOOLCHAIN
+ \ CMAKE_CSharp_COMPILER_ID
+ \ CMAKE_CSharp_COMPILER_LAUNCHER
+ \ CMAKE_CSharp_COMPILER_LOADED
+ \ CMAKE_CSharp_COMPILER_PREDEFINES_COMMAND
+ \ CMAKE_CSharp_COMPILER_RANLIB
+ \ CMAKE_CSharp_COMPILER_TARGET
+ \ CMAKE_CSharp_COMPILER_VERSION
+ \ CMAKE_CSharp_COMPILER_VERSION_INTERNAL
+ \ CMAKE_CSharp_COMPILE_OBJECT
+ \ CMAKE_CSharp_CPPCHECK
+ \ CMAKE_CSharp_CPPLINT
+ \ CMAKE_CSharp_CREATE_SHARED_LIBRARY
+ \ CMAKE_CSharp_CREATE_SHARED_MODULE
+ \ CMAKE_CSharp_CREATE_STATIC_LIBRARY
+ \ CMAKE_CSharp_FLAGS
+ \ CMAKE_CSharp_FLAGS_DEBUG
+ \ CMAKE_CSharp_FLAGS_DEBUG_INIT
+ \ CMAKE_CSharp_FLAGS_INIT
+ \ CMAKE_CSharp_FLAGS_MINSIZEREL
+ \ CMAKE_CSharp_FLAGS_MINSIZEREL_INIT
+ \ CMAKE_CSharp_FLAGS_RELEASE
+ \ CMAKE_CSharp_FLAGS_RELEASE_INIT
+ \ CMAKE_CSharp_FLAGS_RELWITHDEBINFO
+ \ CMAKE_CSharp_FLAGS_RELWITHDEBINFO_INIT
+ \ CMAKE_CSharp_IGNORE_EXTENSIONS
+ \ CMAKE_CSharp_IMPLICIT_INCLUDE_DIRECTORIES
+ \ CMAKE_CSharp_IMPLICIT_LINK_DIRECTORIES
+ \ CMAKE_CSharp_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ \ CMAKE_CSharp_IMPLICIT_LINK_LIBRARIES
+ \ CMAKE_CSharp_INCLUDE_WHAT_YOU_USE
+ \ CMAKE_CSharp_INIT
+ \ CMAKE_CSharp_LIBRARY_ARCHITECTURE
+ \ CMAKE_CSharp_LINKER_PREFERENCE
+ \ CMAKE_CSharp_LINKER_PREFERENCE_PROPAGATES
+ \ CMAKE_CSharp_LINKER_WRAPPER_FLAG
+ \ CMAKE_CSharp_LINKER_WRAPPER_FLAG_SEP
+ \ CMAKE_CSharp_LINK_EXECUTABLE
+ \ CMAKE_CSharp_OUTPUT_EXTENSION
+ \ CMAKE_CSharp_PLATFORM_ID
+ \ CMAKE_CSharp_SIMULATE_ID
+ \ CMAKE_CSharp_SIMULATE_VERSION
+ \ CMAKE_CSharp_SIZEOF_DATA_PTR
+ \ CMAKE_CSharp_SOURCE_FILE_EXTENSIONS
+ \ CMAKE_CSharp_STANDARD_INCLUDE_DIRECTORIES
+ \ CMAKE_CSharp_STANDARD_LIBRARIES
+ \ CMAKE_CSharp_VISIBILITY_PRESET
+ \ CMAKE_CTEST_COMMAND
+ \ CMAKE_CUDA
+ \ CMAKE_CUDA_ANDROID_TOOLCHAIN_MACHINE
+ \ CMAKE_CUDA_ANDROID_TOOLCHAIN_PREFIX
+ \ CMAKE_CUDA_ANDROID_TOOLCHAIN_SUFFIX
+ \ CMAKE_CUDA_ARCHIVE_APPEND
+ \ CMAKE_CUDA_ARCHIVE_CREATE
+ \ CMAKE_CUDA_ARCHIVE_FINISH
+ \ CMAKE_CUDA_CLANG_TIDY
+ \ CMAKE_CUDA_COMPILER
+ \ CMAKE_CUDA_COMPILER_ABI
+ \ CMAKE_CUDA_COMPILER_AR
+ \ CMAKE_CUDA_COMPILER_ARCHITECTURE_ID
+ \ CMAKE_CUDA_COMPILER_EXTERNAL_TOOLCHAIN
+ \ CMAKE_CUDA_COMPILE_FEATURES
+ \ CMAKE_CUDA_COMPILER_ID
+ \ CMAKE_CUDA_COMPILER_LAUNCHER
+ \ CMAKE_CUDA_COMPILER_LOADED
+ \ CMAKE_CUDA_COMPILER_PREDEFINES_COMMAND
+ \ CMAKE_CUDA_COMPILER_RANLIB
+ \ CMAKE_CUDA_COMPILER_TARGET
+ \ CMAKE_CUDA_COMPILER_VERSION
+ \ CMAKE_CUDA_COMPILER_VERSION_INTERNAL
+ \ CMAKE_CUDA_COMPILE_OBJECT
+ \ CMAKE_CUDA_CPPCHECK
+ \ CMAKE_CUDA_CPPLINT
+ \ CMAKE_CUDA_CREATE_SHARED_LIBRARY
+ \ CMAKE_CUDA_CREATE_SHARED_MODULE
+ \ CMAKE_CUDA_CREATE_STATIC_LIBRARY
+ \ CMAKE_CUDA_EXTENSIONS
+ \ CMAKE_CUDA_FLAGS
+ \ CMAKE_CUDA_FLAGS_DEBUG
+ \ CMAKE_CUDA_FLAGS_DEBUG_INIT
+ \ CMAKE_CUDA_FLAGS_INIT
+ \ CMAKE_CUDA_FLAGS_MINSIZEREL
+ \ CMAKE_CUDA_FLAGS_MINSIZEREL_INIT
+ \ CMAKE_CUDA_FLAGS_RELEASE
+ \ CMAKE_CUDA_FLAGS_RELEASE_INIT
+ \ CMAKE_CUDA_FLAGS_RELWITHDEBINFO
+ \ CMAKE_CUDA_FLAGS_RELWITHDEBINFO_INIT
+ \ CMAKE_CUDA_HOST_COMPILER
+ \ CMAKE_CUDA_IGNORE_EXTENSIONS
+ \ CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES
+ \ CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES
+ \ CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ \ CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES
+ \ CMAKE_CUDA_INCLUDE_WHAT_YOU_USE
+ \ CMAKE_CUDA_INIT
+ \ CMAKE_CUDA_LIBRARY_ARCHITECTURE
+ \ CMAKE_CUDA_LINKER_PREFERENCE
+ \ CMAKE_CUDA_LINKER_PREFERENCE_PROPAGATES
+ \ CMAKE_CUDA_LINKER_WRAPPER_FLAG
+ \ CMAKE_CUDA_LINKER_WRAPPER_FLAG_SEP
+ \ CMAKE_CUDA_LINK_EXECUTABLE
+ \ CMAKE_CUDA_OUTPUT_EXTENSION
+ \ CMAKE_CUDA_PLATFORM_ID
+ \ CMAKE_CUDA_SEPARABLE_COMPILATION
+ \ CMAKE_CUDA_SIMULATE_ID
+ \ CMAKE_CUDA_SIMULATE_VERSION
+ \ CMAKE_CUDA_SIZEOF_DATA_PTR
+ \ CMAKE_CUDA_SOURCE_FILE_EXTENSIONS
+ \ CMAKE_CUDA_STANDARD
+ \ CMAKE_CUDA_STANDARD_INCLUDE_DIRECTORIES
+ \ CMAKE_CUDA_STANDARD_LIBRARIES
+ \ CMAKE_CUDA_STANDARD_REQUIRED
+ \ CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES
+ \ CMAKE_CUDA_VISIBILITY_PRESET
+ \ CMAKE_CURRENT_BINARY_DIR
+ \ CMAKE_CURRENT_LIST_DIR
+ \ CMAKE_CURRENT_LIST_FILE
+ \ CMAKE_CURRENT_LIST_LINE
+ \ CMAKE_CURRENT_SOURCE_DIR
+ \ CMAKE_CXX
+ \ CMAKE_CXX_ANDROID_TOOLCHAIN_MACHINE
+ \ CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX
+ \ CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX
+ \ CMAKE_CXX_ARCHIVE_APPEND
+ \ CMAKE_CXX_ARCHIVE_CREATE
+ \ CMAKE_CXX_ARCHIVE_FINISH
+ \ CMAKE_CXX_CLANG_TIDY
+ \ CMAKE_CXX_COMPILER
+ \ CMAKE_CXX_COMPILER_ABI
+ \ CMAKE_CXX_COMPILER_AR
+ \ CMAKE_CXX_COMPILER_ARCHITECTURE_ID
+ \ CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN
+ \ CMAKE_CXX_COMPILER_ID
+ \ CMAKE_CXX_COMPILER_LAUNCHER
+ \ CMAKE_CXX_COMPILER_LOADED
+ \ CMAKE_CXX_COMPILER_PREDEFINES_COMMAND
+ \ CMAKE_CXX_COMPILER_RANLIB
+ \ CMAKE_CXX_COMPILER_TARGET
+ \ CMAKE_CXX_COMPILER_VERSION
+ \ CMAKE_CXX_COMPILER_VERSION_INTERNAL
+ \ CMAKE_CXX_COMPILE_FEATURES
+ \ CMAKE_CXX_COMPILE_OBJECT
+ \ CMAKE_CXX_CPPCHECK
+ \ CMAKE_CXX_CPPLINT
+ \ CMAKE_CXX_CREATE_SHARED_LIBRARY
+ \ CMAKE_CXX_CREATE_SHARED_MODULE
+ \ CMAKE_CXX_CREATE_STATIC_LIBRARY
+ \ CMAKE_CXX_EXTENSIONS
+ \ CMAKE_CXX_FLAGS
+ \ CMAKE_CXX_FLAGS_DEBUG
+ \ CMAKE_CXX_FLAGS_DEBUG_INIT
+ \ CMAKE_CXX_FLAGS_INIT
+ \ CMAKE_CXX_FLAGS_MINSIZEREL
+ \ CMAKE_CXX_FLAGS_MINSIZEREL_INIT
+ \ CMAKE_CXX_FLAGS_RELEASE
+ \ CMAKE_CXX_FLAGS_RELEASE_INIT
+ \ CMAKE_CXX_FLAGS_RELWITHDEBINFO
+ \ CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT
+ \ CMAKE_CXX_IGNORE_EXTENSIONS
+ \ CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
+ \ CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES
+ \ CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ \ CMAKE_CXX_IMPLICIT_LINK_LIBRARIES
+ \ CMAKE_CXX_INCLUDE_WHAT_YOU_USE
+ \ CMAKE_CXX_INIT
+ \ CMAKE_CXX_LIBRARY_ARCHITECTURE
+ \ CMAKE_CXX_LINKER_PREFERENCE
+ \ CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES
+ \ CMAKE_CXX_LINKER_WRAPPER_FLAG
+ \ CMAKE_CXX_LINKER_WRAPPER_FLAG_SEP
+ \ CMAKE_CXX_LINK_EXECUTABLE
+ \ CMAKE_CXX_OUTPUT_EXTENSION
+ \ CMAKE_CXX_PLATFORM_ID
+ \ CMAKE_CXX_SIMULATE_ID
+ \ CMAKE_CXX_SIMULATE_VERSION
+ \ CMAKE_CXX_SIZEOF_DATA_PTR
+ \ CMAKE_CXX_SOURCE_FILE_EXTENSIONS
+ \ CMAKE_CXX_STANDARD
+ \ CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
+ \ CMAKE_CXX_STANDARD_LIBRARIES
+ \ CMAKE_CXX_STANDARD_REQUIRED
+ \ CMAKE_CXX_VISIBILITY_PRESET
+ \ CMAKE_C_ANDROID_TOOLCHAIN_MACHINE
+ \ CMAKE_C_ANDROID_TOOLCHAIN_PREFIX
+ \ CMAKE_C_ANDROID_TOOLCHAIN_SUFFIX
+ \ CMAKE_C_ARCHIVE_APPEND
+ \ CMAKE_C_ARCHIVE_CREATE
+ \ CMAKE_C_ARCHIVE_FINISH
+ \ CMAKE_C_CLANG_TIDY
+ \ CMAKE_C_COMPILER
+ \ CMAKE_C_COMPILER_ABI
+ \ CMAKE_C_COMPILER_AR
+ \ CMAKE_C_COMPILER_ARCHITECTURE_ID
+ \ CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN
+ \ CMAKE_C_COMPILER_ID
+ \ CMAKE_C_COMPILER_LAUNCHER
+ \ CMAKE_C_COMPILER_LOADED
+ \ CMAKE_C_COMPILER_PREDEFINES_COMMAND
+ \ CMAKE_C_COMPILER_RANLIB
+ \ CMAKE_C_COMPILER_TARGET
+ \ CMAKE_C_COMPILER_VERSION
+ \ CMAKE_C_COMPILER_VERSION_INTERNAL
+ \ CMAKE_C_COMPILE_FEATURES
+ \ CMAKE_C_COMPILE_OBJECT
+ \ CMAKE_C_CPPCHECK
+ \ CMAKE_C_CPPLINT
+ \ CMAKE_C_CREATE_SHARED_LIBRARY
+ \ CMAKE_C_CREATE_SHARED_MODULE
+ \ CMAKE_C_CREATE_STATIC_LIBRARY
+ \ CMAKE_C_EXTENSIONS
+ \ CMAKE_C_FLAGS
+ \ CMAKE_C_FLAGS_DEBUG
+ \ CMAKE_C_FLAGS_DEBUG_INIT
+ \ CMAKE_C_FLAGS_INIT
+ \ CMAKE_C_FLAGS_MINSIZEREL
+ \ CMAKE_C_FLAGS_MINSIZEREL_INIT
+ \ CMAKE_C_FLAGS_RELEASE
+ \ CMAKE_C_FLAGS_RELEASE_INIT
+ \ CMAKE_C_FLAGS_RELWITHDEBINFO
+ \ CMAKE_C_FLAGS_RELWITHDEBINFO_INIT
+ \ CMAKE_C_IGNORE_EXTENSIONS
+ \ CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
+ \ CMAKE_C_IMPLICIT_LINK_DIRECTORIES
+ \ CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ \ CMAKE_C_IMPLICIT_LINK_LIBRARIES
+ \ CMAKE_C_INCLUDE_WHAT_YOU_USE
+ \ CMAKE_C_INIT
+ \ CMAKE_C_LIBRARY_ARCHITECTURE
+ \ CMAKE_C_LINKER_PREFERENCE
+ \ CMAKE_C_LINKER_PREFERENCE_PROPAGATES
+ \ CMAKE_C_LINKER_WRAPPER_FLAG
+ \ CMAKE_C_LINKER_WRAPPER_FLAG_SEP
+ \ CMAKE_C_LINK_EXECUTABLE
+ \ CMAKE_C_OUTPUT_EXTENSION
+ \ CMAKE_C_PLATFORM_ID
+ \ CMAKE_C_SIMULATE_ID
+ \ CMAKE_C_SIMULATE_VERSION
+ \ CMAKE_C_SIZEOF_DATA_PTR
+ \ CMAKE_C_SOURCE_FILE_EXTENSIONS
+ \ CMAKE_C_STANDARD
+ \ CMAKE_C_STANDARD_INCLUDE_DIRECTORIES
+ \ CMAKE_C_STANDARD_LIBRARIES
+ \ CMAKE_C_STANDARD_REQUIRED
+ \ CMAKE_C_VISIBILITY_PRESET
+ \ 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_RESOURCE_ENCODING
+ \ CMAKE_ECLIPSE_VERSION
+ \ CMAKE_EDIT_COMMAND
+ \ CMAKE_ENABLE_EXPORTS
+ \ CMAKE_ERROR_DEPRECATED
+ \ CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
+ \ CMAKE_EXECUTABLE_SUFFIX
+ \ CMAKE_EXECUTE_PROCESS_COMMAND_ECHO
+ \ CMAKE_EXE_LINKER_FLAGS
+ \ CMAKE_EXE_LINKER_FLAGS_INIT
+ \ CMAKE_EXPORT_COMPILE_COMMANDS
+ \ CMAKE_EXPORT_NO_PACKAGE_REGISTRY
+ \ CMAKE_EXPORT_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_PREFER_CONFIG
+ \ CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS
+ \ 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_FIND_USE_CMAKE_ENVIRONMENT_PATH
+ \ CMAKE_FIND_USE_CMAKE_PATH
+ \ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH
+ \ CMAKE_FIND_USE_PACKAGE_REGISTRY
+ \ CMAKE_FIND_USE_PACKAGE_ROOT_PATH
+ \ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH
+ \ CMAKE_FOLDER
+ \ CMAKE_FRAMEWORK
+ \ CMAKE_FRAMEWORK_PATH
+ \ CMAKE_Fortran
+ \ CMAKE_Fortran_ANDROID_TOOLCHAIN_MACHINE
+ \ CMAKE_Fortran_ANDROID_TOOLCHAIN_PREFIX
+ \ CMAKE_Fortran_ANDROID_TOOLCHAIN_SUFFIX
+ \ CMAKE_Fortran_ARCHIVE_APPEND
+ \ CMAKE_Fortran_ARCHIVE_CREATE
+ \ CMAKE_Fortran_ARCHIVE_FINISH
+ \ CMAKE_Fortran_CLANG_TIDY
+ \ CMAKE_Fortran_COMPILER
+ \ CMAKE_Fortran_COMPILER_ABI
+ \ CMAKE_Fortran_COMPILER_AR
+ \ CMAKE_Fortran_COMPILER_ARCHITECTURE_ID
+ \ CMAKE_Fortran_COMPILER_EXTERNAL_TOOLCHAIN
+ \ CMAKE_Fortran_COMPILER_ID
+ \ CMAKE_Fortran_COMPILER_LAUNCHER
+ \ CMAKE_Fortran_COMPILER_LOADED
+ \ CMAKE_Fortran_COMPILER_PREDEFINES_COMMAND
+ \ CMAKE_Fortran_COMPILER_RANLIB
+ \ CMAKE_Fortran_COMPILER_TARGET
+ \ CMAKE_Fortran_COMPILER_VERSION
+ \ CMAKE_Fortran_COMPILER_VERSION_INTERNAL
+ \ CMAKE_Fortran_COMPILE_OBJECT
+ \ CMAKE_Fortran_CPPCHECK
+ \ CMAKE_Fortran_CPPLINT
+ \ CMAKE_Fortran_CREATE_SHARED_LIBRARY
+ \ CMAKE_Fortran_CREATE_SHARED_MODULE
+ \ CMAKE_Fortran_CREATE_STATIC_LIBRARY
+ \ CMAKE_Fortran_FLAGS
+ \ CMAKE_Fortran_FLAGS_DEBUG
+ \ CMAKE_Fortran_FLAGS_DEBUG_INIT
+ \ CMAKE_Fortran_FLAGS_INIT
+ \ CMAKE_Fortran_FLAGS_MINSIZEREL
+ \ CMAKE_Fortran_FLAGS_MINSIZEREL_INIT
+ \ CMAKE_Fortran_FLAGS_RELEASE
+ \ CMAKE_Fortran_FLAGS_RELEASE_INIT
+ \ CMAKE_Fortran_FLAGS_RELWITHDEBINFO
+ \ CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT
+ \ CMAKE_Fortran_FORMAT
+ \ CMAKE_Fortran_IGNORE_EXTENSIONS
+ \ CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES
+ \ CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES
+ \ CMAKE_Fortran_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ \ CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES
+ \ CMAKE_Fortran_INCLUDE_WHAT_YOU_USE
+ \ CMAKE_Fortran_INIT
+ \ CMAKE_Fortran_LIBRARY_ARCHITECTURE
+ \ CMAKE_Fortran_LINKER_PREFERENCE
+ \ CMAKE_Fortran_LINKER_PREFERENCE_PROPAGATES
+ \ CMAKE_Fortran_LINKER_WRAPPER_FLAG
+ \ CMAKE_Fortran_LINKER_WRAPPER_FLAG_SEP
+ \ CMAKE_Fortran_LINK_EXECUTABLE
+ \ CMAKE_Fortran_MODDIR_DEFAULT
+ \ CMAKE_Fortran_MODDIR_FLAG
+ \ CMAKE_Fortran_MODOUT_FLAG
+ \ CMAKE_Fortran_MODULE_DIRECTORY
+ \ CMAKE_Fortran_OUTPUT_EXTENSION
+ \ CMAKE_Fortran_PLATFORM_ID
+ \ CMAKE_Fortran_SIMULATE_ID
+ \ CMAKE_Fortran_SIMULATE_VERSION
+ \ CMAKE_Fortran_SIZEOF_DATA_PTR
+ \ CMAKE_Fortran_SOURCE_FILE_EXTENSIONS
+ \ CMAKE_Fortran_STANDARD_INCLUDE_DIRECTORIES
+ \ CMAKE_Fortran_STANDARD_LIBRARIES
+ \ CMAKE_Fortran_VISIBILITY_PRESET
+ \ CMAKE_GENERATOR
+ \ CMAKE_GENERATOR_INSTANCE
+ \ CMAKE_GENERATOR_PLATFORM
+ \ CMAKE_GENERATOR_TOOLSET
+ \ CMAKE_GHS_NO_SOURCE_GROUP_FILE
+ \ CMAKE_GLOBAL_AUTOGEN_TARGET
+ \ CMAKE_GLOBAL_AUTOGEN_TARGET_NAME
+ \ CMAKE_GLOBAL_AUTORCC_TARGET
+ \ CMAKE_GLOBAL_AUTORCC_TARGET_NAME
+ \ 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_JOB_POOL_PRECOMPILE_HEADER
+ \ CMAKE_Java
+ \ CMAKE_Java_ANDROID_TOOLCHAIN_MACHINE
+ \ CMAKE_Java_ANDROID_TOOLCHAIN_PREFIX
+ \ CMAKE_Java_ANDROID_TOOLCHAIN_SUFFIX
+ \ CMAKE_Java_ARCHIVE_APPEND
+ \ CMAKE_Java_ARCHIVE_CREATE
+ \ CMAKE_Java_ARCHIVE_FINISH
+ \ CMAKE_Java_CLANG_TIDY
+ \ CMAKE_Java_COMPILER
+ \ CMAKE_Java_COMPILER_ABI
+ \ CMAKE_Java_COMPILER_AR
+ \ CMAKE_Java_COMPILER_ARCHITECTURE_ID
+ \ CMAKE_Java_COMPILER_EXTERNAL_TOOLCHAIN
+ \ CMAKE_Java_COMPILER_ID
+ \ CMAKE_Java_COMPILER_LAUNCHER
+ \ CMAKE_Java_COMPILER_LOADED
+ \ CMAKE_Java_COMPILER_PREDEFINES_COMMAND
+ \ CMAKE_Java_COMPILER_RANLIB
+ \ CMAKE_Java_COMPILER_TARGET
+ \ CMAKE_Java_COMPILER_VERSION
+ \ CMAKE_Java_COMPILER_VERSION_INTERNAL
+ \ CMAKE_Java_COMPILE_OBJECT
+ \ CMAKE_Java_CPPCHECK
+ \ CMAKE_Java_CPPLINT
+ \ CMAKE_Java_CREATE_SHARED_LIBRARY
+ \ CMAKE_Java_CREATE_SHARED_MODULE
+ \ CMAKE_Java_CREATE_STATIC_LIBRARY
+ \ CMAKE_Java_FLAGS
+ \ CMAKE_Java_FLAGS_DEBUG
+ \ CMAKE_Java_FLAGS_DEBUG_INIT
+ \ CMAKE_Java_FLAGS_INIT
+ \ CMAKE_Java_FLAGS_MINSIZEREL
+ \ CMAKE_Java_FLAGS_MINSIZEREL_INIT
+ \ CMAKE_Java_FLAGS_RELEASE
+ \ CMAKE_Java_FLAGS_RELEASE_INIT
+ \ CMAKE_Java_FLAGS_RELWITHDEBINFO
+ \ CMAKE_Java_FLAGS_RELWITHDEBINFO_INIT
+ \ CMAKE_Java_IGNORE_EXTENSIONS
+ \ CMAKE_Java_IMPLICIT_INCLUDE_DIRECTORIES
+ \ CMAKE_Java_IMPLICIT_LINK_DIRECTORIES
+ \ CMAKE_Java_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ \ CMAKE_Java_IMPLICIT_LINK_LIBRARIES
+ \ CMAKE_Java_INCLUDE_WHAT_YOU_USE
+ \ CMAKE_Java_INIT
+ \ CMAKE_Java_LIBRARY_ARCHITECTURE
+ \ CMAKE_Java_LINKER_PREFERENCE
+ \ CMAKE_Java_LINKER_PREFERENCE_PROPAGATES
+ \ CMAKE_Java_LINKER_WRAPPER_FLAG
+ \ CMAKE_Java_LINKER_WRAPPER_FLAG_SEP
+ \ CMAKE_Java_LINK_EXECUTABLE
+ \ CMAKE_Java_OUTPUT_EXTENSION
+ \ CMAKE_Java_PLATFORM_ID
+ \ CMAKE_Java_SIMULATE_ID
+ \ CMAKE_Java_SIMULATE_VERSION
+ \ CMAKE_Java_SIZEOF_DATA_PTR
+ \ CMAKE_Java_SOURCE_FILE_EXTENSIONS
+ \ CMAKE_Java_STANDARD_INCLUDE_DIRECTORIES
+ \ CMAKE_Java_STANDARD_LIBRARIES
+ \ CMAKE_Java_VISIBILITY_PRESET
+ \ 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_MAXIMUM_RECURSION_DEPTH
+ \ 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_MSVC_RUNTIME_LIBRARY
+ \ 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_INCLUDE
+ \ CMAKE_PROJECT_INCLUDE_BEFORE
+ \ 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_RC
+ \ CMAKE_RC_ANDROID_TOOLCHAIN_MACHINE
+ \ CMAKE_RC_ANDROID_TOOLCHAIN_PREFIX
+ \ CMAKE_RC_ANDROID_TOOLCHAIN_SUFFIX
+ \ CMAKE_RC_ARCHIVE_APPEND
+ \ CMAKE_RC_ARCHIVE_CREATE
+ \ CMAKE_RC_ARCHIVE_FINISH
+ \ CMAKE_RC_CLANG_TIDY
+ \ CMAKE_RC_COMPILER
+ \ CMAKE_RC_COMPILER_ABI
+ \ CMAKE_RC_COMPILER_AR
+ \ CMAKE_RC_COMPILER_ARCHITECTURE_ID
+ \ CMAKE_RC_COMPILER_EXTERNAL_TOOLCHAIN
+ \ CMAKE_RC_COMPILER_ID
+ \ CMAKE_RC_COMPILER_LAUNCHER
+ \ CMAKE_RC_COMPILER_LOADED
+ \ CMAKE_RC_COMPILER_PREDEFINES_COMMAND
+ \ CMAKE_RC_COMPILER_RANLIB
+ \ CMAKE_RC_COMPILER_TARGET
+ \ CMAKE_RC_COMPILER_VERSION
+ \ CMAKE_RC_COMPILER_VERSION_INTERNAL
+ \ CMAKE_RC_COMPILE_OBJECT
+ \ CMAKE_RC_CPPCHECK
+ \ CMAKE_RC_CPPLINT
+ \ CMAKE_RC_CREATE_SHARED_LIBRARY
+ \ CMAKE_RC_CREATE_SHARED_MODULE
+ \ CMAKE_RC_CREATE_STATIC_LIBRARY
+ \ CMAKE_RC_FLAGS
+ \ CMAKE_RC_FLAGS_DEBUG
+ \ CMAKE_RC_FLAGS_DEBUG_INIT
+ \ CMAKE_RC_FLAGS_INIT
+ \ CMAKE_RC_FLAGS_MINSIZEREL
+ \ CMAKE_RC_FLAGS_MINSIZEREL_INIT
+ \ CMAKE_RC_FLAGS_RELEASE
+ \ CMAKE_RC_FLAGS_RELEASE_INIT
+ \ CMAKE_RC_FLAGS_RELWITHDEBINFO
+ \ CMAKE_RC_FLAGS_RELWITHDEBINFO_INIT
+ \ CMAKE_RC_IGNORE_EXTENSIONS
+ \ CMAKE_RC_IMPLICIT_INCLUDE_DIRECTORIES
+ \ CMAKE_RC_IMPLICIT_LINK_DIRECTORIES
+ \ CMAKE_RC_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ \ CMAKE_RC_IMPLICIT_LINK_LIBRARIES
+ \ CMAKE_RC_INCLUDE_WHAT_YOU_USE
+ \ CMAKE_RC_INIT
+ \ CMAKE_RC_LIBRARY_ARCHITECTURE
+ \ CMAKE_RC_LINKER_PREFERENCE
+ \ CMAKE_RC_LINKER_PREFERENCE_PROPAGATES
+ \ CMAKE_RC_LINKER_WRAPPER_FLAG
+ \ CMAKE_RC_LINKER_WRAPPER_FLAG_SEP
+ \ CMAKE_RC_LINK_EXECUTABLE
+ \ CMAKE_RC_OUTPUT_EXTENSION
+ \ CMAKE_RC_PLATFORM_ID
+ \ CMAKE_RC_SIMULATE_ID
+ \ CMAKE_RC_SIMULATE_VERSION
+ \ CMAKE_RC_SIZEOF_DATA_PTR
+ \ CMAKE_RC_SOURCE_FILE_EXTENSIONS
+ \ CMAKE_RC_STANDARD_INCLUDE_DIRECTORIES
+ \ CMAKE_RC_STANDARD_LIBRARIES
+ \ CMAKE_RC_VISIBILITY_PRESET
+ \ 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
+ \ CMAKE_Swift_ANDROID_TOOLCHAIN_MACHINE
+ \ CMAKE_Swift_ANDROID_TOOLCHAIN_PREFIX
+ \ CMAKE_Swift_ANDROID_TOOLCHAIN_SUFFIX
+ \ CMAKE_Swift_ARCHIVE_APPEND
+ \ CMAKE_Swift_ARCHIVE_CREATE
+ \ CMAKE_Swift_ARCHIVE_FINISH
+ \ CMAKE_Swift_CLANG_TIDY
+ \ CMAKE_Swift_COMPILER
+ \ CMAKE_Swift_COMPILER_ABI
+ \ CMAKE_Swift_COMPILER_AR
+ \ CMAKE_Swift_COMPILER_ARCHITECTURE_ID
+ \ CMAKE_Swift_COMPILER_EXTERNAL_TOOLCHAIN
+ \ CMAKE_Swift_COMPILER_ID
+ \ CMAKE_Swift_COMPILER_LAUNCHER
+ \ CMAKE_Swift_COMPILER_LOADED
+ \ CMAKE_Swift_COMPILER_PREDEFINES_COMMAND
+ \ CMAKE_Swift_COMPILER_RANLIB
+ \ CMAKE_Swift_COMPILER_TARGET
+ \ CMAKE_Swift_COMPILER_VERSION
+ \ CMAKE_Swift_COMPILER_VERSION_INTERNAL
+ \ CMAKE_Swift_COMPILE_OBJECT
+ \ CMAKE_Swift_CPPCHECK
+ \ CMAKE_Swift_CPPLINT
+ \ CMAKE_Swift_CREATE_SHARED_LIBRARY
+ \ CMAKE_Swift_CREATE_SHARED_MODULE
+ \ CMAKE_Swift_CREATE_STATIC_LIBRARY
+ \ CMAKE_Swift_FLAGS
+ \ CMAKE_Swift_FLAGS_DEBUG
+ \ CMAKE_Swift_FLAGS_DEBUG_INIT
+ \ CMAKE_Swift_FLAGS_INIT
+ \ CMAKE_Swift_FLAGS_MINSIZEREL
+ \ CMAKE_Swift_FLAGS_MINSIZEREL_INIT
+ \ CMAKE_Swift_FLAGS_RELEASE
+ \ CMAKE_Swift_FLAGS_RELEASE_INIT
+ \ CMAKE_Swift_FLAGS_RELWITHDEBINFO
+ \ CMAKE_Swift_FLAGS_RELWITHDEBINFO_INIT
+ \ CMAKE_Swift_IGNORE_EXTENSIONS
+ \ CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES
+ \ CMAKE_Swift_IMPLICIT_LINK_DIRECTORIES
+ \ CMAKE_Swift_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
+ \ CMAKE_Swift_IMPLICIT_LINK_LIBRARIES
+ \ CMAKE_Swift_INCLUDE_WHAT_YOU_USE
+ \ CMAKE_Swift_INIT
+ \ CMAKE_Swift_LANGUAGE_VERSION
+ \ CMAKE_Swift_LIBRARY_ARCHITECTURE
+ \ CMAKE_Swift_LINKER_PREFERENCE
+ \ CMAKE_Swift_LINKER_PREFERENCE_PROPAGATES
+ \ CMAKE_Swift_LINKER_WRAPPER_FLAG
+ \ CMAKE_Swift_LINKER_WRAPPER_FLAG_SEP
+ \ CMAKE_Swift_LINK_EXECUTABLE
+ \ CMAKE_Swift_MODULE_DIRECTORY
+ \ CMAKE_Swift_OUTPUT_EXTENSION
+ \ CMAKE_Swift_PLATFORM_ID
+ \ CMAKE_Swift_SIMULATE_ID
+ \ CMAKE_Swift_SIMULATE_VERSION
+ \ CMAKE_Swift_SIZEOF_DATA_PTR
+ \ CMAKE_Swift_SOURCE_FILE_EXTENSIONS
+ \ CMAKE_Swift_STANDARD_INCLUDE_DIRECTORIES
+ \ CMAKE_Swift_STANDARD_LIBRARIES
+ \ CMAKE_Swift_VISIBILITY_PRESET
+ \ 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_USER_MAKE_RULES_OVERRIDE_ASM
+ \ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM_MASM
+ \ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM_NASM
+ \ CMAKE_USER_MAKE_RULES_OVERRIDE_C
+ \ CMAKE_USER_MAKE_RULES_OVERRIDE_CSharp
+ \ CMAKE_USER_MAKE_RULES_OVERRIDE_CUDA
+ \ CMAKE_USER_MAKE_RULES_OVERRIDE_CXX
+ \ CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran
+ \ CMAKE_USER_MAKE_RULES_OVERRIDE_Java
+ \ CMAKE_USER_MAKE_RULES_OVERRIDE_RC
+ \ CMAKE_USER_MAKE_RULES_OVERRIDE_Swift
+ \ 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_JUST_MY_CODE_DEBUGGING
+ \ CMAKE_VS_MSBUILD_COMMAND
+ \ CMAKE_VS_NsightTegra_VERSION
+ \ CMAKE_VS_PLATFORM_NAME
+ \ CMAKE_VS_PLATFORM_NAME_DEFAULT
+ \ 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_TESTS_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_SUBMIT_URL
+ \ 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_UPDATE_VERSION_OVERRIDE
+ \ CTEST_USE_LAUNCHERS
+ \ CYGWIN
+ \ ENV
+ \ EXECUTABLE_OUTPUT_PATH
+ \ GHS-MULTI
+ \ IOS
+ \ LIBRARY_OUTPUT_PATH
+ \ MINGW
+ \ MSVC
+ \ MSVC10
+ \ MSVC11
+ \ MSVC12
+ \ MSVC14
+ \ MSVC60
+ \ MSVC70
+ \ MSVC71
+ \ MSVC80
+ \ MSVC90
+ \ MSVC_IDE
+ \ MSVC_TOOLSET_VERSION
+ \ MSVC_VERSION
+ \ MSYS
+ \ PROJECT_BINARY_DIR
+ \ PROJECT_DESCRIPTION
+ \ PROJECT_HOMEPAGE_URL
+ \ PROJECT_NAME
+ \ PROJECT_SOURCE_DIR
+ \ PROJECT_VERSION
+ \ PROJECT_VERSION_MAJOR
+ \ PROJECT_VERSION_MINOR
+ \ PROJECT_VERSION_PATCH
+ \ PROJECT_VERSION_TWEAK
+ \ UNIX
+ \ WIN32
+ \ WINCE
+ \ WINDOWS_PHONE
+ \ WINDOWS_STORE
+ \ XCODE
+ \ XCODE_VERSION
+
+syn keyword cmakeModule contained
+ \ ExternalProject
+
+syn keyword cmakeKWExternalProject contained
+ \ AWS
+ \ BINARY_DIR
+ \ BUILD_ALWAYS
+ \ BUILD_BYPRODUCTS
+ \ BUILD_COMMAND
+ \ BUILD_IN_SOURCE
+ \ CMAKE_ARGS
+ \ CMAKE_CACHE_ARGS
+ \ CMAKE_CACHE_DEFAULT_ARGS
+ \ CMAKE_TLS_CAINFO
+ \ CMAKE_TLS_VERIFY
+ \ COMMENT
+ \ CONFIGURE_COMMAND
+ \ CVS
+ \ CVSROOT
+ \ CVS_MODULE
+ \ CVS_REPOSITORY
+ \ CVS_TAG
+ \ DEPENDEES
+ \ DEPENDERS
+ \ DEPENDS
+ \ DOWNLOADED_FILE
+ \ DOWNLOAD_COMMAND
+ \ DOWNLOAD_DIR
+ \ DOWNLOAD_NAME
+ \ DOWNLOAD_NO_EXTRACT
+ \ DOWNLOAD_NO_PROGRESS
+ \ EP_BASE
+ \ EP_INDEPENDENT_STEP_TARGETS
+ \ EP_PREFIX
+ \ EP_STEP_TARGETS
+ \ EP_UPDATE_DISCONNECTED
+ \ EXCLUDE_FROM_ALL
+ \ FORCE
+ \ GHS
+ \ 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_BUILD
+ \ LOG_CONFIGURE
+ \ LOG_DIR
+ \ LOG_DOWNLOAD
+ \ LOG_INSTALL
+ \ LOG_MERGED_STDOUTERR
+ \ LOG_OUTPUT_ON_FAILURE
+ \ LOG_PATCH
+ \ LOG_TEST
+ \ LOG_UPDATE
+ \ MAKE_EXE
+ \ MULTI
+ \ 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
+ \ WX
+
+syn keyword cmakeKWadd_custom_command contained
+ \ APPEND
+ \ ARGS
+ \ BYPRODUCTS
+ \ CC
+ \ COMMAND
+ \ COMMAND_EXPAND_LISTS
+ \ COMMENT
+ \ CROSSCOMPILING_EMULATOR
+ \ DEPENDS
+ \ DEPFILE
+ \ GENERATED
+ \ IMPLICIT_DEPENDS
+ \ INCLUDE_DIRECTORIES
+ \ JOB_POOL
+ \ JOB_POOLS
+ \ 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
+ \ JOB_POOL
+ \ JOB_POOLS
+ \ JOIN
+ \ SOURCES
+ \ TARGET_PROPERTY
+ \ USES_TERMINAL
+ \ VERBATIM
+ \ WORKING_DIRECTORY
+
+syn keyword cmakeKWadd_definitions contained
+ \ COMPILE_DEFINITIONS
+
+syn keyword cmakeKWadd_dependencies contained
+ \ 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
+
+syn keyword cmakeKWadd_library contained
+ \ ALIAS
+ \ ARCHIVE_OUTPUT_DIRECTORY
+ \ CLI
+ \ CONFIG
+ \ DLL
+ \ EXCLUDE_FROM_ALL
+ \ FRAMEWORK
+ \ GLOBAL
+ \ HEADER_FILE_ONLY
+ \ IMPORTED
+ \ IMPORTED_
+ \ IMPORTED_LOCATION
+ \ IMPORTED_LOCATION_
+ \ IMPORTED_OBJECTS
+ \ IMPORTED_OBJECTS_
+ \ INTERFACE_
+ \ LIBRARY_OUTPUT_DIRECTORY
+ \ MODULE
+ \ OBJECT
+ \ ON
+ \ OUTPUT_NAME
+ \ POSITION_INDEPENDENT_CODE
+ \ POST_BUILD
+ \ PRE_BUILD
+ \ PRE_LINK
+ \ PUBLIC_HEADER
+ \ RUNTIME_OUTPUT_DIRECTORY
+ \ SHARED
+ \ STATIC
+ \ TARGET_OBJECTS
+ \ UNKNOWN
+
+syn keyword cmakeKWadd_link_options contained
+ \ CMAKE_
+ \ GCC
+ \ GNU
+ \ LANG
+ \ LINKER
+ \ LINK_OPTIONS
+ \ SHELL
+ \ STATIC_LIBRARY_OPTIONS
+ \ 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
+ \ OFF
+ \ PASS_REGULAR_EXPRESSION
+ \ SKIP_REGULAR_EXPRESSION
+ \ TARGET_FILE
+ \ WILL_FAIL
+ \ WORKING_DIRECTORY
+
+syn keyword cmakeKWbuild_command contained
+ \ CONFIGURATION
+ \ TARGET
+
+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
+
+syn keyword cmakeKWcmake_minimum_required contained
+ \ 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_KEYWORDS_MISSING_VALUES
+ \ MY_INSTALL_OPTIONAL
+ \ MY_INSTALL_RENAME
+ \ MY_INSTALL_TARGETS
+ \ MY_INSTALL_UNPARSED_ARGUMENTS
+ \ OPTIONAL
+ \ PARSE_ARGV
+ \ RENAME
+ \ TARGETS
+ \ TRUE
+ \ UNDEFINED
+ \ _KEYWORDS_MISSING_VALUES
+ \ _UNPARSED_ARGUMENTS
+
+syn keyword cmakeKWcmake_policy contained
+ \ 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
+
+syn keyword cmakeKWcreate_test_sourcelist contained
+ \ 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
+ \ FLAGS
+ \ NUMBER_ERRORS
+ \ NUMBER_WARNINGS
+ \ QUIET
+ \ RETURN_VALUE
+ \ TARGET
+
+syn keyword cmakeKWctest_configure contained
+ \ APPEND
+ \ BUILD
+ \ CAPTURE_CMAKE_ERROR
+ \ OPTIONS
+ \ QUIET
+ \ RETURN_VALUE
+ \ SOURCE
+
+syn keyword cmakeKWctest_coverage contained
+ \ APPEND
+ \ BUILD
+ \ CAPTURE_CMAKE_ERROR
+ \ LABELS
+ \ QUIET
+ \ RETURN_VALUE
+
+syn keyword cmakeKWctest_memcheck contained
+ \ 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
+
+syn keyword cmakeKWctest_start contained
+ \ APPEND
+ \ QUIET
+ \ TAG
+ \ TRACK
+
+syn keyword cmakeKWctest_submit contained
+ \ API
+ \ BUILD_ID
+ \ 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
+ \ SUBMIT_URL
+
+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
+
+syn keyword cmakeKWctest_update contained
+ \ CAPTURE_CMAKE_ERROR
+ \ QUIET
+ \ RETURN_VALUE
+ \ SOURCE
+
+syn keyword cmakeKWctest_upload contained
+ \ CAPTURE_CMAKE_ERROR
+ \ FILES
+ \ QUIET
+
+syn keyword cmakeKWdefine_property contained
+ \ APPEND
+ \ APPEND_STRING
+ \ BRIEF_DOCS
+ \ CACHED_VARIABLE
+ \ DIRECTORY
+ \ FULL_DOCS
+ \ GLOBAL
+ \ INHERITED
+ \ PROPERTY
+ \ SOURCE
+ \ TARGET
+ \ TEST
+ \ VARIABLE
+
+syn keyword cmakeKWenable_language contained
+ \ ASM
+ \ CUDA
+ \ OPTIONAL
+
+syn keyword cmakeKWenable_testing contained
+ \ BUILD_TESTING
+
+syn keyword cmakeKWexec_program contained
+ \ ARGS
+ \ OUTPUT_VARIABLE
+ \ RETURN_VALUE
+
+syn keyword cmakeKWexecute_process contained
+ \ ANSI
+ \ AUTO
+ \ COMMAND
+ \ COMMAND_ECHO
+ \ 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
+ \ STDERR
+ \ STDOUT
+ \ 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
+
+syn keyword cmakeKWexport_library_dependencies contained
+ \ APPEND
+ \ EXPORT
+ \ INCLUDE
+ \ LINK_INTERFACE_LIBRARIES
+ \ SET
+
+syn keyword cmakeKWfile contained
+ \ ALGO
+ \ APPEND
+ \ ASCII
+ \ CMAKE_TLS_CAINFO
+ \ CMAKE_TLS_VERIFY
+ \ CONDITION
+ \ CONFIG
+ \ CONFIGURE_DEPENDS
+ \ CONTENT
+ \ COPY
+ \ COPY_ON_ERROR
+ \ CREATE_LINK
+ \ DESTINATION
+ \ DIRECTORY_PERMISSIONS
+ \ DOWNLOAD
+ \ ENCODING
+ \ EXCLUDE
+ \ EXPECTED_HASH
+ \ FILES_MATCHING
+ \ FILE_PERMISSIONS
+ \ FOLLOW_SYMLINKS
+ \ FOLLOW_SYMLINK_CHAIN
+ \ FUNCTION
+ \ GENERATE
+ \ GLOB
+ \ GLOB_RECURSE
+ \ GUARD
+ \ HASH
+ \ HEX
+ \ HTTPHEADER
+ \ IGNORED
+ \ INACTIVITY_TIMEOUT
+ \ INSTALL
+ \ IS_ABSOLUTE
+ \ LENGTH_MAXIMUM
+ \ LENGTH_MINIMUM
+ \ LF
+ \ LIMIT
+ \ LIMIT_COUNT
+ \ LIMIT_INPUT
+ \ LIMIT_OUTPUT
+ \ LIST_DIRECTORIES
+ \ LOCK
+ \ LOG
+ \ MAKE_DIRECTORY
+ \ NETRC
+ \ NETRC_FILE
+ \ NEWLINE_CONSUME
+ \ NOT
+ \ NO_HEX_CONVERSION
+ \ NO_SOURCE_PERMISSIONS
+ \ OFFSET
+ \ OLD
+ \ OPTIONAL
+ \ OUTPUT
+ \ PATTERN
+ \ PROCESS
+ \ READ
+ \ READ_SYMLINK
+ \ REGEX
+ \ RELATIVE_PATH
+ \ RELEASE
+ \ REMOVE
+ \ REMOVE_RECURSE
+ \ RENAME
+ \ REQUIRED
+ \ RESULT
+ \ RESULT_VARIABLE
+ \ SHOW_PROGRESS
+ \ SIZE
+ \ SSL
+ \ STATUS
+ \ STRINGS
+ \ SYMBOLIC
+ \ TIMESTAMP
+ \ TLS_CAINFO
+ \ TLS_VERIFY
+ \ TOUCH
+ \ TOUCH_NOCREATE
+ \ TO_CMAKE_PATH
+ \ TO_NATIVE_PATH
+ \ UPLOAD
+ \ URL
+ \ USERPWD
+ \ USE_SOURCE_PERMISSIONS
+ \ UTC
+ \ UTF
+ \ WRITE
+
+syn keyword cmakeKWfind_file contained
+ \ CMAKE_FIND_ROOT_PATH_BOTH
+ \ DOC
+ \ DVAR
+ \ HINTS
+ \ INCLUDE
+ \ NAMES
+ \ NO_CMAKE_ENVIRONMENT_PATH
+ \ NO_CMAKE_FIND_ROOT_PATH
+ \ NO_CMAKE_PATH
+ \ NO_CMAKE_SYSTEM_PATH
+ \ NO_DEFAULT_PATH
+ \ NO_PACKAGE_ROOT_PATH
+ \ NO_SYSTEM_ENVIRONMENT_PATH
+ \ ONLY_CMAKE_FIND_ROOT_PATH
+ \ PATHS
+ \ PATH_SUFFIXES
+ \ VAR
+
+syn keyword cmakeKWfind_library contained
+ \ CMAKE_FIND_ROOT_PATH_BOTH
+ \ DOC
+ \ DVAR
+ \ HINTS
+ \ LIB
+ \ NAMES
+ \ NAMES_PER_DIR
+ \ NO_CMAKE_ENVIRONMENT_PATH
+ \ NO_CMAKE_FIND_ROOT_PATH
+ \ NO_CMAKE_PATH
+ \ NO_CMAKE_SYSTEM_PATH
+ \ NO_DEFAULT_PATH
+ \ NO_PACKAGE_ROOT_PATH
+ \ NO_SYSTEM_ENVIRONMENT_PATH
+ \ ONLY_CMAKE_FIND_ROOT_PATH
+ \ PATHS
+ \ PATH_SUFFIXES
+ \ VAR
+
+syn keyword cmakeKWfind_package contained
+ \ ABI
+ \ BUNDLE
+ \ CMAKE_DISABLE_FIND_PACKAGE_
+ \ CMAKE_FIND_ROOT_PATH_BOTH
+ \ COMPONENTS
+ \ CONFIG
+ \ CONFIGS
+ \ DEC
+ \ DVAR
+ \ EXACT
+ \ FRAMEWORK
+ \ HINTS
+ \ MODULE
+ \ NAMES
+ \ NATURAL
+ \ NO_CMAKE_BUILDS_PATH
+ \ NO_CMAKE_ENVIRONMENT_PATH
+ \ NO_CMAKE_FIND_ROOT_PATH
+ \ NO_CMAKE_PACKAGE_REGISTRY
+ \ NO_CMAKE_PATH
+ \ NO_CMAKE_SYSTEM_PACKAGE_REGISTRY
+ \ NO_CMAKE_SYSTEM_PATH
+ \ NO_DEFAULT_PATH
+ \ NO_MODULE
+ \ NO_PACKAGE_ROOT_PATH
+ \ NO_POLICY_SCOPE
+ \ NO_SYSTEM_ENVIRONMENT_PATH
+ \ ONLY_CMAKE_FIND_ROOT_PATH
+ \ OPTIONAL_COMPONENTS
+ \ PACKAGE_FIND_NAME
+ \ PACKAGE_FIND_VERSION
+ \ PACKAGE_FIND_VERSION_COUNT
+ \ PACKAGE_FIND_VERSION_MAJOR
+ \ PACKAGE_FIND_VERSION_MINOR
+ \ PACKAGE_FIND_VERSION_PATCH
+ \ PACKAGE_FIND_VERSION_TWEAK
+ \ PACKAGE_VERSION
+ \ PACKAGE_VERSION_COMPATIBLE
+ \ PACKAGE_VERSION_EXACT
+ \ PACKAGE_VERSION_UNSUITABLE
+ \ PATHS
+ \ PATH_SUFFIXES
+ \ QUIET
+ \ REQUIRED
+ \ SET
+ \ TRUE
+ \ _CONFIG
+ \ _CONSIDERED_CONFIGS
+ \ _CONSIDERED_VERSIONS
+ \ _DIR
+ \ _FIND_COMPONENTS
+ \ _FIND_QUIETLY
+ \ _FIND_REQUIRED
+ \ _FIND_REQUIRED_
+ \ _FIND_VERSION_EXACT
+ \ _FOUND
+
+syn keyword cmakeKWfind_path contained
+ \ CMAKE_FIND_ROOT_PATH_BOTH
+ \ DOC
+ \ DVAR
+ \ HINTS
+ \ INCLUDE
+ \ NAMES
+ \ NO_CMAKE_ENVIRONMENT_PATH
+ \ NO_CMAKE_FIND_ROOT_PATH
+ \ NO_CMAKE_PATH
+ \ NO_CMAKE_SYSTEM_PATH
+ \ NO_DEFAULT_PATH
+ \ NO_PACKAGE_ROOT_PATH
+ \ NO_SYSTEM_ENVIRONMENT_PATH
+ \ ONLY_CMAKE_FIND_ROOT_PATH
+ \ PATHS
+ \ PATH_SUFFIXES
+ \ VAR
+
+syn keyword cmakeKWfind_program contained
+ \ CMAKE_FIND_ROOT_PATH_BOTH
+ \ DOC
+ \ DVAR
+ \ HINTS
+ \ NAMES
+ \ NAMES_PER_DIR
+ \ NO_CMAKE_ENVIRONMENT_PATH
+ \ NO_CMAKE_FIND_ROOT_PATH
+ \ NO_CMAKE_PATH
+ \ NO_CMAKE_SYSTEM_PATH
+ \ NO_DEFAULT_PATH
+ \ NO_PACKAGE_ROOT_PATH
+ \ NO_SYSTEM_ENVIRONMENT_PATH
+ \ ONLY_CMAKE_FIND_ROOT_PATH
+ \ PATHS
+ \ PATH_SUFFIXES
+ \ VAR
+
+syn keyword cmakeKWfltk_wrap_ui contained
+ \ FLTK
+
+syn keyword cmakeKWforeach contained
+ \ IN
+ \ ITEMS
+ \ LISTS
+ \ RANGE
+ \ STATUS
+
+syn keyword cmakeKWfunction contained
+ \ ARGC
+ \ ARGN
+ \ ARGV
+ \ FOO
+ \ PARENT_SCOPE
+
+syn keyword cmakeKWget_cmake_property contained
+ \ COMPONENTS
+ \ GLOBAL
+ \ MACROS
+ \ VARIABLES
+
+syn keyword cmakeKWget_directory_property contained
+ \ DEFINITION
+ \ DIRECTORY
+ \ INHERITED
+
+syn keyword cmakeKWget_filename_component contained
+ \ ABSOLUTE
+ \ BASE_DIR
+ \ DIRECTORY
+ \ EXT
+ \ LAST_EXT
+ \ NAME
+ \ NAME_WE
+ \ NAME_WLE
+ \ PATH
+ \ PROGRAM
+ \ PROGRAM_ARGS
+ \ REALPATH
+
+syn keyword cmakeKWget_property contained
+ \ BRIEF_DOCS
+ \ DEFINED
+ \ DIRECTORY
+ \ FULL_DOCS
+ \ GLOBAL
+ \ INSTALL
+ \ PROPERTY
+ \ SET
+ \ SOURCE
+ \ TARGET
+ \ TEST
+ \ VARIABLE
+
+syn keyword cmakeKWget_source_file_property contained
+ \ INHERITED
+ \ LOCATION
+ \ VAR
+
+syn keyword cmakeKWget_target_property contained
+ \ INHERITED
+ \ VAR
+
+syn keyword cmakeKWget_test_property contained
+ \ INHERITED
+ \ VAR
+
+syn keyword cmakeKWif contained
+ \ 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
+ \ TRUE
+ \ VERSION_EQUAL
+ \ VERSION_GREATER
+ \ VERSION_GREATER_EQUAL
+ \ VERSION_LESS
+ \ VERSION_LESS_EQUAL
+ \ YES
+
+syn keyword cmakeKWinclude contained
+ \ NO_POLICY_SCOPE
+ \ OPTIONAL
+ \ RESULT_VARIABLE
+
+syn keyword cmakeKWinclude_directories contained
+ \ AFTER
+ \ BEFORE
+ \ INCLUDE_DIRECTORIES
+ \ ON
+ \ SYSTEM
+
+syn keyword cmakeKWinclude_external_msproject contained
+ \ GUID
+ \ MAP_IMPORTED_CONFIG_
+ \ PLATFORM
+ \ TYPE
+ \ WIX
+
+syn keyword cmakeKWinclude_guard contained
+ \ DIRECTORY
+ \ GLOBAL
+ \ TRUE
+ \ __CURRENT_FILE_VAR__
+
+syn keyword cmakeKWinstall contained
+ \ AFTER
+ \ APT
+ \ ARCHIVE
+ \ BEFORE
+ \ BUILD_TYPE
+ \ BUNDLE
+ \ CMAKE_INSTALL_BINDIR
+ \ CMAKE_INSTALL_DATADIR
+ \ CMAKE_INSTALL_DATAROOTDIR
+ \ CMAKE_INSTALL_DOCDIR
+ \ CMAKE_INSTALL_INCLUDEDIR
+ \ CMAKE_INSTALL_INFODIR
+ \ CMAKE_INSTALL_LIBDIR
+ \ CMAKE_INSTALL_LOCALEDIR
+ \ CMAKE_INSTALL_LOCALSTATEDIR
+ \ CMAKE_INSTALL_MANDIR
+ \ CMAKE_INSTALL_RUNSTATEDIR
+ \ CMAKE_INSTALL_SBINDIR
+ \ CMAKE_INSTALL_SHARESTATEDIR
+ \ CMAKE_INSTALL_SYSCONFDIR
+ \ CODE
+ \ COMPONENT
+ \ CONFIGURATIONS
+ \ CVS
+ \ DATA
+ \ DATAROOT
+ \ DBUILD_TYPE
+ \ DCOMPONENT
+ \ DESTDIR
+ \ DESTINATION
+ \ DIRECTORY
+ \ DIRECTORY_PERMISSIONS
+ \ DLL
+ \ DOC
+ \ EXCLUDE_FROM_ALL
+ \ EXPORT
+ \ EXPORT_ANDROID_MK
+ \ EXPORT_LINK_INTERFACE_LIBRARIES
+ \ EXPORT_NAME
+ \ FILES
+ \ FILES_MATCHING
+ \ FILE_PERMISSIONS
+ \ FRAMEWORK
+ \ GROUP_EXECUTE
+ \ GROUP_READ
+ \ GROUP_WRITE
+ \ IMPORTED_
+ \ INCLUDES
+ \ INFO
+ \ INSTALL_PREFIX
+ \ INTERFACE_INCLUDE_DIRECTORIES
+ \ LIBRARY
+ \ LOCALE
+ \ LOCALSTATE
+ \ MACOSX_BUNDLE
+ \ MAN
+ \ 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
+ \ PROPERTIES
+ \ PUBLIC_HEADER
+ \ REGEX
+ \ RENAME
+ \ RESOURCE
+ \ RPM
+ \ RUNSTATE
+ \ RUNTIME
+ \ SBIN
+ \ SCRIPT
+ \ SETGID
+ \ SETUID
+ \ SHAREDSTATE
+ \ SOVERSION
+ \ STATIC
+ \ SYSCONF
+ \ TARGETS
+ \ TRUE
+ \ TYPE
+ \ USE_SOURCE_PERMISSIONS
+ \ VERSION
+ \ WORLD_EXECUTE
+ \ WORLD_READ
+ \ WORLD_WRITE
+
+syn keyword cmakeKWinstall_files contained
+ \ FILES
+ \ GLOB
+
+syn keyword cmakeKWinstall_programs contained
+ \ FILES
+ \ GLOB
+ \ PROGRAMS
+ \ TARGETS
+
+syn keyword cmakeKWinstall_targets contained
+ \ DLL
+ \ RUNTIME_DIRECTORY
+
+syn keyword cmakeKWlink_directories contained
+ \ AFTER
+ \ BEFORE
+ \ LINK_DIRECTORIES
+ \ ON
+ \ ORIGIN
+ \ RPATH
+
+syn keyword cmakeKWlist contained
+ \ ACTION
+ \ APPEND
+ \ ASCENDING
+ \ CASE
+ \ COMPARE
+ \ DESCENDING
+ \ EXCLUDE
+ \ FILE_BASENAME
+ \ FILTER
+ \ FIND
+ \ GENEX_STRIP
+ \ GET
+ \ INCLUDE
+ \ INSENSITIVE
+ \ INSERT
+ \ INTERNAL
+ \ JOIN
+ \ LENGTH
+ \ ORDER
+ \ OUTPUT_VARIABLE
+ \ PARENT_SCOPE
+ \ POP_BACK
+ \ POP_FRONT
+ \ 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
+
+syn keyword cmakeKWload_command contained
+ \ CMAKE_LOADED_COMMAND_
+ \ COMMAND_NAME
+
+syn keyword cmakeKWmacro contained
+ \ ARGC
+ \ ARGN
+ \ ARGV
+ \ DEFINED
+ \ FOO
+ \ GREATER
+ \ LISTS
+ \ NOT
+
+syn keyword cmakeKWmark_as_advanced contained
+ \ CLEAR
+ \ FORCE
+
+syn keyword cmakeKWmath contained
+ \ EXPR
+ \ HEXADECIMAL
+ \ OUTPUT_FORMAT
+
+syn keyword cmakeKWmessage contained
+ \ AUTHOR_WARNING
+ \ DEBUG
+ \ DEPRECATION
+ \ FATAL_ERROR
+ \ GUI
+ \ NOTICE
+ \ SEND_ERROR
+ \ STATUS
+ \ TRACE
+ \ VERBOSE
+ \ WARNING
+
+syn keyword cmakeKWoption contained
+ \ OFF
+ \ ON
+
+syn keyword cmakeKWproject contained
+ \ ASM
+ \ CMAKE_PROJECT_
+ \ CUDA
+ \ DESCRIPTION
+ \ HOMEPAGE_URL
+ \ LANGUAGES
+ \ NAME
+ \ NONE
+ \ PROJECT
+ \ VERSION
+ \ _BINARY_DIR
+ \ _DESCRIPTION
+ \ _HOMEPAGE_URL
+ \ _INCLUDE
+ \ _SOURCE_DIR
+ \ _VERSION
+ \ _VERSION_MAJOR
+ \ _VERSION_MINOR
+ \ _VERSION_PATCH
+ \ _VERSION_TWEAK
+
+syn keyword cmakeKWqt_wrap_cpp contained
+ \ AUTOMOC
+
+syn keyword cmakeKWqt_wrap_ui contained
+ \ AUTOUIC
+
+syn keyword cmakeKWremove contained
+ \ VALUE
+ \ VAR
+
+syn keyword cmakeKWseparate_arguments contained
+ \ MSDN
+ \ NATIVE_COMMAND
+ \ UNIX_COMMAND
+ \ WINDOWS_COMMAND
+
+syn keyword cmakeKWset contained
+ \ BOOL
+ \ FILEPATH
+ \ FORCE
+ \ INTERNAL
+ \ OFF
+ \ ON
+ \ PARENT_SCOPE
+ \ STRING
+ \ STRINGS
+
+syn keyword cmakeKWset_directory_properties contained
+ \ DIRECTORY
+ \ PROPERTIES
+
+syn keyword cmakeKWset_property contained
+ \ APPEND
+ \ APPEND_STRING
+ \ DIRECTORY
+ \ GLOBAL
+ \ INHERITED
+ \ INSTALL
+ \ PROPERTY
+ \ SOURCE
+ \ TARGET
+ \ TEST
+ \ WIX
+
+syn keyword cmakeKWset_source_files_properties contained
+ \ PROPERTIES
+ \ SOURCE
+
+syn keyword cmakeKWset_target_properties contained
+ \ PROPERTIES
+ \ TARGET
+
+syn keyword cmakeKWset_tests_properties contained
+ \ PROPERTIES
+ \ TEST
+
+syn keyword cmakeKWsource_group contained
+ \ FILES
+ \ PREFIX
+ \ REGULAR_EXPRESSION
+ \ TREE
+
+syn keyword cmakeKWstring contained
+ \ ALPHABET
+ \ APPEND
+ \ ASCII
+ \ CMAKE_MATCH_
+ \ COMPARE
+ \ CONCAT
+ \ CONFIGURE
+ \ EQUAL
+ \ ESCAPE_QUOTES
+ \ FIND
+ \ GENEX_STRIP
+ \ GREATER
+ \ GREATER_EQUAL
+ \ GUID
+ \ HASH
+ \ JOIN
+ \ LENGTH
+ \ LESS
+ \ LESS_EQUAL
+ \ MAKE_C_IDENTIFIER
+ \ MATCH
+ \ MATCHALL
+ \ MATCHES
+ \ NAMESPACE
+ \ NOTEQUAL
+ \ ONLY
+ \ PREPEND
+ \ RANDOM
+ \ RANDOM_SEED
+ \ REGEX
+ \ REPEAT
+ \ 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
+
+syn keyword cmakeKWtarget_compile_definitions contained
+ \ 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
+
+syn keyword cmakeKWtarget_compile_options contained
+ \ 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
+
+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
+ \ 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
+ \ 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
+ \ STATIC_LIBRARY_OPTIONS
+ \ UNIX_COMMAND
+ \ _LINKER_WRAPPER_FLAG
+ \ _LINKER_WRAPPER_FLAG_SEP
+
+syn keyword cmakeKWtarget_precompile_headers contained
+ \ INTERFACE
+ \ PRIVATE
+ \ PUBLIC
+
+syn keyword cmakeKWtarget_sources contained
+ \ 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
+ \ EXECUTABLE
+ \ FALSE
+ \ GHS
+ \ INCLUDE_DIRECTORIES
+ \ LANG
+ \ LINK_DIRECTORIES
+ \ LINK_LIBRARIES
+ \ LINK_OPTIONS
+ \ MULTI
+ \ NOT
+ \ OUTPUT_VARIABLE
+ \ PRIVATE
+ \ SOURCES
+ \ STATIC_LIBRARY
+ \ STATIC_LIBRARY_OPTIONS
+ \ TRUE
+ \ TYPE
+ \ VALUE
+ \ _EXTENSIONS
+ \ _STANDARD
+ \ _STANDARD_REQUIRED
+
+syn keyword cmakeKWtry_run contained
+ \ ARGS
+ \ CMAKE_FLAGS
+ \ COMPILE_DEFINITIONS
+ \ COMPILE_OUTPUT_VARIABLE
+ \ DLINK_LIBRARIES
+ \ DVAR
+ \ FAILED_TO_RUN
+ \ FALSE
+ \ INCLUDE_DIRECTORIES
+ \ LINK_DIRECTORIES
+ \ LINK_LIBRARIES
+ \ LINK_OPTIONS
+ \ RUN_OUTPUT_VARIABLE
+ \ TRUE
+ \ TYPE
+ \ VALUE
+ \ __TRYRUN_OUTPUT
+
+syn keyword cmakeKWunset contained
+ \ PARENT_SCOPE
+ \ VAR
+
+syn keyword cmakeKWuse_mangled_mesa contained
+ \ GL
+ \ OUTPUT_DIRECTORY
+ \ PATH_TO_MESA
+
+syn keyword cmakeKWvariable_requires contained
+ \ RESULT_VARIABLE
+ \ TEST_VARIABLE
+
+syn keyword cmakeKWvariable_watch contained
+ \ COMMAND
+
+syn keyword cmakeKWwrite_file contained
+ \ APPEND
+ \ CONFIGURE_FILE
+ \ NOTE
+ \ WRITE
+
+
+syn keyword cmakeGeneratorExpressions contained
+ \ AND
+ \ ANGLE
+ \ ARCHIVE_OUTPUT_NAME
+ \ ARCHIVE_OUTPUT_NAME_
+ \ BAR
+ \ BOOL
+ \ BUILD_INTERFACE
+ \ CMAKE_
+ \ COMMA
+ \ COMMAND
+ \ COMPILE_DEFINITIONS
+ \ COMPILE_FEATURES
+ \ COMPILE_LANGUAGE
+ \ COMPILE_LANG_AND_ID
+ \ COMPILING_CUDA
+ \ COMPILING_CXX_WITH_CLANG
+ \ COMPILING_CXX_WITH_INTEL
+ \ COMPILING_C_WITH_CLANG
+ \ CONFIG
+ \ CONFIGURATION
+ \ CUDA_COMPILER_ID
+ \ CUDA_COMPILER_VERSION
+ \ CUSTOM_KEYS
+ \ CXX_COMPILER_ID
+ \ CXX_COMPILER_VERSION
+ \ CXX_STANDARD
+ \ C_COMPILER_ID
+ \ C_COMPILER_VERSION
+ \ C_STANDARD
+ \ DEBUG_MODE
+ \ DEBUG_POSTFIX
+ \ EXCLUDE
+ \ EXPORT
+ \ FALSE
+ \ FILTER
+ \ FOO_EXTRA_THINGS
+ \ Fortran_COMPILER_ID
+ \ Fortran_COMPILER_VERSION
+ \ GENERATE
+ \ GENEX_EVAL
+ \ GNU
+ \ IF
+ \ IGNORE
+ \ IMPORT_PREFIX
+ \ IMPORT_SUFFIX
+ \ INCLUDE_DIRECTORIES
+ \ INSTALL_INTERFACE
+ \ INSTALL_PREFIX
+ \ INTERFACE_LINK_LIBRARIES
+ \ IN_LIST
+ \ JOIN
+ \ LANG
+ \ LANG_COMPILER_ID
+ \ LIBRARY_OUTPUT_NAME
+ \ LIBRARY_OUTPUT_NAME_
+ \ LINK_LIBRARIES
+ \ LINK_ONLY
+ \ LOWER_CASE
+ \ MAKE_C_IDENTIFIER
+ \ MAP_IMPORTED_CONFIG_
+ \ NO
+ \ NOT
+ \ OFF
+ \ OLD_COMPILER
+ \ OUTPUT_NAME
+ \ OUTPUT_NAME_
+ \ PDB_NAME
+ \ PDB_NAME_
+ \ PDB_OUTPUT_DIRECTORY
+ \ PDB_OUTPUT_DIRECTORY_
+ \ PLATFORM_ID
+ \ POSIX
+ \ PRIVATE
+ \ PUBLIC
+ \ REMOVE_DUPLICATES
+ \ RUNTIME_OUTPUT_NAME
+ \ RUNTIME_OUTPUT_NAME_
+ \ SDK
+ \ SEMICOLON
+ \ SHELL_PATH
+ \ STREQUAL
+ \ TARGET_BUNDLE_CONTENT_DIR
+ \ TARGET_BUNDLE_DIR
+ \ TARGET_EXISTS
+ \ TARGET_FILE
+ \ TARGET_FILE_BASE_NAME
+ \ TARGET_FILE_DIR
+ \ TARGET_FILE_NAME
+ \ TARGET_FILE_PREFIX
+ \ TARGET_FILE_SUFFIX
+ \ TARGET_GENEX_EVAL
+ \ TARGET_LINKER_FILE
+ \ TARGET_LINKER_FILE_BASE_NAME
+ \ TARGET_LINKER_FILE_DIR
+ \ TARGET_LINKER_FILE_NAME
+ \ TARGET_LINKER_FILE_PREFIX
+ \ TARGET_LINKER_FILE_SUFFIX
+ \ TARGET_NAME_IF_EXISTS
+ \ TARGET_OBJECTS
+ \ TARGET_PDB_FILE
+ \ TARGET_PDB_FILE_BASE_NAME
+ \ 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
+ \ _POSTFIX
+
+syn case ignore
+
+syn keyword cmakeCommand
+ \ add_compile_definitions
+ \ add_compile_options
+ \ add_custom_command
+ \ add_custom_target
+ \ add_definitions
+ \ add_dependencies
+ \ add_executable
+ \ add_library
+ \ add_link_options
+ \ add_subdirectory
+ \ add_test
+ \ aux_source_directory
+ \ break
+ \ build_command
+ \ cmake_host_system_information
+ \ cmake_minimum_required
+ \ cmake_parse_arguments
+ \ cmake_policy
+ \ configure_file
+ \ continue
+ \ create_test_sourcelist
+ \ ctest_build
+ \ ctest_configure
+ \ ctest_coverage
+ \ ctest_empty_binary_directory
+ \ ctest_memcheck
+ \ ctest_read_custom_files
+ \ ctest_run_script
+ \ ctest_sleep
+ \ ctest_start
+ \ ctest_submit
+ \ ctest_test
+ \ ctest_update
+ \ ctest_upload
+ \ define_property
+ \ enable_language
+ \ enable_testing
+ \ endfunction
+ \ endmacro
+ \ execute_process
+ \ export
+ \ file
+ \ find_file
+ \ find_library
+ \ find_package
+ \ find_path
+ \ find_program
+ \ fltk_wrap_ui
+ \ function
+ \ get_cmake_property
+ \ get_directory_property
+ \ get_filename_component
+ \ get_property
+ \ get_source_file_property
+ \ get_target_property
+ \ get_test_property
+ \ include
+ \ include_directories
+ \ include_external_msproject
+ \ include_guard
+ \ include_regular_expression
+ \ install
+ \ link_directories
+ \ list
+ \ load_cache
+ \ load_command
+ \ macro
+ \ mark_as_advanced
+ \ math
+ \ message
+ \ option
+ \ project
+ \ qt_wrap_cpp
+ \ qt_wrap_ui
+ \ remove_definitions
+ \ return
+ \ separate_arguments
+ \ set
+ \ set_directory_properties
+ \ set_property
+ \ set_source_files_properties
+ \ set_target_properties
+ \ set_tests_properties
+ \ site_name
+ \ source_group
+ \ string
+ \ target_compile_definitions
+ \ target_compile_features
+ \ target_compile_options
+ \ target_include_directories
+ \ target_link_directories
+ \ target_link_libraries
+ \ target_link_options
+ \ target_precompile_headers
+ \ target_sources
+ \ try_compile
+ \ try_run
+ \ unset
+ \ variable_watch
+ \ nextgroup=cmakeArguments
+
+syn keyword cmakeCommandConditional
+ \ else
+ \ elseif
+ \ endif
+ \ if
+ \ nextgroup=cmakeArguments
+
+syn keyword cmakeCommandRepeat
+ \ 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
+ \ nextgroup=cmakeArguments
+
+syn case match
+
+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
+hi def link cmakeCommandRepeat Repeat
+hi def link cmakeComment Comment
+hi def link cmakeEnvironment Special
+hi def link cmakeEscaped Special
+hi def link cmakeGeneratorExpression WarningMsg
+hi def link cmakeGeneratorExpressions Constant
+hi def link cmakeModule Include
+hi def link cmakeProperty Constant
+hi def link cmakeRegistry Underlined
+hi def link cmakeString String
+hi def link cmakeTodo TODO
+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
+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
+hi def link cmakeKWcmake_host_system_information ModeMsg
+hi def link cmakeKWcmake_minimum_required ModeMsg
+hi def link cmakeKWcmake_parse_arguments ModeMsg
+hi def link cmakeKWcmake_policy ModeMsg
+hi def link cmakeKWconfigure_file ModeMsg
+hi def link cmakeKWcreate_test_sourcelist ModeMsg
+hi def link cmakeKWctest_build ModeMsg
+hi def link cmakeKWctest_configure ModeMsg
+hi def link cmakeKWctest_coverage ModeMsg
+hi def link cmakeKWctest_memcheck ModeMsg
+hi def link cmakeKWctest_run_script ModeMsg
+hi def link cmakeKWctest_start ModeMsg
+hi def link cmakeKWctest_submit ModeMsg
+hi def link cmakeKWctest_test ModeMsg
+hi def link cmakeKWctest_update ModeMsg
+hi def link cmakeKWctest_upload ModeMsg
+hi def link cmakeKWdefine_property ModeMsg
+hi def link cmakeKWenable_language ModeMsg
+hi def link cmakeKWenable_testing ModeMsg
+hi def link cmakeKWexec_program ModeMsg
+hi def link cmakeKWexecute_process ModeMsg
+hi def link cmakeKWexport ModeMsg
+hi def link cmakeKWexport_library_dependencies ModeMsg
+hi def link cmakeKWfile ModeMsg
+hi def link cmakeKWfind_file ModeMsg
+hi def link cmakeKWfind_library ModeMsg
+hi def link cmakeKWfind_package ModeMsg
+hi def link cmakeKWfind_path ModeMsg
+hi def link cmakeKWfind_program ModeMsg
+hi def link cmakeKWfltk_wrap_ui ModeMsg
+hi def link cmakeKWforeach ModeMsg
+hi def link cmakeKWfunction ModeMsg
+hi def link cmakeKWget_cmake_property ModeMsg
+hi def link cmakeKWget_directory_property ModeMsg
+hi def link cmakeKWget_filename_component ModeMsg
+hi def link cmakeKWget_property ModeMsg
+hi def link cmakeKWget_source_file_property ModeMsg
+hi def link cmakeKWget_target_property ModeMsg
+hi def link cmakeKWget_test_property ModeMsg
+hi def link cmakeKWif ModeMsg
+hi def link cmakeKWinclude ModeMsg
+hi def link cmakeKWinclude_directories ModeMsg
+hi def link cmakeKWinclude_external_msproject ModeMsg
+hi def link cmakeKWinclude_guard ModeMsg
+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
+hi def link cmakeKWmacro ModeMsg
+hi def link cmakeKWmark_as_advanced ModeMsg
+hi def link cmakeKWmath ModeMsg
+hi def link cmakeKWmessage ModeMsg
+hi def link cmakeKWoption ModeMsg
+hi def link cmakeKWproject ModeMsg
+hi def link cmakeKWqt_wrap_cpp ModeMsg
+hi def link cmakeKWqt_wrap_ui ModeMsg
+hi def link cmakeKWremove ModeMsg
+hi def link cmakeKWseparate_arguments ModeMsg
+hi def link cmakeKWset ModeMsg
+hi def link cmakeKWset_directory_properties ModeMsg
+hi def link cmakeKWset_property ModeMsg
+hi def link cmakeKWset_source_files_properties ModeMsg
+hi def link cmakeKWset_target_properties ModeMsg
+hi def link cmakeKWset_tests_properties ModeMsg
+hi def link cmakeKWsource_group ModeMsg
+hi def link cmakeKWstring ModeMsg
+hi def link cmakeKWsubdirs ModeMsg
+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_precompile_headers ModeMsg
+hi def link cmakeKWtarget_sources ModeMsg
+hi def link cmakeKWtry_compile ModeMsg
+hi def link cmakeKWtry_run ModeMsg
+hi def link cmakeKWunset ModeMsg
+hi def link cmakeKWuse_mangled_mesa ModeMsg
+hi def link cmakeKWvariable_requires ModeMsg
+hi def link cmakeKWvariable_watch 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
+unlet s:keepcpo
+
+" vim: set nowrap:
diff --git a/share/cmake-3.17/include/cmCPluginAPI.h b/share/cmake-3.17/include/cmCPluginAPI.h
new file mode 100644
index 0000000..19626f0
--- /dev/null
+++ b/share/cmake-3.17/include/cmCPluginAPI.h
@@ -0,0 +1,236 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+/* This header file defines the API that loadable commands can use. In many
+ of these commands C++ instances of cmMakefile of cmSourceFile are passed
+ in as arguments or returned. In these cases they are passed as a void *
+ argument. In the function prototypes mf is used to represent a makefile
+ and sf is used to represent a source file. The functions are grouped
+ loosely into four groups 1) Utility 2) cmMakefile 3) cmSourceFile 4)
+ cmSystemTools. Within each grouping functions are listed alphabetically */
+/*=========================================================================*/
+#ifndef cmCPluginAPI_h
+#define cmCPluginAPI_h
+
+#define CMAKE_VERSION_MAJOR 2
+#define CMAKE_VERSION_MINOR 5
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __WATCOMC__
+# define CCONV __cdecl
+#else
+# define CCONV
+#endif
+/*=========================================================================
+this is the structure of function entry points that a plugin may call. This
+structure must be kept in sync with the static decaled at the bottom of
+cmCPLuginAPI.cxx
+=========================================================================*/
+/* NOLINTNEXTLINE(modernize-use-using) */
+typedef struct
+{
+ /*=========================================================================
+ Here we define the set of functions that a plugin may call. The first goup
+ of functions are utility functions that are specific to the plugin API
+ =========================================================================*/
+ /* set/Get the ClientData in the cmLoadedCommandInfo structure, this is how
+ information is passed from the InitialPass to FinalPass for commands
+ that need a FinalPass and need information from the InitialPass */
+ void*(CCONV* GetClientData)(void* info);
+ /* return the summed size in characters of all the arguments */
+ int(CCONV* GetTotalArgumentSize)(int argc, char** argv);
+ /* free all the memory associated with an argc, argv pair */
+ void(CCONV* FreeArguments)(int argc, char** argv);
+ /* set/Get the ClientData in the cmLoadedCommandInfo structure, this is how
+ information is passed from the InitialPass to FinalPass for commands
+ that need a FinalPass and need information from the InitialPass */
+ void(CCONV* SetClientData)(void* info, void* cd);
+ /* when an error occurs, call this function to set the error string */
+ void(CCONV* SetError)(void* info, const char* err);
+
+ /*=========================================================================
+ The following functions all directly map to methods in the cmMakefile
+ class. See cmMakefile.h for descriptions of what each method does. All of
+ these methods take the void * makefile pointer as their first argument.
+ =========================================================================*/
+ void(CCONV* AddCacheDefinition)(void* mf, const char* name,
+ const char* value, const char* doc,
+ int cachetype);
+ void(CCONV* AddCustomCommand)(void* mf, const char* source,
+ const char* command, int numArgs,
+ const char** args, int numDepends,
+ const char** depends, int numOutputs,
+ const char** outputs, const char* target);
+ void(CCONV* AddDefineFlag)(void* mf, const char* definition);
+ void(CCONV* AddDefinition)(void* mf, const char* name, const char* value);
+ void(CCONV* AddExecutable)(void* mf, const char* exename, int numSrcs,
+ const char** srcs, int win32);
+ void(CCONV* AddLibrary)(void* mf, const char* libname, int shared,
+ int numSrcs, const char** srcs);
+ void(CCONV* AddLinkDirectoryForTarget)(void* mf, const char* tgt,
+ const char* d);
+ void(CCONV* AddLinkLibraryForTarget)(void* mf, const char* tgt,
+ const char* libname, int libtype);
+ void(CCONV* AddUtilityCommand)(void* mf, const char* utilityName,
+ const char* command, const char* arguments,
+ int all, int numDepends, const char** depends,
+ int numOutputs, const char** outputs);
+ int(CCONV* CommandExists)(void* mf, const char* name);
+ int(CCONV* ExecuteCommand)(void* mf, const char* name, int numArgs,
+ const char** args);
+ void(CCONV* ExpandSourceListArguments)(void* mf, int argc, const char** argv,
+ int* resArgc, char*** resArgv,
+ unsigned int startArgumentIndex);
+ char*(CCONV* ExpandVariablesInString)(void* mf, const char* source,
+ int escapeQuotes, int atOnly);
+ unsigned int(CCONV* GetCacheMajorVersion)(void* mf);
+ unsigned int(CCONV* GetCacheMinorVersion)(void* mf);
+ const char*(CCONV* GetCurrentDirectory)(void* mf);
+ const char*(CCONV* GetCurrentOutputDirectory)(void* mf);
+ const char*(CCONV* GetDefinition)(void* mf, const char* def);
+ const char*(CCONV* GetHomeDirectory)(void* mf);
+ const char*(CCONV* GetHomeOutputDirectory)(void* mf);
+ unsigned int(CCONV* GetMajorVersion)(void* mf);
+ unsigned int(CCONV* GetMinorVersion)(void* mf);
+ const char*(CCONV* GetProjectName)(void* mf);
+ const char*(CCONV* GetStartDirectory)(void* mf);
+ const char*(CCONV* GetStartOutputDirectory)(void* mf);
+ int(CCONV* IsOn)(void* mf, const char* name);
+
+ /*=========================================================================
+ The following functions are designed to operate or manipulate
+ cmSourceFiles. Please see cmSourceFile.h for additional information on many
+ of these methods. Some of these methods are in cmMakefile.h.
+ =========================================================================*/
+ void*(CCONV* AddSource)(void* mf, void* sf);
+ void*(CCONV* CreateSourceFile)();
+ void(CCONV* DestroySourceFile)(void* sf);
+ void*(CCONV* GetSource)(void* mf, const char* sourceName);
+ void(CCONV* SourceFileAddDepend)(void* sf, const char* depend);
+ const char*(CCONV* SourceFileGetProperty)(void* sf, const char* prop);
+ int(CCONV* SourceFileGetPropertyAsBool)(void* sf, const char* prop);
+ const char*(CCONV* SourceFileGetSourceName)(void* sf);
+ const char*(CCONV* SourceFileGetFullPath)(void* sf);
+ void(CCONV* SourceFileSetName)(void* sf, const char* name, const char* dir,
+ int numSourceExtensions,
+ const char** sourceExtensions,
+ int numHeaderExtensions,
+ const char** headerExtensions);
+ void(CCONV* SourceFileSetName2)(void* sf, const char* name, const char* dir,
+ const char* ext, int headerFileOnly);
+ void(CCONV* SourceFileSetProperty)(void* sf, const char* prop,
+ const char* value);
+
+ /*=========================================================================
+ The following methods are from cmSystemTools.h see that file for specific
+ documentation on each method.
+ =========================================================================*/
+ char*(CCONV* Capitalized)(const char*);
+ void(CCONV* CopyFileIfDifferent)(const char* f1, const char* f2);
+ char*(CCONV* GetFilenameWithoutExtension)(const char*);
+ char*(CCONV* GetFilenamePath)(const char*);
+ void(CCONV* RemoveFile)(const char* f1);
+ void(CCONV* Free)(void*);
+
+ /*=========================================================================
+ The following are new functions added after 1.6
+ =========================================================================*/
+ void(CCONV* AddCustomCommandToOutput)(void* mf, const char* output,
+ const char* command, int numArgs,
+ const char** args,
+ const char* main_dependency,
+ int numDepends, const char** depends);
+ void(CCONV* AddCustomCommandToTarget)(void* mf, const char* target,
+ const char* command, int numArgs,
+ const char** args, int commandType);
+
+ /* display status information */
+ void(CCONV* DisplaySatus)(void* info, const char* message);
+
+ /* new functions added after 2.4 */
+ void*(CCONV* CreateNewSourceFile)(void* mf);
+ void(CCONV* DefineSourceFileProperty)(void* mf, const char* name,
+ const char* briefDocs,
+ const char* longDocs, int chained);
+
+ /* this is the end of the C function stub API structure */
+} cmCAPI;
+
+/*=========================================================================
+CM_PLUGIN_EXPORT should be used by plugins
+=========================================================================*/
+#ifdef _WIN32
+# define CM_PLUGIN_EXPORT __declspec(dllexport)
+#else
+# define CM_PLUGIN_EXPORT
+#endif
+
+/*=========================================================================
+define the different types of cache entries, see cmCacheManager.h for more
+information
+=========================================================================*/
+#define CM_CACHE_BOOL 0
+#define CM_CACHE_PATH 1
+#define CM_CACHE_FILEPATH 2
+#define CM_CACHE_STRING 3
+#define CM_CACHE_INTERNAL 4
+#define CM_CACHE_STATIC 5
+
+/*=========================================================================
+define the different types of compiles a library may be
+=========================================================================*/
+#define CM_LIBRARY_GENERAL 0
+#define CM_LIBRARY_DEBUG 1
+#define CM_LIBRARY_OPTIMIZED 2
+
+/*=========================================================================
+define the different types of custom commands for a target
+=========================================================================*/
+#define CM_PRE_BUILD 0
+#define CM_PRE_LINK 1
+#define CM_POST_BUILD 2
+
+/*=========================================================================
+Finally we define the key data structures and function prototypes
+=========================================================================*/
+
+/* NOLINTNEXTLINE(modernize-use-using) */
+typedef const char*(CCONV* CM_DOC_FUNCTION)();
+
+/* NOLINTNEXTLINE(modernize-use-using) */
+typedef int(CCONV* CM_INITIAL_PASS_FUNCTION)(void* info, void* mf, int argc,
+ char* []);
+
+/* NOLINTNEXTLINE(modernize-use-using) */
+typedef void(CCONV* CM_FINAL_PASS_FUNCTION)(void* info, void* mf);
+
+/* NOLINTNEXTLINE(modernize-use-using) */
+typedef void(CCONV* CM_DESTRUCTOR_FUNCTION)(void* info);
+
+/* NOLINTNEXTLINE(modernize-use-using) */
+typedef struct
+{
+ unsigned long reserved1; /* Reserved for future use. DO NOT USE. */
+ unsigned long reserved2; /* Reserved for future use. DO NOT USE. */
+ cmCAPI* CAPI;
+ int m_Inherited; /* this ivar is no longer used in CMake 2.2 or later */
+ CM_INITIAL_PASS_FUNCTION InitialPass;
+ CM_FINAL_PASS_FUNCTION FinalPass;
+ CM_DESTRUCTOR_FUNCTION Destructor;
+ CM_DOC_FUNCTION GetTerseDocumentation;
+ CM_DOC_FUNCTION GetFullDocumentation;
+ const char* Name;
+ char* Error;
+ void* ClientData;
+} cmLoadedCommandInfo;
+
+/* NOLINTNEXTLINE(modernize-use-using) */
+typedef void(CCONV* CM_INIT_FUNCTION)(cmLoadedCommandInfo*);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif